Previous 15994 Revisions Next

r4471 Friday 10th April, 2009 at 12:05:06 UTC by Nathan Woods
Updated to MAME 0.130u3 core
[docs]messnew.txt
[src/emu]crsshair.c crsshair.h emu.mak emuopts.c emuopts.h fileio.h inptport.h inpttype.h rendlay.c rendutil.c rendutil.h ui.c uimenu.c
[src/emu/cpu/m68000]m68kmake.c
[src/emu/cpu/tms32025]tms32025.c
[src/emu/cpu/z80]z80.c z80.h
[src/emu/machine]eepromdev.c* eepromdev.h* i2cmemdev.c* i2cmemdev.h* z80pio.c z80pio.h
[src/emu/sound]psx.c
[src/emu/video]rgbsse.h rgbutil.c* rgbvmx.h
[src/mame]mame.mak mamedriv.c
[src/mame/audio]cinemat.c senjyo.c taitosnd.c taitosnd.h trackfld.c
[src/mame/drivers]1945kiii.c 20pacgal.c 8080bw.c 88games.c actfancr.c aeroboto.c aerofgt.c ajax.c aliens.c alpha68k.c ambush.c angelkds.c aquarium.c armedf.c asterix.c asuka.c atarifb.c atarig1.c atarigt.c atarigx2.c avalnche.c backfire.c bagman.c baraduke.c battlane.c battlex.c battlnts.c bbusters.c beathead.c bfcobra.c bigevglf.c bishi.c bladestl.c blktiger.c blockhl.c blockout.c bmcbowl.c bnstars.c bombjack.c bottom9.c brkthru.c bsktball.c btime.c btoads.c buggychl.c bwidow.c bwing.c bzone.c cabal.c carjmbre.c carrera.c cbuster.c centiped.c champbas.c changela.c chinagat.c chqflag.c clayshoo.c cninja.c combatsc.c compgolf.c contra.c cop01.c copsnrob.c cps2.c cps3.c crbaloon.c crgolf.c crimfght.c crospang.c crshrace.c cshooter.c cvs.c darius.c dassault.c dblewing.c dbz.c dcon.c ddenlovr.c ddragon.c ddragon3.c ddrible.c dec0.c dec8.c deco156.c deco32.c deco_mlc.c deniam.c dietgo.c diverboy.c djmain.c dogfgt.c dominob.c dooyong.c dorachan.c dreamwld.c dynadice.c embargo.c epos.c esd16.c exedexes.c exidy.c exzisus.c fastfred.c fastlane.c finalizr.c firetrap.c fitfight.c flkatck.c freekick.c fromanc2.c fromance.c funkybee.c funkyjet.c funybubl.c fuukifg3.c gaelco.c gaelco2.c gaiden.c galastrm.c galaxold.c galdrvr.c galivan.c galpanic.c galspnbl.c gaplus.c gberet.c gbusters.c gijoe.c gladiatr.c gng.c goal92.c goindol.c gomoku.c gradius3.c gridlee.c groundfx.c gsword.c hanaroku.c hcastle.c hexion.c hnayayoi.c hng64.c homedata.c homerun.c hornet.c hyhoo.c hyperspt.c hyprduel.c igspoker.c imolagp.c inufuku.c ironhors.c itech32.c jack.c jackal.c jailbrek.c jalmah.c jangou.c junofrst.c kaneko16.c kingobox.c kncljoe.c konamigq.c konamigx.c ksayakyu.c labyrunr.c ladybug.c ladyfrog.c lasso.c lastduel.c lethal.c littlerb.c lkage.c ltcasino.c lwings.c m107.c m72.c m90.c m92.c macrossp.c madmotor.c magmax.c mainevt.c malzak.c marinedt.c markham.c matmania.c mayumi.c mazerbla.c mcatadv.c mcr.c mcr3.c megasys1.c megazone.c meijinsn.c meritm.c metro.c mexico86.c mgolf.c midvunit.c mikie.c mil4000.c mirage.c mitchell.c mjkjidai.c mjsister.c mlanding.c model2.c mogura.c momoko.c moo.c mosaic.c mouser.c mrflea.c ms32.c msisaac.c murogem.c murogmbl.c* mystston.c mystwarr.c namcona1.c namconb1.c namcos1.c namcos2.c namcos21.c namcos22.c namcos86.c naomi.c nbmj8688.c nbmj8891.c nbmj8991.c nbmj9195.c nemesis.c neodrvr.c neogeo.c ninjaw.c niyanpai.c nmk16.c nova2001.c nwk-tr.c nycaptor.c ojankohs.c opwolf.c othunder.c overdriv.c pacman.c pandoras.c parentj.c parodius.c pastelg.c pbaction.c pengo.c pgm.c pingpong.c pitnrun.c playch10.c playmark.c plygonet.c pntnpuzl.c pokechmp.c pooyan.c popper.c powerins.c psikyo4.c psikyosh.c puckpkmn.c punchout.c pushman.c qdrmfgp.c qix.c quantum.c quizdna.c quizpani.c rabbit.c raiden.c raiden2.c rainbow.c rallyx.c rastan.c redclash.c renegade.c retofinv.c rmhaihai.c rockrage.c rocnrope.c rohga.c rollerg.c rollrace.c royalmah.c runaway.c rungun.c sauro.c sbasketb.c scobra.c scotrsht.c scramble.c scregg.c sderby.c seta.c seta2.c sf.c shangha3.c shangkid.c shaolins.c sidearms.c simpsons.c skyarmy.c skykid.c slapfght.c slapshot.c sliver.c snowbros.c solomon.c spbactn.c spcforce.c spdodgeb.c speedatk.c splash.c sprint2.c sprint8.c spy.c srmp2.c sshangha.c ssozumo.c ssrj.c ssv.c stactics.c statriv2.c stepstag.c stfight.c strnskil.c supbtime.c superqix.c supertnk.c surpratk.c system1.c system16.c system18.c tagteam.c taito_b.c taito_f2.c taito_h.c taito_l.c taito_x.c taito_z.c taitoair.c taitosj.c tankbatt.c tankbust.c taotaido.c targeth.c tatsumi.c taxidrvr.c tbowl.c tceptor.c tecmo.c tecmo16.c tecmosys.c tehkanwc.c terracre.c tetrisp2.c thepit.c thief.c thoop2.c thunderx.c tiamc1.c timelimt.c timeplt.c tmaster.c tmnt.c tnzs.c toki.c toobin.c topshoot.c topspeed.c toypop.c tp84.c trackfld.c triplhnt.c tsamurai.c ttchamp.c tubep.c tumbleb.c tumblep.c tunhunt.c tutankhm.c twin16.c ultraman.c unico.c vball.c vendetta.c videopkr.c vigilant.c vindictr.c volfied.c warriorb.c wc90.c wecleman.c welltris.c wgp.c wheelfir.c wiz.c wolfpack.c wrally.c xain.c xexex.c xmen.c xyonix.c yiear.c zaccaria.c zn.c zr107.c
[src/mame/includes]dc.h konamipt.h* pgm.h tnzs.h trackfld.h*
[src/mame/machine]atari.c dc.c gdcrypt.c mcr.c naomibd.c pgmcrypt.c tnzs.c
[src/mame/video]cave.c dc.c mcatadv.c system1.c system1.h toaplan2.c
[src/mess]mess.mak messdriv.c
[src/mess/drivers]abc80.c bbcbc.c einstein.c mbee.c mpf1.c nascom1.c super80.c
[src/mess/machine]ac1.c amstrad.c conkort.c kc.c kramermc.c mz700.c
[src/mess/video]vectrex.c
[src/osd/windows]drawd3d.c video.c

src/mame/audio/cinemat.c
r4470r4471
15551555   AM_RANGE(0x5002, 0x5003) AM_DEVWRITE("ay2", ay8910_data_address_w)
15561556   AM_RANGE(0x6000, 0x6001) AM_DEVREAD("ay3", ay8910_r)
15571557   AM_RANGE(0x6002, 0x6003) AM_DEVWRITE("ay3", ay8910_data_address_w)
1558   AM_RANGE(0x7000, 0x7000) AM_WRITE(SMH_NOP)  /* watchdog? */
1558   AM_RANGE(0x7000, 0x7000) AM_WRITENOP  /* watchdog? */
15591559ADDRESS_MAP_END
15601560
15611561
src/mame/audio/trackfld.c
r4470r4471
3636
3737WRITE8_DEVICE_HANDLER( trackfld_sound_w )
3838{
39    if( (offset & 0x07) == 0x03 )
40    {
41        int changes = offset^last_addr;
42        /* A7 = data enable for VLM5030 (don't care )          */
43        /* A8 = STA pin (1->0 data data  , 0->1 start speech   */
44        /* A9 = RST pin 1=reset                                */
39   int changes = offset^last_addr;
40   /* A7 = data enable for VLM5030 (don't care )          */
41   /* A8 = STA pin (1->0 data data  , 0->1 start speech   */
42   /* A9 = RST pin 1=reset                                */
4543
46        /* A8 VLM5030 ST pin */
47        if( changes & 0x100 )
48            vlm5030_st( device, offset&0x100 );
49        /* A9 VLM5030 RST pin */
50        if( changes & 0x200 )
51            vlm5030_rst( device, offset&0x200 );
52    }
44   /* A8 VLM5030 ST pin */
45   if( changes & 0x100 )
46       vlm5030_st( device, offset&0x100 );
47   /* A9 VLM5030 RST pin */
48   if( changes & 0x200 )
49       vlm5030_rst( device, offset&0x200 );
5350    last_addr = offset;
5451}
5552
r4470r4471
106103{
107104    sn76496_w(device, offset, SN76496_latch);
108105}
109
110
111
112
113READ8_HANDLER( hyprolyb_speech_r )
114{
115   return 0x00;
116//    return ADPCM_playing(0) ? 0x10 : 0x00;
117}
118
119WRITE8_HANDLER( hyprolyb_ADPCM_data_w )
120{
121    int cmd,start,end;
122    UINT8 *RAM = memory_region(space->machine, "adpcm");
123
124
125    /* simulate the operation of the 6802 */
126    cmd = RAM[0xfe01 + data] + 256 * RAM[0xfe00 + data];
127    start = RAM[cmd + 1] + 256 * RAM[cmd];
128    end = RAM[cmd + 3] + 256 * RAM[cmd + 2];
129//    if (end > start)
130  //      ADPCM_play(0,start,(end - start)*2);
131}
src/mame/audio/senjyo.c
r4470r4471
2121
2222
2323/* z80 pio */
24static void daisy_interrupt(const device_config *device, int state)
24static WRITE_LINE_DEVICE_HANDLER( daisy_interrupt )
2525{
2626   cputag_set_input_line(device->machine, "sub", 0, state);
2727}
2828
2929const z80pio_interface senjyo_pio_intf =
3030{
31   daisy_interrupt,
32   NULL,
33   NULL,
34   NULL,
35   NULL,
36   NULL,
37   NULL
31   DEVCB_LINE(daisy_interrupt),
32   DEVCB_NULL,
33   DEVCB_NULL,
34   DEVCB_NULL,
35   DEVCB_NULL,
36   DEVCB_NULL,
37   DEVCB_NULL
3838};
3939
4040/* z80 ctc */
src/mame/audio/taitosnd.c
r4470r4471
248248
249249    return res;
250250}
251
252
253
254
255
256
257
258/* wrapper functions for 16bit handlers */
259
260WRITE16_HANDLER( taitosound_port16_lsb_w )
261{
262   if (ACCESSING_BITS_0_7)
263      taitosound_port_w(space,0,data & 0xff);
264}
265WRITE16_HANDLER( taitosound_comm16_lsb_w )
266{
267   if (ACCESSING_BITS_0_7)
268      taitosound_comm_w(space,0,data & 0xff);
269}
270READ16_HANDLER( taitosound_comm16_lsb_r )
271{
272   return taitosound_comm_r(space,0);
273}
274
275
276WRITE16_HANDLER( taitosound_port16_msb_w )
277{
278   if (ACCESSING_BITS_8_15)
279      taitosound_port_w(space,0,data >> 8);
280}
281WRITE16_HANDLER( taitosound_comm16_msb_w )
282{
283   if (ACCESSING_BITS_8_15)
284      taitosound_comm_w(space,0,data >> 8);
285}
286READ16_HANDLER( taitosound_comm16_msb_r )
287{
288   return taitosound_comm_r(space,0) << 8;
289}
290
src/mame/audio/taitosnd.h
r4470r4471
22#define __TAITOSND_H__
33
44
5/* MASTER (16 bit bus) control functions */
6WRITE16_HANDLER( taitosound_port16_lsb_w );
7WRITE16_HANDLER( taitosound_comm16_lsb_w );
8READ16_HANDLER( taitosound_comm16_lsb_r );
9
10WRITE16_HANDLER( taitosound_port16_msb_w );
11WRITE16_HANDLER( taitosound_comm16_msb_w );
12READ16_HANDLER( taitosound_comm16_msb_r );
13
14
155/* MASTER (8bit bus) control functions */
166WRITE8_HANDLER( taitosound_port_w );
177WRITE8_HANDLER( taitosound_comm_w );
src/mame/machine/tnzs.c
r4470r4471
487487
488488*********************************/
489489
490/*
490491static TIMER_CALLBACK( kludge_callback )
491492{
492   tnzs_sharedram[0x0f10] = param;
493    tnzs_sharedram[0x0f10] = param;
493494}
494495
495496static WRITE8_HANDLER( tnzs_sync_kludge_w )
496497{
497   timer_call_after_resynch(space->machine, NULL, data,kludge_callback);
498    timer_call_after_resynch(space->machine, NULL, data,kludge_callback);
498499}
500*/
499501
500502
501503
502
503504DRIVER_INIT( plumpop )
504505{
505506   mcu_type = MCU_PLUMPOP;
r4470r4471
532533{
533534   mcu_type = MCU_TNZS;
534535   /* we need to install a kludge to avoid problems with a bug in the original code */
535   memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w);
536//  memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w);
536537}
537538
538539DRIVER_INIT( tnzsb )
r4470r4471
540541   mcu_type = MCU_NONE_TNZSB;
541542
542543   /* we need to install a kludge to avoid problems with a bug in the original code */
543   memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w);
544//  memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xef10, 0xef10, 0, 0, tnzs_sync_kludge_w);
544545}
545546
546547DRIVER_INIT( kabukiz )
r4470r4471
655656}
656657
657658
658READ8_HANDLER( tnzs_sharedram_r )
659{
660   return tnzs_sharedram[offset];
661}
662659
663WRITE8_HANDLER( tnzs_sharedram_w )
664{
665   tnzs_sharedram[offset] = data;
666}
667
668
669
670660WRITE8_HANDLER( tnzs_bankswitch_w )
671661{
672662   UINT8 *RAM = memory_region(space->machine, "maincpu");
src/mame/machine/atari.c
r4470r4471
256256
257257/**************************************************************
258258
259   Keyboard inputs use 6bits to read the 64keys in the key matrix.
260   We currently read the key matrix by lines and convert the input
261   to the value expected by the POKEY (see the code below to
262   determine atari_code values).
259    Keyboard inputs use 6bits to read the 64keys in the key matrix.
260    We currently read the key matrix by lines and convert the input
261    to the value expected by the POKEY (see the code below to
262    determine atari_code values).
263263
264   K2,K1,K0 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
265   K5,K4,K3
266   ----------------------------------------------------------
267      000    |  L  |  J  |  ;  | (*) |     |  K  |  +  |  *  |
268      001    |  O  |     |  P  |  U  | Ret |  I  |  -  |  =  |
269      010    |  V  |     |  C  |     |     |  B  |  X  |  Z  |
270      011    |  4  |     |  3  |  6  | Esc |  5  |  2  |  1  |
271      100    |  ,  | Spc |  .  |  N  |     |  M  |  /  |Atari|
272      101    |  R  |     |  E  |  Y  | Tab |  T  |  W  |  Q  |
273      110    |  9  |     |  0  |  7  |Bkspc|  8  |  <  |  >  |
274      111    |  F  |  H  |  D  |     | Caps|  G  |  S  |  A  |
264    K2,K1,K0 | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
265    K5,K4,K3
266    ----------------------------------------------------------
267        000  |  L  |  J  |  ;  | (*) |     |  K  |  +  |  *  |
268        001  |  O  |     |  P  |  U  | Ret |  I  |  -  |  =  |
269        010  |  V  |     |  C  |     |     |  B  |  X  |  Z  |
270        011  |  4  |     |  3  |  6  | Esc |  5  |  2  |  1  |
271        100  |  ,  | Spc |  .  |  N  |     |  M  |  /  |Atari|
272        101  |  R  |     |  E  |  Y  | Tab |  T  |  W  |  Q  |
273        110  |  9  |     |  0  |  7  |Bkspc|  8  |  <  |  >  |
274        111  |  F  |  H  |  D  |     | Caps|  G  |  S  |  A  |
275275
276   (*) We use this value to read Break, but in fact it would be read
277       in KR2 bit. This has to be properly implemented for later
278      Atari systems because here we would have F1.
276    (*) We use this value to read Break, but in fact it would be read
277        in KR2 bit. This has to be properly implemented for later
278        Atari systems because here we would have F1.
279279
280   To Do: investigate implementation of KR2 to read accurately Break,
281   Shift and Control keys.
280    To Do: investigate implementation of KR2 to read accurately Break,
281    Shift and Control keys.
282282
283283 **************************************************************/
284284
r4470r4471
345345
346346/**************************************************************
347347
348   A5200 keypad inputs use 4bits to read the 16keys in the key
349   matrix. We currently read the key matrix by lines and convert
350   the input to the value expected by the POKEY (see the code
351   below to determine atari_code values).
348    A5200 keypad inputs use 4bits to read the 16keys in the key
349    matrix. We currently read the key matrix by lines and convert
350    the input to the value expected by the POKEY (see the code
351    below to determine atari_code values).
352352
353   K2,K1,K0 | 00x | 01x | 10x | 11x |
354   K5,K4,K3
355   ----------------------------------
356      x00    |     |  #  |  0  |  *  |
357      x01    |Reset|  9  |  8  |  7  |
358      x10    |Pause|  6  |  5  |  4  |
359      x11    |Start|  3  |  2  |  1  |
353    K2,K1,K0 | 00x | 01x | 10x | 11x |
354    K5,K4,K3
355    ----------------------------------
356        x00  |     |  #  |  0  |  *  |
357        x01  |Reset|  9  |  8  |  7  |
358        x10  |Pause|  6  |  5  |  4  |
359        x11  |Start|  3  |  2  |  1  |
360360
361   K0 & K5 are ignored (we send them as 1, see the code below where
362   we pass "(atari_code << 1) | 0x21" )
361    K0 & K5 are ignored (we send them as 1, see the code below where
362    we pass "(atari_code << 1) | 0x21" )
363363
364   To Do: investigate implementation of KR2 to read accurately the
365   secondary Fire button (primary read through GTIA).
364    To Do: investigate implementation of KR2 to read accurately the
365    secondary Fire button (primary read through GTIA).
366366
367367 **************************************************************/
368368
src/mame/machine/pgmcrypt.c
r4470r4471
345345   int i;
346346   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
347347
348   int rom_size = 0x200000;
348   int rom_size = 0x400000;
349349
350350   for(i=0; i<rom_size/2; i++) {
351351       UINT16 x = src[i];
r4470r4471
692692   int i;
693693   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
694694
695   int rom_size = 0x800000;
695   int rom_size = 0x200000;
696696
697697   for(i=0; i<rom_size/2; i++) {
698698      UINT16 x = src[i];
r4470r4471
728728}
729729
730730
731void pgm_svg_decrypt(running_machine *machine)
731static const UINT8 oldsplus_tab[256] = {
732   0x49, 0x47, 0x53, 0x30, 0x30, 0x31, 0x33, 0x52, 0x44, 0x31, 0x30, 0x34, 0x30, 0x37, 0x32, 0x37,
733   0xF5, 0x79, 0x6D, 0xAB, 0x04, 0x22, 0x51, 0x96, 0xF2, 0x72, 0xE8, 0x3A, 0x96, 0xD2, 0x9A, 0xCC,
734   0x3F, 0x47, 0x3C, 0x09, 0xF2, 0xD9, 0x72, 0x41, 0xE6, 0x44, 0x43, 0xA7, 0x3E, 0xE2, 0xFD, 0xD8,
735   0x06, 0xD8, 0x4C, 0xA9, 0x70, 0x80, 0x95, 0x35, 0x50, 0x17, 0x99, 0x27, 0xD5, 0xA8, 0x47, 0x45,
736   0x89, 0x38, 0xE1, 0x3D, 0x8C, 0x33, 0x53, 0xB4, 0x0D, 0x17, 0xD1, 0x8D, 0x09, 0x5F, 0xAF, 0x76,
737   0x48, 0xB2, 0x85, 0xB9, 0x95, 0x4C, 0x83, 0x42, 0x3D, 0xAD, 0x11, 0xEC, 0xCA, 0x82, 0xAC, 0x10,
738   0x01, 0xD0, 0xFD, 0x50, 0x19, 0x67, 0x3B, 0xA0, 0x3E, 0x86, 0xC2, 0x97, 0x46, 0xCB, 0xF4, 0xF5,
739   0xB3, 0x5F, 0x50, 0x74, 0xE9, 0x5F, 0xD2, 0xD4, 0xB0, 0x8D, 0x8A, 0x21, 0xED, 0x37, 0x80, 0x47,
740   0x9D, 0x68, 0xC7, 0xD9, 0x12, 0x4E, 0xDF, 0x1E, 0x72, 0xEB, 0x50, 0x5E, 0x6D, 0x00, 0x85, 0x6B,
741   0x3E, 0x37, 0xE6, 0x72, 0xE5, 0x8F, 0x3A, 0x03, 0xA3, 0x0D, 0x3B, 0x5F, 0xB6, 0xA1, 0x7B, 0x02,
742   0x56, 0x56, 0x77, 0x71, 0xEF, 0xBE, 0xF9, 0x46, 0xA1, 0x9D, 0xB3, 0x79, 0xF6, 0xD5, 0x19, 0xF0,
743   0xE2, 0x91, 0x7E, 0x4A, 0x01, 0xB6, 0x73, 0xE8, 0x0C, 0x86, 0x5D, 0x3E, 0x9C, 0x97, 0x55, 0x58,
744   0x23, 0xF4, 0x45, 0xB0, 0x28, 0x91, 0x40, 0x2F, 0xC2, 0xF4, 0x21, 0x81, 0x58, 0x22, 0x68, 0x9D,
745   0x97, 0xC7, 0x51, 0x95, 0xB4, 0xAA, 0x36, 0x9B, 0xE4, 0x51, 0x27, 0x55, 0x18, 0xF0, 0xC7, 0x62,
746   0xFE, 0x98, 0x6A, 0x2D, 0x35, 0x9D, 0x6C, 0xF1, 0xCF, 0x48, 0xD4, 0x0D, 0x0C, 0xBE, 0x2A, 0x8A,
747   0x55, 0x31, 0x96, 0xEA, 0x78, 0x45, 0x3A, 0x33, 0x23, 0xC5, 0xD1, 0x3C, 0xA3, 0x86, 0x88, 0x38,
748};
749
750void pgm_oldsplus_decrypt(running_machine *machine)
732751{
733752   int i;
734   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
753   unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu")+0x100000);
735754
736   int rom_size = 0x800000;
755   int rom_size = 0x400000;
737756
738757   for(i=0; i<rom_size/2; i++) {
739      UINT16 x = src[i];
758      unsigned short x = src[i];
740759
741      if((i & 0x040080) != 0x000080)
760      if((i & 0x040480) != 0x000080 )
742761         x ^= 0x0001;
743762
744      if((i & 0x004008) == 0x004008)
763      if((i & 0x004008) == 0x004008 )
745764         x ^= 0x0002;
746765
747      if((i & 0x080030) == 0x080010)
766      if((i & 0x000030) == 0x000010 )
748767         x ^= 0x0004;
749768
750      if((i & 0x000042) != 0x000042)
769      if((i & 0x000242) != 0x000042 )
751770         x ^= 0x0008;
752771
753      if((i & 0x048100) == 0x048000)
772      if((i & 0x048100) == 0x048000 )
754773         x ^= 0x0010;
755774
756      if((i & 0x002004) != 0x000004)
775      if((i & 0x002004) != 0x000004 )
757776         x ^= 0x0020;
758777
759      if((i & 0x011800) != 0x010000)
778      if((i & 0x011800) != 0x010000 )
760779         x ^= 0x0040;
761780
762      if((i & 0x000820) == 0x000820)
781      if((i & 0x000820) == 0x000820 )
763782         x ^= 0x0080;
764783
784      x ^= oldsplus_tab[i & 0xff] << 8;
785
765786      src[i] = x;
766787   }
767788}
768789
769790
770static const UINT8 killbldp_tab[256] = {
771   0x49,0x47,0x53,0x30,0x30,0x32,0x34,0x52,0x44,0x31,0x30,0x35,0x30,0x39,0x30,0x38,
772   0x12,0xA0,0xD1,0x9E,0xB1,0x8A,0xFB,0x1F,0x50,0x51,0x4B,0x81,0x28,0xDA,0x5F,0x41,
773   0x78,0x6C,0x7A,0xF0,0xCD,0x6B,0x69,0x14,0x94,0x55,0xB6,0x42,0xDF,0xFE,0x10,0x79,
774   0x74,0x08,0xFA,0xC0,0x1C,0xA5,0xB4,0x03,0x2A,0x91,0x67,0x2B,0x49,0x4A,0x94,0x7D,
775   0x8B,0x92,0xBE,0x35,0xAF,0x28,0x56,0x63,0xB3,0xC2,0xE8,0x06,0x9B,0x4E,0x85,0x66,
776   0x7F,0x6B,0x70,0xB7,0xDB,0x22,0x0C,0xEB,0x13,0xE9,0x06,0xD7,0x45,0xDA,0xBE,0x8B,
777   0x54,0x30,0xFC,0xEB,0x32,0x02,0xD0,0x92,0x6D,0x44,0xCA,0xE8,0xFD,0xFB,0x5B,0x81,
778   0x4C,0xC0,0x8B,0xB9,0x87,0x78,0xDD,0x8E,0x24,0x52,0x80,0xBE,0xB4,0x01,0xB7,0x21,
779   0xEB,0x3C,0x8A,0x49,0xED,0x73,0xAE,0x58,0xDB,0xD2,0xB2,0x21,0x9E,0x7C,0x6C,0x82,
780   0xF3,0x01,0xA3,0x00,0xB7,0x21,0xFE,0xA5,0x75,0xC4,0x2D,0x17,0x2D,0x39,0x56,0xF9,
781   0x67,0xAE,0xC2,0x87,0x79,0xF1,0xC8,0x6D,0x15,0x66,0xFA,0xE8,0x16,0x48,0x8F,0x1F,
782   0x8B,0x24,0x10,0xC4,0x04,0x93,0x47,0xE6,0x1D,0x37,0x65,0x1A,0x49,0xF8,0x72,0xCB,
783   0xE1,0x80,0xFA,0xDD,0x6D,0xF5,0xF6,0x89,0x32,0xF6,0xF8,0x75,0xFC,0xD8,0x9B,0x12,
784   0x2D,0x22,0x2A,0x3B,0x06,0x46,0x90,0x0C,0x35,0xA2,0x80,0xFF,0xA0,0xB7,0xE5,0x4D,
785   0x71,0xA9,0x8C,0x84,0x62,0xF7,0x10,0x65,0x4A,0x7B,0x06,0x00,0xE8,0xA4,0x6A,0x13,
786   0xF0,0xF3,0x4A,0x9F,0x54,0xB4,0xB1,0xCC,0xD4,0xFF,0xD6,0xFF,0xC9,0xEE,0x86,0x39,
791static const UINT8 kovshp_tab[256] = {
792   0x49, 0x47, 0x53, 0x30, 0x30, 0x30, 0x39, 0x72, 0x64, 0x31, 0x30, 0x34, 0x30, 0x32, 0x31, 0x39,
793   0xF9, 0x8C, 0xBD, 0x87, 0x16, 0x07, 0x39, 0xEB, 0x29, 0x9E, 0x17, 0xEF, 0x4F, 0x64, 0x7C, 0xE0,
794   0x5F, 0x73, 0x5B, 0xA1, 0x5E, 0x95, 0x0D, 0xF1, 0x40, 0x36, 0x2F, 0x00, 0xE2, 0x8A, 0xBC, 0x32,
795   0x44, 0xFA, 0x6C, 0x33, 0x0B, 0xD5, 0x4C, 0x3B, 0x36, 0x34, 0x9E, 0xA3, 0x20, 0x2E, 0xF3, 0xA9,
796   0xB7, 0x3E, 0x87, 0x80, 0xFB, 0xF1, 0xDD, 0x9C, 0xBA, 0xD3, 0x9B, 0x3B, 0x8A, 0x9C, 0xA8, 0x37,
797   0x07, 0x97, 0x84, 0x0C, 0x4E, 0x54, 0xE7, 0x25, 0xBA, 0x8E, 0x9D, 0x6B, 0xDE, 0x5F, 0xA1, 0x10,
798   0xC3, 0xA2, 0x79, 0x99, 0x63, 0xA9, 0xD1, 0x2A, 0x65, 0x20, 0x5B, 0x16, 0x1B, 0x41, 0xE6, 0xA7,
799   0xBA, 0x3A, 0xBD, 0x2A, 0xD8, 0xDB, 0x43, 0x3F, 0x2B, 0x85, 0xCC, 0x5F, 0x80, 0x4F, 0xBE, 0xAE,
800   0xFA, 0x79, 0xE8, 0x03, 0x8D, 0x16, 0x22, 0x35, 0xBB, 0xF6, 0x26, 0xA9, 0x8D, 0xD2, 0xAF, 0x19,
801   0xD4, 0xBB, 0xD0, 0xA6, 0xA1, 0xC4, 0x96, 0x21, 0x02, 0xEF, 0xE1, 0x96, 0x00, 0x56, 0x80, 0x1B,
802   0xD6, 0x9A, 0x8C, 0xD7, 0x73, 0x91, 0x07, 0x55, 0x32, 0x2B, 0xB5, 0x0B, 0xD8, 0xA5, 0x39, 0x26,
803   0xCE, 0xF2, 0x74, 0x98, 0xA1, 0x66, 0x1A, 0x64, 0xB8, 0xA5, 0x96, 0x29, 0x54, 0xCB, 0x21, 0xED,
804   0xCD, 0xDD, 0x1E, 0x2C, 0x0B, 0x70, 0xB8, 0x22, 0x43, 0x98, 0xBE, 0x54, 0xF3, 0x14, 0xBE, 0x65,
805   0x21, 0xB7, 0x61, 0x17, 0xCF, 0x19, 0x07, 0xA0, 0xC2, 0x7F, 0xA3, 0x30, 0x75, 0x08, 0xD8, 0xBF,
806   0x58, 0x1A, 0x55, 0x1B, 0x4E, 0x0D, 0x6D, 0x32, 0x65, 0x15, 0xFB, 0x9E, 0xD8, 0x75, 0x76, 0x6F,
807   0x42, 0xE2, 0x4F, 0x3C, 0x25, 0x35, 0x93, 0x6C, 0x9B, 0x56, 0xBE, 0xC1, 0x5B, 0x65, 0xDE, 0x27,
787808};
788809
789void pgm_killbldp_decrypt(running_machine *machine)
810void pgm_kovshp_decrypt(running_machine *machine)
790811{
791812   int i;
792   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
813   unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu")+0x100000);
793814
794   int rom_size = 0x800000;
815   int rom_size = 0x400000;
795816
796817   for(i=0; i<rom_size/2; i++) {
797      UINT16 x = src[i];
818      unsigned short x = src[i];
798819
799      if((i & 0x040480) != 0x000080)
820      if((i & 0x040080) != 0x000080)
800821         x ^= 0x0001;
801822
802      if((i & 0x104008) == 0x104008)
823      if((i & 0x004008) == 0x004008 && (i & 0x180000) != 0x000000)
803824         x ^= 0x0002;
804825
805      if((i & 0x080030) == 0x080010)
826      if((i & 0x000030) == 0x000010)
806827         x ^= 0x0004;
807828
808      if((i & 0x000242) != 0x000042)
829      if((i & 0x000042) != 0x000042)
809830         x ^= 0x0008;
810831
811832      if((i & 0x008100) == 0x008000)
812833         x ^= 0x0010;
813834
814      if((i & 0x002004) != 0x000004)
835      if((i & 0x022004) != 0x000004)
815836         x ^= 0x0020;
816837
817838      if((i & 0x011800) != 0x010000)
r4470r4471
820841      if((i & 0x000820) == 0x000820)
821842         x ^= 0x0080;
822843
823      x ^= killbldp_tab[(i >> 1) & 0xff] << 8;
844      x ^= kovshp_tab[i & 0xff] << 8;
824845
825846      src[i] = x;
826847   }
827848}
828849
829850
830static const UINT8 kovh_tab[256] = {
831   0x49,0x47,0x53,0x30,0x30,0x30,0x39,0x72,0x64,0x31,0x30,0x34,0x30,0x32,0x31,0x39,
832   0xF9,0x8C,0xBD,0x87,0x16,0x07,0x39,0xEB,0x29,0x9E,0x17,0xEF,0x4F,0x64,0x7C,0xE0,
833   0x5F,0x73,0x5B,0xA1,0x5E,0x95,0x0D,0xF1,0x40,0x36,0x2F,0x00,0xE2,0x8A,0xBC,0x32,
834   0x44,0xFA,0x6C,0x33,0x0B,0xD5,0x4C,0x3B,0x36,0x34,0x9E,0xA3,0x20,0x2E,0xF3,0xA9,
835   0xB7,0x3E,0x87,0x80,0xFB,0xF1,0xDD,0x9C,0xBA,0xD3,0x9B,0x3B,0x8A,0x9C,0xA8,0x37,
836   0x07,0x97,0x84,0x0C,0x4E,0x54,0xE7,0x25,0xBA,0x8E,0x9D,0x6B,0xDE,0x5F,0xA1,0x10,
837   0xC3,0xA2,0x79,0x99,0x63,0xA9,0xD1,0x2A,0x65,0x20,0x5B,0x16,0x1B,0x41,0xE6,0xA7,
838   0xBA,0x3A,0xBD,0x2A,0xD8,0xDB,0x43,0x3F,0x2B,0x85,0xCC,0x5F,0x80,0x4F,0xBE,0xAE,
839   0xFA,0x79,0xE8,0x03,0x8D,0x16,0x22,0x35,0xBB,0xF6,0x26,0xA9,0x8D,0xD2,0xAF,0x19,
840   0xD4,0xBB,0xD0,0xA6,0xA1,0xC4,0x96,0x21,0x02,0xEF,0xE1,0x96,0x00,0x56,0x80,0x1B,
841   0xD6,0x9A,0x8C,0xD7,0x73,0x91,0x07,0x55,0x32,0x2B,0xB5,0x0B,0xD8,0xA5,0x39,0x26,
842   0xCE,0xF2,0x74,0x98,0xA1,0x66,0x1A,0x64,0xB8,0xA5,0x96,0x29,0x54,0xCB,0x21,0xED,
843   0xCD,0xDD,0x1E,0x2C,0x0B,0x70,0xB8,0x22,0x43,0x98,0xBE,0x54,0xF3,0x14,0xBE,0x65,
844   0x21,0xB7,0x61,0x17,0xCF,0x19,0x07,0xA0,0xC2,0x7F,0xA3,0x30,0x75,0x08,0xD8,0xBF,
845   0x58,0x1A,0x55,0x1B,0x4E,0x0D,0x6D,0x32,0x65,0x15,0xFB,0x9E,0xD8,0x75,0x76,0x6F,
846   0x42,0xE2,0x4F,0x3C,0x25,0x35,0x93,0x6C,0x9B,0x56,0xBE,0xC1,0x5B,0x65,0xDE,0x27,
851static const UINT8 killbldp_tab[256] = {
852   0x49, 0x47, 0x53, 0x30, 0x30, 0x32, 0x34, 0x52, 0x44, 0x31, 0x30, 0x35, 0x30, 0x39, 0x30, 0x38,
853   0x12, 0xA0, 0xD1, 0x9E, 0xB1, 0x8A, 0xFB, 0x1F, 0x50, 0x51, 0x4B, 0x81, 0x28, 0xDA, 0x5F, 0x41,
854   0x78, 0x6C, 0x7A, 0xF0, 0xCD, 0x6B, 0x69, 0x14, 0x94, 0x55, 0xB6, 0x42, 0xDF, 0xFE, 0x10, 0x79,
855   0x74, 0x08, 0xFA, 0xC0, 0x1C, 0xA5, 0xB4, 0x03, 0x2A, 0x91, 0x67, 0x2B, 0x49, 0x4A, 0x94, 0x7D,
856   0x8B, 0x92, 0xBE, 0x35, 0xAF, 0x28, 0x56, 0x63, 0xB3, 0xC2, 0xE8, 0x06, 0x9B, 0x4E, 0x85, 0x66,
857   0x7F, 0x6B, 0x70, 0xB7, 0xDB, 0x22, 0x0C, 0xEB, 0x13, 0xE9, 0x06, 0xD7, 0x45, 0xDA, 0xBE, 0x8B,
858   0x54, 0x30, 0xFC, 0xEB, 0x32, 0x02, 0xD0, 0x92, 0x6D, 0x44, 0xCA, 0xE8, 0xFD, 0xFB, 0x5B, 0x81,
859   0x4C, 0xC0, 0x8B, 0xB9, 0x87, 0x78, 0xDD, 0x8E, 0x24, 0x52, 0x80, 0xBE, 0xB4, 0x01, 0xB7, 0x21,
860   0xEB, 0x3C, 0x8A, 0x49, 0xED, 0x73, 0xAE, 0x58, 0xDB, 0xD2, 0xB2, 0x21, 0x9E, 0x7C, 0x6C, 0x82,
861   0xF3, 0x01, 0xA3, 0x00, 0xB7, 0x21, 0xFE, 0xA5, 0x75, 0xC4, 0x2D, 0x17, 0x2D, 0x39, 0x56, 0xF9,
862   0x67, 0xAE, 0xC2, 0x87, 0x79, 0xF1, 0xC8, 0x6D, 0x15, 0x66, 0xFA, 0xE8, 0x16, 0x48, 0x8F, 0x1F,
863   0x8B, 0x24, 0x10, 0xC4, 0x04, 0x93, 0x47, 0xE6, 0x1D, 0x37, 0x65, 0x1A, 0x49, 0xF8, 0x72, 0xCB,
864   0xE1, 0x80, 0xFA, 0xDD, 0x6D, 0xF5, 0xF6, 0x89, 0x32, 0xF6, 0xF8, 0x75, 0xFC, 0xD8, 0x9B, 0x12,
865   0x2D, 0x22, 0x2A, 0x3B, 0x06, 0x46, 0x90, 0x0C, 0x35, 0xA2, 0x80, 0xFF, 0xA0, 0xB7, 0xE5, 0x4D,
866   0x71, 0xA9, 0x8C, 0x84, 0x62, 0xF7, 0x10, 0x65, 0x4A, 0x7B, 0x06, 0x00, 0xE8, 0xA4, 0x6A, 0x13,
867   0xF0, 0xF3, 0x4A, 0x9F, 0x54, 0xB4, 0xB1, 0xCC, 0xD4, 0xFF, 0xD6, 0xFF, 0xC9, 0xEE, 0x86, 0x39,
847868};
848869
849void pgm_kovh_decrypt(running_machine *machine)
870void pgm_killbldp_decrypt(running_machine *machine)
850871{
851872   int i;
852   unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu")+0x100000);
873   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
853874
854   int rom_size = 0x400000;
875   int rom_size = 0x200000;
855876
856877   for(i=0; i<rom_size/2; i++) {
857      unsigned short x = src[i];
878      UINT16 x = src[i];
858879
859      if((i & 0x040080) != 0x000080)
880      if((i & 0x040480) != 0x000080)
860881         x ^= 0x0001;
861882
862      if((i & 0x004008) == 0x004008 && (i & 0x180000) != 0x000000)
883      if((i & 0x104008) == 0x104008)
863884         x ^= 0x0002;
864885
865      if((i & 0x000030) == 0x000010)
886      if((i & 0x080030) == 0x080010)
866887         x ^= 0x0004;
867888
868      if((i & 0x000042) != 0x000042)
889      if((i & 0x000242) != 0x000042)
869890         x ^= 0x0008;
870891
871892      if((i & 0x008100) == 0x008000)
872893         x ^= 0x0010;
873894
874      if((i & 0x022004) != 0x000004)
895      if((i & 0x002004) != 0x000004)
875896         x ^= 0x0020;
876897
877898      if((i & 0x011800) != 0x010000)
r4470r4471
880901      if((i & 0x000820) == 0x000820)
881902         x ^= 0x0080;
882903
883      x ^= kovh_tab[i & 0xff] << 8;
904      x ^= killbldp_tab[(i >> 1) & 0xff] << 8;
884905
885906      src[i] = x;
886907   }
887908}
888909
889910
890static const UINT8 oldss_tab[256] = {
891   0x49,0x47,0x53,0x30,0x30,0x31,0x33,0x52,0x44,0x31,0x30,0x34,0x30,0x37,0x32,0x37,
892   0xF5,0x79,0x6D,0xAB,0x04,0x22,0x51,0x96,0xF2,0x72,0xE8,0x3A,0x96,0xD2,0x9A,0xCC,
893   0x3F,0x47,0x3C,0x09,0xF2,0xD9,0x72,0x41,0xE6,0x44,0x43,0xA7,0x3E,0xE2,0xFD,0xD8,
894   0x06,0xD8,0x4C,0xA9,0x70,0x80,0x95,0x35,0x50,0x17,0x99,0x27,0xD5,0xA8,0x47,0x45,
895   0x89,0x38,0xE1,0x3D,0x8C,0x33,0x53,0xB4,0x0D,0x17,0xD1,0x8D,0x09,0x5F,0xAF,0x76,
896   0x48,0xB2,0x85,0xB9,0x95,0x4C,0x83,0x42,0x3D,0xAD,0x11,0xEC,0xCA,0x82,0xAC,0x10,
897   0x01,0xD0,0xFD,0x50,0x19,0x67,0x3B,0xA0,0x3E,0x86,0xC2,0x97,0x46,0xCB,0xF4,0xF5,
898   0xB3,0x5F,0x50,0x74,0xE9,0x5F,0xD2,0xD4,0xB0,0x8D,0x8A,0x21,0xED,0x37,0x80,0x47,
899   0x9D,0x68,0xC7,0xD9,0x12,0x4E,0xDF,0x1E,0x72,0xEB,0x50,0x5E,0x6D,0x00,0x85,0x6B,
900   0x3E,0x37,0xE6,0x72,0xE5,0x8F,0x3A,0x03,0xA3,0x0D,0x3B,0x5F,0xB6,0xA1,0x7B,0x02,
901   0x56,0x56,0x77,0x71,0xEF,0xBE,0xF9,0x46,0xA1,0x9D,0xB3,0x79,0xF6,0xD5,0x19,0xF0,
902   0xE2,0x91,0x7E,0x4A,0x01,0xB6,0x73,0xE8,0x0C,0x86,0x5D,0x3E,0x9C,0x97,0x55,0x58,
903   0x23,0xF4,0x45,0xB0,0x28,0x91,0x40,0x2F,0xC2,0xF4,0x21,0x81,0x58,0x22,0x68,0x9D,
904   0x97,0xC7,0x51,0x95,0xB4,0xAA,0x36,0x9B,0xE4,0x51,0x27,0x55,0x18,0xF0,0xC7,0x62,
905   0xFE,0x98,0x6A,0x2D,0x35,0x9D,0x6C,0xF1,0xCF,0x48,0xD4,0x0D,0x0C,0xBE,0x2A,0x8A,
906   0x55,0x31,0x96,0xEA,0x78,0x45,0x3A,0x33,0x23,0xC5,0xD1,0x3C,0xA3,0x86,0x88,0x38,
907};
908
909void pgm_oldss_decrypt(running_machine *machine)
911void pgm_svg_decrypt(running_machine *machine)
910912{
911913   int i;
912   unsigned short *src = (unsigned short *)(memory_region(machine, "maincpu")+0x100000);
914   UINT16 *src = (UINT16 *)(memory_region(machine, "user1"));
913915
914   int rom_size = 0x400000;
916   int rom_size = 0x800000;
915917
916918   for(i=0; i<rom_size/2; i++) {
917      unsigned short x = src[i];
919      UINT16 x = src[i];
918920
919      if((i & 0x040480) != 0x000080 )
921      if((i & 0x040080) != 0x000080)
920922         x ^= 0x0001;
921923
922      if((i & 0x004008) == 0x004008 )
924      if((i & 0x004008) == 0x004008)
923925         x ^= 0x0002;
924926
925      if((i & 0x000030) == 0x000010 )
927      if((i & 0x080030) == 0x080010)
926928         x ^= 0x0004;
927929
928      if((i & 0x000242) != 0x000042 )
930      if((i & 0x000042) != 0x000042)
929931         x ^= 0x0008;
930932
931      if((i & 0x048100) == 0x048000 )
933      if((i & 0x048100) == 0x048000)
932934         x ^= 0x0010;
933935
934      if((i & 0x002004) != 0x000004 )
936      if((i & 0x002004) != 0x000004)
935937         x ^= 0x0020;
936938
937      if((i & 0x011800) != 0x010000 )
939      if((i & 0x011800) != 0x010000)
938940         x ^= 0x0040;
939941
940      if((i & 0x000820) == 0x000820 )
942      if((i & 0x000820) == 0x000820)
941943         x ^= 0x0080;
942944
943      x ^= oldss_tab[i & 0xff] << 8;
944
945945      src[i] = x;
946946   }
947947}
src/mame/machine/dc.c
r4470r4471
124124static UINT32 maple_regs[0x100/4];
125125static UINT32 dc_rtcregister[4];
126126static UINT32 g1bus_regs[0x100/4];
127static UINT32 g2bus_regs[0x100/4];
127128UINT8 maple0x86data1[0x80];
128129static UINT8 maple0x86data2[0x400];
129130static emu_timer *dc_rtc_timer;
r4470r4471
274275      case SB_C2DST:
275276         address=dc_sysctrl_regs[SB_C2DSTAT];
276277         ddtdata.destination=address;
278         /* 0 rounding size = 16 Mbytes */
279         if(dc_sysctrl_regs[SB_C2DLEN] == 0) { dc_sysctrl_regs[SB_C2DLEN] = 0x1000000; }
277280         ddtdata.length=dc_sysctrl_regs[SB_C2DLEN];
278281         ddtdata.size=1;
279282         ddtdata.direction=0;
r4470r4471
625628                           jvs_command=0;
626629                           ddtdata.length = (tocopy+7)/4;
627630                        }
631                        else if (subcommand == 0x33) // "direct mode" input port reading
632                        {
633                           int tocopy;
634
635                           maple0x86data2[0] = 0xa0;
636                           for (a=1;a < 32;a++)
637                              maple0x86data2[a] = maple0x86data2[a-1] + 1;
638                           maple0x86data2[3] = maple0x86data2[3] | 0x0c;
639                           maple0x86data2[6] = maple0x86data2[6] & 0xcf;
640
641                           a = input_port_read(space->machine, "IN0"); // put keys here
642                           maple0x86data2[6] = maple0x86data2[6] | (a << 4);
643
644                           tocopy = 8+0x11+16;
645                           /* valid data check*/
646                           maple0x86data2[0x11] = 0x00;
647                           maple0x86data2[0x12] = 0x8e;
648                           maple0x86data2[0x13] = 0x01;
649                           maple0x86data2[0x14] = 0x00;
650                           maple0x86data2[0x15] = 0xff;
651                           maple0x86data2[0x16] = 0xe0;
652                           maple0x86data2[0x19] = 0x01;
653
654                           /* read the inputs */
655                           maple0x86data2[0x1a]=1;
656                           maple0x86data2[0x1b]=2; //number of players
657                           maple0x86data2[0x1c]=input_port_read(space->machine, "IN1");
658                           maple0x86data2[0x1d]=input_port_read(space->machine, "IN2");
659                           maple0x86data2[0x1e]=input_port_read(space->machine, "IN3");
660                           maple0x86data2[0x1f]=input_port_read(space->machine, "IN4");
661                           maple0x86data2[0x20]=1;
662                           maple0x86data2[0x21]=(dc_coin_counts[0] >> 8) & 0xff; //coin counter read-back hi byte
663                           maple0x86data2[0x22]=dc_coin_counts[0] & 0xff; //coin counter read-back lo byte
664                           maple0x86data2[0x23]=(dc_coin_counts[1] >> 8) & 0xff;
665                           maple0x86data2[0x24]=dc_coin_counts[1] & 0xff;
666                           maple0x86data2[0x25]=1;
667                           maple0x86data2[0x26]=1;
668                           maple0x86data2[0x27]=0;
669                           maple0x86data2[0x28]=0;
670                           maple0x86data2[0x29]=0;
671                           maple0x86data2[0x2a]=0;
672                           /*0x2b-0x2f rotary inputs */
673                           //...
674
675                           // command end flag
676                           maple0x86data2[0x18]= (jvs_command == -1) ? 19 : 17;
677                           maple0x86data2[0x15]= (jvs_command == -1) ? 24 : 16;
678
679                           for (a=0;a < tocopy;a=a+4)
680                              buff[1+a/4] = maple0x86data2[a] | (maple0x86data2[a+1] << 8) | (maple0x86data2[a+2] << 16) | (maple0x86data2[a+3] << 24);
681
682                           //jvs_command=0;
683                           ddtdata.length = (tocopy+7)/4;
684                        }
628685                        else if (subcommand == 0x21)
629686                        {
630687                           // 21,*c295407 (77),*c295404,*c295405,*c295406,0,1,0
r4470r4471
751808   dat = (UINT32)(data >> shift);
752809   old = g1bus_regs[reg];
753810
754   g1bus_regs[reg] = dat; // 5f6c00+reg*4=dat
811   g1bus_regs[reg] = dat; // 5f7400+reg*4=dat
755812   mame_printf_verbose("G1CTRL: [%08x=%x] write %llx to %x, mask %llx\n", 0x5f7400+reg*4, dat, data, offset, mem_mask);
756813   switch (reg)
757814   {
758815   case SB_GDST:
759      if (!(old & 1) && (dat & 1)) // 0 -> 1
816      if (dat & 1 && g1bus_regs[SB_GDEN] == 1) // 0 -> 1
760817      {
761         if ((g1bus_regs[SB_GDEN] == 0) || (g1bus_regs[SB_GDDIR] == 0))
818         if (g1bus_regs[SB_GDDIR] == 0)
762819         {
763820            mame_printf_verbose("G1CTRL: unsupported transfer\n");
764821            return;
r4470r4471
788845
789846   reg = decode_reg32_64(space->machine, offset, mem_mask, &shift);
790847   mame_printf_verbose("G2CTRL:  Unmapped read %08x\n", 0x5f7800+reg*4);
791   return 0;
848   return (UINT64)g2bus_regs[reg] << shift;
792849}
793850
794851WRITE64_HANDLER( dc_g2_ctrl_w )
795852{
796853   int reg;
797854   UINT64 shift;
798   UINT32 dat;
799   static UINT32 wave_dma_aica_addr,wave_dma_root_addr,wave_dma_size,wave_dma_dir,wave_dma_flag;
855   UINT32 dat,old;
856   static struct {
857      UINT32 aica_addr;
858      UINT32 root_addr;
859      UINT32 size;
860      UINT8 dir;
861      UINT8 flag;
862      UINT8 indirect;
863      UINT8 start;
864   }wave_dma;
800865
801866   reg = decode_reg32_64(space->machine, offset, mem_mask, &shift);
802867   dat = (UINT32)(data >> shift);
868   old = g2bus_regs[reg];
869
870   g2bus_regs[reg] = dat; // 5f7800+reg*4=dat
871
803872   switch (reg)
804873   {
805874      /*AICA Address register*/
806      case SB_ADSTAG:
807         //printf("SB_ADSTAG data %08x\n",dat);
808         wave_dma_aica_addr = dat;
809         break;
875      case SB_ADSTAG: wave_dma.aica_addr = dat; break;
810876      /*Root address (work ram)*/
811      case SB_ADSTAR:
812         //printf("SB_ADSTAR data %08x\n",dat);
813         wave_dma_root_addr = dat;
814         break;
877      case SB_ADSTAR:   wave_dma.root_addr = dat; break;
815878      /*DMA size (in dword units, bit 31 is "set dma initiation enable setting to 0"*/
816879      case SB_ADLEN:
817         //printf("SB_ADLEN data %08x\n",dat);
818         wave_dma_size = dat & 0x7fffffff;
880         wave_dma.size = dat & 0x7fffffff;
881         wave_dma.indirect = (dat & 0x80000000)>>31;
819882         break;
820883      /*0 = root memory to aica / 1 = aica to root memory*/
821      case SB_ADDIR:
822         //printf("SB_ADDIR data %08x\n",dat);
823         wave_dma_dir = 1 ^ (dat & 1);
824         break;
884      case SB_ADDIR: wave_dma.dir = (dat & 1); break;
825885      /*dma flag (active HIGH, bug in docs)*/
826      case SB_ADEN:
827         //printf("SB_ADEN data %08x\n",dat);
828         wave_dma_flag = (dat & 1);
829         break;
886      case SB_ADEN: wave_dma.flag = (dat & 1); break;
830887      case SB_ADTSEL:
831888         mame_printf_verbose("G2CTRL: initiation mode %d\n",dat);
832         //printf("SB_ADTSEL data %08x\n",dat);
889         //mame_printf_verbose("SB_ADTSEL data %08x\n",dat);
833890         break;
834891      /*ready for dma'ing*/
835892      case SB_ADST:
836893         mame_printf_verbose("G2CTRL: AICA:G2-DMA start\n");
837         //printf("SB_ADST data %08x\n",dat);
838         if(wave_dma_flag)
894         //mame_printf_verbose("AICA: G2-DMA start\n");
895         //mame_printf_verbose("%08x %08x %08x %02x\n",wave_dma.aica_addr,wave_dma.root_addr,wave_dma.size,wave_dma.indirect);
896         wave_dma.start = dat & 1;
897         //mame_printf_verbose("SB_ADST data %08x\n",dat);
898         if(wave_dma.flag && wave_dma.start)
839899         {
840900            UINT32 src,dst,size;
841            src = wave_dma_aica_addr;
842            dst = wave_dma_root_addr;
843            //size = wave_dma_size;
901            dst = wave_dma.aica_addr;
902            src = wave_dma.root_addr;
844903            size = 0;
904            /* 0 rounding size = 32 Mbytes */
905            if(wave_dma.size == 0) { wave_dma.size = 0x200000; }
906
845907            /* TODO: use the ddt function. */
846            if(wave_dma_dir == 1)
908            if(wave_dma.dir == 0)
847909            {
848               for(;size<wave_dma_size;size++)
849                  memory_write_dword_64le(space,wave_dma_aica_addr+size*4,memory_read_dword(space,wave_dma_root_addr+size*4));
910               for(;size<wave_dma.size;size+=4)
911               {
912                  memory_write_dword_64le(space,dst,memory_read_dword(space,src));
913                  src+=4;
914                  dst+=4;
915               }
850916            }
851917            else
852918            {
853               for(;size<wave_dma_size;size++)
854                  memory_write_dword_64le(space,wave_dma_root_addr+size*4,memory_read_dword(space,wave_dma_aica_addr+size*4));
919               for(;size<wave_dma.size;size+=4)
920               {
921                  memory_write_dword_64le(space,src,memory_read_dword(space,dst));
922                  src+=4;
923                  dst+=4;
924               }
855925            }
926            /* update the params*/
927            wave_dma.aica_addr = g2bus_regs[SB_ADSTAG] = dst;
928            wave_dma.root_addr = g2bus_regs[SB_ADSTAR] = src;
929            wave_dma.size = g2bus_regs[SB_ADLEN] = 0;
930            wave_dma.flag = (wave_dma.indirect & 1) ? 1 : 0;
931            wave_dma.start = g2bus_regs[SB_ADST] = 0;
932            dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_AICA;
856933         }
857934         break;
858935   }
src/mame/machine/naomibd.c
r4470r4471
240240{
241241   naomibd_state *v = get_safe_token(device);
242242
243   if ((offset == 1) && (ACCESSING_BITS_32_47 || ACCESSING_BITS_32_63))
243   switch(offset)
244244   {
245      // DMA_OFFSETH
246      v->dma_offset &= 0xffff;
247      v->dma_offset |= (data >> 16) & 0x1fff0000;
248   }
249   else if ((offset == 2) && ACCESSING_BITS_0_15)
250   {
251      // DMA_OFFSETL
252      v->dma_offset &= 0xffff0000;
253      v->dma_offset |= (data & 0xffff);
254   }
255   else if ((offset == 0) && ACCESSING_BITS_0_15)
256   {
257      // ROM_OFFSETH
258      v->rom_offset &= 0xffff;
259      v->rom_offset |= (data & 0x1fff)<<16;
260      v->rom_offset_flags = data >> 13;
261   }
262   else if ((offset == 0) && ACCESSING_BITS_32_47)
263   {
264      // ROM_OFFSETL
265      v->rom_offset &= 0xffff0000;
266      v->rom_offset |= ((data >> 32) & 0xffff);
267   }
268   else if ((offset == 1) && ACCESSING_BITS_0_15)
269   {
270      // ROM_DATA
271      // Doa2 writes here (16 bit decryption key ?)
272      //mame_printf_verbose("%s:ROM: write %llx to 5f7008\n", cpuexec_describe_context(machine), data);
273   }
274   else if ((offset == 15) && ACCESSING_BITS_0_15)
275   {
276      running_machine *machine = device->machine;
245      case 0:
246      {
247         if(ACCESSING_BITS_0_15)
248         {
249            // ROM_OFFSETH
250            v->rom_offset &= 0xffff;
251            v->rom_offset |= (data & 0x1fff)<<16;
252            v->rom_offset_flags = data >> 13;
253         }
254         if(ACCESSING_BITS_32_47)
255         {
256            // ROM_OFFSETL
257            v->rom_offset &= 0xffff0000;
258            v->rom_offset |= ((data >> 32) & 0xffff);
259         }
260      }
261      break;
262      case 1:
263      {
264         if(ACCESSING_BITS_32_47 || ACCESSING_BITS_32_63)
265         {
266            // DMA_OFFSETH
267            v->dma_offset &= 0xffff;
268            v->dma_offset |= (data >> 16) & 0x1fff0000;
269         }
270         if(ACCESSING_BITS_0_15)
271         {
272            // ROM_DATA
273            // Doa2 writes here (16 bit decryption key ?)
274            //mame_printf_verbose("%s:ROM: write %llx to 5f7008\n", cpuexec_describe_context(machine), data);
275         }
276      }
277      break;
278      case 2:
279      {
280         if(ACCESSING_BITS_0_15)
281         {
282            // DMA_OFFSETL
283            v->dma_offset &= 0xffff0000;
284            v->dma_offset |= (data & 0xffff);
285         }
286         if(ACCESSING_BITS_32_63)
287         {
288            // NAOMI_DMA_COUNT
289            v->dma_count = data >> 32;
290         }
291      }
292      break;
293      case 7:
294      {
295         if(ACCESSING_BITS_32_47)
296            mame_printf_verbose("ROM: write 5f703c\n");
297      }
298      break;
299      case 8:
300      {
301         if(ACCESSING_BITS_0_15)
302            mame_printf_verbose("ROM: write 5f7040\n");
303         if(ACCESSING_BITS_32_47)
304            mame_printf_verbose("ROM: write 5f7044\n");
305      }
306      break;
307      case 9:
308      {
309         if(ACCESSING_BITS_0_15)
310            mame_printf_verbose("ROM: write 5f7048\n");
311         if(ACCESSING_BITS_32_47)
312            mame_printf_verbose("ROM: write 5f704c\n");
313      }
314      break;
315      case 15:
316      {
317         if(ACCESSING_BITS_0_15)
318         {
319            running_machine *machine = device->machine;
277320
278      // NAOMI_BOARDID_WRITE
279      x76f100_cs_write(machine, 0, (data >> 2) & 1 );
280      x76f100_rst_write(machine, 0, (data >> 3) & 1 );
281      x76f100_scl_write(machine, 0, (data >> 1) & 1 );
282      x76f100_sda_write(machine, 0, (data >> 0) & 1 );
321            // NAOMI_BOARDID_WRITE
322            x76f100_cs_write(machine, 0, (data >> 2) & 1 );
323            x76f100_rst_write(machine, 0, (data >> 3) & 1 );
324            x76f100_scl_write(machine, 0, (data >> 1) & 1 );
325            x76f100_sda_write(machine, 0, (data >> 0) & 1 );
326         }
327      }
328      break;
329      default:
330         //mame_printf_verbose("%s: ROM: write %llx to %x, mask %llx\n", cpuexec_describe_context(machine), data, offset, mem_mask);
331         break;
283332   }
284   else if ((offset == 2) && ACCESSING_BITS_32_63)
285   {
286      // NAOMI_DMA_COUNT
287      v->dma_count = data >> 32;
288   }
289   else if ((offset == 7) && ACCESSING_BITS_32_47)
290   {
291      mame_printf_verbose("ROM: write 5f703c\n");
292   }
293   else if ((offset == 8) && ACCESSING_BITS_0_15)
294   {
295      mame_printf_verbose("ROM: write 5f7040\n");
296   }
297   else if ((offset == 8) && ACCESSING_BITS_32_47)
298   {
299      mame_printf_verbose("ROM: write 5f7044\n");
300   }
301   else if ((offset == 9) && ACCESSING_BITS_0_15)
302   {
303      mame_printf_verbose("ROM: write 5f7048\n");
304   }
305   else if ((offset == 9) && ACCESSING_BITS_32_47)
306   {
307      mame_printf_verbose("ROM: write 5f704c\n");
308   }
309   else
310   {
311      //mame_printf_verbose("%s: ROM: write %llx to %x, mask %llx\n", cpuexec_describe_context(machine), data, offset, mem_mask);
312   }
313333}
314334
315335
r4470r4471
320340 *
321341 *************************************/
322342
343#define FILENAME_LENGTH 16
344
323345static void load_rom_gdrom(running_machine* machine, naomibd_state *v)
324346{
325347   UINT32 result;
r4470r4471
328350   UINT8 *ptr;
329351   UINT32 start,size,sectors,dir;
330352   int pos,len,a;
331   char name[15];
353   char name[128];
332354   UINT64 key;
333355
334   memset(name, 15, 0);
356   memset(name,'\0',128);
335357   memcpy(name, v->picdata+33, 7);
336358   memcpy(name+7, v->picdata+25, 7);
337359   gdromfile = cdrom_open(v->gdromchd);
r4470r4471
355377   // find data of file
356378   start = 0;
357379   size = 0;
380   printf("Looking for file %s\n", name);
358381   for (pos = 0;pos < 2048;pos += buffer[pos])
359382   {
360383      a=0;
361384      if (!(buffer[pos+25] & 2))
362385      {
363386         len=buffer[pos+32];
364         for (a=0;a < 15;a++)
387         for (a=0;a < FILENAME_LENGTH;a++)
365388         {
366389            if ((buffer[pos+33+a] == ';') && (name[a] == 0))
367390            {
368               a=16;
391               a=FILENAME_LENGTH+1;
369392               break;
370393            }
371394            if (buffer[pos+33+a] != name[a])
r4470r4471
373396            if (a == len)
374397            {
375398               if (name[a] == 0)
376                  a = 16;
399                  a = FILENAME_LENGTH+1;
377400               else
378                  a = 15;
401                  a = FILENAME_LENGTH;
379402            }
380403         }
381404      }
382      if (a == 16)
405      if (a == FILENAME_LENGTH+1)
383406      {
384407         // start sector and size of file
385408         start=((buffer[pos+2] << 0) |
r4470r4471
390413               (buffer[pos+11] << 8) |
391414               (buffer[pos+12] << 16) |
392415               (buffer[pos+13] << 24));
416
417         printf("start %08x size %08x\n", start,size);
393418         break;
394419      }
395420      if (buffer[pos] == 0)
396421         break;
397422   }
423
398424   if ((start != 0) && (size == 0x100))
399425   {
400426      // read file
401427      result = cdrom_read_data(gdromfile, start, buffer, CD_TRACK_MODE1);
402428      // get "rom" file name
403      memcpy(name, buffer+0xc0, 14);
429      memset(name,'\0', 128);
430      memcpy(name, buffer+0xc0, FILENAME_LENGTH-1);
431
432
404433      // directory
405434      result = cdrom_read_data(gdromfile, dir, buffer, CD_TRACK_MODE1);
406435      // find data of "rom" file
407436      start = 0;
408437      size = 0;
438
439      printf("Looking for file %s\n", name);
409440      for (pos = 0;pos < 2048;pos += buffer[pos])
410441      {
411442         a = 0;
412443         if (!(buffer[pos+25] & 2))
413444         {
414445            len = buffer[pos+32];
415            for (a=0;a < 15;a++)
446            for (a=0;a < FILENAME_LENGTH;a++)
416447            {
417448               if ((buffer[pos+33+a] == ';') && (name[a] == 0))
418449               {
419                  a=16;
450                  a=FILENAME_LENGTH+1;
420451                  break;
421452               }
422453               if (buffer[pos+33+a] != name[a])
r4470r4471
424455               if (a == len)
425456               {
426457                  if (name[a] == 0)
427                     a = 16;
458                     a = (FILENAME_LENGTH+1);
428459                  else
429                     a = 15;
460                     a = FILENAME_LENGTH;
430461               }
431462            }
432463         }
433         if (a == 16)
464         if (a == (FILENAME_LENGTH+1))
434465         {
435466            // start sector and size of file
436467            start=((buffer[pos+2] << 0) |
r4470r4471
441472                  (buffer[pos+11] << 8) |
442473                  (buffer[pos+12] << 16) |
443474                  (buffer[pos+13] << 24));
475
476            printf("start %08x size %08x\n", start,size);
444477            break;
445478         }
446479         if (buffer[pos] == 0)
src/mame/machine/mcr.c
r4470r4471
222222}
223223
224224
225static void ipu_ctc_interrupt(const device_config *device, int state)
225static WRITE_LINE_DEVICE_HANDLER( ipu_ctc_interrupt )
226226{
227227   cputag_set_input_line(device->machine, "ipu", 0, state);
228228}
r4470r4471
267267
268268const z80pio_interface nflfoot_pio_intf =
269269{
270   ipu_ctc_interrupt,
271   NULL,
272   NULL,
273   NULL,
274   NULL,
275   NULL,
276   NULL
270   DEVCB_LINE(ipu_ctc_interrupt),
271   DEVCB_NULL,
272   DEVCB_NULL,
273   DEVCB_NULL,
274   DEVCB_NULL,
275   DEVCB_NULL,
276   DEVCB_NULL
277277};
278278
279279
src/mame/machine/gdcrypt.c
r4470r4471
339339
340340   des_generate_subkeys (rev64(key), des_subkeys);
341341
342   #ifdef MAME_DEBUG
342343   /* save the original file */
343344   {
344345      FILE *fp;
r4470r4471
351352         fclose(fp);
352353      }
353354   }
355   #endif
354356
355357   for(i=0;i<length;i+=8)
356358   {
r4470r4471
362364       write_from_qword(region+i, ret);
363365   }
364366
367   #ifdef MAME_DEBUG
365368   /* save the decrypted file */
366369   {
367370      FILE *fp;
r4470r4471
374377         fclose(fp);
375378      }
376379   }
377
380   #endif
378381}
379382
src/mame/mamedriv.c
r4470r4471
5656   DRIVER( abscam )   /* hack */
5757   DRIVER( crush )      /* (c) 1981 Kural Samno Electric Ltd */
5858   DRIVER( crushbl )   /* bootleg */
59   DRIVER( crushbl2 )   /* bootleg 2*/
5960   DRIVER( crush2 )   /* (c) 1981 Kural Esco Electric Ltd - bootleg? */
6061   DRIVER( crush3 )   /* Kural Electric Ltd - bootleg? */
6162   DRIVER( crush4 )   /* Kural TWT */
r4470r4471
16331634   DRIVER( undoukai )   /* A17 (c) 1984 Taito */
16341635   DRIVER( 40love )   /* A30 (c) 1984 Taito */
16351636   DRIVER( tsamurai )   /* A35 (c) 1985 Taito */
1636   DRIVER( tsamura2 )   /* A35 (c) 1985 Taito */
1637   DRIVER( tsamurai2 )   /* A35 (c) 1985 Taito */
16371638   DRIVER( ladymstr )   /* A49 (c) 1985 Taito */
16381639   DRIVER( nunchaku )   /* ??? (c) 1985 Taito */
16391640   DRIVER( yamagchi )   /* A38 (c) 1985 Taito */
r4470r4471
18911892   DRIVER( contcrua )   /* B33 (c) 1987 Taito America Corporation (US) */
18921893   DRIVER( chasehq )   /* B52 (c) 1988 Taito Corporation Japan (World) */
18931894   DRIVER( chasehqj )   /* B52 (c) 1988 Taito Corporation (Japan) */
1895   DRIVER( chasehqu )   /* B52 (c) 1988 Taito America Corporation (US) */
18941896   DRIVER( enforce )   /* B58 (c) 1988 Taito Corporation (Japan) */
18951897   DRIVER( nightstr )   /* B91 (c) 1989 Taito Corporation Japan (World) */
18961898   DRIVER( nghtstrj )   /* B91 (c) 1989 Taito Corporation (Japan) */
r4470r4471
34723474
34733475   /* Sega System 1 / System 2 games */
34743476   DRIVER( starjack )   /* 834-5191 (c) 1983 (S1) */
3475   DRIVER( starjacs )   /* (c) 1983 Stern (S1) */
3477   DRIVER( starjacks )   /* (c) 1983 Stern (S1) */
34763478   DRIVER( regulus )   /* 834-5328?(c) 1983 (S1) */
34773479   DRIVER( reguluso )   /* 834-5328?(c) 1983 (S1) */
34783480   DRIVER( regulusu )   /* 834-5328?(c) 1983 (S1) */
34793481   DRIVER( upndown )   /* (c) 1983 (S1) */
34803482   DRIVER( upndownu )   /* (c) 1983 (S1) */
34813483   DRIVER( mrviking )   /* 834-5383 (c) 1984 (S1) */
3482   DRIVER( mrvikngj )   /* 834-5383 (c) 1984 (S1) */
3484   DRIVER( mrvikingj )   /* 834-5383 (c) 1984 (S1) */
34833485   DRIVER( swat )      /* 834-5388 (c) 1984 Coreland / Sega (S1) */
34843486   DRIVER( flicky )   /* (c) 1984 (S1) */
3485   DRIVER( flicks2 )   /* (c) 1984 (S1) */
3487   DRIVER( flickys2 )   /* (c) 1984 (S1) */
34863488   DRIVER( flickyo )   /* (c) 1984 (S1) */
3487   DRIVER( flicks1 )   /* (c) 1984 (S1) */
3489   DRIVER( flickys1 )   /* (c) 1984 (S1) */
34883490   DRIVER( wmatch )   /* (c) 1984 (S1) */
34893491   DRIVER( bullfgt )   /* 834-5478 (c) 1984 Sega / Coreland (S1) */
34903492   DRIVER( thetogyu )   /* 834-5478 (c) 1984 Sega / Coreland (S1) */
34913493   DRIVER( spatter )   /* 834-5583 (c) 1984 (S1) */
34923494   DRIVER( ssanchan )   /* 834-5583 (c) 1984 (S1) */
34933495   DRIVER( pitfall2 )   /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */
3494   DRIVER( pitfalla )   /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */
3495   DRIVER( pitfallu )   /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */
3496   DRIVER( pitfall2a )   /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */
3497   DRIVER( pitfall2u )   /* 834-5627 [1985?] reprogrammed, (c) 1984 Activision (S1) */
34963498   DRIVER( seganinj )   /* 834-5677 (c) 1985 (S1) */
3497   DRIVER( seganinu )   /* 834-5677 (c) 1985 (S1) */
3499   DRIVER( seganinju )   /* 834-5677 (c) 1985 (S1) */
34983500   DRIVER( ninja )      /* 834-5677 (c) 1985 (S1) */
34993501   DRIVER( nprinces )   /* 834-5677 (c) 1985 (S1) */
3500   DRIVER( nprincso )   /* 834-5677 (c) 1985 (S1) */
3501   DRIVER( nprincsu )   /* 834-5677 (c) 1985 (S1) */
3502   DRIVER( nprincsb )   /* bootleg? (S1) */
3502   DRIVER( nprinceso )   /* 834-5677 (c) 1985 (S1) */
3503   DRIVER( nprincesu )   /* 834-5677 (c) 1985 (S1) */
3504   DRIVER( nprincesb )   /* bootleg? (S1) */
35033505   DRIVER( imsorry )   /* 834-5707 (c) 1985 Coreland / Sega (S1) */
35043506   DRIVER( imsorryj )   /* 834-5707 (c) 1985 Coreland / Sega (S1) */
35053507   DRIVER( teddybb )   /* 834-5712 (c) 1985 (S1) */
r4470r4471
35093511   DRIVER( sscandal )   /* 834-5755 (c) 1985 Coreland / Sega (S1) */
35103512   DRIVER( myherok )   /* 834-5755 (c) 1985 Coreland / Sega (S1) */
35113513   DRIVER( shtngmst )   /* 834-5719/5720 (c) 1985 (S2) */
3512   DRIVER( shtngms1 )   /* 834-5719/5720 (c) 1985 (S2) */
3513    DRIVER( shtngmsa )   /* 834-5719/5720 (c) 1985 (S2) */
3514   DRIVER( chplft )   /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */
3515   DRIVER( chplftb )   /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */
3516   DRIVER( chplftbl )   /* bootleg (S2) */
3514   DRIVER( shtngmst1 )   /* 834-5719/5720 (c) 1985 (S2) */
3515    DRIVER( shtngmsta )   /* 834-5719/5720 (c) 1985 (S2) */
3516   DRIVER( choplift )   /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */
3517   DRIVER( chopliftu )   /* 834-5795 (c) 1985, (c) 1982 Dan Gorlin (S2) */
3518   DRIVER( chopliftbl )/* bootleg (S2) */
35173519   DRIVER( 4dwarrio )   /* 834-5918 (c) 1985 Coreland / Sega (S1) */
35183520   DRIVER( brain )      /* (c) 1986 Coreland / Sega (S2?) */
35193521   DRIVER( raflesia )   /* 834-5753 (c) 1985 Coreland / Sega (S1) */
r4470r4471
35313533   DRIVER( nob )      /* (c) Data East */
35323534   DRIVER( nobb )      /* bootleg */
35333535   DRIVER( blockgal )   /* 834-6303 (S1) */
3534   DRIVER( blckgalb )   /* bootleg */
3536   DRIVER( blockgalb )   /* bootleg */
35353537   DRIVER( tokisens )   /* (c) 1987 (from a bootleg board) (S2) */
35363538   DRIVER( wbml )      /* bootleg (S2) */
35373539   DRIVER( wbmljo )   /* (c) 1987 Sega/Westone (S2) */
r4470r4471
35403542   DRIVER( wbmlbg )   /* bootleg (Galaxy Electronics) */
35413543   DRIVER( dakkochn )   /* 836-6483? (S2) */
35423544   DRIVER( ufosensi )   /* 834-6659 (S2) */
3543   DRIVER( ufosensb )   /* bootleg */
3545   DRIVER( ufosensib )   /* bootleg */
35443546/*
35453547other System 1 / System 2 games:
35463548
r4470r4471
43564358   DRIVER( ggxx )      /* 2002.05 Guilty Gear XX */
43574359                  /* 2002.05 Cleopatra Fortune + */
43584360   DRIVER( mok )      /* 2002.05 The Maze of the Kings */
4359   DRIVER( ngdup23a )   /* DIMM Firmware Updater */
4360   DRIVER( ngdup23c )
43614361   DRIVER( chocomk )   /* 2002.06 Musapy no Choco Marker */
43624362                  /* 2002.07 Mazan */
43634363                  /* 2002.09 Yonin Uchi Mahjong MJ */
r4470r4471
43944394   DRIVER( takoron )   /* 2006.12.16 Noukone Puzzle Takoron */
43954395   DRIVER( meltyba )   /* 2007.03 Melty Blood Act Cadenza ver.B Syuuseiban(ver.B2) */
43964396
4397   DRIVER( ngdup23a )   /* DIMM Firmware Updater */
4398   DRIVER( ngdup23c )
4399
43974400                  /* Releases below use flash/mask ROMs like older NAOMI titles, not GD-ROM as GD-ROM Hardware (Drives and Discs) were no longer being produced */
43984401
43994402                  /* 2007.07 Shooting Love */
r4470r4471
44364439   DRIVER( initdexp )   /* 200?.?? Initial D Export Version */
44374440                  /* 2002.06 World Club Champion Football */
44384441                  /* 2002.07 Soul Surfer */
4439   DRIVER( vf4evo )   /* 2002.08 Virtua Fighter 4 Evolution */
4442   DRIVER( vf4evo )   /* 2002.08 Virtua Fighter 4 Evolution (revision B) */
4443   DRIVER( vf4evoa )
44404444   DRIVER( initdv2j )   /* 2002.12 Initial D Arcade Stage ver.2 */
44414445                  /* 2002.12 Virtua Fighter 4 Evolution ver.B */
44424446                  /* 2003.03 WCCF 2001-2002 ver.2.0 */
44434447                  /* 2003.09 WCCF 2002-2003 */
4444                  /* 2004.01 Initial D Arcade Stage ver.3 */
4448   DRIVER( initdv3j )   /* 2004.01 Initial D Arcade Stage ver.3 */
4449                  /* 2004.?? Initial D Arcade Stage ver.3 for CYCRAFT */
44454450                  /* 2004.06 WCCF 2002-2003 ver.2.0 */
4446   DRIVER( vf4tuned )   /* 2004.07 Virtua Fighter 4 Final Tuned */
4451                  /* 2004.07 Virtua Fighter 4 Final Tuned */
4452   DRIVER( vf4tuneda )   /* 2004.09 Virtua Fighter 4 Final Tuned ver.A */
44474453                  /* 2004.12 WCCF 2002-2003 ver.2.1 */
44484454                  /* 2005.01 Virtua Fighter 4 final Tuned ver.B */
44494455                  /* 2005.04 Menkyo no Tetsujin */
44504456                  /* 2005.07 WCCF 2004-2005 */
44514457                  /* 2006.08 WCCF European Clubs 2005-2006 */
4458   DRIVER( vf4tunedd )
4459   DRIVER( vf4tuned )   /* 200?.?? Virtual fighter 4 Final Tuned ver.F */
44524460
44534461
44544462   /* Atomiswave (Dreamcast-based) games */
r4470r4471
44884496
44894497   /* Triforce (GameCube based) */
44904498   DRIVER( triforce )
4491   DRIVER( vs2002ex )   /* GDT-0002 2002.10 Virtua Striker 2002 */
4499   DRIVER( vs2002ex )   /* 2002.10 Virtua Striker 2002 */
44924500                  /* 2003.06 F-ZERO AX */
44934501                  /* 2003.07 Avalon no Kagi */
44944502                  /* 2003.10 Avalon no Kagi ver.1.01 */
44954503   DRIVER( gekpurya )   /* 2003.10 Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu */
44964504                  /* 2003.12 Avalon no Kagi ver.1.10 */
44974505                  /* 2004.04 Avalon no Kagi ver.1.20 Aratanaru Syoukan */
4498                  /* 2004.07 Avalon no Kagi ver.1.30 Konton no Utage */
4499   DRIVER( vs4 )      /* GDT-0015 2004.10 Virtua Striker 4 */
4500                  /* 2004.11 Avalon no Kagi ver.2.0 Chitsujo to Kairitsu */
4506   DRIVER( avalon13 )   /* 2004.07 Avalon no Kagi ver.1.30 Konton no Utage */
4507   DRIVER( vs4 )      /* 2004.10 Virtua Striker 4 */
4508   DRIVER( avalon20 )   /* 2004.11 Avalon no Kagi ver.2.0 Chitsujo to Kairitsu */
4509                  /* 2005.04 Virtua Striker 4 ver.A */
45014510                  /* 2005.08 Avalon no Kagi ver.2.5 Kagi Seisen */
4511                  /* 2005.12 Mario Kart Arcade Grand Prix */
4512                  /* 2006.05 Virtua Striker 4 ver.2006 */
4513                  /* 2007.03 Mario Kart Arcade Grand Prix 2 */
45024514
4515   DRIVER( tfupdate )   /* Triforce GDROM Boot Update (GDT-0011) */
4516
45034517   /* Chihiro (X-Box based) */
45044518   DRIVER( chihiro )
45054519                  /* 2002.12 The House of the Dead III */
r4470r4471
45074521   DRIVER( vcop3 )      /* 2003.04 Virtua Cop 3 */
45084522                  /* 2003.12 Outrun 2 */
45094523                  /* 2004.03 Ollie King */
4524                  /* 2004.03 Sega Network Taisen Mahjong MJ 2 */
4525                  /* 2004.04 Sega Network Taisen Mahjong MJ 2 ver.B */
45104526   DRIVER( wangmid )   /* 2004.07 Wangan Midnight Maximum Tune */
4527   DRIVER( mj2 )      /* 2004.07 Sega Network Taisen Mahjong MJ 2 ver.C */
45114528                  /* 2004.09 Quest of D */
45124529                  /* 2004.11 Sega Golf Club Network Pro Tour */
4530                  /* 2004.12 Sega Network Taisen Mahjong MJ 2 ver.D */
45134531                  /* 2004.12 Outrun 2 Special Tours */
4532                  /* 2004.12 Quest of D ver.1.02 */
45144533                  /* 2004.12 Quest of D ver.1.10 */
45154534   DRIVER( ghostsqu )   /* 2004.12 Ghost Squad */
45164535                  /* 2005.03 Kidou Senshi Gundam Battle Operating Simulator */
45174536                  /* 2005.03 Sangokushi Taisen */
4518                  /* 2005.04 Wangan Midnight Maximum Tune 2 */
4519                  /* 2005.05 Quest of D ver.1.20 */
4537   DRIVER( wangmid2 )   /* 2005.04 Wangan Midnight Maximum Tune 2 */
4538                  /* 2005.04 Sega Network Taisen Mahjong MJ 2 ver.E */
4539                  /* 2005.04 Quest of D ver.1.20 */
4540                  /* 2005.04 Quest of D ver.1.20a */
45204541                  /* 2005.06 Sega Golf Club Network Pro Tour 2005 */
4542                  /* 2005.06 Sangokushi Taisen ver.1.003 */
45214543                  /* 2005.09 Quest of D ver.1.21 */
45224544                  /* 2005.10 Sangokushi Taisen Ranse no Gunrou ver.1.100 */
45234545                  /* 2005.10 Wangan Midnight Maximum Tune 2 ver.B */
45244546                  /* 2005.12 Kidou Senshi Gundam 0079 Card Builder */
4547                  /* 2005.12 Quest of D ver.2.00 Gofu no Keisyousya */
45254548                  /* 2005.12 Quest of D ver.2.01 Gofu no Keisyousya */
45264549                  /* 2005.12 Sega Golf Club 2006 Next Tours */
4550   DRIVER( mj3 )      /* 2005.12 Sega Network Taisen Mahjong MJ 3 */
4551                  /* 2006.02 Sangokushi Taisen Ranse no Gunrou ver.1.12 */
4552                  /* 2006.03 Quest of D ver.2.01 Gofu no Keisyousya ver.2.02b */
45274553                  /* 2006.05 Sangokushi Taisen 2 */
4554                  /* 2006.09 Sega Network Taisen Mahjong MJ 3 ver.B */
4555                  /* 2006.10 Quest of D ver.3.00 Oukoku no Syugosya */
4556                  /* 2006.11 Quest of D ver.3.01 Oukoku no Syugosya */
45284557                  /* 2007.03 Kidou Senshi Gundam 0083 Card Builder */
4558                  /* 2007.03 Sega Network Taisen Mahjong MJ 3 Evolution */
45294559                  /* 2007.10 Kidou Senshi Gundam 0083 Card Builder Ryouyuu Gekitotsu */
4560                  /* 2007.11 Quest of D The Battle Kingdom ver.4.00 */
4561                  /* 2008.01 Quest of D The Battle Kingdom ver.4.00b */
4562                  /* 2008.02 Quest of D The Battle Kingdom ver.4.00c */
4563                  /* 2008.06 Quest of D The Battle Kingdom ver.4.01 */
45304564
45314565   DRIVER( hshavoc )   /* (c) 1993 Data East */
45324566
r4470r4471
51035137   DRIVER( esckids )   /* GX975 (c) 1991 (Asia) */
51045138   DRIVER( esckidsj )   /* GX975 (c) 1991 (Japan) */
51055139   DRIVER( vendetta )   /* GX081 (c) 1991 (World) */
5106   DRIVER( vendetao )   /* GX081 (c) 1991 (World) */
5107   DRIVER( vendet2p )   /* GX081 (c) 1991 (World) */
5108   DRIVER( vendetas )   /* GX081 (c) 1991 (Asia) */
5109   DRIVER( vendtaso )   /* GX081 (c) 1991 (Asia) */
5110   DRIVER( vendettj )   /* GX081 (c) 1991 (Japan) */
5140   DRIVER( vendettar )   /* GX081 (c) 1991 (World) */
5141   DRIVER( vendetta2p )   /* GX081 (c) 1991 (World) */
5142   DRIVER( vendetta2pu )   /* GX081 (c) 1991 (Asia) */
5143   DRIVER( vendetta2pd )   /* GX081 (c) 1991 (Asia) */
5144   DRIVER( vendettaj )   /* GX081 (c) 1991 (Japan) */
51115145   DRIVER( mogura )   /* GX141 (c) 1991 */
51125146   DRIVER( wecleman )   /* GX602 (c) 1986 */
51135147   DRIVER( hotchase )   /* GX763 (c) 1988 */
r4470r4471
58355869   DRIVER( hydrap )   /* (proto)          (c) 1990 */
58365870   DRIVER( hydrap2 )   /* (proto)          (c) 1990 */
58375871   DRIVER( pitfight )   /* 136081           (c) 1990 */
5872   DRIVER( pitfigh6 )   /* 136081           (c) 1990 */
58385873   DRIVER( pitfigh4 )   /* 136081           (c) 1990 */
58395874   DRIVER( pitfigh3 )   /* 136081           (c) 1990 */
58405875   DRIVER( pitfighj )   /* Japan */
r4470r4471
62786313   DRIVER( champb2a )   /* (c) 1983 ? */
62796314   DRIVER( exctsccr )   /* (c) 1983 Alpha Denshi Co. */
62806315   DRIVER( exctscca )   /* (c) 1983 Alpha Denshi Co. */
6316   DRIVER( exctsccj )   /* (c) 1983 Alpha Denshi Co. */
62816317   DRIVER( exctsccb )   /* bootleg */
62826318   DRIVER( exctscc2 )   /* (c) 1984 Alpha Denshi Co. */
62836319   DRIVER( talbot )   /* Volt Electronics */
r4470r4471
79097945   DRIVER( martmast )   /* (c) 2001 */
79107946   DRIVER( martmasc )   /* (c) 2001 */
79117947   DRIVER( theglad )   /* (c) 2001 */
7948   DRIVER( theglada )   /* (c) 2001 */
79127949   DRIVER( dmnfrnt )   /* (c) 2002 */
79137950   DRIVER( dmnfrnta )   /* (c) 2002 */
7914   DRIVER( kovh )
7915   DRIVER( oldss )
7951   DRIVER( kovshp )
7952   DRIVER( oldsplus )
79167953   DRIVER( killbldp )
79177954   DRIVER( svg )
79187955
r4470r4471
85108547   DRIVER( megat4a )   /* (c) 1996 Merit */
85118548   DRIVER( megat4sn )   /* (c) 1996 Merit */
85128549   DRIVER( megat4te )   /* (c) 1996 Merit */
8550   DRIVER( megat4st )   /* (c) 1996 Merit */
85138551   DRIVER( megat5 )   /* (c) 1997 Merit */
85148552   DRIVER( megat5nj )   /* (c) 1997 Merit */
85158553   DRIVER( megat6 )   /* (c) 1998 Merit */
r4470r4471
86228660   DRIVER( attckufo )   /* (c) 1980 Ryoto Electric Co. */
86238661   DRIVER( fortecar )
86248662   DRIVER( jackpool )   /* (c) 1997 Electronic Projects */
8625   DRIVER( murogem )   /* ??? */
8663   DRIVER( murogem )      /* ??? */
86268664   DRIVER( murogema )   /* ??? */
8665   DRIVER( murogmbl )   /* ??? */
86278666   DRIVER( lasvegas )   /* hack */
86288667   DRIVER( quizmstr )   /* (c) 1985 Coinmaster */
86298668   DRIVER( trailblz )   /* (c) 1987 Coinmaster */
r4470r4471
91999238   DRIVER( atworld )
92009239   DRIVER( atworlda )
92019240
9241
92029242   DRIVER( chsuper3 )   /* unknown */
92039243   DRIVER( chsuper2 )   /* unknown */
92049244   DRIVER( 3super8 )   /* unknown */
src/mame/includes/tnzs.h
r4470r4471
11/*----------- defined in drivers/tnzs.c -----------*/
22
3extern UINT8 *tnzs_objram, *tnzs_sharedram;
3extern UINT8 *tnzs_objram;
44extern UINT8 *tnzs_vdcram, *tnzs_scrollram, *tnzs_objctrl, *tnzs_bg_flag;
55
66
r4470r4471
2626WRITE8_HANDLER( tnzs_mcu_w );
2727INTERRUPT_GEN( arknoid2_interrupt );
2828MACHINE_RESET( tnzs );
29READ8_HANDLER( tnzs_sharedram_r );
3029WRITE8_HANDLER( tnzs_sharedram_w );
3130WRITE8_HANDLER( tnzs_bankswitch_w );
3231WRITE8_HANDLER( tnzs_bankswitch1_w );
src/mame/includes/trackfld.h
r0r4471
1/***************************************************************************
2
3    Track'n'Field
4
5***************************************************************************/
6
7/*----------- defined in audio/trackfld.c -----------*/
8
9WRITE8_HANDLER( konami_sh_irqtrigger_w );
10READ8_HANDLER( trackfld_sh_timer_r );
11READ8_DEVICE_HANDLER( trackfld_speech_r );
12WRITE8_DEVICE_HANDLER( trackfld_sound_w );
13READ8_HANDLER( hyperspt_sh_timer_r );
14WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
15WRITE8_HANDLER( konami_SN76496_latch_w );
16WRITE8_DEVICE_HANDLER( konami_SN76496_w );
17
18
19/*----------- defined in video/trackfld.c -----------*/
20
21extern UINT8 *trackfld_scroll;
22extern UINT8 *trackfld_scroll2;
23
24WRITE8_HANDLER( trackfld_videoram_w );
25WRITE8_HANDLER( trackfld_colorram_w );
26WRITE8_HANDLER( trackfld_flipscreen_w );
27WRITE8_HANDLER( atlantol_gfxbank_w );
28
29PALETTE_INIT( trackfld );
30VIDEO_START( trackfld );
31VIDEO_UPDATE( trackfld );
src/mame/includes/dc.h
r4470r4471
9999#define SB_ADST      ((0x005F7818-0x005F7800)/4)
100100#define SB_ADSUSP   ((0x005F781c-0x005F7800)/4)
101101
102
102#define SB_PDSTAP   ((0x005F7c00-0x005F7c00)/4)
103#define SB_PDSTAR   ((0x005F7c04-0x005F7c00)/4)
104#define SB_PDLEN    ((0x005F7c08-0x005F7c00)/4)
105#define SB_PDDIR    ((0x005F7c0c-0x005F7c00)/4)
106#define SB_PDTSEL   ((0x005F7c10-0x005F7c00)/4)
107#define SB_PDEN     ((0x005F7c14-0x005F7c00)/4)
103108#define SB_PDST      ((0x005F7c18-0x005F7c00)/4)
104109
105110#define RTC1      ((0x00710000-0x00710000)/4)
src/mame/includes/pgm.h
r4470r4471
2323void pgm_theglad_decrypt(running_machine *machine);
2424void pgm_ddp2_decrypt(running_machine *machine);
2525void pgm_dfront_decrypt(running_machine *machine);
26void pgm_svg_decrypt(running_machine *machine);
26void pgm_oldsplus_decrypt(running_machine *machine);
27void pgm_kovshp_decrypt(running_machine *machine);
2728void pgm_killbldp_decrypt(running_machine *machine);
28void pgm_kovh_decrypt(running_machine *machine);
29void pgm_oldss_decrypt(running_machine *machine);
29void pgm_svg_decrypt(running_machine *machine);
3030
31
3132/*----------- defined in machine/pgmprot.c -----------*/
3233
3334READ16_HANDLER (PSTARS_protram_r);
r4470r4471
4546READ16_HANDLER (dw2_d80000_r );
4647
4748
48/*----------- defined in machine/pgmy2ks.c -----------*/
49
50extern const UINT32 pgmy2ks[0x3c00];
51
52
5349/*----------- defined in video/pgm.c -----------*/
5450
5551
src/mame/includes/konamipt.h
r0r4471
1/*******************************************************************************
2
3    Input port macros used by many games in multiple KONAMI drivers
4
5*******************************************************************************/
6
7
8/***************************** 8bit Players Inputs ****************************/
9
10/*********************** Prototypes 8bit ***********************/
11
12#define KONAMI8_MONO_4WAY( direction1, direction2, button1, button2, button3 )   \
13   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_4WAY   \
14   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_4WAY   \
15   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY            \
16   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY         \
17   PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 )    \
18   PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 )    \
19   PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 )
20
21#define KONAMI8_COCKTAIL_4WAY( direction1, direction2, button1, button2, button3 )   \
22   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_4WAY PORT_COCKTAIL   \
23   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_4WAY PORT_COCKTAIL   \
24   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL         \
25   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL         \
26   PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_COCKTAIL    \
27   PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_COCKTAIL    \
28   PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_COCKTAIL
29
30#define KONAMI8_MONO_8WAY( direction1, direction2, button1, button2, button3 )   \
31   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY   \
32   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY   \
33   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY            \
34   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY         \
35   PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 )    \
36   PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 )    \
37   PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 )
38
39#define KONAMI8_COCKTAIL_8WAY( direction1, direction2, button1, button2, button3 )   \
40   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY PORT_COCKTAIL   \
41   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY PORT_COCKTAIL   \
42   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL         \
43   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL         \
44   PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_COCKTAIL      \
45   PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_COCKTAIL      \
46   PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_COCKTAIL
47
48#define KONAMI8_MULTI_8WAY( player, direction1, direction2, button1, button2, button3 )   \
49   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction1 ) PORT_8WAY PORT_PLAYER(player)   \
50   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_##direction2 ) PORT_8WAY PORT_PLAYER(player)   \
51   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(player)      \
52   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(player)   \
53   PORT_BIT( 0x10, IP_ACTIVE_LOW, button1 ) PORT_PLAYER(player)   \
54   PORT_BIT( 0x20, IP_ACTIVE_LOW, button2 ) PORT_PLAYER(player)   \
55   PORT_BIT( 0x40, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player)
56
57#define KONAMI8_LR_40( player, button1, button2, button3 )            \
58   KONAMI8_MULTI_8WAY( player, LEFT, RIGHT, button1, button2, button3 )
59
60#define KONAMI8_RL_40( player, button1, button2, button3 )            \
61   KONAMI8_MULTI_8WAY( player, RIGHT, LEFT, button1, button2, button3 )
62
63/*********************** Actual Inputs 8bit ***********************/
64
65/* Cocktail Cabinet 4Way Inputs */
66#define KONAMI8_MONO_4WAY_B12_UNK   \
67   KONAMI8_MONO_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
68   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
69
70#define KONAMI8_COCKTAIL_4WAY_B12_UNK   \
71   KONAMI8_COCKTAIL_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
72   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
73
74#define KONAMI8_MONO_4WAY_B123_UNK   \
75   KONAMI8_MONO_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )   \
76   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
77
78#define KONAMI8_COCKTAIL_4WAY_B123_UNK   \
79   KONAMI8_COCKTAIL_4WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )   \
80   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
81
82
83/* Cocktail Cabinet 8Way Inputs */
84/* 1 Button */
85#define KONAMI8_MONO_B1_UNK   \
86   KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN )   \
87   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
88
89#define KONAMI8_COCKTAIL_B1_UNK   \
90   KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN )   \
91   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
92
93/* 2 Buttons */
94#define KONAMI8_MONO_B12_UNK   \
95   KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
96   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
97
98#define KONAMI8_COCKTAIL_B12_UNK   \
99   KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
100   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
101
102/* 3 Buttons */
103#define KONAMI8_MONO_B123_UNK   \
104   KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )   \
105   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
106
107#define KONAMI8_COCKTAIL_B123_UNK   \
108   KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )   \
109   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
110
111#define KONAMI8_MONO_B213_UNK   \
112   KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON2, IPT_BUTTON1, IPT_BUTTON3 )   \
113   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
114
115#define KONAMI8_COCKTAIL_B213_UNK   \
116   KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON2, IPT_BUTTON1, IPT_BUTTON3 )   \
117   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
118
119/* 2 Buttons + Start */
120#define KONAMI8_MONO_B12_START   \
121   KONAMI8_MONO_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
122   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
123
124#define KONAMI8_COCKTAIL_B12_START   \
125   KONAMI8_COCKTAIL_8WAY( LEFT, RIGHT, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
126   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
127
128
129/* Upright Multiplayer Cabinet Inputs */
130/* 1 Button */
131#define KONAMI8_B1( player )   \
132   KONAMI8_LR_40( player, IPT_BUTTON1, IPT_UNKNOWN, IPT_UNKNOWN )
133
134#define KONAMI8_B1_UNK( player )   \
135   KONAMI8_B1( player )   \
136   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
137
138/* 2 Buttons */
139#define KONAMI8_B12( player )   \
140   KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )
141
142#define KONAMI8_B12_UNK( player )   \
143   KONAMI8_B12( player )   \
144   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
145
146#define KONAMI8_B12_START( player )   \
147   KONAMI8_B12( player )   \
148   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player )
149
150#define KONAMI8_B12_COIN_START( player )   \
151   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY   \
152   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY   \
153   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY      \
154   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY   \
155   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )    \
156   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )    \
157   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN##player )      \
158   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player )
159
160#define KONAMI8_B21_UNK( player )   \
161   KONAMI8_LR_40( player, IPT_BUTTON2, IPT_BUTTON1, IPT_UNKNOWN )   \
162   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
163
164/* 3 Buttons */
165#define KONAMI8_B123( player )   \
166   KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )
167
168#define KONAMI8_B123_UNK( player )   \
169   KONAMI8_B123( player )   \
170   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
171
172#define KONAMI8_B123_START( player )   \
173   KONAMI8_B123( player )   \
174   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##player )
175
176#define KONAMI8_B132( player )   \
177   KONAMI8_LR_40( player, IPT_BUTTON1, IPT_BUTTON3, IPT_BUTTON2 )
178
179#define KONAMI8_B321( player )   \
180   KONAMI8_LR_40( player, IPT_BUTTON3, IPT_BUTTON2, IPT_BUTTON1 )
181
182
183/* vendetta.c uses inputs with switched Left/Right directions. We add these inputs here as well
184because they just need a few lines of code */
185#define KONAMI8_RL_B12_COIN( player )   \
186   KONAMI8_RL_40( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )   \
187   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN##player )
188
189
190/* A few drivers uses bit0 for Start and shuffled joystick inputs */
191#define KONAMI8_ALT( player, button1, button2, button3 )   \
192   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START##player )   \
193   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(player)      \
194   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(player)   \
195   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(player)   \
196   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(player)   \
197   PORT_BIT( 0x20, IP_ACTIVE_LOW, button1 ) PORT_PLAYER(player)    \
198   PORT_BIT( 0x40, IP_ACTIVE_LOW, button2 ) PORT_PLAYER(player)    \
199   PORT_BIT( 0x80, IP_ACTIVE_LOW, button3 ) PORT_PLAYER(player)
200
201#define KONAMI8_ALT_B12( player )   \
202   KONAMI8_ALT( player, IPT_BUTTON1, IPT_BUTTON2, IPT_UNKNOWN )
203
204#define KONAMI8_ALT_B21( player )   \
205   KONAMI8_ALT( player, IPT_BUTTON2, IPT_BUTTON1, IPT_UNKNOWN )
206
207#define KONAMI8_ALT_B123( player )   \
208   KONAMI8_ALT( player, IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3 )
209
210
211/**************************** 16bit Players Inputs ****************************/
212
213#define KONAMI16_LSB_40( player, button3 )   \
214   PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(player) \
215   PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \
216   PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(player) \
217   PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(player) \
218   PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(player) \
219   PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(player) \
220   PORT_BIT(  0x0040, IP_ACTIVE_LOW, button3            ) PORT_PLAYER(player)
221
222#define KONAMI16_MSB_40( player, button3 )   \
223   PORT_BIT(  0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(player) \
224   PORT_BIT(  0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \
225   PORT_BIT(  0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(player) \
226   PORT_BIT(  0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(player) \
227   PORT_BIT(  0x1000, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(player) \
228   PORT_BIT(  0x2000, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(player) \
229   PORT_BIT(  0x4000, IP_ACTIVE_LOW, button3            ) PORT_PLAYER(player)
230
231#define KONAMI16_LSB( player, button3, start )   \
232   KONAMI16_LSB_40( player, button3 )         \
233   PORT_BIT(  0x0080, IP_ACTIVE_LOW, start )
234
235#define KONAMI16_MSB( player, button3, start )   \
236   KONAMI16_MSB_40( player, button3 )         \
237   PORT_BIT(  0x8000, IP_ACTIVE_LOW, start )
238
239
240/******************** System Inputs (Coin, Start & Service) *******************/
241
242#define KONAMI8_SYSTEM_10   \
243   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )      \
244   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )      \
245   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )   \
246   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )      \
247   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
248
249#define KONAMI8_SYSTEM_UNK   \
250   KONAMI8_SYSTEM_10      \
251   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )   \
252   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )   \
253   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )   \
254
255/**************************** Coinage Dip Swicthes ****************************/
256
257/* Konami games from 80s-90s basically use only two kind of coinage dips. The only
258difference is in the settings corresponding to 0x00, which could be either 4C_5C
259or a "Free_Play"-related option. Actually, in the latter case the behavior may change
260depending on the game code:
261Coin A - 0x00 could produce the following effects
262    Free_Play = nomen omen (for both players)
263    Invalid = both coin slots disabled
264Coin B - 0x00 could produce the following effects
265    Free_Play = nomen omen (for both players)
266    No Coin B = coin slot B open (coins produce sound), but no effect on coin counter
267    None = coin slot B disabled
268    No Credits = both coin slots open, but no effect on coin counters
269    Invalid = both coin slots disabled
270Accordingly, we pass below different strings for different games */
271
272#define KONAMI_COINAGE_LOC( STRING_A, STRING_B, DIPBANK )   \
273   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION(#DIPBANK":1,2,3,4")   \
274   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )   \
275   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )   \
276   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )   \
277   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )   \
278   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )   \
279   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )   \
280   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )   \
281   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )   \
282   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )   \
283   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )   \
284   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )   \
285   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )   \
286   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )   \
287   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )   \
288   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )   \
289   PORT_DIPSETTING(    0x00, STRING_A )         \
290   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION(#DIPBANK":5,6,7,8")   \
291   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )   \
292   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )   \
293   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )   \
294   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )   \
295   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )   \
296   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )   \
297   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )   \
298   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )   \
299   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )   \
300   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )   \
301   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )   \
302   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )   \
303   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )   \
304   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )   \
305   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )   \
306   PORT_DIPSETTING(    0x00, STRING_B )
307
308#define KONAMI_COINAGE( STRING_A, STRING_B )   \
309   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )   \
310   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )   \
311   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )   \
312   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )   \
313   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )   \
314   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )   \
315   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )   \
316   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )   \
317   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )   \
318   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )   \
319   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )   \
320   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )   \
321   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )   \
322   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )   \
323   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )   \
324   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )   \
325   PORT_DIPSETTING(    0x00, STRING_A )         \
326   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )   \
327   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )   \
328   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )   \
329   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )   \
330   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )   \
331   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )   \
332   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )   \
333   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )   \
334   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )   \
335   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )   \
336   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )   \
337   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )   \
338   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )   \
339   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )   \
340   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )   \
341   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )   \
342   PORT_DIPSETTING(    0x00, STRING_B )
343
344#define KONAMI_COINAGE_ALT_LOC( DIPBANK )   \
345   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION(#DIPBANK":1,2,3,4")   \
346   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )   \
347   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )   \
348   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )   \
349   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )   \
350   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )   \
351   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )   \
352   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )   \
353   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )   \
354   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )   \
355   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )   \
356   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )   \
357   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )   \
358   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )   \
359   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )   \
360   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )   \
361   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )   \
362   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION(#DIPBANK":5,6,7,8")   \
363   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )   \
364   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )   \
365   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )   \
366   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )   \
367   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )   \
368   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )   \
369   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )   \
370   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )   \
371   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )   \
372   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )   \
373   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )   \
374   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )   \
375   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )   \
376   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )   \
377   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )   \
378   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
379
380#define KONAMI_COINAGE_ALT   \
381   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )   \
382   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )   \
383   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )   \
384   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )   \
385   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )   \
386   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )   \
387   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )   \
388   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )   \
389   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )   \
390   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )   \
391   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )   \
392   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )   \
393   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )   \
394   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )   \
395   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )   \
396   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )   \
397   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )   \
398   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )   \
399   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )   \
400   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )   \
401   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )   \
402   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )   \
403   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )   \
404   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )   \
405   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )   \
406   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )   \
407   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )   \
408   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )   \
409   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )   \
410   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )   \
411   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )   \
412   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )   \
413   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )   \
414   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
src/mame/mame.mak
r4470r4471
15471547   $(DRIVERS)/mosaic.o $(VIDEO)/mosaic.o \
15481548   $(DRIVERS)/mrjong.o $(VIDEO)/mrjong.o \
15491549   $(DRIVERS)/murogem.o \
1550   $(DRIVERS)/murogmbl.o \
15501551   $(DRIVERS)/news.o $(VIDEO)/news.o \
15511552   $(DRIVERS)/norautp.o \
15521553   $(DRIVERS)/oneshot.o $(VIDEO)/oneshot.o \
r4470r4471
18031804$(DRIVERS)/zac2650.o:   $(LAYOUT)/tinv2650.lh
18041805
18051806
1806
18071807#-------------------------------------------------
18081808# misc dependencies
18091809#-------------------------------------------------
src/mame/video/system1.c
r4470r4471
11/*************************************************************************
22
3  System1 / System 2.   By Jarek Parchanski & Mirko Buffoni.
3    System1 / System 2
4    original driver by Jarek Parchanski & Mirko Buffoni
45
5  Many thanks to Roberto Ventura, for precious information about
6  System 1 hardware.
6    Many thanks to Roberto Ventura, for precious information about
7    System 1 hardware.
78
8*************************************************************************/
9**************************************************************************
910
10#include "driver.h"
11#include "system1.h"
11    The System 1/System 2 video hardware is composed of two tilemap
12    layers and a sprite layer.
1213
13UINT8 *system1_scroll_y;
14UINT8 *system1_scroll_x;
15UINT8 *system1_videoram;
16UINT8 *system1_backgroundram;
17UINT8 *system1_sprites_collisionram;
18UINT8 *system1_background_collisionram;
19UINT8 *system1_scrollx_ram;
20size_t system1_videoram_size;
21size_t system1_backgroundram_size;
14    The tilemap layers are built up out of "pages" of 32x32 tilemaps.
15    Each tile is described by two bytes, meaning each page is 2k bytes
16    in size. One of the tilemaps is fixed in position, while the other
17    has registers for scrolling that vary between board variants.
2218
23static UINT8 *sprite_onscreen_map;
24static int background_scrollx=0,background_scrolly=0;
25static UINT8 *bg_dirtybuffer;
19    The original System 1 hardware simply had two fixed pages. Page 0
20    was the scrolling tilemap, and page 1 was the fixed tilemap.
2621
27static int scrollx_row[32];
28static bitmap_t *tmp_bitmap;
22    With later boards and the introduction of System 2, this was
23    expanded to support up to 8 pages. The fixed tilemap was hard-
24    coded to page 0, but the scrolling tilemap was extended. Instead
25    of a single page, the scrolling tilemap consisted of 4 pages glued
26    together to form an effective large 64x64 tilemap. Further, each
27    of the 4 pages that made up the scrolling tilemap could be
28    independently selected from one of the 8 available pages. This
29    unique paged tilemap system would continue on to form the basis of
30    Sega's tilemap systems for their 16-bit era.
2931
30//static int system1_pixel_mode = 0
31static UINT8 system1_background_memory,system1_video_mode=0;
32    Up to 32 sprites can be displayed. They are rendered one scanline
33    ahead of the beam into 12-bit line buffers which store the sprite
34    pixel data and sprite index. During rendering, collisions are
35    checked between sprites and if one is found a bit is set in a
36    special 32x32x1 collision RAM indiciating which pair of sprites
37    collided. Note that the sprite color is derived directly from the
38    sprite index, giving each sprite its own set of 16 colors.
3239
33static const UINT8 *system1_color_prom;
40    The 11-bit output from the two tilemaps (3 bits of pixel data,
41    6 bits of color, 2 bits of priority), plus the 9-bit output from
42    the sprite line buffer (4 bits of pixel data, 5 bits of color)
43    are combined in a final step to produce the final pixel value. To
44    do this, a lookup PROM is used which accepts as input the priority
45    bits from the two tilemaps and the whether each of the incoming
46    pixel values is transparent (color 0).
3447
35static UINT8 *wbml_paged_videoram;
36static UINT8 wbml_videoram_bank=0,wbml_videoram_bank_latch=0;
48    The output of the lookup PROM is a 4-bit value. The lower 2 bits
49    select sprite data (0), fixed tilemap (1) or scrolling tilemap (2).
50    9 bits of data from the appropriate source are used as a lookup
51    into a palette RAM, and the lookup PROM's low 2 bits are used as
52    the upper 2 bits of the palette RAM address, providing 512
53    independent colors for each source.
3754
38static int blockgal_kludgeoffset;
39static int system1_sprite_xoffset = 0;
55    The upper 2 bits of the lookup PROM are used for an additional
56    mixer collision detection. Bit 2 indicates that a collision
57    should be recorded, and bit 3 indicates which of two banks of
58    collision flags should be set. Each bank is 32 entries long, and
59    the sprite index is used to select which bit within the bank to
60    set.
4061
41/***************************************************************************
62    On the original System 1 hardware, the palette RAM value was used
63    directly as RGB, with 3 bits each of red and green, and 2 bits of
64    blue. Later hardware added an extra indirection layer, where the
65    8-bit palette RAM value passed into 3 256x4 palette PROMs, one for
66    each color.
4267
43  There are two kind of color handling: in the System 1 games, values in the
44  palette RAM are directly mapped to colors with the usual BBGGGRRR format;
45  in the System 2 ones (Choplifter, WBML, etc.), the value in the palette RAM
46  is a lookup offset for three palette PROMs in RRRRGGGGBBBB format.
68    Collision data is accessed via a 4k window that is broken into
69    4 equal-sized sections. The first section returns data from the
70    2x32x1 mixer collision; the data for the collision is returned in
71    D0, and a summary bit indicating that some sort of collision has
72    occurred is returned in D7. The specific collision bit is cleared
73    by writing to the equivalent address in the same region. The
74    collision summary bit is cleared by writing to the second region.
4775
48  It's hard to tell for sure because they use resistor packs, but here's
49  what I think the values are from measurment with a volt meter:
76    The third and fourth collision regions operate similarly, but
77    return data for the 32x32x1 sprite collisions.
5078
51  Blue: .250K ohms
52  Blue: .495K ohms
53  Green:.250K ohms
54  Green:.495K ohms
55  Green:.995K ohms
56  Red:  .495K ohms
57  Red:  .250K ohms
58  Red:  .995K ohms
79*************************************************************************/
5980
60  accurate to +/- .003K ohms.
81#include "driver.h"
82#include "system1.h"
6183
62***************************************************************************/
63PALETTE_INIT( system1 )
64{
65   system1_color_prom = color_prom;
66}
84static UINT8 *mix_collide;
85static UINT8 mix_collide_summary;
86static UINT8 *sprite_collide;
87static UINT8 sprite_collide_summary;
6788
68WRITE8_HANDLER( system1_paletteram_w )
69{
70   int val,r,g,b;
89static bitmap_t *sprite_bitmap;
7190
91static UINT8 system1_video_mode;
7292
73   paletteram[offset] = data;
93static UINT8 videoram_bank;
7494
75   if (system1_color_prom)
76   {
77      int bit0,bit1,bit2,bit3;
95static tilemap *tilemap_page[8];
96static UINT8 tilemap_pages;
7897
79      val = system1_color_prom[data+0*256];
80      bit0 = (val >> 0) & 0x01;
81      bit1 = (val >> 1) & 0x01;
82      bit2 = (val >> 2) & 0x01;
83      bit3 = (val >> 3) & 0x01;
84      r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
8598
86      val = system1_color_prom[data+1*256];
87      bit0 = (val >> 0) & 0x01;
88      bit1 = (val >> 1) & 0x01;
89      bit2 = (val >> 2) & 0x01;
90      bit3 = (val >> 3) & 0x01;
91      g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
9299
93      val = system1_color_prom[data+2*256];
94      bit0 = (val >> 0) & 0x01;
95      bit1 = (val >> 1) & 0x01;
96      bit2 = (val >> 2) & 0x01;
97      bit3 = (val >> 3) & 0x01;
98      b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
99   }
100   else
101   {
102      r = pal3bit(data >> 0);
103      g = pal3bit(data >> 3);
104      b = pal2bit(data >> 6);
105   }
100/*************************************
101 *
102 *  Tile callback
103 *
104 *************************************/
106105
107   palette_set_color(space->machine,offset,MAKE_RGB(r,g,b));
108}
109
110static STATE_POSTLOAD( system1_postload )
106static TILE_GET_INFO( tile_get_info )
111107{
112   memset(sprite_onscreen_map, 255, 256*256);
113   memset(bg_dirtybuffer, 1, 1024);
108   UINT8 *rambase = param;
109   UINT32 tiledata = rambase[tile_index*2+0] | (rambase[tile_index*2+1] << 8);
110   UINT32 code = ((tiledata >> 4) & 0x800) | (tiledata & 0x7ff);
111   UINT32 color = (tiledata >> 5) & 0xff;
112
113   SET_TILE_INFO(0, code, color, 0);
114114}
115115
116VIDEO_START( system1 )
116
117
118/*************************************
119 *
120 *  Video startup
121 *
122 *************************************/
123
124static void video_start_common(running_machine *machine, int pagecount)
117125{
118   sprite_onscreen_map = auto_malloc(256*256);
119   memset(sprite_onscreen_map,255,256*256);
126   int pagenum;
120127
121   bg_dirtybuffer = auto_malloc(1024);
122   memset(bg_dirtybuffer,1,1024);
128   /* allocate memory for the collision arrays */
129   mix_collide = auto_malloc(64);
130   memset(mix_collide, 0, 64);
131   sprite_collide = auto_malloc(1024);
132   memset(sprite_collide, 0, 1024);
123133
124   tmp_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
134   /* allocate memory for videoram */
135   tilemap_pages = pagecount;
136   videoram = auto_malloc(0x800 * pagecount);
137   memset(videoram, 0, 0x800 * pagecount);
125138
126   state_save_register_postload(machine, system1_postload, NULL);
127   state_save_register_global(machine, system1_background_memory);
128   state_save_register_global(machine, system1_video_mode);
139   /* create the tilemap pages */
140   for (pagenum = 0; pagenum < pagecount; pagenum++)
141   {
142      tilemap_page[pagenum] = tilemap_create(machine, tile_get_info, tilemap_scan_rows, 8,8, 32,32);
143      tilemap_set_transparent_pen(tilemap_page[pagenum], 0);
144      tilemap_set_user_data(tilemap_page[pagenum], videoram + 0x800 * pagenum);
145   }
129146
130   system1_sprite_xoffset = 1;
147   /* allocate a temporary bitmap for sprite rendering */
148   sprite_bitmap = auto_bitmap_alloc(256, 256, BITMAP_FORMAT_INDEXED16);
149
150   /* register for save stats */
151   state_save_register_global(machine, system1_video_mode);
152   state_save_register_global(machine, mix_collide_summary);
153   state_save_register_global(machine, sprite_collide_summary);
154   state_save_register_global_pointer(machine, videoram, 0x800 * pagecount);
155   state_save_register_global_pointer(machine, mix_collide, 64);
156   state_save_register_global_pointer(machine, sprite_collide, 1024);
131157}
132158
133VIDEO_START( wbml )
159
160VIDEO_START( system1 )
134161{
135   sprite_onscreen_map = auto_malloc(256*256);
136   memset(sprite_onscreen_map,255,256*256);
162   video_start_common(machine, 2);
163}
137164
138   bg_dirtybuffer = auto_malloc(1024);
139   memset(bg_dirtybuffer,1,1024);
140   wbml_paged_videoram = auto_malloc(0x4000);   /* Allocate 16k for background banked ram */
141   memset(wbml_paged_videoram,0,0x4000);
142165
143   tmp_bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen);
166VIDEO_START( system2 )
167{
168   video_start_common(machine, 8);
169}
144170
145   system1_sprite_xoffset = 1+7*2;
146171
147   state_save_register_postload(machine, system1_postload, NULL);
148   state_save_register_global(machine, system1_background_memory);
149   state_save_register_global(machine, system1_video_mode);
150172
151   state_save_register_global_pointer(machine, wbml_paged_videoram, 0x4000);
152   state_save_register_global(machine, wbml_videoram_bank);
153   state_save_register_global(machine, wbml_videoram_bank_latch);
154}
173/*************************************
174 *
175 *  Video control
176 *
177 *************************************/
155178
156179WRITE8_HANDLER( system1_videomode_w )
157180{
158181if (data & 0x6e) logerror("videomode = %02x\n",data);
159182
160   /* bit 0 is coin counter */
161   coin_counter_w(0, data & 1);
162
163183   /* bit 4 is screen blank */
164184   system1_video_mode = data;
165185
r4470r4471
167187   flip_screen_set(space->machine, data & 0x80);
168188}
169189
170READ8_HANDLER( system1_videomode_r )
190
191
192/*************************************
193 *
194 *  Mixer collision I/O
195 *
196 *************************************/
197
198READ8_HANDLER( system1_mixer_collision_r )
171199{
172   return system1_video_mode;
200   video_screen_update_now(space->machine->primary_screen);
201   return mix_collide[offset & 0x3f] | 0x7e | (mix_collide_summary << 7);
173202}
174203
175void system1_define_background_memory(int mode)
204WRITE8_HANDLER( system1_mixer_collision_w )
176205{
177   system1_background_memory = mode;
206   video_screen_update_now(space->machine->primary_screen);
207   mix_collide[offset & 0x3f] = 0;
178208}
179209
180
181#ifdef UNUSED_FUNCTION
182INLINE int get_sprite_bottom_y(int spr_number)
210WRITE8_HANDLER( system1_mixer_collision_reset_w )
183211{
184   return  spriteram[0x10 * spr_number + SPR_Y_BOTTOM];
212   video_screen_update_now(space->machine->primary_screen);
213   mix_collide_summary = 0;
185214}
186#endif
187215
188INLINE void draw_pixel(running_machine *machine, bitmap_t *bitmap,
189                    int x,int y,int x_flipped,int y_flipped,
190                    int spr_number,int color)
191{
192   int xr,yr;
193   int sprite_onscreen;
194   const rectangle *visarea = video_screen_get_visible_area(machine->primary_screen);
195216
196   if (x < 0 || x >= video_screen_get_width(machine->primary_screen) ||
197      y < 0 || y >= video_screen_get_height(machine->primary_screen))
198      return;
199217
200   if (sprite_onscreen_map[256*y+x] != 255)
201   {
202      sprite_onscreen = sprite_onscreen_map[256*y+x];
203      system1_sprites_collisionram[sprite_onscreen + 32 * spr_number] = 0xff;
204   }
218/*************************************
219 *
220 *  Sprite collision I/O
221 *
222 *************************************/
205223
206   sprite_onscreen_map[256*y+x] = spr_number;
207
208   if (x_flipped >= visarea->min_x ||
209      x_flipped <= visarea->max_x ||
210      y_flipped >= visarea->min_y ||
211      y_flipped <= visarea->max_y)
212   {
213      *BITMAP_ADDR16(bitmap, y_flipped, x_flipped) = color;
214   }
215
216   xr = ((x - background_scrollx) & 0xff) / 8;
217   yr = ((y - background_scrolly) & 0xff) / 8;
218
219   /* TODO: bits 5 and 6 of backgroundram are also used (e.g. Pitfall2, Mr. Viking) */
220   /* what's the difference? Bit 7 is used in Choplifter/WBML for extra char bank */
221   /* selection, but it is also set in Pitfall2 */
222
223   if (system1_background_memory == system1_BACKGROUND_MEMORY_SINGLE)
224   {
225      if (system1_backgroundram[2 * (32 * yr + xr) + 1] & 0x10)
226         system1_background_collisionram[0x20 + spr_number] = 0xff;
227   }
228   else
229   {
230      /* TODO: I should handle the paged background memory here. */
231      /* maybe collision detection is not used by the paged games */
232      /* (wbml and tokisens), though tokisens doesn't play very well */
233      /* (you can't seem to fit in gaps where you should fit) */
234   }
235
236   /* TODO: collision should probably be checked with the foreground as well */
237   /* (TeddyBoy Blues, head of the tiger in girl bonus round) */
224READ8_HANDLER( system1_sprite_collision_r )
225{
226   video_screen_update_now(space->machine->primary_screen);
227   return sprite_collide[offset & 0x3ff] | 0x7e | (sprite_collide_summary << 7);
238228}
239229
240WRITE8_HANDLER( system1_background_collisionram_w )
230WRITE8_HANDLER( system1_sprite_collision_w )
241231{
242   /* to do the RAM check, Mister Viking writes 0xff and immediately */
243   /* reads it back, expecting bit 0 to be NOT set. */
244   system1_background_collisionram[offset] = 0x7e;
232   video_screen_update_now(space->machine->primary_screen);
233   sprite_collide[offset & 0x3ff] = 0;
245234}
246235
247WRITE8_HANDLER( system1_sprites_collisionram_w )
236WRITE8_HANDLER( system1_sprite_collision_reset_w )
248237{
249   /* to do the RAM check, Mister Viking write 0xff and immediately */
250   /* reads it back, expecting bit 0 to be NOT set. */
251   /* Up'n Down expects to find 0x7e at f800 before doing the whole */
252   /* collision test */
253   system1_sprites_collisionram[offset] = 0x7e;
238   video_screen_update_now(space->machine->primary_screen);
239   sprite_collide_summary = 0;
254240}
255241
256static void draw_sprite(running_machine *machine, bitmap_t *bitmap,int spr_number)
257{
258   int sy,row,height,src,bank;
259   UINT8 *sprite_base;
260   int sprite_palette_base;
261   INT16 skip;   /* bytes to skip before drawing each row (can be negative) */
262   UINT8 *gfx;
263242
264243
265   sprite_base   = spriteram + 0x10 * spr_number;
244/*************************************
245 *
246 *  Video RAM access
247 *
248 *************************************/
266249
267   src = sprite_base[SPR_GFXOFS_LO] + (sprite_base[SPR_GFXOFS_HI] << 8);
268   bank = 0x8000 * (((sprite_base[SPR_X_HI] & 0x80) >> 7) + ((sprite_base[SPR_X_HI] & 0x40) >> 5));
269   bank &= (memory_region_length(machine, "gfx2")-1);   /* limit to the range of available ROMs */
270   skip = sprite_base[SPR_SKIP_LO] + (sprite_base[SPR_SKIP_HI] << 8);
271
272   height = sprite_base[SPR_Y_BOTTOM] - sprite_base[SPR_Y_TOP];
273   sprite_palette_base = 0x10 * spr_number;
274
275   sy = sprite_base[SPR_Y_TOP] + 1;
276
277   /* graphics region #2 contains the packed sprite data */
278   gfx = &memory_region(machine, "gfx2")[bank];
279
280   for (row = 0;row < height;row++)
281   {
282      int x,x_flipped;
283      int y,y_flipped;
284      int src2;
285
286      src = src2 = src + skip;
287
288      x = sprite_base[SPR_X_LO] + ((sprite_base[SPR_X_HI] & 0x01) << 8) + system1_sprite_xoffset;
289      x_flipped = x;
290      y = y_flipped = sy+row;
291
292      if (flip_screen_get(machine))
293      {
294         y_flipped = 258 - sy - height + row;
295         x_flipped = (252*2) - x;
296      }
297
298      x /= 2;   /* the hardware has sub-pixel placement, it seems */
299      x_flipped /= 2;
300
301      while (1)
302      {
303         int color1,color2,data;
304
305         data = gfx[src2 & 0x7fff];
306
307         if (src & 0x8000)
308         {
309            src2--;
310
311            color1 = data & 0x0f;
312            color2 = data >> 4;
313         }
314         else
315         {
316            src2++;
317
318            color1 = data >> 4;
319            color2 = data & 0x0f;
320         }
321
322         if (color1 == 15) break;
323         if (color1)
324            draw_pixel(machine,bitmap,x,y,x_flipped,y_flipped,spr_number,sprite_palette_base+color1);
325         x++;
326         x_flipped += flip_screen_get(machine) ? -1 : 1;
327
328         if (color2 == 15) break;
329         if (color2)
330            draw_pixel(machine,bitmap,x,y,x_flipped,y_flipped,spr_number,sprite_palette_base+color2);
331         x++;
332         x_flipped += flip_screen_get(machine) ? -1 : 1;
333      }
334   }
250READ8_HANDLER( system1_videoram_r )
251{
252   offset |= 0x1000 * ((videoram_bank >> 1) % (tilemap_pages / 2));
253   return videoram[offset];
335254}
336255
337
338static void draw_sprites(running_machine *machine, bitmap_t *bitmap)
256WRITE8_HANDLER( system1_videoram_w )
339257{
340   int spr_number,sprite_bottom_y,sprite_top_y;
341   UINT8 *sprite_base;
258   offset |= 0x1000 * ((videoram_bank >> 1) % (tilemap_pages / 2));
259   videoram[offset] = data;
342260
261   tilemap_mark_tile_dirty(tilemap_page[offset / 0x800], (offset % 0x800) / 2);
343262
344   memset(sprite_onscreen_map,255,256*256);
345
346   for (spr_number = 0;spr_number < 32;spr_number++)
347   {
348      sprite_base = spriteram + 0x10 * spr_number;
349      sprite_top_y = sprite_base[SPR_Y_TOP];
350      sprite_bottom_y = sprite_base[SPR_Y_BOTTOM];
351      if (sprite_bottom_y && (sprite_bottom_y-sprite_top_y > 0))
352         draw_sprite(machine, bitmap,spr_number);
353   }
263   /* force a partial update if the page is changing */
264   if (tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0)
265      video_screen_update_now(space->machine->primary_screen);
354266}
355267
356
357
358WRITE8_HANDLER( system1_backgroundram_w )
268WRITE8_DEVICE_HANDLER( system1_videoram_bank_w )
359269{
360   system1_backgroundram[offset] = data;
361   bg_dirtybuffer[offset>>1] = 1;
270   videoram_bank = data;
362271}
363272
364273
365static void system1_draw_fg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority)
366{
367   int sx,sy,offs;
368274
369   priority <<= 3;
275/*************************************
276 *
277 *  Palette RAM access
278 *
279 *************************************/
370280
371   for (offs = 0;offs < system1_videoram_size;offs += 2)
372   {
373      if ((system1_videoram[offs+1] & 0x08) == priority)
374      {
375         int code,color;
281WRITE8_HANDLER( system1_paletteram_w )
282{
283   const UINT8 *color_prom = memory_region(space->machine, "palette");
284   int val,r,g,b;
376285
286   /*
287      There are two kind of color handling: in the System 1 games, values in the
288      palette RAM are directly mapped to colors with the usual BBGGGRRR format;
289      in the System 2 ones (Choplifter, WBML, etc.), the value in the palette RAM
290      is a lookup offset for three palette PROMs in RRRRGGGGBBBB format.
377291
378         code = (system1_videoram[offs] | (system1_videoram[offs+1] << 8));
379         code = ((code >> 4) & 0x800) | (code & 0x7ff);   /* Heavy Metal only */
380         color = ((code >> 5) & 0x3f);
381         sx = (offs/2) % 32;
382         sy = (offs/2) / 32;
292      It's hard to tell for sure because they use resistor packs, but here's
293      what I think the values are from measurment with a volt meter:
383294
384         if (flip_screen_get(machine))
385         {
386            sx = 31 - sx;
387            sy = 31 - sy;
388         }
295      Blue: .250K ohms
296      Blue: .495K ohms
297      Green:.250K ohms
298      Green:.495K ohms
299      Green:.995K ohms
300      Red:  .495K ohms
301      Red:  .250K ohms
302      Red:  .995K ohms
389303
390         code %= machine->gfx[0]->total_elements;
304      accurate to +/- .003K ohms.
305    */
391306
392         drawgfx(bitmap,machine->gfx[0],
393               code,
394               color,
395               flip_screen_get(machine),flip_screen_get(machine),
396               8*sx + blockgal_kludgeoffset,8*sy,
397               cliprect,TRANSPARENCY_PEN,0);
398      }
399   }
400}
307   paletteram[offset] = data;
401308
402static void system1_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority)
403{
404   int sx,sy,offs;
405   int background_scrollx_flip, background_scrolly_flip;
406
407
408   background_scrollx = ((system1_scroll_x[0] >> 1) + ((system1_scroll_x[1] & 1) << 7) + 14 + 2*blockgal_kludgeoffset) & 0xff;
409   background_scrolly = (-*system1_scroll_y) & 0xff;
410
411   background_scrollx_flip = (275 - background_scrollx) & 0xff;
412   background_scrolly_flip = (256 - background_scrolly) & 0xff;
413
414   if (priority == -1)
309   if (color_prom != NULL)
415310   {
416      /* optimized far background */
311      int bit0,bit1,bit2,bit3;
417312
418      /* for every character in the background video RAM, check if it has
419         * been modified since last time and update it accordingly.
420         */
313      val = color_prom[data+0*256];
314      bit0 = (val >> 0) & 0x01;
315      bit1 = (val >> 1) & 0x01;
316      bit2 = (val >> 2) & 0x01;
317      bit3 = (val >> 3) & 0x01;
318      r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
421319
422      for (offs = 0;offs < system1_backgroundram_size;offs += 2)
423      {
424         if (bg_dirtybuffer[offs / 2])
425         {
426            int code,color;
320      val = color_prom[data+1*256];
321      bit0 = (val >> 0) & 0x01;
322      bit1 = (val >> 1) & 0x01;
323      bit2 = (val >> 2) & 0x01;
324      bit3 = (val >> 3) & 0x01;
325      g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
427326
428
429            bg_dirtybuffer[offs / 2] = 0;
430
431            code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8));
432            code = ((code >> 4) & 0x800) | (code & 0x7ff);   /* Heavy Metal only */
433            color = ((code >> 5) & 0x3f) + 0x40;
434            sx = (offs/2) % 32;
435            sy = (offs/2) / 32;
436
437            if (flip_screen_get(machine))
438            {
439               sx = 31 - sx;
440               sy = 31 - sy;
441            }
442
443            drawgfx(tmp_bitmap,machine->gfx[0],
444                  code,
445                  color,
446                  flip_screen_get(machine),flip_screen_get(machine),
447                  8*sx,8*sy,
448                  0,TRANSPARENCY_NONE,0);
449         }
450      }
451
452      /* copy the temporary bitmap to the screen */
453      if (flip_screen_get(machine))
454         copyscrollbitmap(bitmap,tmp_bitmap,1,&background_scrollx_flip,1,&background_scrolly_flip,cliprect);
455      else
456         copyscrollbitmap(bitmap,tmp_bitmap,1,&background_scrollx,1,&background_scrolly,cliprect);
327      val = color_prom[data+2*256];
328      bit0 = (val >> 0) & 0x01;
329      bit1 = (val >> 1) & 0x01;
330      bit2 = (val >> 2) & 0x01;
331      bit3 = (val >> 3) & 0x01;
332      b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
457333   }
458334   else
459335   {
460      priority <<= 3;
461
462      for (offs = 0;offs < system1_backgroundram_size;offs += 2)
463      {
464         if ((system1_backgroundram[offs+1] & 0x08) == priority)
465         {
466            int code,color;
467
468
469            code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8));
470            code = ((code >> 4) & 0x800) | (code & 0x7ff);   /* Heavy Metal only */
471            color = ((code >> 5) & 0x3f) + 0x40;
472            sx = (offs/2) % 32;
473            sy = (offs/2) / 32;
474
475            if (flip_screen_get(machine))
476            {
477               sx = 8*(31-sx) + background_scrollx_flip;
478               sy = 8*(31-sy) + background_scrolly_flip;
479            }
480            else
481            {
482               sx = 8*sx + background_scrollx;
483               sy = 8*sy + background_scrolly;
484            }
485
486            /* draw it 4 times because of possible wrap around */
487            drawgfx(bitmap,machine->gfx[0],
488                  code,
489                  color,
490                  flip_screen_get(machine),flip_screen_get(machine),
491                  sx,sy,
492                  cliprect,TRANSPARENCY_PEN,0);
493            drawgfx(bitmap,machine->gfx[0],
494                  code,
495                  color,
496                  flip_screen_get(machine),flip_screen_get(machine),
497                  sx-256,sy,
498                  cliprect,TRANSPARENCY_PEN,0);
499            drawgfx(bitmap,machine->gfx[0],
500                  code,
501                  color,
502                  flip_screen_get(machine),flip_screen_get(machine),
503                  sx,sy-256,
504                  cliprect,TRANSPARENCY_PEN,0);
505            drawgfx(bitmap,machine->gfx[0],
506                  code,
507                  color,
508                  flip_screen_get(machine),flip_screen_get(machine),
509                  sx-256,sy-256,
510                  cliprect,TRANSPARENCY_PEN,0);
511         }
512      }
336      r = pal3bit(data >> 0);
337      g = pal3bit(data >> 3);
338      b = pal2bit(data >> 6);
513339   }
514}
515340
516VIDEO_UPDATE( system1 )
517{
518   system1_draw_bg(screen->machine, bitmap, cliprect, -1);
519   system1_draw_fg(screen->machine, bitmap, cliprect, 0);
520   system1_draw_bg(screen->machine, bitmap, cliprect, 0);
521   draw_sprites(screen->machine, bitmap);
522   system1_draw_bg(screen->machine, bitmap, cliprect, 1);
523   system1_draw_fg(screen->machine, bitmap, cliprect, 1);
524
525   /* even if screen is off, sprites must still be drawn to update the collision table */
526   if (system1_video_mode & 0x10)  /* screen off */
527      bitmap_fill(bitmap,cliprect,0);
528   return 0;
341   palette_set_color(space->machine,offset,MAKE_RGB(r,g,b));
529342}
530343
531344
532345
346/*************************************
347 *
348 *  Sprite rendering
349 *
350 *************************************/
533351
534
535
536
537
538
539WRITE8_HANDLER( choplifter_scroll_x_w )
352static void draw_sprites(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int xoffset)
540353{
541   system1_scrollx_ram[offset] = data;
354   UINT32 gfxbanks = memory_region_length(machine, "sprites") / 0x8000;
355   const UINT8 *gfxbase = memory_region(machine, "sprites");
356   int flipscreen = flip_screen_get(machine);
357   int spritenum;
542358
543   scrollx_row[offset/2] = (system1_scrollx_ram[offset & ~1] >> 1) + ((system1_scrollx_ram[offset | 1] & 1) << 7);
544}
545
546static void chplft_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int priority)
547{
548   int sx,sy,offs;
549   int choplifter_scroll_x_on = (system1_scrollx_ram[0] == 0xe5 && system1_scrollx_ram[1] == 0xff) ? 0 : 1;
550
551
552   if (priority == -1)
359   /* up to 32 sprites total */
360   for (spritenum = 0; spritenum < 32; spritenum++)
553361   {
554      /* optimized far background */
362      const UINT8 *spritedata = &spriteram[spritenum * 0x10];
363      UINT16 srcaddr = spritedata[6] + (spritedata[7] << 8);
364      UINT16 stride = spritedata[4] + (spritedata[5] << 8);
365      UINT8 bank = ((spritedata[3] & 0x80) >> 7) | ((spritedata[3] & 0x40) >> 5) | ((spritedata[3] & 0x20) >> 3);
366      int xstart = ((spritedata[2] + (spritedata[3] << 8)) & 0x1ff) / 2 + xoffset;
367      int bottom = spritedata[1] + 1;
368      int top = spritedata[0] + 1;
369      UINT16 palettebase = spritenum * 0x10;
370      const UINT8 *gfxbankbase;
371      int x, y;
555372
556      /* for every character in the background video RAM, check if it has
557         * been modified since last time and update it accordingly.
558         */
373      /* writing an 0xff into the first byte of sprite RAM seems to disable all sprites;
374           not sure if this applies to each sprite or only to the first one; see pitfall2
375           and wmatch for examples where this is done */
376      if (spritedata[0] == 0xff)
377         return;
559378
560      for (offs = 0;offs < system1_backgroundram_size;offs += 2)
561      {
562         if (bg_dirtybuffer[offs / 2])
563         {
564            int code,color;
379      /* clamp the bank to the size of the sprite ROMs */
380      bank %= gfxbanks;
381      gfxbankbase = gfxbase + bank * 0x8000;
565382
566
567            bg_dirtybuffer[offs / 2] = 0;
568
569            code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8));
570            code = ((code >> 4) & 0x800) | (code & 0x7ff);   /* Heavy Metal only */
571            color = ((code >> 5) & 0x3f) + 0x40;
572            sx = (offs/2) % 32;
573            sy = (offs/2) / 32;
574
575            if (flip_screen_get(machine))
576            {
577               sx = 31 - sx;
578               sy = 31 - sy;
579            }
580
581            drawgfx(tmp_bitmap,machine->gfx[0],
582                  code,
583                  color,
584                  flip_screen_get(machine),flip_screen_get(machine),
585                  8*sx,8*sy,
586                  0,TRANSPARENCY_NONE,0);
587         }
383      /* flip sprites vertically */
384      if (flipscreen)
385      {
386         int temp = top;
387         top = 256 - bottom;
388         bottom = 256 - temp;
588389      }
589390
590      /* copy the temporary bitmap to the screen */
591      if (choplifter_scroll_x_on)
391      /* iterate over all rows of the sprite */
392      for (y = top; y < bottom; y++)
592393      {
593         if (flip_screen_get(machine))
594         {
595            int scrollx_row_flip[32],i;
394         UINT16 *destbase = BITMAP_ADDR16(bitmap, y, 0);
395         UINT16 curaddr;
396         int addrdelta;
596397
597            for (i = 0; i < 32; i++)
598               scrollx_row_flip[31-i] = (256-scrollx_row[i]) & 0xff;
398         /* advance by the row counter */
399         srcaddr += stride;
599400
600            copyscrollbitmap(bitmap,tmp_bitmap,32,scrollx_row_flip,0,0,cliprect);
601         }
602         else
603            copyscrollbitmap(bitmap,tmp_bitmap,32,scrollx_row,0,0,cliprect);
604      }
605      else
606         copybitmap(bitmap,tmp_bitmap,0,0,0,0,cliprect);
607   }
608   else
609   {
610      priority <<= 3;
401         /* skip if outside of our clipping area */
402         if (y < cliprect->min_y || y > cliprect->max_y)
403            continue;
611404
612      for (offs = 0;offs < system1_backgroundram_size;offs += 2)
613      {
614         if ((system1_backgroundram[offs+1] & 0x08) == priority)
405         /* iterate over X */
406         addrdelta = (srcaddr & 0x8000) ? -1 : 1;
407         for (x = xstart, curaddr = srcaddr; ; x += 2, curaddr += addrdelta)
615408         {
616            int code,color;
409            UINT8 color1, color2;
410            UINT8 data;
617411
412            data = gfxbankbase[curaddr & 0x7fff];
618413
619            code = (system1_backgroundram[offs] | (system1_backgroundram[offs+1] << 8));
620            code = ((code >> 4) & 0x800) | (code & 0x7ff);   /* Heavy Metal only */
621            color = ((code >> 5) & 0x3f) + 0x40;
622            sx = (offs/2) % 32;
623            sy = (offs/2) / 32;
624
625            if (flip_screen_get(machine))
414            /* non-flipped case */
415            if (!(curaddr & 0x8000))
626416            {
627               sx = 8*(31-sx);
628
629               if (choplifter_scroll_x_on)
630                  sx = (sx - scrollx_row[sy]) & 0xff;
631
632               sy = 31 - sy;
417               color1 = data >> 4;
418               color2 = data & 0x0f;
633419            }
634420            else
635421            {
636               sx = 8*sx;
637
638               if (choplifter_scroll_x_on)
639                  sx = (sx + scrollx_row[sy]) & 0xff;
422               color1 = data & 0x0f;
423               color2 = data >> 4;
640424            }
641425
642            drawgfx(bitmap,machine->gfx[0],
643                  code,
644                  color,
645                  flip_screen_get(machine),flip_screen_get(machine),
646                  sx,8*sy,
647                  cliprect,TRANSPARENCY_PEN,0);
648         }
649      }
650   }
651}
426            /* stop when we see color 0x0f */
427            if (color1 == 0x0f)
428               break;
652429
653VIDEO_UPDATE( choplifter )
654{
655   chplft_draw_bg(screen->machine, bitmap, cliprect, -1);
656   system1_draw_fg(screen->machine, bitmap, cliprect, 0);
657   chplft_draw_bg(screen->machine, bitmap, cliprect, 0);
658   draw_sprites(screen->machine, bitmap);
659   chplft_draw_bg(screen->machine, bitmap, cliprect, 1);
660   system1_draw_fg(screen->machine, bitmap, cliprect, 1);
430            /* draw if non-transparent */
431            if (color1 != 0)
432            {
433               int effx = flipscreen ? 255 - (x + 0) : (x + 0);
434               if (effx >= cliprect->min_x && effx <= cliprect->max_x)
435               {
436                  int prevpix = destbase[effx];
661437
662   /* even if screen is off, sprites must still be drawn to update the collision table */
663   if (system1_video_mode & 0x10)  /* screen off */
664      bitmap_fill(bitmap,cliprect,0);
438                  if ((prevpix & 0x0f) != 0)
439                     sprite_collide[((prevpix >> 4) & 0x1f) + 32 * spritenum] = sprite_collide_summary = 1;
440                  destbase[effx] = color1 | palettebase;
441               }
442            }
665443
444            /* stop when we see color 0x0f */
445            if (color2 == 0x0f)
446               break;
666447
667#ifdef MAME_DEBUG
668   if (input_code_pressed(KEYCODE_SPACE))      // goto next level
669   {
670      memory_region(screen->machine, "maincpu")[0xC085]=33;
448            /* draw if non-transparent */
449            if (color2 != 0)
450            {
451               int effx = flipscreen ? 255 - (x + 1) : (x + 1);
452               if (effx >= cliprect->min_x && effx <= cliprect->max_x)
453               {
454                  int prevpix = destbase[effx];
455
456                  if ((prevpix & 0x0f) != 0)
457                     sprite_collide[((prevpix >> 4) & 0x1f) + 32 * spritenum] = sprite_collide_summary = 1;
458                  destbase[effx] = color2 | palettebase;
459               }
460            }
461         }
462      }
671463   }
672#endif
673   return 0;
674464}
675465
676466
677467
678READ8_HANDLER( wbml_videoram_bank_latch_r )
679{
680   return wbml_videoram_bank_latch;
681}
468/*************************************
469 *
470 *  Generic update code
471 *
472 *************************************/
682473
683WRITE8_HANDLER( wbml_videoram_bank_latch_w )
474static void video_update_common(const device_config *screen, bitmap_t *bitmap, const rectangle *cliprect, bitmap_t *fgpixmap, bitmap_t **bgpixmaps, const int *bgrowscroll, int bgyscroll, int spritexoffs)
684475{
685   wbml_videoram_bank_latch = data;
686   wbml_videoram_bank = (data >> 1) & 0x03;   /* Select 4 banks of 4k, bit 2,1 */
687}
476   const UINT8 *lookup = memory_region(screen->machine, "proms");
477   int x, y;
688478
689READ8_HANDLER( wbml_paged_videoram_r )
690{
691   return wbml_paged_videoram[0x1000*wbml_videoram_bank + offset];
692}
479   /* first clear the sprite bitmap and draw sprites within this area */
480   bitmap_fill(sprite_bitmap, cliprect, 0);
481   draw_sprites(screen->machine, sprite_bitmap, cliprect, spritexoffs);
693482
694WRITE8_HANDLER( wbml_paged_videoram_w )
695{
696   wbml_paged_videoram[0x1000*wbml_videoram_bank + offset] = data;
697}
698
699static void wbml_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int trasp)
700{
701   int page;
702
703   int xscroll = (wbml_paged_videoram[0x7c0] >> 1) + ((wbml_paged_videoram[0x7c1] & 1) << 7) - 256 + 5;
704   int yscroll = -wbml_paged_videoram[0x7ba];
705
706   for (page=0; page < 4; page++)
483   /* iterate over rows */
484   for (y = cliprect->min_y; y <= cliprect->max_y; y++)
707485   {
708      const UINT8 *source = wbml_paged_videoram + (wbml_paged_videoram[0x0740 + page*2] & 0x07)*0x800;
709      int startx = (page&1)*256+xscroll;
710      int starty = (page>>1)*256+yscroll;
711      int row,col;
486      UINT16 *fgbase = BITMAP_ADDR16(fgpixmap, y, 0);
487      UINT16 *sprbase = BITMAP_ADDR16(sprite_bitmap, y, 0);
488      UINT16 *dstbase = BITMAP_ADDR16(bitmap, y, 0);
489      int bgy = (y + bgyscroll) & 0x1ff;
490      int bgxscroll = bgrowscroll[y / 8];
491      UINT16 *bgbase[2];
712492
493      /* get the base of the left and right pixmaps for the effective background Y */
494      bgbase[0] = BITMAP_ADDR16(bgpixmaps[(bgy >> 8) * 2 + 0], bgy & 0xff, 0);
495      bgbase[1] = BITMAP_ADDR16(bgpixmaps[(bgy >> 8) * 2 + 1], bgy & 0xff, 0);
713496
714      for( row=0; row<32*8; row+=8 )
497      /* iterate over pixels */
498      for (x = cliprect->min_x; x <= cliprect->max_x; x++)
715499      {
716         for( col=0; col<32*8; col+=8 )
717         {
718            int code,priority;
719            int x = (startx+col) & 0x1ff;
720            int y = (starty+row) & 0x1ff;
721            if (x > 256) x -= 512;
722            if (y > 224) y -= 512;
500         int bgx = (x - bgxscroll) & 0x1ff;
501         UINT16 fgpix = fgbase[x];
502         UINT16 bgpix = bgbase[bgx >> 8][bgx & 0xff];
503         UINT16 sprpix = sprbase[x];
504         UINT8 lookup_index;
505         UINT8 lookup_value;
723506
724            if (flip_screen_get(machine))
725            {
726               x = 248 - x;
727               y = 248 - y;
728            }
507         /* using the sprite, background, and foreground pixels, look up the color behavior */
508         lookup_index =    (((sprpix & 0xf) == 0) << 0) |
509                     (((fgpix & 7) == 0) << 1) |
510                     (((fgpix >> 9) & 3) << 2) |
511                     (((bgpix & 7) == 0) << 4) |
512                     (((bgpix >> 9) & 3) << 5);
513         lookup_value = lookup[lookup_index];
729514
730            code = source[0] + (source[1] << 8);
731            priority = code & 0x800;
732            code = ((code >> 4) & 0x800) | (code & 0x7ff);
515         /* compute collisions based on two of the PROM bits */
516         if (!(lookup_value & 4))
517            mix_collide[((lookup_value & 8) << 2) | ((sprpix >> 4) & 0x1f)] = mix_collide_summary = 1;
733518
734            if (!trasp)
735               drawgfx(bitmap,machine->gfx[0],
736                     code,
737                     ((code >> 5) & 0x3f) + 64,
738                     flip_screen_get(machine),flip_screen_get(machine),
739                     x,y,
740                     cliprect, TRANSPARENCY_NONE, 0);
741            else if (priority)
742               drawgfx(bitmap,machine->gfx[0],
743                     code,
744                     ((code >> 5) & 0x3f) + 64,
745                     flip_screen_get(machine),flip_screen_get(machine),
746                     x,y,
747                     cliprect, TRANSPARENCY_PEN, 0);
748
749            source+=2;
750         }
519         /* the lower 2 PROM bits select the palette and which pixels */
520         lookup_value &= 3;
521         if (system1_video_mode & 0x10)
522            dstbase[x] = 0;
523         else if (lookup_value == 0)
524            dstbase[x] = 0x000 | (sprpix & 0x1ff);
525         else if (lookup_value == 1)
526            dstbase[x] = 0x200 | (fgpix & 0x1ff);
527         else
528            dstbase[x] = 0x400 | (bgpix & 0x1ff);
751529      }
752   } /* next page */
530   }
753531}
754532
755static void wbml_draw_fg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect)
756{
757   int offs;
758533
759534
760   for (offs = 0;offs < 0x700;offs += 2)
761   {
762      int sx,sy,code;
535/*************************************
536 *
537 *  Board-specific update front-ends
538 *
539 *************************************/
763540
541VIDEO_UPDATE( system1 )
542{
543   bitmap_t *bgpixmaps[4], *fgpixmap;
544   int bgrowscroll[32];
545   int xscroll, yscroll;
546   int y;
764547
765      sx = (offs/2) % 32;
766      sy = (offs/2) / 32;
767      code = wbml_paged_videoram[offs] | (wbml_paged_videoram[offs+1] << 8);
768      code = ((code >> 4) & 0x800) | (code & 0x7ff);
548   /* all 4 background pages are the same, fixed to page 0 */
549   bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[0]);
769550
770      if (flip_screen_get(machine))
771      {
772         sx = 31 - sx;
773         sy = 31 - sy;
774      }
551   /* foreground is fixed to page 1 */
552   fgpixmap = tilemap_get_pixmap(tilemap_page[1]);
775553
776      drawgfx(bitmap,machine->gfx[0],
777            code,
778            (code >> 5) & 0x3f,
779            flip_screen_get(machine),flip_screen_get(machine),
780            8*sx,8*sy,
781            cliprect,TRANSPARENCY_PEN,0);
554   /* get fixed scroll offsets */
555   xscroll = (videoram[0xffc] | (videoram[0xffd] << 8)) / 2 + 14;
556   yscroll = videoram[0xfbd];
557
558   /* adjust for flipping */
559   if (flip_screen_get(screen->machine))
560   {
561      xscroll = 279 - xscroll;
562      yscroll = 256 - yscroll;
782563   }
783}
784564
565   /* fill in the row scroll table */
566   for (y = 0; y < 32; y++)
567      bgrowscroll[y] = xscroll;
785568
786VIDEO_UPDATE( wbml )
787{
788   wbml_draw_bg(screen->machine, bitmap, cliprect, 0);
789   draw_sprites(screen->machine, bitmap);
790   wbml_draw_bg(screen->machine, bitmap, cliprect, 1);
791   wbml_draw_fg(screen->machine, bitmap, cliprect);
792
793   /* even if screen is off, sprites must still be drawn to update the collision table */
794   if (system1_video_mode & 0x10)  /* screen off */
795      bitmap_fill(bitmap,cliprect,0);
569   /* common update */
570   video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, bgrowscroll, yscroll, 0);
796571   return 0;
797572}
798573
799/* same as wbml but with rows scroll */
800static void ufosensi_draw_bg(running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, int trasp)
574
575VIDEO_UPDATE( system2 )
801576{
802   int page;
577   bitmap_t *bgpixmaps[4], *fgpixmap;
578   int rowscroll[32];
579   int xscroll, yscroll;
580   int sprxoffset;
581   int y;
803582
804   int yscroll = -wbml_paged_videoram[0x7ba];
583   /* 4 independent background pages */
584   bgpixmaps[0] = tilemap_get_pixmap(tilemap_page[videoram[0x740] & 7]);
585   bgpixmaps[1] = tilemap_get_pixmap(tilemap_page[videoram[0x742] & 7]);
586   bgpixmaps[2] = tilemap_get_pixmap(tilemap_page[videoram[0x744] & 7]);
587   bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[videoram[0x746] & 7]);
805588
806   for (page=0; page < 4; page++)
589   /* foreground is fixed to page 0 */
590   fgpixmap = tilemap_get_pixmap(tilemap_page[0]);
591
592   /* get scroll offsets */
593   if (!flip_screen_get(screen->machine))
807594   {
808      const UINT8 *source = wbml_paged_videoram + (wbml_paged_videoram[0x0740 + page*2] & 0x07)*0x800;
809      int starty = (page>>1)*256+yscroll;
810      int row,col;
595      xscroll = (((videoram[0x7c0] | (videoram[0x7c1] << 8)) / 2) & 0xff) - 256 + 5;
596      yscroll = videoram[0x7ba];
597      sprxoffset = 7;
598   }
599   else
600   {
601      xscroll = 262+256 - ((((videoram[0x7f6] | (videoram[0x7f7] << 8)) / 2) & 0xff) - 256 + 5);
602      yscroll = 256+256 - videoram[0x784];
603      sprxoffset = -7;
604   }
811605
606   /* fill in the row scroll table */
607   for (y = 0; y < 32; y++)
608      rowscroll[y] = xscroll;
812609
813      for( row=0; row<32*8; row+=8 )
814      {
815         for( col=0; col<32*8; col+=8 )
816         {
817            int code,priority;
818            int xscroll = (wbml_paged_videoram[0x7c0 + row/4] >> 1) + ((wbml_paged_videoram[0x7c1 + row/4] & 1) << 7) - 256 + 5;
819            int startx = (page&1)*256+xscroll;
820            int x = (startx+col) & 0x1ff;
821            int y = (starty+row) & 0x1ff;
822            if (x > 256) x -= 512;
823            if (y > 224) y -= 512;
824
825            if (flip_screen_get(machine))
826            {
827               x = 248 - x;
828               y = 248 - y;
829            }
830
831            code = source[0] + (source[1] << 8);
832            priority = code & 0x800;
833            code = ((code >> 4) & 0x800) | (code & 0x7ff);
834
835            if (!trasp)
836               drawgfx(bitmap,machine->gfx[0],
837                     code,
838                     ((code >> 5) & 0x3f) + 64,
839                     flip_screen_get(machine),flip_screen_get(machine),
840                     x,y,
841                     cliprect, TRANSPARENCY_NONE, 0);
842            else if (priority)
843               drawgfx(bitmap,machine->gfx[0],
844                     code,
845                     ((code >> 5) & 0x3f) + 64,
846                     flip_screen_get(machine),flip_screen_get(machine),
847                     x,y,
848                     cliprect, TRANSPARENCY_PEN, 0);
849
850            source+=2;
851         }
852      }
853   } /* next page */
854}
855
856VIDEO_UPDATE( ufosensi )
857{
858   ufosensi_draw_bg(screen->machine, bitmap, cliprect, 0);
859   draw_sprites(screen->machine, bitmap);
860   ufosensi_draw_bg(screen->machine, bitmap, cliprect, 1);
861   wbml_draw_fg(screen->machine, bitmap, cliprect);
862
863   /* even if screen is off, sprites must still be drawn to update the collision table */
864   if (system1_video_mode & 0x10)  /* screen off */
865      bitmap_fill(bitmap,cliprect,0);
610   /* common update */
611   video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, rowscroll, yscroll, sprxoffset);
866612   return 0;
867613}
868614
869VIDEO_UPDATE( blockgal )
615
616VIDEO_UPDATE( system2_rowscroll )
870617{
871   blockgal_kludgeoffset = -8;
618   bitmap_t *bgpixmaps[4], *fgpixmap;
619   int rowscroll[32];
620   int yscroll;
621   int y;
872622
873   system1_draw_bg(screen->machine, bitmap, cliprect, -1);
874   system1_draw_fg(screen->machine, bitmap, cliprect, 0);
875   system1_draw_bg(screen->machine, bitmap, cliprect, 0);
876   draw_sprites(screen->machine, bitmap);
877   system1_draw_bg(screen->machine, bitmap, cliprect, 1);
878   system1_draw_fg(screen->machine, bitmap, cliprect, 1);
623   /* 4 independent background pages */
624   bgpixmaps[0] = tilemap_get_pixmap(tilemap_page[videoram[0x740] & 7]);
625   bgpixmaps[1] = tilemap_get_pixmap(tilemap_page[videoram[0x742] & 7]);
626   bgpixmaps[2] = tilemap_get_pixmap(tilemap_page[videoram[0x744] & 7]);
627   bgpixmaps[3] = tilemap_get_pixmap(tilemap_page[videoram[0x746] & 7]);
879628
880   /* even if screen is off, sprites must still be drawn to update the collision table */
881   if (system1_video_mode & 0x10)  /* screen off */
882      bitmap_fill(bitmap,cliprect,0);
629   /* foreground is fixed to page 0 */
630   fgpixmap = tilemap_get_pixmap(tilemap_page[0]);
883631
884   blockgal_kludgeoffset = 0;
632   /* get scroll offsets */
633   if (!flip_screen_get(screen->machine))
634   {
635      for (y = 0; y < 32; y++)
636         rowscroll[y] = (((videoram[0x7c0 + y * 2] | (videoram[0x7c1 + y * 2] << 8)) / 2) & 0xff) - 256 + 5;
637      yscroll = videoram[0x7ba];
638   }
639   else
640   {
641      for (y = 0; y < 32; y++)
642         rowscroll[y] = 262+256 - ((((videoram[0x7fe - y * 2] | (videoram[0x7ff - y * 2] << 8)) / 2) & 0xff) - 256 + 5);
643      yscroll = 256+256 - videoram[0x784];
644   }
645
646   /* common update */
647   video_update_common(screen, bitmap, cliprect, fgpixmap, bgpixmaps, rowscroll, yscroll, 7);
885648   return 0;
886649}
src/mame/video/system1.h
r4470r4471
11#ifndef _system1_H_
22#define _system1_H_
33
4#define SPR_Y_TOP      0
5#define SPR_Y_BOTTOM   1
6#define SPR_X_LO      2
7#define SPR_X_HI      3
8#define SPR_SKIP_LO      4
9#define SPR_SKIP_HI      5
10#define SPR_GFXOFS_LO   6
11#define SPR_GFXOFS_HI   7
124
13#define system1_BACKGROUND_MEMORY_SINGLE 0
14#define system1_BACKGROUND_MEMORY_BANKED 1
5VIDEO_START( system1 );
6VIDEO_START( system2 );
157
16extern UINT8    *system1_scroll_y;
17extern UINT8    *system1_scroll_x;
18extern UINT8    *system1_videoram;
19extern UINT8    *system1_backgroundram;
20extern UINT8    *system1_sprites_collisionram;
21extern UINT8    *system1_background_collisionram;
22extern UINT8    *system1_scrollx_ram;
23extern size_t system1_videoram_size;
24extern size_t system1_backgroundram_size;
8WRITE8_HANDLER( system1_videomode_w );
9WRITE8_HANDLER( system1_paletteram_w );
2510
11READ8_HANDLER( system1_videoram_r );
12WRITE8_HANDLER( system1_videoram_w );
13WRITE8_DEVICE_HANDLER( system1_videoram_bank_w );
2614
27VIDEO_START( system1 );
28VIDEO_START( wbml );
29void system1_define_background_memory(int Mode);
15READ8_HANDLER( system1_mixer_collision_r );
16WRITE8_HANDLER( system1_mixer_collision_w );
17WRITE8_HANDLER( system1_mixer_collision_reset_w );
3018
31READ8_HANDLER( wbml_videoram_bank_latch_r );
32WRITE8_HANDLER( wbml_videoram_bank_latch_w );
33READ8_HANDLER( wbml_paged_videoram_r );
34WRITE8_HANDLER( wbml_paged_videoram_w );
35WRITE8_HANDLER( system1_background_collisionram_w );
36WRITE8_HANDLER( system1_sprites_collisionram_w );
37WRITE8_HANDLER( system1_paletteram_w );
38WRITE8_HANDLER( system1_backgroundram_w );
19READ8_HANDLER( system1_sprite_collision_r );
20WRITE8_HANDLER( system1_sprite_collision_w );
21WRITE8_HANDLER( system1_sprite_collision_reset_w );
22
3923VIDEO_UPDATE( system1 );
40PALETTE_INIT( system1 );
41WRITE8_HANDLER( system1_videomode_w );
42READ8_HANDLER( system1_videomode_r );
24VIDEO_UPDATE( system2 );
25VIDEO_UPDATE( system2_rowscroll );
4326
44WRITE8_HANDLER( choplifter_scroll_x_w );
45VIDEO_UPDATE( choplifter );
46VIDEO_UPDATE( wbml );
47VIDEO_UPDATE( ufosensi );
48VIDEO_UPDATE( blockgal );
49
5027#endif
src/mame/video/dc.c
r4470r4471
113113   // non 32-bit accesses have not yet been seen here, we need to know when they are
114114   if ((mem_mask != U64(0xffffffff00000000)) && (mem_mask != U64(0x00000000ffffffff)))
115115   {
116      assert_always(0, "Wrong mask!\n");
116      /*assume to return the lower 32-bits ONLY*/
117      return reg & 0xffffffff;
117118   }
118119
119120   if (mem_mask == U64(0xffffffff00000000))
r4470r4471
144145   int reg;
145146   UINT64 shift;
146147   UINT32 dat;
148   static struct {
149      UINT32 pvr_addr;
150      UINT32 sys_addr;
151      UINT32 size;
152      UINT8 dir;
153      UINT8 flag;
154      UINT8 start;
155   }pvr_dma;
147156
148157   reg = decode_reg_64(offset, mem_mask, &shift);
149158   dat = (UINT32)(data >> shift);
150159
151160   switch (reg)
152161   {
153   case SB_PDST:
154      #if DEBUG_PVRCTRL
155      mame_printf_verbose("PVRCTRL: PVR-DMA start\n");
156      #endif
157      break;
162      case SB_PDSTAP: pvr_dma.pvr_addr = dat; break;
163      case SB_PDSTAR: pvr_dma.sys_addr = dat; break;
164      case SB_PDLEN: pvr_dma.size = dat; break;
165      case SB_PDDIR: pvr_dma.dir = dat & 1; break;
166      case SB_PDTSEL: mame_printf_verbose("PVRCTRL: initiation mode %x\n",dat); break;
167      case SB_PDEN: pvr_dma.flag = dat & 1; break;
168      case SB_PDST:
169         pvr_dma.start = dat & 1;
170         /*We need to know where this is actually used on Naomi, for testing purpose.*/
171         if(pvr_dma.start) { printf("Warning: PVR-DMA start\n"); }
172
173         /*TODO: use the ddt function.*/
174         if(pvr_dma.flag && pvr_dma.start)
175         {
176            UINT32 src,dst,size;
177            dst = pvr_dma.pvr_addr;
178            src = pvr_dma.sys_addr;
179            size = 0;
180            /* 0 rounding size = 16 Mbytes */
181            if(pvr_dma.size == 0) { pvr_dma.size = 0x100000; }
182
183            if(pvr_dma.dir == 0)
184            {
185               for(;size<pvr_dma.size;size+=4)
186               {
187                  memory_write_dword_64le(space,dst,memory_read_dword(space,src));
188                  src+=4;
189                  dst+=4;
190               }
191            }
192            else
193            {
194               for(;size<pvr_dma.size;size+=4)
195               {
196                  memory_write_dword_64le(space,src,memory_read_dword(space,dst));
197                  src+=4;
198                  dst+=4;
199               }
200            }
201            /*Note: do not update the params, since this DMA type doesn't support it. */
202
203            dc_sysctrl_regs[SB_ISTNRM] |= IST_DMA_PVR;
204         }
205         break;
158206   }
159207
160208   #if DEBUG_PVRCTRL
r4470r4471
823871}
824872
825873#if DEBUG_VERTICES
826static void testdrawline(bitmap_t *bitmap, int index, int from, int to)
874
875
876INLINE void testdrawline(bitmap_t *bitmap, testvertices* from, testvertices* to)
827877{
828878UINT32 *bmpaddr;
829879int ix, iy, i, inc, x, y, dx, dy, plotx, ploty;
r4470r4471
834884   clip.y0=0;
835885   clip.x1=639;
836886   clip.y1=479;
837   line.x0=state_ta.grab[index].showvertices[from].x;
838   line.y0=state_ta.grab[index].showvertices[from].y;
839   line.x1=state_ta.grab[index].showvertices[to].x;
840   line.y1=state_ta.grab[index].showvertices[to].y;
887   line.x0=from->x;
888   line.y0=from->y;
889   line.x1=to->x;
890   line.y1=to->y;
841891   if (render_clip_line(&line, &clip))
842892      return;
843893   dx=line.x1-line.x0;
r4470r4471
871921      }
872922   }
873923}
924
925INLINE void testdrawpoly(bitmap_t *bitmap, testvertices **v)
926{
927   testdrawline(bitmap,v[0],v[1]);
928   testdrawline(bitmap,v[1],v[2]);
929   testdrawline(bitmap,v[2],v[0]);
930}
931
932
874933#endif
875934
876935#if 0
r4470r4471
10251084            case 4: // bumpmap
10261085               break;
10271086            case 5: // 4 bpp palette
1087               if (state_ta.grab[rs].showsprites[cs].texturemode & 2) // vq-compressed
1088               {
1089                  c=0x800+(dilated1[cd][xt >> 1] + dilated0[cd][yt >> 2]);
1090                  c=*(((UINT8 *)dc_texture_ram) + BYTE_XOR_LE(state_ta.grab[rs].showsprites[cs].textureaddress+c));
1091                  addrp=state_ta.grab[rs].showsprites[cs].textureaddress+c*8+(dilated1[cd][xt & 1] + dilated0[cd][yt & 3]);
1092               }
1093               else
1094               {
1095                  addrp=state_ta.grab[rs].showsprites[cs].textureaddress+(dilated1[cd][xt] + dilated0[cd][yt]);
1096               }
1097               c=*(((UINT8 *)dc_texture_ram) + BYTE_XOR_LE(addrp));
1098               c=((state_ta.grab[rs].showsprites[cs].texturepalette & 0x3f) << 4) + (c & 0xf);
1099               c=pvrta_regs[0x1000/4+c];
1100               switch (pvrta_regs[PAL_RAM_CTRL])
1101               {
1102               case 0: // argb1555
1103                  a=(((c & 0x8000) >> 8)*255)/0x80;
1104                  c=MAKE_RGB((c&0x7c00) >> 7, (c&0x3e0) >> 2, (c&0x1f) << 3);
1105                  break;
1106               case 1: // rgb565
1107                  a=255;
1108                  c=MAKE_RGB((c&0xf800) >> 8, (c&0x7e0) >> 3, (c&0x1f) << 3);
1109                  break;
1110               case 2: // argb4444
1111                  a=(((c & 0xf000) >> 8)*255)/0xf0;
1112                  c=MAKE_RGB((c&0xf00) >> 4, c&0xf0, (c&0xf) << 4);
1113                  break;
1114               case 3: // argb8888
1115                  a=(c & 0xff000000) >> 24;
1116                  c=MAKE_RGB((c&0xff0000) >> 16, (c&0xff00) >> 8, c&0xff);
1117                  break;
1118               }
10281119               break;
10291120            case 6: // 8 bpp palette
10301121               if (state_ta.grab[rs].showsprites[cs].texturemode & 2) // vq-compressed
r4470r4471
10971188#endif
10981189         }
10991190      }
1191
1192
1193      // test--draw the verts fore each quad as polys too
1194      {
1195         testvertices vv[4];
1196         testvertices* v[3];
1197
1198         vv[0].x = state_ta.grab[rs].showsprites[cs].a.x;
1199         vv[0].y = state_ta.grab[rs].showsprites[cs].a.y;
1200         vv[1].x = state_ta.grab[rs].showsprites[cs].b.x;
1201         vv[1].y = state_ta.grab[rs].showsprites[cs].b.y;
1202         vv[2].x = state_ta.grab[rs].showsprites[cs].c.x;
1203         vv[2].y = state_ta.grab[rs].showsprites[cs].c.y;
1204         vv[3].x = state_ta.grab[rs].showsprites[cs].d.x;
1205         vv[3].y = state_ta.grab[rs].showsprites[cs].d.y;
1206
1207         v[0] = &vv[0];
1208         v[1] = &vv[1];
1209         v[2] = &vv[2];
1210         testdrawpoly(bitmap,v);
1211         v[0] = &vv[0];
1212         v[1] = &vv[2];
1213         v[2] = &vv[3];
1214         testdrawpoly(bitmap,v);
1215      }
1216
11001217   }
11011218   state_ta.grab[rs].busy=0;
11021219#if DEBUG_VERTICES
11031220   a = state_ta.grab[rs].testvertices_size;
11041221   if (a > 65530)
11051222      a = 65530;
1106   for (cs=1;cs < a;cs++)
1223
1224   cs = 0;
1225
1226   while (cs<a)
11071227   {
1108      testdrawline(bitmap,rs,cs-1,cs);  // draw a segment from vertex xi to vertex yi
1109      if ((cs > 1) && (state_ta.grab[rs].showvertices[cs-2].endofstrip == 0))
1110         testdrawline(bitmap,rs,cs-2,cs);
1111      if (state_ta.grab[rs].showvertices[cs].endofstrip == 1)
1112         cs++;
1228      testvertices *v[3];
1229
1230      v[0] = &state_ta.grab[rs].showvertices[cs]; cs++;
1231      v[1] = &state_ta.grab[rs].showvertices[cs]; cs++;
1232      v[2] = &state_ta.grab[rs].showvertices[cs]; cs++;
1233
1234      testdrawpoly(bitmap,v);
1235
1236      if (v[2]->endofstrip==0)
1237      {
1238         cs-=2;
1239      }
11131240   }
11141241#endif
11151242}
r4470r4471
11191246{
11201247   int x,y,dy,xi;
11211248   UINT32 addrp;
1122   UINT16 *fbaddr;
1249   UINT32 *fbaddr;
11231250   UINT32 c;
1251   UINT32 r,g,b;
11241252
11251253   // only for rgb565 framebuffer
11261254   xi=((pvrta_regs[FB_R_SIZE] & 0x3ff)+1) << 1;
r4470r4471
11301258      addrp=pvrta_regs[FB_R_SOF1]+y*xi*2;
11311259      for (x=0;x < xi;x++)
11321260      {
1133         fbaddr=BITMAP_ADDR16(bitmap,y,x);
1261         fbaddr=BITMAP_ADDR32(bitmap,y,x);
11341262         c=*(((UINT16 *)dc_texture_ram) + (WORD2_XOR_LE(addrp) >> 1));
1135         *fbaddr = (UINT16)c;
1263         b = (c & 0x001f) << 3;
1264         g = (c & 0x07e0) >> 3;
1265         r = (c & 0xf800) >> 8;
1266         *fbaddr = b | (g<<8) | (r<<16);
11361267         addrp+=2;
11371268      }
11381269   }
src/mame/video/mcatadv.c
r4470r4471
137137                     pix &= 0x0f;
138138
139139                     if ((drawxpos >= cliprect->min_x) && (drawxpos <= cliprect->max_x) && pix)
140                        destline[drawxpos] = (pix + pen);
140                        destline[drawxpos] = (pix + (pen << 4));
141141                  }
142142                  offset++;
143143               }
src/mame/video/toaplan2.c
r4470r4471
779779
780780   switch (toaplan2_voffs[controller] & 0xfc00)
781781   {
782      case 0x8400:
783      case 0x8000:
782784      case 0x0400:
783785      case 0x0000:
784786            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_BG_VRAM_SIZE/2)-1);
785787            video_data = bgvideoram16[controller][vram_offset];
786788            break;
789      case 0x8c00:
790      case 0x8800:
787791      case 0x0c00:
788792      case 0x0800:
789793            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_FG_VRAM_SIZE/2)-1);
790794            video_data = fgvideoram16[controller][vram_offset];
791795            break;
796      case 0x9400:
797      case 0x9000:
792798      case 0x1400:
793799      case 0x1000:
794800            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_TOP_VRAM_SIZE/2)-1);
795801            video_data = topvideoram16[controller][vram_offset];
796802            break;
803      case 0x9800:
797804      case 0x1800:
798805            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_SPRITERAM_SIZE/2)-1);
799806            video_data = spriteram16_new[controller][vram_offset];
r4470r4471
823830
824831   switch (toaplan2_voffs[controller] & 0xfc00)
825832   {
833      case 0x8400:
834      case 0x8000:
826835      case 0x0400:
827836      case 0x0000:
828837            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_BG_VRAM_SIZE/2)-1);
829838            COMBINE_DATA(&bgvideoram16[controller][vram_offset]);
830839            tilemap_mark_tile_dirty(bg_tilemap[controller],vram_offset/2);
831840            break;
841      case 0x8c00:
842      case 0x8800:
832843      case 0x0c00:
833844      case 0x0800:
834845            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_FG_VRAM_SIZE/2)-1);
835846            COMBINE_DATA(&fgvideoram16[controller][vram_offset]);
836847            tilemap_mark_tile_dirty(fg_tilemap[controller],vram_offset/2);
837848            break;
849      case 0x9400:
850      case 0x9000:
838851      case 0x1400:
839852      case 0x1000:
840853            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_TOP_VRAM_SIZE/2)-1);
841854            COMBINE_DATA(&topvideoram16[controller][vram_offset]);
842855            tilemap_mark_tile_dirty(top_tilemap[controller],vram_offset/2);
843856            break;
857      case 0x9800:
844858      case 0x1800:
845859            vram_offset = toaplan2_voffs[controller] & ((TOAPLAN2_SPRITERAM_SIZE/2)-1);
846860            COMBINE_DATA(&spriteram16_new[controller][vram_offset]);
src/mame/video/cave.c
r4470r4471
196196       colors are actually addressable */
197197   for (color = 0; color < 0x40; color++)
198198      for (pen = 0; pen < 0x40; pen++)
199         palette_map[0x4400 | (color << 6) | pen] = 0x400 | ((color & 0x0f) << 6) | pen;
199         palette_map[0x4400 + ((color << 6) | pen)] = 0x400 | ((color & 0x0f) << 6) | pen;
200200}
201201
202202PALETTE_INIT( sailormn )
src/mame/drivers/bfcobra.c
r4470r4471
14551455//  AM_RANGE(0x3600, 0x3600) AM_NOP
14561456   AM_RANGE(0x3801, 0x3801) AM_DEVREADWRITE("upd", upd_r, upd_w)
14571457   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
1458   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)   /* Watchdog */
1458   AM_RANGE(0xf000, 0xf000) AM_WRITENOP   /* Watchdog */
14591459ADDRESS_MAP_END
14601460
14611461static INPUT_PORTS_START( bfcobra )
src/mame/drivers/targeth.c
r4470r4471
7777   AM_RANGE(0x108004, 0x108005) AM_READ_PORT("GUNX2")
7878   AM_RANGE(0x108006, 0x108007) AM_READ_PORT("GUNY2")
7979   AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs)   /* Video Registers */
80   AM_RANGE(0x10800c, 0x10800d) AM_WRITE(SMH_NOP)               /* CLR Video INT */
80   AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP               /* CLR Video INT */
8181   AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)   /* Palette */
8282   AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&targeth_spriteram)   /* Sprite RAM */
8383   AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
8484   AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
8585   AM_RANGE(0x700006, 0x700007) AM_READ_PORT("SYSTEM")            /* Coins, Start & Fire buttons */
8686   AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SERVICE")         /* Service & Guns Reload? */
87   AM_RANGE(0x70000a, 0x70001b) AM_WRITE(SMH_NOP)               /* ??? Guns reload related? */
87   AM_RANGE(0x70000a, 0x70001b) AM_WRITENOP               /* ??? Guns reload related? */
8888   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w)   /* OKI6295 bankswitch */
8989   AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)   /* OKI6295 status register */
9090   AM_RANGE(0x70002a, 0x70003b) AM_WRITE(targeth_coin_counter_w)   /* Coin counters */
src/mame/drivers/nycaptor.c
r4470r4471
297297   AM_RANGE(0xd000, 0xd000) AM_READ(nycaptor_mcu_r)
298298   AM_RANGE(0xd002, 0xd002) AM_READ(nycaptor_generic_control_r)
299299   AM_RANGE(0xd400, 0xd400) AM_READ(from_snd_r)
300   AM_RANGE(0xd401, 0xd401) AM_READ(SMH_NOP)
300   AM_RANGE(0xd401, 0xd401) AM_READNOP
301301   AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
302302   AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
303303   AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2")
304304   AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
305305   AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
306306   AM_RANGE(0xd805, 0xd805) AM_READ(nycaptor_mcu_status_r1)
307   AM_RANGE(0xd806, 0xd806) AM_READ(SMH_NOP) /* unknown ?sound? */
307   AM_RANGE(0xd806, 0xd806) AM_READNOP /* unknown ?sound? */
308308   AM_RANGE(0xd807, 0xd807) AM_READ(nycaptor_mcu_status_r2)
309309   AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r)
310310   AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r)
r4470r4471
323323   AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
324324   AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w)
325325   AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram)
326   AM_RANGE(0xdce1, 0xdce1) AM_WRITE(SMH_NOP)
326   AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
327327   AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w)
328328   AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w)
329329   AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram)
r4470r4471
353353   AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w)
354354   AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram)
355355   AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w)
356   AM_RANGE(0xdf03, 0xdf03) AM_WRITE(SMH_NOP)/* ? gfx control ? */
356   AM_RANGE(0xdf03, 0xdf03) AM_WRITENOP/* ? gfx control ? */
357357   AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w)
358358ADDRESS_MAP_END
359359
r4470r4471
361361   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
362362   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
363363   AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)
364   AM_RANGE(0xd200, 0xd200) AM_READ(SMH_NOP)
365   AM_RANGE(0xe000, 0xefff) AM_READ(SMH_NOP)
364   AM_RANGE(0xd200, 0xd200) AM_READNOP
365   AM_RANGE(0xe000, 0xefff) AM_READNOP
366366ADDRESS_MAP_END
367367
368368static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
371371   AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("ay1", ay8910_address_data_w)
372372   AM_RANGE(0xc802, 0xc803) AM_DEVWRITE("ay2", ay8910_address_data_w)
373373   AM_RANGE(0xc900, 0xc90d) AM_DEVWRITE("msm", msm5232_w)
374   AM_RANGE(0xca00, 0xca00) AM_WRITE(SMH_NOP)
375   AM_RANGE(0xcb00, 0xcb00) AM_WRITE(SMH_NOP)
376   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP)
374   AM_RANGE(0xca00, 0xca00) AM_WRITENOP
375   AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP
376   AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
377377   AM_RANGE(0xd000, 0xd000) AM_WRITE(to_main_w)
378378   AM_RANGE(0xd200, 0xd200) AM_WRITE(nmi_enable_w)
379379   AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w)
380   AM_RANGE(0xd600, 0xd600) AM_WRITE(SMH_NOP)
381   AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP)
380   AM_RANGE(0xd600, 0xd600) AM_WRITENOP
381   AM_RANGE(0xe000, 0xefff) AM_WRITENOP
382382ADDRESS_MAP_END
383383
384384static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
447447   AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
448448   AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
449449   AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
450   AM_RANGE(0xd806, 0xd806) AM_READ(SMH_NOP)
450   AM_RANGE(0xd806, 0xd806) AM_READNOP
451451   AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
452452   AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r)
453453   AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r)
r4470r4471
466466   AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
467467   AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w)
468468   AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram)
469   AM_RANGE(0xdce1, 0xdce1) AM_WRITE(SMH_NOP)
469   AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
470470   AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w)
471471   AM_RANGE(0xdf03, 0xdf03) AM_WRITE(nycaptor_gfxctrl_w)
472472   AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w) AM_BASE(&nycaptor_sharedram)
r4470r4471
495495   AM_RANGE(0xdc00, 0xdc9f) AM_WRITE(nycaptor_spriteram_w)
496496   AM_RANGE(0xdca0, 0xdcbf) AM_WRITE(nycaptor_scrlram_w) AM_BASE(&nycaptor_scrlram)
497497   AM_RANGE(0xdd00, 0xdeff) AM_WRITE(nycaptor_palette_w)
498   AM_RANGE(0xdf03, 0xdf03) AM_WRITE(SMH_NOP)
498   AM_RANGE(0xdf03, 0xdf03) AM_WRITENOP
499499   AM_RANGE(0xe000, 0xffff) AM_WRITE(nycaptor_sharedram_w)
500500ADDRESS_MAP_END
501501
r4470r4471
518518   AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
519519   AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
520520   AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
521   AM_RANGE(0xd806, 0xd806) AM_READ(SMH_NOP)
521   AM_RANGE(0xd806, 0xd806) AM_READNOP
522522   AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
523523   AM_RANGE(0xdc00, 0xdc9f) AM_READ(nycaptor_spriteram_r)
524524   AM_RANGE(0xdca0, 0xdcbf) AM_READ(nycaptor_scrlram_r)
src/mame/drivers/mitchell.c
r4470r4471
394394   AM_RANGE(0x03, 0x03) AM_DEVWRITE("ym", ym2413_data_port_w)
395395   AM_RANGE(0x04, 0x04) AM_DEVWRITE("ym", ym2413_register_port_w)
396396   AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r) AM_DEVWRITE("oki", okim6295_w)
397   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)            /* watchdog? irq ack? */
397   AM_RANGE(0x06, 0x06) AM_WRITENOP            /* watchdog? irq ack? */
398398   AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w)   /* Video RAM bank register */
399399   AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w)
400400   AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w)
r4470r4471
421421   AM_RANGE(0x03, 0x03) AM_DEVWRITE("ym", ym2413_data_port_w)
422422   AM_RANGE(0x04, 0x04) AM_DEVWRITE("ym", ym2413_register_port_w)
423423   AM_RANGE(0x05, 0x05) AM_READ(pang_port5_r)
424   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)   /* watchdog? irq ack? */
424   AM_RANGE(0x06, 0x06) AM_WRITENOP   /* watchdog? irq ack? */
425425   AM_RANGE(0x07, 0x07) AM_WRITE(pang_video_bank_w)      /* Video RAM bank register */
426426   AM_RANGE(0x08, 0x08) AM_WRITE(eeprom_cs_w)
427427   AM_RANGE(0x10, 0x10) AM_WRITE(eeprom_clock_w)
r4470r4471
488488   AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")   /* dips? */
489489   AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW0")   /* special? */
490490   AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW3")   /* dips? */
491   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)      /* watchdog? irq ack? */
491   AM_RANGE(0x06, 0x06) AM_WRITENOP      /* watchdog? irq ack? */
492492   AM_RANGE(0x07, 0x07) AM_WRITE(mstworld_video_bank_w)   /* Video RAM bank register */
493493ADDRESS_MAP_END
494494
src/mame/drivers/rainbow.c
r4470r4471
279279   AM_RANGE(0x201000, 0x203fff) AM_READ(SMH_RAM)   /* read in initial checks */
280280   AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA")
281281   AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB")
282   AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP)
283   AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_lsb_r)
282   AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP
283   AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0x00ff)
284284   AM_RANGE(0x800000, 0x8007ff) AM_READ(rainbow_cchip_ram_r)
285285   AM_RANGE(0x800802, 0x800803) AM_READ(rainbow_cchip_ctrl_r)
286286   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
r4470r4471
293293   AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
294294   AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM)   /* written in initial checks */
295295   AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rainbow_spritectrl_w)
296   AM_RANGE(0x3c0000, 0x3c0003) AM_WRITE(SMH_NOP)   /* written very often, watchdog? */
297   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w)
298   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_lsb_w)
296   AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP   /* written very often, watchdog? */
297   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0x00ff)
298   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0x00ff)
299299   AM_RANGE(0x800000, 0x8007ff) AM_WRITE(rainbow_cchip_ram_w)
300300   AM_RANGE(0x800802, 0x800803) AM_WRITE(rainbow_cchip_ctrl_w)
301301   AM_RANGE(0x800c00, 0x800c01) AM_WRITE(rainbow_cchip_bank_w)
r4470r4471
316316   AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB")
317317   AM_RANGE(0x401000, 0x401001) AM_READ_PORT("401001")
318318   AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003")
319   AM_RANGE(0x420000, 0x420001) AM_READ(SMH_NOP)   /* read, but result not used */
319   AM_RANGE(0x420000, 0x420001) AM_READNOP   /* read, but result not used */
320320   AM_RANGE(0x440000, 0x4407ff) AM_READ(SMH_RAM)
321321   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
322322   AM_RANGE(0xd00000, 0xd01fff) AM_READ(SMH_RAM)   /* original spriteram location, needed for Attract Mode */
r4470r4471
328328   AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
329329   AM_RANGE(0x201000, 0x203fff) AM_WRITE(SMH_RAM)   /* written in initial checks */
330330   AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(jumping_spritectrl_w)
331   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(SMH_NOP)   /* watchdog? */
331   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP   /* watchdog? */
332332   AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w)
333333   AM_RANGE(0x430000, 0x430003) AM_WRITE(PC080SN_yscroll_word_0_w)
334334   AM_RANGE(0x440000, 0x4407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
335   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_NOP)   /* original c-chip location (not used) */
335   AM_RANGE(0x800000, 0x80ffff) AM_WRITENOP   /* original c-chip location (not used) */
336336   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w)
337   AM_RANGE(0xc20000, 0xc20003) AM_WRITE(SMH_NOP)   /* seems it is a leftover from rainbow: scroll y written here too */
337   AM_RANGE(0xc20000, 0xc20003) AM_WRITENOP   /* seems it is a leftover from rainbow: scroll y written here too */
338338   AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w)
339339   AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(SMH_RAM)    /* original spriteram location, needed for Attract Mode */
340340ADDRESS_MAP_END
r4470r4471
389389   AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM)
390390   AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym1", ym2203_w)
391391   AM_RANGE(0xb400, 0xb401) AM_DEVWRITE("ym2", ym2203_w)
392   AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP)   /* looks like a bankswitch, but sound works with or without it */
392   AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP   /* looks like a bankswitch, but sound works with or without it */
393393ADDRESS_MAP_END
394394
395395
src/mame/drivers/galspnbl.c
r4470r4471
5151   AM_RANGE(0x800000, 0x803fff) AM_RAM      /* hotpinbl work RAM */
5252   AM_RANGE(0x808000, 0x80ffff) AM_RAM      /* hotpinbl work RAM, bitmaps are decompressed here */
5353   AM_RANGE(0x880000, 0x880fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
54   AM_RANGE(0x8ff400, 0x8fffff) AM_WRITE(SMH_NOP)   /* ??? */
54   AM_RANGE(0x8ff400, 0x8fffff) AM_WRITENOP   /* ??? */
5555   AM_RANGE(0x900000, 0x900fff) AM_RAM AM_BASE(&galspnbl_colorram)
56   AM_RANGE(0x901000, 0x903fff) AM_WRITE(SMH_NOP)   /* ??? */
56   AM_RANGE(0x901000, 0x903fff) AM_WRITENOP   /* ??? */
5757   AM_RANGE(0x904000, 0x904fff) AM_RAM AM_BASE(&galspnbl_videoram)
58   AM_RANGE(0x905000, 0x907fff) AM_WRITE(SMH_NOP)   /* ??? */
58   AM_RANGE(0x905000, 0x907fff) AM_WRITENOP   /* ??? */
5959   AM_RANGE(0x980000, 0x9bffff) AM_RAM AM_BASE(&galspnbl_bgvideoram)
60   AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(SMH_NOP)   /* more palette ? */
60   AM_RANGE(0xa00000, 0xa00fff) AM_WRITENOP   /* more palette ? */
6161   AM_RANGE(0xa01000, 0xa017ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
62   AM_RANGE(0xa01800, 0xa027ff) AM_WRITE(SMH_NOP)   /* more palette ? */
62   AM_RANGE(0xa01800, 0xa027ff) AM_WRITENOP   /* more palette ? */
6363   AM_RANGE(0xa80000, 0xa80001) AM_READ_PORT("IN0")
6464   AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE(soundcommand_w)
6565   AM_RANGE(0xa80020, 0xa80021) AM_READ_PORT("SYSTEM") AM_WRITENOP      /* w - could be watchdog, but causes resets when picture is shown */
src/mame/drivers/blktiger.c
r4470r4471
8181   AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1")   AM_WRITE(blktiger_video_control_w)
8282   AM_RANGE(0x05, 0x05) AM_READ_PORT("FREEZE")
8383   AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
84   AM_RANGE(0x07, 0x07) AM_READ(blktiger_protection_r)   AM_WRITE(SMH_NOP) /* Software protection (7) */
84   AM_RANGE(0x07, 0x07) AM_READ(blktiger_protection_r)   AM_WRITENOP /* Software protection (7) */
8585   AM_RANGE(0x08, 0x09) AM_WRITE(blktiger_scrollx_w)
8686   AM_RANGE(0x0a, 0x0b) AM_WRITE(blktiger_scrolly_w)
8787   AM_RANGE(0x0c, 0x0c) AM_WRITE(blktiger_video_enable_w)
src/mame/drivers/mgolf.c
r4470r4471
190190   AM_RANGE(0x0180, 0x01ff) AM_READ(mgolf_wram_r)
191191   AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_RAM)
192192
193   AM_RANGE(0x0000, 0x0009) AM_WRITE(SMH_NOP)
194   AM_RANGE(0x0024, 0x0024) AM_WRITE(SMH_NOP)
195   AM_RANGE(0x0028, 0x0028) AM_WRITE(SMH_NOP)
196   AM_RANGE(0x0042, 0x0042) AM_WRITE(SMH_NOP)
197   AM_RANGE(0x0044, 0x0044) AM_WRITE(SMH_NOP) /* watchdog? */
198   AM_RANGE(0x0046, 0x0046) AM_WRITE(SMH_NOP)
199   AM_RANGE(0x0060, 0x0060) AM_WRITE(SMH_NOP)
200   AM_RANGE(0x0061, 0x0061) AM_WRITE(SMH_NOP)
201   AM_RANGE(0x006a, 0x006a) AM_WRITE(SMH_NOP)
202   AM_RANGE(0x006c, 0x006c) AM_WRITE(SMH_NOP)
203   AM_RANGE(0x006d, 0x006d) AM_WRITE(SMH_NOP)
193   AM_RANGE(0x0000, 0x0009) AM_WRITENOP
194   AM_RANGE(0x0024, 0x0024) AM_WRITENOP
195   AM_RANGE(0x0028, 0x0028) AM_WRITENOP
196   AM_RANGE(0x0042, 0x0042) AM_WRITENOP
197   AM_RANGE(0x0044, 0x0044) AM_WRITENOP /* watchdog? */
198   AM_RANGE(0x0046, 0x0046) AM_WRITENOP
199   AM_RANGE(0x0060, 0x0060) AM_WRITENOP
200   AM_RANGE(0x0061, 0x0061) AM_WRITENOP
201   AM_RANGE(0x006a, 0x006a) AM_WRITENOP
202   AM_RANGE(0x006c, 0x006c) AM_WRITENOP
203   AM_RANGE(0x006d, 0x006d) AM_WRITENOP
204204   AM_RANGE(0x0080, 0x00ff) AM_WRITE(mgolf_wram_w)
205205   AM_RANGE(0x0180, 0x01ff) AM_WRITE(mgolf_wram_w)
206206   AM_RANGE(0x0800, 0x0bff) AM_WRITE(mgolf_vram_w) AM_BASE(&mgolf_video_ram)
src/mame/drivers/deco_mlc.c
r4470r4471
267267static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 32 )
268268   AM_RANGE(0x0000000, 0x00fffff) AM_READ(SMH_ROM) AM_MIRROR(0xff000000)
269269   AM_RANGE(0x0100000, 0x011ffff) AM_READ(SMH_RAM) AM_MIRROR(0xff000000)
270   AM_RANGE(0x0200000, 0x020000f) AM_READ(SMH_NOP) AM_MIRROR(0xff000000)/* IRQ control? */
270   AM_RANGE(0x0200000, 0x020000f) AM_READNOP AM_MIRROR(0xff000000)/* IRQ control? */
271271   AM_RANGE(0x0200070, 0x0200073) AM_READ(decomlc_vbl_r) AM_MIRROR(0xff000000)
272272   AM_RANGE(0x0200074, 0x0200077) AM_READ(mlc_scanline_r) AM_MIRROR(0xff000000)
273273   AM_RANGE(0x0200078, 0x020007f) AM_READ(test2_r)   AM_MIRROR(0xff000000)
r4470r4471
290290   AM_RANGE(0x0204000, 0x0206fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) AM_MIRROR(0xff000000)
291291   AM_RANGE(0x0280000, 0x029ffff) AM_WRITE(SMH_RAM) AM_BASE(&mlc_vram) AM_MIRROR(0xff000000)
292292   AM_RANGE(0x0300000, 0x0307fff) AM_WRITE(avengrs_palette_w) AM_BASE(&paletteram32) AM_MIRROR(0xff000000)
293   AM_RANGE(0x044001c, 0x044001f) AM_WRITE(SMH_NOP) AM_MIRROR(0xff000000)
293   AM_RANGE(0x044001c, 0x044001f) AM_WRITENOP AM_MIRROR(0xff000000)
294294   AM_RANGE(0x0500000, 0x0500003) AM_WRITE(avengrs_eprom_w) AM_MIRROR(0xff000000)
295295   AM_RANGE(0x0600000, 0x0600007) AM_DEVWRITE8("ymz", ymz280b_w, 0xff000000) AM_MIRROR(0xff000000)
296296//  AM_RANGE(0x070f000, 0x070ffff) AM_READ(stadhr96_prot_146_w) AM_BASE(&deco32_prot_ram)
src/mame/drivers/tunhunt.c
r4470r4471
150150   AM_RANGE(0x1a00, 0x1a00) AM_WRITE(SMH_RAM)   /* SHEL1H */
151151   AM_RANGE(0x1c00, 0x1c00) AM_WRITE(SMH_RAM)   /* MOBJV */
152152   AM_RANGE(0x1e00, 0x1eff) AM_WRITE(tunhunt_videoram_w) AM_BASE(&videoram)   /* ALPHA */
153   AM_RANGE(0x2000, 0x2000) AM_WRITE(SMH_NOP)   /* watchdog */
153   AM_RANGE(0x2000, 0x2000) AM_WRITENOP   /* watchdog */
154154   AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r)
155   AM_RANGE(0x2400, 0x2400) AM_WRITE(SMH_NOP)   /* INT ACK */
155   AM_RANGE(0x2400, 0x2400) AM_WRITENOP   /* INT ACK */
156156   AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w)
157157   AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
158158   AM_RANGE(0x3000, 0x300f) AM_DEVREADWRITE("pokey1", pokey_r, pokey_w)
src/mame/drivers/rungun.c
r4470r4471
4242#include "cpu/z80/z80.h"
4343#include "machine/eeprom.h"
4444#include "sound/k054539.h"
45#include "konamipt.h"
4546
4647VIDEO_START( rng );
4748VIDEO_UPDATE( rng );
r4470r4471
209210   AM_RANGE(0x000000, 0x2fffff) AM_READ(SMH_ROM)      // main program + data
210211   AM_RANGE(0x300000, 0x3007ff) AM_READ(SMH_RAM)      // palette RAM
211212   AM_RANGE(0x380000, 0x39ffff) AM_READ(SMH_RAM)      // work RAM
212   AM_RANGE(0x400000, 0x43ffff) AM_READ(SMH_NOP)      // K053936_0_rom_r }, // '936 ROM readback window
213   AM_RANGE(0x400000, 0x43ffff) AM_READNOP      // K053936_0_rom_r }, // '936 ROM readback window
213214   AM_RANGE(0x480000, 0x48001f) AM_READ(rng_sysregs_r)
214215   AM_RANGE(0x4c0000, 0x4c001f) AM_READ(K053252_word_r)   // CCU (for scanline and vblank polling)
215216   AM_RANGE(0x580014, 0x580015) AM_READ(sound_status_msb_r)
r4470r4471
244245   AM_RANGE(0x6c0000, 0x6cffff) AM_WRITE(rng_936_videoram_w) AM_BASE(&rng_936_videoram)   // PSAC2 ('936) RAM (34v + 35v)
245246   AM_RANGE(0x700000, 0x7007ff) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_linectrl)         // "Line RAM"
246247   AM_RANGE(0x740000, 0x741fff) AM_WRITE(rng_ttl_ram_w)      // text plane RAM
247   AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(SMH_NOP)      // watchdog
248   AM_RANGE(0x7c0000, 0x7c0001) AM_WRITENOP      // watchdog
248249ADDRESS_MAP_END
249250
250251/**********************************************************************************/
r4470r4471
294295   AM_RANGE(0xe630, 0xe7ff) AM_WRITE(SMH_RAM)
295296   AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w)
296297   AM_RANGE(0xf800, 0xf800) AM_WRITE(z80ctrl_w)
297   AM_RANGE(0xfff0, 0xfff3) AM_WRITE(SMH_NOP)
298   AM_RANGE(0xfff0, 0xfff3) AM_WRITENOP
298299ADDRESS_MAP_END
299300
300301static const k054539_interface k054539_config =
r4470r4471
406407   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
407408
408409   PORT_START("P1")
409   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
410   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
411   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
412   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
413   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
414   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
415   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
416   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
410   KONAMI8_B123_START(1)
417411
418412   PORT_START("P2")
419   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
420   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
421   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
422   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
423   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
424   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
425   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
426   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
413   KONAMI8_B123_START(2)
427414
428415   PORT_START("P3")
429   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
430   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
431   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
432   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
433   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
434   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
435   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
436   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
416   KONAMI8_B123_START(3)
437417
438418   PORT_START("P4")
439   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
440   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
441   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
442   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
443   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
444   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
445   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
446   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
419   KONAMI8_B123_START(4)
447420INPUT_PORTS_END
448421
449422
src/mame/drivers/madmotor.c
r4470r4471
5757   AM_RANGE(0x188000, 0x189fff) AM_READ(madmotor_pf1_data_r)
5858   AM_RANGE(0x198000, 0x1987ff) AM_READ(madmotor_pf2_data_r)
5959   AM_RANGE(0x1a4000, 0x1a4fff) AM_READ(madmotor_pf3_data_r)
60   AM_RANGE(0x18c000, 0x18c001) AM_READ(SMH_NOP)
61   AM_RANGE(0x19c000, 0x19c001) AM_READ(SMH_NOP)
60   AM_RANGE(0x18c000, 0x18c001) AM_READNOP
61   AM_RANGE(0x19c000, 0x19c001) AM_READNOP
6262   AM_RANGE(0x3e0000, 0x3e3fff) AM_READ(SMH_RAM)
6363   AM_RANGE(0x3e8000, 0x3e87ff) AM_READ(SMH_RAM)
6464   AM_RANGE(0x3f0000, 0x3f07ff) AM_READ(SMH_RAM)
r4470r4471
7272   AM_RANGE(0x180000, 0x18001f) AM_WRITE(madmotor_pf1_control_w)
7373   AM_RANGE(0x184000, 0x1847ff) AM_WRITE(madmotor_pf1_rowscroll_w) AM_BASE(&madmotor_pf1_rowscroll)
7474   AM_RANGE(0x188000, 0x189fff) AM_WRITE(madmotor_pf1_data_w) AM_BASE(&madmotor_pf1_data)
75   AM_RANGE(0x18c000, 0x18c001) AM_WRITE(SMH_NOP)
75   AM_RANGE(0x18c000, 0x18c001) AM_WRITENOP
7676   AM_RANGE(0x190000, 0x19001f) AM_WRITE(madmotor_pf2_control_w)
7777   AM_RANGE(0x198000, 0x1987ff) AM_WRITE(madmotor_pf2_data_w) AM_BASE(&madmotor_pf2_data)
7878   AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(madmotor_pf3_control_w)
src/mame/drivers/cshooter.c
r4470r4471
278278   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
279279   AM_RANGE(0x8000, 0xafff) AM_WRITE(SMH_RAM)         // to be confirmed
280280   AM_RANGE(0xc500, 0xc500) AM_WRITE(cshooter_c500_w)
281   AM_RANGE(0xc600, 0xc600) AM_WRITE(SMH_NOP)         // see notes
281   AM_RANGE(0xc600, 0xc600) AM_WRITENOP         // see notes
282282   AM_RANGE(0xc700, 0xc700) AM_WRITE(cshooter_c700_w)
283   AM_RANGE(0xc801, 0xc801) AM_WRITE(SMH_NOP)         // see notes
283   AM_RANGE(0xc801, 0xc801) AM_WRITENOP         // see notes
284284   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(cshooter_txram_w) AM_BASE(&cshooter_txram)
285285   AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM)
286286   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
r4470r4471
308308static ADDRESS_MAP_START( arwritemem, ADDRESS_SPACE_PROGRAM, 8 )
309309   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
310310   AM_RANGE(0xc500, 0xc500) AM_WRITE(cshooter_c500_w)
311   AM_RANGE(0xc600, 0xc600) AM_WRITE(SMH_NOP)         // see notes
311   AM_RANGE(0xc600, 0xc600) AM_WRITENOP         // see notes
312312   AM_RANGE(0xc700, 0xc700) AM_WRITE(cshooter_c700_w)
313   AM_RANGE(0xc801, 0xc801) AM_WRITE(SMH_NOP)         // see notes
313   AM_RANGE(0xc801, 0xc801) AM_WRITENOP         // see notes
314314   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(cshooter_txram_w) AM_BASE(&cshooter_txram)
315315ADDRESS_MAP_END
316316
r4470r4471
324324
325325static ADDRESS_MAP_START( s_writemem, ADDRESS_SPACE_PROGRAM, 8 )
326326   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
327   AM_RANGE(0xc000, 0xc001) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym1", ym2203_w) ?
328   AM_RANGE(0xc800, 0xc801) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym2", ym2203_w) ?
327   AM_RANGE(0xc000, 0xc001) AM_WRITENOP // AM_DEVWRITE("ym1", ym2203_w) ?
328   AM_RANGE(0xc800, 0xc801) AM_WRITENOP // AM_DEVWRITE("ym2", ym2203_w) ?
329329   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM)
330330ADDRESS_MAP_END
331331
r4470r4471
335335ADDRESS_MAP_END
336336
337337static ADDRESS_MAP_START( s2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
338   AM_RANGE(0x4000, 0x4001) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym1", ym2203_w) ?
339   AM_RANGE(0x4008, 0x4009) AM_WRITE(SMH_NOP) // AM_DEVWRITE("ym2", ym2203_w) ?
338   AM_RANGE(0x4000, 0x4001) AM_WRITENOP // AM_DEVWRITE("ym1", ym2203_w) ?
339   AM_RANGE(0x4008, 0x4009) AM_WRITENOP // AM_DEVWRITE("ym2", ym2203_w) ?
340340ADDRESS_MAP_END
341341
342342
src/mame/drivers/aerofgt.c
r4470r4471
267267   AM_RANGE(0x0ff006, 0x0ff007) AM_READWRITE(pending_command_r, aerofgt_bg2scrolly_w)
268268   AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("IN2")
269269   AM_RANGE(0x0ff008, 0x0ff00b) AM_WRITE(turbofrc_gfxbank_w)
270   AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE(SMH_NOP)   /* related to bg2 (written together with the scroll registers) */
270   AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITENOP   /* related to bg2 (written together with the scroll registers) */
271271   AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w)
272272ADDRESS_MAP_END
273273
src/mame/drivers/rocnrope.c
r4470r4471
88#include "cpu/m6809/m6809.h"
99#include "machine/konami1.h"
1010#include "audio/timeplt.h"
11#include "konamipt.h"
1112
1213#define MASTER_CLOCK      XTAL_18_432MHz
1314
r4470r4471
5152   AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog_reset_w)
5253   AM_RANGE(0x8080, 0x8080) AM_WRITE(rocnrope_flipscreen_w)
5354   AM_RANGE(0x8081, 0x8081) AM_WRITE(timeplt_sh_irqtrigger_w)  /* cause interrupt on audio CPU */
54   AM_RANGE(0x8082, 0x8082) AM_WRITE(SMH_NOP)   /* interrupt acknowledge??? */
55   AM_RANGE(0x8083, 0x8083) AM_WRITE(SMH_NOP)   /* Coin counter 1 */
56   AM_RANGE(0x8084, 0x8084) AM_WRITE(SMH_NOP)   /* Coin counter 2 */
55   AM_RANGE(0x8082, 0x8082) AM_WRITENOP   /* interrupt acknowledge??? */
56   AM_RANGE(0x8083, 0x8083) AM_WRITENOP   /* Coin counter 1 */
57   AM_RANGE(0x8084, 0x8084) AM_WRITENOP   /* Coin counter 2 */
5758   AM_RANGE(0x8087, 0x8087) AM_WRITE(interrupt_enable_w)
5859   AM_RANGE(0x8100, 0x8100) AM_WRITE(soundlatch_w)
5960   AM_RANGE(0x8182, 0x818d) AM_WRITE(rocnrope_interrupt_vector_w)
r4470r4471
6364
6465static INPUT_PORTS_START( rocnrope )
6566   PORT_START("SYSTEM")
66   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
67   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
68   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
69   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
70   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
71   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
72   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
73   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
67   KONAMI8_SYSTEM_UNK
7468
7569   PORT_START("P1")
76   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
77   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
78   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
79   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
80   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
81   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
82   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
83   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
70   KONAMI8_MONO_4WAY_B12_UNK
8471
8572   PORT_START("P2")
86   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
87   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
88   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
89   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
90   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
91   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
92   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
93   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
73   KONAMI8_COCKTAIL_4WAY_B12_UNK
9474
9575   PORT_START("DSW1")
96   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
97   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
98   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
99   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
100   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
101   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
102   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
103   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
104   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
105   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
106   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
107   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
108   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
109   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
110   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
111   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
112   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
113   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
114   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
115   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
116   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
117   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
118   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
119   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
120   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
121   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
122   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
123   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
124   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
125   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
126   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
127   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
128   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
129   PORT_DIPSETTING(    0x00, "Disabled" )
130   /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but it doesn't give you any credit */
76   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
77   /* "No Coin B" = coins produce sound, but no effect on coin counter */
13178
13279   PORT_START("DSW2")
13380   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
r4470r4471
333280}
334281
335282
336
337283GAME( 1983, rocnrope, 0,        rocnrope, rocnrope, rocnrope, ROT270, "Konami", "Roc'n Rope", 0 )
338284GAME( 1983, rocnropk, rocnrope, rocnrope, rocnrope, rocnropk, ROT270, "Konami + Kosuka", "Roc'n Rope (Kosuka)", 0 )
src/mame/drivers/mystston.c
r4470r4471
297297 *
298298 *************************************/
299299
300GAME( 1984, mystston, 0,        mystston, mystston, 0, ROT270, "Technos", "Mysterious Stones - Dr. John's Adventure", GAME_SUPPORTS_SAVE )
301GAME( 1984, myststno, mystston, mystston, mystston, 0, ROT270, "Technos", "Mysterious Stones - Dr. Kick in Adventure", GAME_SUPPORTS_SAVE )
300GAME( 1984, mystston, 0,        mystston, mystston, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. John's Adventure", GAME_SUPPORTS_SAVE )
301GAME( 1984, myststno, mystston, mystston, mystston, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure", GAME_SUPPORTS_SAVE )
src/mame/drivers/yiear.c
r4470r4471
4848***************************************************************************/
4949
5050#include "driver.h"
51#include "trackfld.h"
5152#include "cpu/m6809/m6809.h"
5253#include "sound/sn76496.h"
5354#include "sound/vlm5030.h"
55#include "konamipt.h"
5456
5557extern int yiear_nmi_enable;
5658
r4470r4471
6163extern VIDEO_START( yiear );
6264extern VIDEO_UPDATE( yiear );
6365
64/* in audio/trackfld.c */
65extern WRITE8_HANDLER( konami_SN76496_latch_w );
66extern WRITE8_DEVICE_HANDLER( konami_SN76496_w );
6766
68
6967static READ8_DEVICE_HANDLER( yiear_speech_r )
7068{
7169   if (vlm5030_bsy(device)) return 1;
r4470r4471
120118   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
121119
122120   PORT_START("P1")
123   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
124   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
125   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
126   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
127   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
128   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
129   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
130   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
121   KONAMI8_MONO_B12_UNK
131122
132123   PORT_START("P2")
133   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
134   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
135   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
136   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
137   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
138   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
139   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
140   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
124   KONAMI8_COCKTAIL_B12_UNK
141125
142126   PORT_START("DSW1")
143127   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
r4470r4471
172156   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
173157
174158   PORT_START("DSW3")
175   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
176   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
177   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
178   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
179   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
180   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
181   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
182   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
183   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
184   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
185   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
186   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
187   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
188   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
189   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
190   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
191   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
192   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
193   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
194   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
195   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
196   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
197   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
198   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
199   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
200   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
201   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
202   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
203   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
204   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
205   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
206   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
207   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
208//  PORT_DIPSETTING(    0x00, "Invalid" )
159   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
160   /* "Invalid" = both coin slots disabled */
209161INPUT_PORTS_END
210162
211163
src/mame/drivers/murogem.c
r4470r4471
107107   AM_RANGE(0x4001, 0x4001) AM_DEVWRITE("crtc", mc6845_register_w)
108108   AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
109109   AM_RANGE(0x5800, 0x5800) AM_READ_PORT("IN1")
110   AM_RANGE(0x7000, 0x7000) AM_WRITE(SMH_NOP) // sound? payout?
110   AM_RANGE(0x7000, 0x7000) AM_WRITENOP // sound? payout?
111111   AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(&murogem_videoram)
112112   AM_RANGE(0xf000, 0xffff) AM_ROM
113113ADDRESS_MAP_END
src/mame/drivers/snowbros.c
r4470r4471
180180   AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w)
181181   AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
182182   AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w)
183   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
184   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
185   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
183   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* IRQ 4 acknowledge? */
184   AM_RANGE(0x900000, 0x900001) AM_WRITENOP   /* IRQ 3 acknowledge? */
185   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* IRQ 2 acknowledge? */
186186ADDRESS_MAP_END
187187
188188static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
222222   AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w)
223223   AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
224224   AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
225   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
226   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
227   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
225   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* IRQ 4 acknowledge? */
226   AM_RANGE(0x900000, 0x900001) AM_WRITENOP   /* IRQ 3 acknowledge? */
227   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* IRQ 2 acknowledge? */
228228ADDRESS_MAP_END
229229
230230/* Honey Dolls */
r4470r4471
242242static ADDRESS_MAP_START( honeydol_writemem, ADDRESS_SPACE_PROGRAM, 16 )
243243   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
244244   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&hyperpac_ram)
245   AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP)   /* ?*/
245   AM_RANGE(0x200000, 0x200001) AM_WRITENOP   /* ?*/
246246   AM_RANGE(0x300000, 0x300001) AM_WRITE(snowbros_68000_sound_w)   /* ?*/
247247   AM_RANGE(0xa00000, 0xa007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
248248   AM_RANGE(0xb00000, 0xb01fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
249   AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
250   AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
251   AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
252   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* ?*/
249   AM_RANGE(0x400000, 0x400001) AM_WRITENOP   /* IRQ 4 acknowledge? */
250   AM_RANGE(0x500000, 0x500001) AM_WRITENOP   /* IRQ 3 acknowledge? */
251   AM_RANGE(0x600000, 0x600001) AM_WRITENOP   /* IRQ 2 acknowledge? */
252   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* ?*/
253253ADDRESS_MAP_END
254254
255255static ADDRESS_MAP_START( honeydol_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
300300   AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w)
301301   AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
302302   AM_RANGE(0x700000, 0x701fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
303   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
304   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
305   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
303   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* IRQ 4 acknowledge? */
304   AM_RANGE(0x900000, 0x900001) AM_WRITENOP   /* IRQ 3 acknowledge? */
305   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* IRQ 2 acknowledge? */
306306ADDRESS_MAP_END
307307
308308
r4470r4471
362362   AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
363363   AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w)
364364
365   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
366   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
367   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
365   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* IRQ 4 acknowledge? */
366   AM_RANGE(0x900000, 0x900001) AM_WRITENOP   /* IRQ 3 acknowledge? */
367   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* IRQ 2 acknowledge? */
368368ADDRESS_MAP_END
369369
370370static ADDRESS_MAP_START( hyperpac_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
508508   AM_RANGE( 0x400000, 0x400001) AM_WRITE(snowbros_flipscreen_w)
509509   AM_RANGE( 0x600000, 0x6003ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE (&paletteram16)
510510   AM_RANGE( 0x700000, 0x7021ff) AM_WRITE(SMH_RAM) AM_BASE( &spriteram16) AM_SIZE( &spriteram_size )
511   AM_RANGE( 0x800000, 0x800001) AM_WRITE(SMH_NOP)    /* IRQ 4 acknowledge? */
512   AM_RANGE( 0x900000, 0x900001) AM_WRITE(SMH_NOP)    /* IRQ 3 acknowledge? */
513   AM_RANGE( 0xa00000, 0xa00001) AM_WRITE(SMH_NOP)    /* IRQ 2 acknowledge? */
511   AM_RANGE( 0x800000, 0x800001) AM_WRITENOP    /* IRQ 4 acknowledge? */
512   AM_RANGE( 0x900000, 0x900001) AM_WRITENOP    /* IRQ 3 acknowledge? */
513   AM_RANGE( 0xa00000, 0xa00001) AM_WRITENOP    /* IRQ 2 acknowledge? */
514514ADDRESS_MAP_END
515515
516516/* Final Tetris */
r4470r4471
534534   AM_RANGE(0x600000, 0x6001ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
535535   AM_RANGE(0x700000, 0x701fff) AM_WRITE(pandora_spriteram_LSB_w)
536536
537   AM_RANGE(0x800000, 0x800001) AM_WRITE(SMH_NOP)   /* IRQ 4 acknowledge? */
538   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)   /* IRQ 3 acknowledge? */
539   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* IRQ 2 acknowledge? */
537   AM_RANGE(0x800000, 0x800001) AM_WRITENOP   /* IRQ 4 acknowledge? */
538   AM_RANGE(0x900000, 0x900001) AM_WRITENOP   /* IRQ 3 acknowledge? */
539   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* IRQ 2 acknowledge? */
540540ADDRESS_MAP_END
541541
542542static INPUT_PORTS_START( snowbros )
src/mame/drivers/bzone.c
r4470r4471
320320   AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
321321   AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW0")
322322   AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("DSW1")
323   AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_NOP)      /* coin out */
323   AM_RANGE(0x1000, 0x1000) AM_WRITENOP      /* coin out */
324324   AM_RANGE(0x1200, 0x1200) AM_WRITE(avgdvg_go_w)
325325   AM_RANGE(0x1400, 0x1400) AM_WRITE(watchdog_reset_w)
326326   AM_RANGE(0x1600, 0x1600) AM_WRITE(avgdvg_reset_w)
r4470r4471
329329   AM_RANGE(0x1804, 0x1804) AM_DEVREAD("mathbox", mathbox_lo_r)
330330   AM_RANGE(0x1806, 0x1806) AM_DEVREAD("mathbox", mathbox_hi_r)
331331   AM_RANGE(0x1808, 0x1808) AM_WRITE(redbaron_sounds_w)   /* and select joystick pot also */
332   AM_RANGE(0x180a, 0x180a) AM_WRITE(SMH_NOP)            /* sound reset, yet todo */
332   AM_RANGE(0x180a, 0x180a) AM_WRITENOP            /* sound reset, yet todo */
333333   AM_RANGE(0x180c, 0x180c) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
334334   AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE("pokey", pokey_r, pokey_w)
335335   AM_RANGE(0x1820, 0x185f) AM_DEVREADWRITE("earom", atari_vg_earom_r, atari_vg_earom_w)
src/mame/drivers/nbmj9195.c
r4470r4471
659659   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w)
660660
661661   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_sound_w)
662   AM_RANGE(0xb2, 0xb2) AM_WRITE(SMH_NOP)
663   AM_RANGE(0xb4, 0xb4) AM_WRITE(SMH_NOP)
662   AM_RANGE(0xb2, 0xb2) AM_WRITENOP
663   AM_RANGE(0xb4, 0xb4) AM_WRITENOP
664664   AM_RANGE(0xb6, 0xb6) AM_WRITE(nbmj9195_inputportsel_w)
665665ADDRESS_MAP_END
666666
r4470r4471
704704   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w)
705705
706706   AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w)
707   AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP)
708   AM_RANGE(0xc4, 0xc4) AM_WRITE(SMH_NOP)
707   AM_RANGE(0xc2, 0xc2) AM_WRITENOP
708   AM_RANGE(0xc4, 0xc4) AM_WRITENOP
709709   AM_RANGE(0xc6, 0xc6) AM_WRITE(nbmj9195_inputportsel_w)
710   AM_RANGE(0xcf, 0xcf) AM_WRITE(SMH_NOP)
710   AM_RANGE(0xcf, 0xcf) AM_WRITENOP
711711ADDRESS_MAP_END
712712
713713
r4470r4471
750750   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w)
751751
752752   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
753   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
754   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
753   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
754   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
755755   AM_RANGE(0xb0, 0xb8) AM_WRITE(nbmj9195_inputportsel_w)
756756ADDRESS_MAP_END
757757
r4470r4471
792792   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w)
793793
794794   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
795   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
796   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
795   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
796   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
797797   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
798798ADDRESS_MAP_END
799799
r4470r4471
837837   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w)
838838
839839   AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w)
840   AM_RANGE(0xc8, 0xc8) AM_WRITE(SMH_NOP)
841   AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP)
840   AM_RANGE(0xc8, 0xc8) AM_WRITENOP
841   AM_RANGE(0xd0, 0xd0) AM_WRITENOP
842842   AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_inputportsel_w)
843843ADDRESS_MAP_END
844844
r4470r4471
882882   AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_0_w)
883883
884884   AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w)
885   AM_RANGE(0x24, 0x24) AM_WRITE(SMH_NOP)
886   AM_RANGE(0x28, 0x28) AM_WRITE(SMH_NOP)
885   AM_RANGE(0x24, 0x24) AM_WRITENOP
886   AM_RANGE(0x28, 0x28) AM_WRITENOP
887887   AM_RANGE(0x2c, 0x2c) AM_WRITE(nbmj9195_inputportsel_w)
888888ADDRESS_MAP_END
889889
r4470r4471
927927   AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w)
928928
929929   AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w)
930   AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)
931   AM_RANGE(0x24, 0x24) AM_WRITE(SMH_NOP)
930   AM_RANGE(0x22, 0x22) AM_WRITENOP
931   AM_RANGE(0x24, 0x24) AM_WRITENOP
932932   AM_RANGE(0x26, 0x26) AM_WRITE(nbmj9195_inputportsel_w)
933933ADDRESS_MAP_END
934934
r4470r4471
972972   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w)
973973
974974   AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_sound_w)
975   AM_RANGE(0xda, 0xda) AM_WRITE(SMH_NOP)
976   AM_RANGE(0xdc, 0xdc) AM_WRITE(SMH_NOP)
975   AM_RANGE(0xda, 0xda) AM_WRITENOP
976   AM_RANGE(0xdc, 0xdc) AM_WRITENOP
977977   AM_RANGE(0xde, 0xde) AM_WRITE(nbmj9195_inputportsel_w)
978978ADDRESS_MAP_END
979979
r4470r4471
10171017   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w)
10181018
10191019   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
1020   AM_RANGE(0xe2, 0xe2) AM_WRITE(SMH_NOP)
1021   AM_RANGE(0xe4, 0xe4) AM_WRITE(SMH_NOP)
1020   AM_RANGE(0xe2, 0xe2) AM_WRITENOP
1021   AM_RANGE(0xe4, 0xe4) AM_WRITENOP
10221022   AM_RANGE(0xe6, 0xe6) AM_WRITE(nbmj9195_inputportsel_w)
10231023ADDRESS_MAP_END
10241024
r4470r4471
10621062   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w)
10631063
10641064   AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w)
1065   AM_RANGE(0xf2, 0xf2) AM_WRITE(SMH_NOP)
1066   AM_RANGE(0xf4, 0xf4) AM_WRITE(SMH_NOP)
1065   AM_RANGE(0xf2, 0xf2) AM_WRITENOP
1066   AM_RANGE(0xf4, 0xf4) AM_WRITENOP
10671067   AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
10681068ADDRESS_MAP_END
10691069
r4470r4471
11071107   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w)
11081108
11091109   AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_sound_w)
1110   AM_RANGE(0xfa, 0xfa) AM_WRITE(SMH_NOP)
1111   AM_RANGE(0xfc, 0xfc) AM_WRITE(SMH_NOP)
1110   AM_RANGE(0xfa, 0xfa) AM_WRITENOP
1111   AM_RANGE(0xfc, 0xfc) AM_WRITENOP
11121112   AM_RANGE(0xfe, 0xfe) AM_WRITE(nbmj9195_inputportsel_w)
11131113ADDRESS_MAP_END
11141114
r4470r4471
11521152   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w)
11531153
11541154   AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w)
1155   AM_RANGE(0xf2, 0xf2) AM_WRITE(SMH_NOP)
1156   AM_RANGE(0xf4, 0xf4) AM_WRITE(SMH_NOP)
1155   AM_RANGE(0xf2, 0xf2) AM_WRITENOP
1156   AM_RANGE(0xf4, 0xf4) AM_WRITENOP
11571157   AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
11581158ADDRESS_MAP_END
11591159
r4470r4471
11971197   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_1_w)
11981198
11991199   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
1200   AM_RANGE(0xe2, 0xe2) AM_WRITE(SMH_NOP)
1201   AM_RANGE(0xe4, 0xe4) AM_WRITE(SMH_NOP)
1200   AM_RANGE(0xe2, 0xe2) AM_WRITENOP
1201   AM_RANGE(0xe4, 0xe4) AM_WRITENOP
12021202   AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
12031203ADDRESS_MAP_END
12041204
r4470r4471
12421242   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_1_w)
12431243
12441244   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1245   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1246   AM_RANGE(0xb0, 0xb0) AM_WRITE(SMH_NOP)
1245   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
1246   AM_RANGE(0xb0, 0xb0) AM_WRITENOP
12471247   AM_RANGE(0xb8, 0xb8) AM_WRITE(nbmj9195_inputportsel_w)
12481248ADDRESS_MAP_END
12491249
r4470r4471
12871287   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w)
12881288
12891289   AM_RANGE(0x90, 0x90) AM_WRITE(nbmj9195_sound_w)
1290   AM_RANGE(0x94, 0x94) AM_WRITE(SMH_NOP)
1291   AM_RANGE(0x98, 0x98) AM_WRITE(SMH_NOP)
1290   AM_RANGE(0x94, 0x94) AM_WRITENOP
1291   AM_RANGE(0x98, 0x98) AM_WRITENOP
12921292   AM_RANGE(0x9c, 0x9c) AM_WRITE(nbmj9195_inputportsel_w)
12931293ADDRESS_MAP_END
12941294
r4470r4471
13321332   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w)
13331333
13341334   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
1335   AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP)
1336   AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
1335   AM_RANGE(0xe8, 0xe8) AM_WRITENOP
1336   AM_RANGE(0xf0, 0xf0) AM_WRITENOP
13371337   AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_inputportsel_w)
13381338ADDRESS_MAP_END
13391339
r4470r4471
13741374   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w)
13751375
13761376   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1377   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
1378   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1377   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
1378   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
13791379   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
13801380ADDRESS_MAP_END
13811381
r4470r4471
14161416   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w)
14171417
14181418   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1419   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
1420   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1419   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
1420   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
14211421   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
14221422ADDRESS_MAP_END
14231423
r4470r4471
14581458   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w)
14591459
14601460   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1461   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1461   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
14621462   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
1463   AM_RANGE(0xb4, 0xb4) AM_WRITE(SMH_NOP)
1463   AM_RANGE(0xb4, 0xb4) AM_WRITENOP
14641464ADDRESS_MAP_END
14651465
14661466
r4470r4471
15001500   AM_RANGE(0x80, 0x8f) AM_WRITE(nbmj9195_blitter_0_w)
15011501
15021502   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1503   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
1504   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1503   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
1504   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
15051505   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
15061506ADDRESS_MAP_END
15071507
r4470r4471
15421542   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w)
15431543
15441544   AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
1545   AM_RANGE(0xa4, 0xa4) AM_WRITE(SMH_NOP)
1546   AM_RANGE(0xa8, 0xa8) AM_WRITE(SMH_NOP)
1545   AM_RANGE(0xa4, 0xa4) AM_WRITENOP
1546   AM_RANGE(0xa8, 0xa8) AM_WRITENOP
15471547   AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
15481548ADDRESS_MAP_END
15491549
r4470r4471
15861586   AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w)
15871587   AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w)
15881588
1589   AM_RANGE(0xa0, 0xa6) AM_WRITE(SMH_NOP)         // nb22090 param ?
1589   AM_RANGE(0xa0, 0xa6) AM_WRITENOP         // nb22090 param ?
15901590
15911591   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w)
15921592   AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w)
r4470r4471
16331633   AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_0_w)
16341634   AM_RANGE(0xf0, 0xff) AM_WRITE(nbmj9195_clut_1_w)
16351635
1636   AM_RANGE(0xb0, 0xb6) AM_WRITE(SMH_NOP)         // nb22090 param ?
1636   AM_RANGE(0xb0, 0xb6) AM_WRITENOP         // nb22090 param ?
16371637
16381638   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_0_w)
16391639   AM_RANGE(0xe0, 0xef) AM_WRITE(nbmj9195_blitter_1_w)
r4470r4471
16801680   AM_RANGE(0xb0, 0xbf) AM_WRITE(nbmj9195_clut_0_w)
16811681   AM_RANGE(0xd0, 0xdf) AM_WRITE(nbmj9195_clut_1_w)
16821682
1683   AM_RANGE(0x80, 0x86) AM_WRITE(SMH_NOP)         // nb22090 param ?
1683   AM_RANGE(0x80, 0x86) AM_WRITENOP         // nb22090 param ?
16841684
16851685   AM_RANGE(0xa0, 0xaf) AM_WRITE(nbmj9195_blitter_0_w)
16861686   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj9195_blitter_1_w)
src/mame/drivers/hcastle.c
r4470r4471
1212#include "sound/3812intf.h"
1313#include "sound/k007232.h"
1414#include "sound/k051649.h"
15#include "konamipt.h"
1516
1617PALETTE_INIT( hcastle );
1718VIDEO_UPDATE( hcastle );
r4470r4471
117118
118119static INPUT_PORTS_START( hcastle )
119120   PORT_START("SYSTEM")
120   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
121   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
122   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
123   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
124   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
125   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
126   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
127   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
121   KONAMI8_SYSTEM_UNK
128122
129123   PORT_START("P1")
130   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
131   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
132   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
133   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
134   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
135   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
136   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
137   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
124   KONAMI8_MONO_B12_UNK
138125
139126   PORT_START("P2")
140   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
141   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
142   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
143   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
144   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
145   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
146   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
147   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
127   KONAMI8_COCKTAIL_B12_UNK
148128
149129   PORT_START("DSW1")
150130   PORT_DIPNAME( 0x01, 0x01, "Unused SW 1-0" )
r4470r4471
171151   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
172152
173153   PORT_START("DSW2")
174   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
175   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
176   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
177   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
178   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
179   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
180   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
181   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
182   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
183   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
184   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
185   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
186   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
187   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
188   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
189   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
190   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
191   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
192   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
193   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
194   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
195   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
196   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
197   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
198   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
199   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
200   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
201   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
202   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
203   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
204   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
205   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
206   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
207//  PORT_DIPSETTING(    0x00, "Invalidity" )            // Disables the 2 coin slots
154   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
155   /* "Invalid" = both coin slots disabled */
208156
209157   PORT_START("DSW3")
210158   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
src/mame/drivers/copsnrob.c
r4470r4471
112112   ADDRESS_MAP_GLOBAL_MASK(0x1fff)
113113   AM_RANGE(0x0000, 0x01ff) AM_RAM
114114   AM_RANGE(0x0500, 0x0503) AM_WRITE(SMH_RAM)
115//  AM_RANGE(0x0504, 0x0507) AM_WRITE(SMH_NOP)  // ???
115//  AM_RANGE(0x0504, 0x0507) AM_WRITENOP  // ???
116116   AM_RANGE(0x0506, 0x0506) AM_WRITE(copsnrob_led_w)
117117   AM_RANGE(0x0600, 0x0600) AM_WRITE(SMH_RAM) AM_BASE(&copsnrob_trucky)
118118   AM_RANGE(0x0700, 0x07ff) AM_WRITE(SMH_RAM) AM_BASE(&copsnrob_truckram)
src/mame/drivers/hexion.c
r4470r4471
8383#include "deprecat.h"
8484#include "sound/okim6295.h"
8585#include "sound/k051649.h"
86#include "konamipt.h"
8687
87
8888VIDEO_START( hexion );
8989VIDEO_UPDATE( hexion );
9090
r4470r4471
136136   AM_RANGE(0xe880, 0xe889) AM_DEVWRITE("konami", k051649_frequency_w)
137137   AM_RANGE(0xe88a, 0xe88e) AM_DEVWRITE("konami", k051649_volume_w)
138138   AM_RANGE(0xe88f, 0xe88f) AM_DEVWRITE("konami", k051649_keyonoff_w)
139   AM_RANGE(0xf000, 0xf00f) AM_WRITE(SMH_NOP)   /* 053252? f00e = IRQ ack, f00f = NMI ack */
139   AM_RANGE(0xf000, 0xf00f) AM_WRITENOP   /* 053252? f00e = IRQ ack, f00f = NMI ack */
140140   AM_RANGE(0xf200, 0xf200) AM_DEVWRITE("oki", okim6295_w)
141141   AM_RANGE(0xf480, 0xf480) AM_WRITE(hexion_bankswitch_w)
142142   AM_RANGE(0xf4c0, 0xf4c0) AM_WRITE(coincntr_w)
r4470r4471
147147
148148static INPUT_PORTS_START( hexion )
149149   PORT_START("DSW1")
150   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
151   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
152   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
153   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
154   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
155   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
156   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
157   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
158   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
159   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
160   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
161   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
162   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
163   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
164   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
165   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
166   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
167   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
168   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
169   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
170   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
171   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
172   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
173   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
174   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
175   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
176   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
177   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
178   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
179   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
180   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
181   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
182   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
183   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
150   KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play ))
184151
185152   PORT_START("DSW2")
186153   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
r4470r4471
222189   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
223190
224191   PORT_START("P1")
225   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
226   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
227   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
228   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
229   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
230   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
231   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
232   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
192   KONAMI8_B12_START(1)
233193
234194   PORT_START("P2")
235   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
236   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
237   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
238   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
239   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
240   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
241   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
242   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
195   KONAMI8_B12_START(2)
243196
244197   PORT_START("SYSTEM")
245198   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
src/mame/drivers/battlnts.c
r4470r4471
1515#include "cpu/z80/z80.h"
1616#include "video/konamiic.h"
1717#include "sound/3812intf.h"
18#include "konamipt.h"
1819
1920/* from video */
2021WRITE8_HANDLER( battlnts_spritebank_w );
r4470r4471
8485
8586static INPUT_PORTS_START( battlnts )
8687   PORT_START("DSW1")
87   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
88   PORT_DIPSETTING(   0x02, DEF_STR( 4C_1C ) )
89   PORT_DIPSETTING(   0x05, DEF_STR( 3C_1C ) )
90   PORT_DIPSETTING(   0x08, DEF_STR( 2C_1C ) )
91   PORT_DIPSETTING(   0x04, DEF_STR( 3C_2C ) )
92   PORT_DIPSETTING(   0x01, DEF_STR( 4C_3C ) )
93   PORT_DIPSETTING(   0x0f, DEF_STR( 1C_1C ) )
94   PORT_DIPSETTING(   0x03, DEF_STR( 3C_4C ) )
95   PORT_DIPSETTING(   0x07, DEF_STR( 2C_3C ) )
96   PORT_DIPSETTING(   0x0e, DEF_STR( 1C_2C ) )
97   PORT_DIPSETTING(   0x06, DEF_STR( 2C_5C ) )
98   PORT_DIPSETTING(   0x0d, DEF_STR( 1C_3C ) )
99   PORT_DIPSETTING(   0x0c, DEF_STR( 1C_4C ) )
100   PORT_DIPSETTING(   0x0b, DEF_STR( 1C_5C ) )
101   PORT_DIPSETTING(   0x0a, DEF_STR( 1C_6C ) )
102   PORT_DIPSETTING(   0x09, DEF_STR( 1C_7C ) )
103   PORT_DIPSETTING(   0x00, DEF_STR( Free_Play ) )
104   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
105   PORT_DIPSETTING(   0x20, DEF_STR( 4C_1C ) )
106   PORT_DIPSETTING(   0x50, DEF_STR( 3C_1C ) )
107   PORT_DIPSETTING(   0x80, DEF_STR( 2C_1C ) )
108   PORT_DIPSETTING(   0x40, DEF_STR( 3C_2C ) )
109   PORT_DIPSETTING(   0x10, DEF_STR( 4C_3C ) )
110   PORT_DIPSETTING(   0xf0, DEF_STR( 1C_1C ) )
111   PORT_DIPSETTING(   0x30, DEF_STR( 3C_4C ) )
112   PORT_DIPSETTING(   0x70, DEF_STR( 2C_3C ) )
113   PORT_DIPSETTING(   0xe0, DEF_STR( 1C_2C ) )
114   PORT_DIPSETTING(   0x60, DEF_STR( 2C_5C ) )
115   PORT_DIPSETTING(   0xd0, DEF_STR( 1C_3C ) )
116   PORT_DIPSETTING(   0xc0, DEF_STR( 1C_4C ) )
117   PORT_DIPSETTING(   0xb0, DEF_STR( 1C_5C ) )
118   PORT_DIPSETTING(   0xa0, DEF_STR( 1C_6C ) )
119   PORT_DIPSETTING(   0x90, DEF_STR( 1C_7C ) )
120//  PORT_DIPSETTING(    0x00, "Invalid" )
88   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
89   /* "No Coin B" = coins produce sound, but no effect on coin counter */
12190
12291   PORT_START("DSW2")
12392   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1,2")
r4470r4471
143112   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
144113
145114   PORT_START("DSW3")
146   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
147   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
148   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
150   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
115   KONAMI8_SYSTEM_10
151116   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )   PORT_DIPLOCATION("SW3:1")
152117   PORT_DIPSETTING(   0x20, DEF_STR( Off ) )
153118   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
157122   PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "SW3:3" )
158123
159124   PORT_START("P1")
160   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
161   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
162   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(1)
163   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
164   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
165   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
166   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
125   KONAMI8_B1(1)
167126   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW3:4")
168127   PORT_DIPSETTING(   0x80, "3 Times" )
169128   PORT_DIPSETTING(   0x00, "5 Times" )
170129
171130   PORT_START("P2")
172   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
173   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
174   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(2)
175   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
176   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
177   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
178   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
179   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
131   KONAMI8_B1_UNK(2)
180132INPUT_PORTS_END
181133
182134static INPUT_PORTS_START( thehustj )
r4470r4471
198150   PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW3:2" )
199151
200152   PORT_MODIFY("P1")
201   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
153   KONAMI8_B12(1)
202154   PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:4" )
203155
204156   PORT_MODIFY("P2")
205   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
157   KONAMI8_B12_UNK(2)
206158INPUT_PORTS_END
207159
208160
r4470r4471
397349GAME( 1987, rackemup, 0,        battlnts, thehustj, rackemup, ROT90, "Konami", "Rack 'em Up", GAME_NO_COCKTAIL )
398350GAME( 1987, thehustl, rackemup, battlnts, thehustj, 0,        ROT90, "Konami", "The Hustler (Japan version M)", GAME_NO_COCKTAIL )
399351GAME( 1987, thehustj, rackemup, battlnts, thehustj, 0,        ROT90, "Konami", "The Hustler (Japan version J)", GAME_NO_COCKTAIL )
400
src/mame/drivers/dblewing.c
r4470r4471
438438   AM_RANGE(0x106000, 0x106fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf2_rowscroll)
439439
440440   /* protection */
441//  AM_RANGE(0x280104, 0x280105) AM_WRITE(SMH_NOP)              // ??
441//  AM_RANGE(0x280104, 0x280105) AM_WRITENOP              // ??
442442//  AM_RANGE(0x2800ac, 0x2800ad) AM_READ_PORT("DSW")            // dips
443443//  AM_RANGE(0x280298, 0x280299) AM_READ_PORT("SYSTEM")         // vbl
444444//  AM_RANGE(0x280506, 0x280507) AM_READ_PORT("UNK")
445445//  AM_RANGE(0x2802B4, 0x2802B5) AM_READ_PORT("P1_P2")          // inverted?
446//  AM_RANGE(0x280330, 0x280331) AM_READ(SMH_NOP)               // sound?
447//  AM_RANGE(0x280380, 0x280381) AM_WRITE(SMH_NOP)              // sound
446//  AM_RANGE(0x280330, 0x280331) AM_READNOP               // sound?
447//  AM_RANGE(0x280380, 0x280381) AM_WRITENOP              // sound
448448
449449   AM_RANGE(0x280000, 0x2807ff) AM_READWRITE(dlbewing_prot_r,dblewing_prot_w)
450450
src/mame/drivers/labyrunr.c
r4470r4471
1313#include "cpu/hd6309/hd6309.h"
1414#include "video/konamiic.h"
1515#include "sound/2203intf.h"
16#include "konamipt.h"
1617
17
1818/* from video/labyrunr.c */
1919extern UINT8 *labyrunr_videoram1,*labyrunr_videoram2,*labyrunr_scrollram;
2020PALETTE_INIT( labyrunr );
r4470r4471
8383***************************************************************************/
8484
8585static INPUT_PORTS_START( labyrunr )
86   PORT_START("SYSTEM")
87   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
88   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
89   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
90   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
91   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
92   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
93   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
94   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
95
96   PORT_START("P1")
97   KONAMI8_MONO_B12_START
98
99   PORT_START("P2")
100   KONAMI8_COCKTAIL_B12_START
101
86102   PORT_START("DSW1")
87   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
88   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
89   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
90   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
91   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
92   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
93   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
94   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
95   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
96   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
97   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
98   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
99   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
100   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
101   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
102   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
103   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
104   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
105   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
106   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
107   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
108   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
109   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
110   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
111   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
112   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
113   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
114   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
115   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
116   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
117   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
118   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
119   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
120//  PORT_DIPSETTING(    0x00, "Invalid" )
103   KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( None ))
104   /* "None" = coin slot B disabled */
121105
122106   PORT_START("DSW2")
123107   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
154138   PORT_DIPSETTING(    0x08, "3" )
155139   PORT_DIPSETTING(    0x00, "5" )
156140   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
157
158   PORT_START("SYSTEM")
159   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
160   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
161   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
162   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
163   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
164   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
165   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
166   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
167
168   PORT_START("P1")
169   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
170   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
171   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
172   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
173   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
174   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
175   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
176   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
177
178   PORT_START("P2")
179   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
180   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
181   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
182   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
183   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
184   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
185   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
186   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
187141INPUT_PORTS_END
188142
189143
src/mame/drivers/hornet.c
r4470r4471
874874   PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
875875
876876   PORT_START("DSW")
877   PORT_DIPNAME( 0x80, 0x00, "Test Mode" )
877   PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1")
878878   PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
879879   PORT_DIPSETTING( 0x80, DEF_STR( On ) )
880   PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" )
880   PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) PORT_DIPLOCATION("SW:2")
881881   PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
882882   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
883   PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" )
883   PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) PORT_DIPLOCATION("SW:3")
884884   PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
885885   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
886   PORT_DIPNAME( 0x10, 0x10, "DIP4" )
886   PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4")
887887   PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
888888   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
889   PORT_DIPNAME( 0x08, 0x08, "DIP5" )
889   PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5")
890890   PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
891891   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
892   PORT_DIPNAME( 0x04, 0x00, "Harness" )
892   PORT_DIPNAME( 0x04, 0x00, "Harness" ) PORT_DIPLOCATION("SW:6")
893893   PORT_DIPSETTING( 0x04, "JVS" )
894894   PORT_DIPSETTING( 0x00, "JAMMA" )
895   PORT_DIPNAME( 0x02, 0x02, "DIP7" )
895   PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7")
896896   PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
897897   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
898   PORT_DIPNAME( 0x01, 0x01, "Monitor Type" )
898   PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8")
899899   PORT_DIPSETTING( 0x01, "24KHz" )
900900   PORT_DIPSETTING( 0x00, "15KHz" )
901901INPUT_PORTS_END
r4470r4471
921921   PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
922922
923923   PORT_START("DSW")
924   PORT_DIPNAME( 0x80, 0x00, "Test Mode" )
924   PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1")
925925   PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
926926   PORT_DIPSETTING( 0x80, DEF_STR( On ) )
927   PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" )
927   PORT_DIPNAME( 0x40, 0x40, "Screen Flip (H)" ) PORT_DIPLOCATION("SW:2")
928928   PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
929929   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
930   PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" )
930   PORT_DIPNAME( 0x20, 0x20, "Screen Flip (V)" ) PORT_DIPLOCATION("SW:3")
931931   PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
932932   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
933   PORT_DIPNAME( 0x10, 0x10, "DIP4" )
933   PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4")
934934   PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
935935   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
936   PORT_DIPNAME( 0x08, 0x08, "DIP5" )
936   PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5")
937937   PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
938938   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
939   PORT_DIPNAME( 0x04, 0x00, "Harness" )
939   PORT_DIPNAME( 0x04, 0x00, "Harness" ) PORT_DIPLOCATION("SW:6")
940940   PORT_DIPSETTING( 0x04, "JVS" )
941941   PORT_DIPSETTING( 0x00, "JAMMA" )
942   PORT_DIPNAME( 0x02, 0x02, "DIP7" )
942   PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7")
943943   PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
944944   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
945   PORT_DIPNAME( 0x01, 0x01, "Monitor Type" )
945   PORT_DIPNAME( 0x01, 0x01, "Monitor Type" ) PORT_DIPLOCATION("SW:8")
946946   PORT_DIPSETTING( 0x01, "24KHz" )
947947   PORT_DIPSETTING( 0x00, "15KHz" )
948948INPUT_PORTS_END
src/mame/drivers/thief.c
r4470r4471
188188
189189static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
190190   ADDRESS_MAP_GLOBAL_MASK(0xff)
191   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* watchdog */
191   AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
192192   AM_RANGE(0x10, 0x10) AM_WRITE(thief_video_control_w)
193193   AM_RANGE(0x30, 0x30) AM_WRITE(thief_input_select_w) /* 8255 */
194194   AM_RANGE(0x31, 0x31) AM_READ(thief_io_r)    /* 8255 */
src/mame/drivers/ddragon3.c
r4470r4471
990990 *
991991 *************************************/
992992
993GAME( 1990, ddragon3, 0,        ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (US)", GAME_SUPPORTS_SAVE )
994GAME( 1990, ddrago3j, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE )
995GAME( 1990, ddrago3p, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE )
993GAME( 1990, ddragon3, 0,        ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (US)", GAME_SUPPORTS_SAVE )
994GAME( 1990, ddrago3j, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE )
995GAME( 1990, ddrago3p, ddragon3, ddragon3, ddragon3, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE )
996996GAME( 1990, ddrago3b, ddragon3, ddrago3b, ddrago3b, 0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", GAME_SUPPORTS_SAVE )
997GAME( 1990, ctribe,   0,        ctribe,   ctribe,   0, ROT0, "Technos", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
998GAME( 1990, ctribe1,  ctribe,   ctribe,   ctribe,   0, ROT0, "Technos", "The Combatribes (US Set 1?)", GAME_SUPPORTS_SAVE )
997GAME( 1990, ctribe,   0,        ctribe,   ctribe,   0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
998GAME( 1990, ctribe1,  ctribe,   ctribe,   ctribe,   0, ROT0, "Technos Japan", "The Combatribes (US Set 1?)", GAME_SUPPORTS_SAVE )
999999GAME( 1990, ctribeb,  ctribe,   ctribe,   ctribeb,  0, ROT0, "bootleg", "The Combatribes (bootleg Set 1)", GAME_SUPPORTS_SAVE )
10001000GAME( 1990, ctribb2,  ctribe,   ctribe,   ctribeb,  0, ROT0, "bootleg", "The Combatribes (bootleg Set 2)", GAME_SUPPORTS_SAVE )
src/mame/drivers/sprint2.c
r4470r4471
258258   AM_RANGE(0x0c00, 0x0fff) AM_READ(sprint2_sync_r)
259259   AM_RANGE(0x1000, 0x13ff) AM_READ(sprint2_collision1_r)
260260   AM_RANGE(0x1400, 0x17ff) AM_READ(sprint2_collision2_r)
261   AM_RANGE(0x1800, 0x1800) AM_READ(SMH_NOP)  /* debugger ROM location? */
261   AM_RANGE(0x1800, 0x1800) AM_READNOP  /* debugger ROM location? */
262262   AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_ROM)
263263   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)
264264ADDRESS_MAP_END
r4470r4471
272272   AM_RANGE(0x0c20, 0x0c2f) AM_DEVWRITE("discrete", sprint2_skid2_w)
273273   AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(sprint2_lamp1_w)
274274   AM_RANGE(0x0c40, 0x0c4f) AM_WRITE(sprint2_lamp2_w)
275   AM_RANGE(0x0c60, 0x0c6f) AM_WRITE(SMH_NOP) /* SPARE */
275   AM_RANGE(0x0c60, 0x0c6f) AM_WRITENOP /* SPARE */
276276   AM_RANGE(0x0c80, 0x0cff) AM_WRITE(watchdog_reset_w)
277277   AM_RANGE(0x0d00, 0x0d7f) AM_WRITE(sprint2_collision_reset1_w)
278278   AM_RANGE(0x0d80, 0x0dff) AM_WRITE(sprint2_collision_reset2_w)
src/mame/drivers/ambush.c
r4470r4471
6767   AM_RANGE(0xc200, 0xc3ff) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
6868   AM_RANGE(0xc400, 0xc7ff) AM_BASE(&videoram) AM_SIZE(&videoram_size)
6969   AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW1")
70   AM_RANGE(0xcc00, 0xcc03) AM_WRITE(SMH_NOP)
70   AM_RANGE(0xcc00, 0xcc03) AM_WRITENOP
7171   AM_RANGE(0xcc04, 0xcc04) AM_WRITE(flip_screen_w)
7272   AM_RANGE(0xcc05, 0xcc05) AM_WRITE(SMH_RAM) AM_BASE(&ambush_colorbank)
7373   AM_RANGE(0xcc07, 0xcc07) AM_WRITE(ambush_coin_counter_w)
src/mame/drivers/sauro.c
r4470r4471
162162   AM_RANGE(0xa0, 0xa0) AM_WRITE(tecfri_scroll_bg_w)
163163   AM_RANGE(0xa1, 0xa1) AM_WRITE(sauro_scroll_fg_w)
164164   AM_RANGE(0xc0, 0xc0) AM_WRITE(flip_screen_w)
165   AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP)      /* coin reset */
165   AM_RANGE(0xc2, 0xc2) AM_WRITENOP      /* coin reset */
166166   AM_RANGE(0xc3, 0xc3) AM_WRITE(sauro_coin1_w)
167   AM_RANGE(0xc4, 0xc4) AM_WRITE(SMH_NOP)      /* coin reset */
167   AM_RANGE(0xc4, 0xc4) AM_WRITENOP      /* coin reset */
168168   AM_RANGE(0xc5, 0xc5) AM_WRITE(sauro_coin2_w)
169   AM_RANGE(0xc6, 0xc7) AM_WRITE(SMH_NOP)      /* same as 0x80 - verified with debugger */
170   AM_RANGE(0xc8, 0xc8) AM_WRITE(SMH_NOP)      /* written every int: 0 written at end   of isr */
171   AM_RANGE(0xc9, 0xc9) AM_WRITE(SMH_NOP)      /* written every int: 1 written at start of isr */
169   AM_RANGE(0xc6, 0xc7) AM_WRITENOP      /* same as 0x80 - verified with debugger */
170   AM_RANGE(0xc8, 0xc8) AM_WRITENOP      /* written every int: 0 written at end   of isr */
171   AM_RANGE(0xc9, 0xc9) AM_WRITENOP      /* written every int: 1 written at start of isr */
172172   AM_RANGE(0xca, 0xcb) AM_WRITE(sauro_palette_bank_w)   /* 1 written upon death, cleared 2 vblanks later */
173173                                          /* Sequence 3,2,1 written during intro screen */
174   AM_RANGE(0xcc, 0xcc) AM_WRITE(SMH_NOP)      /* same as 0xca */
175   AM_RANGE(0xcd, 0xcd) AM_WRITE(SMH_NOP)      /* same as 0xcb */
176   AM_RANGE(0xce, 0xce) AM_WRITE(SMH_NOP)      /* only written at startup */
174   AM_RANGE(0xcc, 0xcc) AM_WRITENOP      /* same as 0xca */
175   AM_RANGE(0xcd, 0xcd) AM_WRITENOP      /* same as 0xcb */
176   AM_RANGE(0xce, 0xce) AM_WRITENOP      /* only written at startup */
177177   AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
178178ADDRESS_MAP_END
179179
r4470r4471
187187   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
188188   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym3812_w)
189189   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("speech", adpcm_w)
190   AM_RANGE(0xe000, 0xe006) AM_WRITE(SMH_NOP)   /* echo from write to e0000 */
191   AM_RANGE(0xe00e, 0xe00f) AM_WRITE(SMH_NOP)
190   AM_RANGE(0xe000, 0xe006) AM_WRITENOP   /* echo from write to e0000 */
191   AM_RANGE(0xe00e, 0xe00f) AM_WRITENOP
192192ADDRESS_MAP_END
193193
194194static ADDRESS_MAP_START( trckydoc_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
210210   AM_RANGE(0xf400, 0xf7ff) AM_WRITE(tecfri_colorram_w) AM_BASE(&tecfri_colorram)
211211   AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ym", ym3812_w)
212212   AM_RANGE(0xf830, 0xf830) AM_WRITE(tecfri_scroll_bg_w)
213   AM_RANGE(0xf838, 0xf838) AM_WRITE(SMH_NOP)            /* only written at startup */
213   AM_RANGE(0xf838, 0xf838) AM_WRITENOP            /* only written at startup */
214214   AM_RANGE(0xf839, 0xf839) AM_WRITE(flip_screen_w)
215215   AM_RANGE(0xf83a, 0xf83a) AM_WRITE(sauro_coin1_w)
216216   AM_RANGE(0xf83b, 0xf83b) AM_WRITE(sauro_coin2_w)
217217   AM_RANGE(0xf83c, 0xf83c) AM_WRITE(watchdog_reset_w)
218   AM_RANGE(0xf83f, 0xf83f) AM_WRITE(SMH_NOP)            /* only written at startup */
218   AM_RANGE(0xf83f, 0xf83f) AM_WRITENOP            /* only written at startup */
219219ADDRESS_MAP_END
220220
221221static INPUT_PORTS_START( tecfri )
src/mame/drivers/gaplus.c
r4470r4471
342342static ADDRESS_MAP_START( writemem_cpu2, ADDRESS_SPACE_PROGRAM, 8 )
343343   AM_RANGE(0x0000, 0x07ff) AM_WRITE(gaplus_videoram_w)      /* tilemap RAM (shared with CPU #1) */
344344   AM_RANGE(0x0800, 0x1fff) AM_WRITE(gaplus_spriteram_w)      /* shared RAM with CPU #1 */
345//  AM_RANGE(0x500f, 0x500f) AM_WRITE(SMH_NOP)             /* ??? written 256 times on startup */
345//  AM_RANGE(0x500f, 0x500f) AM_WRITENOP             /* ??? written 256 times on startup */
346346   AM_RANGE(0x6000, 0x6fff) AM_WRITE(gaplus_irq_2_ctrl_w)   /* IRQ 2 control */
347347   AM_RANGE(0xa000, 0xffff) AM_WRITE(SMH_ROM)            /* ROM */
348348ADDRESS_MAP_END
src/mame/drivers/speedatk.c
r4470r4471
184184static ADDRESS_MAP_START( speedatk_io, ADDRESS_SPACE_IO, 8 )
185185   ADDRESS_MAP_GLOBAL_MASK(0xff)
186186   AM_RANGE(0x00, 0x01) AM_WRITE(speedatk_videoregs_w) // HD46505SP video registers
187   AM_RANGE(0x24, 0x24) AM_WRITE(SMH_NOP) //video timing
187   AM_RANGE(0x24, 0x24) AM_WRITENOP //video timing
188188   AM_RANGE(0x40, 0x40) AM_READ_PORT("DSW") /* likely ay8910 input port, not direct */
189189   AM_RANGE(0x40, 0x41) AM_DEVWRITE("ay", ay8910_address_data_w)
190190   /*Used only during attract mode,unknown meaning.*/
191191   AM_RANGE(0x60, 0x60) AM_READWRITE(SMH_NOP,SMH_NOP)//write the result to $62/$65
192   AM_RANGE(0x61, 0x61) AM_READ(SMH_NOP)//write the result to $66
193   AM_RANGE(0x62, 0x62) AM_WRITE(SMH_NOP)
194   AM_RANGE(0x65, 0x65) AM_WRITE(SMH_NOP)
195   AM_RANGE(0x66, 0x66) AM_WRITE(SMH_NOP)
196   AM_RANGE(0x68, 0x68) AM_READ(SMH_NOP)//bit 7 controls writings to ram address at $880f-$8810
192   AM_RANGE(0x61, 0x61) AM_READNOP//write the result to $66
193   AM_RANGE(0x62, 0x62) AM_WRITENOP
194   AM_RANGE(0x65, 0x65) AM_WRITENOP
195   AM_RANGE(0x66, 0x66) AM_WRITENOP
196   AM_RANGE(0x68, 0x68) AM_READNOP//bit 7 controls writings to ram address at $880f-$8810
197197ADDRESS_MAP_END
198198
199199static INPUT_PORTS_START( speedatk )
src/mame/drivers/system1.c
r4470r4471
55driver by Jarek Parchanski, Nicola Salmoria, Mirko Buffoni
66
77
8Issues:
9 * pitfall2 - missing title
10
11
812Up'n Down, Mister Viking, Flicky, SWAT, Water Match and Bull Fight are known
913to run on IDENTICAL hardware (they were sold by Bally-Midway as ROM swaps).
1014
1115DIP locations verified from manual for:
1216      - wboy
13      - chplft
17      - choplift
1418
15TODO: - background is misplaced in wbmlju
16      - sprites stick in Pitfall II
17      - sprite priorities are probably wrong
18      - remove patch in nobb if possible and fully understand the
19TODO: - remove patch in nobb if possible and fully understand the
1920        ports involved in the protection
2021
22*******************************************************************************
23
24            Main  Snd   Gfx1  Gfx2            Max     Min
25Game        ROMs  ROMs  ROMs  ROMs  Pal? Intf EPR#    EPR#
26----------- ----- ----- ----- ----- ---- ---- ----    ----
27starjack    6x8k  1x8k  6x8k  2x16k  no  ppi  5325(b) 5318
28starjacks   6x8k  1x8k  6x8k  2x16k  no  ppi  license
29
30upndown     6x8k  1x8k  6x8k  2x16k  no  ppi  5521    5514
31upndownu    6x8k  1x8k  6x8k  2x16k  no  ppi  5684
32
33regulus     6x8k  1x8k  6x8k  2x16k  no  ppi  5645(a) 5638
34reguluso    6x8k  1x8k  6x8k  2x16k  no  ppi  5645
35regulusu    6x8k  1x8k  6x8k  2x16k  no  ppi  5955
36
37mrviking    6x8k  1x8k  6x8k  2x16k  no  ppi  5876    5749
38mrvikingj   6x8k  1x8k  6x8k  2x16k  no  ppi  5756
39
40swat        6x8k  1x8k  6x8k  2x16k  no  ppi  5812    5805
41
42flickys1    4x8k  1x8k  6x8k  2x16k  no  ppi  ????    5855
43flickyo     4x8k  1x8k  6x8k  2x16k  no  ppi  5860(a)
44flicky      2x16k 1x8k  6x8k  2x16k  no  pio  5979(a)
45flickys2    2x16k 1x8k  6x8k  2x16k  no  pio  6622
46
47wmatch      6x8k  1x8k  6x8k  2x16k  no  ppi  ????    ????
48
49bullfgt     6x8k  1x8k  6x8k  2x16k  no  ppi  ????    6069
50thetogyu    3x16k 1x8k  6x8k  2x16k  no  pio  6073
51
52spatter     3x16k 1x8k  6x8k  4x16k  no  pio  6394    6306
53ssanchan    3x16k 1x8k  6x8k  4x16k  no  pio  6312
54
55pitfall2    3x16k 1x8k  6x8k  2x16k  no  pio  6458(a) 6454
56pitfall2a   3x16k 1x8k  6x8k  2x16k  no  pio  6506
57pitfall2u   3x16k 1x8k  6x8k  2x16k  no  pio  6625(a)
58
59seganinj    3x16k 1x8k  6x8k  4x16k  no  pio  ????    6546
60seganinju   3x16k 1x8k  6x8k  4x16k  no  pio  7150
61nprinceso   3x16k 1x8k  6x8k  4x16k  no  pio  6552
62nprincesb   3x16k 1x8k  6x8k  4x16k  no  pio  bootleg
63ninja       3x16k 1x8k  6x8k  4x16k  no  pio  6595
64nprinces    6x8k  1x8k  6x8k  4x16k  no  ppi  6617
65nprincesu   6x8k  1x8k  6x8k  4x16k  no  ppi  6578
66
67imsorry     3x16k 1x8k  6x8k  2x16k  no  pio  6678    6645
68imsorryj    3x16k 1x8k  6x8k  2x16k  no  pio  6649
69
70teddybb     3x16k 1x8k  6x8k  4x16k  no  pio  6770    6735
71teddybbo    3x16k 1x8k  6x8k  4x16k  no  pio  6741
72
73hvymetal    3x32k 1x32k 6x16k 4x32k  yes      6790    6778
74
75myhero      3x16k 1x8k  6x8k  4x16k  no  pio  6964    6921
76sscandal    3x16k 1x8k  6x8k  4x16k  no  pio  6927
77myherok     3x16k 1x8k  6x8k  4x16k  no  pio  bootleg?
78
794dwarrio    3x16k 1x8k  6x8k  4x16k  no  pio  ????    ????
80
81shtngmst    3x32k 1x32k 3x32k 7x32k  yes      7102(a) 7104
82shtngmst1   3x32k 1x32k 3x32k 7x32k  yes      7102
83shtngmsta   3x32k 1x32k 3x32k 7x32k  yes      license
84
85choplift    3x32k 1x32k 3x32k 4x32k  yes      7126    7120
86chopliftu   3x32k 1x32k 3x32k 4x32k  yes      7154
87chopliftbl  3x32k 1x32k 3x32k 4x32k  yes      bootleg
88
89raflesia    3x16k 1x8k  6x8k  4x16k  no  pio  7413    7408
90
91wboy2       6x8k  1x8k  6x8k  4x16k  no  ppi  7592    7485
92wboy2u      6x8k  1x8k  6x8k  4x16k  no  ppi  ????
93wbdeluxe    6x8k  1x8k  6x8k  4x16k  no  ppi  ????
94wboy        3x16k 1x8k  6x8k  4x16k  no  pio  7491
95wboyo       3x16k 1x8k  6x8k  4x16k  no  pio  ????
96wboy3       3x16k 1x8k  6x8k  4x16k  no  pio  ????
97wboyu       3x16k 1x8k  6x8k  4x16k  no  pio  ????
98wboy4       2x32k 1x32k 3x16k 2x32k  no       ????
99wboysys2    2x32k 1x32k 3x32k 2x32k  yes      7580
100
101gardia      3x32k 1x16k 3x16k 4x32k  yes      10255   10233
102gardiab     3x32k 1x16k 3x16k 4x32k  yes      bootleg
103
104brain       3x32k 1x32k 3x16k 3x32k  yes      ????    ????
105
106tokisens    3x32k 1x32k 3x32k 4x32k  yes      10963   10957
107
108wbml        3x32k 1x32k 3x32k 4x32k  yes      11033(a) 11027
109wbmljo      3x32k 1x32k 3x32k 4x32k  yes      11033
110wbmljb      3x64k 1x32k 3x32k 4x32k  yes      bootleg
111wbmlb       3x64k 1x32k 3x32k 4x32k  yes      bootleg
112wbmlg       3x64k 1x32k 3x32k 4x32k  yes      bootleg
113
114dakkochn    2x32k 1x32k 3x32k 4x32k  yes      11225   11220
115
116ufosensi    3x32k 1x32k 3x32k 4x32k  yes      11663   11657
117ufosensib   3x64k 1x32k 3x32k 4x32k  yes      bootleg
118
119blockgal    2x16k 1x8k  6x8k  4x16k  no               ????
120blockgalb   1x64k 1x8k  6x8k  4x16k  no       bootleg
121
122nob         3x32k 1x16k 3x32k 4x32k  yes
123nobb        3x32k 1x16k 3x32k 4x32k  yes
124
125*******************************************************************************
126
127Chop Lifter
128Sega 1985
129
130This game runs on Sega System 2 hardware.
131
132171-5303-01
133834-5795-03 CHOP LIFTER (sticker)
134|-----------------------------------------------------------------|
135|DSW2 DSW1   315-5011   EPR-7120.86 CXK5808   Z80A(2)   20MHz     |
136|TD62003   315-5012     EPR-7121.87 CXK5808            315-5152.10|
137|                       EPR-7122.88                    315-5138.11|
138|                       EPR-7123.89                       315-5049|
139|                                                                 |
140|                       EPR-7152.90                               |
141|4                      EPR-7153.91                       M5M5165 |
142|4                      EPR-7154.92                       M5M5165 |
143|W                      M5M5165                                   |
144|A   8255                             DIP40             EPR-7127.4|
145|Y                                      315-5139.50     EPR-7128.5|
146|     2148 2148 2148             TL7705                 EPR-7129.6|
147|     2148 2148 2148                                   315-5025   |
148|                                                      315-5025   |
149|         8MHz                           PR5317.37     315-5025   |
150|     Z80A(1)                                LED     PR7117.8     |
151| VOL   76489(1)                                     PR7118.14    |
152|       76489(2) EPR-7130.126  8147                  PR7119.20    |
153|LA4460       MB8128           8147             MB8128            |
154|-----------------------------------------------------------------|
155Notes:
156      315-5011   - Sega Custom IC (DIP40)
157      315-5012   - Sega Custom IC (DIP48)
158      315-5025   - Sega Custom IC (DIP18)
159      315-5138   - PAL16R4 (DIP20)
160      315-5139   - Signetics CK2605 (= PLS153) stamped '315-5139' (DIP20)
161      315-5049   - Sega Custom IC (SDIP64)
162      315-5152   - PAL16R4 (DIP20)
163      DIP40      - DIP40 socket for 8751 MCU. Some games like this version of Chop Lifter use a small
164                   DIP40-sized board plugged into the socket marked 'SEGA 839-0001'. The board contains
165                   nothing. The bottom of the board may have tracks going to other pins but it's obscured
166                   by the socket connector. The top of the board has no tracks on it.
167      EPR-*      - All EPROMs are 27C256 (DIP28)
168      MB8128     - Fujitsu MB8128 -10 2k x8 SRAM (DIP24)
169      2148       - Intel P2148H-3 1k x4 SRAM (DIP18)
170      2147       - Fujitsu MB2147-45 4k x1 SRAM (DIP18)
171      TL7705     - Texas Instruments TL7705 Voltage Supply Supervisor and Master Reset IC (DIP8)
172      LED        - Power LED
173      8255       - NEC D8255 Programmable Peripheral Interface IC (DIP40)
174      Z80A(1)    - Sharp LH0080A Z80A CPU, clock 4.000MHz [8/2]
175      Z80A(2)    - Sharp LH0080A Z80A CPU, clock 4.000MHz [8/2]
176      CXK5808    - Sony CXK5808 SRAM. Size unknown, maybe 256 bytes x4-bit? (NDIP22)
177      M5M5165    - Mitsubishi M5M5165 8k x8 SRAM (DIP28)
178      SN76489(1) - Texas Instruments SN76489 4-channel Programmable Sound Generator. Clock 4.000MHz [8/2] (DIP16)
179      SN76489(2) - Texas Instruments SN76489 4-channel Programmable Sound Generator. Clock 2.000MHz [8/4] (DIP16)
180      LA4460     - Sanyo LA4460 12W AF Power Amplifier (SIL10)
181      TD62003    - Toshiba TD62003 7-channel Darlington Sink Driver (DIP16)
182      PR5317     - Fujitsu MB7114 Bipolar PROM (DIP16)
183      PR7117     - Fujitsu MB7114 Bipolar PROM (DIP16)
184      PR7118     - MMI 63S141 Bipolar PROM (DIP16)
185      PR7119     - Fujitsu MB7114 Bipolar PROM (DIP16)
186
187      Measurements
188      ------------
189      OSC1  - 7.99992MHz
190      OSC2  - 19.99982MHz
191      VSync - 60.0952Hz
192      HSync - 15.4442kHz
193
21194******************************************************************************/
22195
23196#include "driver.h"
24#include "deprecat.h"
25197#include "video/system1.h"
26198#include "cpu/z80/z80.h"
199#include "machine/z80pio.h"
200#include "machine/8255ppi.h"
27201#include "machine/segacrpt.h"
28202#include "machine/mc8123.h"
29203#include "sound/sn76496.h"
30204
205
206#define MASTER_CLOCK   XTAL_20MHz
207#define SOUND_CLOCK      XTAL_8MHz
208
209
210static void (*i8751_run)(running_machine *machine, int init);
211static void (*videomode_custom)(running_machine *machine, UINT8 data, UINT8 prevdata);
212
31213static UINT8 *system1_ram;
32214static UINT8 dakkochn_mux_data;
215static UINT8 videomode_prev;
216static UINT8 i8751_active;
33217
34218
35static MACHINE_RESET( system1 )
36{
37   system1_define_background_memory(system1_BACKGROUND_MEMORY_SINGLE);
38}
39219
40static MACHINE_RESET( system1_banked )
41{
42   MACHINE_RESET_CALL(system1);
43   memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000);
44}
220/*************************************
221 *
222 *  Machine initialization
223 *
224 *************************************/
45225
46static MACHINE_RESET( dakkochn )
47{
48   MACHINE_RESET_CALL(system1);
49   memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000);
50   dakkochn_mux_data = 0;
51}
226/*
227    About main CPU clocking:
52228
53static MACHINE_RESET( wbml )
54{
55   system1_define_background_memory(system1_BACKGROUND_MEMORY_BANKED);
56   memory_configure_bank(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x10000, 0x4000);
57}
229    A 20MHz crystal clocks an LS161 which counts up from either 10 or 11 to 16 before
230    carrying out and forcing a reload. The low bit of the reload value comes from the
231    Z80's /M1 signal. When /M1 is low (an opcode is being fetched), the reload count
232    is 10, which means the 20MHz clock is divided by 6. When /M1 is high, the reload
233    count is 11, which means the clock is divided by 5.
58234
59// nobb - these ports are used for some kind of replacement protection system used by the bootleg
60static int nobb_inport16_step,nobb_inport17_step,nobb_inport23_step;
235    To account for this, we install custom cycle tables for the Z80. We clock the Z80
236    at 20MHz and count 5 cycles for each original Z80 cycle, plus an extra cycle for
237    each opcode fetch.
238*/
61239
62static READ8_HANDLER( nobb_inport16_r )
63{
64//  logerror("IN  $16 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport16_step);
65   return(nobb_inport16_step);
66}
240static const UINT8 cc_op[0x100] = {
241 4*5+1,10*5+3, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, 4*5+1,11*5+1, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,
242 8*5+2,10*5+3, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,12*5+2,11*5+1, 7*5+1, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,
243 7*5+2,10*5+3,16*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1, 7*5+2,11*5+1,16*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,
244 7*5+2,10*5+3,13*5+3, 6*5+1,11*5+1,11*5+1,10*5+2, 4*5+1, 7*5+2,11*5+1,13*5+3, 6*5+1, 4*5+1, 4*5+1, 7*5+2, 4*5+1,
245 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
246 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
247 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
248 7*5+1, 7*5+1, 7*5+1, 7*5+1, 7*5+1, 7*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
249 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
250 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
251 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
252 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 4*5+1, 7*5+1, 4*5+1,
253 5*5+1,10*5+1,10*5+3,10*5+3,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1,10*5+1,10*5+3, 0*5+1,10*5+3,17*5+3, 7*5+2,11*5+1,
254 5*5+1,10*5+1,10*5+3,11*5+2,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 4*5+1,10*5+3,11*5+2,10*5+3, 0*5  , 7*5+2,11*5+1,
255 5*5+1,10*5+1,10*5+3,19*5+1,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 4*5+1,10*5+3, 4*5+1,10*5+3, 0*5  , 7*5+2,11*5+1,
256 5*5+1,10*5+1,10*5+3, 4*5+1,10*5+3,11*5+1, 7*5+2,11*5+1, 5*5+1, 6*5+1,10*5+3, 4*5+1,10*5+3, 0*5  , 7*5+2,11*5+1};
67257
68static READ8_HANDLER( nobb_inport1c_r )
69{
70//  logerror("IN  $1c : pc = %04x - data = 0x80\n",cpu_get_pc(space->cpu));
71   return(0x80);   // infinite loop (at 0x0fb3) until bit 7 is set
72}
258static const UINT8 cc_cb[0x100] = {
259 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
260 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
261 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
262 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
263 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2,
264 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2,
265 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2,
266 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,12*5+2, 8*5+2,
267 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
268 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
269 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
270 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
271 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
272 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
273 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2,
274 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,15*5+2, 8*5+2};
73275
74static READ8_HANDLER( nobb_inport22_r )
75{
76//  logerror("IN  $22 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport17_step);
77   return(nobb_inport17_step);
78}
276static const UINT8 cc_ed[0x100] = {
277 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
278 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
279 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
280 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
28112*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,
28212*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 9*5+2,
28312*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2,18*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2,18*5+2,
28412*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 8*5+2,12*5+2,12*5+2,15*5+2,20*5+4, 8*5+2,14*5+2, 8*5+2, 8*5+2,
285 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
286 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
28716*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
28816*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,16*5+2,16*5+2,16*5+2,16*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
289 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
290 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
291 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2,
292 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2, 8*5+2};
79293
80static READ8_HANDLER( nobb_inport23_r )
81{
82//  logerror("IN  $23 : pc = %04x - step = %02x\n",cpu_get_pc(space->cpu),nobb_inport23_step);
83   return(nobb_inport23_step);
84}
294static const UINT8 cc_xy[0x100] = {
295 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,
296 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,
297 4*5+2,14*5+4,20*5+4,10*5+2, 9*5+2, 9*5+2, 9*5+3, 4*5+2, 4*5+2,15*5+2,20*5+4,10*5+2, 9*5+2, 9*5+2, 9*5+3, 4*5+2,
298 4*5+2, 4*5+2, 4*5+2, 4*5+2,23*5+3,23*5+3,19*5+4, 4*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,
299 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
300 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
301 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2,19*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2, 9*5+2,19*5+2, 9*5+2,
30219*5+3,19*5+3,19*5+3,19*5+3,19*5+3,19*5+3, 4*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
303 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
304 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
305 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
306 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 9*5+2, 9*5+2,19*5+3, 4*5+2,
307 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 0*5  , 4*5+2, 4*5+2, 4*5+2, 4*5+2,
308 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,
309 4*5+2,14*5+2, 4*5+2,23*5+2, 4*5+2,15*5+2, 4*5+2, 4*5+2, 4*5+2, 8*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,
310 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2,10*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2, 4*5+2};
85311
86static WRITE8_HANDLER( nobb_outport16_w )
87{
88//  logerror("OUT $16 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data);
89   nobb_inport16_step = data;
90}
312static const UINT8 cc_xycb[0x100] = {
31323*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
31423*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
31523*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
31623*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
31720*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,
31820*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,
31920*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,
32020*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,20*5+4,
32123*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32223*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32323*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32423*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32523*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32623*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32723*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,
32823*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4,23*5+4};
91329
92static WRITE8_HANDLER( nobb_outport17_w )
330/* extra cycles if jr/jp/call taken and 'interrupt latency' on rst 0-7 */
331static const UINT8 cc_ex[0x100] = {
332 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
333 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,   /* DJNZ */
334 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,   /* JR NZ/JR Z */
335 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 5*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,   /* JR NC/JR C */
336 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
337 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
338 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
339 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
340 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
341 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
342 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5, 0*5,
343 5*5, 5*5, 5*5, 5*5, 0*5, 0*5, 0*5, 0*5, 5*5, 5*5, 5*5, 5*5, 0*5, 0*5, 0*5, 0*5,   /* LDIR/CPIR/INIR/OTIR LDDR/CPDR/INDR/OTDR */
344 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5,
345 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5,
346 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5,
347 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5, 6*5, 0*5, 0*5, 0*5, 7*5, 0*5, 0*5, 2*5};
348
349
350static MACHINE_START( system1 )
93351{
94//  logerror("OUT $17 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data);
95   nobb_inport17_step = data;
96}
352   UINT32 numbanks = (memory_region_length(machine, "maincpu") - 0x10000) / 0x4000;
97353
98static WRITE8_HANDLER( nobb_outport24_w )
99{
100//  logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data);
101   nobb_inport23_step = data;
354   if (numbanks > 0)
355      memory_configure_bank(machine, 1, 0, numbanks, memory_region(machine, "maincpu") + 0x10000, 0x4000);
356   else
357      memory_configure_bank(machine, 1, 0, 1, memory_region(machine, "maincpu") + 0x8000, 0);
358   memory_set_bank(machine, 1, 0);
359
360   z80_set_cycle_tables(cputag_get_cpu(machine, "maincpu"), cc_op, cc_cb, cc_ed, cc_xy, cc_xycb, cc_ex);
361
362   state_save_register_global(machine, dakkochn_mux_data);
363   state_save_register_global(machine, videomode_prev);
102364}
103365
104static WRITE8_HANDLER( hvymetal_videomode_w )
366
367static MACHINE_RESET( system1 )
105368{
106   memory_set_bank(space->machine, 1, ((data & 0x04)>>2) + ((data & 0x40)>>5));
107   system1_videomode_w(space, 0, data);
369   dakkochn_mux_data = 0;
370   i8751_active = FALSE;
371   if (i8751_run != NULL)
372      (*i8751_run)(machine, TRUE);
108373}
109374
110static WRITE8_HANDLER( brain_videomode_w )
375
376static INTERRUPT_GEN( vblank_irq )
111377{
112   memory_set_bank(space->machine, 1, ((data & 0x04)>>2) + ((data & 0x40)>>5));
113   system1_videomode_w(space, 0, data);
114}
378   irq0_line_hold(device);
115379
116static WRITE8_HANDLER( chplft_videomode_w )
117{
118   memory_set_bank(space->machine, 1, (data & 0x0c)>>2);
119   system1_videomode_w(space, 0, data);
380   if (i8751_run != NULL && i8751_active)
381      (*i8751_run)(device->machine, FALSE);
120382}
121383
122384
123static WRITE8_HANDLER( system1_soundport_w )
385
386/*************************************
387 *
388 *  Game-specific initialization
389 *
390 *************************************/
391
392static void choplift_i8751_run(running_machine *machine, int init)
124393{
125   soundlatch_w(space,0,data);
126   cpu_set_input_line(space->machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE);
127   /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */
128   cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(50));
394   if (init)
395   {
396      const device_config *ppi = devtag_get_device(machine, "ppi");
397
398      /* the 8751 seems to do the 8255 initialization among other things */
399      ppi8255_w(ppi, 3, 0xc0);
400      ppi8255_w(ppi, 2, 0x00);
401   }
402   else
403   {
404      const UINT8 *rom = memory_region(machine, "maincpu");
405      system1_ram[0x88] = 0x01;
406      system1_ram[0x89] = 0xff;
407      memcpy(&system1_ram[0x90], &rom[0x1f8e], 16);
408      videoram[0x740] = 0x01;
409      videoram[0x742] = 0x01;
410      videoram[0x744] = 0x01;
411      videoram[0x746] = 0x01;
412   }
129413}
130414
415
131416/* protection values from real hardware, these were verified to be the same on the title
132417   screen and in the first level... they're all jumps that the MCU appears to put in RAM
133418   at some point */
r4470r4471
168453}
169454
170455
171static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
172   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
173   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)
174   AM_RANGE(0xc000, 0xffff) AM_READ(SMH_RAM)
175ADDRESS_MAP_END
176456
177static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
178   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
179   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
180   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)   // ROM
181   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
182   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
183   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
184   AM_RANGE(0xe800, 0xeeff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
185   AM_RANGE(0xefbd, 0xefbd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y)
186   AM_RANGE(0xeffc, 0xeffd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x)
187   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
188   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
457/*************************************
458 *
459 *  ROM banking
460 *
461 *************************************/
189462
190   /* these are required to make various games work (teddybb, imsorry, raflesia) */
191   /* these may actually be backed by RAM, or may be mirrors of other RAM areas */
192   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
193   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
194   AM_RANGE(0xef00, 0xefbc) AM_WRITE(SMH_RAM)
195   AM_RANGE(0xefbe, 0xeffb) AM_WRITE(SMH_RAM)
196   AM_RANGE(0xeffe, 0xefff) AM_WRITE(SMH_RAM)
197   AM_RANGE(0xf400, 0xf7ff) AM_WRITE(SMH_RAM)
198   AM_RANGE(0xfc00, 0xffff) AM_WRITE(SMH_RAM)
199ADDRESS_MAP_END
463static void bank44_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata)
464{
465   /* bank bits are bits 6 and 2 */
466   memory_set_bank(machine, 1, ((data & 0x40) >> 5) | ((data & 0x04) >> 2));
467}
200468
201static ADDRESS_MAP_START( blckgalb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
202   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
203   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
204   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM
205   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
206   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
207   AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
208   AM_RANGE(0xe000, 0xe6ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
209   AM_RANGE(0xe7bd, 0xe7bd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y)   // ???
210   AM_RANGE(0xe7c0, 0xe7c1) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x)
211   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
212   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
213ADDRESS_MAP_END
214469
215static ADDRESS_MAP_START( brain_readmem, ADDRESS_SPACE_PROGRAM, 8 )
216   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
217   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1)
218   AM_RANGE(0xc000, 0xffff) AM_READ(SMH_RAM) AM_BASE(&system1_ram)
219ADDRESS_MAP_END
470static void bank0c_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata)
471{
472   /* bank bits are bits 3 and 2 */
473   memory_set_bank(machine, 1, (data & 0x0c) >> 2);
474}
220475
221static ADDRESS_MAP_START( wbml_readmem, ADDRESS_SPACE_PROGRAM, 8 )
222   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
223   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1)
224   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM) AM_BASE(&system1_ram)
225   AM_RANGE(0xe000, 0xefff) AM_READ(wbml_paged_videoram_r)
226   AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM)
227   AM_RANGE(0xf800, 0xfbff) AM_READ(SMH_RAM)
228ADDRESS_MAP_END
229476
230static ADDRESS_MAP_START( wbml_writemem, ADDRESS_SPACE_PROGRAM, 8 )
231   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
232   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
233   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM
234   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
235   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM) // mirror?
236   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
237   AM_RANGE(0xe000, 0xefff) AM_WRITE(wbml_paged_videoram_w)
238   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
239   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
240ADDRESS_MAP_END
477static WRITE8_HANDLER( videomode_w )
478{
479   if ((data & 0x40) && !(videomode_prev & 0x40))
480      i8751_active = TRUE;
241481
242static ADDRESS_MAP_START( chplft_writemem, ADDRESS_SPACE_PROGRAM, 8 )
243   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
244   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
245   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM
246   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
247   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
248   AM_RANGE(0xe7c0, 0xe7ff) AM_WRITE(choplifter_scroll_x_w) AM_BASE(&system1_scrollx_ram)
249   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
250   AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
251   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
252   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
482   /* handle any custom banking or other stuff */
483   if (videomode_custom != NULL)
484      (*videomode_custom)(space->machine, data, videomode_prev);
485   videomode_prev = data;
253486
254    /* needed for P.O.S.T. */
255   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
256   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
257   AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM)
258ADDRESS_MAP_END
487   /* bit 0 is for the coin counters */
488   coin_counter_w(0, data & 1);
259489
260static ADDRESS_MAP_START( gardiab_writemem, ADDRESS_SPACE_PROGRAM, 8 )
261   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
262   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
263   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM
264   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
265   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
266   AM_RANGE(0xe7bd, 0xe7bd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y)   // ???
267   AM_RANGE(0xe7c0, 0xe7c1) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x)
268   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
269   AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
270   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
271   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
490   /* remaining signals are video-related */
491   system1_videomode_w(space, 0, data);
492}
272493
273    /* needed for P.O.S.T. */
274   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
275   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
276   AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM)
277ADDRESS_MAP_END
278494
279static ADDRESS_MAP_START( dakkochn_writemem, ADDRESS_SPACE_PROGRAM, 8 )
280   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
281   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
282   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM) // ROM
283   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
284   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
285   AM_RANGE(0xe7bb, 0xe7bb) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y) //TODO: hook it up
286   AM_RANGE(0xe7c0, 0xe7ff) AM_WRITE(choplifter_scroll_x_w) AM_BASE(&system1_scrollx_ram)
287   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
288   AM_RANGE(0xe800, 0xeeff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
289   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
290   AM_RANGE(0xf800, 0xfbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
291495
292    /* needed for P.O.S.T. */
293   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
294   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
295   AM_RANGE(0xef00, 0xefff) AM_WRITE(SMH_RAM)
296ADDRESS_MAP_END
496/*************************************
497 *
498 *  DakkoChan House custom inputs
499 *
500 *************************************/
297501
298static ADDRESS_MAP_START( nobo_writemem, ADDRESS_SPACE_PROGRAM, 8 )
299   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
300   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
301   AM_RANGE(0xc000, 0xc3ff) AM_WRITE(system1_background_collisionram_w) AM_BASE(&system1_background_collisionram)
302   AM_RANGE(0xc800, 0xcbff) AM_WRITE(system1_sprites_collisionram_w) AM_BASE(&system1_sprites_collisionram)
303   AM_RANGE(0xd000, 0xd1ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
304   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
305   AM_RANGE(0xd800, 0xddff) AM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
306   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
307   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(system1_backgroundram_w) AM_BASE(&system1_backgroundram) AM_SIZE(&system1_backgroundram_size)
308   AM_RANGE(0xe800, 0xeeff) AM_WRITE(SMH_RAM) AM_BASE(&system1_videoram) AM_SIZE(&system1_videoram_size)
309   AM_RANGE(0xefbd, 0xefbd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_y)
310   AM_RANGE(0xeffc, 0xeffd) AM_WRITE(SMH_RAM) AM_BASE(&system1_scroll_x)
311   AM_RANGE(0xf000, 0xffff) AM_WRITE(SMH_RAM)
502static CUSTOM_INPUT( dakkochn_mux_data_r )
503{
504   static const char *ports[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6" };
505   return input_port_read(field->port->machine, ports[dakkochn_mux_data]);
506}
312507
313   /* These addresses are written during P.O.S.T. but don't seem to be used after */
314   AM_RANGE(0xc400, 0xc7ff) AM_WRITE(SMH_RAM)
315   AM_RANGE(0xcc00, 0xcfff) AM_WRITE(SMH_RAM)
316   AM_RANGE(0xd200, 0xd7ff) AM_WRITE(SMH_RAM)
317   AM_RANGE(0xde00, 0xdfff) AM_WRITE(SMH_RAM)
318   AM_RANGE(0xef00, 0xefbc) AM_WRITE(SMH_RAM)
319   AM_RANGE(0xefbe, 0xeffb) AM_WRITE(SMH_RAM)
320   AM_RANGE(0xeffe, 0xefff) AM_WRITE(SMH_RAM)
321ADDRESS_MAP_END
322508
509static CUSTOM_INPUT( dakkochn_mux_status_r )
510{
511   /* reads from here indicate which mux port is selected */
512   return 1 << (dakkochn_mux_data);
513}
323514
324static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
325   ADDRESS_MAP_GLOBAL_MASK(0xff)
326   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
327   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
328   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
329   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
330   AM_RANGE(0x0e, 0x0e) AM_READ_PORT("DSW2")   /* DIP2 blckgalb reads it from here */
331   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
332   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")   /* DIP1 ... and some others from here but there are games which check BOTH! */
333   AM_RANGE(0x11, 0x11) AM_READ_PORT("DSW2")   /* DIP2 ... blockgal */
334   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)   /* sound commands */
335   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, system1_videomode_w)   /* video control and (in some games) bank switching */
336   AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w)   /* mirror address */
337   AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, system1_videomode_w)    /* mirror address */
338ADDRESS_MAP_END
339515
340static ADDRESS_MAP_START( wbml_io_map, ADDRESS_SPACE_IO, 8 )
341   ADDRESS_MAP_GLOBAL_MASK(0xff)
342   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
343   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
344   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
345   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
346   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
347   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")   /* DIP1 ... and some others from here but there are games which check BOTH! */
348   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)    /* sound commands */
349   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w)
350   AM_RANGE(0x16, 0x16) AM_READWRITE(wbml_videoram_bank_latch_r, wbml_videoram_bank_latch_w)
351   AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r)  /* mirror address */
352ADDRESS_MAP_END
516static void dakkochn_custom_w(running_machine *machine, UINT8 data, UINT8 prevdata)
517{
518   /* bit 1 toggling on clocks the mux; we store the previous state in the high bit of dakkochn_mux_data */
519   if ((data & 0x02) && !(prevdata & 0x02))
520      dakkochn_mux_data = (dakkochn_mux_data + 1) % 7;
353521
354static ADDRESS_MAP_START( sht_io_map, ADDRESS_SPACE_IO, 8 )
355   ADDRESS_MAP_GLOBAL_MASK(0xff)
356/*  AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") */
357/*  AM_RANGE(0x04, 0x04) AM_READ_PORT("P2") */
358   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
359   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
360   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
361   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1") AM_WRITE(mcuenable_hack_w)
362                                    /* DIP1 ... and some others from here but there are games which check BOTH! */
363   AM_RANGE(0x12, 0x12) AM_READ_PORT("TRIGGER")
364   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)   /* sound commands */
365   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w)
366   AM_RANGE(0x16, 0x16) AM_READWRITE(wbml_videoram_bank_latch_r, wbml_videoram_bank_latch_w)
367   AM_RANGE(0x18, 0x18) AM_READ_PORT("18")            /* ?? */
368   AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r)   /* mirror address */
369   AM_RANGE(0x1c, 0x1c) AM_READ_PORT("GUNX")
370   AM_RANGE(0x1d, 0x1d) AM_READ_PORT("GUNY")
371ADDRESS_MAP_END
522   /* remaining stuff acts like bank0c */
523   bank0c_custom_w(machine, data, prevdata);
524}
372525
373static ADDRESS_MAP_START( nob_io_map, ADDRESS_SPACE_IO, 8 )
374   ADDRESS_MAP_GLOBAL_MASK(0xff)
375   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
376   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
377   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
378   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")      /* DIP2 */
379   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")      /* DIP1 some games read it from here... */
380   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)   /* sound commands ? */
381   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, brain_videomode_w)   /* video control + bank switching */
382ADDRESS_MAP_END
383526
384static ADDRESS_MAP_START( nobb_io_map, ADDRESS_SPACE_IO, 8 )
385   ADDRESS_MAP_GLOBAL_MASK(0xff)
386   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
387   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
388   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
389   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")      /* DIP2 */
390   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")      /* DIP1 some games read it from here... */
391   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)   /* sound commands ? */
392   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, brain_videomode_w)   /* video control + bank switching */
393527
394   /* protection on the bootleg */
395   AM_RANGE(0x16, 0x16) AM_READWRITE(nobb_inport16_r, nobb_outport16_w)   /* Used - check code at 0x05cb */
396   AM_RANGE(0x17, 0x17) AM_WRITE(nobb_outport17_w)      /* Not handled in emul. of other SS1/2 games */
397   AM_RANGE(0x1c, 0x1c) AM_READ(nobb_inport1c_r)      /* Shouldn't be called ! */
398   AM_RANGE(0x22, 0x22) AM_READ(nobb_inport22_r)      /* Used - check code at 0xb253 */
399   AM_RANGE(0x23, 0x23) AM_READ(nobb_inport23_r)      /* Used - check code at 0xb275 and 0xb283 */
400   AM_RANGE(0x24, 0x24) AM_WRITE(nobb_outport24_w)         /* Used - check code at 0xb24e and 0xb307 */
528/*************************************
529 *
530 *  Sound I/O
531 *
532 *************************************/
533
534static WRITE8_DEVICE_HANDLER( sound_control_w )
535{
536   /* bit 0 = MUTE */
537   sound_global_enable(~(data & 1));
538
539   /* bit 6 = feedback from sound board that read occurrred */
540
541   /* bit 7 controls the sound CPU's NMI line */
542   cputag_set_input_line(device->machine, "soundcpu", INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
543
544   /* remaining bits are used for video RAM banking */
545   system1_videoram_bank_w(device, offset, data);
546}
547
548
549static READ8_HANDLER( sound_data_r )
550{
551   const device_config *ppi = devtag_get_device(space->machine, "ppi");
552   const device_config *pio = devtag_get_device(space->machine, "pio");
553
554   /* if we have an 8255 PPI, get the data from the port and toggle the ack */
555   if (ppi != NULL)
556   {
557      UINT8 initial_value = ppi8255_get_port_c(ppi);
558      ppi8255_set_port_c(ppi, initial_value & ~0x40);
559      ppi8255_set_port_c(ppi, initial_value |  0x40);
560      return soundlatch_r(space, offset);
561   }
562
563   /* if we have a Z80 PIO, just do a port read which will auto-ack */
564   else if (pio != NULL)
565      return z80pio_p_r(pio, 0);
566
567   return 0xff;
568}
569
570
571static WRITE8_HANDLER( soundport_w )
572{
573   /* boost interleave when communicating with the sound CPU */
574   soundlatch_w(space, 0, data);
575   cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(100));
576}
577
578
579static TIMER_DEVICE_CALLBACK( soundirq_gen )
580{
581   /* sound IRQ is generated on 32V, 96V, ... and auto-acknowledged */
582   cputag_set_input_line(timer->machine, "soundcpu", 0, HOLD_LINE);
583}
584
585
586static WRITE_LINE_DEVICE_HANDLER( pio_ready_w )
587{
588   cputag_set_input_line(device->machine, "soundcpu", INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
589}
590
591
592
593/*************************************
594 *
595 *  Generic port definitions
596 *
597 *************************************/
598
599// nobb - these ports are used for some kind of replacement protection system used by the bootleg
600static int nobb_inport23_step;
601
602static READ8_HANDLER( nobb_inport1c_r )
603{
604//  logerror("IN  $1c : pc = %04x - data = 0x80\n",cpu_get_pc(space->cpu));
605   return(0x80);   // infinite loop (at 0x0fb3) until bit 7 is set
606}
607
608static READ8_HANDLER( nobb_inport22_r )
609{
610//  logerror("IN  $22 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),nobb_inport17_step);
611   return(0);//nobb_inport17_step);
612}
613
614static READ8_HANDLER( nobb_inport23_r )
615{
616//  logerror("IN  $23 : pc = %04x - step = %02x\n",cpu_get_pc(space->cpu),nobb_inport23_step);
617   return(nobb_inport23_step);
618}
619
620static WRITE8_HANDLER( nobb_outport24_w )
621{
622//  logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(space->cpu),data);
623   nobb_inport23_step = data;
624}
625
626
627
628/*************************************
629 *
630 *  Main CPU address maps
631 *
632 *************************************/
633
634/* main memory map */
635static ADDRESS_MAP_START( system1_map, ADDRESS_SPACE_PROGRAM, 8 )
636   AM_RANGE(0x0000, 0x7fff) AM_ROM
637   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
638   AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(&system1_ram)
639   AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&spriteram)
640   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
641   AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
642   AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w)
643   AM_RANGE(0xf400, 0xf7ff) AM_WRITE(system1_mixer_collision_reset_w)
644   AM_RANGE(0xf800, 0xfbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w)
645   AM_RANGE(0xfc00, 0xffff) AM_WRITE(system1_sprite_collision_reset_w)
401646ADDRESS_MAP_END
402647
403static ADDRESS_MAP_START( hvymetal_io_map, ADDRESS_SPACE_IO, 8 )
404   ADDRESS_MAP_GLOBAL_MASK(0xff)
405   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
406   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
407   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
408   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
409   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
410   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")   /* DIP1 ... and some others from here but there are games which check BOTH! */
411   AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r)
412   AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r)
413   AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w)    /* sound commands */
414   AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, hvymetal_videomode_w)  /* mirror address */
648/* same as normal System 1 except address map is shuffled (RAM/collision are swapped) */
649static ADDRESS_MAP_START( nobo_map, ADDRESS_SPACE_PROGRAM, 8 )
650   AM_RANGE(0x0000, 0x7fff) AM_ROM
651   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
652   AM_RANGE(0xc000, 0xc3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w)
653   AM_RANGE(0xc400, 0xc7ff) AM_WRITE(system1_mixer_collision_reset_w)
654   AM_RANGE(0xc800, 0xcbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w)
655   AM_RANGE(0xcc00, 0xcfff) AM_WRITE(system1_sprite_collision_reset_w)
656   AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE(&spriteram)
657   AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_BASE(&paletteram)
658   AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
659   AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(&system1_ram)
415660ADDRESS_MAP_END
416661
417static ADDRESS_MAP_START( brain_io_map, ADDRESS_SPACE_IO, 8 )
418   ADDRESS_MAP_GLOBAL_MASK(0xff)
419   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
420   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
421   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
422   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
423   AM_RANGE(0x0e, 0x0e) AM_READ_PORT("DSW2")   /* DIP2 blckgalb reads it from here */
424   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
425   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")   /* DIP1 ... and some others from here but there are games which check BOTH! */
426   AM_RANGE(0x11, 0x11) AM_READ_PORT("DSW2")   /* DIP2 ... blockgal */
427   AM_RANGE(0x15, 0x15) AM_READ(system1_videomode_r)
428   AM_RANGE(0x18, 0x18) AM_WRITE(system1_soundport_w)   /* sound commands */
429   AM_RANGE(0x19, 0x19) AM_READWRITE(system1_videomode_r, brain_videomode_w)   /* mirror address */
662/* I/O map for systems with an 8255 PPI */
663static ADDRESS_MAP_START( system1_ppi_io_map, ADDRESS_SPACE_IO, 8 )
664   ADDRESS_MAP_GLOBAL_MASK(0x1f)
665   AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1")
666   AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2")
667   AM_RANGE(0x08, 0x08) AM_MIRROR(0x03) AM_READ_PORT("SYSTEM")
668   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x02) AM_READ_PORT("SWA")   /* DIP2 */
669   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x02) AM_READ_PORT("SWB")   /* DIP1 some games read it from here... */
670   AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_READ_PORT("SWB")   /* DIP1 ... and some others from here but there are games which check BOTH! */
671   AM_RANGE(0x14, 0x17) AM_DEVREADWRITE("ppi", ppi8255_r, ppi8255_w)
430672ADDRESS_MAP_END
431673
432static ADDRESS_MAP_START( chplft_io_map, ADDRESS_SPACE_IO, 8 )
433   ADDRESS_MAP_GLOBAL_MASK(0xff)
434   AM_RANGE(0x00, 0x00) AM_READ_PORT("P1")
435   AM_RANGE(0x04, 0x04) AM_READ_PORT("P2")
436   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
437   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("DSW2")   /* DIP2 */
438   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("DSW1")   /* DIP1 some games read it from here... */
439   AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")   /* DIP1 ... and some others from here but there are games which check BOTH! */
440   AM_RANGE(0x14, 0x14) AM_WRITE(system1_soundport_w)    /* sound commands */
441   AM_RANGE(0x15, 0x15) AM_READWRITE(system1_videomode_r, chplft_videomode_w)
442   AM_RANGE(0x16, 0x16) AM_READ(wbml_videoram_bank_latch_r)
443   AM_RANGE(0x19, 0x19) AM_READ(system1_videomode_r)  /* mirror address */
674/* I/O map for systems with a Z80 PIO chip */
675static ADDRESS_MAP_START( system1_pio_io_map, ADDRESS_SPACE_IO, 8 )
676   ADDRESS_MAP_GLOBAL_MASK(0x1f)
677   AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READ_PORT("P1")
678   AM_RANGE(0x04, 0x04) AM_MIRROR(0x03) AM_READ_PORT("P2")
679   AM_RANGE(0x08, 0x08) AM_MIRROR(0x03) AM_READ_PORT("SYSTEM")
680   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x02) AM_READ_PORT("SWA")   /* DIP2 */
681   AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x02) AM_READ_PORT("SWB")   /* DIP1 some games read it from here... */
682   AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_READ_PORT("SWB")   /* DIP1 ... and some others from here but there are games which check BOTH! */
683   AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pio", z80pio_r, z80pio_w)
444684ADDRESS_MAP_END
445685
446686
687
688/*************************************
689 *
690 *  Sound CPU address maps
691 *
692 *************************************/
693
447694static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
448695   AM_RANGE(0x0000, 0x7fff) AM_ROM
449696   AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM
450   AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1ffc) AM_DEVWRITE("sn1", sn76496_w)    /* Choplifter writes to the four addresses */
451   AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1ffc) AM_DEVWRITE("sn2", sn76496_w)    /* in sequence */
452   AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r)
697   AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1fff) AM_DEVWRITE("sn1", sn76496_w)
698   AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1fff) AM_DEVWRITE("sn2", sn76496_w)
699   AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(sound_data_r)
453700ADDRESS_MAP_END
454701
455702
703
456704/*************************************
457705 *
458706 *  Generic port definitions
r4470r4471
490738   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
491739   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
492740
493   PORT_START("DSW1")
494   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SWB:1")
495   PORT_DIPSETTING(   0x00, DEF_STR( Upright ) )
496   PORT_DIPSETTING(   0x01, DEF_STR( Cocktail ) )
497   PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" )
498   PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SWB:3" )
499   PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SWB:4" )
500   PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SWB:5" )
501   PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SWB:6" )
502   PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" )
503/* If you don't like the description, feel free to change it */
504   PORT_DIPNAME( 0x80, 0x80, "SW 0 Read From" )      PORT_DIPLOCATION("SWB:8")
505   PORT_DIPSETTING(   0x80, "Port $0D" )
506   PORT_DIPSETTING(   0x00, "Port $10" )
507
508   PORT_START("DSW2")
741   PORT_START("SWA")
509742   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SWA:1,2,3,4")
510743   PORT_DIPSETTING(    0x07, DEF_STR( 4C_1C ) )
511744   PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
r4470r4471
540773   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
541774   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
542775/*  PORT_DIPSETTING(    0x00, DEF_STR( 1C_1C ) ) Not allowed by mame coinage sorting, but valid */
776
777   PORT_START("SWB")
778   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SWB:1")
779   PORT_DIPSETTING(   0x00, DEF_STR( Upright ) )
780   PORT_DIPSETTING(   0x01, DEF_STR( Cocktail ) )
781   PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" )
782   PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SWB:3" )
783   PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SWB:4" )
784   PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SWB:5" )
785   PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SWB:6" )
786   PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" )
787/* If you don't like the description, feel free to change it */
788   PORT_DIPNAME( 0x80, 0x80, "SW 0 Read From" )      PORT_DIPLOCATION("SWB:8")
789   PORT_DIPSETTING(   0x80, "Port $0D" )
790   PORT_DIPSETTING(   0x00, "Port $10" )
543791INPUT_PORTS_END
544792
793
794
545795/*************************************
546796 *
547797 *  Game-specific port definitions
r4470r4471
551801static INPUT_PORTS_START( starjack )
552802   PORT_INCLUDE( system1_generic )
553803
554   PORT_MODIFY("DSW1")
804   PORT_MODIFY("SWB")
555805   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:2,3")
556806   PORT_DIPSETTING(   0x06, "3" )
557807   PORT_DIPSETTING(   0x04, "4" )
r4470r4471
573823   PORT_DIPSETTING(   0x00, DEF_STR( Hardest ) )
574824INPUT_PORTS_END
575825
576static INPUT_PORTS_START( starjacs )
826static INPUT_PORTS_START( starjacks )
577827   PORT_INCLUDE( starjack )
578828
579   PORT_MODIFY("DSW1")
829   PORT_MODIFY("SWB")
580830   PORT_DIPNAME( 0x08, 0x08, "Ship" )         PORT_DIPLOCATION("SWB:4")
581831   PORT_DIPSETTING(   0x08, DEF_STR( Single ) )
582832   PORT_DIPSETTING(   0x00, "Multi" )
r4470r4471
587837   PORT_DIPSETTING(   0x00, "60k, then every 70k" )
588838INPUT_PORTS_END
589839
840
590841static INPUT_PORTS_START( regulus )
591842   PORT_INCLUDE( system1_generic )
592843
593   PORT_MODIFY("DSW1")
844   PORT_MODIFY("SWB")
594845   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:3,4")
595846   PORT_DIPSETTING(   0x0c, "3" )
596847   PORT_DIPSETTING(   0x08, "4" )
r4470r4471
608859static INPUT_PORTS_START( reguluso )
609860   PORT_INCLUDE( regulus )
610861
611   PORT_MODIFY("DSW1")
862   PORT_MODIFY("SWB")
612863   PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" )
613864INPUT_PORTS_END
614865
r4470r4471
621872   PORT_MODIFY("P2")
622873   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* no button 2 */
623874
624   PORT_MODIFY("DSW1")
875   PORT_MODIFY("SWB")
625876   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:2,3")
626877   PORT_DIPSETTING(   0x06, "3" )
627878   PORT_DIPSETTING(   0x04, "4" )
r4470r4471
654905   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
655906   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
656907
657   PORT_MODIFY("DSW1")
908   PORT_MODIFY("SWB")
658909   PORT_DIPNAME( 0x02, 0x00, "Maximum Credits" )      PORT_DIPLOCATION("SWB:2")
659910   PORT_DIPSETTING(   0x02, "9" )
660911   PORT_DIPSETTING(   0x00, "99" )
r4470r4471
675926
676927/* Same as 'mrviking', but no "Maximum Credits" Dip Switch and "Difficulty" Dip Switch is
677928   handled by bit 7 instead of bit 6 (so bit 6 is unused) */
678static INPUT_PORTS_START( mrvikngj )
929static INPUT_PORTS_START( mrvikingj )
679930   PORT_INCLUDE( mrviking )
680931
681   PORT_MODIFY("DSW1")
932   PORT_MODIFY("SWB")
682933   PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SWB:2" )
683934   PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SWB:7" )
684935   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SWB:8")
r4470r4471
689940static INPUT_PORTS_START( swat )
690941   PORT_INCLUDE( system1_generic )
691942
692   PORT_MODIFY("DSW1")
943   PORT_MODIFY("SWB")
693944   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:2,3")
694945   PORT_DIPSETTING(   0x06, "3" )
695946   PORT_DIPSETTING(   0x04, "4" )
r4470r4471
724975   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
725976   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
726977
727   PORT_MODIFY("DSW1")
978   PORT_MODIFY("SWB")
728979   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:3,4")
729980   PORT_DIPSETTING(   0x0c, "3" )
730981   PORT_DIPSETTING(   0x08, "4" )
r4470r4471
7671018   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )         /* TURN P1 */
7681019   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL   /* TURN P2 */
7691020
770   PORT_MODIFY("DSW1")
1021   PORT_MODIFY("SWB")
7711022   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
7721023   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
7731024   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
7841035static INPUT_PORTS_START( bullfgt )
7851036   PORT_INCLUDE( system1_generic )
7861037
787   PORT_MODIFY("DSW1")
1038   PORT_MODIFY("SWB")
7881039   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
7891040   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
7901041   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
8031054static INPUT_PORTS_START( spatter )
8041055   PORT_INCLUDE( system1_generic )
8051056
806   PORT_MODIFY("DSW1")
1057   PORT_MODIFY("SWB")
8071058   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
8081059   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
8091060   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
8251076static INPUT_PORTS_START( pitfall2 )
8261077   PORT_INCLUDE( system1_generic )
8271078
828   PORT_MODIFY("DSW1")
1079   PORT_MODIFY("SWB")
8291080   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
8301081   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
8311082   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
8461097   PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" )
8471098INPUT_PORTS_END
8481099
849static INPUT_PORTS_START( pitfallu )
1100static INPUT_PORTS_START( pitfall2u )
8501101   PORT_INCLUDE( pitfall2 )
8511102
852   PORT_MODIFY("DSW1")
1103   PORT_MODIFY("SWB")
8531104   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:2,3")
8541105   PORT_DIPSETTING(   0x06, "3" )
8551106   PORT_DIPSETTING(   0x04, "4" )
r4470r4471
8711122   PORT_MODIFY("P2")
8721123   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
8731124
874   PORT_MODIFY("DSW1")
1125   PORT_MODIFY("SWB")
8751126   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
8761127   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
8771128   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
8941145static INPUT_PORTS_START( imsorry )
8951146   PORT_INCLUDE( system1_generic )
8961147
897   PORT_MODIFY("DSW1")
1148   PORT_MODIFY("SWB")
8981149   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
8991150   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
9001151   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
9211172   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
9221173   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
9231174
924   PORT_MODIFY("DSW1")
1175   PORT_MODIFY("SWB")
9251176   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
9261177   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
9271178   PORT_DIPSETTING(   0x02, DEF_STR( On ) )
r4470r4471
9511202   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
9521203   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
9531204
954   PORT_MODIFY("DSW1")
1205   PORT_MODIFY("SWB")
9551206   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
9561207   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
9571208   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
9841235   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
9851236   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
9861237
987   PORT_MODIFY("DSW1")
1238   PORT_MODIFY("SWB")
9881239   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
9891240   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
9901241   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
10061257static INPUT_PORTS_START( 4dwarrio )
10071258   PORT_INCLUDE( system1_generic )
10081259
1009   PORT_MODIFY("DSW1")
1260   PORT_MODIFY("SWB")
10101261   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:2,3")
10111262   PORT_DIPSETTING(   0x06, "3" )
10121263   PORT_DIPSETTING(   0x04, "4" )
r4470r4471
10291280static INPUT_PORTS_START( brain )
10301281   PORT_INCLUDE( system1_generic )
10311282
1032   PORT_MODIFY("DSW1")
1283   PORT_MODIFY("SWB")
10331284   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
10341285   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
10351286   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
10551306static INPUT_PORTS_START( gardia )
10561307   PORT_INCLUDE( system1_generic )
10571308
1058   PORT_MODIFY("DSW1")
1309   PORT_MODIFY("SWB")
10591310   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
10601311   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
10611312   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
10811332static INPUT_PORTS_START( raflesia )
10821333   PORT_INCLUDE( system1_generic )
10831334
1084   PORT_MODIFY("DSW1")
1335   PORT_MODIFY("SWB")
10851336   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
10861337   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
10871338   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
11161367   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
11171368   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
11181369
1119   PORT_MODIFY("DSW1")
1370   PORT_MODIFY("SWB")
11201371   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
11211372   PORT_DIPSETTING(   0x02, DEF_STR( Off ) )
11221373   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
11401391static INPUT_PORTS_START( wboy3 )
11411392   PORT_INCLUDE( wboy )
11421393
1143   PORT_MODIFY("DSW1")  /* DSW0 */
1394   PORT_MODIFY("SWB")  /* DSW0 */
11441395   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:3,4")
11451396   PORT_DIPSETTING(   0x0c, "1" )
11461397   PORT_DIPSETTING(   0x08, "2" )
r4470r4471
11551406   PORT_MODIFY("P1")
11561407   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )   /* Has to be 0 otherwise the game resets */
11571408                     /* if you die after level 1. */
1158   PORT_MODIFY("DSW1")
1409   PORT_MODIFY("SWB")
11591410   PORT_DIPNAME( 0x80, 0x00, "Energy Consumption" )   PORT_DIPLOCATION("SWB:8")
11601411   PORT_DIPSETTING(   0x00, "Slow" )
11611412   PORT_DIPSETTING(   0x80, "Fast" )
r4470r4471
11641415static INPUT_PORTS_START( wboyu )
11651416   PORT_INCLUDE( wboy )
11661417
1167   PORT_MODIFY("DSW2")
1418   PORT_MODIFY("SWA")
11681419   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SWB:1")
11691420   PORT_DIPSETTING(   0x00, DEF_STR( Upright ) )
11701421   PORT_DIPSETTING(   0x01, DEF_STR( Cocktail ) )
r4470r4471
11891440   PORT_DIPSETTING(   0x80, DEF_STR( Off ) )
11901441   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
11911442
1192   PORT_MODIFY("DSW1")
1443   PORT_MODIFY("SWB")
11931444   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) )      PORT_DIPLOCATION("SWA:1,2,3")
11941445   PORT_DIPSETTING(   0x04, DEF_STR( 4C_1C ) )
11951446   PORT_DIPSETTING(   0x05, DEF_STR( 3C_1C ) )
r4470r4471
12261477   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL      // shot
12271478   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL      // fly
12281479
1229   PORT_MODIFY("DSW2")
1480   PORT_MODIFY("SWA")
12301481   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SWA:1,2")
12311482   PORT_DIPSETTING(   0x00, DEF_STR( 2C_1C ) )
12321483   PORT_DIPSETTING(   0x03, DEF_STR( 1C_1C ) )
r4470r4471
12491500   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
12501501   PORT_DIPSETTING(   0x80, DEF_STR( On ) )
12511502
1252   PORT_MODIFY("DSW1")
1503   PORT_MODIFY("SWB")
12531504   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:1,2")
12541505   PORT_DIPSETTING(   0x02, "2" )
12551506   PORT_DIPSETTING(   0x03, "3" )
r4470r4471
12691520   PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SWB:8" )
12701521INPUT_PORTS_END
12711522
1272static INPUT_PORTS_START( chplft )
1523static INPUT_PORTS_START( choplift )
12731524   PORT_INCLUDE( system1_generic )
12741525
1275   PORT_MODIFY("DSW1")
1526   PORT_MODIFY("SWB")
12761527   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SWA:1,2,3,4")
12771528   PORT_DIPSETTING(    0x07, DEF_STR( 4C_1C ) )
12781529   PORT_DIPSETTING(    0x08, DEF_STR( 3C_1C ) )
r4470r4471
13061557   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
13071558   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
13081559
1309   PORT_MODIFY("DSW2")
1560   PORT_MODIFY("SWA")
13101561   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SWB:1")
13111562   PORT_DIPSETTING(   0x00, DEF_STR( Upright ) )
13121563   PORT_DIPSETTING(   0x01, DEF_STR( Cocktail ) )
r4470r4471
13291580INPUT_PORTS_END
13301581
13311582static INPUT_PORTS_START( shtngmst )
1332   PORT_INCLUDE( chplft )
1583   PORT_INCLUDE( choplift )
13331584
13341585   PORT_MODIFY("P1")
13351586   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
r4470r4471
13371588   PORT_MODIFY("P2")
13381589   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
13391590
1340   PORT_MODIFY("DSW2")
1341   PORT_DIPNAME( 0x01, 0x01, "DSW2" )         PORT_DIPLOCATION("SWB:1")
1591   PORT_MODIFY("SWA")
1592   PORT_DIPNAME( 0x01, 0x01, "SWA" )         PORT_DIPLOCATION("SWB:1")
13421593   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
13431594   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
13441595   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )      PORT_DIPLOCATION("SWB:2")
r4470r4471
14061657INPUT_PORTS_END
14071658
14081659static INPUT_PORTS_START( wboysys2 )
1409   PORT_INCLUDE( chplft )
1660   PORT_INCLUDE( choplift )
14101661
14111662   PORT_MODIFY("P1")
14121663   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
r4470r4471
14241675   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
14251676   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
14261677
1427   PORT_MODIFY("DSW2")
1678   PORT_MODIFY("SWA")
14281679   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )      PORT_DIPLOCATION("SWB:3,4")
14291680   PORT_DIPSETTING(   0x0c, "3" )
14301681   PORT_DIPSETTING(   0x08, "4" )
r4470r4471
14871738*/
14881739
14891740static INPUT_PORTS_START( blockgal )
1490   PORT_INCLUDE( chplft )
1741   PORT_INCLUDE( choplift )
14911742
14921743   PORT_MODIFY("P1")
14931744   PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(60) PORT_KEYDELTA(15) PORT_REVERSE
r4470r4471
15001751   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
15011752   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
15021753
1503   PORT_MODIFY("DSW2")
1754   PORT_MODIFY("SWA")
15041755   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
15051756   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
15061757   PORT_DIPSETTING(   0x02, DEF_STR( On ) )
r4470r4471
15171768INPUT_PORTS_END
15181769
15191770static INPUT_PORTS_START( tokisens )
1520   PORT_INCLUDE( chplft )
1771   PORT_INCLUDE( choplift )
15211772
1522   PORT_MODIFY("DSW2")
1773   PORT_MODIFY("SWA")
15231774   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
15241775   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
15251776   PORT_DIPSETTING(   0x02, DEF_STR( On ) )
r4470r4471
15431794INPUT_PORTS_END
15441795
15451796static INPUT_PORTS_START( wbml )
1546   PORT_INCLUDE( chplft )
1797   PORT_INCLUDE( choplift )
15471798
1548   PORT_MODIFY("DSW2")
1799   PORT_MODIFY("SWA")
15491800   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
15501801   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
15511802   PORT_DIPSETTING(   0x02, DEF_STR( On ) )
r4470r4471
15691820INPUT_PORTS_END
15701821
15711822static INPUT_PORTS_START( dakkochn )
1572   PORT_INCLUDE( chplft )
1823   PORT_INCLUDE( choplift )
15731824
15741825   PORT_MODIFY("P1")
1575   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1826   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(dakkochn_mux_data_r, NULL)
15761827
15771828   PORT_MODIFY("P2")
1578   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1829   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(dakkochn_mux_status_r, NULL)
15791830
15801831   PORT_MODIFY("SYSTEM")
1581   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) //start 1 & 2 not connected.
1832   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )    /* start 1 & 2 not connected. */
15821833   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
15831834
15841835   /*TODO: Dip-Switches */
1585   PORT_MODIFY("DSW2")
1836   PORT_MODIFY("SWA")
15861837   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SWB:2")
15871838   PORT_DIPSETTING(   0x00, DEF_STR( Off ) )
15881839   PORT_DIPSETTING(   0x02, DEF_STR( On ) )
r4470r4471
16051856   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
16061857
16071858   PORT_START("KEY0")
1608   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1609
1610   PORT_START("KEY1")
16111859   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
16121860   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B )
16131861   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C )
r4470r4471
16151863   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE )
16161864   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
16171865
1618   PORT_START("KEY2")
1866   PORT_START("KEY1")
16191867   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_E )
16201868   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F )
16211869   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_G )
16221870   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_H )
16231871   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
16241872
1625   PORT_START("KEY3")
1873   PORT_START("KEY2")
16261874   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_I )
16271875   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_J )
16281876   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K )
16291877   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_L )
16301878   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
16311879
1632   PORT_START("KEY4")
1880   PORT_START("KEY3")
16331881   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_M )
16341882   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_N )
16351883   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
r4470r4471
16371885   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP )
16381886   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
16391887
1640   PORT_START("KEY5")
1888   PORT_START("KEY4")
16411889   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
16421890   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_BET )
16431891   PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
16441892
1645   PORT_START("KEY6")
1893   PORT_START("KEY5")
16461894   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
16471895   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
16481896   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
16491897   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
1898
1899   PORT_START("KEY6")
1900   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
16501901INPUT_PORTS_END
16511902
16521903/*
r4470r4471
16561907
16571908*/
16581909static INPUT_PORTS_START( ufosensi )
1659   PORT_INCLUDE( chplft )
1910   PORT_INCLUDE( choplift )
16601911
16611912   PORT_MODIFY("P1")
16621913   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 )
r4470r4471
16641915   PORT_MODIFY("P2")
16651916   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
16661917
1667   PORT_MODIFY("DSW2")
1918   PORT_MODIFY("SWA")
16681919   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SWB:1,2")
16691920   PORT_DIPSETTING(   0x00, DEF_STR( Easy ) )
16701921   PORT_DIPSETTING(   0x01, DEF_STR( Normal ) )
r4470r4471
16891940   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
16901941INPUT_PORTS_END
16911942
1943
1944
16921945/*************************************
16931946 *
16941947 *  Graphics definitions
r4470r4471
17011954   RGN_FRAC(1,3),
17021955   3,
17031956   { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) },
1704   { 0, 1, 2, 3, 4, 5, 6, 7 },
1705   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
1957   { STEP8(0,1) },
1958   { STEP8(0,8) },
17061959   8*8
17071960};
17081961
17091962static GFXDECODE_START( system1 )
1710   /* sprites use colors 0-511, but are not defined here */
1711   GFXDECODE_ENTRY( "gfx1", 0, charlayout, 512, 128 )
1963   GFXDECODE_ENTRY( "tiles", 0, charlayout, 0, 256 )
17121964GFXDECODE_END
17131965
1966
1967
17141968/*************************************
17151969 *
17161970 *  Machine driver
17171971 *
17181972 *************************************/
17191973
1720static MACHINE_DRIVER_START( system1 )
1974static const ppi8255_interface ppi_interface =
1975{
1976   DEVCB_NULL,
1977   DEVCB_NULL,
1978   DEVCB_NULL,
1979   DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w),
1980   DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w),
1981   DEVCB_HANDLER(sound_control_w)
1982};
17211983
1984static const z80pio_interface pio_interface =
1985{
1986   DEVCB_NULL,
1987   DEVCB_NULL,
1988   DEVCB_NULL,
1989   DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w),
1990   DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w),
1991   DEVCB_LINE(pio_ready_w),
1992   DEVCB_NULL
1993};
1994
1995
1996
1997/*************************************
1998 *
1999 *  Machine driver
2000 *
2001 *************************************/
2002
2003/* original board with 64kbit ROMs and an 8255 PPI for outputs */
2004static MACHINE_DRIVER_START( sys1ppi )
2005
17222006   /* basic machine hardware */
1723   MDRV_CPU_ADD("maincpu", Z80, XTAL_4MHz)   /* My Hero has 2 OSCs 8 & 20 MHz (Cabbe Info) */
1724   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1725   MDRV_CPU_IO_MAP(io_map,0)
1726   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
2007   MDRV_CPU_ADD("maincpu", Z80, MASTER_CLOCK)   /* not really, see notes above */
2008   MDRV_CPU_PROGRAM_MAP(system1_map,0)
2009   MDRV_CPU_IO_MAP(system1_ppi_io_map,0)
2010   MDRV_CPU_VBLANK_INT("screen", vblank_irq)
17272011
1728   MDRV_CPU_ADD("soundcpu", Z80, XTAL_4MHz)
2012   MDRV_CPU_ADD("soundcpu", Z80, SOUND_CLOCK/2)
17292013   MDRV_CPU_PROGRAM_MAP(sound_map,0)
1730   MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,4)      /* NMIs are caused by the main CPU */
2014   MDRV_TIMER_ADD_SCANLINE("soundirq", soundirq_gen, "screen", 32, 64)
17312015
2016   MDRV_MACHINE_START(system1)
17322017   MDRV_MACHINE_RESET(system1)
17332018
2019   MDRV_PPI8255_ADD("ppi", ppi_interface)
2020
17342021   /* video hardware */
1735   MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)// hw collisions
2022   MDRV_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)   /* needed for proper hardware collisions */
17362023
17372024   MDRV_SCREEN_ADD("screen", RASTER)
17382025   MDRV_SCREEN_REFRESH_RATE(60)
r4470r4471
17422029   MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
17432030
17442031   MDRV_GFXDECODE(system1)
1745   MDRV_PALETTE_LENGTH(1536)
2032   MDRV_PALETTE_LENGTH(2048)
17462033
1747   MDRV_PALETTE_INIT(system1)
17482034   MDRV_VIDEO_START(system1)
17492035   MDRV_VIDEO_UPDATE(system1)
17502036
17512037   /* sound hardware */
17522038   MDRV_SPEAKER_STANDARD_MONO("mono")
17532039
1754   MDRV_SOUND_ADD("sn1", SN76489A, 2000000)
2040   MDRV_SOUND_ADD("sn1", SN76489A, SOUND_CLOCK/4)
17552041   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
17562042
1757   MDRV_SOUND_ADD("sn2", SN76489A, 4000000)
2043   MDRV_SOUND_ADD("sn2", SN76489A, SOUND_CLOCK/2)   /* selectable via jumper */
17582044   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
17592045MACHINE_DRIVER_END
17602046
1761/* driver with reduced visible area for scrolling games */
1762static MACHINE_DRIVER_START( small )
2047/* reduced visible area for scrolling games */
2048static MACHINE_DRIVER_START( sys1ppis )
2049   MDRV_IMPORT_FROM( sys1ppi )
17632050
1764   /* basic machine hardware */
1765   MDRV_IMPORT_FROM( system1 )
1766
17672051   /* video hardware */
17682052   MDRV_SCREEN_MODIFY("screen")
17692053   MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1)
1770
17712054MACHINE_DRIVER_END
17722055
17732056
1774static MACHINE_DRIVER_START( pitfall2 )
17752057
1776   /* basic machine hardware */
1777   MDRV_IMPORT_FROM( system1 )
1778   MDRV_CPU_REPLACE( "maincpu", Z80, 3600000 )/* should be 4 MHz but that value makes the title screen disappear */
2058/* revised board with 128kbit ROMs and a Z80 PIO for outputs */
2059static MACHINE_DRIVER_START( sys1pio )
2060   MDRV_IMPORT_FROM( sys1ppi )
17792061
1780MACHINE_DRIVER_END
1781
1782
1783static MACHINE_DRIVER_START( hvymetal )
1784
1785   /* basic machine hardware */
1786   MDRV_IMPORT_FROM( system1 )
17872062   MDRV_CPU_MODIFY("maincpu")
1788   MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem)
1789   MDRV_CPU_IO_MAP(hvymetal_io_map,0)
2063   MDRV_CPU_IO_MAP(system1_pio_io_map,0)
17902064
1791   MDRV_MACHINE_RESET(system1_banked)
1792
2065   MDRV_PPI8255_REMOVE("ppi")
2066   MDRV_Z80PIO_ADD("pio", pio_interface)
17932067MACHINE_DRIVER_END
17942068
2069/* reduced visible area for scrolling games */
2070static MACHINE_DRIVER_START( sys1pios )
2071   MDRV_IMPORT_FROM( sys1pio )
17952072
1796static MACHINE_DRIVER_START( chplft )
1797
1798   /* basic machine hardware */
1799   MDRV_IMPORT_FROM( system1 )
1800   MDRV_CPU_MODIFY("maincpu")
1801   MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem)
1802   MDRV_CPU_IO_MAP(chplft_io_map,0)
1803
1804   MDRV_MACHINE_RESET(system1_banked)
1805
18062073   /* video hardware */
1807   MDRV_VIDEO_UPDATE(choplifter)
1808
2074   MDRV_SCREEN_MODIFY("screen")
2075   MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1)
18092076MACHINE_DRIVER_END
18102077
1811static MACHINE_DRIVER_START( gardiab )
18122078
1813   /* basic machine hardware */
1814   MDRV_IMPORT_FROM( chplft )
1815   MDRV_CPU_MODIFY("maincpu")
1816   MDRV_CPU_PROGRAM_MAP(brain_readmem,gardiab_writemem)
1817   MDRV_CPU_IO_MAP(chplft_io_map,0)
18182079
1819   MDRV_MACHINE_RESET(system1_banked)
18202080
1821   /* video hardware */
1822   MDRV_VIDEO_UPDATE(system1)
1823MACHINE_DRIVER_END
2081/* main CPU hacked speed */
2082static MACHINE_DRIVER_START( pitfall2 )
2083   MDRV_IMPORT_FROM( sys1pio )
18242084
1825static MACHINE_DRIVER_START( dakkochn )
1826
18272085   /* basic machine hardware */
1828   MDRV_IMPORT_FROM( chplft )
1829   MDRV_CPU_MODIFY("maincpu")
1830   MDRV_CPU_PROGRAM_MAP(brain_readmem,dakkochn_writemem)
1831   MDRV_CPU_IO_MAP(wbml_io_map,0)
1832
1833   /* video hardware */
1834   MDRV_VIDEO_START(wbml)
1835   MDRV_MACHINE_RESET(dakkochn)
2086   MDRV_CPU_REPLACE( "maincpu", Z80, 3600000 )/* should be 4 MHz but that value makes the title screen disappear */
18362087MACHINE_DRIVER_END
18372088
2089/* alternate program map with RAM/collision swapped */
2090static MACHINE_DRIVER_START( nob )
2091   MDRV_IMPORT_FROM( sys1ppis )
18382092
1839static MACHINE_DRIVER_START( brain )
1840
18412093   /* basic machine hardware */
1842   MDRV_IMPORT_FROM( system1 )
18432094   MDRV_CPU_MODIFY("maincpu")
1844   MDRV_CPU_PROGRAM_MAP(brain_readmem,writemem)
1845   MDRV_CPU_IO_MAP(brain_io_map,0)
1846
1847   MDRV_MACHINE_RESET(system1_banked)
1848
2095   MDRV_CPU_PROGRAM_MAP(nobo_map,0)
18492096MACHINE_DRIVER_END
18502097
18512098
1852static MACHINE_DRIVER_START( wbml )
18532099
1854   /* basic machine hardware */
1855   MDRV_IMPORT_FROM( system1 )
1856   MDRV_CPU_MODIFY("maincpu")
1857   MDRV_CPU_PROGRAM_MAP(wbml_readmem,wbml_writemem)
1858   MDRV_CPU_IO_MAP(wbml_io_map,0)
2100/* system2 video */
2101static MACHINE_DRIVER_START( sys2 )
2102   MDRV_IMPORT_FROM( sys1ppi )
18592103
1860   MDRV_MACHINE_RESET(wbml)
1861
18622104   /* video hardware */
1863   MDRV_VIDEO_START(wbml)
1864   MDRV_VIDEO_UPDATE(wbml)
1865
2105   MDRV_VIDEO_START(system2)
2106   MDRV_VIDEO_UPDATE(system2)
18662107MACHINE_DRIVER_END
18672108
2109/* system 2 with small screen */
2110static MACHINE_DRIVER_START( sys2s )
2111   MDRV_IMPORT_FROM( sys2 )
18682112
1869static MACHINE_DRIVER_START( shtngmst )
1870
1871   /* basic machine hardware */
1872   MDRV_IMPORT_FROM( system1 )
1873   MDRV_CPU_MODIFY("maincpu")
1874   MDRV_CPU_PROGRAM_MAP(brain_readmem,chplft_writemem)
1875   MDRV_CPU_IO_MAP(sht_io_map,0)
1876
1877   MDRV_MACHINE_RESET(system1_banked)
1878
1879   /* video hardware - same as small - left / right 8 pixels clipped */
1880   MDRV_SCREEN_MODIFY("screen")
1881   MDRV_SCREEN_VISIBLE_AREA(0*8+8, 32*8-1-8, 0*8, 28*8-1)
1882
1883   MDRV_VIDEO_UPDATE(choplifter)
1884
1885MACHINE_DRIVER_END
1886
1887static MACHINE_DRIVER_START( nob )
1888
1889   /* basic machine hardware */
1890   MDRV_IMPORT_FROM( system1 )
1891   MDRV_CPU_REPLACE( "maincpu", Z80, 4000000)
1892   MDRV_CPU_PROGRAM_MAP(brain_readmem,nobo_writemem)
1893   MDRV_CPU_IO_MAP(nob_io_map,0)
1894
1895   MDRV_MACHINE_RESET(system1_banked)
1896
18972113   /* video hardware */
18982114   MDRV_SCREEN_MODIFY("screen")
1899   MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1)
1900
2115   MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 27*8-1)
19012116MACHINE_DRIVER_END
19022117
1903static MACHINE_DRIVER_START( nobb )
2118/* system2 with rowscroll */
2119static MACHINE_DRIVER_START( sys2row )
2120   MDRV_IMPORT_FROM( sys2 )
19042121
1905   /* basic machine hardware */
1906   MDRV_IMPORT_FROM( system1 )
1907   MDRV_CPU_REPLACE( "maincpu", Z80, 4000000)
1908   MDRV_CPU_PROGRAM_MAP(brain_readmem,nobo_writemem)
1909   MDRV_CPU_IO_MAP(nobb_io_map,0)
1910
1911   MDRV_MACHINE_RESET(system1_banked)
1912
19132122   /* video hardware */
1914   MDRV_SCREEN_MODIFY("screen")
1915   MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1)
1916
2123   MDRV_VIDEO_UPDATE(system2_rowscroll)
19172124MACHINE_DRIVER_END
19182125
2126/* rowscroll with small screen */
2127static MACHINE_DRIVER_START( sys2rows )
2128   MDRV_IMPORT_FROM( sys2row )
19192129
1920static MACHINE_DRIVER_START( blckgalb )
1921
1922   /* basic machine hardware */
1923   MDRV_IMPORT_FROM( system1 )
1924   MDRV_CPU_MODIFY("maincpu")
1925   MDRV_CPU_PROGRAM_MAP(readmem,blckgalb_writemem)
1926
19272130   /* video hardware */
1928   MDRV_VIDEO_UPDATE(blockgal)
1929
1930MACHINE_DRIVER_END
1931
1932
1933static MACHINE_DRIVER_START( ufosensi )
1934
1935   /* basic machine hardware */
1936   MDRV_IMPORT_FROM( wbml )
1937
1938   /* video hardware */
19392131   MDRV_SCREEN_MODIFY("screen")
19402132   MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 27*8-1)
2133MACHINE_DRIVER_END
19412134
1942   /* video hardware */
1943   MDRV_VIDEO_UPDATE(ufosensi)
19442135
1945MACHINE_DRIVER_END
19462136
19472137/*************************************
19482138 *
r4470r4471
19642154   ROM_REGION( 0x10000, "soundcpu", 0 )
19652155   ROM_LOAD( "epr-5332.3",      0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) )
19662156
1967   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2157   ROM_REGION( 0xc000, "tiles", 0 )
19682158   ROM_LOAD( "epr-5331.82",   0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) )
19692159   ROM_LOAD( "epr-5330.65",   0x2000, 0x2000, CRC(eb048745) SHA1(a2e90d20a07608f43273e84d1eb22f195b19626c) )
19702160   ROM_LOAD( "epr-5329.81",   0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) )
r4470r4471
19722162   ROM_LOAD( "epr-5327.80",   0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) )
19732163   ROM_LOAD( "epr-5326.63",   0xa000, 0x2000, CRC(ba7e2b47) SHA1(bc7528456fe8dee9aa21212aa996fc347c5d55b4) )
19742164
1975   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2165   ROM_REGION( 0x8000, "sprites", 0 )
19762166   ROM_LOAD( "epr-5318.86",   0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) )
19772167   ROM_LOAD( "epr-5319.93",   0x4000, 0x4000, CRC(ebee4999) SHA1(bb331be270dc1da63699533d9f02d73ce28f1bc5) )
19782168
1979   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2169   ROM_REGION( 0x0100, "proms", 0 )
19802170   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
19812171ROM_END
19822172
1983ROM_START( starjacs )
2173ROM_START( starjacks )
19842174   ROM_REGION( 0x10000, "maincpu", 0 )
19852175   ROM_LOAD( "a1_ic29.129",   0x0000, 0x2000, CRC(59a22a1f) SHA1(4827b537f8df04429ed53c2119c67a32efcf04a2) )
19862176   ROM_LOAD( "a1_ic30.130",   0x2000, 0x2000, CRC(7f4597dc) SHA1(7574853fc2e38880f8493cf628100a890f7aa7dc) )
r4470r4471
19922182   ROM_REGION( 0x10000, "soundcpu", 0 )
19932183   ROM_LOAD( "epr-5332.3",      0x0000, 0x2000, CRC(7a72ab3d) SHA1(4a6ad09949a438562d7043532d628cefdbb5a2fe) )
19942184
1995   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2185   ROM_REGION( 0xc000, "tiles", 0 )
19962186   ROM_LOAD( "epr-5331.82",   0x0000, 0x2000, CRC(251d898f) SHA1(353067a75d583d5f53ce2f473b52a35dd912639f) )
19972187   ROM_LOAD( "a1_ic65.65",      0x2000, 0x2000, CRC(0ab1893c) SHA1(97877f5d8be7a7b80bbf9fe8dae2acd47c411d64) )
19982188   ROM_LOAD( "epr-5329.81",   0x4000, 0x2000, CRC(3e8bcaed) SHA1(6d19543427b9c4d8d8f5ea0872cdf8cc4fe5018c) )
r4470r4471
20002190   ROM_LOAD( "epr-5327.80",   0x8000, 0x2000, CRC(79e92cb1) SHA1(03124ce123684b8469cf42be6ed5f0fffa64c480) )
20012191   ROM_LOAD( "a1_ic63.63",      0xa000, 0x2000, CRC(5bcb253e) SHA1(8c34a8377344940bcfb2495bfda3ffc6794f261b) )
20022192
2003   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2193   ROM_REGION( 0x8000, "sprites", 0 )
20042194   ROM_LOAD( "a1_ic86.86",   0x0000, 0x4000, CRC(6f2e1fd3) SHA1(326d538551245fce67d0fdba85975e27093b7a93) )
20052195   ROM_LOAD( "a1_ic93.93",   0x4000, 0x4000, CRC(07987244) SHA1(8468b95684b1f62c6de6af1b1d405bfb333e4e26) )
20062196
2007   ROM_REGION( 0x0100, "user1", 0 )   /* misc PROMs, but not color so don't use "proms"! */
2197   ROM_REGION( 0x0100, "proms", 0 )
20082198   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
20092199ROM_END
20102200
2201
2202ROM_START( upndown )
2203   ROM_REGION( 0x10000, "maincpu", 0 )
2204   ROM_LOAD( "epr5516a.129",   0x0000, 0x2000, CRC(038c82da) SHA1(b7f403068ed9f97a4b960fb8863615892bb770ed) ) /* encrypted */
2205   ROM_LOAD( "epr5517a.130",   0x2000, 0x2000, CRC(6930e1de) SHA1(8a5564c76e1fd20c8e5d95e5f538980e13c41744) ) /* encrypted */
2206   ROM_LOAD( "epr-5518.131",   0x4000, 0x2000, CRC(2a370c99) SHA1(3d1b2f1cf0d5d2d6369a33e5b3b460a3113d6a3e) ) /* encrypted */
2207   ROM_LOAD( "epr-5519.132",   0x6000, 0x2000, CRC(9d664a58) SHA1(84f2d012dac63e8d0de3935a76f5202539423a74) ) /* encrypted */
2208   ROM_LOAD( "epr-5520.133",   0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) )
2209   ROM_LOAD( "epr-5521.134",   0xa000, 0x2000, CRC(e7b8d87a) SHA1(3419318bf6d87b902433bfe3b92baf5e5bad7df3) )
2210
2211   ROM_REGION( 0x10000, "soundcpu", 0 )
2212   ROM_LOAD( "epr-5535.3",      0x0000, 0x2000, CRC(cf4e4c45) SHA1(d14a204a9966d37f4b9f3ea4c1d371c9d04e750a) )
2213
2214   ROM_REGION( 0xc000, "tiles", 0 )
2215   ROM_LOAD( "epr-5527.82",   0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) )
2216   ROM_LOAD( "epr-5526.65",   0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) )
2217   ROM_LOAD( "epr-5525.81",   0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) )
2218   ROM_LOAD( "epr-5524.64",   0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) )
2219   ROM_LOAD( "epr-5523.80",   0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) )
2220   ROM_LOAD( "epr-5522.63",   0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) )
2221
2222   ROM_REGION( 0x8000, "sprites", 0 )
2223   ROM_LOAD( "epr-5514.86",   0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) )
2224   ROM_LOAD( "epr-5515.93",   0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) )
2225
2226   ROM_REGION( 0x0100, "proms", 0 )
2227   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2228ROM_END
2229
2230ROM_START( upndownu )
2231   ROM_REGION( 0x10000, "maincpu", 0 )
2232   ROM_LOAD( "epr-5679.129",   0x0000, 0x2000, CRC(c4f2f9c2) SHA1(7904ffb46a2c3ef69b9784f343ff37d81bbee11d) )
2233   ROM_LOAD( "epr-5680.130",   0x2000, 0x2000, CRC(837f021c) SHA1(14cc846f03b71e0922689388a6757955cfd88bd8) )
2234   ROM_LOAD( "epr-5681.131",   0x4000, 0x2000, CRC(e1c7ff7e) SHA1(440dc8c18183612c32486c617f5d7f38fd804f0e) )
2235   ROM_LOAD( "epr-5682.132",   0x6000, 0x2000, CRC(4a5edc1e) SHA1(71f06d1c4a580fed07ad32c6d1f2d37d47ed95b1) )
2236   ROM_LOAD( "epr-5520.133",   0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) /* epr-5683.133 */
2237   ROM_LOAD( "epr-5684.133",   0xa000, 0x2000, CRC(32fa95da) SHA1(ebe87d28dde6b8356d40572e9f2cd35ec240075f) )
2238
2239   ROM_REGION( 0x10000, "soundcpu", 0 )
2240   ROM_LOAD( "epr-5528.3",      0x0000, 0x2000, CRC(00cd44ab) SHA1(7f5385aa0773681329a4759b0fa6f975e3de6755) )
2241
2242   ROM_REGION( 0xc000, "tiles", 0 )
2243   ROM_LOAD( "epr-5527.82",   0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) )
2244   ROM_LOAD( "epr-5526.65",   0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) )
2245   ROM_LOAD( "epr-5525.81",   0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) )
2246   ROM_LOAD( "epr-5524.64",   0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) )
2247   ROM_LOAD( "epr-5523.80",   0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) )
2248   ROM_LOAD( "epr-5522.63",   0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) )
2249
2250   ROM_REGION( 0x8000, "sprites", 0 )
2251   ROM_LOAD( "epr-5514.86",   0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) )
2252   ROM_LOAD( "epr-5515.93",   0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) )
2253
2254   ROM_REGION( 0x0100, "proms", 0 )
2255   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2256ROM_END
2257
2258
20112259ROM_START( regulus )
20122260   ROM_REGION( 0x10000, "maincpu", 0 )
20132261   ROM_LOAD( "epr-5640a.129",   0x0000, 0x2000, CRC(dafb1528) SHA1(9140c5507bd931df3f8ef8d2910bc74f737b1a5a) ) /* encrypted */
r4470r4471
20202268   ROM_REGION( 0x10000, "soundcpu", 0 )
20212269   ROM_LOAD( "epr-5652.3",      0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) )
20222270
2023   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2271   ROM_REGION( 0xc000, "tiles", 0 )
20242272   ROM_LOAD( "epr-5651.82",   0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) )
20252273   ROM_LOAD( "epr-5650.65",   0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) )
20262274   ROM_LOAD( "epr-5649.81",   0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) )
r4470r4471
20282276   ROM_LOAD( "epr-5647.80",   0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) )
20292277   ROM_LOAD( "epr-5646.63",   0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) )
20302278
2031   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2279   ROM_REGION( 0x8000, "sprites", 0 )
20322280   ROM_LOAD( "epr-5638.86",   0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) )
20332281   ROM_LOAD( "epr-5639.93",   0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) )
20342282
2035   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2283   ROM_REGION( 0x0100, "proms", 0 )
20362284   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
20372285ROM_END
20382286
r4470r4471
20482296   ROM_REGION( 0x10000, "soundcpu", 0 )
20492297   ROM_LOAD( "epr-5652.3",      0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) )
20502298
2051   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2299   ROM_REGION( 0xc000, "tiles", 0 )
20522300   ROM_LOAD( "epr-5651.82",   0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) )
20532301   ROM_LOAD( "epr-5650.65",   0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) )
20542302   ROM_LOAD( "epr-5649.81",   0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) )
r4470r4471
20562304   ROM_LOAD( "epr-5647.80",   0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) )
20572305   ROM_LOAD( "epr-5646.63",   0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) )
20582306
2059   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2307   ROM_REGION( 0x8000, "sprites", 0 )
20602308   ROM_LOAD( "epr-5638.86",   0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) )
20612309   ROM_LOAD( "epr-5639.93",   0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) )
20622310
2063   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2311   ROM_REGION( 0x0100, "proms", 0 )
20642312   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
20652313ROM_END
20662314
r4470r4471
20762324   ROM_REGION( 0x10000, "soundcpu", 0 )
20772325   ROM_LOAD( "epr-5652.3",      0x0000, 0x2000, CRC(74edcb98) SHA1(bc181c73a6009ca723e715650adb920b77bd311c) )
20782326
2079   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2327   ROM_REGION( 0xc000, "tiles", 0 )
20802328   ROM_LOAD( "epr-5651.82",   0x0000, 0x2000, CRC(f07f3e82) SHA1(f86acf2de639ac89f80cdf627d1d6b5f5e4f1557) )
20812329   ROM_LOAD( "epr-5650.65",   0x2000, 0x2000, CRC(84c1baa2) SHA1(27ba8e2bb820913e58cb029da9c18d35e67728b8) )
20822330   ROM_LOAD( "epr-5649.81",   0x4000, 0x2000, CRC(6774c895) SHA1(28f74bcf1e6bc06db0984dcf86dd527e301b0c01) )
r4470r4471
20842332   ROM_LOAD( "epr-5647.80",   0x8000, 0x2000, CRC(9330f7b5) SHA1(2c1be04de6ec652ea8a566eb0eb1a9bcb4c90e66) )
20852333   ROM_LOAD( "epr-5646.63",   0xa000, 0x2000, CRC(4dfacbbc) SHA1(e34d1e1aaf3ae7a138e75df5dedebfb4acd79340) )
20862334
2087   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2335   ROM_REGION( 0x8000, "sprites", 0 )
20882336   ROM_LOAD( "epr-5638.86",   0x0000, 0x4000, CRC(617363dd) SHA1(c8024f541086a8a940e21219fa4522646aeb365a) )
20892337   ROM_LOAD( "epr-5639.93",   0x4000, 0x4000, CRC(a4ec5131) SHA1(033bf46d2625f99544a784fe3fa299cc1b1b48e1) )
20902338
2091   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2339   ROM_REGION( 0x0100, "proms", 0 )
20922340   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
20932341ROM_END
20942342
2095ROM_START( upndown )
2096   ROM_REGION( 0x10000, "maincpu", 0 )
2097   ROM_LOAD( "epr5516a.129",   0x0000, 0x2000, CRC(038c82da) SHA1(b7f403068ed9f97a4b960fb8863615892bb770ed) ) /* encrypted */
2098   ROM_LOAD( "epr5517a.130",   0x2000, 0x2000, CRC(6930e1de) SHA1(8a5564c76e1fd20c8e5d95e5f538980e13c41744) ) /* encrypted */
2099   ROM_LOAD( "epr-5518.131",   0x4000, 0x2000, CRC(2a370c99) SHA1(3d1b2f1cf0d5d2d6369a33e5b3b460a3113d6a3e) ) /* encrypted */
2100   ROM_LOAD( "epr-5519.132",   0x6000, 0x2000, CRC(9d664a58) SHA1(84f2d012dac63e8d0de3935a76f5202539423a74) ) /* encrypted */
2101   ROM_LOAD( "epr-5520.133",   0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) )
2102   ROM_LOAD( "epr-5521.134",   0xa000, 0x2000, CRC(e7b8d87a) SHA1(3419318bf6d87b902433bfe3b92baf5e5bad7df3) )
21032343
2104   ROM_REGION( 0x10000, "soundcpu", 0 )
2105   ROM_LOAD( "epr-5535.3",      0x0000, 0x2000, CRC(cf4e4c45) SHA1(d14a204a9966d37f4b9f3ea4c1d371c9d04e750a) )
2106
2107   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2108   ROM_LOAD( "epr-5527.82",   0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) )
2109   ROM_LOAD( "epr-5526.65",   0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) )
2110   ROM_LOAD( "epr-5525.81",   0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) )
2111   ROM_LOAD( "epr-5524.64",   0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) )
2112   ROM_LOAD( "epr-5523.80",   0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) )
2113   ROM_LOAD( "epr-5522.63",   0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) )
2114
2115   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2116   ROM_LOAD( "epr-5514.86",   0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) )
2117   ROM_LOAD( "epr-5515.93",   0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) )
2118
2119   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2120   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2121ROM_END
2122
2123ROM_START( upndownu )
2124   ROM_REGION( 0x10000, "maincpu", 0 )
2125   ROM_LOAD( "epr-5679.129",   0x0000, 0x2000, CRC(c4f2f9c2) SHA1(7904ffb46a2c3ef69b9784f343ff37d81bbee11d) )
2126   ROM_LOAD( "epr-5680.130",   0x2000, 0x2000, CRC(837f021c) SHA1(14cc846f03b71e0922689388a6757955cfd88bd8) )
2127   ROM_LOAD( "epr-5681.131",   0x4000, 0x2000, CRC(e1c7ff7e) SHA1(440dc8c18183612c32486c617f5d7f38fd804f0e) )
2128   ROM_LOAD( "epr-5682.132",   0x6000, 0x2000, CRC(4a5edc1e) SHA1(71f06d1c4a580fed07ad32c6d1f2d37d47ed95b1) )
2129   ROM_LOAD( "epr-5520.133",   0x8000, 0x2000, CRC(208dfbdf) SHA1(eff0c91ce6c2c1f6e191bcbf9ae83dd377cbb408) ) /* epr-5683.133 */
2130   ROM_LOAD( "epr-5684.133",   0xa000, 0x2000, CRC(32fa95da) SHA1(ebe87d28dde6b8356d40572e9f2cd35ec240075f) )
2131
2132   ROM_REGION( 0x10000, "soundcpu", 0 )
2133   ROM_LOAD( "epr-5528.3",      0x0000, 0x2000, CRC(00cd44ab) SHA1(7f5385aa0773681329a4759b0fa6f975e3de6755) )
2134
2135   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2136   ROM_LOAD( "epr-5527.82",   0x0000, 0x2000, CRC(b2d616f1) SHA1(c079136a5d73e1d55ddbad6efb5e7067d0ff412b) )
2137   ROM_LOAD( "epr-5526.65",   0x2000, 0x2000, CRC(8a8b33c2) SHA1(db796d5c4ab3f749287133eaf05818f89dc2afb7) )
2138   ROM_LOAD( "epr-5525.81",   0x4000, 0x2000, CRC(e749c5ef) SHA1(2022cbd42ff0177cdd661bb00b1004459b6af83a) )
2139   ROM_LOAD( "epr-5524.64",   0x6000, 0x2000, CRC(8b886952) SHA1(6a9c909d10ccb03a8af6fa9d8067946d60b91592) )
2140   ROM_LOAD( "epr-5523.80",   0x8000, 0x2000, CRC(dede35d9) SHA1(6c47fa433e16ccc3fff9347a4fe8f0165d20a3d2) )
2141   ROM_LOAD( "epr-5522.63",   0xa000, 0x2000, CRC(5e6d9dff) SHA1(4f18274f5dc349b99b3daec517ccf5ccbb932d1c) )
2142
2143   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2144   ROM_LOAD( "epr-5514.86",   0x0000, 0x4000, CRC(fcc0a88b) SHA1(ca7db3df10deb6720096e6c50eddd9b74c47f0a0) )
2145   ROM_LOAD( "epr-5515.93",   0x4000, 0x4000, CRC(60908838) SHA1(aedff8ce07ab16942037e5aff212652e51c19e71) )
2146
2147   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2148   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2149ROM_END
2150
21512344ROM_START( mrviking )
21522345   ROM_REGION( 0x10000, "maincpu", 0 )
21532346   ROM_LOAD( "epr-5873.129",   0x0000, 0x2000, CRC(14d21624) SHA1(70e185d03e782be908e6b5c6342cf6a7ebae618c) ) /* encrypted */
r4470r4471
21602353   ROM_REGION( 0x10000, "soundcpu", 0 )
21612354   ROM_LOAD( "epr-5763.3",      0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) )
21622355
2163   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2356   ROM_REGION( 0xc000, "tiles", 0 )
21642357   ROM_LOAD( "epr-5762.82",   0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) )
21652358   ROM_LOAD( "epr-5761.65",   0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) )
21662359   ROM_LOAD( "epr-5760.81",   0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) )
r4470r4471
21682361   ROM_LOAD( "epr-5758.80",   0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) )
21692362   ROM_LOAD( "epr-5757.63",   0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) )
21702363
2171   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2364   ROM_REGION( 0x8000, "sprites", 0 )
21722365   ROM_LOAD( "epr-5749.86",   0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) )
21732366   ROM_LOAD( "epr-5750.93",   0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) )
21742367
2175   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2368   ROM_REGION( 0x0100, "proms", 0 )
21762369   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
21772370ROM_END
21782371
2179ROM_START( mrvikngj )
2372ROM_START( mrvikingj )
21802373   ROM_REGION( 0x10000, "maincpu", 0 )
21812374   ROM_LOAD( "epr-5751.129",   0x0000, 0x2000, CRC(ae97a4c5) SHA1(12edd757bd5b00d42ada1e10c43817f71cfe77dc) ) /* encrypted */
21822375   ROM_LOAD( "epr-5752.130",   0x2000, 0x2000, CRC(d48e6726) SHA1(934b5e7568c85005c5ec40d75e49727a18562d50) ) /* encrypted */
r4470r4471
21882381   ROM_REGION( 0x10000, "soundcpu", 0 )
21892382   ROM_LOAD( "epr-5763.3",      0x0000, 0x2000, CRC(d712280d) SHA1(8393dfb57d9af22b3280ecaef736b6f9d856dbee) )
21902383
2191   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2384   ROM_REGION( 0xc000, "tiles", 0 )
21922385   ROM_LOAD( "epr-5762.82",   0x0000, 0x2000, CRC(4a91d08a) SHA1(4687ecc4061719fca5f85b2b290ebb7ced15ee5b) )
21932386   ROM_LOAD( "epr-5761.65",   0x2000, 0x2000, CRC(f7d61b65) SHA1(a7a992f52406413e931945be60b35175f8aea6c2) )
21942387   ROM_LOAD( "epr-5760.81",   0x4000, 0x2000, CRC(95045820) SHA1(d1848fc4f3d66603d0e8217373a37148aa2eeef5) )
r4470r4471
21962389   ROM_LOAD( "epr-5758.80",   0x8000, 0x2000, CRC(808ee706) SHA1(d38ca7c6f36db6e35a3ce87bacdd70f293f23104) )
21972390   ROM_LOAD( "epr-5757.63",   0xa000, 0x2000, CRC(480f7074) SHA1(c54a1fa02e312676658d7c5392a5a841bdb15d44) )
21982391
2199   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2392   ROM_REGION( 0x8000, "sprites", 0 )
22002393   ROM_LOAD( "epr-5749.86",   0x0000, 0x4000, CRC(e24682cd) SHA1(3f626f3e5e2db486ccf727e9869ab488643b4a8c) )
22012394   ROM_LOAD( "epr-5750.93",   0x4000, 0x4000, CRC(6564d1ad) SHA1(f246afee7e73bc30054b0e5dcb83fa0edd2d2164) )
22022395
2203   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2396   ROM_REGION( 0x0100, "proms", 0 )
22042397   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
22052398ROM_END
22062399
2400
22072401ROM_START( swat )
22082402   ROM_REGION( 0x10000, "maincpu", 0 )
22092403   ROM_LOAD( "epr5807b.129",   0x0000, 0x2000, CRC(93db9c9f) SHA1(56e9d9a33f04b4d5971c0db24cc8719a52e64678) ) /* encrypted */
r4470r4471
22162410   ROM_REGION( 0x10000, "soundcpu", 0 )
22172411   ROM_LOAD( "epr-5819.3",      0x0000, 0x2000, CRC(f6afd0fd) SHA1(06062648b9ebc70b4b5c30b043f537adc0052047) )
22182412
2219   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2413   ROM_REGION( 0xc000, "tiles", 0 )
22202414   ROM_LOAD( "epr-5818.82",   0x0000, 0x2000, CRC(b22033d9) SHA1(ad217cd8dad178f3f2f1fd44a58adcc4887fb6b7) )
22212415   ROM_LOAD( "epr-5817.65",   0x2000, 0x2000, CRC(fd942797) SHA1(da7378e8d12cc2970df2efa075c944c79b3b74d2) )
22222416   ROM_LOAD( "epr-5816.81",   0x4000, 0x2000, CRC(4384376d) SHA1(78ae13a38d6368e44ba95642cce7f5515a5b6022) )
r4470r4471
22242418   ROM_LOAD( "epr-5814.80",   0x8000, 0x2000, CRC(be721c99) SHA1(bbb0afe2b195d60418014c36acf3de95adfd90d8) )
22252419   ROM_LOAD( "epr-5813.63",   0xa000, 0x2000, CRC(0d42c27e) SHA1(06b1d23cacfef3017e5951dc10e8471e9b3103d5) )
22262420
2227   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2421   ROM_REGION( 0x8000, "sprites", 0 )
22282422   ROM_LOAD( "epr-5805.86",   0x0000, 0x4000, CRC(5a732865) SHA1(55c54e54f052187ddd957131e56400c9c432a6b2) )
22292423   ROM_LOAD( "epr-5806.93",   0x4000, 0x4000, CRC(26ac258c) SHA1(e4e9f929ab8ae7da74f885481cf94335d7553a1c) )
22302424
2231   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2425   ROM_REGION( 0x0100, "proms", 0 )
22322426   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
22332427ROM_END
22342428
2429
22352430ROM_START( flicky )
22362431   ROM_REGION( 0x10000, "maincpu", 0 )
22372432   ROM_LOAD( "epr5978a.116",   0x0000, 0x4000, CRC(296f1492) SHA1(52e2c63ce376ab8124b2c68bdfa432b6621cfa78) ) /* encrypted */
r4470r4471
22402435   ROM_REGION( 0x10000, "soundcpu", 0 )
22412436   ROM_LOAD( "epr-5869.120",   0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) )
22422437
2243   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2438   ROM_REGION( 0xc000, "tiles", 0 )
22442439   ROM_LOAD( "epr-5868.62",   0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) )
22452440   ROM_LOAD( "epr-5867.61",   0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) )
22462441   ROM_LOAD( "epr-5866.64",   0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) )
r4470r4471
22482443   ROM_LOAD( "epr-5864.66",   0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) )
22492444   ROM_LOAD( "epr-5863.65",   0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) )
22502445
2251   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2446   ROM_REGION( 0x8000, "sprites", 0 )
22522447   ROM_LOAD( "epr-5855.117",   0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) )
22532448   ROM_LOAD( "epr-5856.110",   0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) )
22542449
2255   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2450   ROM_REGION( 0x0100, "proms", 0 )
22562451   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
22572452ROM_END
22582453
2259ROM_START( flicks2 )
2454ROM_START( flickys2 )
22602455   ROM_REGION( 0x10000, "maincpu", 0 )
22612456   ROM_LOAD( "epr-6621.bin",   0x0000, 0x4000, CRC(b21ff546) SHA1(e1d5438eaf0efeaeb4687dcfc12bf325e804182f) )
22622457   ROM_LOAD( "epr-6622.bin",   0x4000, 0x4000, CRC(133a8bf1) SHA1(e5e620797daace0843a680cb4572586b5e639ca0) )
r4470r4471
22642459   ROM_REGION( 0x10000, "soundcpu", 0 )
22652460   ROM_LOAD( "epr-5869.120",   0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) )
22662461
2267   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2462   ROM_REGION( 0xc000, "tiles", 0 )
22682463   ROM_LOAD( "epr-5868.62",   0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) )
22692464   ROM_LOAD( "epr-5867.61",   0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) )
22702465   ROM_LOAD( "epr-5866.64",   0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) )
r4470r4471
22722467   ROM_LOAD( "epr-5864.66",   0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) )
22732468   ROM_LOAD( "epr-5863.65",   0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) )
22742469
2275   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2470   ROM_REGION( 0x8000, "sprites", 0 )
22762471   ROM_LOAD( "epr-5855.117",   0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) )
22772472   ROM_LOAD( "epr-5856.110",   0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) )
22782473
2279   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2474   ROM_REGION( 0x0100, "proms", 0 )
22802475   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
22812476ROM_END
22822477
2283
2284
2285ROM_START( flicks1 )
2478ROM_START( flickys1 )
22862479   ROM_REGION( 0x10000, "maincpu", 0 )
22872480   ROM_LOAD( "ic129",   0x0000, 0x2000, CRC(7011275c) SHA1(69d9d1a66734bf859dbd0200b5a772110bd522c1) ) /* encrypted */
22882481   ROM_LOAD( "ic130",   0x2000, 0x2000, CRC(e7ed012d) SHA1(7f378ad3e0b6721d7108b4ee10333422df92c039) ) /* encrypted */
r4470r4471
22922485   ROM_REGION( 0x10000, "soundcpu", 0 )
22932486   ROM_LOAD( "epr-5869.120",   0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) )
22942487
2295   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2488   ROM_REGION( 0xc000, "tiles", 0 )
22962489   ROM_LOAD( "epr-5868.62",   0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) )
22972490   ROM_LOAD( "epr-5867.61",   0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) )
22982491   ROM_LOAD( "epr-5866.64",   0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) )
r4470r4471
23002493   ROM_LOAD( "epr-5864.66",   0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) )
23012494   ROM_LOAD( "epr-5863.65",   0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) )
23022495
2303   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2496   ROM_REGION( 0x8000, "sprites", 0 )
23042497   ROM_LOAD( "epr-5855.117",   0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) )
23052498   ROM_LOAD( "epr-5856.110",   0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) )
23062499
2307   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2500   ROM_REGION( 0x0100, "proms", 0 )
23082501   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
23092502ROM_END
23102503
r4470r4471
23182511   ROM_REGION( 0x10000, "soundcpu", 0 )
23192512   ROM_LOAD( "epr-5869.120",   0x0000, 0x2000, CRC(6d220d4e) SHA1(fe02a7a94a1ad046fc775a7f67f460c8d0f6dca6) )
23202513
2321   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2514   ROM_REGION( 0xc000, "tiles", 0 )
23222515   ROM_LOAD( "epr-5868.62",   0x0000, 0x2000, CRC(7402256b) SHA1(5bd660ac24a2d0d8ad983e948674a82a2d2e8b49) )
23232516   ROM_LOAD( "epr-5867.61",   0x2000, 0x2000, CRC(2f5ce930) SHA1(4bc3bc6eb8f03926d3710c9f96fcc1b116e918d3) )
23242517   ROM_LOAD( "epr-5866.64",   0x4000, 0x2000, CRC(967f1d9a) SHA1(652be7848526c6e61db4a502f75d1689d2ff2f59) )
r4470r4471
23262519   ROM_LOAD( "epr-5864.66",   0x8000, 0x2000, CRC(e659f358) SHA1(cf59f1fb0f9fb77d5ac36be52b6ee946ee85d6de) )
23272520   ROM_LOAD( "epr-5863.65",   0xa000, 0x2000, CRC(a496ca15) SHA1(8c629a853486bbe049b1deecdc00f9e16b87698f) )
23282521
2329   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2522   ROM_REGION( 0x8000, "sprites", 0 )
23302523   ROM_LOAD( "epr-5855.117",   0x0000, 0x4000, CRC(b5f894a1) SHA1(2c72dc16739dad155fcd572e1add067a7647f5bd) )
23312524   ROM_LOAD( "epr-5856.110",   0x4000, 0x4000, CRC(266af78f) SHA1(dcbfce550d10a1f2b3ce3e7e081fc008cb575708) )
23322525
2333   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2526   ROM_REGION( 0x0100, "proms", 0 )
23342527   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
23352528ROM_END
23362529
2530
23372531ROM_START( wmatch )
23382532   ROM_REGION( 0x10000, "maincpu", 0 )
23392533   ROM_LOAD( "wm.129",         0x0000, 0x2000, CRC(b6db4442) SHA1(9f31b3b2d4b4a430f9de84141ebd66bdba063387) ) /* encrypted */
r4470r4471
23462540   ROM_REGION( 0x10000, "soundcpu", 0 )
23472541   ROM_LOAD( "wm.3",         0x0000, 0x2000, CRC(50d2afb7) SHA1(21b109d389d0b52d89cf635467c3213f6b24d7df) )
23482542
2349   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2543   ROM_REGION( 0xc000, "tiles", 0 )
23502544   ROM_LOAD( "wm.82",         0x0000, 0x2000, CRC(540f0bf3) SHA1(3898dee3ed9e7382a9dfc3ee2af177c5b832ea84) )
23512545   ROM_LOAD( "wm.65",         0x2000, 0x2000, CRC(92c1e39e) SHA1(a701a66ed75fbc0be4819751dabb86e51a1dbbc4) )
23522546   ROM_LOAD( "wm.81",         0x4000, 0x2000, CRC(6a01ff2a) SHA1(f609fe9ec648dd428a6e2fc544585935d7adc562) )
r4470r4471
23542548   ROM_LOAD( "wm.80",         0x8000, 0x2000, CRC(fc3f0bd4) SHA1(887ff0d6c5fff0d1e631518fc89901d43a0d7088) )
23552549   ROM_LOAD( "wm.63",         0xa000, 0x2000, CRC(c2ce9b93) SHA1(934f4dddf2f42a23f91385dd62fc166b117063b8) )
23562550
2357   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2551   ROM_REGION( 0x8000, "sprites", 0 )
23582552   ROM_LOAD( "wm.86",         0x0000, 0x4000, CRC(238ae0e5) SHA1(af18cfe7f8103358a0ce2aef9bbd949fdc0bfbfc) )
23592553   ROM_LOAD( "wm.93",         0x4000, 0x4000, CRC(a2f19170) SHA1(47dacc380b09c6365c737d320145cedad54ecedb) )
23602554
2361   ROM_REGION( 0x0100, "user1", 0 )   /* misc PROMs, but not color so don't use "proms"! */
2555   ROM_REGION( 0x0100, "proms", 0 )
23622556   ROM_LOAD( "pr-5317.106",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
23632557ROM_END
23642558
2559
23652560ROM_START( bullfgt )
23662561   ROM_REGION( 0x10000, "maincpu", 0 )
23672562   ROM_LOAD( "epr-.129",      0x0000, 0x2000, CRC(29f19156) SHA1(86cca9601f63b9b3d3aaaf21c3a3e456a50ca6b8) ) /* encrypted */
r4470r4471
23742569   ROM_REGION( 0x10000, "soundcpu", 0 )
23752570   ROM_LOAD( "epr-6077.120",   0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) )
23762571
2377   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2572   ROM_REGION( 0xc000, "tiles", 0 )
23782573   ROM_LOAD( "epr-.82",      0x0000, 0x2000, CRC(b71c349f) SHA1(5a0e9b90c71708dadab201da09c71449e05268e1) )
23792574   ROM_LOAD( "epr-.65",      0x2000, 0x2000, CRC(86deafa8) SHA1(b4b9d38bd4a47ce2e75ec0ef3d7507aef8a16858) )
23802575   ROM_LOAD( "epr-6087.81",   0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) ) /* epr-6087.81 */
r4470r4471
23822577   ROM_LOAD( "epr-6085.80",   0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) ) /* epr-6085.80 */
23832578   ROM_LOAD( "epr-.63",      0xa000, 0x2000, CRC(c0fce57c) SHA1(74f2c987f77e73b7069014d3bd6809d8bb3596c7) )
23842579
2385   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2580   ROM_REGION( 0x8000, "sprites", 0 )
23862581   ROM_LOAD( "epr-6069.86",   0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) ) /* epr-6069.86 */
23872582   ROM_LOAD( "epr-6070.93",   0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) ) /* epr-6070.93 */
23882583
2389   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2584   ROM_REGION( 0x0100, "proms", 0 )
23902585   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
23912586                                              /* pr-5317.106 */
23922587ROM_END
r4470r4471
24002595   ROM_REGION( 0x10000, "soundcpu", 0 )
24012596   ROM_LOAD( "epr-6077.120",   0x0000, 0x2000, CRC(02a37602) SHA1(1b67b0d80a228f7faf054bfd79aff120d92c8166) )
24022597
2403   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2598   ROM_REGION( 0xc000, "tiles", 0 )
24042599   ROM_LOAD( "epr-6089.62",   0x0000, 0x2000, CRC(a183e5ff) SHA1(bb710377a8e88f530b669141ab46abd867c6cb83) )
24052600   ROM_LOAD( "epr-6088.61",   0x2000, 0x2000, CRC(b919b4a6) SHA1(ca11a96bee2e2059552ac6cce6f8dead1965ef4b) )
24062601   ROM_LOAD( "epr-6087.64",   0x4000, 0x2000, CRC(2677742c) SHA1(6a6154f1c2cc53b9d224fc73bab47e6deb7c505f) )
r4470r4471
24082603   ROM_LOAD( "epr-6085.66",   0x8000, 0x2000, CRC(9c3ddc62) SHA1(3332824de114836760a40133fb65d8f40474bc81) )
24092604   ROM_LOAD( "epr-6084.65",   0xa000, 0x2000, CRC(90e1fa5f) SHA1(e37a7f872229a93a70e42615e6452aa608d53a93) )
24102605
2411   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2606   ROM_REGION( 0x8000, "sprites", 0 )
24122607   ROM_LOAD( "epr-6069.117",   0x0000, 0x4000, CRC(fe691e41) SHA1(90faf26685202e2a25bb3024750456014d0722b3) )
24132608   ROM_LOAD( "epr-6070.110",   0x4000, 0x4000, CRC(34f080df) SHA1(0e7d28e3325c8c3f06438fde29ea0ffe57fc325f) )
24142609
2415   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2610   ROM_REGION( 0x0100, "proms", 0 )
24162611   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
24172612ROM_END
24182613
2614
2615ROM_START( spatter )
2616   ROM_REGION( 0x10000, "maincpu", 0 )
2617   ROM_LOAD( "epr-6392.116",   0x0000, 0x4000, CRC(329b4506) SHA1(8f71ffc3015c4fcf84a895bf53760830602f1040) ) /* encrypted */
2618   ROM_LOAD( "epr-6393.109",   0x4000, 0x4000, CRC(3b56e25f) SHA1(23f26f8632c8a370b5b3b7a3ec58f359cdf04f73) ) /* encrypted */
2619   ROM_LOAD( "epr-6394.96",   0x8000, 0x4000, CRC(647c1301) SHA1(5142abfcc63772fd1b47eb584ccda0bc3830e337) )
2620
2621   ROM_REGION( 0x10000, "soundcpu", 0 )
2622   ROM_LOAD( "epr-6316.120",   0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) )
2623
2624   ROM_REGION( 0xc000, "tiles", 0 )
2625   ROM_LOAD( "epr-6328.62",   0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) )
2626   ROM_LOAD( "epr-6397.61",   0x2000, 0x2000, CRC(c60d4471) SHA1(9e8130d575fa342485dfe093e086a4b48e51b904) )
2627   ROM_LOAD( "epr-6326.64",   0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) )
2628   ROM_LOAD( "epr-6396.63",   0x6000, 0x2000, CRC(c15ccf3b) SHA1(14809ab81816eedb85cacda042e437d48cf9b31a) )
2629   ROM_LOAD( "epr-6324.66",   0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) )
2630   ROM_LOAD( "epr-6395.65",   0xa000, 0x2000, CRC(3f083065) SHA1(cb17c8c2fe04baa58863c10cd8f359a58def3417) )
2631
2632   ROM_REGION( 0x10000, "sprites", 0 )
2633   ROM_LOAD( "epr-6306.04",   0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) )
2634   ROM_LOAD( "epr-6308.117",   0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) )
2635   ROM_LOAD( "epr-6307.05",   0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) )
2636   ROM_LOAD( "epr-6309.110",   0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) )
2637
2638   ROM_REGION( 0x0100, "proms", 0 )
2639   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2640                                              /* pr-5317.106 */
2641ROM_END
2642
2643ROM_START( ssanchan )
2644   ROM_REGION( 0x10000, "maincpu", 0 )
2645   ROM_LOAD( "epr-6310.116",   0x0000, 0x4000, CRC(26b43701) SHA1(e041bde10da12a3f698da09220f0a7cc2ee99abe) ) /* encrypted */
2646   ROM_LOAD( "epr-6311.109",   0x4000, 0x4000, CRC(cb2bc620) SHA1(ecc69360ad9fcc825b35955fbc29da9ea28b8846) ) /* encrypted */
2647   ROM_LOAD( "epr-6312.96",   0x8000, 0x4000, CRC(71b15b47) SHA1(7c955be049f9a8d7ca18d877183b698dd5ffe4da) )
2648
2649   ROM_REGION( 0x10000, "soundcpu", 0 )
2650   ROM_LOAD( "epr-6316.120",   0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) )
2651
2652   ROM_REGION( 0xc000, "tiles", 0 )
2653   ROM_LOAD( "epr-6328.62",   0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) )
2654   ROM_LOAD( "epr-6327.61",   0x2000, 0x2000, CRC(53298109) SHA1(75fd37034aee78d63939d8b4f584c1dc1042264b) )
2655   ROM_LOAD( "epr-6326.64",   0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) )
2656   ROM_LOAD( "epr-6325.63",   0x6000, 0x2000, CRC(bf038745) SHA1(2fda2412f76b8971ba543ec10da07d4b0d1f2006) )
2657   ROM_LOAD( "epr-6324.66",   0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) )
2658   ROM_LOAD( "epr-6323.65",   0xa000, 0x2000, CRC(0394673c) SHA1(fbee6a5cb37d0394db95781b9f165d766546eb33) )
2659
2660   ROM_REGION( 0x10000, "sprites", 0 )
2661   ROM_LOAD( "epr-6306.04",   0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) )
2662   ROM_LOAD( "epr-6308.117",   0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) )
2663   ROM_LOAD( "epr-6307.05",   0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) )
2664   ROM_LOAD( "epr-6309.110",   0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) )
2665
2666   ROM_REGION( 0x0100, "proms", 0 )
2667   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
2668                                              /* pr-5317.106 */
2669ROM_END
2670
2671
24192672ROM_START( pitfall2 )
24202673   ROM_REGION( 0x10000, "maincpu", 0 )
24212674   ROM_LOAD( "epr6456a.116",   0x0000, 0x4000, CRC(bcc8406b) SHA1(2e5c76886fce2c9863db7a914b85b088971aceef) ) /* encrypted */
r4470r4471
24252678   ROM_REGION( 0x10000, "soundcpu", 0 )
24262679   ROM_LOAD( "epr-6462.120",   0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) )
24272680
2428   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2681   ROM_REGION( 0xc000, "tiles", 0 )
24292682   ROM_LOAD( "epr6474a.62",   0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) )
24302683   ROM_LOAD( "epr6473a.61",   0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) )
24312684   ROM_LOAD( "epr6472a.64",   0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) )
r4470r4471
24332686   ROM_LOAD( "epr6470a.66",   0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) )
24342687   ROM_LOAD( "epr6469a.65",   0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) )
24352688
2436   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2689   ROM_REGION( 0x8000, "sprites", 0 )
24372690   ROM_LOAD( "epr6454a.117",   0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) )
24382691   ROM_LOAD( "epr-6455.05",   0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) )
24392692
2440   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2693   ROM_REGION( 0x0100, "proms", 0 )
24412694   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
24422695ROM_END
24432696
2444ROM_START( pitfalla )
2697ROM_START( pitfall2a )
24452698   ROM_REGION( 0x10000, "maincpu", 0 )
24462699   ROM_LOAD( "epr-6505",   0x0000, 0x4000, CRC(b6769739) SHA1(e1b8401c20f77f8ec799b19d7bc94ae4f9ed702f) ) /* encrypted */
24472700   ROM_LOAD( "epr-6506",   0x4000, 0x4000, CRC(1ce6aec4) SHA1(69b54c4569ccfb1166a901e7044ae1026db01a82) ) /* encrypted */
r4470r4471
24502703   ROM_REGION( 0x10000, "soundcpu", 0 )
24512704   ROM_LOAD( "epr-6462.120",   0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) )
24522705
2453   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2706   ROM_REGION( 0xc000, "tiles", 0 )
24542707   ROM_LOAD( "epr6474a.62",   0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) )
24552708   ROM_LOAD( "epr6473a.61",   0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) )
24562709   ROM_LOAD( "epr6472a.64",   0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) )
r4470r4471
24582711   ROM_LOAD( "epr6470a.66",   0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) )
24592712   ROM_LOAD( "epr6469a.65",   0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) )
24602713
2461   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2714   ROM_REGION( 0x8000, "sprites", 0 )
24622715   ROM_LOAD( "epr6454a.117",   0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) )
24632716   ROM_LOAD( "epr-6455.05",   0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) )
24642717
2465   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2718   ROM_REGION( 0x0100, "proms", 0 )
24662719   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
24672720ROM_END
24682721
2469ROM_START( pitfallu )
2722ROM_START( pitfall2u )
24702723   ROM_REGION( 0x10000, "maincpu", 0 )
24712724   ROM_LOAD( "epr-6623.116",   0x0000, 0x4000, CRC(bcb47ed6) SHA1(d33421999f899c0a4dc0d4553614c1f5c7027257) )
24722725   ROM_LOAD( "epr6624a.109",   0x4000, 0x4000, CRC(6e8b09c1) SHA1(4869ca4d3f0b08cd3df4c82be9cfc774ddeb3010) )
r4470r4471
24752728   ROM_REGION( 0x10000, "soundcpu", 0 )
24762729   ROM_LOAD( "epr-6462.120",   0x0000, 0x2000, CRC(86bb9185) SHA1(89add2e3784e8f5a20b895fb2c4466bdd6c34b0c) )
24772730
2478   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2731   ROM_REGION( 0xc000, "tiles", 0 )
24792732   ROM_LOAD( "epr6474a.62",   0x0000, 0x2000, CRC(9f1711b9) SHA1(c652010a8b19828f81fd101aa1ea781e250c4ec2) )
24802733   ROM_LOAD( "epr6473a.61",   0x2000, 0x2000, CRC(8e53b8dd) SHA1(23e04589f2b523d6b8e46d16f40e59685e27f522) )
24812734   ROM_LOAD( "epr6472a.64",   0x4000, 0x2000, CRC(e0f34a11) SHA1(b7a96a1867f8bd3cc1251b5fd12991c406e62a37) )
r4470r4471
24832736   ROM_LOAD( "epr6470a.66",   0x8000, 0x2000, CRC(1439729f) SHA1(54ea6ef54be6dcc2a5d00f7f817fd8836a02b3b9) )
24842737   ROM_LOAD( "epr6469a.65",   0xa000, 0x2000, CRC(e4ac6921) SHA1(f95e3b368c2c6dbf8265fb314d73019fe7dcce22) )
24852738
2486   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2739   ROM_REGION( 0x8000, "sprites", 0 )
24872740   ROM_LOAD( "epr6454a.117",   0x0000, 0x4000, CRC(a5d96780) SHA1(e0571f6fd031bbe2d971c3be7b96a017b0ea4be9) )
24882741   ROM_LOAD( "epr-6455.05",   0x4000, 0x4000, CRC(32ee64a1) SHA1(21743f78735fc9105fbbfac420bdaa2965b4b56f) )
24892742
2490   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2743   ROM_REGION( 0x0100, "proms", 0 )
24912744   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
24922745ROM_END
24932746
2747
24942748ROM_START( seganinj )
24952749   ROM_REGION( 0x10000, "maincpu", 0 )
24962750   ROM_LOAD( "epr-.116",      0x0000, 0x4000, CRC(a5d0c9d0) SHA1(b60caccab8269f40d4f6e7a50f3aa0d4901c1e57) ) /* encrypted */
r4470r4471
25002754   ROM_REGION( 0x10000, "soundcpu", 0 )
25012755   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
25022756
2503   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2757   ROM_REGION( 0xc000, "tiles", 0 )
25042758   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) )
25052759   ROM_LOAD( "epr-6592.61",   0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) )
25062760   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) )
r4470r4471
25082762   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) )
25092763   ROM_LOAD( "epr-6588.65",   0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) )
25102764
2511   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2765   ROM_REGION( 0x10000, "sprites", 0 )
25122766   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) )
25132767   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) )
25142768   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) )
25152769   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) )
25162770
2517   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2771   ROM_REGION( 0x0100, "proms", 0 )
25182772   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
25192773ROM_END
25202774
2521ROM_START( seganinu )
2775ROM_START( seganinju )
25222776   ROM_REGION( 0x10000, "maincpu", 0 )
25232777   ROM_LOAD( "epr-7149.116",   0x0000, 0x4000, CRC(cd9fade7) SHA1(958ef5c449df6ef5346b8634cb34a646950f706e) )
25242778   ROM_LOAD( "epr-7150.109",   0x4000, 0x4000, CRC(c36351e2) SHA1(17734d3f410feb4cad617d1931b3356192b69ac0) )
r4470r4471
25272781   ROM_REGION( 0x10000, "soundcpu", 0 )
25282782   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
25292783
2530   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2784   ROM_REGION( 0xc000, "tiles", 0 )
25312785   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) )
25322786   ROM_LOAD( "epr-6592.61",   0x2000, 0x2000, CRC(7804db86) SHA1(8229781b8296d3ffdfa2f0901e2eed297cc3e160) )
25332787   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) )
r4470r4471
25352789   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) )
25362790   ROM_LOAD( "epr-6588.65",   0xa000, 0x2000, CRC(dc931dbb) SHA1(4729b27843f226ba5861c3106f8418db70e7c47d) )
25372791
2538   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2792   ROM_REGION( 0x10000, "sprites", 0 )
25392793   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) )
25402794   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) )
25412795   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) )
25422796   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) )
25432797
2544   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2798   ROM_REGION( 0x0100, "proms", 0 )
25452799   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
25462800ROM_END
25472801
r4470r4471
25572811   ROM_REGION( 0x10000, "soundcpu", 0 )
25582812   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
25592813
2560   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2814   ROM_REGION( 0xc000, "tiles", 0 )
25612815   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */
25622816   ROM_LOAD( "epr-6557.61",   0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */
25632817   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */
r4470r4471
25652819   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */
25662820   ROM_LOAD( "epr-6553.65",   0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */
25672821
2568   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2822   ROM_REGION( 0x10000, "sprites", 0 )
25692823   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */
25702824   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */
25712825   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */
25722826   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */
25732827
2574   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2828   ROM_REGION( 0x0100, "proms", 0 )
25752829   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
25762830                                              /* pr-5317.106 */
25772831ROM_END
25782832
2579ROM_START( nprincso )
2833ROM_START( nprinceso )
25802834   ROM_REGION( 0x10000, "maincpu", 0 )
25812835   ROM_LOAD( "epr-6550.116",   0x0000, 0x4000, CRC(5f6d59f1) SHA1(e151bf22799c6507a167f83262e48fe2ba74dbd9) ) /* encrypted */
25822836   ROM_LOAD( "epr-6551.109",   0x4000, 0x4000, CRC(1af133b2) SHA1(d3ff924782223ea0566d52ab8b45f17af433966e) ) /* encrypted */
r4470r4471
25852839   ROM_REGION( 0x10000, "soundcpu", 0 )
25862840   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
25872841
2588   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2842   ROM_REGION( 0xc000, "tiles", 0 )
25892843   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) )
25902844   ROM_LOAD( "epr-6557.61",   0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) )
25912845   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) )
r4470r4471
25932847   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) )
25942848   ROM_LOAD( "epr-6553.65",   0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) )
25952849
2596   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2850   ROM_REGION( 0x10000, "sprites", 0 )
25972851   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) )
25982852   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) )
25992853   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) )
26002854   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) )
26012855
2602   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2856   ROM_REGION( 0x0100, "proms", 0 )
26032857   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
26042858ROM_END
26052859
2606ROM_START( nprincsu )
2860ROM_START( nprincesu )
26072861   ROM_REGION( 0x10000, "maincpu", 0 )
26082862   ROM_LOAD( "epr-6573.129",   0x0000, 0x2000, CRC(d2919c7d) SHA1(993fdde7dd8d4dbad42f8072829cfea794693a37) )
26092863   ROM_LOAD( "epr-6574.130",   0x2000, 0x2000, CRC(5a132833) SHA1(c21cdca6062a6ea2ca306a8dd26b572b3be86321) )
r4470r4471
26152869   ROM_REGION( 0x10000, "soundcpu", 0 )
26162870   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
26172871
2618   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2872   ROM_REGION( 0xc000, "tiles", 0 )
26192873   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) ) /* epr-6558.82 */
26202874   ROM_LOAD( "epr-6557.61",   0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) ) /* epr-6557.65 */
26212875   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) ) /* epr-6556.81 */
r4470r4471
26232877   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) ) /* epr-6554.80 */
26242878   ROM_LOAD( "epr-6553.65",   0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) ) /* epr-6553.63 */
26252879
2626   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2880   ROM_REGION( 0x10000, "sprites", 0 )
26272881   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) ) /* epr-6546.3 */
26282882   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) ) /* epr-6548.1 */
26292883   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) ) /* epr-6547.4 */
26302884   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) ) /* epr-6549.2 */
26312885
2632   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2886   ROM_REGION( 0x0100, "proms", 0 )
26332887   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
26342888ROM_END
26352889
2636ROM_START( nprincsb )
2890ROM_START( nprincesb )
26372891   ROM_REGION( 0x10000, "maincpu", 0 )
26382892   ROM_LOAD( "nprinces.001",   0x0000, 0x4000, CRC(e0de073c) SHA1(26aec99ddb080124225e0abf17aac4cc4aed1834) )  /* encrypted */
26392893   ROM_LOAD( "nprinces.002",   0x4000, 0x4000, CRC(27219c7f) SHA1(3f4b0ea9b49907231d10a38d89e2f1803dc168c9) )  /* encrypted */
r4470r4471
26422896   ROM_REGION( 0x10000, "soundcpu", 0 )
26432897   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
26442898
2645   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2899   ROM_REGION( 0xc000, "tiles", 0 )
26462900   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) )
26472901   ROM_LOAD( "epr-6557.61",   0x2000, 0x2000, CRC(6eb131d0) SHA1(27e6f7a3b6ed9a9a5aecfc9981202686b3a81cb4) )
26482902   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) )
r4470r4471
26502904   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) )
26512905   ROM_LOAD( "epr-6553.65",   0xa000, 0x2000, CRC(eb82a8fe) SHA1(ec6a418ffbdc8563293d40617aae45382f68ecc2) )
26522906
2653   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2907   ROM_REGION( 0x10000, "sprites", 0 )
26542908   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) )
26552909   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) )
26562910   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) )
26572911   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) )
26582912
2659   ROM_REGION( 0x0220, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2913   ROM_REGION( 0x0220, "proms", 0 )
26602914   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
26612915   ROM_LOAD( "nprinces.129",   0x0100, 0x0100, CRC(ae765f62) SHA1(9434b5a23d118a9c62015b479719826b38269cd4) ) /* decryption table (not used) */
26622916   ROM_LOAD( "nprinces.123",   0x0200, 0x0020, CRC(ed5146e9) SHA1(7044035c07636e4029f4b746c1a92e15173869e9) ) /* decryption table (not used) */
r4470r4471
26712925   ROM_REGION( 0x10000, "soundcpu", 0 )
26722926   ROM_LOAD( "epr-6559.120",   0x0000, 0x2000, CRC(5a1570ee) SHA1(fd9215e007b6687d057ea7aee01f6d3dcbc8f894) )
26732927
2674   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2928   ROM_REGION( 0xc000, "tiles", 0 )
26752929   ROM_LOAD( "epr-6558.62",   0x0000, 0x2000, CRC(2af9eaeb) SHA1(a8a472e9f156c34f1cfcf6d6be808da4303a2276) )
26762930   ROM_LOAD( "epr6592.bin",    0x2000, 0x2000, CRC(88d0c7a1) SHA1(a649a56484f3cf466dbd4bc468d21220e638c5fe) )
26772931   ROM_LOAD( "epr-6556.64",   0x4000, 0x2000, CRC(79fd26f7) SHA1(a7de0f21ccbcfda495a5c93237569a9b3919d2d5) )
r4470r4471
26792933   ROM_LOAD( "epr-6554.66",   0x8000, 0x2000, CRC(5ac9d205) SHA1(c3094d10d1d6226bf9ad174d2dd1631b8d6ca33a) )
26802934   ROM_LOAD( "epr6588.bin",    0xa000, 0x2000, CRC(023a14a3) SHA1(199bdf597ace496992f323c0eaa1e779920fb976) )
26812935
2682   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
2936   ROM_REGION( 0x10000, "sprites", 0 )
26832937   ROM_LOAD( "epr-6546.117",   0x0000, 0x4000, CRC(a4785692) SHA1(95ce23076dc86c5d6d3a65274873d4c48e91cc06) )
26842938   ROM_LOAD( "epr-6548.04",   0x4000, 0x4000, CRC(bdf278c1) SHA1(7ebe505f4f0434edb2cee17a6cbce6b900b29cc4) )
26852939   ROM_LOAD( "epr-6547.110",   0x8000, 0x4000, CRC(34451b08) SHA1(ee8708f6c886b63f138bcc10dc2a053bfad96c37) )
26862940   ROM_LOAD( "epr-6549.05",   0xc000, 0x4000, CRC(d2057668) SHA1(ded2a04f7555eb3b1e4da57901ca00635de2c043) )
26872941
2688   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2942   ROM_REGION( 0x0100, "proms", 0 )
26892943   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
26902944ROM_END
26912945
2946
26922947ROM_START( imsorry )
26932948   ROM_REGION( 0x10000, "maincpu", 0 )
26942949   ROM_LOAD( "epr-6676.116",   0x0000, 0x4000, CRC(eb087d7f) SHA1(b9bcc76bbdfa597d252e7db60fa0f7529e884cce) ) /* encrypted */
r4470r4471
26982953   ROM_REGION( 0x10000, "soundcpu", 0 )
26992954   ROM_LOAD( "epr-6656.120",   0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) )
27002955
2701   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2956   ROM_REGION( 0xc000, "tiles", 0 )
27022957   ROM_LOAD( "epr-6684.62",   0x0000, 0x2000, CRC(2c8df377) SHA1(abcabdecee0ce52000dab831ae1e50fe12c97066) )
27032958   ROM_LOAD( "epr-6683.61",   0x2000, 0x2000, CRC(89431c48) SHA1(99c0d141eb5519c31b194693a1fe9be882cb03fd) )
27042959   ROM_LOAD( "epr-6682.64",   0x4000, 0x2000, CRC(256a9246) SHA1(6aed392a5dd639c54bf54acd3651a77274c0a277) )
r4470r4471
27062961   ROM_LOAD( "epr-6680.66",   0x8000, 0x2000, CRC(10a629d6) SHA1(fa2c7df33c685e48020ccabcfba5830e7609e392) )
27072962   ROM_LOAD( "epr-6674.65",   0xa000, 0x2000, CRC(143d883c) SHA1(e35f6fae7feb9a353321d8239ac8990bc773e60b) )
27082963
2709   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2964   ROM_REGION( 0x8000, "sprites", 0 )
27102965   ROM_LOAD( "epr-6645.117",   0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) )
27112966   ROM_LOAD( "epr-6646.04",   0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) )
27122967
2713   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2968   ROM_REGION( 0x0100, "proms", 0 )
27142969   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
27152970ROM_END
27162971
r4470r4471
27232978   ROM_REGION( 0x10000, "soundcpu", 0 )
27242979   ROM_LOAD( "epr-6656.120",   0x0000, 0x2000, CRC(25e3d685) SHA1(a0267d6533af6ff5bf76b9858f2913821a915baf) )
27252980
2726   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
2981   ROM_REGION( 0xc000, "tiles", 0 )
27272982   ROM_LOAD( "epr-6655.62",   0x0000, 0x2000, CRC(be1f762f) SHA1(abf7af29b1fe4003342fbb431541921433a1fc7c) )
27282983   ROM_LOAD( "epr-6654.61",   0x2000, 0x2000, CRC(ed5f7fc8) SHA1(2e77e8292f644f5bbeebc807f193f20d4591f47a) )
27292984   ROM_LOAD( "epr-6653.64",   0x4000, 0x2000, CRC(8b4845a7) SHA1(048efa9d8122d4a91f4d005d023261a5a5b8b046) )
r4470r4471
27312986   ROM_LOAD( "epr-6651.66",   0x8000, 0x2000, CRC(4ee9b5e6) SHA1(821bdeefea03c5d3be6d83d0dd30841969d81bd4) )
27322987   ROM_LOAD( "epr-6650.65",   0xa000, 0x2000, CRC(3fca4414) SHA1(d4c80e06bb7027dbc8aea42fb48c71d9fa08ca40) )
27332988
2734   ROM_REGION( 0x8000, "gfx2", 0 ) /* 32k for sprites data */
2989   ROM_REGION( 0x8000, "sprites", 0 )
27352990   ROM_LOAD( "epr-6645.117",   0x0000, 0x4000, CRC(1ba167ee) SHA1(5a105cc3112f2533e7c5982233405d365402fba2) )
27362991   ROM_LOAD( "epr-6646.04",   0x4000, 0x4000, CRC(edda7ad6) SHA1(eef7dcde632787283c4cb522380b138060018204) )
27372992
2738   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
2993   ROM_REGION( 0x0100, "proms", 0 )
27392994   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
27402995ROM_END
27412996
2997
27422998ROM_START( teddybb )
27432999   ROM_REGION( 0x10000, "maincpu", 0 )
27443000   ROM_LOAD( "epr-6768.116",   0x0000, 0x4000, CRC(5939817e) SHA1(84d78412d3e13da493d08a40deb2ff3fd51ff9f8) ) /* encrypted */
r4470r4471
27483004   ROM_REGION( 0x10000, "soundcpu", 0 )
27493005   ROM_LOAD( "epr6748x.120",   0x0000, 0x2000, CRC(c2a1b89d) SHA1(55c5461640ccb26bed332c13adfbb99c27237bcb) )
27503006
2751   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3007   ROM_REGION( 0xc000, "tiles", 0 )
27523008   ROM_LOAD( "epr-6747.62",   0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) ) /* epr-6776.62 */
27533009   ROM_LOAD( "epr-6746.61",   0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) ) /* epr-6775.61 */
27543010   ROM_LOAD( "epr-6745.64",   0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) ) /* epr-6774.64 */
r4470r4471
27563012   ROM_LOAD( "epr-6743.66",   0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) ) /* epr-6772.66 */
27573013   ROM_LOAD( "epr-6742.65",   0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) ) /* epr-6771.65 */
27583014
2759   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3015   ROM_REGION( 0x10000, "sprites", 0 )
27603016   ROM_LOAD( "epr-6735.117",   0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) )
27613017   ROM_LOAD( "epr-6737.04",   0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) )
27623018   ROM_LOAD( "epr-6736.110",   0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) )
27633019   ROM_LOAD( "epr-6738.05",   0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) )
27643020
2765   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3021   ROM_REGION( 0x0100, "proms", 0 )
27663022   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
27673023ROM_END
27683024
r4470r4471
27753031   ROM_REGION( 0x10000, "soundcpu", 0 )
27763032   ROM_LOAD( "epr-6748.120",   0x0000, 0x2000, CRC(9325a1cf) SHA1(555d137b1c974b144ebe6593b4c32c97b3bb5de9) )
27773033
2778   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3034   ROM_REGION( 0xc000, "tiles", 0 )
27793035   ROM_LOAD( "epr-6747.62",   0x0000, 0x2000, CRC(a0e5aca7) SHA1(e7d35ed5e1606a1ea8b29eeca3ca807ed163573b) )
27803036   ROM_LOAD( "epr-6746.61",   0x2000, 0x2000, CRC(cdb77e51) SHA1(590855f41b62fe9a84db51f90242697abb603c00) )
27813037   ROM_LOAD( "epr-6745.64",   0x4000, 0x2000, CRC(0cab75c3) SHA1(ef9b74c62fbd81db8942f0b7aa2569a8f4843e9d) )
r4470r4471
27833039   ROM_LOAD( "epr-6743.66",   0x8000, 0x2000, CRC(c33062b5) SHA1(5845da895059ff0271a6ed6fd0fa1392be1ac223) )
27843040   ROM_LOAD( "epr-6742.65",   0xa000, 0x2000, CRC(c457e8c5) SHA1(3c1008ae8b054c198cfeb0a66534fb51beaee0f6) )
27853041
2786   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3042   ROM_REGION( 0x10000, "sprites", 0 )
27873043   ROM_LOAD( "epr-6735.117",   0x0000, 0x4000, CRC(1be35a97) SHA1(7524cfa1a9c9a2e37753f119e7ac7aa3158621be) )
27883044   ROM_LOAD( "epr-6737.04",   0x4000, 0x4000, CRC(6b53aa7a) SHA1(b1b3ff9460b2321e72b49befa63b61c9c36fedd9) )
27893045   ROM_LOAD( "epr-6736.110",   0x8000, 0x4000, CRC(565c25d0) SHA1(5ae524ef01138c5042b223286d65eb9043c0f0d5) )
27903046   ROM_LOAD( "epr-6738.05",   0xc000, 0x4000, CRC(e116285f) SHA1(b6fb50b02a981b3b23385200045ae537092d26d6) )
27913047
2792   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3048   ROM_REGION( 0x0100, "proms", 0 )
27933049   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
27943050ROM_END
27953051
2796/* This is the first System 1 game to have extended ROM space */
3052
27973053ROM_START( hvymetal )
27983054   ROM_REGION( 0x20000, "maincpu", 0 )
27993055   ROM_LOAD( "epra6790.1",   0x00000, 0x8000, CRC(59195bb9) SHA1(63dde673bd875dd23d445b152decb1d70c3750a4) ) /* encrypted */
r4470r4471
28033059   ROM_REGION( 0x10000, "soundcpu", 0 )
28043060   ROM_LOAD( "epr6787.120",  0x0000, 0x8000, CRC(b64ac7f0) SHA1(2b16c2702d3230891b700714a66ece95f1a74b44) )
28053061
2806   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3062   ROM_REGION( 0x18000, "tiles", 0 )
28073063   ROM_LOAD( "epr6795.62",   0x00000, 0x4000, CRC(58a3d038) SHA1(9aabfad143748e2ec1b41fde72a1d533bac3f9d8) )
28083064   ROM_LOAD( "epr6796.61",   0x04000, 0x4000, CRC(d8b08a55) SHA1(cfa5370aa430947637bfe57a5a1f802f273b43f7) )
28093065   ROM_LOAD( "epr6793.64",   0x08000, 0x4000, CRC(487407c2) SHA1(9bb9fff24fe057fa17057ba9263d412905a0c036) )
r4470r4471
28113067   ROM_LOAD( "epr6791.66",   0x10000, 0x4000, CRC(a7dcd042) SHA1(d9bac10aa7ac591a20bfed4e391ec1669eadc32d) )
28123068   ROM_LOAD( "epr6792.65",   0x14000, 0x4000, CRC(d0be5e33) SHA1(1e61c6e14c3c736e74e6c2ff5cde71d1d20b99a4) )
28133069
2814   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3070   ROM_REGION( 0x20000, "sprites", 0 )
28153071   ROM_LOAD( "epr6778.117",  0x00000, 0x8000, CRC(0af61aee) SHA1(90879d4d1bef38714a39ca71c101bd103d250284) )
28163072   ROM_LOAD( "epr6777.110",  0x08000, 0x8000, CRC(91d7a197) SHA1(34c12b7de22169d369ff5b8a8d86da62404267f8) )
28173073   ROM_LOAD( "epr6780.4",    0x10000, 0x8000, CRC(55b31df5) SHA1(aa1ce0b1666e17db196bd1e079691fbe433a9226) )
28183074   ROM_LOAD( "epr6779.5",    0x18000, 0x8000, CRC(e03a2b28) SHA1(7e742c09e832d01f74fe4025d194cbc8d2f24b70) )
28193075
2820   ROM_REGION( 0x0400, "proms", 0 )
3076   ROM_REGION( 0x0300, "palette", 0 )
28213077   ROM_LOAD( "pr7036.3",     0x0000, 0x0100, CRC(146f16fb) SHA1(0a2ac871383b115c16491b9ba5973f0d363eac49) ) /* palette red component */
28223078   ROM_LOAD( "pr7035.2",     0x0100, 0x0100, CRC(50b201ed) SHA1(14c3a585c083dc387532d64bfd63e34f5220e6de) ) /* palette green component */
28233079   ROM_LOAD( "pr7034.1",     0x0200, 0x0100, CRC(dfb5f139) SHA1(56cba261819fd5f2beab56ffd80bb3fd328efe3e) ) /* palette blue component */
2824   ROM_LOAD( "pr5317p.4",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3080
3081   ROM_REGION( 0x0100, "proms", 0 )
3082   ROM_LOAD( "pr5317p.4",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
28253083ROM_END
28263084
3085
28273086ROM_START( myhero )
28283087   ROM_REGION( 0x10000, "maincpu", 0 )
28293088   ROM_LOAD( "epr6963b.116",   0x0000, 0x4000, CRC(4daf89d4) SHA1(6fd69964d4e0dcd5637920711361f1879fcf330e) )
r4470r4471
28333092   ROM_REGION( 0x10000, "soundcpu", 0 )
28343093   ROM_LOAD( "epr-69xx.120",   0x0000, 0x2000, CRC(0039e1e9) SHA1(ead2e8a8a518da5ac6ccd5cd6db4cf167ea47c76) )
28353094
2836   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3095   ROM_REGION( 0xc000, "tiles", 0 )
28373096   ROM_LOAD( "epr-6966.62",   0x0000, 0x2000, CRC(157f0401) SHA1(f07eb40de95054d6a2c2ebec0b251685e8931b37) )
28383097   ROM_LOAD( "epr-6961.61",   0x2000, 0x2000, CRC(be53ce47) SHA1(de6073e7a00cba7e13aca0248c55126b16595d50) )
28393098   ROM_LOAD( "epr-6960.64",   0x4000, 0x2000, CRC(bd381baa) SHA1(e160db821422232fb8f6b4f1c4ce0b61f7bed463) )
r4470r4471
28413100   ROM_LOAD( "epr-6958.66",   0x8000, 0x2000, CRC(714f2c26) SHA1(4696c9322d7b9b27f56309312fe498f14cb32827) )
28423101   ROM_LOAD( "epr-6957.65",   0xa000, 0x2000, CRC(80920112) SHA1(745d029f99b6878efcca535885b9bf98bf8702f2) )
28433102
2844   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3103   ROM_REGION( 0x10000, "sprites", 0 )
28453104   ROM_LOAD( "epr-6921.117",   0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) )
28463105   ROM_LOAD( "epr-6923.04",   0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) )
28473106   ROM_LOAD( "epr-6922.110",   0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) )
28483107   ROM_LOAD( "epr-6924.05",   0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) )
28493108
2850   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3109   ROM_REGION( 0x0100, "proms", 0 )
28513110   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
28523111ROM_END
28533112
r4470r4471
28603119   ROM_REGION( 0x10000, "soundcpu", 0 )
28613120   ROM_LOAD( "epr-6934.120",   0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) )
28623121
2863   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3122   ROM_REGION( 0xc000, "tiles", 0 )
28643123   ROM_LOAD( "epr-6933.62",   0x0000, 0x2000, CRC(e7304036) SHA1(cff10b180832703ef472a6abd481f8433308d462) )
28653124   ROM_LOAD( "epr-6932.61",   0x2000, 0x2000, CRC(f5cfbfda) SHA1(52044e3eb6f2e82c9490856410758c5223eb116b) )
28663125   ROM_LOAD( "epr-6931.64",   0x4000, 0x2000, CRC(599d7f87) SHA1(c581001b45856447b2878dc5bdeb92bffb15086a) )
r4470r4471
28683127   ROM_LOAD( "epr-6929.66",   0x8000, 0x2000, CRC(27a16856) SHA1(1e386dfa5178a0902f5d5e64f4d0414593f2e801) )
28693128   ROM_LOAD( "epr-6928.65",   0xa000, 0x2000, CRC(c0c9cfa4) SHA1(3a98f25beab2dcacf5ec4457501ecfde9bc6e8eb) )
28703129
2871   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3130   ROM_REGION( 0x10000, "sprites", 0 )
28723131   ROM_LOAD( "epr-6921.117",   0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) )
28733132   ROM_LOAD( "epr-6923.04",   0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) )
28743133   ROM_LOAD( "epr-6922.110",   0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) )
28753134   ROM_LOAD( "epr-6924.05",   0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) )
28763135
2877   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3136   ROM_REGION( 0x0100, "proms", 0 )
28783137   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
28793138ROM_END
28803139
r4470r4471
28893148   ROM_REGION( 0x10000, "soundcpu", 0 )
28903149   ROM_LOAD( "epr-6934.120",   0x0000, 0x2000, CRC(af467223) SHA1(d79a67e761fe483407cad645dd3b93d86e8790e3) )
28913150
2892   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3151   ROM_REGION( 0xc000, "tiles", 0 )
28933152   /* all three gfx ROMs have address lines A4 and A5 swapped, also #1 and #3 */
28943153   /* have data lines D0 and D6 swapped, while #2 has data lines D1 and D5 swapped. */
28953154   ROM_LOAD( "ry-04.rom",      0x0000, 0x4000, CRC(dfb75143) SHA1(b1943e0b8ca4439d5ef27abecd48e6fc806d3a0e) )
28963155   ROM_LOAD( "ry-03.rom",      0x4000, 0x4000, CRC(cf68b4a2) SHA1(7f1607320943c452bcc30b4805e8e9c9d2a61955) )
28973156   ROM_LOAD( "ry-02.rom",      0x8000, 0x4000, CRC(d100eaef) SHA1(d917a85c3560578cc7640bfcb4725b4217f0ed91) )
28983157
2899   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3158   ROM_REGION( 0x10000, "sprites", 0 )
29003159   ROM_LOAD( "epr-6921.117",   0x0000, 0x4000, CRC(f19e05a1) SHA1(98288ba2e96c03a4ab9c8235faa7e01bb376d021) )
29013160   ROM_LOAD( "epr-6923.04",   0x4000, 0x4000, CRC(7988adc3) SHA1(4ee9e964c24234366660af4981566e8c45f46db9) )
29023161   ROM_LOAD( "epr-6922.110",   0x8000, 0x4000, CRC(37f77a78) SHA1(01d8bd41303bd5e3a6f1cdafa4a1d682e4c659a2) )
29033162   ROM_LOAD( "epr-6924.05",   0xc000, 0x4000, CRC(42bdc8f6) SHA1(f31d82641187a7cc77a4a19189b5a15d5168cbd7) )
29043163
2905   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3164   ROM_REGION( 0x0100, "proms", 0 )
29063165   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
29073166ROM_END
29083167
3168
3169ROM_START( 4dwarrio )
3170   ROM_REGION( 0x10000, "maincpu", 0 )
3171   ROM_LOAD( "4d.116",       0x0000, 0x4000, CRC(546d1bc7) SHA1(724bb2f77a2b82fae85e535ae4a37820cfb323d0) ) /* encrypted */
3172   ROM_LOAD( "4d.109",       0x4000, 0x4000, CRC(f1074ec3) SHA1(bc368abeb6c0a7172e03bd7a1754cf4a6ecbb4f8) ) /* encrypted */
3173   ROM_LOAD( "4d.96",        0x8000, 0x4000, CRC(387c1e8f) SHA1(520ecbafd1c7271dad24410a68067dfd801fa6d6) )
3174
3175   ROM_REGION( 0x10000, "soundcpu", 0 )
3176   ROM_LOAD( "4d.120",       0x0000, 0x2000, CRC(5241c009) SHA1(b7a21f95b63234f2496d5ea6e7dc8050ca1b39fc) )
3177
3178   ROM_REGION( 0xc000, "tiles", 0 )
3179   ROM_LOAD( "4d.62",        0x0000, 0x2000, CRC(f31b2e09) SHA1(fdc288769495f4b0ca8c7594c9ab7dc0f29e57a4) )
3180   ROM_LOAD( "4d.61",        0x2000, 0x2000, CRC(5430e925) SHA1(55f92309223c41871175b1f54418c8b08339deb0) )
3181   ROM_LOAD( "4d.64",        0x4000, 0x2000, CRC(9f442351) SHA1(07076ef66e29c730050e38aecabdfbfced9f9bc4) )
3182   ROM_LOAD( "4d.63",        0x6000, 0x2000, CRC(633232bd) SHA1(c09c1df4f04608381d665a83776005607ad97ad4) )
3183   ROM_LOAD( "4d.66",        0x8000, 0x2000, CRC(52bfa2ed) SHA1(ea1c18d07957301f2006350b02fe40d13dbe2aa5) )
3184   ROM_LOAD( "4d.65",        0xa000, 0x2000, CRC(e9ba4658) SHA1(ba2581a52eb54e2d9f1e1bf30050280df3f5df1b) )
3185
3186   ROM_REGION( 0x10000, "sprites", 0 )
3187   ROM_LOAD( "4d.117",       0x0000, 0x4000, CRC(436e4141) SHA1(2574d5c3b01c89d8a041c82af976147d3b87b36b) )
3188   ROM_LOAD( "4d.04",        0x4000, 0x4000, CRC(8b7cecef) SHA1(4851754cb56784ac248f699f0781646455dd556b) )
3189   ROM_LOAD( "4d.110",       0x8000, 0x4000, CRC(6ec5990a) SHA1(a26dbd470744c38a26a016e5d4792ac2f2b9bc4b) )
3190   ROM_LOAD( "4d.05",        0xc000, 0x4000, CRC(f31a1e6a) SHA1(f49dbc4b381e7096d5ffe3c16660dd63121dabf7) )
3191
3192   ROM_REGION( 0x0100, "proms", 0 )
3193   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3194ROM_END
3195
3196
29093197/*
29103198    Shooting Master (SEGA) - Rev A, 8751 315-5159a
29113199    Year: 1985
r4470r4471
29143202    Main Board        834-5719
29153203    Light Gun Board?  834-5720
29163204*/
2917
29183205ROM_START( shtngmst )
29193206   ROM_REGION( 0x20000, "maincpu", 0 )
29203207    /* This rom is located on the daughter board .*/
r4470r4471
29323219   ROM_LOAD( "315-5159a.ic74", 0x00000, 0x1000, NO_DUMP )
29333220
29343221    /* These roms are located on the main board. */
2935   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3222   ROM_REGION( 0x18000, "tiles", 0 )
29363223   ROM_LOAD( "epr7040.ic4",    0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) )
29373224   ROM_LOAD( "epr7041.ic5",    0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) )
29383225   ROM_LOAD( "epr7042.ic6",    0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) )
29393226
29403227    /* These roms are located on the daughter board. */
2941   ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASEFF )
3228   ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF )
29423229   ROM_LOAD( "epr7110.ic26",   0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) )
29433230   ROM_LOAD( "epr7106.ic22",   0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) )
29443231   ROM_LOAD( "epr7108.ic24",   0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) )
r4470r4471
29483235   ROM_LOAD( "epr7107.ic23",   0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) )
29493236
29503237    /* These proms are located on the main board. */
2951   ROM_REGION( 0x0400, "proms", 0 )
3238   ROM_REGION( 0x0300, "palette", 0 )
29523239   ROM_LOAD( "epr7113.ic20",   0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */
29533240   ROM_LOAD( "epr7112.ic14",   0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */
29543241   ROM_LOAD( "epr7111.ic8",    0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */
2955   ROM_LOAD( "epr5317.ic37",   0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
29563242
3243   ROM_REGION( 0x0100, "proms", 0 )
3244   ROM_LOAD( "epr5317.ic37",   0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
3245
29573246    /* These pld's are located on the main board. */
2958   ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE )
3247   ROM_REGION( 0x0618, "plds", 0 )
29593248   ROM_LOAD( "315-5137.bin",   0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */
29603249   ROM_LOAD( "315-5138.bin",   0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */
29613250    ROM_LOAD( "315-5139.bin",   0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50 */
r4470r4471
29723261    Main Board        834-5719
29733262    Light Gun Board?  834-5720
29743263*/
2975
2976ROM_START( shtngms1 )
3264ROM_START( shtngmst1 )
29773265   ROM_REGION( 0x20000, "maincpu", 0 )
29783266    /* This rom is located on the daughter board .*/
29793267   ROM_LOAD( "epr7100.ic18",   0x00000, 0x8000, CRC(45e64431) SHA1(7edf818dc1f65365641e51abc197d13db7a8d4d9) )
r4470r4471
29903278   ROM_LOAD( "315-5159.ic74", 0x00000, 0x1000, NO_DUMP )
29913279
29923280    /* These roms are located on the main board. */
2993   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3281   ROM_REGION( 0x18000, "tiles", 0 )
29943282   ROM_LOAD( "epr7040.ic4",    0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) )
29953283   ROM_LOAD( "epr7041.ic5",    0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) )
29963284   ROM_LOAD( "epr7042.ic6",    0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) )
29973285
29983286    /* These roms are located on the daughter board. */
2999   ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASEFF )
3287   ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF )
30003288   ROM_LOAD( "epr7110.ic26",   0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) )
30013289   ROM_LOAD( "epr7106.ic22",   0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) )
30023290   ROM_LOAD( "epr7108.ic24",   0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) )
r4470r4471
30063294   ROM_LOAD( "epr7107.ic23",   0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) )
30073295
30083296    /* These proms are located on the main board. */
3009   ROM_REGION( 0x0400, "proms", 0 )
3297   ROM_REGION( 0x0300, "palette", 0 )
30103298   ROM_LOAD( "epr7113.ic20",   0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */
30113299   ROM_LOAD( "epr7112.ic14",   0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */
30123300   ROM_LOAD( "epr7111.ic8",    0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */
3013   ROM_LOAD( "epr5317.ic37",   0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
30143301
3302   ROM_REGION( 0x0100, "proms", 0 )
3303   ROM_LOAD( "epr5317.ic37",   0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
3304
30153305    /* These pld's are located on the main board. */
3016   ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE )
3306   ROM_REGION( 0x0618, "plds", 0 )
30173307   ROM_LOAD( "315-5137.bin",   0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */
30183308   ROM_LOAD( "315-5138.bin",   0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */
30193309    ROM_LOAD( "315-5139.bin",   0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50 */
r4470r4471
30713361this set seems to hang sometimes, is it bad, it could be hacked and failing checks hidden in the game.
30723362
30733363*/
3074
3075ROM_START( shtngmsa )
3364ROM_START( shtngmsta )
30763365   ROM_REGION( 0x20000, "maincpu", 0 )
30773366   ROM_LOAD( "7100.18",      0x00000, 0x8000, CRC(268ecb1d) SHA1(a9274c9718f7244235cc6df76331d6a0b7e4e4c8) ) // different..
30783367   ROM_LOAD( "epr7101.ic91",   0x10000, 0x8000, CRC(ebf5ff72) SHA1(13ae06e3a81cf00b80ec939d5baf30143d61d480) )
r4470r4471
30813370   ROM_REGION( 0x10000, "soundcpu", 0 )
30823371   ROM_LOAD( "epr7043.ic126",  0x0000, 0x8000, CRC(99a368ab) SHA1(a9451f39ee2613e5c3e2791d4d8d837b4a3ab666) )
30833372
3084   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3373   ROM_REGION( 0x18000, "tiles", 0 )
30853374   ROM_LOAD( "epr7040.ic4",    0x00000, 0x8000, CRC(f30769fa) SHA1(366c1fbe4e1c8943b209f6c831c9a6b7e4372105) )
30863375   ROM_LOAD( "epr7041.ic5",    0x08000, 0x8000, CRC(f3e273f9) SHA1(b8715c528299dc1e4f0c19c50d91ca9861a423a1) )
30873376   ROM_LOAD( "epr7042.ic6",    0x10000, 0x8000, CRC(6841c917) SHA1(6553843eea0131eb7b5a9aa29dddf641e41d8cc3) )
30883377
3089   ROM_REGION( 0x40000, "gfx2", ROMREGION_ERASEFF )
3378   ROM_REGION( 0x40000, "sprites", ROMREGION_ERASEFF )
30903379   ROM_LOAD( "epr7110",      0x00000, 0x8000, CRC(5d1a5048) SHA1(d1626ab1981080451c912df7e4ad7f76c0cb3459) )
30913380   ROM_LOAD( "epr7106",      0x08000, 0x8000, CRC(ae7ab7a2) SHA1(153691e468d29d21b95f1fbffb6896a3140d7e14) )
30923381   ROM_LOAD( "epr7108",      0x10000, 0x8000, CRC(816180ac) SHA1(a59670ec77d4359041ebf12dae5b74add55d82ac) )
r4470r4471
30953384   ROM_LOAD( "epr7105",      0x28000, 0x8000, CRC(13111729) SHA1(57ca2b945db36b056d0e40a39456fd8bf9d0a3ec) )
30963385   ROM_LOAD( "epr7107",      0x30000, 0x8000, CRC(8f50ea24) SHA1(781687e202dedca7b72c9bd5b97d9d46fcfd601c) )
30973386
3098   ROM_REGION( 0x0400, "proms", 0 )
3387   ROM_REGION( 0x0300, "palette", 0 )
30993388   ROM_LOAD( "epr7113.ic20",   0x00000, 0x0100, CRC(5c0e1360) SHA1(2011b3eef2a58f9bd3f3b1bb9e6c201db85727c2) ) /* palette red component */
31003389   ROM_LOAD( "epr7112.ic14",   0x00100, 0x0100, CRC(46fbd351) SHA1(1fca7fbc5d5f8e13e58bbac735511bd0af392446) ) /* palette green component */
31013390   ROM_LOAD( "epr7111.ic8",    0x00200, 0x0100, CRC(8123b6b9) SHA1(fb2c5498f0603b5cd270402a738c891a85453666) ) /* palette blue component - N82S129AN */
3102   ROM_LOAD( "epr5317.ic37",   0x00300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
31033391
3104   ROM_REGION( 0x0400, "plds", ROMREGION_DISPOSE )
3392   ROM_REGION( 0x0100, "proms", 0 )
3393   ROM_LOAD( "epr5317.ic37",   0x00000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - N82S129AN */
3394
3395   ROM_REGION( 0x0400, "plds", 0 )
31053396   ROM_LOAD( "315-5137.bin",   0x00000, 0x0104, CRC(6ffd9e6f) SHA1(a60a3a2ec5bc256b18bfff0fec0172ee2e4fd955) ) /* TI PAL16R4A-2CN Located at IC10 */
31063397   ROM_LOAD( "315-5138.bin",   0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4ACN Located at IC11 */
31073398ROM_END
31083399
3400
31093401/*
31103402    Choplifter (8751 315-5151)
31113403    Year: 1985
r4470r4471
31133405
31143406    Main Board 834-5795
31153407*/
3116
3117ROM_START( chplft )
3408ROM_START( choplift )
31183409   ROM_REGION( 0x20000, "maincpu", 0 )
31193410   ROM_LOAD( "epr-7124.ic90",   0x00000, 0x8000, CRC(678d5c41) SHA1(7553979f78270c2ddc5b3f3ebf7817ead8e08de7) )
31203411   ROM_LOAD( "epr-7125.ic91",   0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) )
r4470r4471
31263417   ROM_REGION( 0x10000, "cpu2", 0 )   /* Internal i8751 MCU code */
31273418   ROM_LOAD( "315-5151.ic74",  0x00000, 0x1000, NO_DUMP )
31283419
3129   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3420   ROM_REGION( 0x18000, "tiles", 0 )
31303421   ROM_LOAD( "epr-7127.ic4",   0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) )
31313422   ROM_LOAD( "epr-7128.ic5",   0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) )
31323423   ROM_LOAD( "epr-7129.ic6",   0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) )
31333424
3134   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3425   ROM_REGION( 0x20000, "sprites", 0 )
31353426   ROM_LOAD( "epr-7121.ic87",   0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) )
31363427   ROM_LOAD( "epr-7120.ic86",   0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) )
31373428   ROM_LOAD( "epr-7123.ic89",   0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) )
31383429   ROM_LOAD( "epr-7122.ic88",   0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) )
31393430
3140   ROM_REGION( 0x0400, "proms", 0 )
3431   ROM_REGION( 0x0300, "palette", 0 )
31413432   ROM_LOAD( "pr7119.ic20",   0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */
31423433   ROM_LOAD( "pr7118.ic14",   0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */
31433434   ROM_LOAD( "pr7117.ic8",      0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */
3144   ROM_LOAD( "pr5317.ic28",   0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
31453435
3146   ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE )
3436   ROM_REGION( 0x0100, "proms", 0 )
3437   ROM_LOAD( "pr5317.ic28",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3438
3439   ROM_REGION( 0x0618, "plds", 0 )
31473440   ROM_LOAD( "315-5152.bin",   0x00000, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) /* PAL16R4A located at IC10. */
31483441    ROM_LOAD( "315-5138.bin",   0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4NC located at IC11. */
31493442    ROM_LOAD( "315-5139.bin",   0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50. */
r4470r4471
31593452
31603453    Main Board 834-5795
31613454*/
3162
3163ROM_START( chplftb )
3455ROM_START( chopliftu )
31643456   ROM_REGION( 0x20000, "maincpu", 0 )
31653457   ROM_LOAD( "epr-7152.ic90",   0x00000, 0x8000, CRC(fe49d83e) SHA1(307be38dd73ed37b275c1b464d266a752cb06132) )
31663458   ROM_LOAD( "epr-7153.ic91",   0x10000, 0x8000, CRC(48697666) SHA1(0f4c6db9558272f5ceb347e742b284474f18b707) )
r4470r4471
31693461   ROM_REGION( 0x10000, "soundcpu", 0 )
31703462   ROM_LOAD( "epr-7130.ic126",   0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) )
31713463
3172   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3464   ROM_REGION( 0x18000, "tiles", 0 )
31733465   ROM_LOAD( "epr-7127.ic4",   0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) )
31743466   ROM_LOAD( "epr-7128.ic5",   0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) )
31753467   ROM_LOAD( "epr-7129.ic6",   0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) )
31763468
3177   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3469   ROM_REGION( 0x20000, "sprites", 0 )
31783470   ROM_LOAD( "epr-7121.ic87",   0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) )
31793471   ROM_LOAD( "epr-7120.ic86",   0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) )
31803472   ROM_LOAD( "epr-7123.ic89",   0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) )
31813473   ROM_LOAD( "epr-7122.ic88",   0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) )
31823474
3183   ROM_REGION( 0x0400, "proms", 0 )
3475   ROM_REGION( 0x0300, "palette", 0 )
31843476   ROM_LOAD( "pr7119.ic20",   0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */
31853477   ROM_LOAD( "pr7118.ic14",   0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */
31863478   ROM_LOAD( "pr7117.ic8",      0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */
3187   ROM_LOAD( "pr5317.ic28",   0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
31883479
3189   ROM_REGION( 0x0618, "plds", ROMREGION_DISPOSE )
3480   ROM_REGION( 0x0100, "proms", 0 )
3481   ROM_LOAD( "pr5317.ic28",   0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3482
3483   ROM_REGION( 0x0618, "plds", 0 )
31903484   ROM_LOAD( "315-5152.bin",   0x00000, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) ) /* PAL16R4A located at IC10. */
31913485    ROM_LOAD( "315-5138.bin",   0x00000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) ) /* TI PAL16R4NC located at IC11. */
31923486    ROM_LOAD( "315-5139.bin",   0x00000, 0x0104, NO_DUMP ) /* CK2605 located at IC50. */
r4470r4471
32393533      |--------------------------------------|
32403534           1        2        3        4
32413535*/
3242
3243ROM_START( chplftbl )
3536ROM_START( chopliftbl )
32443537   ROM_REGION( 0x20000, "maincpu", 0 )
32453538   ROM_LOAD( "ep7124bl.90",   0x00000, 0x8000, CRC(71a37932) SHA1(72b6f8949d356b3adc5248fdaa13c2a1b9c0fa70) )
32463539   ROM_LOAD( "epr-7125.91",   0x10000, 0x8000, CRC(f5283498) SHA1(1ad40f6d7b4cd18212ee56917240c0796f1a4ec2) )
r4470r4471
32493542   ROM_REGION( 0x10000, "soundcpu", 0 )
32503543   ROM_LOAD( "epr-7130.126",   0x0000, 0x8000, CRC(346af118) SHA1(ef579818a45b8ebb276d5832092b26e232d5a737) )
32513544
3252   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3545   ROM_REGION( 0x18000, "tiles", 0 )
32533546   ROM_LOAD( "epr-7127.4",      0x00000, 0x8000, CRC(1e708f6d) SHA1(b975e13bdc44105e7a15c2694e3ec53b60e23e5e) )
32543547   ROM_LOAD( "epr-7128.5",      0x08000, 0x8000, CRC(b922e787) SHA1(16087671ec7de25f749b5fd66409d48ef7b35820) )
32553548   ROM_LOAD( "epr-7129.6",      0x10000, 0x8000, CRC(bd3b6e6e) SHA1(c66f21b98cb8fc61a9318041ac1812c13099d974) )
32563549
3257   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3550   ROM_REGION( 0x20000, "sprites", 0 )
32583551   ROM_LOAD( "epr-7121.87",   0x00000, 0x8000, CRC(f2b88f73) SHA1(2b06da1beabbea82d502fbe12f6ec3ef26056edd) )
32593552   ROM_LOAD( "epr-7120.86",   0x08000, 0x8000, CRC(517d7fd3) SHA1(3fb5c00224920c3f62fb86e82caf0fee2293e1e2) )
32603553   ROM_LOAD( "epr-7123.89",   0x10000, 0x8000, CRC(8f16a303) SHA1(5f2465505f001dc052e9de4cf66bc1d53fc8c7da) )
32613554   ROM_LOAD( "epr-7122.88",   0x18000, 0x8000, CRC(7c93f160) SHA1(6ab156cad7556808496070f8b02a708ce405c492) )
32623555
3263   ROM_REGION( 0x0400, "proms", 0 )
3556   ROM_REGION( 0x0300, "palette", 0 )
32643557   ROM_LOAD( "pr7119.20",      0x0000, 0x0100, CRC(b2a8260f) SHA1(36c1debb4b3f2f190a25b18d533319d7380416de) ) /* palette red component */
32653558   ROM_LOAD( "pr7118.14",      0x0100, 0x0100, CRC(693e20c7) SHA1(9ebf4bd2c30ddd9648bc4b41c7739cfdf80100da) ) /* palette green component */
32663559   ROM_LOAD( "pr7117.8",      0x0200, 0x0100, CRC(4124307e) SHA1(cee28d891e6ce732c43a61acb5beeafd2200cf37) ) /* palette blue component */
3267   ROM_LOAD( "pr5317.28",      0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
32683560
3269   ROM_REGION( 0x0003, "plds_main", ROMREGION_DISPOSE )
3561   ROM_REGION( 0x0100, "proms", 0 )
3562   ROM_LOAD( "pr5317.28",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3563
3564   ROM_REGION( 0x0003, "plds_main", 0 )
32703565    ROM_LOAD( "pal16r4.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at IC13. */
32713566    ROM_LOAD( "pal16r4.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at IC14. */
32723567    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at IC62. */
32733568
3274   ROM_REGION( 0x0002, "plds_600a", ROMREGION_DISPOSE )
3569   ROM_REGION( 0x0002, "plds_600a", 0 )
32753570    ROM_LOAD( "pal16r4.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16R4 located at E1. */
32763571    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at E2. */
32773572
3278   ROM_REGION( 0x0005, "plds_600b", ROMREGION_DISPOSE )
3573   ROM_REGION( 0x0005, "plds_600b", 0 )
32793574    ROM_LOAD( "pal20r4.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL20R4 located at A4. */
32803575    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at B1. */
32813576    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at B2. */
32823577    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at C2. */
32833578    ROM_LOAD( "pal16l8.bin",    0x00000, 0x0001, NO_DUMP ) /* PAL16L8 located at C3. */
32843579
3285   ROM_REGION( 0x0410, "plds_unk", ROMREGION_DISPOSE )
3580   ROM_REGION( 0x0410, "plds_unk", 0 )
32863581    /* Do any of these dumps match what's on the physical boards? */
32873582   ROM_LOAD( "pal16r4a.ic9",         0x0000, 0x0104, CRC(dd223015) SHA1(8d70f91b118e8653dda1efee3eaea287ae63809f) )
32883583   ROM_LOAD( "pal16r4a.ic10",        0x0104, 0x0104, CRC(2c9229b4) SHA1(9755013afcf89f99d7a399c7e223e027761cf89a) )
r4470r4471
32903585   ROM_LOAD( "pal16l8a-chopbl2.bin", 0x030c, 0x0104, CRC(afa7425d) SHA1(09d8607b69ecfc0b12c8610751d489500b63c7d6) )
32913586ROM_END
32923587
3293ROM_START( 4dwarrio )
3294   ROM_REGION( 0x10000, "maincpu", 0 )
3295   ROM_LOAD( "4d.116",       0x0000, 0x4000, CRC(546d1bc7) SHA1(724bb2f77a2b82fae85e535ae4a37820cfb323d0) ) /* encrypted */
3296   ROM_LOAD( "4d.109",       0x4000, 0x4000, CRC(f1074ec3) SHA1(bc368abeb6c0a7172e03bd7a1754cf4a6ecbb4f8) ) /* encrypted */
3297   ROM_LOAD( "4d.96",        0x8000, 0x4000, CRC(387c1e8f) SHA1(520ecbafd1c7271dad24410a68067dfd801fa6d6) )
32983588
3299   ROM_REGION( 0x10000, "soundcpu", 0 )
3300   ROM_LOAD( "4d.120",       0x0000, 0x2000, CRC(5241c009) SHA1(b7a21f95b63234f2496d5ea6e7dc8050ca1b39fc) )
3301
3302   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3303   ROM_LOAD( "4d.62",        0x0000, 0x2000, CRC(f31b2e09) SHA1(fdc288769495f4b0ca8c7594c9ab7dc0f29e57a4) )
3304   ROM_LOAD( "4d.61",        0x2000, 0x2000, CRC(5430e925) SHA1(55f92309223c41871175b1f54418c8b08339deb0) )
3305   ROM_LOAD( "4d.64",        0x4000, 0x2000, CRC(9f442351) SHA1(07076ef66e29c730050e38aecabdfbfced9f9bc4) )
3306   ROM_LOAD( "4d.63",        0x6000, 0x2000, CRC(633232bd) SHA1(c09c1df4f04608381d665a83776005607ad97ad4) )
3307   ROM_LOAD( "4d.66",        0x8000, 0x2000, CRC(52bfa2ed) SHA1(ea1c18d07957301f2006350b02fe40d13dbe2aa5) )
3308   ROM_LOAD( "4d.65",        0xa000, 0x2000, CRC(e9ba4658) SHA1(ba2581a52eb54e2d9f1e1bf30050280df3f5df1b) )
3309
3310   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3311   ROM_LOAD( "4d.117",       0x0000, 0x4000, CRC(436e4141) SHA1(2574d5c3b01c89d8a041c82af976147d3b87b36b) )
3312   ROM_LOAD( "4d.04",        0x4000, 0x4000, CRC(8b7cecef) SHA1(4851754cb56784ac248f699f0781646455dd556b) )
3313   ROM_LOAD( "4d.110",       0x8000, 0x4000, CRC(6ec5990a) SHA1(a26dbd470744c38a26a016e5d4792ac2f2b9bc4b) )
3314   ROM_LOAD( "4d.05",        0xc000, 0x4000, CRC(f31a1e6a) SHA1(f49dbc4b381e7096d5ffe3c16660dd63121dabf7) )
3315
3316   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3317   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3318ROM_END
3319
3320ROM_START( brain )
3321   ROM_REGION( 0x20000, "maincpu", 0 )
3322   ROM_LOAD( "brain.1",      0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) )
3323   ROM_LOAD( "brain.2",      0x10000, 0x8000, CRC(810a8ab5) SHA1(87cd39f5b1047f355e1d257c691ef11fc55824ca) )
3324   ROM_RELOAD(               0x08000, 0x8000 )   /* there's code falling through from 7fff */
3325                                    /* so I have to copy the ROM there */
3326   ROM_LOAD( "brain.3",      0x18000, 0x8000, CRC(9a225634) SHA1(9f137938592dd9c5ab2273864a11a682e0f7f783) )
3327
3328   ROM_REGION( 0x10000, "soundcpu", 0 )
3329   ROM_LOAD( "brain.120",    0x0000, 0x8000, CRC(c7e50278) SHA1(9709a59004c6bc39173d0cb94f3602c358367976) )
3330
3331   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3332   ROM_LOAD( "brain.62",     0x0000, 0x4000, CRC(7dce2302) SHA1(ebf15da3aea36f6a831a5395b0e5fc253852a3ee) )
3333   ROM_LOAD( "brain.64",     0x4000, 0x4000, CRC(7ce03fd3) SHA1(11f037c75d606276cbf4ec76a2cfdde94a756493) )
3334   ROM_LOAD( "brain.66",     0x8000, 0x4000, CRC(ea54323f) SHA1(08a4d2543a75a1fbb6ef2c126e3aeb4945bf458f) )
3335
3336   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3337   ROM_LOAD( "brain.117",    0x00000, 0x8000, CRC(92ff71a4) SHA1(856646c595e0ef7bbcf18844ee34b04e05893ffa) )
3338   ROM_LOAD( "brain.110",    0x08000, 0x8000, CRC(a1b847ec) SHA1(d71664822b9b863bd2a37da71b4e0850893b9876) )
3339   ROM_LOAD( "brain.4",      0x10000, 0x8000, CRC(fd2ea53b) SHA1(c7f2d267f19d2c27a550120e003ebfcb10d8af89) )
3340   /* 18000-1ffff empty */
3341
3342   ROM_REGION( 0x0400, "proms", 0 )
3343   ROM_LOAD( "bprom.3",      0x0000, 0x0100, BAD_DUMP CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed)  ) /* palette red component */
3344   ROM_LOAD( "bprom.2",      0x0100, 0x0100, BAD_DUMP CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76)  ) /* palette green component */
3345   ROM_LOAD( "bprom.1",      0x0200, 0x0100, BAD_DUMP CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d)  ) /* palette blue component */
3346   ROM_LOAD( "pr5317.76",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3347ROM_END
3348
33493589ROM_START( raflesia )
33503590   ROM_REGION( 0x10000, "maincpu", 0 )
33513591   ROM_LOAD( "epr-7411.116",   0x0000, 0x4000, CRC(88a0c6c6) SHA1(1deaa8d8d607100966696e5e9dd5f799ba693af0) ) /* encrypted */
r4470r4471
33553595   ROM_REGION( 0x10000, "soundcpu", 0 )
33563596   ROM_LOAD( "epr-7420.120",   0x0000, 0x2000, CRC(14387666) SHA1(9cb18e3002c32f658e4725707069f9cd2f496507) ) /* epr-7420.3 */
33573597
3358   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3598   ROM_REGION( 0xc000, "tiles", 0 )
33593599   ROM_LOAD( "epr-7419.62",   0x0000, 0x2000, CRC(bfd5f34c) SHA1(78c4d380d5558212e535c3262223137447d64818) ) /* epr-7419.82 */
33603600   ROM_LOAD( "epr-7418.61",   0x2000, 0x2000, CRC(f8cbc9b6) SHA1(48be9337f704a11ac1fdeb64a3b3518c796bcdd0) ) /* epr-7418.65 */
33613601   ROM_LOAD( "epr-7417.64",   0x4000, 0x2000, CRC(e63501bc) SHA1(5cfd19241c54782c262bbb23c6f682534e77feb7) ) /* epr-7417.81 */
r4470r4471
33633603   ROM_LOAD( "epr-7415.66",   0x8000, 0x2000, CRC(1a8d6bd6) SHA1(b04ee35f603c6c9923ba888914eb43a8b7753d92) ) /* epr-7415.80 */
33643604   ROM_LOAD( "epr-7414.65",   0xa000, 0x2000, CRC(5d20f218) SHA1(bdc0185d133f7bbe287106882bacde846634ffa4) ) /* epr-7414.63 */
33653605
3366   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3606   ROM_REGION( 0x10000, "sprites", 0 )
33673607   ROM_LOAD( "epr-7407.117",   0x0000, 0x4000, CRC(f09fc057) SHA1(c6f06144b708055b31fbcba9f38b63736db789d8) ) /* epr-7407.3 */
33683608   ROM_LOAD( "epr-7409.04",   0x4000, 0x4000, CRC(819fedb8) SHA1(e63f0422814423be91d8e1937a13d19693a1a5fc) ) /* epr-7409.1 */
33693609   ROM_LOAD( "epr-7408.110",   0x8000, 0x4000, CRC(3189f33c) SHA1(8476c2c01920f0492cf643929d4f023f3afe0164) ) /* epr-7408.4 */
33703610   ROM_LOAD( "epr-7410.05",   0xc000, 0x4000, CRC(ced74789) SHA1(d0ad845bfe83412ac8d43125e1c50d0581a5b47e) ) /* epr-7410.2 */
33713611
3372   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3612   ROM_REGION( 0x0100, "proms", 0 )
33733613   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
33743614                                              /* pr-5317.106 */
33753615ROM_END
33763616
3377ROM_START( spatter )
3378   ROM_REGION( 0x10000, "maincpu", 0 )
3379   ROM_LOAD( "epr-6392.116",   0x0000, 0x4000, CRC(329b4506) SHA1(8f71ffc3015c4fcf84a895bf53760830602f1040) ) /* encrypted */
3380   ROM_LOAD( "epr-6393.109",   0x4000, 0x4000, CRC(3b56e25f) SHA1(23f26f8632c8a370b5b3b7a3ec58f359cdf04f73) ) /* encrypted */
3381   ROM_LOAD( "epr-6394.96",   0x8000, 0x4000, CRC(647c1301) SHA1(5142abfcc63772fd1b47eb584ccda0bc3830e337) )
33823617
3383   ROM_REGION( 0x10000, "soundcpu", 0 )
3384   ROM_LOAD( "epr-6316.120",   0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) )
3385
3386   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3387   ROM_LOAD( "epr-6328.62",   0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) )
3388   ROM_LOAD( "epr-6397.61",   0x2000, 0x2000, CRC(c60d4471) SHA1(9e8130d575fa342485dfe093e086a4b48e51b904) )
3389   ROM_LOAD( "epr-6326.64",   0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) )
3390   ROM_LOAD( "epr-6396.63",   0x6000, 0x2000, CRC(c15ccf3b) SHA1(14809ab81816eedb85cacda042e437d48cf9b31a) )
3391   ROM_LOAD( "epr-6324.66",   0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) )
3392   ROM_LOAD( "epr-6395.65",   0xa000, 0x2000, CRC(3f083065) SHA1(cb17c8c2fe04baa58863c10cd8f359a58def3417) )
3393
3394   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3395   ROM_LOAD( "epr-6306.04",   0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) )
3396   ROM_LOAD( "epr-6308.117",   0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) )
3397   ROM_LOAD( "epr-6307.05",   0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) )
3398   ROM_LOAD( "epr-6309.110",   0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) )
3399
3400   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3401   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3402                                              /* pr-5317.106 */
3403ROM_END
3404
3405ROM_START( ssanchan )
3406   ROM_REGION( 0x10000, "maincpu", 0 )
3407   ROM_LOAD( "epr-6310.116",   0x0000, 0x4000, CRC(26b43701) SHA1(e041bde10da12a3f698da09220f0a7cc2ee99abe) ) /* encrypted */
3408   ROM_LOAD( "epr-6311.109",   0x4000, 0x4000, CRC(cb2bc620) SHA1(ecc69360ad9fcc825b35955fbc29da9ea28b8846) ) /* encrypted */
3409   ROM_LOAD( "epr-6312.96",   0x8000, 0x4000, CRC(71b15b47) SHA1(7c955be049f9a8d7ca18d877183b698dd5ffe4da) )
3410
3411   ROM_REGION( 0x10000, "soundcpu", 0 )
3412   ROM_LOAD( "epr-6316.120",   0x0000, 0x2000, CRC(1df95511) SHA1(5780631c8c5a2c3fcd4085f217affa660d72a4e9) )
3413
3414   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3415   ROM_LOAD( "epr-6328.62",   0x0000, 0x2000, CRC(a2bf2832) SHA1(5d7047a6a0c0588a4e98b6ce94d5fd0e6ab963f9) )
3416   ROM_LOAD( "epr-6327.61",   0x2000, 0x2000, CRC(53298109) SHA1(75fd37034aee78d63939d8b4f584c1dc1042264b) )
3417   ROM_LOAD( "epr-6326.64",   0x4000, 0x2000, CRC(269fbb4c) SHA1(7b91f551360698195bf9ce8e32dd2e8fa17e9db8) )
3418   ROM_LOAD( "epr-6325.63",   0x6000, 0x2000, CRC(bf038745) SHA1(2fda2412f76b8971ba543ec10da07d4b0d1f2006) )
3419   ROM_LOAD( "epr-6324.66",   0x8000, 0x2000, CRC(8ab3b563) SHA1(6ede93b9f1593dbcbabd6c875bac8ec01a1b40a2) )
3420   ROM_LOAD( "epr-6323.65",   0xa000, 0x2000, CRC(0394673c) SHA1(fbee6a5cb37d0394db95781b9f165d766546eb33) )
3421
3422   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3423   ROM_LOAD( "epr-6306.04",   0x0000, 0x4000, CRC(e871e132) SHA1(55f7ab1a8c9a118911c64930452ea05f6ee37fc4) )
3424   ROM_LOAD( "epr-6308.117",   0x4000, 0x4000, CRC(99c2d90e) SHA1(5be54d931622892b7acc320e714d5b1cdce02d19) )
3425   ROM_LOAD( "epr-6307.05",   0x8000, 0x4000, CRC(0a5ad543) SHA1(5acada30c1affc4ffbebc8365a9ba4465f213d47) )
3426   ROM_LOAD( "epr-6309.110",   0xc000, 0x4000, CRC(7423ad98) SHA1(e19b4c64795f30e1491520160d315e4148d58df2) )
3427
3428   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3429   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3430                                              /* pr-5317.106 */
3431ROM_END
3432
34333618ROM_START( wboy )
34343619   ROM_REGION( 0x10000, "maincpu", 0 )
34353620   ROM_LOAD( "epr-7489.116",   0x0000, 0x4000, CRC(130f4b70) SHA1(4a2ea5bc06f3a240c68813be3a9f9bef2bcf4e9c) ) /* encrypted */
r4470r4471
34393624   ROM_REGION( 0x10000, "soundcpu", 0 )
34403625   ROM_LOAD( "epr-7498.120",   0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) )
34413626
3442   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3627   ROM_REGION( 0xc000, "tiles", 0 )
34433628   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) )
34443629   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) )
34453630   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) )
r4470r4471
34473632   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) )
34483633   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) )
34493634
3450   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3635   ROM_REGION( 0x10000, "sprites", 0 )
34513636   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) )
34523637   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) )
34533638   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) )
34543639   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) )
34553640
3456   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3641   ROM_REGION( 0x0100, "proms", 0 )
34573642   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
34583643ROM_END
34593644
r4470r4471
34663651   ROM_REGION( 0x10000, "soundcpu", 0 )
34673652   ROM_LOAD( "epr-7498.120",   0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) )
34683653
3469   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3654   ROM_REGION( 0xc000, "tiles", 0 )
34703655   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) )
34713656   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) )
34723657   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) )
r4470r4471
34743659   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) )
34753660   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) )
34763661
3477   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3662   ROM_REGION( 0x10000, "sprites", 0 )
34783663   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) )
34793664   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) )
34803665   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) )
34813666   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) )
34823667
3483   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3668   ROM_REGION( 0x0100, "proms", 0 )
34843669   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
34853670ROM_END
34863671
r4470r4471
34963681   ROM_REGION( 0x10000, "soundcpu", 0 )
34973682   ROM_LOAD( "epr-7498.120",   0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) ) /* epr-7498.3 */
34983683
3499   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3684   ROM_REGION( 0xc000, "tiles", 0 )
35003685   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */
35013686   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */
35023687   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */
r4470r4471
35043689   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */
35053690   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */
35063691
3507   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3692   ROM_REGION( 0x10000, "sprites", 0 )
35083693   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */
35093694   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */
35103695   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */
35113696   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */
35123697
3513   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3698   ROM_REGION( 0x0100, "proms", 0 )
35143699   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
35153700                                              /* pr-5317.106 */
35163701ROM_END
r4470r4471
35273712   ROM_REGION( 0x10000, "soundcpu", 0 )
35283713   ROM_LOAD( "epr7498a.3",      0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) )
35293714
3530   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3715   ROM_REGION( 0xc000, "tiles", 0 )
35313716   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */
35323717   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */
35333718   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */
r4470r4471
35353720   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */
35363721   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */
35373722
3538   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3723   ROM_REGION( 0x10000, "sprites", 0 )
35393724   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */
35403725   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */
35413726   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */
35423727   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */
35433728
3544   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3729   ROM_REGION( 0x0100, "proms", 0 )
35453730   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
35463731                                              /* pr-5317.106 */
35473732ROM_END
r4470r4471
35553740   ROM_REGION( 0x10000, "soundcpu", 0 )
35563741   ROM_LOAD( "epr-7498.120",   0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) )
35573742
3558   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3743   ROM_REGION( 0xc000, "tiles", 0 )
35593744   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) )
35603745   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) )
35613746   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) )
r4470r4471
35633748   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) )
35643749   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) )
35653750
3566   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3751   ROM_REGION( 0x10000, "sprites", 0 )
35673752   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) )
35683753   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) )
35693754   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) )
35703755   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) )
35713756
3572   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3757   ROM_REGION( 0x0100, "proms", 0 )
35733758   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
35743759ROM_END
35753760
r4470r4471
35943779   ROM_REGION( 0x10000, "soundcpu", 0 )
35953780   ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) )   // epr7583.ic120
35963781
3597   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3782   ROM_REGION( 0xc000, "tiles", 0 )
35983783   ROM_LOAD( "epr7610.ic62",   0x0000, 0x4000, CRC(1685d26a) SHA1(d30d08d61d789fd5a0eb7ef2998eb9728dabf4c9) )
35993784   ROM_LOAD( "epr7609.ic64",   0x4000, 0x4000, CRC(87ecba53) SHA1(b904d5af25e0c1f8c8ca8dc11a3bed508c868f19) )
36003785   ROM_LOAD( "epr7608.ic66",   0x8000, 0x4000, CRC(e812b3ec) SHA1(3eebeaf3480a0370aa5ee031c25768ada17ad8a2) )
36013786
3602   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3787   ROM_REGION( 0x10000, "sprites", 0 )
36033788   ROM_LOAD( "7578.87",  0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) )   // epr7577.ic110
36043789   ROM_LOAD( "7577.86",  0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) )   // epr7576.ic117
36053790
3606   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3791   ROM_REGION( 0x0100, "proms", 0 )
36073792   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
36083793ROM_END
36093794
r4470r4471
36163801   ROM_REGION( 0x10000, "soundcpu", 0 )
36173802   ROM_LOAD( "epr-7498.120",   0x0000, 0x2000, CRC(78ae1e7b) SHA1(86032f443359b0bb2766e33024ed2e320aa9bc84) )
36183803
3619   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3804   ROM_REGION( 0xc000, "tiles", 0 )
36203805   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */
36213806   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */
36223807   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */
r4470r4471
36243809   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */
36253810   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */
36263811
3627   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3812   ROM_REGION( 0x10000, "sprites", 0 )
36283813   ROM_LOAD( "ic117_85.bin",   0x0000, 0x4000, CRC(1ee96ae8) SHA1(4e69b87e919894b961477e6cc5272f448495d847) )
36293814   ROM_LOAD( "ic004_87.bin",   0x4000, 0x4000, CRC(119735bb) SHA1(001efa55d7fbcd2fdb6da17b136f295e5ea4a4c2) )
36303815   ROM_LOAD( "ic110_86.bin",   0x8000, 0x4000, CRC(26d0fac4) SHA1(2e6a06f6850b2d19e3dd7dcdc6b700d0eda878cb) )
36313816   ROM_LOAD( "ic005_88.bin",   0xc000, 0x4000, CRC(2602e519) SHA1(00e94ec7ae37b5063137d4d49af7806fb0357c4b) )
36323817
3633   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3818   ROM_REGION( 0x0100, "proms", 0 )
36343819   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
36353820ROM_END
36363821
r4470r4471
36423827   ROM_REGION( 0x10000, "soundcpu", 0 )
36433828   ROM_LOAD( "7583.126", 0x0000, 0x8000, CRC(99334b3c) SHA1(dfc09f63082b7666fa2152e22810c0455a7e5051) )
36443829
3645   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3830   ROM_REGION( 0x18000, "tiles", 0 )
36463831   ROM_LOAD( "7581.4",   0x00000, 0x8000, CRC(d95565fd) SHA1(25f1653cca1d6432171a7b391cbb76bc18ddfb06) )
36473832   ROM_LOAD( "7582.5",   0x08000, 0x8000, CRC(560cbac0) SHA1(851283e6d63e33d250840501dd22750b19772fb0) )
36483833   ROM_LOAD( "7607.6",   0x10000, 0x8000, CRC(bd36df03) SHA1(7f7efac2c71fae48dd1dcb4dcc849f07e8127f7d) )
36493834
3650   ROM_REGION( 0x10000, "gfx2", 0 ) /* 128k for sprites data */
3835   ROM_REGION( 0x10000, "sprites", 0 )
36513836   ROM_LOAD( "7578.87",  0x00000, 0x8000, CRC(6ff1637f) SHA1(9a6ddbd7b8d53273b30c3529b028c1f28bf3c63b) )
36523837   ROM_LOAD( "7577.86",  0x08000, 0x8000, CRC(58b3705e) SHA1(1a8ff3f1765a3b21145bd1a6c85441f806f7b17d) )
36533838
3654   ROM_REGION( 0x0400, "proms", 0 )
3839   ROM_REGION( 0x0300, "palette", 0 )
36553840   ROM_LOAD( "pr-7345.20",      0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
36563841   ROM_LOAD( "pr-7344.14",      0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
36573842   ROM_LOAD( "pr-7343.8",      0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
3658   ROM_LOAD( "pr-5317.28",     0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3843
3844   ROM_REGION( 0x0100, "proms", 0 )
3845   ROM_LOAD( "pr-5317.28",     0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
36593846ROM_END
36603847
36613848ROM_START( wbdeluxe )
r4470r4471
36703857   ROM_REGION( 0x10000, "soundcpu", 0 )
36713858   ROM_LOAD( "epr7498a.3",      0x0000, 0x2000, CRC(c198205c) SHA1(d2d5cd154ce6a5a3c6a099b4ab2ea7cc045ab0a1) )
36723859
3673   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3860   ROM_REGION( 0xc000, "tiles", 0 )
36743861   ROM_LOAD( "epr-7497.62",   0x0000, 0x2000, CRC(08d609ca) SHA1(11799e9ef7e6942b304f132b404bff3ed44d524b) ) /* epr-7497.82 */
36753862   ROM_LOAD( "epr-7496.61",   0x2000, 0x2000, CRC(6f61fdf1) SHA1(21826aebf5835b9f3d9c467c8647809c1bc0d01f) ) /* epr-7496.65 */
36763863   ROM_LOAD( "epr-7495.64",   0x4000, 0x2000, CRC(6a0d2c2d) SHA1(8c21d7f0768e8dda2b7185f3c510cae4229a4a2e) ) /* epr-7495.81 */
r4470r4471
36783865   ROM_LOAD( "epr-7493.66",   0x8000, 0x2000, CRC(89305df4) SHA1(7a5098624769a31e7512f56831e818bce6a18871) ) /* epr-7493.80 */
36793866   ROM_LOAD( "epr-7492.65",   0xa000, 0x2000, CRC(60f806b1) SHA1(f91e5868a455dff2bce3c2891a7cfd648957cd73) ) /* epr-7492.63 */
36803867
3681   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3868   ROM_REGION( 0x10000, "sprites", 0 )
36823869   ROM_LOAD( "epr-7485.117",   0x0000, 0x4000, CRC(c2891722) SHA1(e4e11c0e9bd0dc121c25349493f2b13d2ff8c807) ) /* epr-7485.3 */
36833870   ROM_LOAD( "epr-7487.04",   0x4000, 0x4000, CRC(2d3a421b) SHA1(d70440a8703ccface3212cd9544c950b36263e8c) ) /* epr-7487.1 */
36843871   ROM_LOAD( "epr-7486.110",   0x8000, 0x4000, CRC(8d622c50) SHA1(9a76a50204c618347d3e8eee6cda841becd906eb) ) /* epr-7486.4 */
36853872   ROM_LOAD( "epr-7488.05",   0xc000, 0x4000, CRC(007c2f1b) SHA1(c2f1376144a49d20cb35384648e06d06978474c1) ) /* epr-7488.2 */
36863873
3687   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3874   ROM_REGION( 0x0100, "proms", 0 )
36883875   ROM_LOAD( "pr-5317.76",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
36893876                                              /* pr-5317.106 */
36903877ROM_END
36913878
3879
36923880ROM_START( gardia )
36933881   ROM_REGION( 0x20000, "maincpu", 0 )
36943882   ROM_LOAD( "epr10255.1",   0x00000, 0x8000, CRC(89282a6b) SHA1(f19e345e5fae6a518276cc1bd09d1e2083672b25) ) /* encrypted */
r4470r4471
36983886   ROM_REGION( 0x10000, "soundcpu", 0 )
36993887   ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) )
37003888
3701   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3889   ROM_REGION( 0xc000, "tiles", 0 )
37023890   ROM_LOAD( "epr10249.61",  0x0000, 0x4000, CRC(4e0ad0f2) SHA1(b76c155b674f3ad8938278d5dbb0452351c716a5) )
37033891   ROM_LOAD( "epr10248.64",  0x4000, 0x4000, CRC(3515d124) SHA1(39b28a103d8bfe702a376ebd880d6060e3d1ab30) )
37043892   ROM_LOAD( "epr10247.66",  0x8000, 0x4000, CRC(541e1555) SHA1(6660204c74a9f7e63b3ba08d99fb854aa863710e) )
37053893
3706   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3894   ROM_REGION( 0x20000, "sprites", 0 )
37073895   ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) )
37083896   ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) )
37093897   ROM_LOAD( "epr10236.04",  0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) )
37103898   ROM_LOAD( "epr10235.5",   0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) )
37113899
3712   ROM_REGION( 0x0400, "proms", 0 )
3900   ROM_REGION( 0x0300, "palette", 0 )
37133901   ROM_LOAD( "bprom.3",      0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
37143902   ROM_LOAD( "bprom.2",      0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
37153903   ROM_LOAD( "bprom.1",      0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
3716   ROM_LOAD( "pr5317.4",     0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3904
3905   ROM_REGION( 0x0100, "proms", 0 )
3906   ROM_LOAD( "pr5317.4",     0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
37173907ROM_END
37183908
37193909ROM_START( gardiab )
r4470r4471
37253915   ROM_REGION( 0x10000, "soundcpu", 0 )
37263916   ROM_LOAD( "epr10243.120", 0x0000, 0x4000, CRC(87220660) SHA1(3f2bfc03e0f1053a4aa0ec5ebb0d573f2e20964c) )
37273917
3728   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3918   ROM_REGION( 0xc000, "tiles", 0 )
37293919   ROM_LOAD( "gardiabl.8",   0x0000, 0x4000, CRC(367c9a17) SHA1(bde7592ce94bbc6674c04b427c52e74207066f56) )
37303920   ROM_LOAD( "gardiabl.9",   0x4000, 0x4000, CRC(1540fd30) SHA1(e2d134e0715231a428fd112be81493a0e2a2642f) )
37313921   ROM_LOAD( "gardiabl.10",  0x8000, 0x4000, CRC(e5c9af10) SHA1(6bff5bbc0f339e84a8e31446dc9897c02600fbcf) )
37323922
3733   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3923   ROM_REGION( 0x20000, "sprites", 0 )
37343924   ROM_LOAD( "epr10234.117", 0x00000, 0x8000, CRC(8a6aed33) SHA1(044836885ace8294124b1be9b3a4828f772bb9ee) )
37353925   ROM_LOAD( "epr10233.110", 0x08000, 0x8000, CRC(c52784d3) SHA1(b37d7f261be12616dbe11dfa375eaf6878e4a0f3) )
37363926   ROM_LOAD( "epr10236.04",  0x10000, 0x8000, CRC(b35ab227) SHA1(616f6097afddffa9af89fe84d8b6df59c567c1e6) )
37373927   ROM_LOAD( "epr10235.5",   0x18000, 0x8000, CRC(006a3151) SHA1(a575f9d5c026e6b18e990720ec7520b6b5ae94e3) )
37383928
3739   ROM_REGION( 0x0400, "proms", 0 )
3929   ROM_REGION( 0x0300, "palette", 0 )
37403930   ROM_LOAD( "bprom.3",      0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
37413931   ROM_LOAD( "bprom.2",      0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
37423932   ROM_LOAD( "bprom.1",      0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
3743   ROM_LOAD( "pr5317.4",     0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3933
3934   ROM_REGION( 0x0100, "proms", 0 )
3935   ROM_LOAD( "pr5317.4",     0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
37443936ROM_END
37453937
3746ROM_START( blockgal )
3747   ROM_REGION( 0x10000, "maincpu", 0 )
3748   ROM_LOAD( "bg.116",       0x0000, 0x4000, CRC(a99b231a) SHA1(42ba45a4fd315255e9500bc3a0e8fe653c4c5a9c) ) /* encrypted */
3749   ROM_LOAD( "bg.109",       0x4000, 0x4000, CRC(a6b573d5) SHA1(33547a3895bbe65d5a6c40453eeb93e1fedad6de) ) /* encrypted */
3750   /* 0x8000-0xbfff empty (was same as My Hero) */
37513938
3752   ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
3753   ROM_LOAD( "317-0029.key",  0x0000, 0x2000, CRC(350d7f93) SHA1(7ef12d63b2c7150f8e74f65ec8340471d72b1c03) )
3939ROM_START( brain )
3940   ROM_REGION( 0x20000, "maincpu", 0 )
3941   ROM_LOAD( "brain.1",      0x00000, 0x8000, CRC(2d2aec31) SHA1(02dfbb0e9ca01b864e3aa594cf38306fe82a4b5d) )
3942   ROM_LOAD( "brain.2",      0x10000, 0x8000, CRC(810a8ab5) SHA1(87cd39f5b1047f355e1d257c691ef11fc55824ca) )
3943   ROM_RELOAD(               0x08000, 0x8000 )   /* there's code falling through from 7fff */
3944                                    /* so I have to copy the ROM there */
3945   ROM_LOAD( "brain.3",      0x18000, 0x8000, CRC(9a225634) SHA1(9f137938592dd9c5ab2273864a11a682e0f7f783) )
37543946
37553947   ROM_REGION( 0x10000, "soundcpu", 0 )
3756   ROM_LOAD( "bg.120",       0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) )
3948   ROM_LOAD( "brain.120",    0x0000, 0x8000, CRC(c7e50278) SHA1(9709a59004c6bc39173d0cb94f3602c358367976) )
37573949
3758   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3759   ROM_LOAD( "bg.62",        0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) )
3760   ROM_LOAD( "bg.61",        0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) )
3761   ROM_LOAD( "bg.64",        0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) )
3762   ROM_LOAD( "bg.63",        0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) )
3763   ROM_LOAD( "bg.66",        0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) )
3764   ROM_LOAD( "bg.65",        0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) )
3950   ROM_REGION( 0xc000, "tiles", 0 )
3951   ROM_LOAD( "brain.62",     0x0000, 0x4000, CRC(7dce2302) SHA1(ebf15da3aea36f6a831a5395b0e5fc253852a3ee) )
3952   ROM_LOAD( "brain.64",     0x4000, 0x4000, CRC(7ce03fd3) SHA1(11f037c75d606276cbf4ec76a2cfdde94a756493) )
3953   ROM_LOAD( "brain.66",     0x8000, 0x4000, CRC(ea54323f) SHA1(08a4d2543a75a1fbb6ef2c126e3aeb4945bf458f) )
37653954
3766   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3767   ROM_LOAD( "bg.117",       0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) )
3768   ROM_LOAD( "bg.04",        0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) )
3769   ROM_LOAD( "bg.110",       0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) )
3770   ROM_LOAD( "bg.05",        0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) )
3955   ROM_REGION( 0x20000, "sprites", 0 )
3956   ROM_LOAD( "brain.117",    0x00000, 0x8000, CRC(92ff71a4) SHA1(856646c595e0ef7bbcf18844ee34b04e05893ffa) )
3957   ROM_LOAD( "brain.110",    0x08000, 0x8000, CRC(a1b847ec) SHA1(d71664822b9b863bd2a37da71b4e0850893b9876) )
3958   ROM_LOAD( "brain.4",      0x10000, 0x8000, CRC(fd2ea53b) SHA1(c7f2d267f19d2c27a550120e003ebfcb10d8af89) )
3959   /* 18000-1ffff empty */
37713960
3772   ROM_REGION( 0x0100, "user2", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3961   ROM_REGION( 0x0300, "palette", 0 )
3962   ROM_LOAD( "bprom.3",      0x0000, 0x0100, BAD_DUMP CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed)  ) /* palette red component */
3963   ROM_LOAD( "bprom.2",      0x0100, 0x0100, BAD_DUMP CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76)  ) /* palette green component */
3964   ROM_LOAD( "bprom.1",      0x0200, 0x0100, BAD_DUMP CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d)  ) /* palette blue component */
3965
3966   ROM_REGION( 0x0100, "proms", 0 )
37733967   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
37743968ROM_END
37753969
3776ROM_START( blckgalb )
3777   ROM_REGION( 0x18000, "maincpu", 0 )
3778   ROM_LOAD( "ic62",         0x10000, 0x8000, CRC(65c47676) SHA1(bc283761e6f9ebf65fb405b1c8922c3c98c8d00e) ) /* decrypted opcodes */
3779   ROM_CONTINUE(             0x00000, 0x8000 )             /* decrypted data */
37803970
3781   ROM_REGION( 0x10000, "soundcpu", 0 )
3782   ROM_LOAD( "bg.120",       0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) )
3783
3784   ROM_REGION( 0xc000, "gfx1", ROMREGION_DISPOSE )
3785   ROM_LOAD( "bg.62",        0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) )
3786   ROM_LOAD( "bg.61",        0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) )
3787   ROM_LOAD( "bg.64",        0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) )
3788   ROM_LOAD( "bg.63",        0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) )
3789   ROM_LOAD( "bg.66",        0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) )
3790   ROM_LOAD( "bg.65",        0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) )
3791
3792   ROM_REGION( 0x10000, "gfx2", 0 ) /* 64k for sprites data */
3793   ROM_LOAD( "bg.117",       0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) )
3794   ROM_LOAD( "bg.04",        0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) )
3795   ROM_LOAD( "bg.110",       0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) )
3796   ROM_LOAD( "bg.05",        0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) )
3797
3798   ROM_REGION( 0x0100, "user1", 0 ) /* misc PROMs, but not color so don't use "proms"! */
3799   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3800ROM_END
3801
38023971ROM_START( tokisens )
38033972   ROM_REGION( 0x20000, "maincpu", 0 )
38043973   ROM_LOAD( "epr10961.90",  0x00000, 0x8000, CRC(1466b61d) SHA1(99f93813834d3a7c9f6228076d400f74d9b6dea9) )
r4470r4471
38083977   ROM_REGION( 0x10000, "soundcpu", 0 )
38093978   ROM_LOAD( "epr10967.126", 0x0000, 0x8000, CRC(97966bf2) SHA1(b5a3d36afbb3d6e2e2e2c121609a30dc080ccf13) )
38103979
3811   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
3980   ROM_REGION( 0x18000, "tiles", 0 )
38123981   ROM_LOAD( "epr10964.4",   0x00000, 0x8000, CRC(9013b85c) SHA1(c27322245052ffc9d840fe683ed35965c61bf9e8) )
38133982   ROM_LOAD( "epr10965.5",   0x08000, 0x8000, CRC(e4755cc6) SHA1(33370d556a70e19edce5e0c7fa8b11453ccbe91b) )
38143983   ROM_LOAD( "epr10966.6",   0x10000, 0x8000, CRC(5bbfbdcc) SHA1(e7e679da874a79dfdda0be58d1352c192635296d) )
38153984
3816   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
3985   ROM_REGION( 0x20000, "sprites", 0 )
38173986   ROM_LOAD( "epr10958.87",  0x00000, 0x8000, CRC(fc2bcbd7) SHA1(6b9007f2057e4c860ecae4ba5db4e02b8aaae8fd) )
38183987   ROM_LOAD( "epr10957.86",  0x08000, 0x8000, CRC(4ec56860) SHA1(9fd6ba8a68b4cb98183e8ac8643656c251f1c72d) )
38193988   ROM_LOAD( "epr10960.89",  0x10000, 0x8000, CRC(880e0d44) SHA1(2b2dc144807d1d048ffe81bfd33a77ccf618dd3e) )
38203989   ROM_LOAD( "epr10959.88",  0x18000, 0x8000, CRC(4deda48f) SHA1(12db2a69286f22cd8243be6faa9a075fafec1dfd) )
38213990
3822   ROM_REGION( 0x0400, "proms", 0 )
3991   ROM_REGION( 0x0300, "palette", 0 )
38233992   ROM_LOAD( "bprom.20",      0x0000, 0x0100, CRC(8eee0f72) SHA1(b5694c120f604a5f7cc95618a71ab16a1a6151ed) ) /* palette red component */
38243993   ROM_LOAD( "bprom.14",      0x0100, 0x0100, CRC(3e7babd7) SHA1(d4f8790db4dce75e27156a4c6de2dcef2baf6d76) ) /* palette green component */
38253994   ROM_LOAD( "bprom.8",       0x0200, 0x0100, CRC(371c44a6) SHA1(ac37458d1feb6566b09a795b20c21953d4ab109d) ) /* palette blue component */
3826   ROM_LOAD( "bprom.28",      0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
3995
3996   ROM_REGION( 0x0100, "proms", 0 )
3997   ROM_LOAD( "bprom.28",      0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
38273998ROM_END
38283999
4000
38294001ROM_START( wbml )
38304002   ROM_REGION( 0x20000, "maincpu", 0 )
38314003   ROM_LOAD( "ep11031a.90",  0x00000, 0x8000, CRC(bd3349e5) SHA1(65cc16e5d3b08429388946df254b8122ad1da339) ) /* encrypted */
38324004   ROM_LOAD( "epr11032.91",  0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */
38334005   ROM_LOAD( "epr11033.92",  0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */
38344006
3835   ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
4007   ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */
38364008   ROM_LOAD( "317-0043.key",  0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) )
38374009
38384010   ROM_REGION( 0x10000, "soundcpu", 0 )
38394011   ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
38404012
3841   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4013   ROM_REGION( 0x18000, "tiles", 0 )
38424014   ROM_LOAD( "epr11034.4",   0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) )
38434015   ROM_LOAD( "epr11035.5",   0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) )
38444016   ROM_LOAD( "epr11036.6",   0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) )
38454017
3846   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4018   ROM_REGION( 0x20000, "sprites", 0 )
38474019   ROM_LOAD( "epr11028.87",  0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
38484020   ROM_LOAD( "epr11027.86",  0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
38494021   ROM_LOAD( "epr11030.89",  0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
38504022   ROM_LOAD( "epr11029.88",  0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
38514023
3852   ROM_REGION( 0x0400, "proms", 0 )
4024   ROM_REGION( 0x0300, "palette", 0 )
38534025   ROM_LOAD( "pr11026.20",   0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
38544026   ROM_LOAD( "pr11025.14",   0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
38554027   ROM_LOAD( "pr11024.8",    0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
3856   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4028
4029   ROM_REGION( 0x0100, "proms", 0 )
4030   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
38574031ROM_END
38584032
38594033ROM_START( wbmljo )
r4470r4471
38624036   ROM_LOAD( "epr11032.91",  0x10000, 0x8000, CRC(9d03bdb2) SHA1(7dbab23e7c7972d9b51a0d3d046374720b7d6af5) ) /* encrypted */
38634037   ROM_LOAD( "epr11033.92",  0x18000, 0x8000, CRC(7076905c) SHA1(562fbd9bd60851f7e4e60b725193395b4f193479) ) /* encrypted */
38644038
3865   ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
4039   ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */
38664040   ROM_LOAD( "317-0043.key",  0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) )
38674041
38684042   ROM_REGION( 0x10000, "soundcpu", 0 )
38694043   ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
38704044
3871   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4045   ROM_REGION( 0x18000, "tiles", 0 )
38724046   ROM_LOAD( "epr11034.4",   0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) )
38734047   ROM_LOAD( "epr11035.5",   0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) )
38744048   ROM_LOAD( "epr11036.6",   0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) )
38754049
3876   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4050   ROM_REGION( 0x20000, "sprites", 0 )
38774051   ROM_LOAD( "epr11028.87",  0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
38784052   ROM_LOAD( "epr11027.86",  0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
38794053   ROM_LOAD( "epr11030.89",  0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
38804054   ROM_LOAD( "epr11029.88",  0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
38814055
3882   ROM_REGION( 0x0400, "proms", 0 )
4056   ROM_REGION( 0x0300, "palette", 0 )
38834057   ROM_LOAD( "pr11026.20",   0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
38844058   ROM_LOAD( "pr11025.14",   0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
38854059   ROM_LOAD( "pr11024.8",    0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
3886   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4060
4061   ROM_REGION( 0x0100, "proms", 0 )
4062   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
38874063ROM_END
38884064
38894065ROM_START( wbmljb )
r4470r4471
38984074   ROM_REGION( 0x10000, "soundcpu", 0 )
38994075   ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
39004076
3901   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4077   ROM_REGION( 0x18000, "tiles", 0 )
39024078   ROM_LOAD( "epr11034.4",   0x00000, 0x8000, CRC(37a2077d) SHA1(57f032a98022bf03ff98cb2e563178ba97e4b63c) )
39034079   ROM_LOAD( "epr11035.5",   0x08000, 0x8000, CRC(cdf2a21b) SHA1(db2553866f21e03bd9d668c179be3352adbaf8a6) )
39044080   ROM_LOAD( "epr11036.6",   0x10000, 0x8000, CRC(644687fa) SHA1(d6c5bc95da4fc7e81091dcfe6205b6f47d54af76) )
39054081
3906   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4082   ROM_REGION( 0x20000, "sprites", 0 )
39074083   ROM_LOAD( "epr11028.87",  0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
39084084   ROM_LOAD( "epr11027.86",  0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
39094085   ROM_LOAD( "epr11030.89",  0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
39104086   ROM_LOAD( "epr11029.88",  0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
39114087
3912   ROM_REGION( 0x0400, "proms", 0 )
4088   ROM_REGION( 0x0300, "palette", 0 )
39134089   ROM_LOAD( "pr11026.20",   0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
39144090   ROM_LOAD( "pr11025.14",   0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
39154091   ROM_LOAD( "pr11024.8",    0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
3916   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4092
4093   ROM_REGION( 0x0100, "proms", 0 )
4094   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
39174095ROM_END
39184096
39194097ROM_START( wbmlb )
r4470r4471
39284106   ROM_REGION( 0x10000, "soundcpu", 0 )
39294107   ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
39304108
3931   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4109   ROM_REGION( 0x18000, "tiles", 0 )
39324110   ROM_LOAD( "wbml.08",      0x00000, 0x8000, CRC(bbea6afe) SHA1(ba56c6789a35eb57cd226296ebf57e9aa19ba625) )
39334111   ROM_LOAD( "wbml.09",      0x08000, 0x8000, CRC(77567d41) SHA1(2ac501661522615859f8a1718dbb8451272d6931) )
39344112   ROM_LOAD( "wbml.10",      0x10000, 0x8000, CRC(a52ffbdd) SHA1(609375112268b770a798186697ecab5853f29f89) )
39354113
3936   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4114   ROM_REGION( 0x20000, "sprites", 0 )
39374115   ROM_LOAD( "epr11028.87",  0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
39384116   ROM_LOAD( "epr11027.86",  0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
39394117   ROM_LOAD( "epr11030.89",  0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
39404118   ROM_LOAD( "epr11029.88",  0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
39414119
3942   ROM_REGION( 0x0400, "proms", 0 )
4120   ROM_REGION( 0x0300, "palette", 0 )
39434121   ROM_LOAD( "pr11026.20",   0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
39444122   ROM_LOAD( "pr11025.14",   0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
39454123   ROM_LOAD( "pr11024.8",    0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
3946   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4124
4125   ROM_REGION( 0x0100, "proms", 0 )
4126   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
39474127ROM_END
39484128
39494129ROM_START( wbmlbg )
r4470r4471
39584138   ROM_REGION( 0x10000, "soundcpu", 0 )
39594139   ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
39604140
3961   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4141   ROM_REGION( 0x18000, "tiles", 0 )
39624142   ROM_LOAD( "galaxy.ic4", 0x00000, 0x8000, CRC(ab75d056) SHA1(d90d9c723536d0ec21900dc70b51715300b01fe7) )
39634143   ROM_LOAD( "galaxy.ic6", 0x08000, 0x8000, CRC(6bb5e601) SHA1(465d67dcde4e775d1b93640ef1a300e958cbe707) )
39644144   ROM_LOAD( "galaxy.ic5", 0x10000, 0x8000, CRC(3c11d151) SHA1(7b0c6792ae919ac309a709ca0c89006487e1d6e9) )
39654145
3966   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4146   ROM_REGION( 0x20000, "sprites", 0 )
39674147   ROM_LOAD( "epr11028.87",  0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
39684148   ROM_LOAD( "epr11027.86",  0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
39694149   ROM_LOAD( "epr11030.89",  0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
39704150   ROM_LOAD( "epr11029.88",  0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
39714151
3972   ROM_REGION( 0x0400, "proms", 0 )
4152   ROM_REGION( 0x0300, "palette", 0 )
39734153   ROM_LOAD( "pr11026.20",   0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
39744154   ROM_LOAD( "pr11025.14",   0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
39754155   ROM_LOAD( "pr11024.8",    0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
3976   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4156
4157   ROM_REGION( 0x0100, "proms", 0 )
4158   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
39774159ROM_END
39784160
4161
39794162ROM_START( dakkochn )
39804163   ROM_REGION( 0x20000, "maincpu", 0 )
39814164   ROM_LOAD( "epr11224.90",  0x00000, 0x8000, CRC(9fb1972b) SHA1(1bb61c6ec2b5b8eb39f74f20d5bcd0f14501bd21) ) /* encrypted */
39824165   ROM_LOAD( "epr11225.91",  0x10000, 0x8000, CRC(c540f9e2) SHA1(dbda9355e8b796bcfaee2789714d248c4d7ad58c) ) /* encrypted */
39834166   /* 18000-1ffff empty */
39844167
3985   ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
4168   ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */
39864169   ROM_LOAD( "317-0014.key",  0x0000, 0x2000, CRC(bb9df5ad) SHA1(7e7b7255149ae01d19883ecf4a88989f8a9bf4c6) )
39874170
39884171   ROM_REGION( 0x10000, "soundcpu", 0 )
39894172   ROM_LOAD( "epr11229.126", 0x0000, 0x8000, CRC(c11648d0) SHA1(c2df3d767d497c3365ae70748c4790f4ee394958) )
39904173
3991   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4174   ROM_REGION( 0x18000, "tiles", 0 )
39924175   ROM_LOAD( "epr11226.4",   0x00000, 0x8000, CRC(3dbc2f78) SHA1(f3f7ee2c0bedcc21c1c1f5394838af6d0a8833d8) )
39934176   ROM_LOAD( "epr11227.5",   0x08000, 0x8000, CRC(34156e8d) SHA1(e23d8604a3d5db413cf150f9891fca2b1e0163fa) )
39944177   ROM_LOAD( "epr11228.6",   0x10000, 0x8000, CRC(fdd5323f) SHA1(c47099c78207bb2258d34b98b48e3c04beb6407e) )
39954178
3996   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4179   ROM_REGION( 0x20000, "sprites", 0 )
39974180   ROM_LOAD( "epr11221.87",  0x00000, 0x8000, CRC(f9a44916) SHA1(9d9ba96146cff4c1ed18b7134ab19919e144d326) )
39984181   ROM_LOAD( "epr11220.86",  0x08000, 0x8000, CRC(fdd25d8a) SHA1(53636e2a9102a2d86277cff812639d1d92587fc4) )
39994182   ROM_LOAD( "epr11223.89",  0x10000, 0x8000, CRC(538adc55) SHA1(542af53a56f580e5ab455aa6bed955ee5fd4a252) )
40004183   ROM_LOAD( "epr11222.88",  0x18000, 0x8000, CRC(33fab0b2) SHA1(eb3c08009315e46590c2c0df17fc3fa391034c66) )
40014184
4002   ROM_REGION( 0x0400, "proms", 0 )
4185   ROM_REGION( 0x0300, "palette", 0 )
40034186   ROM_LOAD( "pr11219.20",   0x0000, 0x0100, CRC(45e252d9) SHA1(92d8f1d0f1a9e65234521ce02d512f08b5e06d78) ) /* palette red component */
40044187   ROM_LOAD( "pr11218.14",   0x0100, 0x0100, CRC(3eda3a1b) SHA1(cc98c792521845259088eb163a150cd5bb603d5d) ) /* palette green component */
40054188   ROM_LOAD( "pr11217.8",    0x0200, 0x0100, CRC(49dbde88) SHA1(7057da5617de7e4775adf092cce1709135066129) ) /* palette blue component */
4006   ROM_LOAD( "pr5317.37",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4189
4190   ROM_REGION( 0x0100, "proms", 0 )
4191   ROM_LOAD( "pr5317.37",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
40074192ROM_END
40084193
4194
40094195ROM_START( ufosensi )
40104196   ROM_REGION( 0x20000, "maincpu", 0 )
40114197   ROM_LOAD( "epr11661.90",  0x00000, 0x8000, CRC(f3e394e2) SHA1(a295a2aa80a164a548995822c46f32fd9fad7a0b) ) /* encrypted */
40124198   ROM_LOAD( "epr11662.91",  0x10000, 0x8000, CRC(0c2e4120) SHA1(d81fbefa95868e3efd29ef3bacf108329781ca17) ) /* encrypted */
40134199   ROM_LOAD( "epr11663.92",  0x18000, 0x8000, CRC(4515ebae) SHA1(9b823f10999746292762c2f0a1ca9039efa22506) ) /* encrypted */
40144200
4015   ROM_REGION( 0x2000, "user1", 0 ) /* MC8123 key */
4201   ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */
40164202   ROM_LOAD( "317-0064.key",  0x0000, 0x2000, CRC(da326f36) SHA1(0871b351379a094ac578e0eca5cb17797f9085aa) )
40174203
40184204   ROM_REGION( 0x10000, "soundcpu", 0 )
40194205   ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) )
40204206
4021   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4207   ROM_REGION( 0x18000, "tiles", 0 )
40224208   ROM_LOAD( "epr11664.4",   0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) )
40234209   ROM_LOAD( "epr11665.5",   0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) )
40244210   ROM_LOAD( "epr11666.6",   0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) )
40254211
4026   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4212   ROM_REGION( 0x20000, "sprites", 0 )
40274213   ROM_LOAD( "epr11658.87",  0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) )
40284214   ROM_LOAD( "epr11657.86",  0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) )
40294215   ROM_LOAD( "epr11660.89",  0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) )
40304216   ROM_LOAD( "epr11659.88",  0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) )
40314217
4032   ROM_REGION( 0x0400, "proms", 0 )
4218   ROM_REGION( 0x0300, "palette", 0 )
40334219   ROM_LOAD( "pr11656.20",   0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component */
40344220   ROM_LOAD( "pr11655.14",   0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component */
40354221   ROM_LOAD( "pr11654.8",    0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component */
4036   ROM_LOAD( "pr5317.28",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4222
4223   ROM_REGION( 0x0100, "proms", 0 )
4224   ROM_LOAD( "pr5317.28",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
40374225ROM_END
40384226
4039ROM_START( ufosensb )
4227ROM_START( ufosensib )
40404228   ROM_REGION( 0x40000, "maincpu", 0 )
40414229   ROM_LOAD( "k108.ic18.3-4s", 0x20000, 0x8000, CRC(6b1d0955) SHA1(dbda145d40eaecd30c1d55a9675c58a2967c20c4) )
40424230   ROM_CONTINUE(               0x00000, 0x8000 )             /* Now load the operands in RAM */
r4470r4471
40484236   ROM_REGION( 0x10000, "soundcpu", 0 )
40494237   ROM_LOAD( "epr11667.126", 0x0000, 0x8000, CRC(110baba9) SHA1(e14cf5af11ac9691eca897bbae7c238665cd2a4d) ) /* label on chip is "k111.ic168.10v" */
40504238
4051   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4239   ROM_REGION( 0x18000, "tiles", 0 )
40524240   ROM_LOAD( "epr11664.4",   0x00000, 0x8000, CRC(1b1bc3d5) SHA1(2a09e0dbe2d467c151dce705f249367df849eaeb) ) /* label on chip is "k101.ic72.6d" */
40534241   ROM_LOAD( "epr11665.5",   0x08000, 0x8000, CRC(3659174a) SHA1(176d2436abb45827a8d387241082854f55dc0314) ) /* label on chip is "k102.ic73.6-7d" */
40544242   ROM_LOAD( "epr11666.6",   0x10000, 0x8000, CRC(99dcc793) SHA1(ad1d0acb60e7c1a7016955e142ebca1cf07b4908) ) /* label on chip is "k103.ic74.7d" */
40554243
4056   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4244   ROM_REGION( 0x20000, "sprites", 0 )
40574245   ROM_LOAD( "epr11658.87",  0x00000, 0x8000, CRC(3b5a20f7) SHA1(03e0934b0913c3a2cadf1d28b8a700d70b80fbac) ) /* label on chip is "k105.ic15.1-2s" */
40584246   ROM_LOAD( "epr11657.86",  0x08000, 0x8000, CRC(010f81a9) SHA1(1b7ee05c80edfa403e32c216fa69387ca556895e) ) /* label on chip is "k104.ic14.1s" */
40594247   ROM_LOAD( "epr11660.89",  0x10000, 0x8000, CRC(e1e2e7c5) SHA1(434039a70049a6e74e2a2f48b60345f720e6b1af) ) /* label on chip is "k107.ic17.2-3s" */
40604248   ROM_LOAD( "epr11659.88",  0x18000, 0x8000, CRC(286c7286) SHA1(449a19ea9a9f9df47005e8dac1b8eacaebc515e7) ) /* label on chip is "k106.ic16.2s" */
40614249
4062   ROM_REGION( 0x0400, "proms", 0 )
4250   ROM_REGION( 0x0300, "palette", 0 )
40634251   ROM_LOAD( "pr11656.20",   0x0000, 0x0100, CRC(640740eb) SHA1(9a601a3665f612d00c70019d33c7abd3cca9434b) ) /* palette red component - label on chip is "74s287.ic134.9f" */
40644252   ROM_LOAD( "pr11655.14",   0x0100, 0x0100, CRC(a0c3fa77) SHA1(cdffa1de06d30ec421323145dfc3271803fc25d4) ) /* palette green component - label on chip is "74s287.ic133.9e" */
40654253   ROM_LOAD( "pr11654.8",    0x0200, 0x0100, CRC(ba624305) SHA1(eb1d0dde60f81ff510ac8c1212e0ed5703febaf3) ) /* palette blue component - label on chip is "74s287.ic132.9d" */
4066   ROM_LOAD( "pr5317.28",    0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - label on chip is "74s287.ic115.8j" */
40674254
4255   ROM_REGION( 0x0100, "proms", 0 )
4256   ROM_LOAD( "pr5317.28",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) - label on chip is "74s287.ic115.8j" */
4257
40684258   ROM_REGION( 0x2000, "plds", 0 )
40694259   ROM_LOAD( "pal6l8.ic3.1c",   0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */
40704260   ROM_LOAD( "pal6l8.ic32.2c",  0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */
r4470r4471
40774267   ROM_LOAD( "pal20r4.ic69.4c", 0x1000, 0x0144, NO_DUMP ) /* PAL is read protected */
40784268ROM_END
40794269
4270
4271ROM_START( blockgal )
4272   ROM_REGION( 0x10000, "maincpu", 0 )
4273   ROM_LOAD( "bg.116",       0x0000, 0x4000, CRC(a99b231a) SHA1(42ba45a4fd315255e9500bc3a0e8fe653c4c5a9c) ) /* encrypted */
4274   ROM_LOAD( "bg.109",       0x4000, 0x4000, CRC(a6b573d5) SHA1(33547a3895bbe65d5a6c40453eeb93e1fedad6de) ) /* encrypted */
4275   /* 0x8000-0xbfff empty (was same as My Hero) */
4276
4277   ROM_REGION( 0x2000, "key", 0 ) /* MC8123 key */
4278   ROM_LOAD( "317-0029.key",  0x0000, 0x2000, CRC(350d7f93) SHA1(7ef12d63b2c7150f8e74f65ec8340471d72b1c03) )
4279
4280   ROM_REGION( 0x10000, "soundcpu", 0 )
4281   ROM_LOAD( "bg.120",       0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) )
4282
4283   ROM_REGION( 0xc000, "tiles", 0 )
4284   ROM_LOAD( "bg.62",        0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) )
4285   ROM_LOAD( "bg.61",        0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) )
4286   ROM_LOAD( "bg.64",        0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) )
4287   ROM_LOAD( "bg.63",        0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) )
4288   ROM_LOAD( "bg.66",        0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) )
4289   ROM_LOAD( "bg.65",        0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) )
4290
4291   ROM_REGION( 0x10000, "sprites", 0 )
4292   ROM_LOAD( "bg.117",       0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) )
4293   ROM_LOAD( "bg.04",        0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) )
4294   ROM_LOAD( "bg.110",       0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) )
4295   ROM_LOAD( "bg.05",        0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) )
4296
4297   ROM_REGION( 0x0100, "proms", 0 )
4298   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4299ROM_END
4300
4301ROM_START( blockgalb )
4302   ROM_REGION( 0x18000, "maincpu", 0 )
4303   ROM_LOAD( "ic62",         0x10000, 0x8000, CRC(65c47676) SHA1(bc283761e6f9ebf65fb405b1c8922c3c98c8d00e) ) /* decrypted opcodes */
4304   ROM_CONTINUE(             0x00000, 0x8000 )             /* decrypted data */
4305
4306   ROM_REGION( 0x10000, "soundcpu", 0 )
4307   ROM_LOAD( "bg.120",       0x0000, 0x2000, CRC(d848faff) SHA1(5974cc0c3090800ca79f580a620f5b6615f5d039) )
4308
4309   ROM_REGION( 0xc000, "tiles", 0 )
4310   ROM_LOAD( "bg.62",        0x0000, 0x2000, CRC(7e3ea4eb) SHA1(8bf020b083e2da12fe95ddae9ac7a385490525bc) )
4311   ROM_LOAD( "bg.61",        0x2000, 0x2000, CRC(4dd3d39d) SHA1(759fca021f8d59e861dc19543d5a184428a5e472) )
4312   ROM_LOAD( "bg.64",        0x4000, 0x2000, CRC(17368663) SHA1(e8f2ac6de0fddf08aefae07e693cac100cfb0db4) )
4313   ROM_LOAD( "bg.63",        0x6000, 0x2000, CRC(0c8bc404) SHA1(fc96fb682da3af6b7fc852cea6d8a957c4ce57e3) )
4314   ROM_LOAD( "bg.66",        0x8000, 0x2000, CRC(2b7dc4fa) SHA1(79d3677b24682cee0c08088433646800703be531) )
4315   ROM_LOAD( "bg.65",        0xa000, 0x2000, CRC(ed121306) SHA1(89f812b3954922e22fcf8d9cc4ee5ba295279cb6) )
4316
4317   ROM_REGION( 0x10000, "sprites", 0 )
4318   ROM_LOAD( "bg.117",       0x0000, 0x4000, CRC(e99cc920) SHA1(b2b9199a9296e0c34fcf4dd20ffd3e8de08f42da) )
4319   ROM_LOAD( "bg.04",        0x4000, 0x4000, CRC(213057f8) SHA1(a872631aaa2b73e9198f2ad6cede2a889279e610) )
4320   ROM_LOAD( "bg.110",       0x8000, 0x4000, CRC(064c812c) SHA1(673790dc5131fd280333386a0e9915fb94e9f3e1) )
4321   ROM_LOAD( "bg.05",        0xc000, 0x4000, CRC(02e0b040) SHA1(fb626fc31dfe25bf9fac0c8d76d5041609b06e82) )
4322
4323   ROM_REGION( 0x0100, "proms", 0 )
4324   ROM_LOAD( "pr5317.76",    0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4325ROM_END
4326
4327
40804328/*
40814329
40824330Noboranka
r4470r4471
41564404      Z80B clock - 4.00MHz [20/5]
41574405
41584406*/
4159
41604407ROM_START( nob )
41614408   ROM_REGION( 0x20000, "maincpu", 0 )
41624409   ROM_LOAD( "dm08.1f", 0x00000, 0x8000, CRC(98d602d6) SHA1(a0f1e6d243f2e07703bb641434dce46d0ddc15ae) )
r4470r4471
41694416   ROM_REGION( 0x10000, "soundcpu", 0 )
41704417   ROM_LOAD( "dm03.9h", 0x0000, 0x4000, CRC(415adf76) SHA1(fbd6f8921aa3246702983ba81fa9ae53fa10c19d) )
41714418
4172   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4419   ROM_REGION( 0x18000, "tiles", 0 )
41734420   ROM_LOAD( "dm02.13b", 0x08000, 0x8000, CRC(f12df039) SHA1(159de205f77fd74da30717054e6ddda2c0bb63d0) )
41744421   ROM_LOAD( "dm01.12b", 0x00000, 0x8000, CRC(446fbcdd) SHA1(e3c8364eccfa6c8af7a57b599238b0e4ebe8cc59) )
41754422   ROM_LOAD( "dm00.10b", 0x10000, 0x8000, CRC(35f396df) SHA1(ebf0a252513ae2b31ef012ac71d64fb20b8725cc) )
41764423
4177   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4424   ROM_REGION( 0x20000, "sprites", 0 )
41784425   ROM_LOAD( "dm04.5f", 0x00000, 0x8000, CRC(2442b86d) SHA1(2eed80e1ff9cd782990142d0d73ca4fa13db4731) )
41794426   ROM_LOAD( "dm06.5k", 0x08000, 0x8000, CRC(e33743a6) SHA1(56dce565523f19e673c9272992030386ca648e41) )
41804427   ROM_LOAD( "dm05.5h", 0x10000, 0x8000, CRC(7fbba01d) SHA1(ded22806ae0d6642b45cd33c0ceab67390a6e319) )
41814428   ROM_LOAD( "dm07.5l", 0x18000, 0x8000, CRC(85e7a29f) SHA1(0ca77c66599650f157450d703682ec114f0453cf) )
41824429
4183   ROM_REGION( 0x0400, "proms", 0 )
4430   ROM_REGION( 0x0300, "palette", 0 )
41844431   /* the first 2 proms were missing from the dump, but are clearly needed... */
41854432   ROM_LOAD( "nobo_pr.16d", 0x0000, 0x0100, CRC(95010ac2) SHA1(deaf84b408cd1f3396eb851ef04cc1654d5e9a46) ) /* palette red component */
41864433   ROM_LOAD( "nobo_pr.15d", 0x0100, 0x0100, CRC(c55aac0c) SHA1(0f7f2d383a90e9f7f319626b4d5565805f44a1f9) ) /* palette green component */
41874434   ROM_LOAD( "dm-12.ic3", 0x0200, 0x0100, CRC(de394cee) SHA1(511c53f22459e5e238b48685f85b10f5e15f2ac1) ) /* palette blue component */
4188   ROM_LOAD( "dc-11.6a", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4435
4436   ROM_REGION( 0x0100, "proms", 0 )
4437   ROM_LOAD( "dc-11.6a", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
41894438ROM_END
41904439
41914440/* the bootleg has different protection.. */
r4470r4471
41984447   ROM_REGION( 0x10000, "soundcpu", 0 )
41994448   ROM_LOAD( "nobo-m.bin", 0x0000, 0x4000, CRC(415adf76) SHA1(fbd6f8921aa3246702983ba81fa9ae53fa10c19d) )
42004449
4201   ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
4450   ROM_REGION( 0x18000, "tiles", 0 )
42024451   ROM_LOAD( "nobo-j.bin", 0x08000, 0x8000, CRC(f12df039) SHA1(159de205f77fd74da30717054e6ddda2c0bb63d0) )
42034452   ROM_LOAD( "nobo-k.bin", 0x00000, 0x8000, CRC(446fbcdd) SHA1(e3c8364eccfa6c8af7a57b599238b0e4ebe8cc59) )
42044453   ROM_LOAD( "nobo-l.bin", 0x10000, 0x8000, CRC(35f396df) SHA1(ebf0a252513ae2b31ef012ac71d64fb20b8725cc) )
42054454
4206   ROM_REGION( 0x20000, "gfx2", 0 ) /* 128k for sprites data */
4455   ROM_REGION( 0x20000, "sprites", 0 )
42074456   ROM_LOAD( "nobo-q.bin", 0x00000, 0x8000, CRC(2442b86d) SHA1(2eed80e1ff9cd782990142d0d73ca4fa13db4731) )
42084457   ROM_LOAD( "nobo-o.bin", 0x08000, 0x8000, CRC(e33743a6) SHA1(56dce565523f19e673c9272992030386ca648e41) )
42094458   ROM_LOAD( "nobo-p.bin", 0x10000, 0x8000, CRC(7fbba01d) SHA1(ded22806ae0d6642b45cd33c0ceab67390a6e319) )
42104459   ROM_LOAD( "nobo-n.bin", 0x18000, 0x8000, CRC(85e7a29f) SHA1(0ca77c66599650f157450d703682ec114f0453cf) )
42114460
4212   ROM_REGION( 0x0400, "proms", 0 )
4461   ROM_REGION( 0x0300, "palette", 0 )
42134462   ROM_LOAD( "nobo_pr.16d", 0x0000, 0x0100, CRC(95010ac2) SHA1(deaf84b408cd1f3396eb851ef04cc1654d5e9a46) ) /* palette red component */
42144463   ROM_LOAD( "nobo_pr.15d", 0x0100, 0x0100, CRC(c55aac0c) SHA1(0f7f2d383a90e9f7f319626b4d5565805f44a1f9) ) /* palette green component */
42154464   ROM_LOAD( "nobo_pr.14d", 0x0200, 0x0100, CRC(de394cee) SHA1(511c53f22459e5e238b48685f85b10f5e15f2ac1) ) /* palette blue component */
4216   ROM_LOAD( "nobo_pr.13a", 0x0300, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
4465
4466   ROM_REGION( 0x0100, "proms", 0 )
4467   ROM_LOAD( "nobo_pr.13a", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) ) /* timing? (not used) */
42174468ROM_END
42184469
4470
4471
42194472/*************************************
42204473 *
42214474 *  Generic driver initialization
42224475 *
42234476 *************************************/
42244477
4225static DRIVER_INIT( regulus )   { regulus_decode(machine, "maincpu"); }
4226static DRIVER_INIT( mrviking )   { mrviking_decode(machine, "maincpu"); }
4227static DRIVER_INIT( swat )   { swat_decode(machine, "maincpu"); }
4228static DRIVER_INIT( flicky )   { flicky_decode(machine, "maincpu"); }
4229static DRIVER_INIT( wmatch )   { wmatch_decode(machine, "maincpu"); }
4230static DRIVER_INIT( bullfgtj )   { bullfgtj_decode(machine, "maincpu"); }
4231static DRIVER_INIT( spatter )   { spatter_decode(machine, "maincpu"); }
4232static DRIVER_INIT( pitfall2 )   { pitfall2_decode(machine, "maincpu"); }
4233static DRIVER_INIT( nprinces )   { nprinces_decode(machine, "maincpu"); }
4234static DRIVER_INIT( seganinj )   { seganinj_decode(machine, "maincpu"); }
4235static DRIVER_INIT( imsorry )   { imsorry_decode(machine, "maincpu"); }
4236static DRIVER_INIT( teddybb )   { teddybb_decode(machine, "maincpu"); }
4237static DRIVER_INIT( hvymetal )   { hvymetal_decode(machine, "maincpu"); }
4238static DRIVER_INIT( myheroj )   { myheroj_decode(machine, "maincpu"); }
4239static DRIVER_INIT( 4dwarrio )   { fdwarrio_decode(machine, "maincpu"); }
4240static DRIVER_INIT( wboy )   { astrofl_decode(machine, "maincpu"); }
4241static DRIVER_INIT( wboy2 )   { wboy2_decode(machine, "maincpu"); }
4242static DRIVER_INIT( gardia )   { gardia_decode(machine, "maincpu"); }
4243static DRIVER_INIT( gardiab )   { gardiab_decode(machine, "maincpu"); }
4478static DRIVER_INIT( bank00 )   { i8751_run = NULL; videomode_custom = NULL; }
4479static DRIVER_INIT( bank44 )   { i8751_run = NULL; videomode_custom = bank44_custom_w; }
4480static DRIVER_INIT( bank0c )   { i8751_run = NULL; videomode_custom = bank0c_custom_w; }
42444481
4482static DRIVER_INIT( regulus )   { DRIVER_INIT_CALL(bank00); regulus_decode(machine, "maincpu"); }
4483static DRIVER_INIT( mrviking )   { DRIVER_INIT_CALL(bank00); mrviking_decode(machine, "maincpu"); }
4484static DRIVER_INIT( swat )      { DRIVER_INIT_CALL(bank00); swat_decode(machine, "maincpu"); }
4485static DRIVER_INIT( flicky )   { DRIVER_INIT_CALL(bank00); flicky_decode(machine, "maincpu"); }
4486static DRIVER_INIT( wmatch )   { DRIVER_INIT_CALL(bank00); wmatch_decode(machine, "maincpu"); }
4487static DRIVER_INIT( bullfgtj )   { DRIVER_INIT_CALL(bank00); bullfgtj_decode(machine, "maincpu"); }
4488static DRIVER_INIT( spatter )   { DRIVER_INIT_CALL(bank00); spatter_decode(machine, "maincpu"); }
4489static DRIVER_INIT( pitfall2 )   { DRIVER_INIT_CALL(bank00); pitfall2_decode(machine, "maincpu"); }
4490static DRIVER_INIT( nprinces )   { DRIVER_INIT_CALL(bank00); nprinces_decode(machine, "maincpu"); }
4491static DRIVER_INIT( seganinj )   { DRIVER_INIT_CALL(bank00); seganinj_decode(machine, "maincpu"); }
4492static DRIVER_INIT( imsorry )   { DRIVER_INIT_CALL(bank00); imsorry_decode(machine, "maincpu"); }
4493static DRIVER_INIT( teddybb )   { DRIVER_INIT_CALL(bank00); teddybb_decode(machine, "maincpu"); }
4494static DRIVER_INIT( myheroj )   { DRIVER_INIT_CALL(bank00); myheroj_decode(machine, "maincpu"); }
4495static DRIVER_INIT( 4dwarrio )   { DRIVER_INIT_CALL(bank00); fdwarrio_decode(machine, "maincpu"); }
4496static DRIVER_INIT( wboy )      { DRIVER_INIT_CALL(bank00); astrofl_decode(machine, "maincpu"); }
4497static DRIVER_INIT( wboy2 )      { DRIVER_INIT_CALL(bank00); wboy2_decode(machine, "maincpu"); }
4498static DRIVER_INIT( wboyo )      { DRIVER_INIT_CALL(bank00); hvymetal_decode(machine, "maincpu"); }
4499static DRIVER_INIT( blockgal )   { DRIVER_INIT_CALL(bank00); mc8123_decrypt_rom(machine, "maincpu", "key", 0, 0); }
42454500
4501static DRIVER_INIT( hvymetal )   { DRIVER_INIT_CALL(bank44); hvymetal_decode(machine, "maincpu"); }
4502static DRIVER_INIT( gardia )   { DRIVER_INIT_CALL(bank44); gardia_decode(machine, "maincpu"); }
4503static DRIVER_INIT( gardiab )   { DRIVER_INIT_CALL(bank44); gardiab_decode(machine, "maincpu"); }
42464504
4247static DRIVER_INIT( blockgal )   { mc8123_decrypt_rom(machine, "maincpu", "user1", 0, 0); }
4248static DRIVER_INIT( wbml )   { mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4); }
4249static DRIVER_INIT( ufosensi )  { mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4); }
4505static DRIVER_INIT( wbml )      { DRIVER_INIT_CALL(bank0c); mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4); }
4506static DRIVER_INIT( ufosensi )  { DRIVER_INIT_CALL(bank0c); mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4); }
4507static DRIVER_INIT( wboysys2 )   { DRIVER_INIT_CALL(bank0c); astrofl_decode(machine, "maincpu"); }
42504508
4251static UINT8 dakkochn_control;
42524509
4253/*
4254This game doesn't seem to have any mux writes, so I'm assuming that the mux does HW auto-incrementing.
4255I need schematics to understand how it's properly mapped anyway, because it could be for example tied
4256with vblank/video bits.
4257The program flow is:
4258I/O $00 R
4259I/O $15 W 0xe
4260I/O $15 W 0xc
4261I/O $00 R
4262I/O $15 W 0xe
4263(and so on)
4264
4265*/
4266static READ8_HANDLER( dakkochn_port_00_r )
4267{
4268   static UINT8 res;
4269
4270   switch(dakkochn_mux_data)
4271   {
4272      case 0: res = input_port_read(space->machine, "KEY0"); break;
4273      case 1: res = input_port_read(space->machine, "KEY1"); break;
4274      case 2: res = input_port_read(space->machine, "KEY2"); break;
4275      case 3: res = input_port_read(space->machine, "KEY3"); break;
4276      case 4: res = input_port_read(space->machine, "KEY4"); break;
4277      case 5: res = input_port_read(space->machine, "KEY5"); break;
4278      case 6: res = input_port_read(space->machine, "KEY6"); break;
4279   }
4280
4281   dakkochn_mux_data++;
4282   if(dakkochn_mux_data >= 7)
4283      dakkochn_mux_data = 0;
4284
4285   return res;
4286}
4287
4288static READ8_HANDLER( dakkochn_port_03_r )
4289{
4290   return 0;
4291}
4292
4293static READ8_HANDLER( dakkochn_port_04_r )
4294{
4295   return 0;
4296}
4297
4298static WRITE8_HANDLER( dakkochn_port_15_w )
4299{
4300   dakkochn_control = data; // check if any control multiplex bits are in here!
4301   chplft_videomode_w(space,offset,data);
4302}
4303
43044510static DRIVER_INIT( dakkochn )
43054511{
4306   mc8123_decrypt_rom(machine, "maincpu", "user1", 1, 4);
4512   DRIVER_INIT_CALL(bank0c);
4513   videomode_custom = dakkochn_custom_w;
43074514
4308   memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, dakkochn_port_00_r);
4309   memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x03, 0x03, 0, 0, dakkochn_port_03_r);
4310   memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x04, 0x04, 0, 0, dakkochn_port_04_r);
4515   mc8123_decrypt_rom(machine, "maincpu", "key", 1, 4);
43114516
4312   memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x15, 0x15, 0, 0, dakkochn_port_15_w);
4517//  memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, dakkochn_port_00_r);
4518//  memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x03, 0x03, 0, 0, dakkochn_port_03_r);
4519//  memory_install_read8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x04, 0x04, 0, 0, dakkochn_port_04_r);
43134520
4521//  memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_IO), 0x15, 0x15, 0, 0, dakkochn_port_15_w);
43144522}
43154523
43164524
r4470r4471
43194527   int A;
43204528   UINT8 *rom;
43214529
4530   DRIVER_INIT_CALL(bank00);
4531
43224532   /* additionally to the usual protection, all the program ROMs have data lines */
43234533   /* D0 and D1 swapped. */
43244534   rom = memory_region(machine, "maincpu");
r4470r4471
43264536      rom[A] = (rom[A] & 0xfc) | ((rom[A] & 1) << 1) | ((rom[A] & 2) >> 1);
43274537
43284538   /* the tile gfx ROMs are mangled as well: */
4329   rom = memory_region(machine, "gfx1");
4539   rom = memory_region(machine, "tiles");
43304540
43314541   /* the first ROM has data lines D0 and D6 swapped. */
43324542   for (A = 0x0000;A < 0x4000;A++)
r4470r4471
43754585//  ROM[0x10000 + 0 * 0x8000 + 0x3347] = 0x18;  // 'jr' instead of 'jr z'
43764586
43774587   /* Patch to get sound in later levels(the program enters into a tight loop)*/
4588   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO);
43784589   UINT8 *ROM2 = memory_region(machine, "soundcpu");
43794590
43804591   ROM2[0x02f9] = 0x28;//'jr z' instead of 'jr'
4592
4593   DRIVER_INIT_CALL(bank44);
4594
4595   memory_install_read8_handler(space, 0x1c, 0x1c, 0x00, 0x00, nobb_inport1c_r);
4596   memory_install_read8_handler(space, 0x22, 0x22, 0x00, 0x00, nobb_inport22_r);
4597   memory_install_read8_handler(space, 0x23, 0x23, 0x00, 0x00, nobb_inport23_r);
4598   memory_install_write8_handler(space, 0x24, 0x24, 0x00, 0x00, nobb_outport24_w);
43814599}
43824600
43834601
r4470r4471
43854603{
43864604   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
43874605   memory_set_decrypted_region(space, 0x0000, 0x7fff, memory_region(machine, "maincpu") + 0x10000);
4606   DRIVER_INIT_CALL(bank00);
43884607}
43894608
43904609
r4470r4471
43934612   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
43944613   memory_set_decrypted_region(space, 0x0000, 0x7fff, memory_region(machine, "maincpu") + 0x20000);
43954614   memory_configure_bank_decrypted(machine, 1, 0, 4, memory_region(machine, "maincpu") + 0x30000, 0x4000);
4615   DRIVER_INIT_CALL(bank0c);
43964616}
43974617
4618static DRIVER_INIT( choplift )
4619{
4620   DRIVER_INIT_CALL(bank0c);
4621   i8751_run = choplift_i8751_run;
4622}
4623
4624static DRIVER_INIT( shtngmst )
4625{
4626   const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO);
4627   memory_install_write8_handler(space, 0x10, 0x10, 0x00, 0x00, mcuenable_hack_w);
4628   memory_install_read_port_handler(space, 0x12, 0x12, 0x00, 0x00, "TRIGGER");
4629   memory_install_read_port_handler(space, 0x18, 0x18, 0x00, 0x03, "18");
4630   memory_install_read_port_handler(space, 0x1c, 0x1c, 0x00, 0x02, "GUNX");
4631   memory_install_read_port_handler(space, 0x1d, 0x1d, 0x00, 0x02, "GUNY");
4632   DRIVER_INIT_CALL(choplift);
4633}
4634
4635
4636
43984637/*************************************
43994638 *
44004639 *  Game driver(s)
44014640 *
44024641 *************************************/
44034642
4404GAME( 1983, starjack, 0,        small,    starjack, 0,        ROT270, "Sega",            "Star Jacker (Sega)", GAME_SUPPORTS_SAVE )
4405GAME( 1983, starjacs, starjack, small,    starjacs, 0,        ROT270, "Stern",           "Star Jacker (Stern)", GAME_SUPPORTS_SAVE )
4406GAME( 1983, regulus,  0,        small,     regulus,  regulus,  ROT270, "Sega",            "Regulus (315-5033, Rev A.)", GAME_SUPPORTS_SAVE )
4407GAME( 1983, reguluso, regulus,  small,     reguluso, regulus,  ROT270, "Sega",            "Regulus (315-5033)", GAME_SUPPORTS_SAVE )
4408GAME( 1983, regulusu, regulus,  small,     regulus,  0,        ROT270, "Sega",            "Regulus (not encrypted)", GAME_SUPPORTS_SAVE )
4409GAME( 1983, upndown,  0,        system1,  upndown,  nprinces, ROT270, "Sega",            "Up'n Down (315-5030)", GAME_SUPPORTS_SAVE )
4410GAME( 1983, upndownu, upndown,  system1,  upndown,  0,        ROT270, "Sega",            "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE )
4411GAME( 1984, mrviking, 0,        small,    mrviking, mrviking, ROT270, "Sega",            "Mister Viking (315-5041)", GAME_SUPPORTS_SAVE )
4412GAME( 1984, mrvikngj, mrviking, small,    mrvikngj, mrviking, ROT270, "Sega",            "Mister Viking (315-5041, Japan)", GAME_SUPPORTS_SAVE )
4413GAME( 1984, swat,     0,        system1,  swat,     swat,     ROT270, "Coreland / Sega", "SWAT (315-5048)", GAME_SUPPORTS_SAVE )
4414GAME( 1984, flicky,   0,        system1,  flicky,   flicky,   ROT0,   "Sega",            "Flicky (128k Version, System 2, 315-5051)", GAME_SUPPORTS_SAVE )
4415GAME( 1984, flicks2,  flicky,   system1,  flicky,   0,        ROT0,   "Sega",            "Flicky (128k Version, System 2, not encrypted)", GAME_SUPPORTS_SAVE )
4416GAME( 1984, flickyo,  flicky,   system1,  flicky,   flicky,   ROT0,   "Sega",            "Flicky (64k Version, System 1, 315-5051, set 1)", GAME_SUPPORTS_SAVE )
4417GAME( 1984, flicks1,  flicky,   system1,  flicky,   flicky,   ROT0,   "Sega",            "Flicky (64k Version, System 1, 315-5051, set 2)", GAME_SUPPORTS_SAVE )
4418GAME( 1984, wmatch,   0,        small,      wmatch,   wmatch,   ROT270, "Sega",            "Water Match (315-5064)", GAME_SUPPORTS_SAVE )
4419GAME( 1984, bullfgt,  0,        system1,  bullfgt,  bullfgtj, ROT0,   "Coreland / Sega", "Bullfight (315-5065)", GAME_SUPPORTS_SAVE )
4420GAME( 1984, thetogyu, bullfgt,  system1,  bullfgt,  bullfgtj, ROT0,   "Coreland / Sega", "The Togyu (315-5065, Japan)", GAME_SUPPORTS_SAVE )
4421GAME( 1984, spatter,  0,        small,    spatter,  spatter,  ROT0,   "Sega",            "Spatter", GAME_SUPPORTS_SAVE )
4422GAME( 1984, ssanchan, spatter,  small,    spatter,  spatter,  ROT0,   "Sega",            "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE )
4423GAME( 1985, pitfall2, 0,        pitfall2, pitfall2, pitfall2, ROT0,   "Sega",            "Pitfall II (315-5093)", GAME_SUPPORTS_SAVE )
4424GAME( 1985, pitfalla, pitfall2, pitfall2, pitfall2, pitfall2, ROT0,   "Sega",            "Pitfall II (315-5093, Flicky Conversion)", GAME_SUPPORTS_SAVE )
4425GAME( 1985, pitfallu, pitfall2, pitfall2, pitfallu, 0,        ROT0,   "Sega",            "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE )
4426GAME( 1985, seganinj, 0,        system1,  seganinj, seganinj, ROT0,   "Sega",            "Sega Ninja (315-5102)", GAME_SUPPORTS_SAVE )
4427GAME( 1985, seganinu, seganinj, system1,  seganinj, 0,        ROT0,   "Sega",            "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE )
4428GAME( 1985, ninja,    seganinj, system1,  seganinj, seganinj, ROT0,   "Sega",            "Ninja (315-5102)", GAME_SUPPORTS_SAVE )
4429GAME( 1985, nprinces, seganinj, system1,  seganinj, flicky,   ROT0,   "bootleg?",        "Ninja Princess (315-5051, 64k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
4430GAME( 1985, nprincso, seganinj, system1,  seganinj, nprinces, ROT0,   "Sega",            "Ninja Princess (315-5098, 128k Ver.)", GAME_SUPPORTS_SAVE )
4431GAME( 1985, nprincsu, seganinj, system1,  seganinj, 0,        ROT0,   "Sega",            "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE )
4432GAME( 1985, nprincsb, seganinj, system1,  seganinj, flicky,   ROT0,   "bootleg?",        "Ninja Princess (315-5051?, 128k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
4433GAME( 1985, imsorry,  0,        system1,  imsorry,  imsorry,  ROT0,   "Coreland / Sega", "I'm Sorry (315-5110, US)", GAME_SUPPORTS_SAVE )
4434GAME( 1985, imsorryj, imsorry,  system1,  imsorry,  imsorry,  ROT0,   "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", GAME_SUPPORTS_SAVE )
4435GAME( 1985, teddybb,  0,        system1,  teddybb,  teddybb,  ROT0,   "Sega",            "TeddyBoy Blues (315-5115, New Ver.)", GAME_SUPPORTS_SAVE )
4436GAME( 1985, teddybbo, teddybb,  system1,  teddybb,  teddybb,  ROT0,   "Sega",            "TeddyBoy Blues (315-5115, Old Ver.)", GAME_SUPPORTS_SAVE )
4437GAME( 1985, myhero,   0,        system1,  myhero,   0,        ROT0,   "Sega",            "My Hero (US, not encrypted)", GAME_SUPPORTS_SAVE )
4438GAME( 1985, sscandal, myhero,   system1,  myhero,   myheroj,  ROT0,   "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", GAME_SUPPORTS_SAVE )
4439GAME( 1985, myherok,  myhero,   system1,  myhero,   myherok,  ROT0,   "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE )
4440GAME( 1985, hvymetal, 0,        hvymetal, hvymetal, hvymetal, ROT0,   "Sega",            "Heavy Metal (315-5135)", GAME_SUPPORTS_SAVE )
4441GAME( 1985, shtngmst, 0,        shtngmst, shtngmst, 0,        ROT0,   "Sega",            "Shooting Master (Rev A, 8751 315-5159a)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4442GAME( 1985, shtngms1, shtngmst, shtngmst, shtngmst, 0,        ROT0,   "Sega",            "Shooting Master (8751 315-5159)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4443GAME( 1985, shtngmsa, shtngmst, shtngmst, shtngmst, 0,        ROT0,   "Sega [EVG]",      "Shooting Master (EVG, 8751 315-5159)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4444GAME( 1985, chplft,   0,        chplft,   chplft,   0,        ROT0,   "Sega",            "Choplifter (8751 315-5151)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4445GAME( 1985, chplftb,  chplft,   chplft,   chplft,   0,        ROT0,   "Sega",            "Choplifter (unprotected)", GAME_SUPPORTS_SAVE )
4446GAME( 1985, chplftbl, chplft,   chplft,   chplft,   0,        ROT0,   "bootleg",         "Choplifter (bootleg)", GAME_SUPPORTS_SAVE )
4447GAME( 1985, 4dwarrio, 0,        system1,  4dwarrio, 4dwarrio, ROT0,   "Coreland / Sega", "4-D Warriors (315-5162)", GAME_SUPPORTS_SAVE )
4448GAME( 1986, brain,    0,        brain,    brain,    0,        ROT0,   "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE )
4449GAME( 1986, raflesia, 0,        system1,  raflesia, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", GAME_SUPPORTS_SAVE )
4450GAME( 1986, wboy,     0,        system1,  wboy,     wboy,     ROT0,   "Sega (Escape license)", "Wonder Boy (set 1, 315-5177)", GAME_SUPPORTS_SAVE )
4451GAME( 1986, wboyo,    wboy,     system1,  wboy,     hvymetal, ROT0,   "Sega (Escape license)", "Wonder Boy (set 1, 315-5135)", GAME_SUPPORTS_SAVE )
4452GAME( 1986, wboy2,    wboy,     system1,  wboy,     wboy2,    ROT0,   "Sega (Escape license)", "Wonder Boy (set 2, 315-5178)", GAME_SUPPORTS_SAVE )
4453GAME( 1986, wboy2u,   wboy,     system1,  wboy,     0,        ROT0,   "Sega (Escape license)", "Wonder Boy (set 2, not encrypted)", GAME_SUPPORTS_SAVE )
4454GAME( 1986, wboy3,    wboy,     system1,  wboy3,    hvymetal, ROT0,   "Sega (Escape license)", "Wonder Boy (set 3, 315-5135)", GAME_SUPPORTS_SAVE )
4455GAME( 1986, wboy4,    wboy,     system1,  wboy,     4dwarrio, ROT0,   "Sega (Escape license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", GAME_SUPPORTS_SAVE )
4456GAME( 1986, wboyu,    wboy,     system1,  wboyu,    0,        ROT0,   "Sega (Escape license)", "Wonder Boy (not encrypted)", GAME_SUPPORTS_SAVE )
4457GAME( 1986, wboysys2, wboy,     wbml,     wboysys2, wboy,     ROT0,   "Sega (Escape license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE )
4458GAME( 1986, wbdeluxe, wboy,     system1,  wbdeluxe, 0,        ROT0,   "Sega (Escape license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE )
4459GAME( 1986, gardia,   0,        brain,    gardia,   gardia,   ROT270, "Sega / Coreland", "Gardia (317-0006)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
4460GAME( 1986, gardiab,  gardia,   gardiab,  gardia,   gardiab,  ROT270, "bootleg",         "Gardia (317-0007?, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4461GAME( 1986, nob,      nobb,     nob,      nob,      0,        ROT270, "Data East Corporation", "Noboranka (Japan)", GAME_NOT_WORKING )
4462GAME( 1986, nobb,     0,        nobb,     nob,      nobb,     ROT270, "bootleg",               "Noboranka (Japan, bootleg)", GAME_SUPPORTS_SAVE )
4463GAME( 1987, blockgal, 0,        system1,  blockgal, blockgal, ROT90,  "Sega / Vic Tokai", "Block Gal (MC-8123B, 317-0029)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
4464GAME( 1987, blckgalb, blockgal, blckgalb, blockgal, bootleg,  ROT90,  "bootleg",         "Block Gal (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4465GAME( 1987, tokisens, 0,        wbml,     tokisens, 0,        ROT90,  "Sega",            "Toki no Senshi - Chrono Soldier", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4466GAME( 1987, wbml,     0,        wbml,     wbml,     wbml,     ROT0,   "Sega / Westone",  "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4467GAME( 1987, wbmljo,   wbml,     wbml,     wbml,     wbml,     ROT0,   "Sega / Westone",  "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4468GAME( 1987, wbmljb,   wbml,     wbml,     wbml,     bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (Japan not encrypted)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
4469GAME( 1987, wbmlb,    wbml,     wbml,     wbml,     bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
4470GAME( 1987, wbmlbg,   wbml,     wbml,     wbml,     bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (Galaxy Electronics English bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
4471GAME( 1987, dakkochn, 0,        dakkochn, dakkochn, dakkochn, ROT0,   "Whiteboard",      "DakkoChan House (MC-8123, 317-0014)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
4472GAME( 1988, ufosensi, 0,        ufosensi, ufosensi, ufosensi, ROT0,   "Sega",            "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", GAME_SUPPORTS_SAVE )
4473GAME( 1988, ufosensb, ufosensi, ufosensi, ufosensi, bootlegb, ROT0,   "bootleg",         "Ufo Senshi Yohko Chan (not encrypted)", GAME_SUPPORTS_SAVE )
4643/* PPI-based System 1 */
4644GAME( 1983, starjack,   0,        sys1ppis, starjack,  bank00,   ROT270, "Sega",            "Star Jacker (Sega)", GAME_SUPPORTS_SAVE )
4645GAME( 1983, starjacks,  starjack, sys1ppis, starjacks, bank00,   ROT270, "Stern",           "Star Jacker (Stern)", GAME_SUPPORTS_SAVE )
4646GAME( 1983, upndown,    0,        sys1ppi,  upndown,   nprinces, ROT270, "Sega",            "Up'n Down (315-5030)", GAME_SUPPORTS_SAVE )
4647GAME( 1983, upndownu,   upndown,  sys1ppi,  upndown,   bank00,   ROT270, "Sega",            "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE )
4648GAME( 1983, regulus,    0,        sys1ppis, regulus,   regulus,  ROT270, "Sega",            "Regulus (315-5033, Rev A.)", GAME_SUPPORTS_SAVE )
4649GAME( 1983, reguluso,   regulus,  sys1ppis, reguluso,  regulus,  ROT270, "Sega",            "Regulus (315-5033)", GAME_SUPPORTS_SAVE )
4650GAME( 1983, regulusu,   regulus,  sys1ppis, regulus,   bank00,   ROT270, "Sega",            "Regulus (not encrypted)", GAME_SUPPORTS_SAVE )
4651GAME( 1984, mrviking,   0,        sys1ppis, mrviking,  mrviking, ROT270, "Sega",            "Mister Viking (315-5041)", GAME_SUPPORTS_SAVE )
4652GAME( 1984, mrvikingj,  mrviking, sys1ppis, mrvikingj, mrviking, ROT270, "Sega",            "Mister Viking (315-5041, Japan)", GAME_SUPPORTS_SAVE )
4653GAME( 1984, swat,       0,        sys1ppi,  swat,      swat,     ROT270, "Coreland / Sega", "SWAT (315-5048)", GAME_SUPPORTS_SAVE )
4654GAME( 1984, flickyo,    flicky,   sys1ppi,  flicky,    flicky,   ROT0,   "Sega",            "Flicky (64k Version, System 1, 315-5051, set 1)", GAME_SUPPORTS_SAVE )
4655GAME( 1984, flickys1,   flicky,   sys1ppi,  flicky,    flicky,   ROT0,   "Sega",            "Flicky (64k Version, System 1, 315-5051, set 2)", GAME_SUPPORTS_SAVE )
4656GAME( 1984, wmatch,     0,        sys1ppis, wmatch,    wmatch,   ROT270, "Sega",            "Water Match (315-5064)", GAME_SUPPORTS_SAVE )
4657GAME( 1984, bullfgt,    0,        sys1ppi,  bullfgt,   bullfgtj, ROT0,   "Coreland / Sega", "Bullfight (315-5065)", GAME_SUPPORTS_SAVE )
4658GAME( 1985, nprinces,   seganinj, sys1ppi,  seganinj,  flicky,   ROT0,   "bootleg?",        "Ninja Princess (315-5051, 64k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
4659GAME( 1985, nprincesu,  seganinj, sys1ppi,  seganinj,  bank00,   ROT0,   "Sega",            "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE )
4660GAME( 1986, wboy2,      wboy,     sys1ppi,  wboy,      wboy2,    ROT0,   "Sega (Escape license)", "Wonder Boy (set 2, 315-5178)", GAME_SUPPORTS_SAVE )
4661GAME( 1986, wboy2u,     wboy,     sys1ppi,  wboy,      bank00,   ROT0,   "Sega (Escape license)", "Wonder Boy (set 2, not encrypted)", GAME_SUPPORTS_SAVE )
4662GAME( 1986, wbdeluxe,   wboy,     sys1ppi,  wbdeluxe,  bank00,   ROT0,   "Sega (Escape license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE )
4663GAME( 1986, nob,        nobb,     nob,      nob,       bank44,   ROT270, "Data East Corporation", "Noboranka (Japan)", GAME_NOT_WORKING )
4664GAME( 1986, nobb,       0,        nob,      nob,       nobb,     ROT270, "bootleg",               "Noboranka (Japan, bootleg)", GAME_SUPPORTS_SAVE )
4665
4666/* PIO-based System 1 */
4667GAME( 1984, flicky,     0,        sys1pio,  flicky,    flicky,   ROT0,   "Sega",            "Flicky (128k Version, System 2, 315-5051)", GAME_SUPPORTS_SAVE )
4668GAME( 1984, flickys2,   flicky,   sys1pio,  flicky,    bank00,   ROT0,   "Sega",            "Flicky (128k Version, System 2, not encrypted)", GAME_SUPPORTS_SAVE )
4669GAME( 1984, thetogyu,   bullfgt,  sys1pio,  bullfgt,   bullfgtj, ROT0,   "Coreland / Sega", "The Togyu (315-5065, Japan)", GAME_SUPPORTS_SAVE )
4670GAME( 1984, spatter,    0,        sys1pios, spatter,   spatter,  ROT0,   "Sega",            "Spatter", GAME_SUPPORTS_SAVE )
4671GAME( 1984, ssanchan,   spatter,  sys1pios, spatter,   spatter,  ROT0,   "Sega",            "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE )
4672GAME( 1985, pitfall2,   0,        sys1pio,  pitfall2,  pitfall2, ROT0,   "Sega",            "Pitfall II (315-5093)", GAME_SUPPORTS_SAVE )
4673GAME( 1985, pitfall2a,  pitfall2, sys1pio,  pitfall2,  pitfall2, ROT0,   "Sega",            "Pitfall II (315-5093, Flicky Conversion)", GAME_SUPPORTS_SAVE )
4674GAME( 1985, pitfall2u,  pitfall2, sys1pio,  pitfall2u, bank00,   ROT0,   "Sega",            "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE )
4675GAME( 1985, seganinj,   0,        sys1pio,  seganinj,  seganinj, ROT0,   "Sega",            "Sega Ninja (315-5102)", GAME_SUPPORTS_SAVE )
4676GAME( 1985, seganinju,  seganinj, sys1pio,  seganinj,  bank00,   ROT0,   "Sega",            "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE )
4677GAME( 1985, ninja,      seganinj, sys1pio,  seganinj,  seganinj, ROT0,   "Sega",            "Ninja (315-5102)", GAME_SUPPORTS_SAVE )
4678GAME( 1985, nprinceso,  seganinj, sys1pio,  seganinj,  nprinces, ROT0,   "Sega",            "Ninja Princess (315-5098, 128k Ver.)", GAME_SUPPORTS_SAVE )
4679GAME( 1985, nprincesb,  seganinj, sys1pio,  seganinj,  flicky,   ROT0,   "bootleg?",        "Ninja Princess (315-5051?, 128k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
4680GAME( 1985, imsorry,    0,        sys1pio,  imsorry,   imsorry,  ROT0,   "Coreland / Sega", "I'm Sorry (315-5110, US)", GAME_SUPPORTS_SAVE )
4681GAME( 1985, imsorryj,   imsorry,  sys1pio,  imsorry,   imsorry,  ROT0,   "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", GAME_SUPPORTS_SAVE )
4682GAME( 1985, teddybb,    0,        sys1pio,  teddybb,   teddybb,  ROT0,   "Sega",            "TeddyBoy Blues (315-5115, New Ver.)", GAME_SUPPORTS_SAVE )
4683GAME( 1985, teddybbo,   teddybb,  sys1pio,  teddybb,   teddybb,  ROT0,   "Sega",            "TeddyBoy Blues (315-5115, Old Ver.)", GAME_SUPPORTS_SAVE )
4684GAME( 1985, myhero,     0,        sys1pio,  myhero,    bank00,   ROT0,   "Sega",            "My Hero (US, not encrypted)", GAME_SUPPORTS_SAVE )
4685GAME( 1985, sscandal,   myhero,   sys1pio,  myhero,    myheroj,  ROT0,   "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", GAME_SUPPORTS_SAVE )
4686GAME( 1985, myherok,    myhero,   sys1pio,  myhero,    myherok,  ROT0,   "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE )
4687GAME( 1985, 4dwarrio,   0,        sys1pio,  4dwarrio,  4dwarrio, ROT0,   "Coreland / Sega", "4-D Warriors (315-5162)", GAME_SUPPORTS_SAVE )
4688GAME( 1986, raflesia,   0,        sys1pio,  raflesia,  4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", GAME_SUPPORTS_SAVE )
4689GAME( 1986, wboy,       0,        sys1pio,  wboy,      wboy,     ROT0,   "Sega (Escape license)", "Wonder Boy (set 1, 315-5177)", GAME_SUPPORTS_SAVE )
4690GAME( 1986, wboyo,      wboy,     sys1pio,  wboy,      wboyo,    ROT0,   "Sega (Escape license)", "Wonder Boy (set 1, 315-5135)", GAME_SUPPORTS_SAVE )
4691GAME( 1986, wboy3,      wboy,     sys1pio,  wboy3,     wboyo,    ROT0,   "Sega (Escape license)", "Wonder Boy (set 3, 315-5135)", GAME_SUPPORTS_SAVE )
4692GAME( 1986, wboy4,      wboy,     sys1pio,  wboy,      4dwarrio, ROT0,   "Sega (Escape license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", GAME_SUPPORTS_SAVE )
4693GAME( 1986, wboyu,      wboy,     sys1pio,  wboyu,     bank00,   ROT0,   "Sega (Escape license)", "Wonder Boy (not encrypted)", GAME_SUPPORTS_SAVE )
4694GAME( 1987, blockgal,   0,        sys1pio,  blockgal,  blockgal, ROT90,  "Sega / Vic Tokai", "Block Gal (MC-8123B, 317-0029)", GAME_SUPPORTS_SAVE)
4695
4696/* PIO-based System 1 with ROM banking */
4697GAME( 1985, hvymetal,   0,        sys1pio,  hvymetal,  hvymetal, ROT0,   "Sega",            "Heavy Metal (315-5135)", GAME_SUPPORTS_SAVE )
4698GAME( 1986, gardia,     0,        sys1pio,  gardia,    gardia,   ROT270, "Sega / Coreland", "Gardia (317-0006)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
4699GAME( 1986, brain,      0,        sys1pio,  brain,     bank44,   ROT0,   "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE )
4700
4701/* System 2 */
4702GAME( 1985, choplift,   0,        sys2row,  choplift,  choplift, ROT0,   "Sega",            "Choplifter (8751 315-5151)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4703GAME( 1985, chopliftu,  choplift, sys2row,  choplift,  bank0c,   ROT0,   "Sega",            "Choplifter (unprotected)", GAME_SUPPORTS_SAVE )
4704GAME( 1985, chopliftbl, choplift, sys2row,  choplift,  bank0c,   ROT0,   "bootleg",         "Choplifter (bootleg)", GAME_SUPPORTS_SAVE )
4705GAME( 1985, shtngmst,   0,        sys2s,    shtngmst,  shtngmst, ROT0,   "Sega",            "Shooting Master (Rev A, 8751 315-5159a)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4706GAME( 1985, shtngmst1,  shtngmst, sys2s,    shtngmst,  shtngmst, ROT0,   "Sega",            "Shooting Master (8751 315-5159)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4707GAME( 1985, shtngmsta,  shtngmst, sys2s,    shtngmst,  shtngmst, ROT0,   "Sega [EVG]",      "Shooting Master (EVG, 8751 315-5159)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
4708GAME( 1986, gardiab,    gardia,   sys2,     gardia,    gardiab,  ROT270, "bootleg",         "Gardia (317-0007?, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
4709GAME( 1986, wboysys2,   wboy,     sys2,     wboysys2,  wboysys2, ROT0,   "Sega (Escape license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE )
4710GAME( 1987, tokisens,   0,        sys2,     tokisens,  bank0c,   ROT90,  "Sega",            "Toki no Senshi - Chrono Soldier", GAME_SUPPORTS_SAVE )
4711GAME( 1987, wbml,       0,        sys2,     wbml,      wbml,     ROT0,   "Sega / Westone",  "Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)", GAME_SUPPORTS_SAVE )
4712GAME( 1987, wbmljo,     wbml,     sys2,     wbml,      wbml,     ROT0,   "Sega / Westone",  "Wonder Boy in Monster Land (Japan Old Ver., MC-8123, 317-0043)", GAME_SUPPORTS_SAVE )
4713GAME( 1987, wbmljb,     wbml,     sys2,     wbml,      bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (Japan not encrypted)", GAME_SUPPORTS_SAVE )
4714GAME( 1987, wbmlb,      wbml,     sys2,     wbml,      bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (English bootleg)", GAME_SUPPORTS_SAVE)
4715GAME( 1987, wbmlbg,     wbml,     sys2,     wbml,      bootlegb, ROT0,   "bootleg",         "Wonder Boy in Monster Land (Galaxy Electronics English bootleg)", GAME_SUPPORTS_SAVE)
4716GAME( 1987, dakkochn,   0,        sys2,     dakkochn,  dakkochn, ROT0,   "Whiteboard",      "DakkoChan House (MC-8123, 317-0014)", GAME_SUPPORTS_SAVE )
4717GAME( 1987, blockgalb,  blockgal, sys2,     blockgal,  bootleg,  ROT90,  "bootleg",         "Block Gal (bootleg)", GAME_SUPPORTS_SAVE )
4718GAME( 1988, ufosensi,   0,        sys2rows, ufosensi,  ufosensi, ROT0,   "Sega",            "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", GAME_SUPPORTS_SAVE )
4719GAME( 1988, ufosensib,  ufosensi, sys2rows, ufosensi,  bootlegb, ROT0,   "bootleg",         "Ufo Senshi Yohko Chan (not encrypted)", GAME_SUPPORTS_SAVE )
src/mame/drivers/powerins.c
r4470r4471
130130static ADDRESS_MAP_START( writemem_snd, ADDRESS_SPACE_PROGRAM, 8 )
131131   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
132132   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
133//  AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP) // ? written only once ?
134//  AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) // ?
133//  AM_RANGE(0xe000, 0xe000) AM_WRITENOP // ? written only once ?
134//  AM_RANGE(0xe001, 0xe001) AM_WRITENOP // ?
135135ADDRESS_MAP_END
136136
137137static ADDRESS_MAP_START( powerins_io_snd, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/niyanpai.c
r4470r4471
304304
305305   AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
306306
307   AM_RANGE(0x200200, 0x200201) AM_WRITE(SMH_NOP)         // unknown
308   AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP)         // unknown
309   AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP)         // unknown
307   AM_RANGE(0x200200, 0x200201) AM_WRITENOP         // unknown
308   AM_RANGE(0x240000, 0x240009) AM_WRITENOP         // unknown
309   AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP         // unknown
310310
311311   AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w)
312312   AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w)
r4470r4471
366366   AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
367367
368368   AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w)   // inputport select
369   AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP)         // unknown
370   AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP)         // unknown
369   AM_RANGE(0x240000, 0x240009) AM_WRITENOP         // unknown
370   AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP         // unknown
371371
372372   AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w)
373373   AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w)
r4470r4471
429429   AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
430430
431431   AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w)   // inputport select
432   AM_RANGE(0x240000, 0x240009) AM_WRITE(SMH_NOP)         // unknown
433   AM_RANGE(0x240200, 0x2403ff) AM_WRITE(SMH_NOP)         // unknown
432   AM_RANGE(0x240000, 0x240009) AM_WRITENOP         // unknown
433   AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP         // unknown
434434
435435   AM_RANGE(0x240400, 0x24041f) AM_WRITE(niyanpai_blitter_0_w)
436436   AM_RANGE(0x240420, 0x24043f) AM_WRITE(niyanpai_clut_0_w)
src/mame/drivers/exedexes.c
r4470r4471
5858   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
5959   AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w)
6060   AM_RANGE(0xc804, 0xc804) AM_WRITE(exedexes_c804_w)   /* coin counters + text layer enable */
61   AM_RANGE(0xc806, 0xc806) AM_WRITE(SMH_NOP) /* Watchdog ?? */
61   AM_RANGE(0xc806, 0xc806) AM_WRITENOP /* Watchdog ?? */
6262   AM_RANGE(0xd000, 0xd3ff) AM_WRITE(exedexes_videoram_w) AM_BASE(&videoram)
6363   AM_RANGE(0xd400, 0xd7ff) AM_WRITE(exedexes_colorram_w) AM_BASE(&colorram)
6464   AM_RANGE(0xd800, 0xd801) AM_WRITE(SMH_RAM) AM_BASE(&exedexes_nbg_yscroll)
src/mame/drivers/seta2.c
r4470r4471
27832783
27842784ROM_START( trophyh ) /* V1.0 is currently the only known version */
27852785   ROM_REGION( 0x200000, "maincpu", 0 )      /* TMP68301 Code */
2786   ROM_LOAD16_BYTE( "as1106e01.u06", 0x000000, 0x100000, CRC(b4950882) SHA1(2749f7ffc5b543c9f39815f0913a1d1e385b63f4) )
2787   ROM_LOAD16_BYTE( "as1107e01.u07", 0x000001, 0x100000, CRC(19ee67cb) SHA1(e75ce66d3ff5aad46ba997c09d6514260e617f55) )
2786   ROM_LOAD16_BYTE( "as1106e01.u06", 0x000000, 0x100000, CRC(b4950882) SHA1(2749f7ffc5b543c9f39815f0913a1d1e385b63f4) ) /* checksum D8DA printed on label */
2787   ROM_LOAD16_BYTE( "as1107e01.u07", 0x000001, 0x100000, CRC(19ee67cb) SHA1(e75ce66d3ff5aad46ba997c09d6514260e617f55) ) /* checksum CEEF printed on label */
27882788
27892789   ROM_REGION( 0x2000000, "gfx1", ROMREGION_DISPOSE )   /* Sprites */
27902790   ROM_LOAD( "as1101m01.u38", 0x0000000, 0x800000, CRC(855ed675) SHA1(84ce229a9feb6331413253a5aed10b362e8102e5) )
src/mame/drivers/flkatck.c
r4470r4471
1515#include "cpu/hd6309/hd6309.h"
1616#include "sound/2151intf.h"
1717#include "sound/k007232.h"
18#include "konamipt.h"
1819
1920/* from video/flkatck.c */
2021VIDEO_START( flkatck );
r4470r4471
149150
150151
151152static INPUT_PORTS_START( flkatck )
152   PORT_START("DSW1")   /* DSW #1 */
153   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
154   PORT_DIPSETTING(   0x02, DEF_STR( 4C_1C ) )
155   PORT_DIPSETTING(   0x05, DEF_STR( 3C_1C ) )
156   PORT_DIPSETTING(   0x08, DEF_STR( 2C_1C ) )
157   PORT_DIPSETTING(   0x04, DEF_STR( 3C_2C ) )
158   PORT_DIPSETTING(   0x01, DEF_STR( 4C_3C ) )
159   PORT_DIPSETTING(   0x0f, DEF_STR( 1C_1C ) )
160   PORT_DIPSETTING(   0x03, DEF_STR( 3C_4C ) )
161   PORT_DIPSETTING(   0x07, DEF_STR( 2C_3C ) )
162   PORT_DIPSETTING(   0x0e, DEF_STR( 1C_2C ) )
163   PORT_DIPSETTING(   0x06, DEF_STR( 2C_5C ) )
164   PORT_DIPSETTING(   0x0d, DEF_STR( 1C_3C ) )
165   PORT_DIPSETTING(   0x0c, DEF_STR( 1C_4C ) )
166   PORT_DIPSETTING(   0x0b, DEF_STR( 1C_5C ) )
167   PORT_DIPSETTING(   0x0a, DEF_STR( 1C_6C ) )
168   PORT_DIPSETTING(   0x09, DEF_STR( 1C_7C ) )
169   PORT_DIPSETTING(   0x00, DEF_STR( Free_Play ) )
170   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
171   PORT_DIPSETTING(   0x20, DEF_STR( 4C_1C ) )
172   PORT_DIPSETTING(   0x50, DEF_STR( 3C_1C ) )
173   PORT_DIPSETTING(   0x80, DEF_STR( 2C_1C ) )
174   PORT_DIPSETTING(   0x40, DEF_STR( 3C_2C ) )
175   PORT_DIPSETTING(   0x10, DEF_STR( 4C_3C ) )
176   PORT_DIPSETTING(   0xf0, DEF_STR( 1C_1C ) )
177   PORT_DIPSETTING(   0x30, DEF_STR( 3C_4C ) )
178   PORT_DIPSETTING(   0x70, DEF_STR( 2C_3C ) )
179   PORT_DIPSETTING(   0xe0, DEF_STR( 1C_2C ) )
180   PORT_DIPSETTING(   0x60, DEF_STR( 2C_5C ) )
181   PORT_DIPSETTING(   0xd0, DEF_STR( 1C_3C ) )
182   PORT_DIPSETTING(   0xc0, DEF_STR( 1C_4C ) )
183   PORT_DIPSETTING(   0xb0, DEF_STR( 1C_5C ) )
184   PORT_DIPSETTING(   0xa0, DEF_STR( 1C_6C ) )
185   PORT_DIPSETTING(   0x90, DEF_STR( 1C_7C ) )
186   //PORT_DIPSETTING(    0x00, "Invalid" )
153   PORT_START("DSW1")
154   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
155   /* "Invalid" = both coin slots disabled */
187156
188   PORT_START("DSW2")   /* DSW #2 */
157   PORT_START("DSW2")
189158   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
190159   PORT_DIPSETTING(   0x03, "1" )
191160   PORT_DIPSETTING(   0x02, "2" )
r4470r4471
208177   PORT_DIPSETTING(   0x80, DEF_STR( Off ) )
209178   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
210179
211   PORT_START("DSW3")   /* DSW #3 */
180   PORT_START("DSW3")
212181   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
213182   PORT_DIPSETTING(   0x01, DEF_STR( Off ) )
214183   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
r4470r4471
221190   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
222191   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
223192
224   PORT_START("COIN")   /* COINSW & START */
225   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
226   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
227   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )   /* service */
228   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
229   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
230   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
231   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
232   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
193   PORT_START("COIN")
194   KONAMI8_SYSTEM_UNK
233195
234   PORT_START("P1")   /* PLAYER 1 INPUTS */
235   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
236   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
237   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(1)
238   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
239   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
240   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
241   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
242   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
196   PORT_START("P1")
197   KONAMI8_B12_UNK(1)
243198
244   PORT_START("P2")   /* PLAYER 2 INPUTS */
245   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
246   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
247   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(2)
248   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
249   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
250   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
251   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
252   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
199   PORT_START("P2")
200   KONAMI8_B12_UNK(2)
253201INPUT_PORTS_END
254202
255203static const gfx_layout gfxlayout =
r4470r4471
358306
359307GAME( 1987, mx5000,  0,     flkatck, flkatck, 0, ROT90, "Konami", "MX5000", 0 )
360308GAME( 1987, flkatck, mx5000, flkatck, flkatck, 0, ROT90, "Konami", "Flak Attack (Japan)", 0 )
361
src/mame/drivers/contra.c
r4470r4471
1919#include "driver.h"
2020#include "cpu/m6809/m6809.h"
2121#include "sound/2151intf.h"
22#include "konamipt.h"
2223
2324extern UINT8 *contra_fg_vram,*contra_fg_cram;
2425extern UINT8 *contra_bg_vram,*contra_bg_cram;
r4470r4471
8889   AM_RANGE(0x0018, 0x0018) AM_WRITE(contra_coin_counter_w)
8990   AM_RANGE(0x001a, 0x001a) AM_WRITE(contra_sh_irqtrigger_w)
9091   AM_RANGE(0x001c, 0x001c) AM_WRITE(cpu_sound_command_w)
91   AM_RANGE(0x001e, 0x001e) AM_WRITE(SMH_NOP)   /* ? */
92   AM_RANGE(0x001e, 0x001e) AM_WRITENOP   /* ? */
9293   AM_RANGE(0x0060, 0x0067) AM_WRITE(contra_K007121_ctrl_1_w)
9394   AM_RANGE(0x0c00, 0x0cff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram)
9495   AM_RANGE(0x1000, 0x1fff) AM_WRITE(SMH_RAM)
r4470r4471
115116
116117static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
117118   AM_RANGE(0x2000, 0x2001) AM_DEVWRITE("ym", ym2151_w)
118   AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_NOP) /* read triggers irq reset and latch read (in the hardware only). */
119   AM_RANGE(0x4000, 0x4000) AM_WRITENOP /* read triggers irq reset and latch read (in the hardware only). */
119120   AM_RANGE(0x6000, 0x67ff) AM_WRITE(SMH_RAM)
120121   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
121122ADDRESS_MAP_END
r4470r4471
124125
125126static INPUT_PORTS_START( contra )
126127   PORT_START("SYSTEM")
127   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
128   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
129   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
130   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
131   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
132   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
133   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
134   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
128   KONAMI8_SYSTEM_UNK
135129
136130   PORT_START("P1")
137   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
138   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
139   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
140   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
141   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
142   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
143   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
144   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
131   KONAMI8_B12_UNK(1)
145132
146133   PORT_START("P2")
147   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
148   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
149   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
150   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
151   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
152   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
153   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
154   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
134   KONAMI8_B12_UNK(2)
155135
156136   PORT_START("DSW1")
157   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
158   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
159   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
160   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
161   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
162   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
163   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
164   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
165   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
166   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
167   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
168   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
169   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
170   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
171   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
172   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
173   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
174   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
175   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
176   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
177   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
178   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
179   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
180   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
181   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
182   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
183   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
184   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
185   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
186   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
187   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
188   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
189   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )//marvins.c
190   /* 0x00 is invalid */
137   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
138   /* "No Coin B" = coins produce sound, but no effect on coin counter */
191139
192140   PORT_START("DSW2")
193141   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
src/mame/drivers/zn.c
r4470r4471
12011201   AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w)
12021202   AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
12031203   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
1204   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
1204   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
12051205   AM_RANGE(0xee00, 0xee00) AM_NOP /* ? */
1206   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
1206   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
12071207   AM_RANGE(0xf200, 0xf200) AM_WRITE(fx1a_sound_bankswitch_w)
12081208ADDRESS_MAP_END
12091209
src/mame/drivers/volfied.c
r4470r4471
7979   AM_RANGE(0x600000, 0x600001) AM_WRITE(volfied_video_mask_w)
8080   AM_RANGE(0x700000, 0x700001) AM_WRITE(volfied_sprite_ctrl_w)
8181   AM_RANGE(0xd00000, 0xd00001) AM_READWRITE(volfied_video_ctrl_r, volfied_video_ctrl_w)
82   AM_RANGE(0xe00000, 0xe00001) AM_WRITE(taitosound_port16_lsb_w)
83   AM_RANGE(0xe00002, 0xe00003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
82   AM_RANGE(0xe00000, 0xe00001) AM_WRITE8(taitosound_port_w, 0x00ff)
83   AM_RANGE(0xe00002, 0xe00003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
8484   AM_RANGE(0xf00000, 0xf007ff) AM_READWRITE(volfied_cchip_ram_r, volfied_cchip_ram_w)
8585   AM_RANGE(0xf00802, 0xf00803) AM_READWRITE(volfied_cchip_ctrl_r, volfied_cchip_ctrl_w)
8686   AM_RANGE(0xf00c00, 0xf00c01) AM_WRITE(volfied_cchip_bank_w)
r4470r4471
9292   AM_RANGE(0x8800, 0x8800) AM_WRITE(taitosound_slave_port_w)
9393   AM_RANGE(0x8801, 0x8801) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
9494   AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
95   AM_RANGE(0x9800, 0x9800) AM_WRITE(SMH_NOP)    /* ? */
95   AM_RANGE(0x9800, 0x9800) AM_WRITENOP    /* ? */
9696ADDRESS_MAP_END
9797
9898
src/mame/drivers/itech32.c
r4470r4471
6464
6565    Later versions of games (Golden Tee Golf, Shuffle Shot & World Class
6666    Bowling) converged to a single platform, the large single PCB
67    (P/N 1082 Rev 2).  With the correct jumpers setting (surface mounted)
67    (P/N 1083 Rev 2).  With the correct jumpers setting (surface mounted)
6868    and chipset this board can run any of the 3 listed programs.
6969
7070    Starting with GT Fore!, I.T. moved to a redesigned hardware platform known as the Eagle platform.
r4470r4471
21792179   ROM_LOAD16_BYTE( "hotmem.srom0", 0x000000, 0x80000, CRC(c1103224) SHA1(52cf341ff9092ecb8cb94f66a96ee0c726bf1412) )
21802180ROM_END
21812181
2182ROM_START( wcbowldx )   /* Deluxe version 2.00 (PCB P/N 1082 Rev 2), This version is derived from the Tournament version, but tournament features have be removed/disabled */
2182ROM_START( wcbowldx )   /* Deluxe version 2.00 (PCB P/N 1083 Rev 2), This version is derived from the Tournament version, but tournament features have be removed/disabled */
21832183   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
21842184   ROM_LOAD32_BYTE( "wcbdprm0.200", 0x00000, 0x20000, CRC(280df7f0) SHA1(dacffe8fc21263093b0f4a4fbf444abd49afbff1) )
21852185   ROM_LOAD32_BYTE( "wcbdprm1.200", 0x00001, 0x20000, CRC(526eded0) SHA1(106d5503ed4db2411e1f3446d613eac525a8a9cc) )
r4470r4471
22152215ROM_END
22162216
22172217
2218ROM_START( wcbwl140 )   /* Version 1.40 Tournament (PCB P/N 1082 Rev 2) */
2218ROM_START( wcbwl140 )   /* Version 1.40 Tournament (PCB P/N 1083 Rev 2) */
22192219   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
22202220   ROM_LOAD32_BYTE( "wcbfprm0.140", 0x00000, 0x20000, CRC(9d31ceb1) SHA1(d147976a763ba1e18d861351b12c5d275b94a562) ) /* Labeled "WCBF PROM0 1.40" ect */
22212221   ROM_LOAD32_BYTE( "wcbfprm1.140", 0x00001, 0x20000, CRC(c6669452) SHA1(ba58da7bee5120682e2306454da287c969014899) )
r4470r4471
22512251ROM_END
22522252
22532253
2254ROM_START( wcbowl )   /* Version 1.66 (PCB P/N 1082 Rev 2) */
2254ROM_START( wcbowl )   /* Version 1.66 (PCB P/N 1083 Rev 2) */
22552255   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
22562256   ROM_LOAD32_BYTE( "wcb_prm0.166", 0x00000, 0x20000, CRC(f6774112) SHA1(cb09bb3e40490b3cdc3a5f7d18168384b5b29d85) )
22572257   ROM_LOAD32_BYTE( "wcb_prm1.166", 0x00001, 0x20000, CRC(931821ae) SHA1(328cd78ba70fe3cb0bdbc53833fe6fb153aceaea) )
r4470r4471
22832283ROM_END
22842284
22852285
2286ROM_START( wcbwl165 )   /* Version 1.65 (PCB P/N 1082 Rev 2) */
2286ROM_START( wcbwl165 )   /* Version 1.65 (PCB P/N 1083 Rev 2) */
22872287   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
22882288   ROM_LOAD32_BYTE( "wcb_prm0.165", 0x00000, 0x20000, CRC(cf0f6c25) SHA1(90685288994dce73d5b1070a55fca3f1713c5bb6) )
22892289   ROM_LOAD32_BYTE( "wcb_prm1.165", 0x00001, 0x20000, CRC(076ab158) SHA1(e6d8a6726e27ba6916d4711dff88f26f1dc162e1) )
r4470r4471
23152315ROM_END
23162316
23172317
2318ROM_START( wcbwl161 )   /* Version 1.61 (PCB P/N 1082 Rev 2) */
2318ROM_START( wcbwl161 )   /* Version 1.61 (PCB P/N 1083 Rev 2) */
23192319   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
23202320   ROM_LOAD32_BYTE( "wcb_prm0.161", 0x00000, 0x20000, CRC(b879d4a7) SHA1(8b5af3f4d3522bdb8e1d6092b2e311fbfaec2bd0) )
23212321   ROM_LOAD32_BYTE( "wcb_prm1.161", 0x00001, 0x20000, CRC(49f3ed6a) SHA1(6c6857bd3fbfe0cfeaf0e512bbbd795376a21472) )
r4470r4471
23472347ROM_END
23482348
23492349
2350ROM_START( wcbwl16 )   /* Version 1.6 (PCB P/N 1082 Rev 2), This is the first set to move to the single board platform */
2350ROM_START( wcbwl16 )   /* Version 1.6 (PCB P/N 1083 Rev 2), This is the first set to move to the single board platform */
23512351   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
23522352   ROM_LOAD32_BYTE( "wcb_prm0.16n", 0x00000, 0x20000, CRC(332c558f) SHA1(179b763e2189c11cf6751eb6c419fe4417b288a8) ) /* Program roms labeled as "WCB PROM0 V1.6N" ect */
23532353   ROM_LOAD32_BYTE( "wcb_prm1.16n", 0x00001, 0x20000, CRC(c5750857) SHA1(8121b56d304ab405b06d4aa4c7d2db2f912f0bf2) )
r4470r4471
26592659ROM_END
26602660
26612661
2662ROM_START( shufshot )   /* Version 1.40 (PCB P/N 1082 Rev 2) */
2662ROM_START( shufshot )   /* Version 1.40 (PCB P/N 1083 Rev 2) */
26632663   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
26642664   ROM_LOAD32_BYTE( "shotprm0.140", 0x00000, 0x20000, CRC(33c0c98b) SHA1(9960a1e8131e5dde33450560665f315e5a97dc05) )
26652665   ROM_LOAD32_BYTE( "shotprm1.140", 0x00001, 0x20000, CRC(d30a8831) SHA1(3a7937b542f703dfc2ae74b6fdb2ac6a8e22bdbd) )
r4470r4471
26942694ROM_END
26952695
26962696
2697ROM_START( sshot139 )   /* Version 1.39 (PCB P/N 1082 Rev 2) */
2697ROM_START( sshot139 )   /* Version 1.39 (PCB P/N 1083 Rev 2) */
26982698   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
26992699   ROM_LOAD32_BYTE( "shotprm0.139", 0x00000, 0x20000, CRC(e811fc4a) SHA1(9e1d8f64ac89ac865929f6a23f66d95eeeda3ac9) )
27002700   ROM_LOAD32_BYTE( "shotprm1.139", 0x00001, 0x20000, CRC(f9d120c5) SHA1(f94216f1fb6d810ddee98479e83f0719b30b768f) )
r4470r4471
27292729ROM_END
27302730
27312731
2732ROM_START( sshot137 )   /* Version 1.37 (PCB P/N 1082 Rev 2) */
2732ROM_START( sshot137 )   /* Version 1.37 (PCB P/N 1083 Rev 2) */
27332733   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
27342734   ROM_LOAD32_BYTE( "shotprm0.137", 0x00000, 0x20000, CRC(6499c76f) SHA1(60fdaefb09088ac609addd40569bd7fab12593bc) )
27352735   ROM_LOAD32_BYTE( "shotprm1.137", 0x00001, 0x20000, CRC(64fb47a4) SHA1(32ce9d91b16b8aaf545c0a22842ad8d806727a17) )
r4470r4471
27642764ROM_END
27652765
27662766
2767ROM_START( gt3d )   /* Version 1.93N for the single large type PCB P/N 1082 Rev 2 */
2767ROM_START( gt3d )   /* Version 1.93N for the single large type PCB P/N 1083 Rev 2 */
27682768   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
27692769   ROM_LOAD32_BYTE( "gtg3prm0.93n", 0x00000, 0x80000, CRC(cacacb44) SHA1(747f48a52e140ab3e321b8f6a96f06bc70dc7cfa) )
27702770   ROM_LOAD32_BYTE( "gtg3prm1.93n", 0x00001, 0x80000, CRC(4c172d7f) SHA1(d4217d5d4d561e46e0213e6f8dc8d9a874f86877) )
r4470r4471
30913091ROM_END
30923092
30933093
3094ROM_START( gt3dt231 ) /* Version 2.31 Tournament Edition (PCB P/N 1082 Rev 2) */
3094ROM_START( gt3dt231 ) /* Version 2.31 Tournament Edition (PCB P/N 1083 Rev 2) */
30953095   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
30963096   ROM_LOAD32_BYTE( "gtg3prm0.231", 0x00000, 0x100000, CRC(92a5c3e9) SHA1(a20c9ffb9b08eff1d59b77d08e6411275c58d932) )
30973097   ROM_LOAD32_BYTE( "gtg3prm1.231", 0x00001, 0x100000, CRC(a3b60226) SHA1(2b78fb2917ad66883d2353d82f48b5aeb599d444) )
r4470r4471
31223122ROM_END
31233123
31243124
3125ROM_START( gt3dt211 ) /* Version 2.11 Tournament Edition (PCB P/N 1082 Rev 2) */
3125ROM_START( gt3dt211 ) /* Version 2.11 Tournament Edition (PCB P/N 1083 Rev 2) */
31263126   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
31273127   ROM_LOAD32_BYTE( "gtg3prm0.211", 0x00000, 0x100000, CRC(54360fdf) SHA1(05687f7f41f719458ee72b4517c7be3e33ee80cf) )
31283128   ROM_LOAD32_BYTE( "gtg3prm1.211", 0x00001, 0x100000, CRC(9142ebb7) SHA1(ae3c9bf1a954c2f790cdb7953a6fea3d1d277aa9) )
r4470r4471
33083308ROM_END
33093309
33103310
3311ROM_START( gt97t243 ) /* Version 2.43 Tournament Edition (PCB P/N 1082 Rev 2) */
3311ROM_START( gt97t243 ) /* Version 2.43 Tournament Edition (PCB P/N 1083 Rev 2) */
33123312   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
33133313   ROM_LOAD32_BYTE( "gt97prm0.243", 0x00000, 0x100000, CRC(b8de60f1) SHA1(06b1f8b9d0b878d5a19e6756957e2df19e013ad6) )
33143314   ROM_LOAD32_BYTE( "gt97prm1.243", 0x00001, 0x100000, CRC(8152e5d3) SHA1(2a4f8acc6a4e33864c97d5974e2230b1cf3632ea) )
r4470r4471
33393339ROM_END
33403340
33413341
3342ROM_START( gt97t240 ) /* Version 2.40 Tournament Edition (PCB P/N 1082 Rev 2) */
3342ROM_START( gt97t240 ) /* Version 2.40 Tournament Edition (PCB P/N 1083 Rev 2) */
33433343   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
33443344   ROM_LOAD32_BYTE( "gt97prm0.240", 0x00000, 0x100000, CRC(88a386d0) SHA1(003dbf784125b1a442f85e18f8161695dcacc3a8) )
33453345   ROM_LOAD32_BYTE( "gt97prm1.240", 0x00001, 0x100000, CRC(b0d751aa) SHA1(7e6ab9c2bb0bd4f50360655c59f48c44f6135f4f) )
r4470r4471
34633463ROM_END
34643464
34653465
3466ROM_START( gt98t303 )   /* Version 3.03 Tournament Edition (PCB P/N 1082 Rev 2) */
3466ROM_START( gt98t303 )   /* Version 3.03 Tournament Edition (PCB P/N 1083 Rev 2) */
34673467   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
34683468   ROM_LOAD32_BYTE( "gt98prm0.303", 0x00000, 0x100000, CRC(e3879c30) SHA1(fa9dd2df8969a98a3c87c6a96594e1f49ca7ec91) )
34693469   ROM_LOAD32_BYTE( "gt98prm1.303", 0x00001, 0x100000, CRC(6a42ab1e) SHA1(9d8c5a48f0b91dcc8898913eec3d09ddded0f43d) )
r4470r4471
35623562ROM_END
35633563
35643564
3565ROM_START( gt99t400 )   /* Version 4.00 Tournament Edition (PCB P/N 1082 Rev 2) */
3565ROM_START( gt99t400 )   /* Version 4.00 Tournament Edition (PCB P/N 1083 Rev 2) */
35663566   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
35673567   ROM_LOAD32_BYTE( "gt99prm0.400", 0x00000, 0x100000, CRC(bc58e0a2) SHA1(9e207acb860d532238f6105fd5b0d283056e016f) )
35683568   ROM_LOAD32_BYTE( "gt99prm1.400", 0x00001, 0x100000, CRC(89d8cc6b) SHA1(ff2a5452c1c3a14c22abe380cb1ce263c23cc071) )
r4470r4471
35963596ROM_END
35973597
35983598
3599ROM_START( gtroyal )   /* Version 4.02T EDM (Tournament Edition, PCB P/N 1082 Rev 2) */
3599ROM_START( gtroyal )   /* Version 4.02T EDM (Tournament Edition, PCB P/N 1083 Rev 2) */
36003600   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
36013601   ROM_LOAD32_BYTE( "gtr_prm0.402", 0x00000, 0x100000, CRC(ae499ea3) SHA1(0de651900fd92b2de3fcbc092c1292d546f12819) )
36023602   ROM_LOAD32_BYTE( "gtr_prm1.402", 0x00001, 0x100000, CRC(87ee04b5) SHA1(2c4c4a80073bfd28066bef371fbd1008149cc56c) )
r4470r4471
36983698ROM_END
36993699
37003700
3701ROM_START( gt2kt500 ) /* Version 5.00 Tournament Edition (PCB P/N 1082 Rev 2) */
3701ROM_START( gt2kt500 ) /* Version 5.00 Tournament Edition (PCB P/N 1083 Rev 2) */
37023702   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
37033703   ROM_LOAD32_BYTE( "gt2kprm0.500", 0x00000, 0x100000, CRC(8f20f9eb) SHA1(e7b19c34fff39040b8849483146303d4eb394da6) )
37043704   ROM_LOAD32_BYTE( "gt2kprm1.500", 0x00001, 0x100000, CRC(bdecc1f5) SHA1(f97edb54cffdba68d46dfb86d884192ffaa0d204) )
r4470r4471
37323732ROM_END
37333733
37343734
3735ROM_START( gtsuprem ) /* Version 5.10T ELC S (Tournament Edition, PCB P/N 1082 Rev 2) */
3735ROM_START( gtsuprem ) /* Version 5.10T ELC S (Tournament Edition, PCB P/N 1083 Rev 2) */
37363736   ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
37373737   ROM_LOAD32_BYTE( "gts_prm0.510", 0x00000, 0x100000, CRC(a14f7e2b) SHA1(fa913452701e580a9242994020a42e0be7d41a60) ) /* chips labeled as "GTG SUP ELC PROM0 5.10T" ect */
37383738   ROM_LOAD32_BYTE( "gts_prm1.510", 0x00001, 0x100000, CRC(772f4dc9) SHA1(c44c1893f28386b6457bffd0a85b361c1033a805) )
r4470r4471
39723972   /*
39733973        The newest versions of World Class Bowling are on the same exact
39743974        platform as Shuffle Shot. So We'll use the same general INIT
3975        routine for these two programs.  IE: PCB P/N 1082 Rev 2
3975        routine for these two programs.  IE: PCB P/N 1083 Rev 2
39763976    */
39773977   init_program_rom(machine);
39783978   itech32_vram_height = 1024;
r4470r4471
41554155      ^^ ^ ^^^
41564156    Game | Version
41574157         |
4158    v = Version (AAMA 676266+ PCB P/N 1082 Rev 2)
4158    v = Version (AAMA 676266+ PCB P/N 1083 Rev 2)
41594159    l = Long ROM board:
41604160        Main  P/N 1064 Rev 1
41614161        ROM   P/N 1080 Rev 5
r4470r4471
41644164        Main  P/N 1064 Rev 1
41654165        ROM   P/N 1069 Rev 2 or P/N 1088 Rev 0 (1 Trackball Connector)
41664166        Sound P/N 1078 Rev 1 or P/N 1066 Rev 2
4167    n = Non-tournament (AAMA 676266+) PCB P/N 1082 Rev 2 - Applies only for GT3D
4168    t = Tournament PCB P/N 1082 Rev 2, with necessary chips on board:
4167    n = Non-tournament (AAMA 676266+) PCB P/N 1083 Rev 2 - Applies only for GT3D
4168    t = Tournament PCB P/N 1083 Rev 2, with necessary chips on board:
41694169        Philips SCN68681 (DUART) & ST Timekeeper (M48T02-120PC1) with an additional 3.6864MHz OSC
41704170
41714171    NOTE: Due to various different upgrade packages from IT, the 3 tier boards can end up with any combination
r4470r4471
41814181  GT Diamond Edition Tournament is a Euro GT Classic (Not currently dumped)
41824182     This would be the only known tournament version of Classic
41834183
4184NOTE: There is an "8 Meg board" version of the P/N 1082 Rev 2 PCB, so GROM0_0 through GROM0_3 are 8 meg roms and labeled "GTxx GROM0_0 **" ect
4184NOTE: There is an "8 Meg board" version of the P/N 1083 Rev 2 PCB, so GROM0_0 through GROM0_3 are 8 meg roms and labeled "GTxx GROM0_0 **" ect
41854185      while GROM1_0 through GROM1_3 are 4 meg roms matching "4 Meg board" GROM2_0 through GROM2_3 and are labeled "GTxx GROM1_0 *" ect
41864186      It is possible to find these rom combinations on any given GT board set.  There is only 1 known GT set which specificly checks for 8 meg
41874187      roms under the GROM Checksum test.
src/mame/drivers/mexico86.c
r4470r4471
9494   AM_RANGE(0xe900, 0xefff) AM_WRITE(SMH_RAM)
9595   AM_RANGE(0xf000, 0xf000) AM_WRITE(mexico86_bankswitch_w)  /* program and gfx ROM banks */
9696   AM_RANGE(0xf008, 0xf008) AM_WRITE(mexico86_f008_w)    /* cpu reset lines + other unknown stuff */
97   AM_RANGE(0xf018, 0xf018) AM_WRITE(SMH_NOP)    // watchdog_reset_w },
97   AM_RANGE(0xf018, 0xf018) AM_WRITENOP    // watchdog_reset_w },
9898   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM)    /* communication ram */
9999ADDRESS_MAP_END
100100
r4470r4471
127127   AM_RANGE(0x0001, 0x0001) AM_WRITE(mexico86_68705_portB_w)
128128   AM_RANGE(0x0004, 0x0004) AM_WRITE(mexico86_68705_ddrA_w)
129129   AM_RANGE(0x0005, 0x0005) AM_WRITE(mexico86_68705_ddrB_w)
130   AM_RANGE(0x000a, 0x000a) AM_WRITE(SMH_NOP)    /* looks like a bug in the code, writes to */
130   AM_RANGE(0x000a, 0x000a) AM_WRITENOP    /* looks like a bug in the code, writes to */
131131                           /* 0x0a (=10dec) instead of 0x10 */
132132   AM_RANGE(0x0010, 0x007f) AM_WRITE(SMH_RAM)
133133   AM_RANGE(0x0080, 0x07ff) AM_WRITE(SMH_ROM)
src/mame/drivers/fitfight.c
r4470r4471
277277};
278278
279279
280// #define PRIORITY_EASINESS_TO_PLAY
281
280282/* I've put the inputs the same way they can be read in the "test mode" */
281283
282284static INPUT_PORTS_START( fitfight )
r4470r4471
313315   PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )         // "Fault" (= "Tilt" ?)
314316   PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
315317   /* MSB : SW2 -> 0xe04c26.b (cpl) */
316   PORT_DIPNAME( 0xf800, 0xf800, "Time" )
318   PORT_DIPNAME( 0xf800, 0xf800, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1")
317319   PORT_DIPSETTING(      0xf000, "02" )
318320   PORT_DIPSETTING(      0xe800, "05" )
319321   PORT_DIPSETTING(      0xe000, "08" )
r4470r4471
346348   PORT_DIPSETTING(      0x0800, "89" )
347349   PORT_DIPSETTING(      0x0000, "92" )
348350   PORT_DIPSETTING(      0xf800, "99" )
349   PORT_DIPNAME( 0x0700, 0x0700, "First Credit" )
351   PORT_DIPNAME( 0x0700, 0x0700, "First Credit" ) PORT_DIPLOCATION("SW2:8,7,6")
350352   PORT_DIPSETTING(      0x0000, DEF_STR( 8C_1C ) )
351353   PORT_DIPSETTING(      0x0100, DEF_STR( 7C_1C ) )
352354   PORT_DIPSETTING(      0x0200, DEF_STR( 6C_1C ) )
r4470r4471
358360
359361   PORT_START("DSW3_DSW1")   // 0x500000.w
360362   /* MSB : SW3 -> 0xe04c24.b (cpl) */
361   PORT_DIPNAME( 0xe000, 0xe000, "Next Credit" )
363   PORT_DIPNAME( 0xe000, 0xe000, "Next Credit" ) PORT_DIPLOCATION("SW3:3,2,1")
362364   PORT_DIPSETTING(      0x0000, DEF_STR( 4C_1C ) )
363365   PORT_DIPSETTING(      0x4000, DEF_STR( 2C_1C ) )
364366   PORT_DIPSETTING(      0x2000, DEF_STR( 3C_2C ) )
r4470r4471
367369   PORT_DIPSETTING(      0xa000, DEF_STR( 1C_3C ) )
368370   PORT_DIPSETTING(      0x8000, DEF_STR( 1C_4C ) )
369371   PORT_DIPSETTING(      0x6000, DEF_STR( 1C_6C ) )
370   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) )
372   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4")
371373   PORT_DIPSETTING(      0x1c00, DEF_STR( Easiest ) )
372374   PORT_DIPSETTING(      0x1800, DEF_STR( Easier ) )
373375   PORT_DIPSETTING(      0x1400, DEF_STR( Easy ) )
r4470r4471
376378   PORT_DIPSETTING(      0x0800, DEF_STR( Hard ) )
377379   PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
378380   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
379   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) )
381   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7")
380382   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
381383   PORT_DIPSETTING(      0x0200, DEF_STR( On ) )
382384   PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
383385   /* LSB : SW1 -> 0xe04c25.b (cpl) */
384   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) )   // To be confirmed
386   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")   // To be confirmed
385387   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
386388   PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
387   PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Rounds" )   // see notes
388//  PORT_DIPSETTING(      0x0070, "Endless" )
389   PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Rounds" ) PORT_DIPLOCATION("SW1:4,3,2")   // see notes
390   PORT_DIPSETTING(      0x0070, "Endless" )
389391   PORT_DIPSETTING(      0x0060, "1/2" )
390392   PORT_DIPSETTING(      0x0050, "2/3" )
391393   PORT_DIPSETTING(      0x0040, "2/4" )
r4470r4471
393395   PORT_DIPSETTING(      0x0020, "3/6" )
394396   PORT_DIPSETTING(      0x0010, "4/7" )
395397   PORT_DIPSETTING(      0x0000, "4/8" )
396   PORT_DIPNAME( 0x0008, 0x0000, "Select All Players" )      // in a 1 player game
398   PORT_DIPNAME( 0x0008, 0x0000, "Select All Players" ) PORT_DIPLOCATION("SW1:5")      // in a 1 player game
397399   PORT_DIPSETTING(      0x0008, DEF_STR( No ) )         // only Ryo and Robert available
398400   PORT_DIPSETTING(      0x0000, DEF_STR( Yes ) )
399   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
400   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
401   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
402   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )      // must be Off during P.O.S.T. !
403   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
404   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
405   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
406   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
407   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
401   PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" )
402   PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" )      // must be Off during P.O.S.T. !
403   PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" )
408404INPUT_PORTS_END
409405
410406static INPUT_PORTS_START( histryma )
r4470r4471
451447   PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )         // "Fault" (= "Tilt" ?)
452448   PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )         // "Test" (duplicated)
453449   /* MSB : SW2 -> 0xe05874.b (cpl) */
454   PORT_DIPNAME( 0xf800, 0x0000, "Time" )
455//  PORT_DIPSETTING(      0xf800, "15" )                // duplicated setting
456//  PORT_DIPSETTING(      0xf000, "15" )                // duplicated setting
457//  PORT_DIPSETTING(      0xe800, "15" )                // duplicated setting
450   PORT_DIPNAME( 0xf800, 0x0000, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1")
451   #ifndef PRIORITY_EASINESS_TO_PLAY
452     PORT_DIPSETTING(      0xf800, "15" )                // duplicated setting
453     PORT_DIPSETTING(      0xf000, "15" )                // duplicated setting
454     PORT_DIPSETTING(      0xe800, "15" )                // duplicated setting
455   #endif
458456   PORT_DIPSETTING(      0xe000, "15" )
459457   PORT_DIPSETTING(      0xd800, "18" )
460458   PORT_DIPSETTING(      0xd000, "21" )
r4470r4471
484482   PORT_DIPSETTING(      0x1000, "93" )
485483   PORT_DIPSETTING(      0x0800, "96" )
486484   PORT_DIPSETTING(      0x0000, "99" )
487   PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
485   PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:8,7,6")
488486   PORT_DIPSETTING(      0x0200, DEF_STR( 6C_1C ) )
489487   PORT_DIPSETTING(      0x0300, DEF_STR( 5C_1C ) )
490488   PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
r4470r4471
496494
497495   PORT_START("DSW3_DSW1")   // 0x500000.w
498496   /* MSB : SW3 -> 0xe05872.b (cpl) */
499   PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) )
497   PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW3:3,2,1")
500498   PORT_DIPSETTING(      0xe000, DEF_STR( 1C_1C ) )
501499   PORT_DIPSETTING(      0x0000, DEF_STR( 3C_4C ) )
502500   PORT_DIPSETTING(      0x2000, DEF_STR( 2C_3C ) )
r4470r4471
505503   PORT_DIPSETTING(      0x8000, DEF_STR( 1C_4C ) )
506504   PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
507505   PORT_DIPSETTING(      0x4000, DEF_STR( 1C_6C ) )
508   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) )
506   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4")
509507   PORT_DIPSETTING(      0x1c00, DEF_STR( Easiest ) )
510508   PORT_DIPSETTING(      0x1800, DEF_STR( Easier ) )
511509   PORT_DIPSETTING(      0x1400, DEF_STR( Easy ) )
512510   PORT_DIPSETTING(      0x1000, DEF_STR( Normal ) )
513511   PORT_DIPSETTING(      0x0c00, DEF_STR( Medium ) )
514512   PORT_DIPSETTING(      0x0800, DEF_STR( Hard ) )
515   PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
513   PORT_DIPSETTING(      0x0400, DEF_STR( Harder ) )
516514   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
517   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) )
515   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7")
518516   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
519517   PORT_DIPSETTING(      0x0200, DEF_STR( On ) )
520   PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
518   PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW3:8" )
521519   /* LSB : SW1 -> 0xe05873.b (cpl) */
522   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) )   // To be confirmed
520   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")   // To be confirmed
523521   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
524522   PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
525   PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Points" )   // see notes
526//  PORT_DIPSETTING(      0x0070, "Endless" )               // ends on a draw
523   PORT_DIPNAME( 0x0070, 0x0060, "Needed Points/Maximum Points" ) PORT_DIPLOCATION("SW1:4,3,2")   // see notes
524   PORT_DIPSETTING(      0x0070, "Endless" )               // ends on a draw
527525   PORT_DIPSETTING(      0x0060, "1/2" )
528526   PORT_DIPSETTING(      0x0050, "2/3" )
529527   PORT_DIPSETTING(      0x0040, "2/4" )
r4470r4471
531529   PORT_DIPSETTING(      0x0020, "3/6" )
532530   PORT_DIPSETTING(      0x0010, "4/7" )
533531   PORT_DIPSETTING(      0x0000, "4/8" )
534   PORT_DIPNAME( 0x0008, 0x0000, "Buttons" )            // 3 or 6 buttons as default ?
532   PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) PORT_DIPLOCATION("SW1:5")   // 3 or 6 buttons as default ?
535533   PORT_DIPSETTING(      0x0008, "3" )
536534   PORT_DIPSETTING(      0x0000, "6" )
537   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
538   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
539   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
540   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )      // must be Off during P.O.S.T. !
541   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
542   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
543   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
544   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
545   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
535   PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" )
536   PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" )      // must be Off during P.O.S.T. !
537   PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" )
546538INPUT_PORTS_END
547539
548540/* Check inputs again when video emulation is better */
r4470r4471
593585   PORT_BIT(  0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )         // "Fault" (= "Tilt" ?)
594586   PORT_BIT(  0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )         // "Test" (duplicated)
595587   /* MSB : SW2 -> 0xe07e84.b (cpl) */
596   PORT_DIPNAME( 0xf800, 0x0000, "Time" )
597//  PORT_DIPSETTING(      0xf800, "15" )                // duplicated setting
598//  PORT_DIPSETTING(      0xf000, "15" )                // duplicated setting
599//  PORT_DIPSETTING(      0xe800, "15" )                // duplicated setting
588   PORT_DIPNAME( 0xf800, 0x0000, "Time" ) PORT_DIPLOCATION("SW2:5,4,3,2,1")
589   #ifndef PRIORITY_EASINESS_TO_PLAY
590     PORT_DIPSETTING(      0xf800, "15" )                // duplicated setting
591     PORT_DIPSETTING(      0xf000, "15" )                // duplicated setting
592     PORT_DIPSETTING(      0xe800, "15" )                // duplicated setting
593   #endif
600594   PORT_DIPSETTING(      0xe000, "15" )
601595   PORT_DIPSETTING(      0xd800, "18" )
602596   PORT_DIPSETTING(      0xd000, "21" )
r4470r4471
626620   PORT_DIPSETTING(      0x1000, "93" )
627621   PORT_DIPSETTING(      0x0800, "96" )
628622   PORT_DIPSETTING(      0x0000, "99" )
629   PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) )
623   PORT_DIPNAME( 0x0700, 0x0700, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW2:8,7,6")
630624   PORT_DIPSETTING(      0x0200, DEF_STR( 6C_1C ) )
631625   PORT_DIPSETTING(      0x0300, DEF_STR( 5C_1C ) )
632626   PORT_DIPSETTING(      0x0400, DEF_STR( 4C_1C ) )
r4470r4471
638632
639633   PORT_START("DSW3_DSW1")   // 0x480000.w
640634   /* MSB : SW3 -> 0xe07e82.b (cpl) */
641   PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) )
635   PORT_DIPNAME( 0xe000, 0xe000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW3:3,2,1")
642636   PORT_DIPSETTING(      0xe000, DEF_STR( 1C_1C ) )
643637   PORT_DIPSETTING(      0x0000, DEF_STR( 3C_4C ) )
644638   PORT_DIPSETTING(      0x2000, DEF_STR( 2C_3C ) )
r4470r4471
647641   PORT_DIPSETTING(      0x8000, DEF_STR( 1C_4C ) )
648642   PORT_DIPSETTING(      0x6000, DEF_STR( 1C_5C ) )
649643   PORT_DIPSETTING(      0x4000, DEF_STR( 1C_6C ) )
650   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) )
644   PORT_DIPNAME( 0x1c00, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW3:6,5,4")
651645   PORT_DIPSETTING(      0x1c00, DEF_STR( Easiest ) )
652646   PORT_DIPSETTING(      0x1800, DEF_STR( Easier ) )
653647   PORT_DIPSETTING(      0x1400, DEF_STR( Easy ) )
r4470r4471
656650   PORT_DIPSETTING(      0x0800, DEF_STR( Hard ) )
657651   PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
658652   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
659   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) )
653   PORT_DIPNAME( 0x0200, 0x0000, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW3:7")
660654   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
661655   PORT_DIPSETTING(      0x0200, DEF_STR( On ) )
662   PORT_SERVICE( 0x0100, IP_ACTIVE_LOW )
656   PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW3:8" )
663657   /* LSB : SW1 -> 0xe07e83.b (cpl) */
664   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) )   // To be confirmed
658   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")   // To be confirmed
665659   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
666660   PORT_DIPSETTING(      0x0080, DEF_STR( On ) )
667   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unused ) )
668   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
669   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
670   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unused ) )
671   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
672   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
673   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unused ) )
674   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
675   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
676   PORT_DIPNAME( 0x0008, 0x0000, "Buttons" )            // 3 or 6 buttons as default ?
661   PORT_DIPUNKNOWN_DIPLOC( 0x0040, 0x0040, "SW1:2" )
662   PORT_DIPUNKNOWN_DIPLOC( 0x0020, 0x0020, "SW1:3" )
663   PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW1:4" )
664   PORT_DIPNAME( 0x0008, 0x0000, "Buttons" ) PORT_DIPLOCATION("SW1:5")   // 3 or 6 buttons as default ?
677665   PORT_DIPSETTING(      0x0008, "3" )
678666   PORT_DIPSETTING(      0x0000, "6" )
679   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unused ) )
680   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
681   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
682   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unused ) )      // must be Off during P.O.S.T. !
683   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
684   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
685   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unused ) )
686   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
687   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
667   PORT_DIPUNKNOWN_DIPLOC( 0x0004, 0x0004, "SW1:6" )
668   PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SW1:7" )      // must be Off during P.O.S.T. !
669   PORT_DIPUNKNOWN_DIPLOC( 0x0001, 0x0001, "SW1:8" )
688670INPUT_PORTS_END
689671
690672
src/mame/drivers/terracre.c
r4470r4471
207207   state_save_register_global_array(machine, mAmazonProtReg);
208208}
209209
210static ADDRESS_MAP_START( terracre_readmem, ADDRESS_SPACE_PROGRAM, 16 )
211   AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
212   AM_RANGE(0x020000, 0x0201ff) AM_READ(SMH_RAM)
213   AM_RANGE(0x020200, 0x021fff) AM_READ(SMH_RAM)
214   AM_RANGE(0x023000, 0x023fff) AM_READ(SMH_RAM)
210static ADDRESS_MAP_START( terracre_map, ADDRESS_SPACE_PROGRAM, 16 )
211   AM_RANGE(0x000000, 0x01ffff) AM_ROM
212   AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_BASE(&spriteram16)
213   AM_RANGE(0x020200, 0x021fff) AM_RAM
214   AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram)
215   AM_RANGE(0x023000, 0x023fff) AM_RAM
215216   AM_RANGE(0x024000, 0x024001) AM_READ_PORT("P1")
216217   AM_RANGE(0x024002, 0x024003) AM_READ_PORT("P2")
217218   AM_RANGE(0x024004, 0x024005) AM_READ_PORT("SYSTEM")
218219   AM_RANGE(0x024006, 0x024007) AM_READ_PORT("DSW")
219ADDRESS_MAP_END
220
221static ADDRESS_MAP_START( terracre_writemem, ADDRESS_SPACE_PROGRAM, 16 )
222   AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
223   AM_RANGE(0x020000, 0x0201ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
224   AM_RANGE(0x020200, 0x021fff) AM_WRITE(SMH_RAM)
225   AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram)
226   AM_RANGE(0x023000, 0x023fff) AM_WRITE(SMH_RAM)
227220   AM_RANGE(0x026000, 0x026001) AM_WRITE(amazon_flipscreen_w)   /* flip screen & coin counters */
228221   AM_RANGE(0x026002, 0x026003) AM_WRITE(amazon_scrollx_w)
229222   AM_RANGE(0x026004, 0x026005) AM_WRITE(amazon_scrolly_w)
r4470r4471
231224   AM_RANGE(0x028000, 0x0287ff) AM_WRITE(amazon_foreground_w) AM_BASE(&videoram16)
232225ADDRESS_MAP_END
233226
234static ADDRESS_MAP_START( amazon_readmem, ADDRESS_SPACE_PROGRAM, 16 )
235   AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
236   AM_RANGE(0x040000, 0x040fff) AM_READ(SMH_RAM)
227static ADDRESS_MAP_START( amazon_map, ADDRESS_SPACE_PROGRAM, 16 )
228   AM_RANGE(0x000000, 0x01ffff) AM_ROM
229   AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_BASE(&spriteram16)
230   AM_RANGE(0x040200, 0x040fff) AM_RAM
231   AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram)
237232   AM_RANGE(0x044000, 0x044001) AM_READ_PORT("IN0")
238233   AM_RANGE(0x044002, 0x044003) AM_READ_PORT("IN1")
239234   AM_RANGE(0x044004, 0x044005) AM_READ_PORT("IN2")
240235   AM_RANGE(0x044006, 0x044007) AM_READ_PORT("IN3")
241   AM_RANGE(0x070000, 0x070001) AM_READ(amazon_protection_r)
242ADDRESS_MAP_END
243
244static ADDRESS_MAP_START( amazon_writemem, ADDRESS_SPACE_PROGRAM, 16 )
245   AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
246   AM_RANGE(0x040000, 0x0401ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
247   AM_RANGE(0x040200, 0x040fff) AM_WRITE(SMH_RAM)
248   AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_BASE(&amazon_videoram)
249236   AM_RANGE(0x046000, 0x046001) AM_WRITE(amazon_flipscreen_w)   /* flip screen & coin counters */
250237   AM_RANGE(0x046002, 0x046003) AM_WRITE(amazon_scrollx_w)
251238   AM_RANGE(0x046004, 0x046005) AM_WRITE(amazon_scrolly_w)
252239   AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w)
253240   AM_RANGE(0x050000, 0x050fff) AM_WRITE(amazon_foreground_w) AM_BASE(&videoram16)
254   AM_RANGE(0x070000, 0x070003) AM_WRITE(amazon_protection_w)
241   AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
255242ADDRESS_MAP_END
256243
257static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
258   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
259   AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM)
244static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
245   AM_RANGE(0x0000, 0xbfff) AM_ROM
246   AM_RANGE(0xc000, 0xcfff) AM_RAM
260247ADDRESS_MAP_END
261248
262static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
263   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
264   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
265ADDRESS_MAP_END
266
267249static ADDRESS_MAP_START( sound_3526_io_map, ADDRESS_SPACE_IO, 8 )
268250   ADDRESS_MAP_GLOBAL_MASK(0xff)
269251   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w)
r4470r4471
559541
560542static MACHINE_DRIVER_START( amazon )
561543   MDRV_CPU_ADD("maincpu", M68000, 8000000 )
562   MDRV_CPU_PROGRAM_MAP(amazon_readmem,amazon_writemem)
544   MDRV_CPU_PROGRAM_MAP(amazon_map,0)
563545   MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
564546
565547   MDRV_CPU_ADD("audiocpu", Z80, 4000000)   /* 4 MHz???? */
566   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
548   MDRV_CPU_PROGRAM_MAP(sound_map,0)
567549   MDRV_CPU_IO_MAP(sound_3526_io_map,0)
568550   MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128)   /* ??? */
569551
r4470r4471
598580
599581static MACHINE_DRIVER_START( ym3526 )
600582   MDRV_CPU_ADD("maincpu", M68000, 8000000 )
601   MDRV_CPU_PROGRAM_MAP(terracre_readmem,terracre_writemem)
583   MDRV_CPU_PROGRAM_MAP(terracre_map,0)
602584   MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
603585
604586   MDRV_CPU_ADD("audiocpu", Z80, 4000000)   /* 4 MHz???? */
605   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
587   MDRV_CPU_PROGRAM_MAP(sound_map,0)
606588   MDRV_CPU_IO_MAP(sound_3526_io_map,0)
607589   MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128)   /* ??? */
608590
r4470r4471
635617
636618static MACHINE_DRIVER_START( ym2203 )
637619   MDRV_CPU_ADD("maincpu", M68000, 8000000) /* 8 MHz?? */
638   MDRV_CPU_PROGRAM_MAP(terracre_readmem,terracre_writemem)
620   MDRV_CPU_PROGRAM_MAP(terracre_map,0)
639621   MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
640622
641623   MDRV_CPU_ADD("audiocpu", Z80, 4000000)   /* 4 MHz???? */
642   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
624   MDRV_CPU_PROGRAM_MAP(sound_map,0)
643625   MDRV_CPU_IO_MAP(sound_2203_io_map,0)
644626   MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,128)   /* ??? */
645627
src/mame/drivers/mouser.c
r4470r4471
6969static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
7070   AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM)
7171   AM_RANGE(0x6000, 0x6bff) AM_WRITE(SMH_RAM)
72   AM_RANGE(0x8800, 0x88ff) AM_WRITE(SMH_NOP) /* unknown */
72   AM_RANGE(0x8800, 0x88ff) AM_WRITENOP /* unknown */
7373   AM_RANGE(0x9000, 0x93ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
7474   AM_RANGE(0x9800, 0x9cff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
7575   AM_RANGE(0x9c00, 0x9fff) AM_WRITE(SMH_RAM) AM_BASE(&colorram)
r4470r4471
9090static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 )
9191   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
9292   AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM)
93   AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_NOP)   /* watchdog? */
93   AM_RANGE(0x4000, 0x4000) AM_WRITENOP   /* watchdog? */
9494ADDRESS_MAP_END
9595
9696static ADDRESS_MAP_START( io_map_2, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/malzak.c
r4470r4471
206206   AM_RANGE(0x40, 0x40) AM_WRITE(port40_w)  // possibly sound codes for dual SN76477s
207207   AM_RANGE(0x60, 0x60) AM_WRITE(port60_w)  // possibly playfield scroll X offset
208208    AM_RANGE(0x80, 0x80) AM_READ_PORT("IN0")  //controls
209   AM_RANGE(0xa0, 0xa0) AM_WRITE(SMH_NOP)  // echoes I/O port read from port 0x80
209   AM_RANGE(0xa0, 0xa0) AM_WRITENOP  // echoes I/O port read from port 0x80
210210   AM_RANGE(0xc0, 0xc0) AM_WRITE(portc0_w)  // possibly playfield row selection for writing and/or collisions
211211   AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(s2650_data_r)  // read upon death
212212    AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
src/mame/drivers/deco32.c
r4470r4471
680680   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
681681
682682   AM_RANGE(0x100000, 0x100003) AM_WRITE(buffer_spriteram32_w)
683   AM_RANGE(0x108000, 0x108003) AM_WRITE(SMH_NOP) /* ? */
683   AM_RANGE(0x108000, 0x108003) AM_WRITENOP /* ? */
684684   AM_RANGE(0x110000, 0x110fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
685685   AM_RANGE(0x120000, 0x127fff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram) /* Main RAM */
686686   AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE(deco32_sound_w)
r4470r4471
728728   AM_RANGE(0x1d4800, 0x1d48ff) AM_READ(SMH_RAM)
729729   AM_RANGE(0x1e0000, 0x1e001f) AM_READ(SMH_RAM)
730730
731   AM_RANGE(0x16c000, 0x16c01f) AM_READ(SMH_NOP)
732   AM_RANGE(0x17c000, 0x17c03f) AM_READ(SMH_NOP)
731   AM_RANGE(0x16c000, 0x16c01f) AM_READNOP
732   AM_RANGE(0x17c000, 0x17c03f) AM_READNOP
733733
734734   AM_RANGE(0x200000, 0x200fff) AM_READ(deco16_146_fghthist_prot_r)
735735ADDRESS_MAP_END
r4470r4471
740740   AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram)
741741   AM_RANGE(0x12002c, 0x12002f) AM_WRITE(fghthist_eeprom_w)
742742   AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE(deco32_sound_w)
743   AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* VBL irq ack */
743   AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
744744   //148000 - IRQ mask (ca)...
745745   AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
746746   AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w)
r4470r4471
762762   AM_RANGE(0x1e0000, 0x1e001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf34_control)
763763
764764   AM_RANGE(0x200000, 0x200fff) AM_WRITE(deco16_146_fghthist_prot_w) AM_BASE(&deco32_prot_ram)
765   AM_RANGE(0x208800, 0x208803) AM_WRITE(SMH_NOP) /* ? */
765   AM_RANGE(0x208800, 0x208803) AM_WRITENOP /* ? */
766766ADDRESS_MAP_END
767767
768768static ADDRESS_MAP_START( fghthsta_memmap, ADDRESS_SPACE_PROGRAM, 32 )
769769   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) AM_WRITE(SMH_ROM)
770770   AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram)
771   AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* VBL irq ack */
771   AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
772772   AM_RANGE(0x150000, 0x150003) AM_WRITE(fghthist_eeprom_w) /* Volume port/Eprom */
773773
774774   AM_RANGE(0x168000, 0x169fff) AM_READ(SMH_RAM) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
775775   AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w)
776   AM_RANGE(0x16c010, 0x16c013) AM_READ(SMH_NOP)
776   AM_RANGE(0x16c010, 0x16c013) AM_READNOP
777777
778778   AM_RANGE(0x178000, 0x179fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
779779   AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_w)
780   AM_RANGE(0x17c020, 0x17c023) AM_READ(SMH_NOP)
780   AM_RANGE(0x17c020, 0x17c023) AM_READNOP
781781
782782   AM_RANGE(0x182000, 0x183fff) AM_READ(SMH_RAM) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
783783   AM_RANGE(0x184000, 0x185fff) AM_READ(SMH_RAM) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
r4470r4471
800800   AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r)
801801   AM_RANGE(0x128000, 0x12800f) AM_READ(deco32_irq_controller_r)
802802   AM_RANGE(0x130000, 0x131fff) AM_READ(SMH_RAM)
803   AM_RANGE(0x138000, 0x138003) AM_READ(SMH_NOP) /* Palette dma complete in bit 0x8? ack?  return 0 else tight loop */
803   AM_RANGE(0x138000, 0x138003) AM_READNOP /* Palette dma complete in bit 0x8? ack?  return 0 else tight loop */
804804
805805   AM_RANGE(0x180000, 0x18001f) AM_READ(SMH_RAM)
806806   AM_RANGE(0x190000, 0x191fff) AM_READ(SMH_RAM)
r4470r4471
838838   AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w)
839839
840840   AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
841   AM_RANGE(0x138000, 0x138003) AM_WRITE(SMH_NOP) // palette mode?  check
841   AM_RANGE(0x138000, 0x138003) AM_WRITENOP // palette mode?  check
842842   AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w)
843843
844844   AM_RANGE(0x180000, 0x18001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf12_control)
r4470r4471
866866   AM_RANGE(0x300000, 0x3fffff) AM_WRITE(SMH_ROM)
867867
868868   AM_RANGE(0x400000, 0x400003) AM_DEVWRITE8("oki3", okim6295_w, 0x000000ff)
869   AM_RANGE(0x410000, 0x410003) AM_WRITE(SMH_NOP) /* Some kind of serial bit-stream - digital volume control? */
869   AM_RANGE(0x410000, 0x410003) AM_WRITENOP /* Some kind of serial bit-stream - digital volume control? */
870870   AM_RANGE(0x420000, 0x420003) AM_WRITE(dragngun_eeprom_w)
871871   AM_RANGE(0x430000, 0x43001f) AM_WRITE(dragngun_lightgun_w)
872872   AM_RANGE(0x500000, 0x500003) AM_WRITE(dragngun_sprite_control_w)
r4470r4471
919919   AM_RANGE(0x128000, 0x12800f) AM_WRITE(deco32_irq_controller_w)
920920
921921   AM_RANGE(0x130000, 0x131fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
922   AM_RANGE(0x138000, 0x138003) AM_WRITE(SMH_NOP) // palette mode?  check
922   AM_RANGE(0x138000, 0x138003) AM_WRITENOP // palette mode?  check
923923   AM_RANGE(0x138008, 0x13800b) AM_WRITE(deco32_palette_dma_w)
924   AM_RANGE(0x178008, 0x17800f) AM_WRITE(SMH_NOP) /* Gun read ACK's */
924   AM_RANGE(0x178008, 0x17800f) AM_WRITENOP /* Gun read ACK's */
925925
926926   AM_RANGE(0x180000, 0x18001f) AM_WRITE(SMH_RAM) AM_BASE(&deco32_pf12_control)
927927   AM_RANGE(0x190000, 0x191fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
r4470r4471
957957static ADDRESS_MAP_START( tattass_readmem, ADDRESS_SPACE_PROGRAM, 32 )
958958   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
959959   AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM)
960   AM_RANGE(0x120000, 0x120003) AM_READ(SMH_NOP) /* ACIA (unused) */
960   AM_RANGE(0x120000, 0x120003) AM_READNOP /* ACIA (unused) */
961961
962962   AM_RANGE(0x162000, 0x162fff) AM_READ(SMH_RAM) /* 'Jack' RAM!? */
963963   AM_RANGE(0x163000, 0x16309f) AM_READ(SMH_RAM)
r4470r4471
987987
988988static ADDRESS_MAP_START( tattass_writemem, ADDRESS_SPACE_PROGRAM, 32 )
989989   AM_RANGE(0x000000, 0x0f7fff) AM_WRITE(SMH_ROM)
990   AM_RANGE(0x0f8000, 0x0fffff) AM_WRITE(SMH_NOP) /* Screen area on debug board? Cleared on startup */
990   AM_RANGE(0x0f8000, 0x0fffff) AM_WRITENOP /* Screen area on debug board? Cleared on startup */
991991   AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram)
992992
993   AM_RANGE(0x120000, 0x120003) AM_WRITE(SMH_NOP) /* ACIA (unused) */
994   AM_RANGE(0x130000, 0x130003) AM_WRITE(SMH_NOP) /* Coin port (unused?) */
995   AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* Vblank ack */
993   AM_RANGE(0x120000, 0x120003) AM_WRITENOP /* ACIA (unused) */
994   AM_RANGE(0x130000, 0x130003) AM_WRITENOP /* Coin port (unused?) */
995   AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */
996996   AM_RANGE(0x150000, 0x150003) AM_WRITE(tattass_control_w) /* Volume port/Eprom/Priority */
997997
998998   AM_RANGE(0x162000, 0x162fff) AM_WRITE(SMH_RAM) /* 'Jack' RAM!? */
999999   AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */
10001000
1001   AM_RANGE(0x164000, 0x164003) AM_WRITE(SMH_NOP) /* Palette control BG2/3 ($1a constant) */
1002   AM_RANGE(0x164004, 0x164007) AM_WRITE(SMH_NOP) /* Palette control Obj1 ($6 constant) */
1003   AM_RANGE(0x164008, 0x16400b) AM_WRITE(SMH_NOP) /* Palette control Obj2 ($5 constant) */
1004   AM_RANGE(0x16400c, 0x16400f) AM_WRITE(SMH_NOP)
1001   AM_RANGE(0x164000, 0x164003) AM_WRITENOP /* Palette control BG2/3 ($1a constant) */
1002   AM_RANGE(0x164004, 0x164007) AM_WRITENOP /* Palette control Obj1 ($6 constant) */
1003   AM_RANGE(0x164008, 0x16400b) AM_WRITENOP /* Palette control Obj2 ($5 constant) */
1004   AM_RANGE(0x16400c, 0x16400f) AM_WRITENOP
10051005   AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
1006   AM_RANGE(0x16c000, 0x16c003) AM_WRITE(SMH_NOP)
1006   AM_RANGE(0x16c000, 0x16c003) AM_WRITENOP
10071007   AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w)
10081008
10091009   AM_RANGE(0x170000, 0x171fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
1010   AM_RANGE(0x174000, 0x174003) AM_WRITE(SMH_NOP) /* Sprite DMA mode (2) */
1010   AM_RANGE(0x174000, 0x174003) AM_WRITENOP /* Sprite DMA mode (2) */
10111011   AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w)
1012   AM_RANGE(0x174018, 0x17401b) AM_WRITE(SMH_NOP) /* Sprite 'CPU' (unused) */
1012   AM_RANGE(0x174018, 0x17401b) AM_WRITENOP /* Sprite 'CPU' (unused) */
10131013
10141014   AM_RANGE(0x178000, 0x179fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size)
1015   AM_RANGE(0x17c000, 0x17c003) AM_WRITE(SMH_NOP) /* Sprite DMA mode (2) */
1015   AM_RANGE(0x17c000, 0x17c003) AM_WRITENOP /* Sprite DMA mode (2) */
10161016   AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w)
1017   AM_RANGE(0x17c018, 0x17c01b) AM_WRITE(SMH_NOP) /* Sprite 'CPU' (unused) */
1017   AM_RANGE(0x17c018, 0x17c01b) AM_WRITENOP /* Sprite 'CPU' (unused) */
10181018
10191019   AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
10201020   AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
r4470r4471
10341034static ADDRESS_MAP_START( nslasher_readmem, ADDRESS_SPACE_PROGRAM, 32 )
10351035   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
10361036   AM_RANGE(0x100000, 0x11ffff) AM_READ(SMH_RAM)
1037   AM_RANGE(0x120000, 0x1200ff) AM_READ(SMH_NOP) /* ACIA (unused) */
1037   AM_RANGE(0x120000, 0x1200ff) AM_READNOP /* ACIA (unused) */
10381038
10391039   AM_RANGE(0x163000, 0x16309f) AM_READ(SMH_RAM)
10401040   AM_RANGE(0x168000, 0x169fff) AM_READ(SMH_RAM)
r4470r4471
10651065   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
10661066   AM_RANGE(0x100000, 0x11ffff) AM_WRITE(SMH_RAM) AM_BASE(&deco32_ram)
10671067
1068   AM_RANGE(0x120000, 0x120003) AM_WRITE(SMH_NOP) /* ACIA (unused) */
1069//  AM_RANGE(0x130000, 0x130003) AM_WRITE(SMH_NOP) /* Coin port (unused?) */
1070   AM_RANGE(0x140000, 0x140003) AM_WRITE(SMH_NOP) /* Vblank ack */
1068   AM_RANGE(0x120000, 0x120003) AM_WRITENOP /* ACIA (unused) */
1069//  AM_RANGE(0x130000, 0x130003) AM_WRITENOP /* Coin port (unused?) */
1070   AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */
10711071   AM_RANGE(0x150000, 0x150003) AM_WRITE(nslasher_eeprom_w) /* Volume port/Eprom/Priority */
10721072
10731073   AM_RANGE(0x163000, 0x16309f) AM_WRITE(deco32_ace_ram_w) AM_BASE(&deco32_ace_ram) /* 'Ace' RAM!? */
1074   AM_RANGE(0x164000, 0x164003) AM_WRITE(SMH_NOP) /* Palette control BG2/3 ($1a constant) */
1075   AM_RANGE(0x164004, 0x164007) AM_WRITE(SMH_NOP) /* Palette control Obj1 ($4 constant) */
1076   AM_RANGE(0x164008, 0x16400b) AM_WRITE(SMH_NOP) /* Palette control Obj2 ($6 constant) */
1077   AM_RANGE(0x16400c, 0x16400f) AM_WRITE(SMH_NOP)
1074   AM_RANGE(0x164000, 0x164003) AM_WRITENOP /* Palette control BG2/3 ($1a constant) */
1075   AM_RANGE(0x164004, 0x164007) AM_WRITENOP /* Palette control Obj1 ($4 constant) */
1076   AM_RANGE(0x164008, 0x16400b) AM_WRITENOP /* Palette control Obj2 ($6 constant) */
1077   AM_RANGE(0x16400c, 0x16400f) AM_WRITENOP
10781078   AM_RANGE(0x168000, 0x169fff) AM_WRITE(deco32_buffered_palette_w) AM_BASE(&paletteram32)
1079   AM_RANGE(0x16c000, 0x16c003) AM_WRITE(SMH_NOP)
1079   AM_RANGE(0x16c000, 0x16c003) AM_WRITENOP
10801080   AM_RANGE(0x16c008, 0x16c00b) AM_WRITE(deco32_palette_dma_w)
10811081
10821082   AM_RANGE(0x170000, 0x171fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
1083   AM_RANGE(0x174000, 0x174003) AM_WRITE(SMH_NOP) /* Sprite DMA mode (2) */
1083   AM_RANGE(0x174000, 0x174003) AM_WRITENOP /* Sprite DMA mode (2) */
10841084   AM_RANGE(0x174010, 0x174013) AM_WRITE(buffer_spriteram32_w)
1085   AM_RANGE(0x174018, 0x17401b) AM_WRITE(SMH_NOP) /* Sprite 'CPU' (unused) */
1085   AM_RANGE(0x174018, 0x17401b) AM_WRITENOP /* Sprite 'CPU' (unused) */
10861086
10871087   AM_RANGE(0x178000, 0x179fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32_2) AM_SIZE(&spriteram_2_size)
1088   AM_RANGE(0x17c000, 0x17c003) AM_WRITE(SMH_NOP) /* Sprite DMA mode (2) */
1088   AM_RANGE(0x17c000, 0x17c003) AM_WRITENOP /* Sprite DMA mode (2) */
10891089   AM_RANGE(0x17c010, 0x17c013) AM_WRITE(buffer_spriteram32_2_w)
1090   AM_RANGE(0x17c018, 0x17c01b) AM_WRITE(SMH_NOP) /* Sprite 'CPU' (unused) */
1090   AM_RANGE(0x17c018, 0x17c01b) AM_WRITENOP /* Sprite 'CPU' (unused) */
10911091
10921092   AM_RANGE(0x182000, 0x183fff) AM_WRITE(deco32_pf1_data_w) AM_BASE(&deco32_pf1_data)
10931093   AM_RANGE(0x184000, 0x185fff) AM_WRITE(deco32_pf2_data_w) AM_BASE(&deco32_pf2_data)
src/mame/drivers/lkage.c
r4470r4471
120120   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE(&paletteram)
121121   AM_RANGE(0xf000, 0xf003) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&lkage_vreg) /* video registers */
122122   AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w)
123   AM_RANGE(0xf061, 0xf061) AM_WRITE(SMH_NOP)
123   AM_RANGE(0xf061, 0xf061) AM_WRITENOP
124124   AM_RANGE(0xf062, 0xf062) AM_READ(lkage_mcu_r) AM_WRITE(lkage_mcu_w)
125   AM_RANGE(0xf063, 0xf063) AM_WRITE(SMH_NOP) /* pulsed; nmi on sound cpu? */
125   AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */
126126   AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
127127   AM_RANGE(0xf081, 0xf081) AM_READ_PORT("DSW2")
128128   AM_RANGE(0xf082, 0xf082) AM_READ_PORT("DSW3")
r4470r4471
132132   AM_RANGE(0xf087, 0xf087) AM_READ(lkage_mcu_status_r)
133133   AM_RANGE(0xf0a0, 0xf0a3) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) /* unknown */
134134   AM_RANGE(0xf0c0, 0xf0c5) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&lkage_scroll)
135   AM_RANGE(0xf0e1, 0xf0e1) AM_WRITE(SMH_NOP) /* pulsed */
135   AM_RANGE(0xf0e1, 0xf0e1) AM_WRITENOP /* pulsed */
136136   AM_RANGE(0xf100, 0xf15f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
137137   AM_RANGE(0xf400, 0xffff) AM_READ(SMH_RAM) AM_WRITE(lkage_videoram_w) AM_BASE(&videoram) /* videoram */
138138ADDRESS_MAP_END
r4470r4471
177177   AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym1", ym2203_r)
178178   AM_RANGE(0xa000, 0xa001) AM_DEVREAD("ym2", ym2203_r)
179179   AM_RANGE(0xb000, 0xb000) AM_READ(soundlatch_r)
180   AM_RANGE(0xb001, 0xb001) AM_READ(SMH_NOP)   /* ??? */
180   AM_RANGE(0xb001, 0xb001) AM_READNOP   /* ??? */
181181   AM_RANGE(0xe000, 0xefff) AM_READ(SMH_ROM)   /* space for diagnostic ROM? */
182182ADDRESS_MAP_END
183183
r4470r4471
186186   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
187187   AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ym1", ym2203_w)
188188   AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym2", ym2203_w)
189   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP)   /* ??? */
189   AM_RANGE(0xb000, 0xb000) AM_WRITENOP   /* ??? */
190190   AM_RANGE(0xb001, 0xb001) AM_WRITE(lkage_sh_nmi_enable_w)
191191   AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w)
192192   AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_ROM)   /* space for diagnostic ROM? */
src/mame/drivers/gaiden.c
r4470r4471
384384   AM_RANGE(0x074000, 0x075fff) AM_READ(gaiden_videoram3_r)
385385   AM_RANGE(0x076000, 0x077fff) AM_READ(SMH_RAM)
386386   AM_RANGE(0x078000, 0x0787ff) AM_READ(SMH_RAM)
387   AM_RANGE(0x078800, 0x079fff) AM_READ(SMH_NOP)   /* extra portion of palette RAM, not really used */
387   AM_RANGE(0x078800, 0x079fff) AM_READNOP   /* extra portion of palette RAM, not really used */
388388   AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM")
389389   AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2")
390390   AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW")
r4470r4471
406406   AM_RANGE(0x07a30c, 0x07a30d) AM_WRITE(gaiden_bgscrollx_w)
407407   AM_RANGE(0x07a800, 0x07a801) AM_WRITE(watchdog_reset16_w)
408408   AM_RANGE(0x07a802, 0x07a803) AM_WRITE(gaiden_sound_command_w)
409   AM_RANGE(0x07a806, 0x07a807) AM_WRITE(SMH_NOP)
409   AM_RANGE(0x07a806, 0x07a807) AM_WRITENOP
410410   AM_RANGE(0x07a808, 0x07a809) AM_WRITE(gaiden_flip_w)
411411ADDRESS_MAP_END
412412
r4470r4471
434434   AM_RANGE(0xe000, 0xefff) AM_READ(SMH_ROM)    /* raiga only */
435435   AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM)
436436   AM_RANGE(0xf800, 0xf800) AM_DEVREAD("oki", okim6295_r)
437   AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP)   /* ?? */
437   AM_RANGE(0xfc00, 0xfc00) AM_READNOP   /* ?? */
438438   AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
439439ADDRESS_MAP_END
440440
r4470r4471
445445   AM_RANGE(0xf800, 0xf800) AM_DEVWRITE("oki", okim6295_w)
446446   AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ym1", ym2203_w)
447447   AM_RANGE(0xf820, 0xf821) AM_DEVWRITE("ym2", ym2203_w)
448   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_NOP)   /* ?? */
448   AM_RANGE(0xfc00, 0xfc00) AM_WRITENOP   /* ?? */
449449ADDRESS_MAP_END
450450
451451static ADDRESS_MAP_START( drgnbowl_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
496496
497497   /* Dip Switches order fits the first screen */
498498   PORT_START("DSW")
499   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) )
499   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1")
500500   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
501501   PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
502502   PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
r4470r4471
505505   PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
506506   PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
507507   PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
508   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
508   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4")
509509   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
510510   PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
511511   PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
r4470r4471
514514   PORT_DIPSETTING(      0x000c, DEF_STR( 1C_2C ) )
515515   PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
516516   PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
517   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
517   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7")
518518   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
519519   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
520   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
520   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
521521   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
522522   PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
523   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
523   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
524524   PORT_DIPSETTING(      0x0000, "1" )
525525   PORT_DIPSETTING(      0xc000, "2" )
526526   PORT_DIPSETTING(      0x4000, "3" )
527527   PORT_DIPSETTING(      0x8000, "4" )
528   PORT_DIPNAME( 0x3000, 0x3000, "Energy" )
528   PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) PORT_DIPLOCATION("SWB:4,3")
529529   PORT_DIPSETTING(      0x0000, "2" )
530530   PORT_DIPSETTING(      0x3000, "3" )
531531   PORT_DIPSETTING(      0x1000, "4" )
532532   PORT_DIPSETTING(      0x2000, "5" )
533   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) )
534   PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
535   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
536   PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) )
537   PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
538   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
539   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
540   PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
541   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
542   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) )
543   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
544   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
533   PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SWB:5" )
534   PORT_DIPUNKNOWN_DIPLOC( 0x0400, 0x0400, "SWB:6" )
535   PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" )
536   PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" )
545537INPUT_PORTS_END
546538
547539static INPUT_PORTS_START( wildfang )
r4470r4471
549541
550542   /* Dip Switches order fits the first screen */
551543   PORT_START("DSW")
552   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) )
544   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1")
553545   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
554546   PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
555547   PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
r4470r4471
558550   PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
559551   PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
560552   PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
561   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
553   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4")
562554   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
563555   PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
564556   PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
r4470r4471
567559   PORT_DIPSETTING(      0x000c, DEF_STR( 1C_2C ) )
568560   PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
569561   PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
570   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
562   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7")
571563   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
572564   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
573   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
565   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
574566   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
575567   PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
576   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
568   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
577569   PORT_DIPSETTING(      0x8000, "1" )
578570   PORT_DIPSETTING(      0xc000, "2" )
579571   PORT_DIPSETTING(      0x4000, "3" )
580572/*  PORT_DIPSETTING(      0x0000, "2" ) */
581573   /* When bit 0 is On,  use bits 4 and 5 for difficulty */
582   PORT_DIPNAME( 0x3000, 0x3000, "Difficulty (Tecmo Knight)" )
574   PORT_DIPNAME( 0x3000, 0x3000, "Difficulty (Tecmo Knight)" ) PORT_DIPLOCATION("SWB:4,3")
583575   PORT_DIPSETTING(      0x3000, DEF_STR( Easy ) )
584576   PORT_DIPSETTING(      0x1000, DEF_STR( Normal ) )
585577   PORT_DIPSETTING(      0x2000, DEF_STR( Hard ) )
586578   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
587579   /* When bit 0 is 0ff, use bits 2 and 3 for difficulty */
588   PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Wild Fang)" )
580   PORT_DIPNAME( 0x0c00, 0x0c00, "Difficulty (Wild Fang)" ) PORT_DIPLOCATION("SWB:6,5")
589581   PORT_DIPSETTING(      0x0c00, DEF_STR( Easy ) )
590582   PORT_DIPSETTING(      0x0400, DEF_STR( Normal ) )
591583   PORT_DIPSETTING(      0x0800, DEF_STR( Hard ) )
592584   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
593   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
594   PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
595   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
596   PORT_DIPNAME( 0x0100, 0x0100, "Title" )   // also affects Difficulty Table (see above)
585   PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" )
586   PORT_DIPNAME( 0x0100, 0x0100, "Title" ) PORT_DIPLOCATION("SWB:8")   // also affects Difficulty Table (see above)
597587   PORT_DIPSETTING(      0x0100, "Wild Fang" )
598588   PORT_DIPSETTING(      0x0000, "Tecmo Knight" )
599589INPUT_PORTS_END
r4470r4471
603593
604594   /* Dip Switches order fits the first screen */
605595   PORT_START("DSW")
606   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) )
596   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1")
607597   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
608598   PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
609599   PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
r4470r4471
612602   PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
613603   PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
614604   PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
615   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
605   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4")
616606   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
617607   PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
618608   PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
r4470r4471
621611   PORT_DIPSETTING(      0x000c, DEF_STR( 1C_2C ) )
622612   PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
623613   PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
624   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) )
614   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWA:7")
625615   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
626616   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
627   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
617   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
628618   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
629619   PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
630   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
620   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
631621   PORT_DIPSETTING(      0x8000, "1" )
632622   PORT_DIPSETTING(      0xc000, "2" )
633623   PORT_DIPSETTING(      0x4000, "3" )
634624/*  PORT_DIPSETTING(      0x0000, "2" ) */
635   PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unused ) )
636   PORT_DIPSETTING(      0x2000, DEF_STR( Off ) )
637   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
638   PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unused ) )
639   PORT_DIPSETTING(      0x1000, DEF_STR( Off ) )
640   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
641   PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
625   PORT_DIPUNKNOWN_DIPLOC( 0x2000, 0x2000, "SWB:3" )
626   PORT_DIPUNKNOWN_DIPLOC( 0x1000, 0x1000, "SWB:4" )
627   PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:6,5")
642628   PORT_DIPSETTING(      0x0c00, DEF_STR( Easy ) )
643629   PORT_DIPSETTING(      0x0400, DEF_STR( Normal ) )
644630   PORT_DIPSETTING(      0x0800, DEF_STR( Hard ) )
645631   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
646   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
647   PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
648   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
649   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) )
650   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
651   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
632   PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" )
633   PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" )
652634INPUT_PORTS_END
653635
654636static INPUT_PORTS_START( raiga )
r4470r4471
660642
661643   /* Dip Switches order fits the first screen */
662644   PORT_START("DSW")
663   PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_A ) )
645   PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:4,3,2,1")
664646   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
665647   PORT_DIPSETTING(      0x0040, DEF_STR( 4C_1C ) )
666648   PORT_DIPSETTING(      0x00a0, DEF_STR( 3C_1C ) )
r4470r4471
677659   PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_5C ) )
678660   PORT_DIPSETTING(      0x0050, DEF_STR( 1C_6C ) )
679661   PORT_DIPSETTING(      0x0090, DEF_STR( 1C_7C ) )
680   PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_B ) )
662   PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7,6,5")
681663   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
682664   PORT_DIPSETTING(      0x0004, DEF_STR( 4C_1C ) )
683665   PORT_DIPSETTING(      0x000a, DEF_STR( 3C_1C ) )
r4470r4471
694676   PORT_DIPSETTING(      0x000d, DEF_STR( 1C_5C ) )
695677   PORT_DIPSETTING(      0x0005, DEF_STR( 1C_6C ) )
696678   PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
697   PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) )
679   PORT_DIPNAME( 0x8000, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:1")
698680   PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
699681   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
700   PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unused ) )
701   PORT_DIPSETTING(      0x4000, DEF_STR( Off ) )
702   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
703   PORT_DIPNAME( 0x3000, 0x1000, DEF_STR( Difficulty ) )
682   PORT_DIPUNKNOWN_DIPLOC( 0x4000, 0x4000, "SWB:2" )
683   PORT_DIPNAME( 0x3000, 0x1000, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4,3")
704684   PORT_DIPSETTING(      0x3000, DEF_STR( Easy ) )
705685   PORT_DIPSETTING(      0x1000, DEF_STR( Normal ) )
706686   PORT_DIPSETTING(      0x2000, DEF_STR( Hard ) )
707687   PORT_DIPSETTING(      0x0000, DEF_STR( Hardest ) )
708   PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) )
688   PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:6,5")
709689   PORT_DIPSETTING(      0x0000, "2" )
710690   PORT_DIPSETTING(      0x0c00, "3" )
711691   PORT_DIPSETTING(      0x0400, "4" )
712692   PORT_DIPSETTING(      0x0800, "5" )
713   PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Bonus_Life ) )
693   PORT_DIPNAME( 0x0300, 0x0300, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:8,7")
714694   PORT_DIPSETTING(      0x0300, "50k 200k" )
715695   PORT_DIPSETTING(      0x0100, "100k 300k" )
716696   PORT_DIPSETTING(      0x0200, "50k only" )
r4470r4471
722702
723703   /* Dip Switches order fits the first screen */
724704   PORT_START("DSW")
725   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) )
705   PORT_DIPNAME( 0x00e0, 0x00e0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2,1")
726706   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
727707   PORT_DIPSETTING(      0x0080, DEF_STR( 4C_1C ) )
728708   PORT_DIPSETTING(      0x0040, DEF_STR( 3C_1C ) )
r4470r4471
731711   PORT_DIPSETTING(      0x0060, DEF_STR( 1C_2C ) )
732712   PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_3C ) )
733713   PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
734   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) )
714   PORT_DIPNAME( 0x001c, 0x001c, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:6,5,4")
735715   PORT_DIPSETTING(      0x0000, DEF_STR( 5C_1C ) )
736716   PORT_DIPSETTING(      0x0010, DEF_STR( 4C_1C ) )
737717   PORT_DIPSETTING(      0x0008, DEF_STR( 3C_1C ) )
r4470r4471
740720   PORT_DIPSETTING(      0x000c, DEF_STR( 1C_2C ) )
741721   PORT_DIPSETTING(      0x0014, DEF_STR( 1C_3C ) )
742722   PORT_DIPSETTING(      0x0018, DEF_STR( 1C_4C ) )
743   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
744   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
745   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
746   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) )
723   PORT_DIPUNKNOWN_DIPLOC( 0x0002, 0x0002, "SWA:7" )
724   PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:8")
747725   PORT_DIPSETTING(      0x0000, DEF_STR( Off ) )
748726   PORT_DIPSETTING(      0x0001, DEF_STR( On ) )
749   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) )
727   PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
750728   PORT_DIPSETTING(      0x0000, "1" )
751729   PORT_DIPSETTING(      0xc000, "2" )
752730   PORT_DIPSETTING(      0x4000, "3" )
753731   PORT_DIPSETTING(      0x8000, "4" )
754   PORT_DIPNAME( 0x3000, 0x3000, "Energy" )
732   PORT_DIPNAME( 0x3000, 0x3000, "Energy" ) PORT_DIPLOCATION("SWB:4,3")
755733   PORT_DIPSETTING(      0x0000, "2" )
756734   PORT_DIPSETTING(      0x3000, "3" )
757735   PORT_DIPSETTING(      0x1000, "4" )
758736   PORT_DIPSETTING(      0x2000, "5" )
759   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unused ) )
760   PORT_DIPSETTING(      0x0800, DEF_STR( Off ) )
761   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
762   PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unused ) )
763   PORT_DIPSETTING(      0x0400, DEF_STR( Off ) )
764   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
765   PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unused ) )
766   PORT_DIPSETTING(      0x0200, DEF_STR( Off ) )
767   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
768   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unused ) )
769   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
770   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
737   PORT_DIPUNKNOWN_DIPLOC( 0x0800, 0x0800, "SWB:5" )
738   PORT_DIPUNKNOWN_DIPLOC( 0x0400, 0x0400, "SWB:6" )
739   PORT_DIPUNKNOWN_DIPLOC( 0x0200, 0x0200, "SWB:7" )
740   PORT_DIPUNKNOWN_DIPLOC( 0x0100, 0x0100, "SWB:8" )
771741INPUT_PORTS_END
772742
773743
src/mame/drivers/shangkid.c
r4470r4471
245245
246246static ADDRESS_MAP_START( chinhero_main_map, ADDRESS_SPACE_PROGRAM, 8 )
247247   AM_RANGE(0x0000, 0x9fff) AM_ROM
248   AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP) /* ? */
248   AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
249249   AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
250250   AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
251   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP)      /* main CPU interrupt-related */
252   AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP)      /* BBX interrupt-related */
251   AM_RANGE(0xb002, 0xb002) AM_WRITENOP      /* main CPU interrupt-related */
252   AM_RANGE(0xb003, 0xb003) AM_WRITENOP      /* BBX interrupt-related */
253253   AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
254   AM_RANGE(0xb006, 0xb006) AM_WRITE(SMH_NOP)      /* coin counter */
254   AM_RANGE(0xb006, 0xb006) AM_WRITENOP      /* coin counter */
255255   AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
256256   AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
257257   AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
r4470r4471
265265static ADDRESS_MAP_START( shangkid_main_map, ADDRESS_SPACE_PROGRAM, 8 )
266266   AM_RANGE(0x0000, 0x7fff) AM_ROM
267267   AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(1)
268   AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP) /* ? */
268   AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
269269   AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
270270   AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
271   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP)      /* main CPU interrupt-related */
272   AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP)      /* BBX interrupt-related */
271   AM_RANGE(0xb002, 0xb002) AM_WRITENOP      /* main CPU interrupt-related */
272   AM_RANGE(0xb003, 0xb003) AM_WRITENOP      /* BBX interrupt-related */
273273   AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
274   AM_RANGE(0xb006, 0xb006) AM_WRITE(SMH_NOP)      /* coin counter */
274   AM_RANGE(0xb006, 0xb006) AM_WRITENOP      /* coin counter */
275275   AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w)
276276   AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
277277   AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
r4470r4471
287287
288288static ADDRESS_MAP_START( chinhero_bbx_map, ADDRESS_SPACE_PROGRAM, 8 )
289289   AM_RANGE(0x0000, 0x9fff) AM_ROM
290   AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP) /* ? */
290   AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
291291   AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
292292   AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
293   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP)      /* main CPU interrupt-related */
294   AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP)      /* BBX interrupt-related */
293   AM_RANGE(0xb002, 0xb002) AM_WRITENOP      /* main CPU interrupt-related */
294   AM_RANGE(0xb003, 0xb003) AM_WRITENOP      /* BBX interrupt-related */
295295   AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
296   AM_RANGE(0xb006, 0xb006) AM_WRITE(SMH_NOP)      /* coin counter */
296   AM_RANGE(0xb006, 0xb006) AM_WRITENOP      /* coin counter */
297297   AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
298298   AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
299299   AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
r4470r4471
305305
306306static ADDRESS_MAP_START( shangkid_bbx_map, ADDRESS_SPACE_PROGRAM, 8 )
307307   AM_RANGE(0x0000, 0x9fff) AM_ROM
308   AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP) /* ? */
308   AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
309309   AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
310310   AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
311   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP)      /* main CPU interrupt-related */
312   AM_RANGE(0xb003, 0xb003) AM_WRITE(SMH_NOP)      /* BBX interrupt-related */
311   AM_RANGE(0xb002, 0xb002) AM_WRITENOP      /* main CPU interrupt-related */
312   AM_RANGE(0xb003, 0xb003) AM_WRITENOP      /* BBX interrupt-related */
313313   AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
314   AM_RANGE(0xb006, 0xb006) AM_WRITE(SMH_NOP)      /* coin counter */
314   AM_RANGE(0xb006, 0xb006) AM_WRITENOP      /* coin counter */
315315   AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w)
316316   AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
317317   AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
src/mame/drivers/trackfld.c
r4470r4471
1818***************************************************************************/
1919
2020#include "driver.h"
21#include "trackfld.h"
2122#include "cpu/z80/z80.h"
2223#include "cpu/m6800/m6800.h"
2324#include "machine/konami1.h"
r4470r4471
2728#include "sound/dac.h"
2829#include "sound/msm5205.h"
2930
31#define MASTER_CLOCK      XTAL_18_432MHz
32#define SOUND_CLOCK         XTAL_14_31818MHz
33#define VLM_CLOCK         XTAL_3_579545MHz
3034
31extern UINT8 *trackfld_scroll;
32extern UINT8 *trackfld_scroll2;
3335
34WRITE8_HANDLER( trackfld_videoram_w );
35WRITE8_HANDLER( trackfld_colorram_w );
36WRITE8_HANDLER( trackfld_flipscreen_w );
37WRITE8_HANDLER( atlantol_gfxbank_w );
36static UINT8 hyprolyb_adpcm_ready;
37static UINT8 hyprolyb_adpcm_busy;
38static UINT8 hyprolyb_vck_ready;
3839
39PALETTE_INIT( trackfld );
40VIDEO_START( trackfld );
41VIDEO_UPDATE( trackfld );
4240
43WRITE8_HANDLER( konami_sh_irqtrigger_w );
44READ8_HANDLER( trackfld_sh_timer_r );
45READ8_DEVICE_HANDLER( trackfld_speech_r );
46WRITE8_DEVICE_HANDLER( trackfld_sound_w );
47READ8_HANDLER( hyprolyb_speech_r );
48WRITE8_HANDLER( hyprolyb_ADPCM_data_w );
41static WRITE8_HANDLER( coin_w )
42{
43   coin_counter_w(offset,data & 1);
44}
4945
50/*
51 Track'n'Field has 1k of battery backed RAM which can be erased by setting a dipswitch
52*/
53static UINT8 *nvram;
54static size_t nvram_size;
46static WRITE8_HANDLER( questions_bank_w )
47{
48   if (!(data & 0x01))
49      memory_set_bank(space->machine, 1, 0);
50   else if (!(data & 0x02))
51      memory_set_bank(space->machine, 1, 1);
52   else if (!(data & 0x04))
53      memory_set_bank(space->machine, 1, 2);
54   else if (!(data & 0x08))
55      memory_set_bank(space->machine, 1, 3);
56   else if (!(data & 0x10))
57      memory_set_bank(space->machine, 1, 4);
58   else if (!(data & 0x20))
59      memory_set_bank(space->machine, 1, 5);
60   else if (!(data & 0x40))
61      memory_set_bank(space->machine, 1, 6);
62   else if (!(data & 0x80))
63      memory_set_bank(space->machine, 1, 7);
64}
5565
56static NVRAM_HANDLER( trackfld )
66static WRITE8_HANDLER( hyprolyb_adpcm_w )
5767{
58   if (read_or_write)
59      mame_fwrite(file,nvram,nvram_size);
60   else if (file)
61      mame_fread(file,nvram,nvram_size);
68   soundlatch2_w(space, offset, data);
69   hyprolyb_adpcm_ready = 0x80;
6270}
6371
64static NVRAM_HANDLER( mastkin )
72static READ8_HANDLER( hyprolyb_adpcm_busy_r )
6573{
66   if (read_or_write)
67      mame_fwrite(file,nvram,nvram_size);
68   else
69   {
70      if (file)
71         mame_fread(file,nvram,nvram_size);
72   }
74   return hyprolyb_adpcm_busy ? 0x10 : 0x00;
7375}
7476
75static WRITE8_HANDLER( coin_w )
77static WRITE8_DEVICE_HANDLER( hyprolyb_msm_data_w )
7678{
77   coin_counter_w(offset,data & 1);
79   msm5205_data_w(device, data);
80   hyprolyb_adpcm_busy = ~data & 0x80;
7881}
7982
80static WRITE8_HANDLER( questions_bank_w )
83static READ8_DEVICE_HANDLER( hyprolyb_msm_vck_r )
8184{
82   if( data != 0xff )
83   {
84      UINT8 *questions = memory_region(space->machine, "user1");
85      int bankaddr = 0;
85   UINT8 old = hyprolyb_vck_ready;
86   hyprolyb_vck_ready = 0x00;
87   return old;
88}
8689
87      switch( ~data & 0xff )
88      {
89      case 0x01:
90         bankaddr = 0;
91         break;
92      case 0x02:
93         bankaddr = 0x8000;
94         break;
95      case 0x04:
96         bankaddr = 0x10000;
97         break;
98      case 0x08:
99         bankaddr = 0x18000;
100         break;
101      case 0x10:
102         bankaddr = 0x20000;
103         break;
104      case 0x20:
105         bankaddr = 0x28000;
106         break;
107      case 0x40:
108         bankaddr = 0x30000;
109         break;
110      case 0x80:
111         bankaddr = 0x38000;
112         break;
113      }
90static READ8_HANDLER( hyprolyb_adpcm_ready_r )
91{
92   return hyprolyb_adpcm_ready;
93}
11494
115      memory_set_bankptr(space->machine, 1,&questions[bankaddr]);
116   }
95static READ8_HANDLER( hyprolyb_adpcm_data_r )
96{
97   hyprolyb_adpcm_ready = 0x00;
98   return soundlatch2_r(space, offset);
11799}
118100
119101
120static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
121   AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2")
122   AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM")
123   AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0")
124   AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1")
125   AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1")
126   AM_RANGE(0x1800, 0x1fff) AM_READ(SMH_RAM)
127   AM_RANGE(0x2800, 0x3fff) AM_READ(SMH_RAM)
128   AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
129102
130   AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM)       /* for atlantol (everything not mapped is read from rom) */
103static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
104   AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x007f) AM_WRITE(watchdog_reset_w)      /* AFE */
105   AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x0078) AM_WRITE(trackfld_flipscreen_w)   /* FLIP */
106   AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x0078) AM_WRITE(konami_sh_irqtrigger_w)   /* 26 */ /* cause interrupt on audio CPU */
107   AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x0078) AM_WRITENOP                   /* 25 */
108   AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE(coin_w)               /* 24, 23 */
109   AM_RANGE(0x1085, 0x1085) AM_MIRROR(0x0078) AM_WRITENOP                   /* CN3.2 */
110   AM_RANGE(0x1086, 0x1086) AM_MIRROR(0x0078) AM_WRITENOP                   /* CN3.4 */
111   AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE(interrupt_enable_w)      /* INT */
112   AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x007f) AM_WRITE(soundlatch_w)         /* 32 */
113   AM_RANGE(0x1200, 0x1200) AM_MIRROR(0x007f) AM_READ_PORT("DSW2")
114   AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x007c) AM_READ_PORT("SYSTEM")
115   AM_RANGE(0x1281, 0x1281) AM_MIRROR(0x007c) AM_READ_PORT("IN0")
116   AM_RANGE(0x1282, 0x1282) AM_MIRROR(0x007c) AM_READ_PORT("IN1")
117   AM_RANGE(0x1283, 0x1283) AM_MIRROR(0x007c) AM_READ_PORT("DSW1")
118   /* not used according to schems: AM_RANGE(0x1300, 0x1300) AM_MIRROR(0x007f) AM_READ_PORT("DSW3") */
119   AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&spriteram_2)
120   AM_RANGE(0x1840, 0x185f) AM_RAM AM_BASE(&trackfld_scroll)
121   AM_RANGE(0x1860, 0x1bff) AM_RAM
122   AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
123   AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE(&trackfld_scroll2)
124   AM_RANGE(0x1c60, 0x1fff) AM_RAM
125   AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
126   AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
127   AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
128   AM_RANGE(0x6000, 0xffff) AM_ROM
131129ADDRESS_MAP_END
132130
133static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
134   AM_RANGE(0x0800, 0x0800) AM_WRITE(atlantol_gfxbank_w)
135   AM_RANGE(0x1000, 0x1000) AM_WRITE(watchdog_reset_w)
136   AM_RANGE(0x1080, 0x1080) AM_WRITE(trackfld_flipscreen_w)
137   AM_RANGE(0x1081, 0x1081) AM_WRITE(konami_sh_irqtrigger_w)  /* cause interrupt on audio CPU */
138   AM_RANGE(0x1083, 0x1084) AM_WRITE(coin_w)
139   AM_RANGE(0x1087, 0x1087) AM_WRITE(interrupt_enable_w)
140   AM_RANGE(0x1100, 0x1100) AM_WRITE(soundlatch_w)
141   AM_RANGE(0x1800, 0x183f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
142   AM_RANGE(0x1840, 0x185f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll)
143   AM_RANGE(0x1860, 0x1bff) AM_WRITE(SMH_RAM)
144   AM_RANGE(0x1c00, 0x1c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
145   AM_RANGE(0x1c40, 0x1c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2)
146   AM_RANGE(0x1c60, 0x1fff) AM_WRITE(SMH_RAM)
147   AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM)
148   AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size)
149   AM_RANGE(0x3000, 0x37ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
150   AM_RANGE(0x3800, 0x3fff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
151   AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
152ADDRESS_MAP_END
153
154static ADDRESS_MAP_START( reaktor_readmem, ADDRESS_SPACE_PROGRAM, 8 )
155   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
131static ADDRESS_MAP_START( reaktor_map, ADDRESS_SPACE_PROGRAM, 8 )
132   AM_RANGE(0x0000, 0x7fff) AM_ROM
156133   /* all usual addresses +0x8000 */
157   AM_RANGE(0x9200, 0x9200) AM_READ_PORT("DSW2")
158   AM_RANGE(0x9280, 0x9280) AM_READ_PORT("SYSTEM")
159   AM_RANGE(0x9281, 0x9281) AM_READ_PORT("IN0")
160   AM_RANGE(0x9282, 0x9282) AM_READ_PORT("IN1")
161   AM_RANGE(0x9283, 0x9283) AM_READ_PORT("DSW1")
162   AM_RANGE(0x9800, 0x9fff) AM_READ(SMH_RAM)
163   AM_RANGE(0xa800, 0xbfff) AM_READ(SMH_RAM)
164ADDRESS_MAP_END
165
166static ADDRESS_MAP_START( reaktor_writemem, ADDRESS_SPACE_PROGRAM, 8 )
167   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
168   /* all usual addresses +0x8000 */
169134   AM_RANGE(0x9000, 0x9000) AM_WRITE(watchdog_reset_w)
170135   AM_RANGE(0x9080, 0x9080) AM_WRITE(trackfld_flipscreen_w)
171136   AM_RANGE(0x9081, 0x9081) AM_WRITE(konami_sh_irqtrigger_w)  /* cause interrupt on audio CPU */
172137   AM_RANGE(0x9083, 0x9084) AM_WRITE(coin_w)
173138   AM_RANGE(0x9087, 0x9087) AM_WRITE(interrupt_enable_w)
174139   AM_RANGE(0x9100, 0x9100) AM_WRITE(soundlatch_w)
175   AM_RANGE(0x9800, 0x983f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
176   AM_RANGE(0x9840, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll)
177   AM_RANGE(0x9860, 0x9bff) AM_WRITE(SMH_RAM)
178   AM_RANGE(0x9c00, 0x9c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
179   AM_RANGE(0x9c40, 0x9c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2)
180   AM_RANGE(0x9c60, 0x9fff) AM_WRITE(SMH_RAM)
181   AM_RANGE(0xa800, 0xabff) AM_WRITE(SMH_RAM)
182   AM_RANGE(0xac00, 0xafff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size)
183   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
184   AM_RANGE(0xb800, 0xbfff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
140   AM_RANGE(0x9200, 0x9200) AM_READ_PORT("DSW2")
141   AM_RANGE(0x9280, 0x9280) AM_READ_PORT("SYSTEM")
142   AM_RANGE(0x9281, 0x9281) AM_READ_PORT("IN0")
143   AM_RANGE(0x9282, 0x9282) AM_READ_PORT("IN1")
144   AM_RANGE(0x9283, 0x9283) AM_READ_PORT("DSW1")
145   AM_RANGE(0x9800, 0x983f) AM_RAM AM_BASE(&spriteram_2)
146   AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&trackfld_scroll)
147   AM_RANGE(0x9860, 0x9bff) AM_RAM
148   AM_RANGE(0x9c00, 0x9c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
149   AM_RANGE(0x9c40, 0x9c5f) AM_RAM AM_BASE(&trackfld_scroll2)
150   AM_RANGE(0x9c60, 0x9fff) AM_RAM
151   AM_RANGE(0xa800, 0xabff) AM_RAM
152   AM_RANGE(0xac00, 0xafff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
153   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
154   AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
185155ADDRESS_MAP_END
186156
187157/* Reaktor reads / writes some I/O ports, no idea what they're connected to, if anything */
188158static ADDRESS_MAP_START( reaktor_io_map, ADDRESS_SPACE_IO, 8 )
189159   ADDRESS_MAP_GLOBAL_MASK(0xff)
190   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)
191   AM_RANGE(0x01, 0x01) AM_READWRITE(SMH_NOP, SMH_NOP)
192   AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP)
193   AM_RANGE(0x03, 0x03) AM_WRITE(SMH_NOP)
160   AM_RANGE(0x00, 0x00) AM_WRITENOP
161   AM_RANGE(0x01, 0x01) AM_NOP
162   AM_RANGE(0x02, 0x02) AM_WRITENOP
163   AM_RANGE(0x03, 0x03) AM_WRITENOP
194164ADDRESS_MAP_END
195165
196static ADDRESS_MAP_START( mastkin_readmem, ADDRESS_SPACE_PROGRAM, 8 )
197   AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2")
198   AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM")
199   AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0")
200//  AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") /* unused */
201   AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1")
202   AM_RANGE(0x1800, 0x1fff) AM_READ(SMH_RAM)
203   AM_RANGE(0x2800, 0x3fff) AM_READ(SMH_RAM)
204   AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
205ADDRESS_MAP_END
206
207static ADDRESS_MAP_START( mastkin_writemem, ADDRESS_SPACE_PROGRAM, 8 )
166static ADDRESS_MAP_START( mastkin_map, ADDRESS_SPACE_PROGRAM, 8 )
208167   AM_RANGE(0x1000, 0x1000) AM_WRITE(watchdog_reset_w)
209168   AM_RANGE(0x10b0, 0x10b0) AM_WRITE(trackfld_flipscreen_w)
210169   AM_RANGE(0x10b1, 0x10b1) AM_WRITE(konami_sh_irqtrigger_w)
211170   AM_RANGE(0x1083, 0x1084) AM_WRITE(coin_w)
212171   AM_RANGE(0x1087, 0x1087) AM_WRITE(interrupt_enable_w)
213172   AM_RANGE(0x1100, 0x1100) AM_WRITE(soundlatch_w)
214   AM_RANGE(0x1800, 0x183f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
215   AM_RANGE(0x1840, 0x185f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll)
216   AM_RANGE(0x1860, 0x1bff) AM_WRITE(SMH_RAM)
217   AM_RANGE(0x1c00, 0x1c3f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
218   AM_RANGE(0x1c40, 0x1c5f) AM_WRITE(SMH_RAM) AM_BASE(&trackfld_scroll2)
219   AM_RANGE(0x1c60, 0x1fff) AM_WRITE(SMH_RAM)
220   AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM)
221   AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&nvram) AM_SIZE(&nvram_size)
222   AM_RANGE(0x3000, 0x37ff) AM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
223   AM_RANGE(0x3800, 0x3fff) AM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
224   AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
173   AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2")
174   AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM")
175   AM_RANGE(0x1281, 0x1281) AM_READ_PORT("IN0")
176//  AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") /* unused */
177   AM_RANGE(0x1283, 0x1283) AM_READ_PORT("DSW1")
178   AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&spriteram_2)
179   AM_RANGE(0x1840, 0x185f) AM_RAM AM_BASE(&trackfld_scroll)
180   AM_RANGE(0x1860, 0x1bff) AM_RAM
181   AM_RANGE(0x1c00, 0x1c3f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
182   AM_RANGE(0x1c40, 0x1c5f) AM_RAM AM_BASE(&trackfld_scroll2)
183   AM_RANGE(0x1c60, 0x1fff) AM_RAM
184   AM_RANGE(0x2800, 0x2bff) AM_RAM
185   AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
186   AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE(trackfld_videoram_w) AM_BASE(&videoram)
187   AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE(trackfld_colorram_w) AM_BASE(&colorram)
188   AM_RANGE(0x6000, 0xffff) AM_ROM
225189ADDRESS_MAP_END
226190
227191static ADDRESS_MAP_START( wizzquiz_map, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
252216   AM_RANGE(0xe000, 0xffff) AM_ROM
253217ADDRESS_MAP_END
254218
255static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
256   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
257   AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
258   AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
259   AM_RANGE(0x8000, 0x8000) AM_READ(trackfld_sh_timer_r)
260   AM_RANGE(0xc000, 0xc000) AM_READ(SMH_NOP) // reaktor reads here
261   AM_RANGE(0xe001, 0xe001) AM_READ(SMH_NOP) // reaktor reads here
262   AM_RANGE(0xe002, 0xe002) AM_DEVREAD("vlm", trackfld_speech_r)
219static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
220   AM_RANGE(0x0000, 0x3fff) AM_ROM
221   AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
222   AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r)
223   AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(trackfld_sh_timer_r)
224   AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE(konami_SN76496_latch_w)
225   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVWRITE("sn", konami_SN76496_w)
226   AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE("dac", dac_w)
227   AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP         /* watch dog ?; reaktor reads here */
228   AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_DEVREAD("vlm", trackfld_speech_r)
229   AM_RANGE(0xe003, 0xe003) AM_MIRROR(0x1ff8) AM_MASK(0x0380) AM_DEVWRITE("vlm", trackfld_sound_w)
230   AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_DEVWRITE("vlm", vlm5030_data_w)
263231ADDRESS_MAP_END
264232
265static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
266   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
267   AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
268   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn", sn76496_w)   /* Loads the snd command into the snd latch */
269   AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_NOP)      /* This address triggers the SN chip to read the data port. */
270   AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w)
271/* There are lots more addresses which are used for setting a two bit volume
272    controls for speech and music
273
274    Currently these are un-supported by Mame
275*/
276   AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) /* watch dog ? */
277   AM_RANGE(0xe004, 0xe004) AM_DEVWRITE("vlm", vlm5030_data_w)
278   AM_RANGE(0xe000, 0xefff) AM_DEVWRITE("vlm", trackfld_sound_w) /* e003 speech control */
233static ADDRESS_MAP_START( hyprolyb_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
234   AM_RANGE(0x0000, 0x3fff) AM_ROM
235   AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
236   AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ(soundlatch_r)
237   AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(trackfld_sh_timer_r)
238   AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1fff) AM_WRITE(konami_SN76496_latch_w)
239   AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_DEVWRITE("sn", konami_SN76496_w)
240   AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1ff8) AM_DEVWRITE("dac", dac_w)
241   AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x1ff8) AM_NOP         /* watch dog ?; reaktor reads here */
242   AM_RANGE(0xe002, 0xe002) AM_MIRROR(0x1ff8) AM_READ(hyprolyb_adpcm_busy_r)
243   AM_RANGE(0xe003, 0xe003) AM_MIRROR(0x1ff8) AM_WRITENOP
244   AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_WRITE(hyprolyb_adpcm_w)
279245ADDRESS_MAP_END
280246
281static ADDRESS_MAP_START( hyprolyb_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
282   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
283   AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
284   AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
285   AM_RANGE(0x8000, 0x8000) AM_READ(trackfld_sh_timer_r)
286   AM_RANGE(0xe002, 0xe002) AM_READ(hyprolyb_speech_r)
247static ADDRESS_MAP_START( hyprolyb_adpcm_map, ADDRESS_SPACE_PROGRAM, 8 )
248   AM_RANGE(0x0000, 0x007f) AM_RAM
249   AM_RANGE(0x1000, 0x1000) AM_READ(hyprolyb_adpcm_data_r)
250   AM_RANGE(0x1001, 0x1001) AM_READ(hyprolyb_adpcm_ready_r)
251   AM_RANGE(0x1002, 0x1002) AM_DEVWRITE("msm", hyprolyb_msm_data_w)
252   AM_RANGE(0x1003, 0x1003) AM_DEVREAD("msm", hyprolyb_msm_vck_r)
253      // on init:
254      //    $1003 = $00
255      //    $1002 = $FF
256      //    $1003 = $34
257      //    $1001 = $36
258      //    $1002 = $80
259      // loops while ($1003) & 0x80 == 0
260      // 1002 = ADPCM data written (low 4 bits)
261      //
262      // $1003 & $80 (in) = 5205 DRQ
263      // $1002 & $0f (out) = 5205 data
264      // $1001 & $80 (in) = sound latch request
265      // $1000 (in) = sound latch data
266   AM_RANGE(0x8000, 0xffff) AM_ROM
287267ADDRESS_MAP_END
288268
289static ADDRESS_MAP_START( hyprolyb_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
290   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
291   AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
292   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("sn", sn76496_w)   /* Loads the snd command into the snd latch */
293   AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_NOP)      /* This address triggers the SN chip to read the data port. */
294   AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("dac", dac_w)
295/* There are lots more addresses which are used for setting a two bit volume
296    controls for speech and music
297269
298    Currently these are un-supported by Mame
299*/
300   AM_RANGE(0xe001, 0xe001) AM_WRITE(SMH_NOP) /* watch dog ? */
301   AM_RANGE(0xe004, 0xe004) AM_WRITE(hyprolyb_ADPCM_data_w)
302   AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP)
303ADDRESS_MAP_END
304270
305
306
307271static INPUT_PORTS_START( trackfld )
308272   PORT_START("SYSTEM")
309273   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
369333   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
370334   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
371335   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
372   PORT_DIPSETTING(    0x00, "Disabled" )
373/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but
374   it doesn't give you any credit */
336   PORT_DIPSETTING(    0x00, "No Coin B" )
337   /* "No Coin B" = coins produce sound, but no effect on coin counter */
375338
376339   PORT_START("DSW2")
377340   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
r4470r4471
400363INPUT_PORTS_END
401364
402365static INPUT_PORTS_START( atlantol )
403   PORT_START("SYSTEM")
404   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
405   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
406   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
407   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
408   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
409   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
410   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
411   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
366   PORT_INCLUDE( trackfld )
412367
413   PORT_START("IN0")
368   PORT_MODIFY("IN0")
414369   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
415370   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
416371   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
r4470r4471
420375   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
421376   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
422377
423   PORT_START("IN1")
378   PORT_MODIFY("IN1")
424379   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(3) //PORT_COCKTAIL
425380   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1  ) PORT_PLAYER(3) //PORT_COCKTAIL
426381   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(3) //PORT_COCKTAIL
r4470r4471
430385   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(4) //PORT_COCKTAIL
431386   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
432387
433   PORT_START("DSW1")
434   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
435   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
436   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
437   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
438   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
439   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
440   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
441   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
442   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
443   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
444   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
445   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
446   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
447   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
448   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
449   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
450   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
451   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
452   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
453   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
454   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
455   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
456   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
457   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
458   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
459   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
460   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
461   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
462   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
463   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
464   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
465   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
466   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
467   PORT_DIPSETTING(    0x00, "Disabled" )
468/* 0x00 disables Coin 2. It still accepts coins and makes the sound, but
469   it doesn't give you any credit */
470
471   PORT_START("DSW2")
472   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
473   PORT_DIPSETTING(    0x01, "1" )
474   PORT_DIPSETTING(    0x00, "2" )
388   PORT_MODIFY("DSW2")
475389   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Allow_Continue ) )
476390   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
477391   PORT_DIPSETTING(    0x02, DEF_STR( Yes ) )
478392   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Language ) )
479393   PORT_DIPSETTING(    0x00, DEF_STR( English ) )
480394   PORT_DIPSETTING(    0x04, DEF_STR( Italian ) )
481   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Bonus_Life ) )
482   PORT_DIPSETTING(    0x08, DEF_STR( None ) )
483   PORT_DIPSETTING(    0x00, "100000" )
484   PORT_DIPNAME( 0x10, 0x10, "World Records" )
485   PORT_DIPSETTING(    0x10, "Don't Erase" )
486   PORT_DIPSETTING(    0x00, "Erase on Reset" )
487   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
488   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
489   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
490   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
491   PORT_DIPSETTING(    0x00, "Difficult" )
492   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
493   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
494   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
495395INPUT_PORTS_END
496396
497397static INPUT_PORTS_START( mastkin )
r4470r4471
621521   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
622522   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
623523   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
624   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) // must set both Free Play
524   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )   PORT_CONDITION("DSW1", 0xf0, PORTCOND_EQUALS, 0x00)
525   PORT_DIPSETTING(    0x00, "No Coin A" )            PORT_CONDITION("DSW1", 0xf0, PORTCOND_NOTEQUALS, 0x00)
625526   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
626527   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
627528   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
r4470r4471
638539   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
639540   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
640541   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
641   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) // must set both Free Play
542   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )   PORT_CONDITION("DSW1", 0x0f, PORTCOND_EQUALS, 0x00)
543   PORT_DIPSETTING(    0x00, "No Coin B" )            PORT_CONDITION("DSW1", 0x0f, PORTCOND_NOTEQUALS, 0x00)
544   /* No Coin X = coin slot X open (coins produce sound), but no effect on coin counter */
642545
643546   PORT_START("DSW2")
644547   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
r4470r4471
780683GFXDECODE_END
781684
782685
686static void adpcm_vck_callback(const device_config *device)
687{
688   hyprolyb_vck_ready = 0x80;
689}
690
783691static const msm5205_interface msm5205_config =
784692{
785   NULL,            /* VCK function */
786   MSM5205_S48_4B      /* 8 kHz */
693   adpcm_vck_callback,   /* VCK function */
694   MSM5205_S96_4B      /* 4 kHz */
787695};
788696
789697
r4470r4471
791699static MACHINE_DRIVER_START( trackfld )
792700
793701   /* basic machine hardware */
794   MDRV_CPU_ADD("maincpu", M6809, 2048000)        /* 1.400 MHz ??? */
795   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
702   MDRV_CPU_ADD("maincpu", M6809, MASTER_CLOCK/6/2)   /* a guess for now */
703   MDRV_CPU_PROGRAM_MAP(main_map,0)
796704   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
797705
798   MDRV_CPU_ADD("audiocpu", Z80,14318180/4)   /* Z80 Clock is derived from a 14.31818 MHz crystal */
799   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
706   MDRV_CPU_ADD("audiocpu", Z80, SOUND_CLOCK/4)
707   MDRV_CPU_PROGRAM_MAP(sound_map,0)
800708
801   MDRV_NVRAM_HANDLER(trackfld)
709   MDRV_NVRAM_HANDLER(generic_0fill)
802710
803711   /* video hardware */
804712   MDRV_SCREEN_ADD("screen", RASTER)
r4470r4471
821729   MDRV_SOUND_ADD("dac", DAC, 0)
822730   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
823731
824   MDRV_SOUND_ADD("sn", SN76496, 14318180/8)
732   MDRV_SOUND_ADD("sn", SN76496, SOUND_CLOCK/8)
825733   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
826734
827   MDRV_SOUND_ADD("vlm", VLM5030, 3580000)
735   MDRV_SOUND_ADD("vlm", VLM5030, VLM_CLOCK)
828736   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
829737MACHINE_DRIVER_END
830738
831739/* same as the original, but uses ADPCM instead of VLM5030 */
832740/* also different memory handlers do handle that */
833741static MACHINE_DRIVER_START( hyprolyb )
742   MDRV_IMPORT_FROM(trackfld)
834743
835   /* basic machine hardware */
836   MDRV_CPU_ADD("maincpu", M6809, 2048000)        /* 1.400 MHz ??? */
837   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
838   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
744   MDRV_CPU_MODIFY("audiocpu")
745   MDRV_CPU_PROGRAM_MAP(hyprolyb_sound_map,0)
839746
840   MDRV_CPU_ADD("audiocpu", Z80,14318180/4)   /* Z80 Clock is derived from a 14.31818 MHz crystal */
841   MDRV_CPU_PROGRAM_MAP(hyprolyb_sound_readmem,hyprolyb_sound_writemem)
747   MDRV_CPU_ADD("adpcm", M6802, SOUND_CLOCK/8)   /* unknown clock */
748   MDRV_CPU_PROGRAM_MAP(hyprolyb_adpcm_map,0)
842749
843   MDRV_NVRAM_HANDLER(trackfld)
844
845   /* video hardware */
846   MDRV_SCREEN_ADD("screen", RASTER)
847   MDRV_SCREEN_REFRESH_RATE(60)
848   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
849   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
850   MDRV_SCREEN_SIZE(32*8, 32*8)
851   MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
852
853   MDRV_GFXDECODE(trackfld)
854   MDRV_PALETTE_LENGTH(16*16+16*16)
855
856   MDRV_PALETTE_INIT(trackfld)
857   MDRV_VIDEO_START(trackfld)
858   MDRV_VIDEO_UPDATE(trackfld)
859
860750   /* sound hardware */
861   MDRV_SPEAKER_STANDARD_MONO("mono")
751   MDRV_SOUND_REMOVE("vlm")
862752
863   MDRV_SOUND_ADD("dac", DAC, 0)
864   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
865
866   MDRV_SOUND_ADD("sn", SN76496, 14318180/8)
867   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
868
869753   MDRV_SOUND_ADD("msm", MSM5205, 384000)
870754   MDRV_SOUND_CONFIG(msm5205_config)
871755   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
r4470r4471
877761   /* basic machine hardware */
878762   MDRV_IMPORT_FROM(trackfld)
879763   MDRV_CPU_MODIFY("maincpu")
880   MDRV_CPU_PROGRAM_MAP(mastkin_readmem,mastkin_writemem)
881
882   MDRV_NVRAM_HANDLER(mastkin)
764   MDRV_CPU_PROGRAM_MAP(mastkin_map,0)
883765MACHINE_DRIVER_END
884766
885767static MACHINE_DRIVER_START( wizzquiz )
r4470r4471
890772   MDRV_CPU_REPLACE("maincpu",M6800,2048000)      /* 1.400 MHz ??? */
891773   MDRV_CPU_PROGRAM_MAP(wizzquiz_map,0)
892774   MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
893
894   MDRV_NVRAM_HANDLER(generic_0fill)
895775MACHINE_DRIVER_END
896776
897777static MACHINE_DRIVER_START( reaktor )
898778
899779   /* basic machine hardware */
900780   MDRV_IMPORT_FROM(trackfld)
901   MDRV_CPU_REPLACE("maincpu",Z80,18432000/6)
902   MDRV_CPU_PROGRAM_MAP(reaktor_readmem,reaktor_writemem)
781   MDRV_CPU_REPLACE("maincpu",Z80,MASTER_CLOCK/6)
782   MDRV_CPU_PROGRAM_MAP(reaktor_map,0)
903783   MDRV_CPU_IO_MAP(reaktor_io_map,0)
904784   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
905785MACHINE_DRIVER_END
r4470r4471
1019899
1020900    /* These ROM's are located on the Sound Board */
1021901   ROM_REGION( 0x10000, "adpcm", 0 )   /*  64k for the 6802 which plays ADPCM samples */
1022   /* this bootleg uses a 6802 to "emulate" the VLM5030 speech chip */
1023   /* I didn't bother to emulate the 6802, I just play the samples. */
1024902   ROM_LOAD( "2764.1",       0x8000, 0x2000, CRC(a4cddeb8) SHA1(057981ad3b04239662bb19342e9ec14b0dab2351) )
1025903   ROM_LOAD( "2764.2",       0xa000, 0x2000, CRC(e9919365) SHA1(bd11d6e3ee2c6e698159c2768e315389d666107f) )
1026904   ROM_LOAD( "2764.3",       0xc000, 0x2000, CRC(c3ec42e1) SHA1(048a95726c4f031552e629c3788952c1bc5e7251) )
r4470r4471
1061939   ROM_CONTINUE(      0x00000, 0x10000 )
1062940
1063941   ROM_REGION( 0x10000, "adpcm", 0 )   /*  64k for the 6802 which plays ADPCM samples */
1064   /* this bootleg uses a 6802 to "emulate" the VLM5030 speech chip */
1065   /* I didn't bother to emulate the 6802, I just play the samples. */
1066942   ROM_LOAD( "atl36", 0x00000, 0x10000, CRC(0bae8489) SHA1(fbaeac99733f9c46b0b8d9a601c57df4004e2044) )
1067943   ROM_CONTINUE(      0x00000, 0x10000 )
1068944
r4470r4471
12551131
12561132   memory_set_decrypted_region(space, 0x0000, 0xffff, decrypt);
12571133
1258   memory_install_write8_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0x1000, 0x1000, 0, 0, SMH_NOP );
1134   memory_install_write8_handler(space, 0x0800, 0x0800, 0, 0, atlantol_gfxbank_w);
1135   memory_install_write8_handler(space, 0x1000, 0x1000, 0, 0, SMH_NOP);
1136
1137   /* unmapped areas read as ROM */
1138   memory_install_read8_handler(space, 0x0000, 0x11ff, 0, 0, SMH_BANK10);
1139   memory_install_read8_handler(space, 0x1380, 0x17ff, 0, 0, SMH_BANK11);
1140   memory_install_read8_handler(space, 0x2000, 0x27ff, 0, 0, SMH_BANK12);
1141   memory_install_read8_handler(space, 0x4000, 0x5fff, 0, 0, SMH_BANK13);
1142   memory_set_bankptr(machine, 10, &rom[0x0000]);
1143   memory_set_bankptr(machine, 11, &rom[0x1380]);
1144   memory_set_bankptr(machine, 12, &rom[0x2000]);
1145   memory_set_bankptr(machine, 13, &rom[0x4000]);
12591146}
12601147
12611148static DRIVER_INIT( mastkin )
r4470r4471
12931180   /* decrypt questions roms */
12941181   for( i = 0; i < 0x40000; i++ )
12951182      ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
1183
1184   memory_configure_bank(machine, 1, 0, 8, ROM, 0x8000);
12961185}
12971186
12981187
r4470r4471
13051194GAME( 1985, wizzquiz, 0,        wizzquiz, wizzquiz, wizzquiz, ROT0,  "Konami", "Wizz Quiz (Konami version)", 0 )
13061195GAME( 1985, wizzquza, wizzquiz, wizzquiz, wizzquiz, wizzquiz, ROT0,  "Zilec - Zenitone", "Wizz Quiz (version 4)", 0 )
13071196GAME( 1987, reaktor,  0,        reaktor,  reaktor,  0,        ROT90, "Zilec", "Reaktor (Track & Field conversion)", 0 )
1308
src/mame/drivers/fastfred.c
r4470r4471
191191   AM_RANGE(0xe801, 0xe801) AM_READ_PORT("DSW2")
192192   AM_RANGE(0xe802, 0xe802) AM_READ_PORT("BUTTONS")
193193   AM_RANGE(0xe803, 0xe803) AM_READ_PORT("JOYS")
194   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) // Unused, but initialized
194   AM_RANGE(0xf000, 0xf000) AM_WRITENOP // Unused, but initialized
195195   AM_RANGE(0xf001, 0xf001) AM_WRITE(interrupt_enable_w)
196196   AM_RANGE(0xf002, 0xf002) AM_WRITE(fastfred_colorbank1_w)
197197   AM_RANGE(0xf003, 0xf003) AM_WRITE(fastfred_colorbank2_w)
r4470r4471
240240   AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_RAM)  // Reset PSG's
241241   AM_RANGE(0x5000, 0x5001) AM_DEVWRITE("ay8910.1", ay8910_address_data_w)
242242   AM_RANGE(0x6000, 0x6001) AM_DEVWRITE("ay8910.2", ay8910_address_data_w)
243   AM_RANGE(0x7000, 0x7000) AM_READ(SMH_NOP) // only for Imago, read but not used
243   AM_RANGE(0x7000, 0x7000) AM_READNOP // only for Imago, read but not used
244244ADDRESS_MAP_END
245245
246246
src/mame/drivers/lwings.c
r4470r4471
293293   AM_RANGE(0xf802, 0xf803) AM_WRITE(lwings_bg1_scrolly_w)
294294   AM_RANGE(0xf804, 0xf804) AM_WRITE(trojan_bg2_scrollx_w)
295295   AM_RANGE(0xf805, 0xf805) AM_WRITE(trojan_bg2_image_w)
296   AM_RANGE(0xf808, 0xf808) AM_WRITE(SMH_NOP) /* ? */
296   AM_RANGE(0xf808, 0xf808) AM_WRITENOP /* ? */
297297   AM_RANGE(0xf809, 0xf809) AM_WRITE(avengers_protection_w)
298298   AM_RANGE(0xf80c, 0xf80c) AM_WRITE(avengers_prot_bank_w)
299299   AM_RANGE(0xf80d, 0xf80d) AM_WRITE(avengers_adpcm_w)
r4470r4471
366366/* Yes, _no_ ram */
367367static ADDRESS_MAP_START( adpcm_writemem, ADDRESS_SPACE_PROGRAM, 8 )
368368/*  AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_ROM) avoid cluttering up error.log */
369   AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_NOP)
369   AM_RANGE(0x0000, 0xffff) AM_WRITENOP
370370ADDRESS_MAP_END
371371
372372static ADDRESS_MAP_START( avengers_adpcm_io_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/punchout.c
r4470r4471
369369   ADDRESS_MAP_GLOBAL_MASK(0xff)
370370   AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
371371   AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
372   AM_RANGE(0x00, 0x01) AM_WRITE(SMH_NOP)   /* the 2A03 #1 is not present */
372   AM_RANGE(0x00, 0x01) AM_WRITENOP   /* the 2A03 #1 is not present */
373373   AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW2") AM_WRITE(soundlatch_w)
374374   AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE(soundlatch2_w)
375375   AM_RANGE(0x04, 0x04) AM_DEVWRITE("vlm", vlm5030_data_w)   /* VLM5030 */
376//  AM_RANGE(0x05, 0x05) AM_WRITE(SMH_NOP)  /* unused */
377//  AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)
376//  AM_RANGE(0x05, 0x05) AM_WRITENOP  /* unused */
377//  AM_RANGE(0x06, 0x06) AM_WRITENOP
378378   AM_RANGE(0x08, 0x08) AM_WRITE(interrupt_enable_w)
379   AM_RANGE(0x09, 0x09) AM_WRITE(SMH_NOP)   /* watchdog reset, seldom used because 08 clears the watchdog as well */
380   AM_RANGE(0x0a, 0x0a) AM_WRITE(SMH_NOP)   /* ?? */
379   AM_RANGE(0x09, 0x09) AM_WRITENOP   /* watchdog reset, seldom used because 08 clears the watchdog as well */
380   AM_RANGE(0x0a, 0x0a) AM_WRITENOP   /* ?? */
381381   AM_RANGE(0x0b, 0x0b) AM_WRITE(punchout_2a03_reset_w)
382382   AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("vlm", punchout_speech_reset_w)   /* VLM5030 */
383383   AM_RANGE(0x0d, 0x0d) AM_DEVWRITE("vlm", punchout_speech_st_w)   /* VLM5030 */
384384   AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("vlm", punchout_speech_vcu_w)   /* VLM5030 */
385   AM_RANGE(0x0f, 0x0f) AM_WRITE(SMH_NOP)   /* enable NVRAM ? */
385   AM_RANGE(0x0f, 0x0f) AM_WRITENOP   /* enable NVRAM ? */
386386
387387   /* protection ports - Super Punchout only (move to install handler?) */
388388   AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE(spunchout_exp_r, spunchout_exp_w)
src/mame/drivers/tecmo.c
r4470r4471
118118
119119
120120
121static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
122   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
123   AM_RANGE(0xc000, 0xefff) AM_READ(SMH_RAM)
124   AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_BANK1)
121static ADDRESS_MAP_START( rygar_map, ADDRESS_SPACE_PROGRAM, 8 )
122   AM_RANGE(0x0000, 0xbfff) AM_ROM
123   AM_RANGE(0xc000, 0xcfff) AM_RAM
124   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
125   AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
126   AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
127   AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
128   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
129   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1)
125130   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
126131   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
127132   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2")
r4470r4471
133138   AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0")
134139   AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1")
135140   AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
136ADDRESS_MAP_END
137
138static ADDRESS_MAP_START( rygar_writemem, ADDRESS_SPACE_PROGRAM, 8 )
139   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
140   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
141   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
142   AM_RANGE(0xd800, 0xdbff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
143   AM_RANGE(0xdc00, 0xdfff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
144   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
145   AM_RANGE(0xe800, 0xefff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
146   AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM)
147141   AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w)
148142   AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w)
149143   AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
r4470r4471
152146   AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w)
153147ADDRESS_MAP_END
154148
155static ADDRESS_MAP_START( gemini_writemem, ADDRESS_SPACE_PROGRAM, 8 )
156   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
157   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
158   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
159   AM_RANGE(0xd800, 0xdbff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
160   AM_RANGE(0xdc00, 0xdfff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
161   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
162   AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
163   AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM)
149static ADDRESS_MAP_START( gemini_map, ADDRESS_SPACE_PROGRAM, 8 )
150   AM_RANGE(0x0000, 0xbfff) AM_ROM
151   AM_RANGE(0xc000, 0xcfff) AM_RAM
152   AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
153   AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
154   AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
155   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
156   AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
157   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1)
158   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
159   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
160   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2")
161   AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2")
162   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0")
163   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1")
164   AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSWA_0")
165   AM_RANGE(0xf807, 0xf807) AM_READ_PORT("DSWA_1")
166   AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0")
167   AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1")
168   AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
164169   AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w)
165170   AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w)
166171   AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
r4470r4471
169174   AM_RANGE(0xf80b, 0xf80b) AM_WRITE(watchdog_reset_w)
170175ADDRESS_MAP_END
171176
172static ADDRESS_MAP_START( silkworm_writemem, ADDRESS_SPACE_PROGRAM, 8 )
173   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
174   AM_RANGE(0xc000, 0xc3ff) AM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
175   AM_RANGE(0xc400, 0xc7ff) AM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
176   AM_RANGE(0xc800, 0xcfff) AM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
177   AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM)
178   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
179   AM_RANGE(0xe800, 0xefff) AM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
180   AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_ROM)
177static ADDRESS_MAP_START( silkworm_map, ADDRESS_SPACE_PROGRAM, 8 )
178   AM_RANGE(0x0000, 0xbfff) AM_ROM
179   AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(tecmo_bgvideoram_w) AM_BASE(&tecmo_bgvideoram)
180   AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(tecmo_fgvideoram_w) AM_BASE(&tecmo_fgvideoram)
181   AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(tecmo_txvideoram_w) AM_BASE(&tecmo_txvideoram)
182   AM_RANGE(0xd000, 0xdfff) AM_RAM
183   AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
184   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE(&paletteram)
185   AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK(1)
186   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("JOY1")
187   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("BUTTONS1")
188   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("JOY2")
189   AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2")
190   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0")
191   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1")
192   AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSWA_0")
193   AM_RANGE(0xf807, 0xf807) AM_READ_PORT("DSWA_1")
194   AM_RANGE(0xf808, 0xf808) AM_READ_PORT("DSWB_0")
195   AM_RANGE(0xf809, 0xf809) AM_READ_PORT("DSWB_1")
196   AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
181197   AM_RANGE(0xf800, 0xf802) AM_WRITE(tecmo_fgscroll_w)
182198   AM_RANGE(0xf803, 0xf805) AM_WRITE(tecmo_bgscroll_w)
183199   AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
184200   AM_RANGE(0xf807, 0xf807) AM_WRITE(tecmo_flipscreen_w)
185201   AM_RANGE(0xf808, 0xf808) AM_WRITE(tecmo_bankswitch_w)
186   AM_RANGE(0xf809, 0xf809) AM_WRITE(SMH_NOP)   /* ? */
187   AM_RANGE(0xf80b, 0xf80b) AM_WRITE(SMH_NOP)   /* ? if mapped to watchdog like in the others, causes reset */
202   AM_RANGE(0xf809, 0xf809) AM_WRITENOP   /* ? */
203   AM_RANGE(0xf80b, 0xf80b) AM_WRITENOP   /* ? if mapped to watchdog like in the others, causes reset */
188204ADDRESS_MAP_END
189205
190static ADDRESS_MAP_START( rygar_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
191   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
192   AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM)
193   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
194ADDRESS_MAP_END
195
196static ADDRESS_MAP_START( rygar_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
197   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
198   AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
206static ADDRESS_MAP_START( rygar_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
207   AM_RANGE(0x0000, 0x3fff) AM_ROM
208   AM_RANGE(0x4000, 0x47ff) AM_RAM
199209   AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ym", ym3812_w)
200   AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("msm", tecmo_adpcm_start_w)
210   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) AM_DEVWRITE("msm", tecmo_adpcm_start_w)
201211   AM_RANGE(0xd000, 0xd000) AM_WRITE(tecmo_adpcm_end_w)
202212   AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("msm", tecmo_adpcm_vol_w)
203   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)   /* NMI acknowledge */
213   AM_RANGE(0xf000, 0xf000) AM_WRITENOP   /* NMI acknowledge */
204214ADDRESS_MAP_END
205215
206static ADDRESS_MAP_START( tecmo_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
207   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
208   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
209   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
210ADDRESS_MAP_END
211
212static ADDRESS_MAP_START( tecmo_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
213   AM_RANGE(0x2000, 0x207f) AM_WRITE(SMH_RAM)   /* Silkworm set #2 has a custom CPU which */
214                           /* writes code to this area */
215   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
216   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
216static ADDRESS_MAP_START( tecmo_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
217   AM_RANGE(0x2000, 0x207f) AM_RAM            /* Silkworm set #2 has a custom CPU which */
218                                    /* writes code to this area */
219   AM_RANGE(0x0000, 0x7fff) AM_ROM
220   AM_RANGE(0x8000, 0x87ff) AM_RAM
217221   AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym", ym3812_w)
218   AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("msm", tecmo_adpcm_start_w)
222   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r) AM_DEVWRITE("msm", tecmo_adpcm_start_w)
219223   AM_RANGE(0xc400, 0xc400) AM_WRITE(tecmo_adpcm_end_w)
220224   AM_RANGE(0xc800, 0xc800) AM_DEVWRITE("msm", tecmo_adpcm_vol_w)
221   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP)   /* NMI acknowledge */
225   AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP   /* NMI acknowledge */
222226ADDRESS_MAP_END
223227
224228
r4470r4471
568572
569573   /* basic machine hardware */
570574   MDRV_CPU_ADD("maincpu", Z80, XTAL_24MHz/4) /* verified on pcb */
571   MDRV_CPU_PROGRAM_MAP(readmem,rygar_writemem)
575   MDRV_CPU_PROGRAM_MAP(rygar_map,0)
572576   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
573577
574578   MDRV_CPU_ADD("soundcpu", Z80, XTAL_4MHz) /* verified on pcb */
575   MDRV_CPU_PROGRAM_MAP(rygar_sound_readmem,rygar_sound_writemem)
579   MDRV_CPU_PROGRAM_MAP(rygar_sound_map,0)
576580
577581   /* video hardware */
578582   MDRV_SCREEN_ADD("screen", RASTER)
r4470r4471
608612   /* basic machine hardware */
609613   MDRV_IMPORT_FROM(rygar)
610614   MDRV_CPU_REPLACE("maincpu", Z80, 6000000)
611   MDRV_CPU_PROGRAM_MAP(readmem,gemini_writemem)
615   MDRV_CPU_PROGRAM_MAP(gemini_map,0)
612616
613617   MDRV_CPU_MODIFY("soundcpu")
614   MDRV_CPU_PROGRAM_MAP(tecmo_sound_readmem,tecmo_sound_writemem)
618   MDRV_CPU_PROGRAM_MAP(tecmo_sound_map,0)
615619MACHINE_DRIVER_END
616620
617621
r4470r4471
620624   /* basic machine hardware */
621625   MDRV_IMPORT_FROM(gemini)
622626   MDRV_CPU_REPLACE("maincpu", Z80, 6000000)
623   MDRV_CPU_PROGRAM_MAP(readmem,silkworm_writemem)
627   MDRV_CPU_PROGRAM_MAP(silkworm_map,0)
624628MACHINE_DRIVER_END
625629
626630
src/mame/drivers/galpanic.c
r4470r4471
230230   AM_RANGE(0x800004, 0x800005) AM_READ_PORT("SYSTEM")
231231   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpanic_6295_bankswitch_w)
232232   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(galpanic_coin_w)   /* coin counters */
233   AM_RANGE(0xb00000, 0xb00001) AM_WRITE(SMH_NOP)   /* ??? */
234   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP)   /* ??? */
235   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP)   /* ??? */
233   AM_RANGE(0xb00000, 0xb00001) AM_WRITENOP   /* ??? */
234   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP   /* ??? */
235   AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP   /* ??? */
236236   AM_RANGE(0xe00000, 0xe00015) AM_READWRITE(galpanib_calc_r,galpanib_calc_w) /* CALC1 MCU interaction (simulated) */
237237ADDRESS_MAP_END
238238
r4470r4471
306306   AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
307307   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w)   /* not sure */
308308   AM_RANGE(0xf80000, 0xf8ffff) AM_WRITE(SMH_RAM)
309   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* coin counters, + ? */
309   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* coin counters, + ? */
310310   AM_RANGE(0xc80000, 0xc80001) AM_DEVWRITE8("oki", okim6295_w, 0xff00)
311311ADDRESS_MAP_END
312312
r4470r4471
337337   AM_RANGE(0x680000, 0x68001f) AM_WRITE(SMH_RAM) // regs?
338338   AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
339339   AM_RANGE(0x780000, 0x78001f) AM_WRITE(SMH_RAM) // regs?
340   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP) // ?
340   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP // ?
341341   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w)
342342   AM_RANGE(0xd00000, 0xd00001) AM_DEVWRITE8("oki", okim6295_w, 0xff00)
343343   AM_RANGE(0xe80000, 0xe8ffff) AM_WRITE(SMH_RAM)
r4470r4471
411411   AM_RANGE(0x700000, 0x700fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
412412   AM_RANGE(0x780000, 0x78001f) AM_WRITE(SMH_RAM)
413413   AM_RANGE(0x900000, 0x900001) AM_WRITE(galpania_6295_bankswitch_w)   /* not sure */
414   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)
414   AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP
415415   AM_RANGE(0xc80000, 0xc8ffff) AM_WRITE(SMH_RAM) // main ram
416   AM_RANGE(0xd80000, 0xd80001) AM_WRITE(SMH_NOP)
417   AM_RANGE(0xe00012, 0xe00013) AM_WRITE(SMH_NOP)
418   AM_RANGE(0xe80000, 0xe80001) AM_WRITE(SMH_NOP)
416   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP
417   AM_RANGE(0xe00012, 0xe00013) AM_WRITENOP
418   AM_RANGE(0xe80000, 0xe80001) AM_WRITENOP
419419   AM_RANGE(0xf80000, 0xf80001) AM_DEVWRITE8("oki", okim6295_w, 0xff00)
420420ADDRESS_MAP_END
421421
src/mame/drivers/finalizr.c
r4470r4471
44
55driver by Nicola Salmoria
66
72009-03:
8Added dsw locations and verified factory setting based on Guru's notes
9(actually for finalizr only, finalizb locations assumed to be the same)
10
711***************************************************************************/
812
913#include "driver.h"
r4470r4471
1317#include "cpu/mcs48/mcs48.h"
1418#include "sound/sn76496.h"
1519#include "sound/dac.h"
20#include "konamipt.h"
1621
17
1822extern UINT8 *finalizr_scroll;
1923extern UINT8 *finalizr_videoram2,*finalizr_colorram2;
2024static UINT8 nmi_enable,irq_enable;
r4470r4471
114118   AM_RANGE(0x0818, 0x0818) AM_WRITE(watchdog_reset_w)
115119   AM_RANGE(0x0819, 0x0819) AM_WRITE(finalizr_coin_w)
116120   AM_RANGE(0x081a, 0x081a) AM_DEVWRITE("sn", sn76496_w)   /* This address triggers the SN chip to read the data port. */
117   AM_RANGE(0x081b, 0x081b) AM_WRITE(SMH_NOP)      /* Loads the snd command into the snd latch */
121   AM_RANGE(0x081b, 0x081b) AM_WRITENOP      /* Loads the snd command into the snd latch */
118122   AM_RANGE(0x081c, 0x081c) AM_WRITE(finalizr_i8039_irq_w)   /* custom sound chip */
119123   AM_RANGE(0x081d, 0x081d) AM_WRITE(soundlatch_w)         /* custom sound chip */
120124   AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE(&colorram)
r4470r4471
143147
144148static INPUT_PORTS_START( finalizr )
145149   PORT_START("SYSTEM")
146   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
147   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
148   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
150   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
150   KONAMI8_SYSTEM_10
151151   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
152152   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
153153   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_VBLANK )
154154
155155   PORT_START("P1")
156   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
157   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
158   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
159   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
160   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
161   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
162   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
163   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
156   KONAMI8_MONO_B12_UNK
164157
165158   PORT_START("P2")
166   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
167   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
168   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
169   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
170   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
171   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
172   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
159   KONAMI8_COCKTAIL_B12_UNK
174160
175161   PORT_START("DSW1")
176   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
177   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
178   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
179   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
180   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
181   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
182   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
183   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
184   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
185   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
186   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
187   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
188   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
189   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
190   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
191   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
192   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
193   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
194   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
195   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
196   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
197   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
198   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
199   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
200   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
201   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
202   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
203   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
204   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
205   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
206   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
207   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
208   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
209   PORT_DIPSETTING(    0x00, "Invalid" )
162   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
163   /* "No Coin B" = coins produce sound, but no effect on coin counter */
210164
211165   PORT_START("DSW2")
212   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
166   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )         PORT_DIPLOCATION("SW2:1,2")
213167   PORT_DIPSETTING(    0x03, "2" )
214168   PORT_DIPSETTING(    0x02, "3" )
215169   PORT_DIPSETTING(    0x01, "4" )
216170   PORT_DIPSETTING(    0x00, "7" )
217   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
171   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )         PORT_DIPLOCATION("SW2:3")
218172   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
219173   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
220   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
174   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )      PORT_DIPLOCATION("SW2:4,5")
221175   PORT_DIPSETTING(    0x18, "30000 150000" )
222176   PORT_DIPSETTING(    0x10, "50000 300000" )
223177   PORT_DIPSETTING(    0x08, "30000" )
224178   PORT_DIPSETTING(    0x00, "50000" )
225   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
179   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )      PORT_DIPLOCATION("SW2:6,7")
226180   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
227181   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
228182   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
229183   PORT_DIPSETTING(    0x00, DEF_STR( Very_Hard ) )
230   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
184   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW2:8")
231185   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
232186   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
233187
234188   PORT_START("DSW3")
235   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
189   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION("SW3:1")
236190   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
237191   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
238   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Controls ) )
192   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Controls ) )         PORT_DIPLOCATION("SW3:2")
239193   PORT_DIPSETTING(    0x02, DEF_STR( Single ) )
240194   PORT_DIPSETTING(    0x00, DEF_STR( Dual ) )
241   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Service_Mode ) )
242   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
243   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
244   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) )
245   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
246   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
195   PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" )
196   PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW3:4" )
247197   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
248198INPUT_PORTS_END
249199
250200static INPUT_PORTS_START( finalizb )
251201   PORT_INCLUDE( finalizr )
252202
253   PORT_MODIFY("SYSTEM")
254   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
255
256203   PORT_MODIFY("DSW2")
257   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
204   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )      PORT_DIPLOCATION("SW2:4,5")
258205   PORT_DIPSETTING(    0x18, "20000 100000" )
259206   PORT_DIPSETTING(    0x10, "30000 150000" )
260207   PORT_DIPSETTING(    0x08, "20000" )
261208   PORT_DIPSETTING(    0x00, "30000" )
262   PORT_DIPUNKNOWN( 0x20, 0x20 )
263   PORT_DIPUNKNOWN( 0x40, 0x40 )
209   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" )
210   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" )
264211
265212   PORT_MODIFY("DSW3")
266   PORT_DIPUNKNOWN( 0x04, 0x04 )
267   PORT_DIPUNKNOWN( 0x08, 0x08 )
213   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )
268214INPUT_PORTS_END
269215
270216
r4470r4471
404350
405351GAME( 1985, finalizr, 0,        finalizr, finalizr, finalizr, ROT90, "Konami", "Finalizer - Super Transformation", GAME_IMPERFECT_SOUND )
406352GAME( 1985, finalizb, finalizr, finalizr, finalizb, finalizr, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", GAME_IMPERFECT_SOUND )
407
src/mame/drivers/igspoker.c
r4470r4471
22422242GAMEL( 2000, number10,  0,        number10, number10, number10, ROT0, "PlayMark Srl",   "Number Dieci (Poker)",            0,   layout_igspoker )
22432243GAMEL( 2000, numbr10l,  number10, number10, number10, number10, ROT0, "PlayMark Srl",   "Number Dieci (Lattine)",          0,   layout_igspoker )
22442244GAMEL( 198?,  igs_ncs,  0,        igs_ncs,  igs_ncs, igs_ncs, ROT0, "IGS",    "New Champion Skill (v100n)",                0,   layout_igspoker ) /* SU 062 */
2245GAMEL( 199?, cpokerpk,  0,        cpokerpk, cpokerpk,  cpokerpk,  ROT0, "SGS",    "Champion Poker PK (bootleg, blue board)",   0,   layout_igspoker )
2246GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk,  cpokerpk,  ROT0, "SGS",    "Champion Poker PK (bootleg, green board)",  0, layout_igspoker )
2245GAMEL( 199?, cpokerpk,  0,        cpokerpk, cpokerpk,  cpokerpk,  ROT0, "SGS",    "Champion Italian PK (bootleg, blue board)",   0,   layout_igspoker )
2246GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk,  cpokerpk,  ROT0, "SGS",    "Champion Italian PK (bootleg, green board)",  0, layout_igspoker )
22472247GAMEL( 199?, citalcup,  cpokerpk, cpokerpk, cpokerpk,  cpokerpk,  ROT0, "SGS",    "Champion Italian Cup (bootleg V220IT)",     0, layout_igspoker )
22482248
22492249GAMEL( 2000, igs_ncs2,  0,        igs_ncs,  igs_ncs, igs_ncs2, ROT0, "IGS",   "New Champion Skill (v100n 2000)",           GAME_IMPERFECT_GRAPHICS, layout_igspoker )
src/mame/drivers/videopkr.c
r4470r4471
873873* Memory Map Information *
874874*************************/
875875
876static ADDRESS_MAP_START( i8039_readmem, ADDRESS_SPACE_PROGRAM, 8 )
876static ADDRESS_MAP_START( i8039_map, ADDRESS_SPACE_PROGRAM, 8 )
877877   AM_RANGE(0x0000, 0x0fff) AM_ROM
878878ADDRESS_MAP_END
879879
r4470r4471
11591159
11601160   /* basic machine hardware */
11611161   MDRV_CPU_ADD("maincpu", I8039, CPU_CLOCK)
1162   MDRV_CPU_PROGRAM_MAP(i8039_readmem, 0)
1162   MDRV_CPU_PROGRAM_MAP(i8039_map, 0)
11631163   MDRV_CPU_IO_MAP(i8039_io_port, 0)
11641164
11651165   MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
src/mame/drivers/mil4000.c
r4470r4471
342342   MDRV_SCREEN_ADD("screen", RASTER)
343343   MDRV_SCREEN_REFRESH_RATE(60)
344344   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
345   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
345   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
346346   MDRV_SCREEN_SIZE(320, 240)
347347   MDRV_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
348348
src/mame/drivers/mazerbla.c
r4470r4471
627627
628628static ADDRESS_MAP_START( gg_cpu3_io_map, ADDRESS_SPACE_IO, 8 )
629629   ADDRESS_MAP_GLOBAL_MASK(0xff)
630   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)
630   AM_RANGE(0x00, 0x00) AM_WRITENOP
631631   AM_RANGE(0x01, 0x01) AM_WRITE(cfb_backgnd_color_w)
632632   AM_RANGE(0x02, 0x02) AM_READWRITE(cfb_port_02_r, cfb_led_w)   /* Read = VCU status ? */
633633   AM_RANGE(0x03, 0x03) AM_WRITE(cfb_zpu_int_req_set_w)
r4470r4471
10801080   AM_RANGE(0x4c, 0x4c) AM_WRITE(main_sound_w)
10811081   AM_RANGE(0x60, 0x60) AM_WRITE(zpu_bcd_decoder_w)
10821082   AM_RANGE(0x62, 0x62) AM_READ(zpu_inputs_r)
1083   AM_RANGE(0x66, 0x66) AM_WRITE(SMH_NOP)
1084   AM_RANGE(0x68, 0x68) AM_WRITE(SMH_NOP)
1083   AM_RANGE(0x66, 0x66) AM_WRITENOP
1084   AM_RANGE(0x68, 0x68) AM_WRITENOP
10851085   AM_RANGE(0x6e, 0x6f) AM_WRITE(zpu_led_w)
10861086ADDRESS_MAP_END
10871087
src/mame/drivers/namcona1.c
r4470r4471
762762   AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE(&namcona1_workram)
763763   AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k)
764764   AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000)   /* data */
765   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP) /* xday: serial out? */
766   AM_RANGE(0xd40000, 0xd40001) AM_WRITE(SMH_NOP) /* xday: serial out? */
767   AM_RANGE(0xd80000, 0xd80001) AM_WRITE(SMH_NOP) /* xday: serial out? */
768   AM_RANGE(0xdc0000, 0xdc001f) AM_WRITE(SMH_NOP) /* xday: serial config? */
765   AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* xday: serial out? */
766   AM_RANGE(0xd40000, 0xd40001) AM_WRITENOP /* xday: serial out? */
767   AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP /* xday: serial out? */
768   AM_RANGE(0xdc0000, 0xdc001f) AM_WRITENOP /* xday: serial config? */
769769   AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0x080000)   /* code */
770770   AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE(namcona1_nvram_r, namcona1_nvram_w)
771771   /* xday: additional battery-backed ram at 00E024FA? */
src/mame/drivers/bsktball.c
r4470r4471
8080   AM_RANGE(0x0800, 0x0800) AM_READ(bsktball_in0_r)
8181   AM_RANGE(0x0802, 0x0802) AM_READ_PORT("IN1")
8282   AM_RANGE(0x0803, 0x0803) AM_READ_PORT("DSW")
83   AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_NOP) /* Timer Reset */
83   AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* Timer Reset */
8484   AM_RANGE(0x1010, 0x1010) AM_DEVWRITE("discrete", bsktball_bounce_w) /* Crowd Amp / Bounce */
85   AM_RANGE(0x1022, 0x1023) AM_WRITE(SMH_NOP) /* Coin Counter */
85   AM_RANGE(0x1022, 0x1023) AM_WRITENOP /* Coin Counter */
8686   AM_RANGE(0x1024, 0x1025) AM_WRITE(bsktball_led1_w) /* LED 1 */
8787   AM_RANGE(0x1026, 0x1027) AM_WRITE(bsktball_led2_w) /* LED 2 */
8888   AM_RANGE(0x1028, 0x1029) AM_WRITE(bsktball_ld1_w) /* LD 1 */
src/mame/drivers/armedf.c
r4470r4471
252252   AM_RANGE(0x07c006, 0x07c007) AM_WRITE(terraf_fg_scrollx_w)         /* not use in terrafu, 0x07c008 neither */
253253   AM_RANGE(0x07c008, 0x07c009) AM_WRITE(terraf_fg_scrolly_w)         /* written twice, lsb and msb */
254254   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
255   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP)               /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
255   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP               /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
256256   AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd)            /* MCU Command ? */
257257   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(terraf_fg_scroll_msb_arm_w)   /* written between two consecutive writes to 7c008 */
258258ADDRESS_MAP_END
r4470r4471
278278   AM_RANGE(0x07c006, 0x07c007) AM_WRITE(terraf_fg_scrollx_w)         /* not use in terrafu, 0x07c008 neither */
279279   AM_RANGE(0x07c008, 0x07c009) AM_WRITE(terraf_fg_scrolly_w)         /* written twice, lsb and msb */
280280   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
281   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP)               /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
281   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP               /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
282282   AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd)            /* MCU Command ? */
283283   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(terraf_fg_scroll_msb_arm_w)   /* written between two consecutive writes to 7c008 */
284284ADDRESS_MAP_END
r4470r4471
301301   AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w)
302302   AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w)
303303   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
304   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(SMH_NOP) /* watchdog? */
305   AM_RANGE(0xffd000, 0xffd001) AM_WRITE(SMH_NOP) /* ? */
304   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITENOP /* watchdog? */
305   AM_RANGE(0xffd000, 0xffd001) AM_WRITENOP /* ? */
306306ADDRESS_MAP_END
307307
308308static ADDRESS_MAP_START( cclimbr2_map, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
324324   AM_RANGE(0x07c002, 0x07c003) AM_WRITE(armedf_bg_scrollx_w)
325325   AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w)
326326   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
327   AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(SMH_NOP) /* ? */
328   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP) /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
327   AM_RANGE(0x07c00e, 0x07c00f) AM_WRITENOP /* ? */
328   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
329329ADDRESS_MAP_END
330330
331331static ADDRESS_MAP_START( legion_map, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
348348   AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w)
349349   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
350350   AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd)   /* MCU Command ? */
351   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP)      /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
351   AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP      /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
352352ADDRESS_MAP_END
353353
354354static ADDRESS_MAP_START( legiono_map, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
373373   AM_RANGE(0x07c004, 0x07c005) AM_WRITE(armedf_bg_scrolly_w)
374374   AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
375375   //AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(armedf_mcu_cmd) /* MCU Command ? */
376   //AM_RANGE(0x07c00c, 0x07c00d) AM_WRITE(SMH_NOP)      /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
376   //AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP      /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
377377ADDRESS_MAP_END
378378
379379static ADDRESS_MAP_START( armedf_map, ADDRESS_SPACE_PROGRAM, 16 )
src/mame/drivers/hanaroku.c
r4470r4471
137137   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram1)
138138   AM_RANGE(0x9000, 0x97ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram2)
139139   AM_RANGE(0xa000, 0xa1ff) AM_WRITE(SMH_RAM) AM_BASE(&hanaroku_spriteram3)
140   AM_RANGE(0xa200, 0xa2ff) AM_WRITE(SMH_NOP)   // ??? written once during P.O.S.T.
141   AM_RANGE(0xa300, 0xa304) AM_WRITE(SMH_NOP)   // ???
140   AM_RANGE(0xa200, 0xa2ff) AM_WRITENOP   // ??? written once during P.O.S.T.
141   AM_RANGE(0xa300, 0xa304) AM_WRITENOP   // ???
142142   AM_RANGE(0xc000, 0xc3ff) AM_WRITE(SMH_RAM)            // main ram
143143   AM_RANGE(0xc400, 0xc4ff) AM_WRITE(SMH_RAM)   // ???
144   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP)   // ??? always 0x40
144   AM_RANGE(0xb000, 0xb000) AM_WRITENOP   // ??? always 0x40
145145   AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("ay", ay8910_address_data_w)
146146   AM_RANGE(0xe000, 0xe000) AM_WRITE(hanaroku_out_0_w)
147147   AM_RANGE(0xe002, 0xe002) AM_WRITE(hanaroku_out_1_w)
src/mame/drivers/aliens.c
r4470r4471
1313#include "video/konamiic.h"
1414#include "sound/k007232.h"
1515#include "sound/2151intf.h"
16#include "konamipt.h"
1617
1718/* prototypes */
1819static MACHINE_RESET( aliens );
r4470r4471
121122
122123static INPUT_PORTS_START( aliens )
123124   PORT_START("DSW1")
124   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
125   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
126   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
127   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
128   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
129   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
130   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
131   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
132   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
133   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
134   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
135   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
136   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
137   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
138   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
139   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
140   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
141   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
142   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
143   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
144   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
145   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
146   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
147   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
148   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
149   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
150   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
151   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
152   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
153   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
154   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
155   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
156   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
157//  PORT_DIPSETTING(    0x00, "Invalid" )
125   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Credits", SW1)
126   /* "No Credits" = both coin slots open, but no effect on coin counters */
158127
159128   PORT_START("DSW2")
160129   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1,2")
r4470r4471
187156   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
188157
189158   PORT_START("P1")
190   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
191   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
192   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
193   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
194   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
195   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
196   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
197   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
159   KONAMI8_B12_COIN_START(1)
198160
199161   PORT_START("P2")
200   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
201   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
202   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
203   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
204   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
205   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
206   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
207   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
162   KONAMI8_B12_COIN_START(2)
208163INPUT_PORTS_END
209164
210165
r4470r4471
513468}
514469
515470
516
517471GAME( 1990, aliens,   0,      aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 1)", GAME_SUPPORTS_SAVE )
518472GAME( 1990, aliens2,  aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 2)", GAME_SUPPORTS_SAVE )
519473GAME( 1990, aliens3,  aliens, aliens, aliens, aliens, ROT0, "Konami", "Aliens (World set 3)", GAME_SUPPORTS_SAVE )
src/mame/drivers/88games.c
r4470r4471
236236   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
237237   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
238238   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
239//  PORT_DIPSETTING(    0x00, "Disabled" )
239   PORT_DIPSETTING(    0x00, "No Coin B" )
240   /* "No Coin B" = coins produce sound, but no effect on coin counter */
240241
241242   PORT_START("DSW2")
242243   PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" )
src/mame/drivers/ddenlovr.c
r4470r4471
17351735   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)      //
17361736   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym", ym2413_w, 0x00ff)
17371737   AM_RANGE(0xe00500, 0xe0051f) AM_DEVWRITE8("rtc", msm6242_w, 0x00ff)   // 6242RTC
1738//  AM_RANGE(0xe00302, 0xe00303) AM_WRITE(SMH_NOP)                      // ?
1738//  AM_RANGE(0xe00302, 0xe00303) AM_WRITENOP                      // ?
17391739   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff)
17401740   AM_RANGE(0xe00700, 0xe00701) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
17411741   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)                  // RAM
r4470r4471
17761776   AM_RANGE(0xe0030c, 0xe0030d) AM_WRITE(ddenlovr_coincounter_1_w)      //
17771777   AM_RANGE(0xe00400, 0xe00403) AM_DEVWRITE8("ym", ym2413_w, 0x00ff)
17781778   AM_RANGE(0xe00500, 0xe0051f) AM_DEVWRITE8("rtc", msm6242_w, 0x00ff)   // 6242RTC
1779//  AM_RANGE(0xe00302, 0xe00303) AM_WRITE(SMH_NOP)                      // ?
1779//  AM_RANGE(0xe00302, 0xe00303) AM_WRITENOP                      // ?
17801780   AM_RANGE(0xe00600, 0xe00603) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff)
17811781   AM_RANGE(0xe00700, 0xe00701) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
17821782   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)                  // RAM
r4470r4471
19361936   AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
19371937   AM_RANGE(0xa0, 0xaf) AM_DEVWRITE("rtc", msm6242_w)   // 6242RTC
19381938   AM_RANGE(0xc0, 0xc0) AM_DEVWRITE("oki", quizchq_oki_bank_w)
1939   AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP)                  // enables palette RAM at 8000
1939   AM_RANGE(0xc2, 0xc2) AM_WRITENOP                  // enables palette RAM at 8000
19401940ADDRESS_MAP_END
19411941
19421942
r4470r4471
19791979   AM_RANGE(0x95, 0x95) AM_WRITE(ddenlovr_priority_w)
19801980   AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
19811981   AM_RANGE(0xa0, 0xa0) AM_WRITE(ddenlovr_select2_w)
1982   AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP)   // enables palette RAM at f000, and protection device at f705/f706/f601
1982   AM_RANGE(0xc2, 0xc2) AM_WRITENOP   // enables palette RAM at f000, and protection device at f705/f706/f601
19831983ADDRESS_MAP_END
19841984/*
198519851e input select,1c input read
r4470r4471
21122112   AM_RANGE(0x69, 0x69) AM_WRITE(mmpanic_lockout_w)
21132113   AM_RANGE(0x74, 0x74) AM_WRITE(mmpanic_rombank_w)
21142114
2115   AM_RANGE(0x78, 0x78) AM_WRITE(SMH_NOP)            // 0, during RST 08 (irq acknowledge?)
2115   AM_RANGE(0x78, 0x78) AM_WRITENOP            // 0, during RST 08 (irq acknowledge?)
21162116
21172117   AM_RANGE(0x7c, 0x7c) AM_DEVWRITE("oki", okim6295_w)   // Sound
21182118   AM_RANGE(0x8c, 0x8c) AM_WRITE(mmpanic_soundlatch_w)   //
21192119   AM_RANGE(0x88, 0x88) AM_WRITE(mmpanic_leds_w)      // Leds
2120   AM_RANGE(0x90, 0x90) AM_WRITE(SMH_NOP)            // written just before port 8c
2120   AM_RANGE(0x90, 0x90) AM_WRITENOP            // written just before port 8c
21212121   AM_RANGE(0xa6, 0xa6) AM_WRITE(mmpanic_leds2_w)      //
21222122ADDRESS_MAP_END
21232123
r4470r4471
21402140ADDRESS_MAP_END
21412141
21422142static ADDRESS_MAP_START( mmpanic_sound_writeport, ADDRESS_SPACE_IO, 8 )   ADDRESS_MAP_GLOBAL_MASK(0xff)
2143   AM_RANGE(0x04, 0x04) AM_WRITE(SMH_NOP)   // 0, during IRQ
2144   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)   // almost always 1, sometimes 0
2143   AM_RANGE(0x04, 0x04) AM_WRITENOP   // 0, during IRQ
2144   AM_RANGE(0x06, 0x06) AM_WRITENOP   // almost always 1, sometimes 0
21452145   AM_RANGE(0x08, 0x09) AM_DEVWRITE("ym", ym2413_w)
21462146   AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("ay", ay8910_data_w)
21472147   AM_RANGE(0x0e, 0x0e) AM_DEVWRITE("ay", ay8910_address_w)
r4470r4471
21662166   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM)
21672167   AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2)   // RAM (Banked)
21682168   AM_RANGE(0x8000, 0x81ff) AM_WRITE(rongrong_palette_w)
2169   AM_RANGE(0x8400, 0x87ff) AM_WRITE(SMH_NOP)
2169   AM_RANGE(0x8400, 0x87ff) AM_WRITENOP
21702170ADDRESS_MAP_END
21712171
21722172
r4470r4471
22832283
22842284static ADDRESS_MAP_START( funkyfig_sound_readport, ADDRESS_SPACE_IO, 8 )   ADDRESS_MAP_GLOBAL_MASK(0xff)
22852285   AM_RANGE(0x02, 0x02) AM_READ(soundlatch_r)
2286   AM_RANGE(0x04, 0x04) AM_READ(SMH_NOP)   // read only once at the start
2286   AM_RANGE(0x04, 0x04) AM_READNOP   // read only once at the start
22872287ADDRESS_MAP_END
22882288
22892289
r4470r4471
26702670   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM)      // RAM
26712671   AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2)   // RAM (Banked)
26722672   AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w)   // RAM enabled by bit 4 of rombank
2673   AM_RANGE(0xf200, 0xffff) AM_WRITE(SMH_NOP)      // ""
2673   AM_RANGE(0xf200, 0xffff) AM_WRITENOP      // ""
26742674ADDRESS_MAP_END
26752675
26762676static WRITE8_HANDLER( mjmyster_rambank_w )
r4470r4471
28172817   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM)      // RAM
28182818   AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2)   // RAM (Banked)
28192819   AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w)   // RAM enabled by bit 4 of rombank
2820   AM_RANGE(0xf700, 0xf706) AM_WRITE(SMH_NOP)
2820   AM_RANGE(0xf700, 0xf706) AM_WRITENOP
28212821ADDRESS_MAP_END
28222822
28232823static READ8_DEVICE_HANDLER( hginga_dsw_r )
r4470r4471
29342934
29352935static ADDRESS_MAP_START( hginga_readport, ADDRESS_SPACE_IO, 8 )   ADDRESS_MAP_GLOBAL_MASK(0xff)
29362936   AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
2937   AM_RANGE(0x1c, 0x1c) AM_READ(SMH_NOP)
2937   AM_RANGE(0x1c, 0x1c) AM_READNOP
29382938   AM_RANGE(0x24, 0x24) AM_DEVREAD("ay", ay8910_r)
29392939   AM_RANGE(0x60, 0x6f) AM_DEVREAD("rtc", msm6242_r)   // 6242RTC
29402940   AM_RANGE(0x42, 0x42) AM_READ(hginga_coins_r)
r4470r4471
30403040   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM)      // RAM
30413041   AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_BANK2)   // RAM (Banked)
30423042   AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w)
3043   AM_RANGE(0xe700, 0xe706) AM_WRITE(SMH_NOP)
3043   AM_RANGE(0xe700, 0xe706) AM_WRITENOP
30443044ADDRESS_MAP_END
30453045
30463046
30473047static ADDRESS_MAP_START( hgokou_readport, ADDRESS_SPACE_IO, 8 )   ADDRESS_MAP_GLOBAL_MASK(0xff)
30483048   AM_RANGE(0x03, 0x03) AM_READ(rongrong_gfxrom_r)
3049   AM_RANGE(0x1c, 0x1c) AM_READ(SMH_NOP)                  // ? ack on RTC int
3049   AM_RANGE(0x1c, 0x1c) AM_READNOP                  // ? ack on RTC int
30503050   AM_RANGE(0x20, 0x2f) AM_DEVREAD("rtc", msm6242_r)   // 6242RTC
30513051   AM_RANGE(0x58, 0x58) AM_READ(unk_r)                     // ? must be 78 on startup
30523052   AM_RANGE(0x62, 0x62) AM_READ(hgokou_input_r)
r4470r4471
31663166   AM_RANGE(0x96, 0x96) AM_WRITE(ddenlovr_layer_enable_w)
31673167   AM_RANGE(0xa0, 0xa0) AM_WRITE(hginga_input_w)
31683168   AM_RANGE(0xa1, 0xa1) AM_WRITE(hparadis_coin_w)
3169   AM_RANGE(0xc2, 0xc2) AM_WRITE(SMH_NOP)   // enables palette RAM at c000
3169   AM_RANGE(0xc2, 0xc2) AM_WRITENOP   // enables palette RAM at c000
31703170ADDRESS_MAP_END
31713171
31723172
r4470r4471
33763376static ADDRESS_MAP_START( mjflove_readport, ADDRESS_SPACE_IO, 8 )   // 16 bit I/O
33773377   AM_RANGE(0x0010, 0x0010) AM_READ(hanakanz_rand_r) AM_MIRROR(0xff00)
33783378   AM_RANGE(0x001c, 0x001c) AM_READ_PORT("DSW2") AM_MIRROR(0xff00)
3379   AM_RANGE(0x0038, 0x0038) AM_READ(SMH_NOP)         // ? ack or watchdog
3379   AM_RANGE(0x0038, 0x0038) AM_READNOP         // ? ack or watchdog
33803380   AM_RANGE(0x0043, 0x0043) AM_READ(rongrong_gfxrom_r)
33813381   AM_RANGE(0x0080, 0x0081) AM_READ(mjflove_keyb_r)
33823382   AM_RANGE(0x0082, 0x0082) AM_READ_PORT("SYSTEM")
r4470r4471
33993399   AM_RANGE(0x00f2, 0x00f2) AM_WRITE(mjmyster_rambank_w) AM_MIRROR(0xff00)
34003400   AM_RANGE(0x00f8, 0x00f8) AM_WRITE(mjflove_rombank_w) AM_MIRROR(0xff00)
34013401   AM_RANGE(0x00fa, 0x00fa) AM_DEVWRITE("oki", mjflove_okibank_w)
3402   AM_RANGE(0x0181, 0x0181) AM_WRITE(SMH_NOP)                  // ? int. enable
3402   AM_RANGE(0x0181, 0x0181) AM_WRITENOP                  // ? int. enable
34033403   AM_RANGE(0x0184, 0x0184) AM_WRITE(mjflove_coincounter_w)
34043404   AM_RANGE(0x0200, 0x0201) AM_DEVWRITE("ym", ym2413_w)
34053405   AM_RANGE(0x0280, 0x028f) AM_DEVWRITE("rtc", msm6242_w)   // 6242RTC
src/mame/drivers/chinagat.c
r4470r4471
356356   AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE(1)
357357   AM_RANGE(0x2000, 0x2000) AM_WRITE(chinagat_sub_bankswitch_w)
358358   AM_RANGE(0x2800, 0x2800) AM_WRITE(SMH_RAM) /* Called on CPU start and after return from jump table */
359//  AM_RANGE(0x2a2b, 0x2a2b) AM_READ(SMH_NOP) /* What lives here? */
360//  AM_RANGE(0x2a30, 0x2a30) AM_READ(SMH_NOP) /* What lives here? */
359//  AM_RANGE(0x2a2b, 0x2a2b) AM_READNOP /* What lives here? */
360//  AM_RANGE(0x2a30, 0x2a30) AM_READNOP /* What lives here? */
361361   AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(4)
362362   AM_RANGE(0x8000, 0xffff) AM_ROM
363363ADDRESS_MAP_END
r4470r4471
891891
892892
893893/*   ( YEAR  NAME      PARENT    MACHINE   INPUT     INIT    MONITOR COMPANY    FULLNAME     FLAGS ) */
894GAME( 1988, chinagat, 0,        chinagat, chinagat, chinagat, ROT0, "[Technos] (Taito Romstar license)", "China Gate (US)", 0 )
895GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat, ROT0, "Technos", "Sai Yu Gou Ma Roku (Japan)", 0 )
894GAME( 1988, chinagat, 0,        chinagat, chinagat, chinagat, ROT0, "[Technos Japan] (Taito Romstar license)", "China Gate (US)", 0 )
895GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", 0 )
896896GAME( 1988, saiyugb1, chinagat, saiyugb1, chinagat, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", GAME_IMPERFECT_SOUND )
897897GAME( 1988, saiyugb2, chinagat, saiyugb2, chinagat, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", 0 )
src/mame/drivers/kaneko16.c
r4470r4471
443443   AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM")
444444   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w)   // Coin Lockout
445445   AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(SMH_NOP, kaneko16_soundlatch_w)   // Read = IRQ Ack ?
446   AM_RANGE(0xe40000, 0xe40001) AM_READ(SMH_NOP)   // IRQ Ack ?
447//  AM_RANGE(0xe80000, 0xe80001) AM_READ(SMH_NOP) // IRQ Ack ?
448   AM_RANGE(0xec0000, 0xec0001) AM_READ(SMH_NOP)   // Lev 4 IRQ Ack ?
446   AM_RANGE(0xe40000, 0xe40001) AM_READNOP   // IRQ Ack ?
447//  AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ?
448   AM_RANGE(0xec0000, 0xec0001) AM_READNOP   // Lev 4 IRQ Ack ?
449449ADDRESS_MAP_END
450450
451451
src/mame/drivers/dbz.c
r4470r4471
148148   AM_RANGE(0x508000, 0x509fff) AM_READ(SMH_RAM)
149149   AM_RANGE(0x510000, 0x513fff) AM_READ(SMH_RAM)
150150   AM_RANGE(0x518000, 0x51bfff) AM_READ(SMH_RAM)
151   AM_RANGE(0x600000, 0x6fffff) AM_READ(SMH_NOP)          // PSAC 1 ROM readback window
152   AM_RANGE(0x700000, 0x7fffff) AM_READ(SMH_NOP)          // PSAC 2 ROM readback window
151   AM_RANGE(0x600000, 0x6fffff) AM_READNOP          // PSAC 1 ROM readback window
152   AM_RANGE(0x700000, 0x7fffff) AM_READNOP          // PSAC 2 ROM readback window
153153ADDRESS_MAP_END
154154
155155static ADDRESS_MAP_START( dbz_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
166166   AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w)
167167   AM_RANGE(0x4d0000, 0x4d001f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
168168   AM_RANGE(0x4d4000, 0x4d401f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_1_ctrl)
169   AM_RANGE(0x4e8000, 0x4e8001) AM_WRITE(SMH_NOP)
169   AM_RANGE(0x4e8000, 0x4e8001) AM_WRITENOP
170170   AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w)
171171   AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi)
172   AM_RANGE(0x4f8000, 0x4f801f) AM_WRITE(SMH_NOP)      // 251 #1
172   AM_RANGE(0x4f8000, 0x4f801f) AM_WRITENOP      // 251 #1
173173   AM_RANGE(0x4fc000, 0x4fc01f) AM_WRITE(K053251_lsb_w)   // 251 #2
174174   AM_RANGE(0x500000, 0x501fff) AM_WRITE(dbz_bg2_videoram_w) AM_BASE(&dbz_bg2_videoram)
175175   AM_RANGE(0x508000, 0x509fff) AM_WRITE(dbz_bg1_videoram_w) AM_BASE(&dbz_bg1_videoram)
r4470r4471
197197
198198static ADDRESS_MAP_START( dbz_sound_io_map, ADDRESS_SPACE_IO, 8 )
199199   ADDRESS_MAP_GLOBAL_MASK(0xff)
200   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)
200   AM_RANGE(0x00, 0x00) AM_WRITENOP
201201ADDRESS_MAP_END
202202
203203/**********************************************************************************/
r4470r4471
289289   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
290290   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
291291   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
292//  PORT_DIPSETTING(    0x00, "Disabled" )
292   PORT_DIPSETTING(    0x00, "No Coin B" )
293   /* "No Coin B" = coins produce sound, but no effect on coin counter */
293294INPUT_PORTS_END
294295
295296static INPUT_PORTS_START( dbz2 )
src/mame/drivers/wc90.c
r4470r4471
145145   AM_RANGE(0x0000, 0xbfff) AM_ROM
146146   AM_RANGE(0xf000, 0xf7ff) AM_RAM
147147   AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ym", ym2608_r, ym2608_w)
148   AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP) /* ??? adpcm ??? */
148   AM_RANGE(0xfc00, 0xfc00) AM_READNOP /* ??? adpcm ??? */
149149   AM_RANGE(0xfc10, 0xfc10) AM_READ(soundlatch_r)
150150ADDRESS_MAP_END
151151
src/mame/drivers/ms32.c
r4470r4471
272272static ADDRESS_MAP_START( ms32_readmem, ADDRESS_SPACE_PROGRAM, 32 )
273273   AM_RANGE(0x00000000, 0x001fffff) AM_READ(SMH_ROM)
274274   AM_RANGE(0xfc000000, 0xfc007fff) AM_READ(SMH_RAM)
275   AM_RANGE(0xfc800000, 0xfc800003) AM_READ(SMH_NOP)   /* sound? */
275   AM_RANGE(0xfc800000, 0xfc800003) AM_READNOP   /* sound? */
276276   AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ_PORT("INPUTS")
277277   AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ_PORT("DSW")
278278/**/AM_RANGE(0xfce00600, 0xfce0065f) AM_READ(SMH_RAM)   /* roz control registers */
r4470r4471
319319   AM_RANGE(0xfc000000, 0xfc007fff) AM_WRITE(SMH_RAM) AM_BASE(&ms32_fc000000)   // NVRAM?
320320   AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) /* sound? */
321321   AM_RANGE(0xfce00000, 0xfce00003) AM_WRITE(ms32_gfxctrl_w)   /* flip screen + other unknown bits */
322   AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE(SMH_NOP) // irq ack?
322   AM_RANGE(0xfce00034, 0xfce00037) AM_WRITENOP // irq ack?
323323   AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE(reset_sub_w)
324   AM_RANGE(0xfce00050, 0xfce0005f) AM_WRITE(SMH_NOP)   // watchdog? I haven't investigated
324   AM_RANGE(0xfce00050, 0xfce0005f) AM_WRITENOP   // watchdog? I haven't investigated
325325//  AM_RANGE(0xfce00000, 0xfce0007f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_fce00000) /* registers not ram? */
326326   AM_RANGE(0xfce00280, 0xfce0028f) AM_WRITE(ms32_brightness_w)   // global brightness control
327327   AM_RANGE(0xfce00600, 0xfce0065f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl)   /* roz control registers */
r4470r4471
346346
347347   AM_RANGE(0xfe000000, 0xfe01ffff) AM_WRITE(ms32_rozram_w) AM_BASE(&ms32_rozram)   /* roz layer */
348348   AM_RANGE(0xfe020000, 0xfe03ffff) AM_WRITE(ms32_rozram_w)      /* mirror only used by memory test in service mode */
349   AM_RANGE(0xfe1ffc88, 0xfe1fffff) AM_WRITE(SMH_NOP)   /* gratia writes here before falling into lineram, could be a mirror */
349   AM_RANGE(0xfe1ffc88, 0xfe1fffff) AM_WRITENOP   /* gratia writes here before falling into lineram, could be a mirror */
350350   AM_RANGE(0xfe200000, 0xfe201fff) AM_WRITE(ms32_lineram_w) AM_BASE(&ms32_lineram) /* line ram for roz layer */
351351///**/AM_RANGE(0xfe202000, 0xfe2fffff) AM_WRITE(SMH_RAM) /* f1superb vram */
352352///**/AM_RANGE(0xfe100000, 0xfe1fffff) AM_WRITE(SMH_RAM) /* gratia writes here ?! */
r4470r4471
11761176   AM_RANGE(0x0000, 0x3eff) AM_READ(SMH_ROM)
11771177   AM_RANGE(0x3f00, 0x3f0f) AM_DEVREAD("ymf", ymf271_r)
11781178   AM_RANGE(0x3f10, 0x3f10) AM_READ(latch_r)
1179   AM_RANGE(0x3f20, 0x3f20) AM_READ(SMH_NOP) /* 2nd latch ? */
1179   AM_RANGE(0x3f20, 0x3f20) AM_READNOP /* 2nd latch ? */
11801180   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_RAM)
11811181   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK4)
11821182   AM_RANGE(0xc000, 0xffff) AM_READ(SMH_BANK5)
r4470r4471
11861186   AM_RANGE(0x0000, 0x3eff) AM_WRITE(SMH_ROM)
11871187   AM_RANGE(0x3f00, 0x3f0f) AM_DEVWRITE("ymf", ymf271_w)
11881188   AM_RANGE(0x3f10, 0x3f10) AM_WRITE(to_main_w)
1189   AM_RANGE(0x3f20, 0x3f20) AM_WRITE(SMH_NOP) /* to_main2_w  ? */
1190   AM_RANGE(0x3f40, 0x3f40) AM_WRITE(SMH_NOP)   /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
1191   AM_RANGE(0x3f70, 0x3f70) AM_WRITE(SMH_NOP)   // watchdog? banking? very noisy
1189   AM_RANGE(0x3f20, 0x3f20) AM_WRITENOP /* to_main2_w  ? */
1190   AM_RANGE(0x3f40, 0x3f40) AM_WRITENOP   /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
1191   AM_RANGE(0x3f70, 0x3f70) AM_WRITENOP   // watchdog? banking? very noisy
11921192   AM_RANGE(0x3f80, 0x3f80) AM_WRITE(ms32_snd_bank_w)
11931193   AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_RAM)
11941194   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
src/mame/drivers/20pacgal.c
r4470r4471
226226   AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
227227   AM_RANGE(0x82, 0x82) AM_READ_PORT("SERVICE")
228228   AM_RANGE(0x80, 0x80) AM_WRITE(watchdog_reset_w)
229   AM_RANGE(0x81, 0x81) AM_WRITE(SMH_NOP)            /* ??? pulsed by the timer irq */
229   AM_RANGE(0x81, 0x81) AM_WRITENOP            /* ??? pulsed by the timer irq */
230230   AM_RANGE(0x82, 0x82) AM_WRITE(irqack_w)
231   AM_RANGE(0x85, 0x86) AM_WRITE(SMH_NOP)            /* stars: rng seed (lo/hi) */
231   AM_RANGE(0x85, 0x86) AM_WRITENOP            /* stars: rng seed (lo/hi) */
232232   AM_RANGE(0x87, 0x87) AM_READWRITE(eeprom_r, eeprom_w)
233233   AM_RANGE(0x88, 0x88) AM_WRITE(rom_bank_select_w)
234234   AM_RANGE(0x89, 0x89) AM_DEVWRITE("dac", dac_signed_w)
235   AM_RANGE(0x8a, 0x8a) AM_WRITE(SMH_NOP)            /* stars: bits 3-4 = active set; bit 5 = enable */
235   AM_RANGE(0x8a, 0x8a) AM_WRITENOP            /* stars: bits 3-4 = active set; bit 5 = enable */
236236   AM_RANGE(0x8b, 0x8b) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(_20pacgal_state, flip)
237237   AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w)
238238ADDRESS_MAP_END
src/mame/drivers/spbactn.c
r4470r4471
168168   AM_RANGE(0x80000, 0x827ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
169169
170170   /* this is an awful lot of unknowns */
171   AM_RANGE(0x90000, 0x90001) AM_WRITE(SMH_NOP)
171   AM_RANGE(0x90000, 0x90001) AM_WRITENOP
172172   AM_RANGE(0x90010, 0x90011) AM_WRITE(soundcommand_w)
173173//  AM_RANGE(0x90020, 0x90021) AM_WRITE(soundcommand_w)
174   AM_RANGE(0x90030, 0x90031) AM_WRITE(SMH_NOP)
174   AM_RANGE(0x90030, 0x90031) AM_WRITENOP
175175
176   AM_RANGE(0x90080, 0x90081) AM_WRITE(SMH_NOP)
177   AM_RANGE(0x90090, 0x90091) AM_WRITE(SMH_NOP)
178   AM_RANGE(0x900a0, 0x900a1) AM_WRITE(SMH_NOP)
179   AM_RANGE(0x900b0, 0x900b1) AM_WRITE(SMH_NOP)
180   AM_RANGE(0x900c0, 0x900c1) AM_WRITE(SMH_NOP)
181   AM_RANGE(0x900d0, 0x900d1) AM_WRITE(SMH_NOP)
182   AM_RANGE(0x900e0, 0x900e1) AM_WRITE(SMH_NOP)
183   AM_RANGE(0x900f0, 0x900f1) AM_WRITE(SMH_NOP)
176   AM_RANGE(0x90080, 0x90081) AM_WRITENOP
177   AM_RANGE(0x90090, 0x90091) AM_WRITENOP
178   AM_RANGE(0x900a0, 0x900a1) AM_WRITENOP
179   AM_RANGE(0x900b0, 0x900b1) AM_WRITENOP
180   AM_RANGE(0x900c0, 0x900c1) AM_WRITENOP
181   AM_RANGE(0x900d0, 0x900d1) AM_WRITENOP
182   AM_RANGE(0x900e0, 0x900e1) AM_WRITENOP
183   AM_RANGE(0x900f0, 0x900f1) AM_WRITENOP
184184
185   AM_RANGE(0xa0000, 0xa0001) AM_WRITE(SMH_NOP)
186   AM_RANGE(0xa0004, 0xa0005) AM_WRITE(SMH_NOP)
187   AM_RANGE(0xa0008, 0xa0009) AM_WRITE(SMH_NOP)
188   AM_RANGE(0xa000c, 0xa000d) AM_WRITE(SMH_NOP)
189   AM_RANGE(0xa0010, 0xa0011) AM_WRITE(SMH_NOP)
185   AM_RANGE(0xa0000, 0xa0001) AM_WRITENOP
186   AM_RANGE(0xa0004, 0xa0005) AM_WRITENOP
187   AM_RANGE(0xa0008, 0xa0009) AM_WRITENOP
188   AM_RANGE(0xa000c, 0xa000d) AM_WRITENOP
189   AM_RANGE(0xa0010, 0xa0011) AM_WRITENOP
190190
191   AM_RANGE(0xa0100, 0xa0101) AM_WRITE(SMH_NOP)
192   AM_RANGE(0xa0104, 0xa0105) AM_WRITE(SMH_NOP)
193   AM_RANGE(0xa0108, 0xa0109) AM_WRITE(SMH_NOP)
194   AM_RANGE(0xa010c, 0xa010d) AM_WRITE(SMH_NOP)
195   AM_RANGE(0xa0110, 0xa0111) AM_WRITE(SMH_NOP)
191   AM_RANGE(0xa0100, 0xa0101) AM_WRITENOP
192   AM_RANGE(0xa0104, 0xa0105) AM_WRITENOP
193   AM_RANGE(0xa0108, 0xa0109) AM_WRITENOP
194   AM_RANGE(0xa010c, 0xa010d) AM_WRITENOP
195   AM_RANGE(0xa0110, 0xa0111) AM_WRITENOP
196196
197   AM_RANGE(0xa0200, 0xa0201) AM_WRITE(SMH_NOP)
198   AM_RANGE(0xa0202, 0xa0203) AM_WRITE(SMH_NOP)
199   AM_RANGE(0xa0204, 0xa0205) AM_WRITE(SMH_NOP)
200   AM_RANGE(0xa0206, 0xa0207) AM_WRITE(SMH_NOP)
197   AM_RANGE(0xa0200, 0xa0201) AM_WRITENOP
198   AM_RANGE(0xa0202, 0xa0203) AM_WRITENOP
199   AM_RANGE(0xa0204, 0xa0205) AM_WRITENOP
200   AM_RANGE(0xa0206, 0xa0207) AM_WRITENOP
201201ADDRESS_MAP_END
202202
203203static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
204204   AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM)
205205   AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM)
206206   AM_RANGE(0xf800, 0xf800) AM_DEVREAD("oki", okim6295_r)
207   AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP)   /* irq ack ?? */
207   AM_RANGE(0xfc00, 0xfc00) AM_READNOP   /* irq ack ?? */
208208   AM_RANGE(0xfc20, 0xfc20) AM_READ(soundlatch_r)
209209ADDRESS_MAP_END
210210
r4470r4471
213213   AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
214214   AM_RANGE(0xf800, 0xf800) AM_DEVWRITE("oki", okim6295_w)
215215   AM_RANGE(0xf810, 0xf811) AM_DEVWRITE("ym", ym3812_w)
216   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_NOP)   /* irq ack ?? */
216   AM_RANGE(0xfc00, 0xfc00) AM_WRITENOP   /* irq ack ?? */
217217ADDRESS_MAP_END
218218
219219static INPUT_PORTS_START( spbactn )
src/mame/drivers/system16.c
r4470r4471
313313
314314static ADDRESS_MAP_START(tturfbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
315315   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
316   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_NOP) /* ROM bank */
316   AM_RANGE(0x8000, 0xbfff) AM_WRITENOP /* ROM bank */
317317   AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w)
318318   AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w)
319319   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM)
r4470r4471
322322static ADDRESS_MAP_START( tturfbl_sound_readport, ADDRESS_SPACE_IO, 8 )
323323   ADDRESS_MAP_GLOBAL_MASK(0xff)
324324   AM_RANGE(0x00, 0x01) AM_DEVREAD("ym", ym2151_r)
325   AM_RANGE(0x80, 0x80) AM_READ(SMH_NOP)
325   AM_RANGE(0x80, 0x80) AM_READNOP
326326ADDRESS_MAP_END
327327
328328static ADDRESS_MAP_START( tturfbl_sound_writeport, ADDRESS_SPACE_IO, 8 )
329329   ADDRESS_MAP_GLOBAL_MASK(0xff)
330330   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym2151_w)
331   AM_RANGE(0x40, 0x40) AM_WRITE(SMH_NOP)
332   AM_RANGE(0x80, 0x80) AM_WRITE(SMH_NOP)
331   AM_RANGE(0x40, 0x40) AM_WRITENOP
332   AM_RANGE(0x80, 0x80) AM_WRITENOP
333333ADDRESS_MAP_END
334334
335335/*******************************************************************************/
r4470r4471
635635
636636static ADDRESS_MAP_START( bayroute_writemem, ADDRESS_SPACE_PROGRAM, 16 )
637637   AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM)
638   AM_RANGE(0x100000, 0x100003) AM_WRITE(SMH_NOP) // tilebank control?
638   AM_RANGE(0x100000, 0x100003) AM_WRITENOP // tilebank control?
639639   AM_RANGE(0x500000, 0x503fff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
640640   AM_RANGE(0x600000, 0x600fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram)
641641   AM_RANGE(0x700000, 0x70ffff) AM_WRITE(SYS16_MWA16_TILERAM) AM_BASE(&sys16_tileram)
r4470r4471
643643   AM_RANGE(0x800000, 0x800fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
644644   AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w)
645645   AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w)
646   AM_RANGE(0xff0020, 0xff003f) AM_WRITE(SMH_NOP) // config regs
646   AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs
647647ADDRESS_MAP_END
648648
649649/***************************************************************************/
r4470r4471
743743   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
744744   AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w)
745745   AM_RANGE(0xc46000, 0xc4603f) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2)
746   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(SMH_NOP) // config regs
746   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs
747747   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
748748ADDRESS_MAP_END
749749
r4470r4471
897897   AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
898898   AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
899899   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
900   AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP)
900   AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
901901   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
902902ADDRESS_MAP_END
903903
r4470r4471
12311231   AM_RANGE(0x1f0000, 0x1f0003) AM_WRITE(SYS16_MWA16_EXTRAM) AM_BASE(&sys16_extraram)
12321232   AM_RANGE(0x200000, 0x200fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram)
12331233   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
1234   AM_RANGE(0xc43000, 0xc43001) AM_WRITE(SMH_NOP) // ?
1235//  AM_RANGE(0xfe0006, 0xfe0007) AM_WRITE(SMH_NOP) I think this is the real sound out
1234   AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP // ?
1235//  AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP I think this is the real sound out
12361236   AM_RANGE(0xffec1c, 0xffec1d) AM_WRITE(goldnaxe_prot_w)// how does this really work?
12371237   AM_RANGE(0xffecfc, 0xffecfd) AM_WRITE(ga_sound_command_w)// probably just a buffer
12381238   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram) /* fails SCRATCH RAM test because of hacks */
r4470r4471
17331733   AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
17341734   AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
17351735   AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
1736   AM_RANGE(0xc80000, 0xc80001) AM_READ(SMH_NOP)
1736   AM_RANGE(0xc80000, 0xc80001) AM_READNOP
17371737   AM_RANGE(0xffc000, 0xffffff) AM_READ(SYS16_MRA16_WORKINGRAM)
17381738ADDRESS_MAP_END
17391739
r4470r4471
17461746   AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
17471747   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
17481748   AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
1749   AM_RANGE(0xc43034, 0xc43035) AM_WRITE(SMH_NOP)
1750   AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP)
1749   AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
1750   AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
17511751   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
17521752ADDRESS_MAP_END
17531753
r4470r4471
17661766
17671767static ADDRESS_MAP_START( beautyb_map, ADDRESS_SPACE_PROGRAM, 16 )
17681768   AM_RANGE(0x000000, 0x00ffff) AM_READWRITE(SMH_ROM, SMH_NOP)
1769   //AM_RANGE(0x010000, 0x03ffff) AM_WRITE(SMH_NOP)
1769   //AM_RANGE(0x010000, 0x03ffff) AM_WRITENOP
17701770
17711771   AM_RANGE(0x0280D6, 0x0280D7) AM_READ(beautyb_unk2_r)
17721772   AM_RANGE(0x0280D8, 0x0280D9) AM_READ(beautyb_unk2_r)
r4470r4471
17801780   AM_RANGE(0xC41000, 0xC41001) AM_READ(beautyb_unk1_r )
17811781   AM_RANGE(0xC41002, 0xC41003) AM_READ(beautyb_unk1_r )
17821782
1783   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(SMH_NOP)
1784   AM_RANGE(0xc80000, 0xc80001) AM_WRITE(SMH_NOP)
1783   AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP
1784   AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
17851785
17861786   AM_RANGE(0xffc000, 0xffffff) AM_RAM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
17871787ADDRESS_MAP_END
r4470r4471
19721972   AM_RANGE(0x500000, 0x500fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
19731973   AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w)
19741974   AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w)
1975   AM_RANGE(0xc44000, 0xc44001) AM_WRITE(SMH_NOP)
1975   AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP
19761976   AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3)
1977   AM_RANGE(0xff0020, 0xff003f) AM_WRITE(SMH_NOP) // config regs
1977   AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs
19781978ADDRESS_MAP_END
19791979
19801980/***************************************************************************/
r4470r4471
21052105   AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
21062106   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
21072107   AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
2108   AM_RANGE(0xc44000, 0xc44001) AM_WRITE(SMH_NOP)
2108   AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP
21092109   AM_RANGE(0xc46000, 0xc4601f) AM_WRITE(SYS16_MWA16_EXTRAM3) AM_BASE(&sys16_extraram3)
21102110   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
21112111ADDRESS_MAP_END
src/mame/drivers/deniam.c
r4470r4471
8787   AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
8888   AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
8989   AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2")
90   AM_RANGE(0xc44006, 0xc44007) AM_READ(SMH_NOP)   /* unused? */
90   AM_RANGE(0xc44006, 0xc44007) AM_READNOP   /* unused? */
9191   AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW")
9292   AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)
9393ADDRESS_MAP_END
r4470r4471
100100   AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE(&paletteram16)
101101   AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_w)
102102   AM_RANGE(0xc40002, 0xc40003) AM_WRITE(deniam_coinctrl_w)
103   AM_RANGE(0xc40004, 0xc40005) AM_WRITE(SMH_NOP)   /* irq ack? */
103   AM_RANGE(0xc40004, 0xc40005) AM_WRITENOP   /* irq ack? */
104104   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)
105105ADDRESS_MAP_END
106106
r4470r4471
132132   AM_RANGE(0xc44000, 0xc44001) AM_READ_PORT("SYSTEM")
133133   AM_RANGE(0xc44002, 0xc44003) AM_READ_PORT("P1")
134134   AM_RANGE(0xc44004, 0xc44005) AM_READ_PORT("P2")
135   AM_RANGE(0xc44006, 0xc44007) AM_READ(SMH_NOP)   /* unused? */
135   AM_RANGE(0xc44006, 0xc44007) AM_READNOP   /* unused? */
136136   AM_RANGE(0xc4400a, 0xc4400b) AM_READ_PORT("DSW") /* probably YM3812 input port */
137137   AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)
138138ADDRESS_MAP_END
r4470r4471
145145   AM_RANGE(0x840000, 0x840fff) AM_WRITE(deniam_palette_w) AM_BASE(&paletteram16)
146146   AM_RANGE(0xc40000, 0xc40001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
147147   AM_RANGE(0xc40002, 0xc40003) AM_WRITE(deniam_coinctrl_w)
148   AM_RANGE(0xc40004, 0xc40005) AM_WRITE(SMH_NOP)   /* irq ack? */
148   AM_RANGE(0xc40004, 0xc40005) AM_WRITENOP   /* irq ack? */
149149   AM_RANGE(0xc40006, 0xc40007) AM_DEVWRITE("oki", deniam16c_oki_rom_bank_w)
150150   AM_RANGE(0xc40008, 0xc4000b) AM_DEVWRITE8("ym", ym3812_w, 0xff00)
151151   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM)
src/mame/drivers/mcr3.c
r4470r4471
506506   SSIO_INPUT_PORTS
507507   AM_RANGE(0x84, 0x86) AM_WRITE(mcr_scroll_value_w)
508508   AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
509   AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP)
509   AM_RANGE(0xe8, 0xe8) AM_WRITENOP
510510   AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
511511ADDRESS_MAP_END
512512
src/mame/drivers/pengo.c
r4470r4471
110110   AM_RANGE(0x9041, 0x9041) AM_DEVWRITE("namco", pacman_sound_enable_w)
111111   AM_RANGE(0x9042, 0x9042) AM_WRITE(pengo_palettebank_w)
112112   AM_RANGE(0x9043, 0x9043) AM_WRITE(pacman_flipscreen_w)
113   AM_RANGE(0x9044, 0x9045) AM_WRITE(SMH_NOP) /* coin counters */
113   AM_RANGE(0x9044, 0x9045) AM_WRITENOP /* coin counters */
114114   AM_RANGE(0x9046, 0x9046) AM_WRITE(pengo_colortablebank_w)
115115   AM_RANGE(0x9047, 0x9047) AM_WRITE(pengo_gfxbank_w)
116   AM_RANGE(0x9070, 0x9070) AM_WRITE(SMH_NOP)
116   AM_RANGE(0x9070, 0x9070) AM_WRITENOP
117117   AM_RANGE(0x9080, 0x90bf) AM_READ_PORT("IN1")
118118   AM_RANGE(0x90c0, 0x90ff) AM_READ_PORT("IN0")
119119ADDRESS_MAP_END
r4470r4471
136136   AM_RANGE(0x9045, 0x9045) AM_WRITE(jrpacman_spritebank_w)
137137   AM_RANGE(0x9046, 0x9046) AM_WRITE(pengo_colortablebank_w)
138138   AM_RANGE(0x9047, 0x9047) AM_WRITE(jrpacman_charbank_w)
139   AM_RANGE(0x9070, 0x9070) AM_WRITE(SMH_NOP)
139   AM_RANGE(0x9070, 0x9070) AM_WRITENOP
140140   AM_RANGE(0x9080, 0x90bf) AM_READ_PORT("P2")
141141   AM_RANGE(0x90c0, 0x90ff) AM_READ_PORT("P1")
142142ADDRESS_MAP_END
src/mame/drivers/simpsons.c
r4470r4471
7373#include "sound/2151intf.h"
7474#include "sound/k053260.h"
7575#include "includes/simpsons.h"
76#include "konamipt.h"
7677
7778
7879/***************************************************************************
r4470r4471
149150***************************************************************************/
150151
151152static INPUT_PORTS_START( simpsons )
152   PORT_START("P1") /* IN0 - Player 1 */
153   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
154   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
155   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
156   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
157   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
158   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
159   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
160   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
153   PORT_START("P1")
154   KONAMI8_B12_START(1)
161155
162   PORT_START("P2")   /* IN1 - Player 2 */
163   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
164   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
165   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
166   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
167   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
168   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
169   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
170   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
156   PORT_START("P2")
157   KONAMI8_B12_START(2)
171158
172   PORT_START("P3")   /* IN2 - Player 3 - Used on the 4p version */
173   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
174   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
175   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
176   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
177   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
178   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
179   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
180   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
159   PORT_START("P3")
160   KONAMI8_B12_START(3)
181161
182   PORT_START("P4")   /* IN3 - Player 4 - Used on the 4p version */
183   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
184   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
185   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
186   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
187   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
188   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
189   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
190   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
162   PORT_START("P4")
163   KONAMI8_B12_START(4)
191164
192   PORT_START("COIN") /* IN4 */
165   PORT_START("COIN")
193166   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
194167   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
195168   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
r4470r4471
199172   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE3 Unused
200173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) //SERVICE4 Unused
201174
202   PORT_START("TEST") /* IN5 */
175   PORT_START("TEST")
203176   PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW )
204177   PORT_BIT( 0xfe, IP_ACTIVE_LOW, IPT_UNKNOWN )
205178INPUT_PORTS_END
206179
207180static INPUT_PORTS_START( simpsn2p )
208   PORT_START("P1") /* IN0 - Player 1 */
209   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
210   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
211   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
212   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
213   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
214   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
215   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
216   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
181   PORT_START("P1")
182   KONAMI8_B12_START(1)
217183
218   PORT_START("P2")   /* IN1 - Player 2 */
219   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
220   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
221   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
222   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
223   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
224   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
225   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
226   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
184   PORT_START("P2")
185   KONAMI8_B12_START(2)
227186
228   PORT_START("P3")   /* IN2 - Player 3 - Used on the 4p version */
229//  PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
230//  PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
231//  PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
232//  PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
233//  PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
234//  PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
235//  PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
236//  PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
187   PORT_START("P3")
188   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
237189
238   PORT_START("P4")   /* IN3 - Player 4 - Used on the 4p version */
239//  PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
240//  PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
241//  PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
242//  PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
243//  PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
244//  PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
245//  PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) //BUTTON3 Unused
246//  PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
190   PORT_START("P4")
191   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
247192
248193   PORT_START("COIN") /* IN4 */
249194   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
src/mame/drivers/actfancr.c
r4470r4471
9696   AM_RANGE(0x000000, 0x03ffff) AM_ROM
9797   AM_RANGE(0x040000, 0x04001f) AM_WRITE(actfancr_pf2_control_w)
9898   AM_RANGE(0x044000, 0x045fff) AM_READWRITE(actfancr_pf2_data_r, actfancr_pf2_data_w) AM_BASE(&actfancr_pf2_data)
99   AM_RANGE(0x046400, 0x0467ff) AM_WRITE(SMH_NOP) /* Pf2 rowscroll - is it used? */
99   AM_RANGE(0x046400, 0x0467ff) AM_WRITENOP /* Pf2 rowscroll - is it used? */
100100   AM_RANGE(0x060000, 0x06001f) AM_WRITE(actfancr_pf1_control_w)
101101   AM_RANGE(0x064000, 0x0647ff) AM_READWRITE(actfancr_pf1_data_r, actfancr_pf1_data_w) AM_BASE(&actfancr_pf1_data)
102102   AM_RANGE(0x066400, 0x0667ff) AM_WRITE(SMH_RAM) AM_BASE(&actfancr_pf1_rowscroll_data)
src/mame/drivers/taito_b.c
r4470r4471
493493
494494   AM_RANGE(0xa00000, 0xa0000f) AM_READ(TC0220IOC_halfword_byteswap_r)
495495
496   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)
497   AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_msb_r)
496   AM_RANGE(0x800000, 0x800001) AM_READNOP
497   AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0xff00)
498498ADDRESS_MAP_END
499499
500500static ADDRESS_MAP_START( rastsag2_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
507507
508508   AM_RANGE(0xa00000, 0xa0000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
509509
510   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w)
511   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w)
510   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0xff00)
511   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0xff00)
512512ADDRESS_MAP_END
513513
514514
r4470r4471
522522
523523   AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_byteswap_r)
524524
525   AM_RANGE(0x600000, 0x600001) AM_READ(SMH_NOP)
526   AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r)
525   AM_RANGE(0x600000, 0x600001) AM_READNOP
526   AM_RANGE(0x600002, 0x600003) AM_READ8(taitosound_comm_r, 0xff00)
527527ADDRESS_MAP_END
528528
529529static ADDRESS_MAP_START( crimec_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
536536
537537   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
538538
539   AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w)
540   AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w)
539   AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00)
540   AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00)
541541ADDRESS_MAP_END
542542
543543
r4470r4471
551551
552552   AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r)
553553
554   AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP)
555   AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r)
554   AM_RANGE(0x200000, 0x200001) AM_READNOP
555   AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00)
556556ADDRESS_MAP_END
557557
558558static ADDRESS_MAP_START( tetrist_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
565565
566566   AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
567567
568   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
569   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
568   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
569   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
570570ADDRESS_MAP_END
571571
572572static ADDRESS_MAP_START( tetrista_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
580580   AM_RANGE(0x600000, 0x600001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r)   /* DSW A/B, player inputs*/
581581   AM_RANGE(0x600002, 0x600003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ )
582582
583   AM_RANGE(0xa00000, 0xa00001) AM_READ(SMH_NOP)
584   AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r)
583   AM_RANGE(0xa00000, 0xa00001) AM_READNOP
584   AM_RANGE(0xa00002, 0xa00003) AM_READ8(taitosound_comm_r, 0xff00)
585585ADDRESS_MAP_END
586586
587587static ADDRESS_MAP_START( tetrista_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
595595   AM_RANGE(0x600000, 0x600001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w)
596596   AM_RANGE(0x600002, 0x600003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w)
597597
598   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w)
599   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w)
598   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00)
599   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00)
600600ADDRESS_MAP_END
601601
602602static ADDRESS_MAP_START( hitice_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
610610   AM_RANGE(0x600000, 0x60000f) AM_READ(TC0220IOC_halfword_byteswap_r)
611611   AM_RANGE(0x610000, 0x610001) AM_READ_PORT("P3_P4")
612612
613   AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP)
614   AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r)
613   AM_RANGE(0x700000, 0x700001) AM_READNOP
614   AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00)
615615
616616   AM_RANGE(0xb00000, 0xb7ffff) AM_READ(SMH_RAM)
617617ADDRESS_MAP_END
r4470r4471
626626
627627   AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
628628
629   AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w)
630   AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w)
629   AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00)
630   AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00)
631631
632632   AM_RANGE(0xb00000, 0xb7ffff) AM_WRITE(hitice_pixelram_w) AM_BASE(&taitob_pixelram)
633633//  { 0xbffff0, 0xbffff1, ???
r4470r4471
654654   AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r)
655655   AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r)
656656
657   AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP)
658   AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r)
657   AM_RANGE(0x200000, 0x200001) AM_READNOP
658   AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00)
659659ADDRESS_MAP_END
660660
661661static ADDRESS_MAP_START( rambo3_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
668668
669669   AM_RANGE(0x600000, 0x60000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
670670
671   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
672   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
671   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
672   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
673673ADDRESS_MAP_END
674674
675675
r4470r4471
686686   AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r)   /* not read by this game */
687687   AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("IN4")      /* shown in service mode, game omits to read it */
688688
689   AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP)
690   AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r)
689   AM_RANGE(0x700000, 0x700001) AM_READNOP
690   AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00)
691691ADDRESS_MAP_END
692692
693693static ADDRESS_MAP_START( pbobble_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
702702   AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w)
703703   AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w)   /* simply locks coins 3&4 out */
704704
705   AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w)
706   AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w)
705   AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00)
706   AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00)
707707   AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
708708ADDRESS_MAP_END
709709
r4470r4471
720720   AM_RANGE(0x500026, 0x500027) AM_READ(eep_latch_r)
721721   AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("IN4")
722722
723   AM_RANGE(0x700000, 0x700001) AM_READ(SMH_NOP)
724   AM_RANGE(0x700002, 0x700003) AM_READ(taitosound_comm16_msb_r)
723   AM_RANGE(0x700000, 0x700001) AM_READNOP
724   AM_RANGE(0x700002, 0x700003) AM_READ8(taitosound_comm_r, 0xff00)
725725ADDRESS_MAP_END
726726
727727static ADDRESS_MAP_START( spacedx_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
736736   AM_RANGE(0x500026, 0x500027) AM_WRITE(eeprom_w)
737737   AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w)   /* simply locks coins 3&4 out */
738738
739   AM_RANGE(0x700000, 0x700001) AM_WRITE(taitosound_port16_msb_w)
740   AM_RANGE(0x700002, 0x700003) AM_WRITE(taitosound_comm16_msb_w)
739   AM_RANGE(0x700000, 0x700001) AM_WRITE8(taitosound_port_w, 0xff00)
740   AM_RANGE(0x700002, 0x700003) AM_WRITE8(taitosound_comm_w, 0xff00)
741741   AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
742742ADDRESS_MAP_END
743743
r4470r4471
754754   AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4")
755755   AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5")
756756
757   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
758   AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r)
757   AM_RANGE(0x100000, 0x100001) AM_READNOP
758   AM_RANGE(0x100002, 0x100003) AM_READ8(taitosound_comm_r, 0xff00)
759759ADDRESS_MAP_END
760760
761761static ADDRESS_MAP_START( spacedxo_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
768768
769769   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)
770770
771   AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w)
772   AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w)
771   AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00)
772   AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00)
773773ADDRESS_MAP_END
774774
775775static ADDRESS_MAP_START( qzshowby_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
785785   AM_RANGE(0x200028, 0x200029) AM_READ(player_34_coin_ctrl_r)
786786   AM_RANGE(0x20002e, 0x20002f) AM_READ_PORT("IN4")   /* player 3,4 buttons */
787787
788   AM_RANGE(0x600000, 0x600001) AM_READ(SMH_NOP)
789   AM_RANGE(0x600002, 0x600003) AM_READ(taitosound_comm16_msb_r)
788   AM_RANGE(0x600000, 0x600001) AM_READNOP
789   AM_RANGE(0x600002, 0x600003) AM_READ8(taitosound_comm_r, 0xff00)
790790ADDRESS_MAP_END
791791
792792static ADDRESS_MAP_START( qzshowby_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
801801   AM_RANGE(0x200026, 0x200027) AM_WRITE(eeprom_w)
802802   AM_RANGE(0x200028, 0x200029) AM_WRITE(player_34_coin_ctrl_w)
803803
804   AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w)
805   AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w)
804   AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00)
805   AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00)
806806   AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w)
807807ADDRESS_MAP_END
808808
r4470r4471
817817
818818   AM_RANGE(0x800000, 0x80000f) AM_READ(TC0220IOC_halfword_byteswap_r)
819819
820   AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP)
821   AM_RANGE(0x200002, 0x200003) AM_READ(taitosound_comm16_msb_r)
820   AM_RANGE(0x200000, 0x200001) AM_READNOP
821   AM_RANGE(0x200002, 0x200003) AM_READ8(taitosound_comm_r, 0xff00)
822822ADDRESS_MAP_END
823823
824824static ADDRESS_MAP_START( viofight_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
831831
832832   AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
833833
834   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
835   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
834   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
835   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
836836ADDRESS_MAP_END
837837
838838
r4470r4471
847847   AM_RANGE(0x800000, 0x800001) AM_READ(TC0220IOC_halfword_byteswap_portreg_r)   /* DSW A/B, player inputs*/
848848   AM_RANGE(0x800002, 0x800003) AM_READ(TC0220IOC_halfword_byteswap_port_r /*watchdog_reset16_r*/ )
849849
850   AM_RANGE(0xa00000, 0xa00001) AM_READ(SMH_NOP)
851   AM_RANGE(0xa00002, 0xa00003) AM_READ(taitosound_comm16_msb_r)
850   AM_RANGE(0xa00000, 0xa00001) AM_READNOP
851   AM_RANGE(0xa00002, 0xa00003) AM_READ8(taitosound_comm_r, 0xff00)
852852ADDRESS_MAP_END
853853
854854static ADDRESS_MAP_START( masterw_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
862862   AM_RANGE(0x800000, 0x800001) AM_WRITE(TC0220IOC_halfword_byteswap_portreg_w)
863863   AM_RANGE(0x800002, 0x800003) AM_WRITE(TC0220IOC_halfword_byteswap_port_w)
864864
865   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w)
866   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w)
865   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00)
866   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00)
867867ADDRESS_MAP_END
868868
869869
r4470r4471
879879   AM_RANGE(0x210000, 0x210001) AM_READ_PORT("IN3")
880880   AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4")
881881   AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5")
882//  AM_RANGE(0x240000, 0x240001) AM_READ(SMH_NOP) /* read 4 times at init */
882//  AM_RANGE(0x240000, 0x240001) AM_READNOP /* read 4 times at init */
883883
884   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
885   AM_RANGE(0x100002, 0x100003) AM_READ(taitosound_comm16_msb_r)
886//  AM_RANGE(0x10001a, 0x10001b) AM_READ(SMH_NOP) // ??? read at $1e344
887//  AM_RANGE(0x10001c, 0x10001d) AM_READ(SMH_NOP) // ??? read at $1e356
884   AM_RANGE(0x100000, 0x100001) AM_READNOP
885   AM_RANGE(0x100002, 0x100003) AM_READ8(taitosound_comm_r, 0xff00)
886//  AM_RANGE(0x10001a, 0x10001b) AM_READNOP // ??? read at $1e344
887//  AM_RANGE(0x10001c, 0x10001d) AM_READNOP // ??? read at $1e356
888888ADDRESS_MAP_END
889889
890890static ADDRESS_MAP_START( silentd_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
896896   TC0180VCU_MEMW( 0x500000 )
897897
898898   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)
899   AM_RANGE(0x240000, 0x240001) AM_WRITE(SMH_NOP) // ???
899   AM_RANGE(0x240000, 0x240001) AM_WRITENOP // ???
900900
901   AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w)
902   AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w)
901   AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00)
902   AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00)
903903ADDRESS_MAP_END
904904
905905
r4470r4471
914914   AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_byteswap_r)
915915   AM_RANGE(0x410000, 0x41000f) AM_READ(TC0220IOC_halfword_byteswap_r) /* mirror address - seems to be only used for coin control */
916916
917   AM_RANGE(0x500000, 0x500001) AM_READ(SMH_NOP)
918   AM_RANGE(0x500002, 0x500003) AM_READ(taitosound_comm16_msb_r)
917   AM_RANGE(0x500000, 0x500001) AM_READNOP
918   AM_RANGE(0x500002, 0x500003) AM_READ8(taitosound_comm_r, 0xff00)
919919ADDRESS_MAP_END
920920
921921static ADDRESS_MAP_START( selfeena_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
929929   AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_byteswap_w)
930930   AM_RANGE(0x410000, 0x41000f) AM_WRITE(TC0220IOC_halfword_byteswap_w) /* mirror address - seems to be only used for coin control */
931931
932   AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w)
933   AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w)
932   AM_RANGE(0x500000, 0x500001) AM_WRITE8(taitosound_port_w, 0xff00)
933   AM_RANGE(0x500002, 0x500003) AM_WRITE8(taitosound_comm_w, 0xff00)
934934ADDRESS_MAP_END
935935
936936
r4470r4471
944944
945945   AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r)
946946
947   AM_RANGE(0x320000, 0x320001) AM_READ(SMH_NOP)
948   AM_RANGE(0x320002, 0x320003) AM_READ(taitosound_comm16_msb_r)
947   AM_RANGE(0x320000, 0x320001) AM_READNOP
948   AM_RANGE(0x320002, 0x320003) AM_READ8(taitosound_comm_r, 0xff00)
949949ADDRESS_MAP_END
950950
951951static ADDRESS_MAP_START( sbm_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
958958
959959   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w)
960960
961   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w)
962   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w)
961   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00)
962   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00)
963963ADDRESS_MAP_END
964964
965965
r4470r4471
985985   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)
986986   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
987987   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
988   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
988   AM_RANGE(0xe200, 0xe200) AM_READNOP
989989   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
990   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
990   AM_RANGE(0xea00, 0xea00) AM_READNOP
991991ADDRESS_MAP_END
992992
993993static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
996996   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
997997   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
998998   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
999   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
1000   AM_RANGE(0xe600, 0xe600) AM_WRITE(SMH_NOP) /* ? */
1001   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
1002   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
999   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
1000   AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
1001   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
1002   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
10031003   AM_RANGE(0xf200, 0xf200) AM_WRITE(bankswitch_w)
10041004ADDRESS_MAP_END
10051005
src/mame/drivers/jackal.c
r4470r4471
7474#include "cpu/m6809/m6809.h"
7575#include "sound/2151intf.h"
7676#include "includes/jackal.h"
77#include "konamipt.h"
7778
78
7979#define MASTER_CLOCK      XTAL_18_432MHz
8080#define SOUND_CLOCK         XTAL_3_579545MHz
8181
r4470r4471
128128
129129static INPUT_PORTS_START( jackal )
130130   PORT_START("DSW1")
131   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION( "SW1:1,2,3,4" )
132   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
133   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
134   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
135   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
136   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
137   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
138   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
139   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
140   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
141   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
142   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
143   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
144   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
145   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
146   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
147   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
148   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION( "SW1:5,6,7,8" )
149   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
150   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
151   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
152   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
153   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
154   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
155   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
156   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
157   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
158   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
159   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
160   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
161   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
162   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
163   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
131   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
132   /* "No Coin B" = coins produce sound, but no effect on coin counter */
164133
165134   PORT_START("DSW2")
166135   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW2:1,2" )
r4470r4471
186155   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
187156
188157   PORT_START("IN0")
189   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
190   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
191   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
192   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
193   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
158   KONAMI8_SYSTEM_10
194159   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION( "SW3:1" )
195160   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
196161   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
202167   PORT_DIPSETTING(    0x00, DEF_STR( Stereo ) )
203168
204169   PORT_START("IN1")
205   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_8WAY PORT_PLAYER(1)
206   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
207   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(1)
208   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_PLAYER(1)
209   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") PORT_PLAYER(1)
210   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") PORT_PLAYER(1)
211   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )   // P1 button 3
170   KONAMI8_B12(1)
212171   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION( "SW3:4" )
213172   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
214173   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
215174
216175   PORT_START("IN2")
217   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_8WAY PORT_PLAYER(2)
218   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
219   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_PLAYER(2)
220   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_PLAYER(2)
221   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Fire") PORT_PLAYER(2)
222   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Bomb") PORT_PLAYER(2)
223   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )   // P2 button 3
224   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
176   KONAMI8_B12_UNK(2)
225177INPUT_PORTS_END
226178
227179static INPUT_PORTS_START( topgunbl )
src/mame/drivers/namcos86.c
r4470r4471
422422   AM_RANGE(ADDR_LOWROM, ADDR_LOWROM+0x3fff) AM_ROM                           \
423423   AM_RANGE(0x8000, 0xbfff) AM_ROM                                          \
424424   AM_RANGE(0xf000, 0xffff) AM_ROM                                          \
425   AM_RANGE(ADDR_UNK1, ADDR_UNK1) AM_WRITE(SMH_NOP) /* ??? written (not always) at end of interrupt */   \
426   AM_RANGE(ADDR_UNK2, ADDR_UNK2) AM_WRITE(SMH_NOP) /* ??? written (not always) at end of interrupt */   \
425   AM_RANGE(ADDR_UNK1, ADDR_UNK1) AM_WRITENOP /* ??? written (not always) at end of interrupt */   \
426   AM_RANGE(ADDR_UNK2, ADDR_UNK2) AM_WRITENOP /* ??? written (not always) at end of interrupt */   \
427427ADDRESS_MAP_END
428428
429429#define UNUSED 0x4000
r4470r4471
452452
453453/*******************************************************************/
454454
455// #define PRIORITY_EASINESS_TO_PLAY
456
455457static INPUT_PORTS_START( hopmappy )
456458   PORT_START("IN0")
457459   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* button 3 player 2 */
r4470r4471
484486   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
485487
486488   PORT_START("DSWA")
487   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
488   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
489   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
490   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
489491   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
490492   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
491493   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
492494   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
493   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) )
495   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWA:5,4")
494496   PORT_DIPSETTING(    0x10, "1" )
495497   PORT_DIPSETTING(    0x08, "2" )
496498   PORT_DIPSETTING(    0x18, "3" )
497499   PORT_DIPSETTING(    0x00, "5" )
498   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) )
500   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWA:6")
499501   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
500502   PORT_DIPSETTING(    0x04, DEF_STR( Yes ) )
501   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
503   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
502504   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
503505   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
504506   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
505507   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
506508
507509   PORT_START("DSWB")
508   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) )
510   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:1")
509511   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
510512   PORT_DIPSETTING(    0x00, DEF_STR( Hard ) )
511   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
513   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:2")
512514   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
513515   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
514   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) )
516   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:3")
515517   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
516518   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
517   PORT_DIPNAME( 0x10, 0x10, "Level Select (Cheat)")
519   PORT_DIPNAME( 0x10, 0x10, "Level Select (Cheat)") PORT_DIPLOCATION("SWB:4")
518520   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
519521   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
520   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
521   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
522   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
523   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
524   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
525   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
526   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
527   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
528   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
529   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
522   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
523   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
524   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SWB:7" )
525   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:8")
530526   PORT_DIPSETTING(    0x01, DEF_STR( Upright ) )
531527   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
532528INPUT_PORTS_END
r4470r4471
563559   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
564560
565561   PORT_START("DSWA")
566   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
567   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
562   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
563   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
568564   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
569565   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
570566   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
571567   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
572   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
568   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
573569   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
574570   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
575   PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" )
571   PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWA:5")
576572   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
577573   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
578   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
574   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
579575   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
580576   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
581   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
577   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
582578   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
583579   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
584580   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
585581   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
586582
587583   PORT_START("DSWB")
588   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
584   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
589585   PORT_DIPSETTING(    0x80, "1" )
590586   PORT_DIPSETTING(    0x40, "2" )
591587   PORT_DIPSETTING(    0xc0, "3" )
592588   PORT_DIPSETTING(    0x00, "5" )
593   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
589   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3")
594590   PORT_DIPSETTING(    0x00, "20000 Every 80000" )
595591   PORT_DIPSETTING(    0x10, "20000 80000" )
596592   PORT_DIPSETTING(    0x20, "30000 Every 90000" )
597593   PORT_DIPSETTING(    0x30, "30000 90000" )
598   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
599   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
600   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
601   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
602   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
603   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
604   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
605   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
606   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
607   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
594   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
595   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
596   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SWB:7" )
597   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
608598   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
609599   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
610600INPUT_PORTS_END
r4470r4471
641631   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY
642632
643633   PORT_START("DSWA")
644   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
645   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) )
634   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
635   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:2")
646636   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
647637   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
648   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
649   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
650   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
651   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
652   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
653   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
654   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
655   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
656   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
657   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )
638   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWA:3" )
639   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWA:4" )
640   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWA:5" )
641   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:8,7,6")
658642   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
659643   PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
660644   PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
r4470r4471
665649   PORT_DIPSETTING(    0x03, DEF_STR( 1C_6C ) )
666650
667651   PORT_START("DSWB")
668   PORT_DIPNAME( 0x80, 0x80, "Freeze" )
652   PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SWB:1")
669653   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
670654   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
671   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) )
655   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:2")
672656   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
673657   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
674   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
675   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
676   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
677   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
678   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
679   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
680   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
681   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
682   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
683   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) )
658   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" )
659   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" )
660   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
661   PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWB:8,7,6")
684662   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
685663   PORT_DIPSETTING(    0x02, DEF_STR( 2C_1C ) )
686664   PORT_DIPSETTING(    0x07, DEF_STR( 1C_1C ) )
r4470r4471
723701   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
724702
725703   PORT_START("DSWA")
726   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
727   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
704   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
705   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
728706   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
729707   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
730708   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
731709   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
732   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
710   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
733711   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
734712   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
735   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) )
713   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWA:5")
736714   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
737715   PORT_DIPSETTING(    0x08, DEF_STR( Yes ) )
738   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
716   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
739717   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
740718   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
741   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
719   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
742720   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
743721   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
744722   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
745723   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
746724
747725   PORT_START("DSWB")
748   PORT_DIPNAME( 0xc0, 0xc0, "Candle" )
726   PORT_DIPNAME( 0xc0, 0xc0, "Candle" ) PORT_DIPLOCATION("SWB:2,1")
749727   PORT_DIPSETTING(    0x80, "40" )
750728   PORT_DIPSETTING(    0xc0, "50" )
751729   PORT_DIPSETTING(    0x40, "60" )
752730   PORT_DIPSETTING(    0x00, "70" )
753   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
731   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4,3")
754732   PORT_DIPSETTING(    0x20, DEF_STR( Easy ) )
755733   PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
756734   PORT_DIPSETTING(    0x10, DEF_STR( Hard ) )
757735   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
758   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
759   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
760   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
761   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
762   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
763   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
764   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
736   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
737   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
738   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7")
765739   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
766740   PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
767   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
741   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
768742   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
769743   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
770744INPUT_PORTS_END
r4470r4471
801775   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
802776
803777   PORT_START("DSWA")
804   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
805   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
778   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
779   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
806780   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
807781   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
808782   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
809783   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
810   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
784   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
811785   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
812786   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
813   PORT_DIPNAME( 0x08, 0x08, "Invulnerability" )
787   PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_DIPLOCATION("SWA:5")
814788   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
815789   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
816   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
790   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
817791   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
818792   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
819   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
793   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
820794   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
821795   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
822796   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
823797   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
824798
825799   PORT_START("DSWB")
826   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) )
800   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:1")
827801   PORT_DIPSETTING(    0x80, "3" )
828802   PORT_DIPSETTING(    0x00, "5" )
829   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) )
803   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:2")
830804   PORT_DIPSETTING(    0x40, "70k, 200k" )
831805   PORT_DIPSETTING(    0x00, "100k, 300k" )
832   PORT_DIPNAME( 0x20, 0x00, "Timer value" )
806   PORT_DIPNAME( 0x20, 0x00, "Timer value" ) PORT_DIPLOCATION("SWB:3")
833807   PORT_DIPSETTING(    0x20, "120 secs" )
834808   PORT_DIPSETTING(    0x00, "150 secs" )
835   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) )
809   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:4")
836810   PORT_DIPSETTING(    0x10, DEF_STR( Normal ) )
837811   PORT_DIPSETTING(    0x00, DEF_STR( Easy ) )
838   PORT_DIPNAME( 0x08, 0x00, "Level Select (Cheat)" )
812   PORT_DIPNAME( 0x08, 0x00, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWB:5")
839813   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
840814   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
841   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Cabinet ) )
815   PORT_DIPNAME( 0x06, 0x06, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,6")
842816   PORT_DIPSETTING(    0x06, "Upright 1 Player" )
843/*  PORT_DIPSETTING(    0x02, "Upright 1 Player" ) */
817   #ifndef PRIORITY_EASINESS_TO_PLAY
818     PORT_DIPSETTING(    0x02, "Upright 1 Player" )  // duplicated setting
819   #endif
844820   PORT_DIPSETTING(    0x04, "Upright 2 Players" )
845821   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
846   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Continues ) )
822   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Continues ) ) PORT_DIPLOCATION("SWB:8")
847823   PORT_DIPSETTING(    0x00, "3" )
848824   PORT_DIPSETTING(    0x01, "6" )
849825INPUT_PORTS_END
r4470r4471
880856   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
881857
882858   PORT_START("DSWA")
883   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
884   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
859   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
860   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
885861   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
886862   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
887863   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
888864   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
889   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
865   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
890866   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
891867   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
892   PORT_DIPNAME( 0x08, 0x08, "Invulnerability" )
868   PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_DIPLOCATION("SWA:5")
893869   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
894870   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
895   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
871   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
896872   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
897873   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
898   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
874   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
899875   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
900876   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
901877   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
902878   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
903879
904880   PORT_START("DSWB")
905   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
881   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
906882   PORT_DIPSETTING(    0x80, "1" )
907883   PORT_DIPSETTING(    0x40, "2" )
908884   PORT_DIPSETTING(    0xc0, "3" )
909885   PORT_DIPSETTING(    0x00, "5" )
910   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
911   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
912   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
913   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
914   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
915   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
916   PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" )
886   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" )
887   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" )
888   PORT_DIPNAME( 0x08, 0x08, "Level Select (Cheat)" ) PORT_DIPLOCATION("SWB:5")
917889   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
918890   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
919   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
920   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
921   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
922   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
891   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
892   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7")
923893   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
924894   PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
925   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
895   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
926896   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
927897   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
928898INPUT_PORTS_END
r4470r4471
959929   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2)
960930
961931   PORT_START("DSWA")
962   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
963   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
932   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
933   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
964934   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
965935   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
966936   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
967937   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
968   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
938   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
969939   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
970940   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
971   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Level_Select ) )
941   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SWA:5")
972942   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
973943   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
974   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
944   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
975945   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
976946   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
977   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
947   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
978948   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
979949   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
980950   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
981951   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
982952
983953   PORT_START("DSWB")
984   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
985   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
986   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
987   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
988   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
989   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
990   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
991   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
992   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
993   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
994   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
995   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
996   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
997   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
998   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
999   PORT_DIPNAME( 0x06, 0x02, DEF_STR( Cabinet ) )
954   PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SWB:1" )
955   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SWB:2" )
956   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SWB:3" )
957   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SWB:4" )
958   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
959   PORT_DIPNAME( 0x06, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:7,6")
1000960   PORT_DIPSETTING(    0x02, "Upright 1 Player" )
1001961   PORT_DIPSETTING(    0x04, "Upright 2 Players" )
1002962   PORT_DIPSETTING(    0x06, DEF_STR( Cocktail ) )
1003/*  PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) ) */
1004   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
963   #ifndef PRIORITY_EASINESS_TO_PLAY
964     PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )  // duplicated setting
965   #endif
966   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
1005967   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1006968   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1007969INPUT_PORTS_END
src/mame/drivers/btime.c
r4470r4471
21162116GAME( 1981, lnc,      0,       lnc,      lnc,      lnc,      ROT270, "Data East Corporation", "Lock'n'Chase", 0 )
21172117GAME( 1982, protennb, 0,       disco,    disco,    protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", 0 )
21182118GAME( 1982, wtennis,  0,       wtennis,  wtennis,  wtennis,  ROT270, "bootleg", "World Tennis", 0 )
2119GAME( 1982, mmonkey,  0,       mmonkey,  mmonkey,  lnc,      ROT270, "Technos + Roller Tron", "Minky Monkey", 0 )
2119GAME( 1982, mmonkey,  0,       mmonkey,  mmonkey,  lnc,      ROT270, "Technos Japan + Roller Tron", "Minky Monkey", 0 )
21202120GAME( 1982, brubber,  0,       bnj,      bnj,      bnj,      ROT270, "Data East", "Burnin' Rubber", 0 )
21212121GAME( 1982, bnj,      brubber, bnj,      bnj,      bnj,      ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump", 0 )
21222122GAME( 1982, caractn,  brubber, bnj,      bnj,      bnj,      ROT270, "bootleg", "Car Action", 0 )
src/mame/drivers/qdrmfgp.c
r4470r4471
351351   AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
352352   AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w)      /* video reg */
353353   AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w)      /* ccu */
354   AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP)         /* unknown */
355   AM_RANGE(0x360000, 0x360001) AM_WRITE(SMH_NOP)         /* unknown */
354   AM_RANGE(0x350000, 0x350001) AM_WRITENOP         /* unknown */
355   AM_RANGE(0x360000, 0x360001) AM_WRITENOP         /* unknown */
356356   AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w)         /* control reg */
357   AM_RANGE(0x380000, 0x380001) AM_WRITE(SMH_NOP)         /* Watchdog */
357   AM_RANGE(0x380000, 0x380001) AM_WRITENOP         /* Watchdog */
358358   AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff)      /* sound regs */
359359   AM_RANGE(0x880000, 0x881fff) AM_WRITE(K056832_ram_word_w)   /* vram */
360360   AM_RANGE(0x882000, 0x883fff) AM_WRITE(K056832_ram_word_w)   /* vram (mirror) */
r4470r4471
388388   AM_RANGE(0x280000, 0x280fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
389389   AM_RANGE(0x300000, 0x30003f) AM_WRITE(K056832_word_w)      /* video reg */
390390   AM_RANGE(0x320000, 0x32001f) AM_WRITE(K053252_word_w)      /* ccu */
391   AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP)         /* unknown */
392   AM_RANGE(0x360000, 0x360001) AM_WRITE(SMH_NOP)         /* unknown */
391   AM_RANGE(0x350000, 0x350001) AM_WRITENOP         /* unknown */
392   AM_RANGE(0x360000, 0x360001) AM_WRITENOP         /* unknown */
393393   AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w)      /* control reg */
394   AM_RANGE(0x380000, 0x380001) AM_WRITE(SMH_NOP)         /* Watchdog */
394   AM_RANGE(0x380000, 0x380001) AM_WRITENOP         /* Watchdog */
395395   AM_RANGE(0x800000, 0x80045f) AM_DEVWRITE8("konami", k054539_w, 0x00ff)      /* sound regs */
396396   AM_RANGE(0x880000, 0x881fff) AM_WRITE(gp2_vram_w)         /* vram */
397397   AM_RANGE(0x89f000, 0x8a0fff) AM_WRITE(gp2_vram_mirror_w)   /* vram (mirror) */
src/mame/drivers/nova2001.c
r4470r4471
270270   AM_RANGE(0x8001, 0x8001) AM_DEVREAD("ay1", ay8910_r)
271271   AM_RANGE(0x8002, 0x8003) AM_DEVWRITE("ay2", ay8910_address_data_w)
272272   AM_RANGE(0x8003, 0x8003) AM_DEVREAD("ay2", ay8910_r)
273   AM_RANGE(0x9000, 0x9000) AM_READ(SMH_NOP) /* unknown */
273   AM_RANGE(0x9000, 0x9000) AM_READNOP /* unknown */
274274   AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE(1)
275   AM_RANGE(0xc000, 0xc000) AM_READ(SMH_NOP) /* unknown */
276   AM_RANGE(0xc800, 0xc800) AM_READ(SMH_NOP) /* unknown */
277   AM_RANGE(0xd000, 0xd000) AM_READ(SMH_NOP) /* unknown */
275   AM_RANGE(0xc000, 0xc000) AM_READNOP /* unknown */
276   AM_RANGE(0xc800, 0xc800) AM_READNOP /* unknown */
277   AM_RANGE(0xd000, 0xd000) AM_READNOP /* unknown */
278278   AM_RANGE(0xe000, 0xe000) AM_WRITE(nova2001_scroll_x_w)
279279   AM_RANGE(0xe001, 0xe001) AM_WRITE(nova2001_scroll_y_w)
280280   AM_RANGE(0xe002, 0xe002) AM_WRITE(pkunwar_flipscreen_w)
281281ADDRESS_MAP_END
282282
283283static ADDRESS_MAP_START( raiders5_io, ADDRESS_SPACE_IO, 8 )
284   AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP) /* unknown */
284   AM_RANGE(0x00, 0x00) AM_READNOP /* unknown */
285285ADDRESS_MAP_END
286286
287287
src/mame/drivers/scobra.c
r4470r4471
177177   AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxold_flip_screen_x_w)
178178   AM_RANGE(0xa804, 0xa804) AM_WRITE(galaxold_nmi_enable_w)
179179   AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxold_flip_screen_y_w)
180   AM_RANGE(0xa80e, 0xa80e) AM_WRITE(SMH_NOP)   /* coin counters */
180   AM_RANGE(0xa80e, 0xa80e) AM_WRITENOP   /* coin counters */
181181   AM_RANGE(0xd000, 0xd01f) AM_DEVWRITE("ppi8255_0", hustler_ppi8255_w)
182182   AM_RANGE(0xe000, 0xe01f) AM_DEVWRITE("ppi8255_1", hustler_ppi8255_w)
183183ADDRESS_MAP_END
r4470r4471
200200   AM_RANGE(0x9060, 0x907f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
201201   AM_RANGE(0x9080, 0x90ff) AM_WRITE(SMH_RAM)
202202   AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxold_nmi_enable_w)
203   AM_RANGE(0xa802, 0xa802) AM_WRITE(SMH_NOP)   /* coin counters */
203   AM_RANGE(0xa802, 0xa802) AM_WRITENOP   /* coin counters */
204204   AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxold_flip_screen_y_w)
205205   AM_RANGE(0xa807, 0xa807) AM_WRITE(galaxold_flip_screen_x_w)
206206   AM_RANGE(0xc100, 0xc103) AM_DEVWRITE("ppi8255_0", ppi8255_w)
r4470r4471
391391static ADDRESS_MAP_START( scobra_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
392392   AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
393393   AM_RANGE(0x8000, 0x8fff) AM_WRITE(scobra_soundram_w)
394   AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_NOP) AM_BASE(&scobra_soundram)  /* only here to initialize pointer */
394   AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE(&scobra_soundram)  /* only here to initialize pointer */
395395   AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
396396ADDRESS_MAP_END
397397
r4470r4471
400400   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
401401   AM_RANGE(0x6000, 0x6fff) AM_WRITE(frogger_filter_w)
402402   AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM)
403   AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_NOP) AM_BASE(&scobra_soundram)  /* only here to initialize pointer */
403   AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE(&scobra_soundram)  /* only here to initialize pointer */
404404ADDRESS_MAP_END
405405
406406
src/mame/drivers/wiz.c
r4470r4471
251251   AM_RANGE(0xf006, 0xf006) AM_WRITE(wiz_flipx_w)
252252   AM_RANGE(0xf007, 0xf007) AM_WRITE(wiz_flipy_w)
253253   AM_RANGE(0xf008, 0xf008) AM_READ_PORT("DSW1")
254   AM_RANGE(0xf008, 0xf00f) AM_WRITE(SMH_NOP)         /* initialized by Stinger/Scion */
254   AM_RANGE(0xf008, 0xf00f) AM_WRITENOP         /* initialized by Stinger/Scion */
255255   AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0")
256256   AM_RANGE(0xf018, 0xf018) AM_READ_PORT("IN1")
257257   AM_RANGE(0xf800, 0xf800) AM_READ(watchdog_reset_r)
src/mame/drivers/stactics.c
r4470r4471
177177    AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_READ_PORT("IN0")
178178    AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ_PORT("IN1")
179179    AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0f08) AM_WRITE(stactics_coin_lockout_w)
180    AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITE(SMH_NOP)
180    AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITENOP
181181    AM_RANGE(0x6006, 0x6007) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, palette)
182182 /* AM_RANGE(0x6010, 0x6017) AM_MIRROR(0x0f08) AM_WRITE(stactics_sound_w) */
183183    AM_RANGE(0x6016, 0x6016) AM_MIRROR(0x0f08) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, motor_on)  /* Note: This overlaps rocket sound */
r4470r4471
186186    AM_RANGE(0x6040, 0x6040) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_trigger_w)
187187    AM_RANGE(0x6050, 0x6050) AM_MIRROR(0x0f0f) AM_WRITE(stactics_shot_flag_clear_w)
188188    AM_RANGE(0x6060, 0x606f) AM_MIRROR(0x0f00) AM_WRITE(SMH_RAM) AM_BASE_MEMBER(stactics_state, display_buffer)
189    AM_RANGE(0x6070, 0x609f) AM_MIRROR(0x0f00) AM_WRITE(SMH_NOP)
189    AM_RANGE(0x6070, 0x609f) AM_MIRROR(0x0f00) AM_WRITENOP
190190 /* AM_RANGE(0x60a0, 0x60ef) AM_MIRROR(0x0f00) AM_WRITE(stactics_sound2_w) */
191    AM_RANGE(0x60f0, 0x60ff) AM_MIRROR(0x0f00) AM_WRITE(SMH_NOP)
191    AM_RANGE(0x60f0, 0x60ff) AM_MIRROR(0x0f00) AM_WRITENOP
192192    AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0fff) AM_READ_PORT("IN2")
193193    AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0fff) AM_READ_PORT("IN3")
194194    AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x0800) AM_WRITE(stactics_scroll_ram_w)
src/mame/drivers/avalnche.c
r4470r4471
137137   AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffc) AM_READ_PORT("IN0")
138138   AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x0ffc) AM_READ_PORT("IN1")
139139   AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x0ffc) AM_READ_PORT("PADDLE")
140   AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READ(SMH_NOP)
140   AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP
141141   AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE(watchdog_reset_w)
142142   AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w)
143143   AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE("discrete", avalnche_attract_enable_w)
src/mame/drivers/dcon.c
r4470r4471
6262   AM_RANGE(0xa0000, 0xa000d) AM_WRITE(seibu_main_word_w)
6363   AM_RANGE(0xc001c, 0xc001d) AM_WRITE(dcon_control_w)
6464   AM_RANGE(0xc0020, 0xc002f) AM_WRITE(SMH_RAM) AM_BASE(&dcon_scroll_ram)
65   AM_RANGE(0xc0080, 0xc0081) AM_WRITE(SMH_NOP)
66   AM_RANGE(0xc00c0, 0xc00c1) AM_WRITE(SMH_NOP)
65   AM_RANGE(0xc0080, 0xc0081) AM_WRITENOP
66   AM_RANGE(0xc00c0, 0xc00c1) AM_WRITENOP
6767ADDRESS_MAP_END
6868
6969/******************************************************************************/
src/mame/drivers/bbusters.c
r4470r4471
343343   AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_status_r)
344344   AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(kludge_r, gun_select_w)
345345   AM_RANGE(0x0e8002, 0x0e8003) AM_READ(control_3_r)
346   AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(SMH_NOP)
346   AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP
347347   AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
348348   AM_RANGE(0x0f8000, 0x0f80ff) AM_READWRITE(eprom_r, SMH_RAM) AM_BASE(&eprom_data) /* Eeprom */
349349ADDRESS_MAP_END
r4470r4471
364364   AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0")
365365   AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1")
366366   AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r)
367   AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE(SMH_NOP) /* Gun force feedback? */
367   AM_RANGE(0x0e4002, 0x0e4003) AM_WRITENOP /* Gun force feedback? */
368368   AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(sound_status_r, sound_cpu_w)
369369ADDRESS_MAP_END
370370
r4470r4471
379379static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
380380   ADDRESS_MAP_GLOBAL_MASK(0xff)
381381   AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w)
382   AM_RANGE(0xc0, 0xc1) AM_WRITE(SMH_NOP) /* -> Main CPU */
382   AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
383383ADDRESS_MAP_END
384384
385385static ADDRESS_MAP_START( sounda_portmap, ADDRESS_SPACE_IO, 8 )
386386   ADDRESS_MAP_GLOBAL_MASK(0xff)
387387   AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym2608_r, ym2608_w)
388   AM_RANGE(0xc0, 0xc1) AM_WRITE(SMH_NOP) /* -> Main CPU */
388   AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */
389389ADDRESS_MAP_END
390390
391391/******************************************************************************/
392392
393393static INPUT_PORTS_START( bbusters )
394   PORT_START("IN0")   /* Player controls */
394   PORT_START("IN0")
395395   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
396396   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)   PORT_NAME("P1 Fire")   // "Fire"
397397   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)   PORT_NAME("P1 Grenade")   // "Grenade"
r4470r4471
401401   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)   PORT_NAME("P2 Grenade")   // "Grenade"
402402   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
403403
404   PORT_START("IN1")   /* Player controls */
404   PORT_START("IN1")
405405   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START3 )
406406   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)   PORT_NAME("P3 Fire")   // "Fire"
407407   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)   PORT_NAME("P3 Grenade")   // "Grenade"
r4470r4471
421421   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )      // See notes
422422   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
423423
424   PORT_START("DSW1")   /* Dip switch bank 1 */
424   PORT_START("DSW1")
425425   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION("SW1:1")
426426   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
427427   PORT_DIPSETTING(    0x01, DEF_STR( Yes ) )
r4470r4471
457457   PORT_DIPSETTING(    0x80, "Common" )
458458   PORT_DIPSETTING(    0x00, "Individual" )
459459
460   PORT_START("DSW2")   /* Dip switch bank 2 */
460   PORT_START("DSW2")
461461   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )      PORT_DIPLOCATION("SW2:1,2")
462462   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
463463   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
r4470r4471
508508   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Grenade")   // "Grenade"
509509   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
510510
511   PORT_START("DSW1")   /* Dip switch bank 1 */
511   PORT_START("DSW1")
512512   PORT_DIPNAME( 0x0001, 0x0001, "Coin Slots" )            PORT_DIPLOCATION("SW1:1") // Listed as "Unused" (manual from different revision/region?), See notes
513513   PORT_DIPSETTING(      0x0001, "Common" )
514514   PORT_DIPSETTING(      0x0000, "Individual" )
r4470r4471
556556   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2)
557557INPUT_PORTS_END
558558
559static INPUT_PORTS_START( mechattu )
560   PORT_INCLUDE( mechatt )
561
562   PORT_MODIFY("DSW1")
563   PORT_DIPUNUSED_DIPLOC( 0x0001, 0x0001, "SW1:1" )
564   PORT_DIPNAME( 0x0030, 0x0030, DEF_STR( Coinage ) )         PORT_DIPLOCATION("SW1:5,6")
565   PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
566   PORT_DIPSETTING(      0x0010, "1 Coin/2 Credits first, then 1 Coin/1 Credit" )
567   PORT_DIPSETTING(      0x0020, "2 Coins/1 Credit first, then 1 Coin/1 Credit" )
568   PORT_DIPSETTING(      0x0030, DEF_STR( 1C_1C ) )
569   PORT_DIPUNUSED_DIPLOC( 0x00c0, 0x00c0, "SW1:7,8" )
570INPUT_PORTS_END
571
572
559573/******************************************************************************/
560574
561575static const gfx_layout charlayout =
r4470r4471
940954GAME( 1989, bbusteru, bbusters, bbusters, bbusters, 0, ROT0,  "SNK", "Beast Busters (US, Version 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
941955
942956GAME( 1989, mechatt,  0,        mechatt,  mechatt,  0, ROT0,  "SNK", "Mechanized Attack (World)", 0 )
943GAME( 1989, mechattu, mechatt,  mechatt,  mechatt, 0, ROT0,  "SNK", "Mechanized Attack (US)", 0 )
957GAME( 1989, mechattu, mechatt,  mechatt,  mechattu, 0, ROT0,  "SNK", "Mechanized Attack (US)", 0 )
src/mame/drivers/hyprduel.c
r4470r4471
2323
2424--
2525Written by Hau
2603/28/2009
2603/29/2009
2727based on driver from drivers/metro.c by Luca Elia
2828spthx to kikur,Cha,teioh,kokkyu,teruchu,aya,sgo
2929---
r4470r4471
4545
4646static int blitter_bit;
4747static int requested_int;
48static UINT16 *hypr_irq_enable;
48static UINT16 *hyprduel_irq_enable;
4949static int subcpu_resetline;
50static int cpu_trigger;
5051static int int_num;
5152
52static UINT16 *sharedram;
53static UINT16 *sharedram1;
54static UINT16 *sharedram3;
5355
5456/***************************************************************************
5557                                Interrupts
r4470r4471
5759
5860static void update_irq_state(running_machine *machine)
5961{
60   int irq = requested_int & ~*hypr_irq_enable;
62   int irq = requested_int & ~*hyprduel_irq_enable;
6163
6264   cpu_set_input_line(machine->cpu[0], 3, (irq & int_num) ? ASSERT_LINE : CLEAR_LINE);
6365}
r4470r4471
6567static TIMER_CALLBACK( vblank_end_callback )
6668{
6769   requested_int &= ~param;
68   cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE);
6970}
7071
7172static INTERRUPT_GEN( hyprduel_interrupt )
r4470r4471
7778      requested_int |= 0x01;      /* vblank */
7879      requested_int |= 0x20;
7980      cpu_set_input_line(device, 2, HOLD_LINE);
80      cpu_set_input_line(device->machine->cpu[1], 1, HOLD_LINE);
8181      /* the duration is a guess */
8282      timer_set(device->machine, ATTOTIME_IN_USEC(2500), NULL, 0x20, vblank_end_callback);
8383   } else {
r4470r4471
9797   if (ACCESSING_BITS_0_7)
9898   {
9999      if (data == int_num)
100         requested_int &= ~(int_num & ~*hypr_irq_enable);
100         requested_int &= ~(int_num & ~*hyprduel_irq_enable);
101101      else
102         requested_int &= ~(data & *hypr_irq_enable);
102         requested_int &= ~(data & *hyprduel_irq_enable);
103103
104104      update_irq_state(space->machine);
105105   }
106106}
107107
108108
109static WRITE16_HANDLER( hypr_subcpu_control_w )
109static WRITE16_HANDLER( hyprduel_subcpu_control_w )
110110{
111   if (data & 0x01)
111   switch (data)
112112   {
113      if (!subcpu_resetline)
114      {
115         cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE);
116         subcpu_resetline = 1;
117      }
113      case 0x0d:
114      case 0x0f:
115      case 0x01:
116         if (!subcpu_resetline)
117         {
118            cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE);
119            subcpu_resetline = 1;
120         }
121         break;
122
123      case 0x00:
124         if (subcpu_resetline)
125         {
126            cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE);
127            subcpu_resetline = 0;
128         }
129         cpu_spinuntil_int(space->cpu);
130         break;
131
132      case 0x0c:
133      case 0x80:
134         cpu_set_input_line(space->machine->cpu[1], 2, HOLD_LINE);
135         break;
118136   }
119   else
137}
138
139
140static READ16_HANDLER( hyprduel_cpusync_trigger1_r )
141{
142   if (cpu_trigger == 1001)
120143   {
121      if ((subcpu_resetline == 1) && (data != 0x0c))
144      cpuexec_trigger(space->machine, 1001);
145      cpu_trigger = 0;
146   }
147
148   return sharedram1[0x000408/2 + offset];
149}
150
151static WRITE16_HANDLER( hyprduel_cpusync_trigger1_w )
152{
153   COMBINE_DATA(&sharedram1[0x00040e/2 + offset]);
154
155   if (((sharedram1[0x00040e/2]<<16) + sharedram1[0x000410/2]) != 0x00)
156   {
157      if (!cpu_trigger && !subcpu_resetline)
122158      {
123         cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE);
124         subcpu_resetline = 0;
125
126         if ((int_num == 0x02) && (cpu_get_pc(space->cpu) == 0x000bb0))
127            cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(8000));
128         else
129            cpu_spinuntil_int(space->cpu);
159         cpu_spinuntil_trigger(space->cpu, 1001);
160         cpu_trigger = 1001;
130161      }
131162   }
132163}
133164
134static READ16_HANDLER( hypr_cpusync_r )
165
166static READ16_HANDLER( hyprduel_cpusync_trigger2_r )
135167{
136   cpu_spin(space->cpu);
168   if (cpu_trigger == 1002)
169   {
170      cpuexec_trigger(space->machine, 1002);
171      cpu_trigger = 0;
172   }
137173
138   return sharedram[0x408/2 + offset];
174   return sharedram3[(0xfff34c - 0xfe4000)/2 + offset];
139175}
140176
177static WRITE16_HANDLER( hyprduel_cpusync_trigger2_w )
178{
179   COMBINE_DATA(&sharedram1[0x000408/2 + offset]);
141180
181   if (ACCESSING_BITS_8_15)
182   {
183      if (!cpu_trigger && !subcpu_resetline)
184      {
185         cpu_spinuntil_trigger(space->cpu, 1002);
186         cpu_trigger = 1002;
187      }
188   }
189}
190
191
142192static emu_timer *magerror_irq_timer;
143193
144194static TIMER_CALLBACK( magerror_irq_callback )
r4470r4471
394444   AM_RANGE(0x478890, 0x478891) AM_WRITENOP
395445   AM_RANGE(0x4788a0, 0x4788a1) AM_WRITENOP
396446   AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w)   /* IRQ Cause,Acknowledge */
397   AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_BASE(&hypr_irq_enable)      /* IRQ Enable */
447   AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_BASE(&hyprduel_irq_enable)      /* IRQ Enable */
398448   AM_RANGE(0x4788aa, 0x4788ab) AM_RAM AM_BASE(&hyprduel_rombank)      /* Rom Bank */
399449   AM_RANGE(0x4788ac, 0x4788ad) AM_RAM AM_BASE(&hyprduel_screenctrl)   /* Screen Control */
400450   AM_RANGE(0x479700, 0x479713) AM_RAM AM_BASE(&hyprduel_videoregs)   /* Video Registers */
401   AM_RANGE(0x800000, 0x800001) AM_WRITE(hypr_subcpu_control_w)
402   AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram)
451   AM_RANGE(0x800000, 0x800001) AM_WRITE(hyprduel_subcpu_control_w)
452   AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram1)
403453   AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP
404454   AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW")
405455   AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2")
406456   AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM")
407457   AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE(2)
408   AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3)
458   AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) AM_BASE(&sharedram3)
409459ADDRESS_MAP_END
410460
411461static ADDRESS_MAP_START( hyprduel_map2, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
424474
425475static ADDRESS_MAP_START( magerror_map, ADDRESS_SPACE_PROGRAM, 16 )
426476   AM_RANGE(0x000000, 0x07ffff) AM_ROM
427   AM_RANGE(0x400000, 0x400001) AM_WRITE(hypr_subcpu_control_w)
477   AM_RANGE(0x400000, 0x400001) AM_WRITE(hyprduel_subcpu_control_w)
428478   AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE(hyprduel_vram_0_w) AM_BASE(&hyprduel_vram_0)      /* Layer 0 */
429479   AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE(hyprduel_vram_1_w) AM_BASE(&hyprduel_vram_1)      /* Layer 1 */
430480   AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE(hyprduel_vram_2_w) AM_BASE(&hyprduel_vram_2)      /* Layer 2 */
r4470r4471
441491   AM_RANGE(0x878890, 0x878891) AM_WRITENOP
442492   AM_RANGE(0x8788a0, 0x8788a1) AM_WRITENOP
443493   AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w)   /* IRQ Cause, Acknowledge */
444   AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_BASE(&hypr_irq_enable)      /* IRQ Enable */
494   AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_BASE(&hyprduel_irq_enable)      /* IRQ Enable */
445495   AM_RANGE(0x8788aa, 0x8788ab) AM_RAM AM_BASE(&hyprduel_rombank)      /* Rom Bank */
446496   AM_RANGE(0x8788ac, 0x8788ad) AM_RAM AM_BASE(&hyprduel_screenctrl)   /* Screen Control */
447497   AM_RANGE(0x879700, 0x879713) AM_RAM AM_BASE(&hyprduel_videoregs)   /* Video Registers */
448   AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram)
498   AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE(1) AM_BASE(&sharedram1)
449499   AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP
450500   AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW")
451501   AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("P1_P2")
452502   AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("SYSTEM")
453503   AM_RANGE(0xfe0000, 0xfe3fff) AM_RAM AM_SHARE(2)
454   AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3)
504   AM_RANGE(0xfe4000, 0xffffff) AM_RAM AM_SHARE(3) AM_BASE(&sharedram3)
455505ADDRESS_MAP_END
456506
457507static ADDRESS_MAP_START( magerror_map2, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
521571   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
522572   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
523573   PORT_DIPNAME( 0x0080, 0x0080, "Start Up Mode" )
524   PORT_DIPSETTING(      0x0080, "Game Mode" )
525   PORT_DIPSETTING(      0x0000, "Test Mode" )
574   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
575   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
526576   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
527577   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
528578   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
r4470r4471
553603   PORT_BIT(  0xffc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
554604INPUT_PORTS_END
555605
606static INPUT_PORTS_START( magerror )
607   PORT_INCLUDE( hyprduel )
608
609   PORT_MODIFY("DSW")
610   PORT_DIPNAME( 0x0007, 0x0007, DEF_STR( Coin_A ) )
611   PORT_DIPSETTING(      0x0001, DEF_STR( 4C_1C ) )
612   PORT_DIPSETTING(      0x0002, DEF_STR( 3C_1C ) )
613   PORT_DIPSETTING(      0x0003, DEF_STR( 2C_1C ) )
614   PORT_DIPSETTING(      0x0007, DEF_STR( 1C_1C ) )
615   PORT_DIPSETTING(      0x0006, DEF_STR( 1C_2C ) )
616   PORT_DIPSETTING(      0x0005, DEF_STR( 1C_3C ) )
617   PORT_DIPSETTING(      0x0004, DEF_STR( 1C_4C ) )
618   PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
619   PORT_DIPNAME( 0x0038, 0x0038, DEF_STR( Coin_B ) )
620   PORT_DIPSETTING(      0x0008, DEF_STR( 4C_1C ) )
621   PORT_DIPSETTING(      0x0010, DEF_STR( 3C_1C ) )
622   PORT_DIPSETTING(      0x0018, DEF_STR( 2C_1C ) )
623   PORT_DIPSETTING(      0x0038, DEF_STR( 1C_1C ) )
624   PORT_DIPSETTING(      0x0030, DEF_STR( 1C_2C ) )
625   PORT_DIPSETTING(      0x0028, DEF_STR( 1C_3C ) )
626   PORT_DIPSETTING(      0x0020, DEF_STR( 1C_4C ) )
627   PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
628   PORT_DIPNAME( 0x0040, 0x0000, DEF_STR( Demo_Sounds ) )
629   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
630   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
631   PORT_DIPNAME( 0x0080, 0x0080, "Start Up Mode" )
632   PORT_DIPSETTING(      0x0080, "Game Mode" )
633   PORT_DIPSETTING(      0x0000, "Test Mode" )
634   PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Flip_Screen ) )
635   PORT_DIPSETTING(      0x0100, DEF_STR( Off ) )
636   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
637   PORT_BIT(     0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
638   PORT_DIPNAME( 0x0c00, 0x0c00, DEF_STR( Difficulty ) )
639   PORT_DIPSETTING(      0x0800, DEF_STR( Easy ) )
640   PORT_DIPSETTING(      0x0c00, DEF_STR( Normal ) )
641   PORT_DIPSETTING(      0x0400, DEF_STR( Hard ) )
642   PORT_DIPSETTING(      0x0000, DEF_STR( Very_Hard ) )
643   PORT_DIPNAME( 0x3000, 0x3000, DEF_STR( Lives ) )
644   PORT_DIPSETTING(      0x2000, "2" )
645   PORT_DIPSETTING(      0x3000, "3" )
646   PORT_DIPSETTING(      0x1000, "4" )
647   PORT_DIPSETTING(      0x0000, "5" )
648   PORT_BIT(     0xc000, IP_ACTIVE_LOW, IPT_UNKNOWN )
649INPUT_PORTS_END
650
556651/***************************************************************************
557652                            Graphics Layouts
558653***************************************************************************/
r4470r4471
591686   /* start with cpu2 halted */
592687   cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE);
593688   subcpu_resetline = 1;
689   cpu_trigger = 0;
594690
595691   requested_int = 0x00;
596692   blitter_bit = 2;
597   *hypr_irq_enable = 0xff;
693   *hyprduel_irq_enable = 0xff;
598694}
599695
600696static MACHINE_START( magerror )
601697{
602   timer_adjust_periodic(magerror_irq_timer, attotime_zero, 0, ATTOTIME_IN_HZ(968));      /* ? */
698   timer_adjust_periodic(magerror_irq_timer, attotime_zero, 0, ATTOTIME_IN_HZ(968));      /* tempo? */
603699}
604700
605701static MACHINE_DRIVER_START( hyprduel )
r4470r4471
737833ROM_END
738834
739835
740static DRIVER_INIT( hyprduel )
836static void savestate(running_machine *machine)
741837{
742   int_num = 0x02;
743
744   memory_install_read16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc0040b, 0, 0, hypr_cpusync_r);
745
746838   /* Set up save state */
747839   state_save_register_global(machine, blitter_bit);
748840   state_save_register_global(machine, requested_int);
749841   state_save_register_global(machine, subcpu_resetline);
842   state_save_register_global(machine, cpu_trigger);
750843   state_save_register_global(machine, int_num);
751844}
752845
846static DRIVER_INIT( hyprduel )
847{
848   int_num = 0x02;
849   savestate(machine);
850
851   /* cpu synchronization (severe timings) */
852   memory_install_write16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc0040e, 0xc00411, 0, 0, hyprduel_cpusync_trigger1_w);
853   memory_install_read16_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc00409, 0, 0, hyprduel_cpusync_trigger1_r);
854   memory_install_write16_handler(cpu_get_address_space(machine->cpu[0], ADDRESS_SPACE_PROGRAM), 0xc00408, 0xc00409, 0, 0, hyprduel_cpusync_trigger2_w);
855   memory_install_read16_handler(cpu_get_address_space(machine->cpu[1], ADDRESS_SPACE_PROGRAM), 0xfff34c, 0xfff34d, 0, 0, hyprduel_cpusync_trigger2_r);
856}
857
753858static DRIVER_INIT( magerror )
754859{
755   DRIVER_INIT_CALL(hyprduel);
860   int_num = 0x01;
861   savestate(machine);
756862
757   int_num = 0x01;
758863   magerror_irq_timer = timer_alloc(machine, magerror_irq_callback, NULL);
759864}
760865
761866
762867GAME( 1993, hyprduel, 0,        hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 1)", GAME_SUPPORTS_SAVE )
763868GAME( 1993, hyprdelj, hyprduel, hyprduel, hyprduel, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 2)", GAME_SUPPORTS_SAVE )
764GAME( 1994, magerror, 0,        magerror, hyprduel, magerror, ROT0, "Technosoft / Jaleco", "Magical Error wo Sagase", GAME_SUPPORTS_SAVE )
869GAME( 1994, magerror, 0,        magerror, magerror, magerror, ROT0, "Technosoft / Jaleco", "Magical Error wo Sagase", GAME_SUPPORTS_SAVE )
src/mame/drivers/namconb1.c
r4470r4471
865865   AM_RANGE(0x640000, 0x64ffff) AM_READWRITE(namco_tilemapvideoram32_r,namco_tilemapvideoram32_w )
866866   AM_RANGE(0x660000, 0x66003f) AM_READWRITE(namco_tilemapcontrol32_r,namco_tilemapcontrol32_w)
867867   AM_RANGE(0x680000, 0x68000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&namconb1_spritebank32)
868   AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITE(SMH_NOP)
868   AM_RANGE(0x6e0000, 0x6e001f) AM_READ(custom_key_r) AM_WRITENOP
869869   AM_RANGE(0x700000, 0x707fff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&paletteram32)
870870ADDRESS_MAP_END
871871
r4470r4471
888888   AM_RANGE(0x940000, 0x94000f) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&namconb1_tilebank32)
889889   AM_RANGE(0x980000, 0x98000f) AM_READ(namco_rozbank32_r) AM_WRITE(namco_rozbank32_w)
890890   AM_RANGE(0xa00000, 0xa007ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE(&nvmem32)
891   AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITE(SMH_NOP)
891   AM_RANGE(0xc00000, 0xc0001f) AM_READ(custom_key_r) AM_WRITENOP
892892   AM_RANGE(0xf00000, 0xf0001f) AM_READWRITE(namconb_cpureg_r, namconb2_cpureg_w)
893893ADDRESS_MAP_END /* namconb2_readmem */
894894
src/mame/drivers/strnskil.c
r4470r4471
111111   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(strnskil_videoram_w) AM_BASE(&videoram)
112112
113113   AM_RANGE(0xd808, 0xd808) AM_WRITE(strnskil_scrl_ctrl_w)
114   AM_RANGE(0xd809, 0xd809) AM_WRITE(SMH_NOP) /* coin counter? */
114   AM_RANGE(0xd809, 0xd809) AM_WRITENOP /* coin counter? */
115115   AM_RANGE(0xd80a, 0xd80b) AM_WRITE(SMH_RAM) AM_BASE(&strnskil_xscroll)
116116ADDRESS_MAP_END
117117
r4470r4471
513513
514514static DRIVER_INIT( pettanp )
515515{
516//  AM_RANGE(0xd80c, 0xd80c) AM_WRITE(SMH_NOP)     /* protection reset? */
516//  AM_RANGE(0xd80c, 0xd80c) AM_WRITENOP     /* protection reset? */
517517//  AM_RANGE(0xd80d, 0xd80d) AM_WRITE(protection_w) /* protection data write (pettanp) */
518518//  AM_RANGE(0xd806, 0xd806) AM_READ(protection_r) /* protection data read (pettanp) */
519519
src/mame/drivers/shaolins.c
r4470r4471
5757   AM_RANGE(0x0300, 0x0300) AM_DEVWRITE("sn1", sn76496_w)    /* trigger chip to read from latch. The program always */
5858   AM_RANGE(0x0400, 0x0400) AM_DEVWRITE("sn2", sn76496_w)    /* writes the same number as the latch, so we don't */
5959                              /* bother emulating them. */
60   AM_RANGE(0x0800, 0x0800) AM_WRITE(SMH_NOP)   /* latch for 76496 #0 */
61   AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_NOP)   /* latch for 76496 #1 */
60   AM_RANGE(0x0800, 0x0800) AM_WRITENOP   /* latch for 76496 #0 */
61   AM_RANGE(0x1000, 0x1000) AM_WRITENOP   /* latch for 76496 #1 */
6262   AM_RANGE(0x1800, 0x1800) AM_WRITE(shaolins_palettebank_w)
6363   AM_RANGE(0x2000, 0x2000) AM_WRITE(shaolins_scroll_w)
6464   AM_RANGE(0x2800, 0x2bff) AM_WRITE(SMH_RAM)   /* RAM BANK 2 */
src/mame/drivers/model2.c
r4470r4471
25372537   ROM_LOAD32_WORD( "mpr-18515.9",   0x400002, 0x200000, CRC(6ba1ffec) SHA1(70f493aa4eb93edce8dd5b7b532d1f50f81069ce) )
25382538   ROM_LOAD32_WORD( "mpr-18522.6",   0x800000, 0x200000, CRC(61d18536) SHA1(cc467cb26a8fccc48837d000fe9e1c41b0c0f4f9) )
25392539   ROM_LOAD32_WORD( "mpr-18523.7",   0x800002, 0x200000, CRC(61d08dc4) SHA1(40d8231d184582c0fc01ad874371aaec7dfcc337) )
2540   ROM_LOAD32_WORD( "mpr-18520.4",   0xc00000, 0x080000, CRC(1d4ec5e8) SHA1(44c4b5560d150909342e4182496f136c8c5e2edb) )
2541   ROM_LOAD32_WORD( "mpr-18521.5",   0xc00002, 0x080000, CRC(b8b3781c) SHA1(11956fe912c34d6a86a6b91d55987f6bead73473) )
2540   ROM_LOAD32_WORD( "epr-18520.4",   0xc00000, 0x080000, CRC(1d4ec5e8) SHA1(44c4b5560d150909342e4182496f136c8c5e2edb) )
2541   ROM_LOAD32_WORD( "epr-18521.5",   0xc00002, 0x080000, CRC(b8b3781c) SHA1(11956fe912c34d6a86a6b91d55987f6bead73473) )
25422542   ROM_COPY( "user1", 0xc00000, 0xd00000, 0x100000 )
25432543   ROM_COPY( "user1", 0xc00000, 0xe00000, 0x100000 )
25442544   ROM_COPY( "user1", 0xc00000, 0xf00000, 0x100000 )
src/mame/drivers/bmcbowl.c
r4470r4471
329329
330330   AM_RANGE(0x090000, 0x090001) AM_WRITE(bmc_RAMDAC_offset_w)
331331   AM_RANGE(0x090002, 0x090003) AM_WRITE(bmc_RAMDAC_color_w)
332   AM_RANGE(0x090004, 0x090005) AM_WRITE(SMH_NOP)//RAMDAC
332   AM_RANGE(0x090004, 0x090005) AM_WRITENOP//RAMDAC
333333
334   AM_RANGE(0x090800, 0x090803) AM_WRITE(SMH_NOP)
335   AM_RANGE(0x091000, 0x091001) AM_WRITE(SMH_NOP)
334   AM_RANGE(0x090800, 0x090803) AM_WRITENOP
335   AM_RANGE(0x091000, 0x091001) AM_WRITENOP
336336   AM_RANGE(0x091800, 0x091801) AM_WRITE(scroll_w)
337337
338338   AM_RANGE(0x092000, 0x09201f) AM_READWRITE(bmcbowl_via_r, bmcbowl_via_w)
339339
340   AM_RANGE(0x093000, 0x093003) AM_WRITE(SMH_NOP)  // related to music
340   AM_RANGE(0x093000, 0x093003) AM_WRITENOP  // related to music
341341   AM_RANGE(0x092800, 0x092803) AM_DEVWRITE8("ay", ay8910_data_address_w, 0xff00)
342342   AM_RANGE(0x092802, 0x092803) AM_DEVREAD8("ay", ay8910_r, 0xff00)
343343   AM_RANGE(0x093802, 0x093803) AM_READ_PORT("IN0")
344344   AM_RANGE(0x095000, 0x095fff) AM_RAM AM_BASE((UINT16 **)&stats_ram) AM_SIZE(&stats_ram_size) /* 8 bit */
345   AM_RANGE(0x097000, 0x097001) AM_READ(SMH_NOP)
345   AM_RANGE(0x097000, 0x097001) AM_READNOP
346346   AM_RANGE(0x140000, 0x1bffff) AM_ROM
347347   AM_RANGE(0x1c0000, 0x1effff) AM_RAM AM_BASE(&bmcbowl_vid1)
348348   AM_RANGE(0x1f0000, 0x1fffff) AM_RAM
r4470r4471
351351   AM_RANGE(0x28c000, 0x28c001) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0xff00)
352352
353353   /* protection device*/
354   AM_RANGE(0x30c000, 0x30c001) AM_WRITE(SMH_NOP)
355   AM_RANGE(0x30c040, 0x30c041) AM_WRITE(SMH_NOP)
356   AM_RANGE(0x30c080, 0x30c081) AM_WRITE(SMH_NOP)
357   AM_RANGE(0x30c0c0, 0x30c0c1) AM_WRITE(SMH_NOP)
354   AM_RANGE(0x30c000, 0x30c001) AM_WRITENOP
355   AM_RANGE(0x30c040, 0x30c041) AM_WRITENOP
356   AM_RANGE(0x30c080, 0x30c081) AM_WRITENOP
357   AM_RANGE(0x30c0c0, 0x30c0c1) AM_WRITENOP
358358   AM_RANGE(0x30c100, 0x30c101) AM_READ(bmc_protection_r)
359   AM_RANGE(0x30c140, 0x30c141) AM_WRITE(SMH_NOP)
360   AM_RANGE(0x30ca00, 0x30ca01) AM_READ(bmc_random_read) AM_WRITE(SMH_NOP)
359   AM_RANGE(0x30c140, 0x30c141) AM_WRITENOP
360   AM_RANGE(0x30ca00, 0x30ca01) AM_READ(bmc_random_read) AM_WRITENOP
361361ADDRESS_MAP_END
362362
363363
src/mame/drivers/sshangha.c
r4470r4471
175175   AM_RANGE(0x206000, 0x2067ff) AM_WRITE(SMH_RAM) AM_BASE(&sshangha_pf2_rowscroll)
176176   AM_RANGE(0x300000, 0x30000f) AM_WRITE(sshangha_control_0_w)
177177   AM_RANGE(0x320000, 0x320001) AM_WRITE(sshangha_video_w)
178   AM_RANGE(0x320002, 0x320005) AM_WRITE(SMH_NOP)
178   AM_RANGE(0x320002, 0x320005) AM_WRITENOP
179179   AM_RANGE(0x340000, 0x340fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
180   AM_RANGE(0x350000, 0x350007) AM_WRITE(SMH_NOP)
180   AM_RANGE(0x350000, 0x350007) AM_WRITENOP
181181   AM_RANGE(0x360000, 0x360fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2)
182   AM_RANGE(0x370000, 0x370007) AM_WRITE(SMH_NOP)
182   AM_RANGE(0x370000, 0x370007) AM_WRITENOP
183183   AM_RANGE(0x380000, 0x383fff) AM_WRITE(sshangha_palette_24bit_w) AM_BASE(&paletteram16)
184184   AM_RANGE(0x3c0000, 0x3c0fff) AM_WRITE(SMH_RAM)   /* Sprite ram buffer on bootleg only?? */
185185   AM_RANGE(0xfec000, 0xff3fff) AM_WRITE(SMH_RAM)
src/mame/drivers/taxidrvr.c
r4470r4471
177177
178178static ADDRESS_MAP_START( cpu3_map, ADDRESS_SPACE_PROGRAM, 8 )
179179   AM_RANGE(0x0000, 0x1fff) AM_ROM
180   AM_RANGE(0x2000, 0x2000) AM_READ(SMH_NOP)   /* irq ack? */
180   AM_RANGE(0x2000, 0x2000) AM_READNOP   /* irq ack? */
181181   AM_RANGE(0xfc00, 0xffff) AM_RAM
182182ADDRESS_MAP_END
183183
src/mame/drivers/compgolf.c
r4470r4471
7070   AM_RANGE(0x1000, 0x17ff) AM_WRITE(compgolf_video_w) AM_BASE(&videoram)
7171   AM_RANGE(0x1800, 0x1fff) AM_WRITE(compgolf_back_w) AM_BASE(&compgolf_bg_ram)
7272   AM_RANGE(0x2000, 0x2060) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
73   AM_RANGE(0x2061, 0x2061) AM_WRITE(SMH_NOP)
73   AM_RANGE(0x2061, 0x2061) AM_WRITENOP
7474   AM_RANGE(0x3001, 0x3001) AM_WRITE(compgolf_ctrl_w)
7575   AM_RANGE(0x3800, 0x3801) AM_DEVWRITE("ym", ym2203_w)
7676   AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM)
src/mame/drivers/cps2.c
r4470r4471
877877   AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs)   /* mirror (sfa) */
878878   AM_RANGE(0x800140, 0x80017f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs)   /* mirror (sfa) */
879879   AM_RANGE(0x804040, 0x804041) AM_WRITE(cps2_eeprom_port_w)         /* EEPROM */
880   AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE(SMH_NOP)                  /* Unknown (reset once on startup) */
880   AM_RANGE(0x8040a0, 0x8040a1) AM_WRITENOP                  /* Unknown (reset once on startup) */
881881   AM_RANGE(0x8040e0, 0x8040e1) AM_WRITE(cps2_objram_bank_w)         /* bit 0 = Object ram bank swap */
882882   AM_RANGE(0x804100, 0x80413f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs)   /* CPS-A custom */
883883   AM_RANGE(0x804140, 0x80417f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs)   /* CPS-B custom */
r4470r4471
902902   AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs)   /* mirror (sfa) */
903903   AM_RANGE(0x800140, 0x80017f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs)   /* mirror (sfa) */
904904   AM_RANGE(0x804040, 0x804041) AM_WRITE(cps2_eeprom_port_w)      /* EEPROM */
905   AM_RANGE(0x8040a0, 0x8040a1) AM_WRITE(SMH_NOP)            /* Unknown (reset once on startup) */
905   AM_RANGE(0x8040a0, 0x8040a1) AM_WRITENOP            /* Unknown (reset once on startup) */
906906   AM_RANGE(0x8040e0, 0x8040e1) AM_WRITE(cps2_objram_bank_w)      /* bit 0 = Object ram bank swap */
907907   AM_RANGE(0x804100, 0x80413f) AM_WRITE(cps1_cps_a_w) AM_BASE(&cps1_cps_a_regs)   /* CPS-A custom */
908908   AM_RANGE(0x804140, 0x80417f) AM_WRITE(cps1_cps_b_w) AM_BASE(&cps1_cps_b_regs)   /* CPS-B custom */
src/mame/drivers/pushman.c
r4470r4471
164164   AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(pushman_flipscreen_w)
165165   AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(pushman_control_w)
166166   AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE(pushman_scroll_w)
167   AM_RANGE(0xfe800e, 0xfe800f) AM_WRITE(SMH_NOP) /* ? */
167   AM_RANGE(0xfe800e, 0xfe800f) AM_WRITENOP /* ? */
168168   AM_RANGE(0xfec000, 0xfec7ff) AM_WRITE(pushman_videoram_w) AM_BASE(&videoram16)
169169   AM_RANGE(0xff8000, 0xff87ff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16)
170170   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SMH_RAM)
r4470r4471
220220   AM_RANGE(0xe4000, 0xe4001) AM_WRITE(pushman_flipscreen_w)
221221   AM_RANGE(0xe4002, 0xe4003) AM_WRITE(pushman_control_w)
222222   AM_RANGE(0xe8000, 0xe8003) AM_WRITE(pushman_scroll_w)
223   AM_RANGE(0xe800e, 0xe800f) AM_WRITE(SMH_NOP) /* ? */
223   AM_RANGE(0xe800e, 0xe800f) AM_WRITENOP /* ? */
224224   AM_RANGE(0xec000, 0xec7ff) AM_WRITE(pushman_videoram_w) AM_BASE(&videoram16)
225225   AM_RANGE(0xf8000, 0xf87ff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16)
226226   AM_RANGE(0xfc000, 0xfffff) AM_WRITE(SMH_RAM)
src/mame/drivers/hyperspt.c
r4470r4471
77***************************************************************************/
88
99#include "driver.h"
10#include "trackfld.h"
1011#include "cpu/z80/z80.h"
1112#include "cpu/m6809/m6809.h"
1213#include "sound/dac.h"
1314#include "sound/sn76496.h"
1415#include "sound/vlm5030.h"
1516#include "machine/konami1.h"
17#include "konamipt.h"
1618
17
1819extern UINT8 *hyperspt_scroll;
1920
2021extern WRITE8_HANDLER( hyperspt_videoram_w );
r4470r4471
2728extern VIDEO_START( roadf );
2829extern VIDEO_UPDATE( roadf );
2930
30extern WRITE8_HANDLER( konami_sh_irqtrigger_w );
31extern READ8_HANDLER( hyperspt_sh_timer_r );
32extern WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
3331
34/* these routines lurk in audio/trackfld.c */
35extern WRITE8_HANDLER( konami_SN76496_latch_w );
36extern WRITE8_DEVICE_HANDLER( konami_SN76496_w );
37
38
3932static WRITE8_HANDLER( hyperspt_coin_counter_w )
4033{
4134   coin_counter_w(offset,data);
r4470r4471
133126   AM_RANGE(0xe002, 0xe002) AM_DEVWRITE("sn", konami_SN76496_w)     /* This address triggers the SN chip to read the data port. */
134127ADDRESS_MAP_END
135128
136static INPUT_PORTS_START( shared_dsw1 )
137        /* This DSW1 is shared between games */
138   PORT_START("DSW1")
139   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
140   PORT_DIPSETTING(   0x02, DEF_STR( 4C_1C ) )
141   PORT_DIPSETTING(   0x05, DEF_STR( 3C_1C ) )
142   PORT_DIPSETTING(   0x08, DEF_STR( 2C_1C ) )
143   PORT_DIPSETTING(   0x04, DEF_STR( 3C_2C ) )
144   PORT_DIPSETTING(   0x01, DEF_STR( 4C_3C ) )
145   PORT_DIPSETTING(   0x0f, DEF_STR( 1C_1C ) )
146   PORT_DIPSETTING(   0x03, DEF_STR( 3C_4C ) )
147   PORT_DIPSETTING(   0x07, DEF_STR( 2C_3C ) )
148   PORT_DIPSETTING(   0x0e, DEF_STR( 1C_2C ) )
149   PORT_DIPSETTING(   0x06, DEF_STR( 2C_5C ) )
150   PORT_DIPSETTING(   0x0d, DEF_STR( 1C_3C ) )
151   PORT_DIPSETTING(   0x0c, DEF_STR( 1C_4C ) )
152   PORT_DIPSETTING(   0x0b, DEF_STR( 1C_5C ) )
153   PORT_DIPSETTING(   0x0a, DEF_STR( 1C_6C ) )
154   PORT_DIPSETTING(   0x09, DEF_STR( 1C_7C ) )
155   PORT_DIPSETTING(   0x00, DEF_STR( Free_Play ) )
156   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
157   PORT_DIPSETTING(   0x20, DEF_STR( 4C_1C ) )
158   PORT_DIPSETTING(   0x50, DEF_STR( 3C_1C ) )
159   PORT_DIPSETTING(   0x80, DEF_STR( 2C_1C ) )
160   PORT_DIPSETTING(   0x40, DEF_STR( 3C_2C ) )
161   PORT_DIPSETTING(   0x10, DEF_STR( 4C_3C ) )
162   PORT_DIPSETTING(   0xf0, DEF_STR( 1C_1C ) )
163   PORT_DIPSETTING(   0x30, DEF_STR( 3C_4C ) )
164   PORT_DIPSETTING(   0x70, DEF_STR( 2C_3C ) )
165   PORT_DIPSETTING(   0xe0, DEF_STR( 1C_2C ) )
166   PORT_DIPSETTING(   0x60, DEF_STR( 2C_5C ) )
167   PORT_DIPSETTING(   0xd0, DEF_STR( 1C_3C ) )
168   PORT_DIPSETTING(   0xc0, DEF_STR( 1C_4C ) )
169   PORT_DIPSETTING(   0xb0, DEF_STR( 1C_5C ) )
170   PORT_DIPSETTING(   0xa0, DEF_STR( 1C_6C ) )
171   PORT_DIPSETTING(   0x90, DEF_STR( 1C_7C ) )
172   PORT_DIPSETTING(   0x00, "Disabled" )
173   /* 0x00 disables Coin 2. It still accepts coins and makes the sound, but
174       it doesn't give you any credit */
175INPUT_PORTS_END
176129
177
178130static INPUT_PORTS_START( hyperspt )
179131   PORT_START("SYSTEM")
180132   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
208160   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1  ) PORT_PLAYER(4) //PORT_COCKTAIL
209161   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
210162
211        PORT_INCLUDE(shared_dsw1)
163   PORT_START("DSW1")
164   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
165   /* "No Coin B" = coins produce sound, but no effect on coin counter */
212166
213167   PORT_START("DSW2")
214168   PORT_DIPNAME( 0x01, 0x01, "After Last Event" ) PORT_DIPLOCATION("SW2:1")
r4470r4471
245199
246200static INPUT_PORTS_START( roadf )
247201   PORT_START("SYSTEM")
248   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
249   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
250   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
251   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
252   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
253   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 )
254   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
255   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
202   KONAMI8_SYSTEM_UNK
256203
257204   PORT_START("P1")
258   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
259   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
260   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
261   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
262   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
263   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
264   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
265   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
205   KONAMI8_MONO_B12_UNK
266206
267207   PORT_START("P2")
268208   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
r4470r4471
274214   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )   /* the game doesn't boot if this is 1 */
275215   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
276216
277        PORT_INCLUDE(shared_dsw1)
217   PORT_START("DSW1")
218   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
219   /* "No Coin B" = coins produce sound, but no effect on coin counter */
278220
279221   PORT_START("DSW2")
280222   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:1")
src/mame/drivers/tiamc1.c
r4470r4471
131131}
132132
133133
134static ADDRESS_MAP_START( tiamc1_readmem, ADDRESS_SPACE_PROGRAM, 8 )
135   AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM)
136   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM)
137ADDRESS_MAP_END
138
139static ADDRESS_MAP_START( tiamc1_writemem, ADDRESS_SPACE_PROGRAM, 8 )
134static ADDRESS_MAP_START( tiamc1_map, ADDRESS_SPACE_PROGRAM, 8 )
140135   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(tiamc1_videoram_w)
141   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
136   AM_RANGE(0x0000, 0xdfff) AM_ROM
137   AM_RANGE(0xe000, 0xffff) AM_RAM
142138ADDRESS_MAP_END
143139
144140static ADDRESS_MAP_START( tiamc1_io_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
225221static MACHINE_DRIVER_START( tiamc1 )
226222   /* basic machine hardware */
227223   MDRV_CPU_ADD("maincpu", 8080,16000000/9)       /* 16 MHz */
228   MDRV_CPU_PROGRAM_MAP(tiamc1_readmem,tiamc1_writemem)
224   MDRV_CPU_PROGRAM_MAP(tiamc1_map,0)
229225   MDRV_CPU_IO_MAP(tiamc1_io_map,0)
230226
231227   MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
r4470r4471
319315GAME( 1988, konek, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "Konek-Gorbunok", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
320316GAME( 1988, sosterm, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "S.O.S.", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
321317GAME( 1988, koroleva, 0, tiamc1, tiamc1, 0, ROT0, "Terminal", "Snezhnaja Koroleva", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
322
src/mame/drivers/hnayayoi.c
r4470r4471
121121   AM_RANGE(0x02, 0x03) AM_DEVREAD("ym", ym2203_r)
122122   AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW3")
123123   AM_RANGE(0x06, 0x06) AM_DEVWRITE("msm", adpcm_data_w)
124//  AM_RANGE(0x08, 0x08) AM_WRITE(SMH_NOP) // CRT Controller
125//  AM_RANGE(0x09, 0x09) AM_WRITE(SMH_NOP) // CRT Controller
124//  AM_RANGE(0x08, 0x08) AM_WRITENOP // CRT Controller
125//  AM_RANGE(0x09, 0x09) AM_WRITENOP // CRT Controller
126126   AM_RANGE(0x0a, 0x0a) AM_WRITE(dynax_blitter_rev1_start_w)
127127   AM_RANGE(0x0c, 0x0c) AM_WRITE(dynax_blitter_rev1_clear_w)
128128   AM_RANGE(0x23, 0x23) AM_DEVWRITE("msm", adpcm_vclk_w)
r4470r4471
152152   AM_RANGE(0x8000, 0xfeff) AM_WRITE(SMH_ROM)
153153   AM_RANGE(0xff00, 0xff01) AM_DEVWRITE("ym", ym2203_w)
154154   AM_RANGE(0xff06, 0xff06) AM_DEVWRITE("msm", adpcm_data_w)
155//  AM_RANGE(0xff08, 0xff08) AM_WRITE(SMH_NOP) // CRT Controller
156//  AM_RANGE(0xff09, 0xff09) AM_WRITE(SMH_NOP) // CRT Controller
155//  AM_RANGE(0xff08, 0xff08) AM_WRITENOP // CRT Controller
156//  AM_RANGE(0xff09, 0xff09) AM_WRITENOP // CRT Controller
157157   AM_RANGE(0xff0a, 0xff0a) AM_WRITE(dynax_blitter_rev1_start_w)
158158   AM_RANGE(0xff0c, 0xff0c) AM_WRITE(dynax_blitter_rev1_clear_w)
159159   AM_RANGE(0xff23, 0xff23) AM_DEVWRITE("msm", adpcm_vclk_w)
r4470r4471
179179   ADDRESS_MAP_GLOBAL_MASK(0xff)
180180   AM_RANGE(0x10, 0x10) AM_DEVWRITE("ym", ym2203_control_port_w)
181181   AM_RANGE(0x11, 0x11) AM_DEVREAD("ym", ym2203_status_port_r)
182//  AM_RANGE(0x12, 0x12) AM_WRITE(SMH_NOP) // CRT Controller
182//  AM_RANGE(0x12, 0x12) AM_WRITENOP // CRT Controller
183183   AM_RANGE(0x13, 0x13) AM_DEVWRITE("msm", adpcm_data_w)
184184   AM_RANGE(0x14, 0x14) AM_READ_PORT("COIN")
185185   AM_RANGE(0x15, 0x15) AM_READ(keyboard_1_r)
r4470r4471
193193   AM_RANGE(0x32, 0x32) AM_DEVWRITE("msm", adpcm_reset_inv_w)
194194   AM_RANGE(0x50, 0x50) AM_DEVWRITE("ym", ym2203_write_port_w)
195195   AM_RANGE(0x51, 0x51) AM_DEVREAD("ym", ym2203_read_port_r)
196//  AM_RANGE(0x52, 0x52) AM_WRITE(SMH_NOP) // CRT Controller
196//  AM_RANGE(0x52, 0x52) AM_WRITENOP // CRT Controller
197197ADDRESS_MAP_END
198198
199199static INPUT_PORTS_START( mj_keyboard )
src/mame/drivers/tmnt.c
r4470r4471
7878#include "sound/k007232.h"
7979#include "sound/upd7759.h"
8080#include "includes/tmnt.h"
81#include "konamipt.h"
8182
82
8383static int tmnt_soundlatch;
8484static int cuebrick_snd_irqlatch, cuebrick_nvram_bank;
8585static UINT16 cuebrick_nvram[0x400*0x20];   // 32k paged in a 1k window
r4470r4471
684684   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w)
685685#endif
686686   AM_RANGE(0x100000, 0x107fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w)
687//  AM_RANGE(0x10e800, 0x10e801) AM_WRITE(SMH_NOP) ???
687//  AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
688688   AM_RANGE(0x140000, 0x140007) AM_READWRITE(K051937_word_r, K051937_word_w)
689689   AM_RANGE(0x140400, 0x1407ff) AM_READWRITE(K051960_word_r, K051960_word_w)
690690ADDRESS_MAP_END
r4470r4471
705705   AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
706706   AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(tmnt_priority_w)
707707   AM_RANGE(0x100000, 0x107fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w)
708//  AM_RANGE(0x10e800, 0x10e801) AM_WRITE(SMH_NOP) ???
708//  AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
709709   AM_RANGE(0x140000, 0x140007) AM_READWRITE(K051937_word_r, K051937_word_w)
710710   AM_RANGE(0x140400, 0x1407ff) AM_READWRITE(K051960_word_r, K051960_word_w)
711711ADDRESS_MAP_END
r4470r4471
11161116   AM_RANGE(0x180000, 0x183fff) AM_READWRITE(K053245_scattered_word_r, K053245_scattered_word_w) AM_BASE(&spriteram16)
11171117   AM_RANGE(0x184000, 0x18ffff) AM_RAM
11181118   AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE(ssriders_1c0300_w)
1119   AM_RANGE(0x1c0400, 0x1c0401) AM_WRITE(SMH_NOP)
1119   AM_RANGE(0x1c0400, 0x1c0401) AM_WRITENOP
11201120   AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(K053244_word_noA1_r, K053244_word_noA1_w)
11211121   AM_RANGE(0x600000, 0x603fff) AM_READWRITE(K052109_word_r, K052109_word_w)
1122   AM_RANGE(0x604020, 0x60402f) AM_WRITE(SMH_NOP)   /* written every frame */
1123   AM_RANGE(0x604200, 0x604201) AM_WRITE(SMH_NOP)   /* watchdog */
1124   AM_RANGE(0x6119e2, 0x6119e3) AM_WRITE(SMH_NOP)   /* written a lot in some test menus (PC=18204) */
1122   AM_RANGE(0x604020, 0x60402f) AM_WRITENOP   /* written every frame */
1123   AM_RANGE(0x604200, 0x604201) AM_WRITENOP   /* watchdog */
1124   AM_RANGE(0x6119e2, 0x6119e3) AM_WRITENOP   /* written a lot in some test menus (PC=18204) */
11251125   AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("P1")
11261126   AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P2")
11271127   AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P3")
r4470r4471
11301130   AM_RANGE(0xc00404, 0xc00405) AM_READ_PORT("COINS")
11311131   AM_RANGE(0xc00406, 0xc00407) AM_READ(sunsetbl_eeprom_r)
11321132   AM_RANGE(0xc00600, 0xc00601) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
1133   AM_RANGE(0x75d288, 0x75d289) AM_READ(SMH_NOP)   // read repeatedly in some test menus (PC=181f2)
1133   AM_RANGE(0x75d288, 0x75d289) AM_READNOP   // read repeatedly in some test menus (PC=181f2)
11341134ADDRESS_MAP_END
11351135
11361136
r4470r4471
11451145   AM_RANGE(0x500100, 0x500101) AM_WRITE(thndrx2_eeprom_w)
11461146   AM_RANGE(0x500200, 0x500201) AM_READ(thndrx2_in0_r)
11471147   AM_RANGE(0x500202, 0x500203) AM_READ(thndrx2_eeprom_r)
1148   AM_RANGE(0x500300, 0x500301) AM_WRITE(SMH_NOP)   /* watchdog reset? irq enable? */
1148   AM_RANGE(0x500300, 0x500301) AM_WRITENOP   /* watchdog reset? irq enable? */
11491149   AM_RANGE(0x600000, 0x607fff) AM_READWRITE(K052109_word_noA12_r, K052109_word_noA12_w)
11501150   AM_RANGE(0x700000, 0x700007) AM_READWRITE(K051937_word_r, K051937_word_w)
11511151   AM_RANGE(0x700400, 0x7007ff) AM_READWRITE(K051960_word_r, K051960_word_w)
r4470r4471
12401240ADDRESS_MAP_END
12411241
12421242
1243
1244#define KONAMI_PLAYERS_INPUT_LSB( player, button3, start ) \
1245   PORT_BIT(  0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(player) \
1246   PORT_BIT(  0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \
1247   PORT_BIT(  0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(player) \
1248   PORT_BIT(  0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(player) \
1249   PORT_BIT(  0x0010, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(player) \
1250   PORT_BIT(  0x0020, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(player) \
1251   PORT_BIT(  0x0040, IP_ACTIVE_LOW, button3            ) PORT_PLAYER(player) \
1252   PORT_BIT(  0x0080, IP_ACTIVE_LOW, start )
1253
1254#define KONAMI_PLAYERS_INPUT_MSB( player, button3, start ) \
1255   PORT_BIT(  0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_PLAYER(player) \
1256   PORT_BIT(  0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(player) \
1257   PORT_BIT(  0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_PLAYER(player) \
1258   PORT_BIT(  0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_PLAYER(player) \
1259   PORT_BIT(  0x1000, IP_ACTIVE_LOW, IPT_BUTTON1        ) PORT_PLAYER(player) \
1260   PORT_BIT(  0x2000, IP_ACTIVE_LOW, IPT_BUTTON2        ) PORT_PLAYER(player) \
1261   PORT_BIT(  0x4000, IP_ACTIVE_LOW, button3            ) PORT_PLAYER(player) \
1262   PORT_BIT(  0x8000, IP_ACTIVE_LOW, start )
1263
12641243static INPUT_PORTS_START( cuebrick )
12651244   PORT_START("COINS")
12661245   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
12731252   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
12741253
12751254   PORT_START("P1")
1276   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_BUTTON3, IPT_UNUSED )
1255   KONAMI16_LSB( 1, IPT_BUTTON3, IPT_UNUSED )
12771256
12781257   PORT_START("P2")
1279   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_BUTTON3, IPT_UNUSED )
1258   KONAMI16_LSB( 2, IPT_BUTTON3, IPT_UNUSED )
12801259
12811260   PORT_START("DSW1")
12821261   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
13001279   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
13011280
13021281   PORT_START("DSW2")
1303   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
1304   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1305   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1306   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1307   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1308   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1309   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1310   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1311   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1312   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1313   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1314   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1315   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1316   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1317   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1318   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1319   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1320   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
1321   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1322   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1323   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1324   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1325   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1326   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1327   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1328   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1329   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1330   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1331   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1332   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1333   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1334   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1335   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1336//  PORT_DIPSETTING(    0x00, "Invalid" )
1282   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
1283   /* "Invalid" = both coin slots disabled */
13371284
13381285   PORT_START("DSW3")
13391286   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
r4470r4471
13581305   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
13591306
13601307   PORT_START("P1")
1361   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_BUTTON3, IPT_UNUSED )
1308   KONAMI16_LSB( 1, IPT_BUTTON3, IPT_UNUSED )
13621309
13631310   PORT_START("P2")
1364   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_BUTTON3, IPT_UNUSED )
1311   KONAMI16_LSB( 2, IPT_BUTTON3, IPT_UNUSED )
13651312
13661313   PORT_START("DSW1")
1367   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
1368   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1369   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1370   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1371   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1372   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1373   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1374   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1375   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1376   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1377   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1378   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1379   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1380   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1381   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1382   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1383   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1384   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
1385   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1386   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1387   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1388   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1389   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1390   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1391   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1392   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1393   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1394   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1395   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1396   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1397   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1398   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1399   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1400//  PORT_DIPSETTING(    0x00, "Invalid" )
1314   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
1315   /* "Invalid" = both coin slots disabled */
14011316
14021317   PORT_START("DSW2")
14031318   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
14431358   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
14441359
14451360   PORT_START("P1")
1446   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1361   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
14471362
14481363   PORT_START("P2")
1449   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1364   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
14501365
14511366   PORT_START("P3")
1452   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
1367   KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
14531368
1369   PORT_START("P4")
1370   KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
1371
14541372   PORT_START("DSW1")
14551373   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
14561374   PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) )
r4470r4471
14941412   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
14951413   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
14961414
1497   PORT_START("P4")
1498   KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
1499
15001415   PORT_START("DSW3")
15011416   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
15021417   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
r4470r4471
15231438   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
15241439
15251440   PORT_START("P1")
1526   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1441   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
15271442
15281443   PORT_START("P2")
1529   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
1444   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
15301445
15311446   PORT_START("P3")
15321447   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
15331448
1449   PORT_START("P4")
1450   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1451
15341452   PORT_START("DSW1")
1535   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
1536   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1537   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1538   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1539   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1540   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1541   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1542   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1543   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1544   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1545   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1546   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1547   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1548   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1549   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1550   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1551   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1552   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
1553   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1554   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1555   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1556   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1557   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1558   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1559   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1560   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1561   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1562   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1563   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1564   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1565   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1566   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1567   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1568//  PORT_DIPSETTING(    0x00, "Invalid" )
1453   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
1454   /* "No Coin B" = coins produce sound, but no effect on coin counter */
15691455
15701456   PORT_START("DSW2")
15711457   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
r4470r4471
15911477   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
15921478   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
15931479
1594   PORT_START("P4")
1595   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1596
15971480   PORT_START("DSW3")
15981481   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
15991482   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
r4470r4471
16861569   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
16871570
16881571   PORT_START("P1/P2")
1689   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1690   KONAMI_PLAYERS_INPUT_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1572   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1573   KONAMI16_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
16911574
16921575   PORT_START("P3/P4")
1693   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
1694   KONAMI_PLAYERS_INPUT_MSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
1576   KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
1577   KONAMI16_MSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
16951578INPUT_PORTS_END
16961579
16971580static INPUT_PORTS_START( punksht2 )
r4470r4471
17721655   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
17731656
17741657   PORT_START("P1/P2")
1775   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1776   KONAMI_PLAYERS_INPUT_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1658   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1659   KONAMI16_MSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
17771660
17781661   PORT_START("P3/P4")
17791662   PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
r4470r4471
17911674   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
17921675
17931676   PORT_START("P1")
1794   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_BUTTON3, IPT_UNKNOWN )
1677   KONAMI16_LSB( 1, IPT_BUTTON3, IPT_UNKNOWN )
17951678
17961679   PORT_START("P2")
1797   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_BUTTON3, IPT_UNKNOWN )
1680   KONAMI16_LSB( 2, IPT_BUTTON3, IPT_UNKNOWN )
17981681
17991682   PORT_START("DSW1")
18001683   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
18201703   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
18211704
18221705   PORT_START("DSW2")
1823   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
1824   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1825   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1826   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1827   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1828   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1829   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1830   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1831   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1832   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1833   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1834   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1835   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1836   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1837   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1838   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1839   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1840   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
1841   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1842   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1843   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1844   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1845   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1846   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1847   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1848   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1849   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1850   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1851   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1852   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1853   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1854   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1855   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1856//  PORT_DIPSETTING(    0x00, "Invalid" )
1706   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
1707   /* "No Coin B" = coins produce sound, but no effect on coin counter */
18571708
18581709   PORT_START("DSW3")
18591710   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
r4470r4471
18701721INPUT_PORTS_END
18711722
18721723static INPUT_PORTS_START( blswhstl )
1873   PORT_START("P1")
1874   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1875
1876   PORT_START("P2")
1877   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1878
18791724   PORT_START("COINS")
18801725   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
18811726   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
18861731   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* VBLANK? OBJMPX? */
18871732   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
18881733
1734   PORT_START("P1")
1735   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1736
1737   PORT_START("P2")
1738   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1739
18891740   PORT_START("EEPROM")
18901741   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
18911742   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
r4470r4471
18931744INPUT_PORTS_END
18941745
18951746static INPUT_PORTS_START( glfgreat )
1896   PORT_START("P1/P2")
1897   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(1)
1898   KONAMI_PLAYERS_INPUT_MSB( 2, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(2)
1899
1900   PORT_START("P3/P4")
1901   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(3)
1902   KONAMI_PLAYERS_INPUT_MSB( 4, IPT_BUTTON3, IPT_BUTTON4 ) PORT_PLAYER(4)
1903
19041747   PORT_START("DSW1/DSW2")
1905   PORT_DIPNAME( 0x000f, 0x000f, DEF_STR( Coin_A ) )
1906   PORT_DIPSETTING(      0x0002, DEF_STR( 4C_1C ) )
1907   PORT_DIPSETTING(      0x0005, DEF_STR( 3C_1C ) )
1908   PORT_DIPSETTING(      0x0008, DEF_STR( 2C_1C ) )
1909   PORT_DIPSETTING(      0x0004, DEF_STR( 3C_2C ) )
1910   PORT_DIPSETTING(      0x0001, DEF_STR( 4C_3C ) )
1911   PORT_DIPSETTING(      0x000f, DEF_STR( 1C_1C ) )
1912   PORT_DIPSETTING(      0x0003, DEF_STR( 3C_4C ) )
1913   PORT_DIPSETTING(      0x0007, DEF_STR( 2C_3C ) )
1914   PORT_DIPSETTING(      0x000e, DEF_STR( 1C_2C ) )
1915   PORT_DIPSETTING(      0x0006, DEF_STR( 2C_5C ) )
1916   PORT_DIPSETTING(      0x000d, DEF_STR( 1C_3C ) )
1917   PORT_DIPSETTING(      0x000c, DEF_STR( 1C_4C ) )
1918   PORT_DIPSETTING(      0x000b, DEF_STR( 1C_5C ) )
1919   PORT_DIPSETTING(      0x000a, DEF_STR( 1C_6C ) )
1920   PORT_DIPSETTING(      0x0009, DEF_STR( 1C_7C ) )
1921   PORT_DIPSETTING(      0x0000, DEF_STR( Free_Play ) )
1922   PORT_DIPNAME( 0x00f0, 0x00f0, DEF_STR( Coin_B ) )
1923   PORT_DIPSETTING(      0x0020, DEF_STR( 4C_1C ) )
1924   PORT_DIPSETTING(      0x0050, DEF_STR( 3C_1C ) )
1925   PORT_DIPSETTING(      0x0080, DEF_STR( 2C_1C ) )
1926   PORT_DIPSETTING(      0x0040, DEF_STR( 3C_2C ) )
1927   PORT_DIPSETTING(      0x0010, DEF_STR( 4C_3C ) )
1928   PORT_DIPSETTING(      0x00f0, DEF_STR( 1C_1C ) )
1929   PORT_DIPSETTING(      0x0030, DEF_STR( 3C_4C ) )
1930   PORT_DIPSETTING(      0x0070, DEF_STR( 2C_3C ) )
1931   PORT_DIPSETTING(      0x00e0, DEF_STR( 1C_2C ) )
1932   PORT_DIPSETTING(      0x0060, DEF_STR( 2C_5C ) )
1933   PORT_DIPSETTING(      0x00d0, DEF_STR( 1C_3C ) )
1934   PORT_DIPSETTING(      0x00c0, DEF_STR( 1C_4C ) )
1935   PORT_DIPSETTING(      0x00b0, DEF_STR( 1C_5C ) )
1936   PORT_DIPSETTING(      0x00a0, DEF_STR( 1C_6C ) )
1937   PORT_DIPSETTING(      0x0090, DEF_STR( 1C_7C ) )
1938//  PORT_DIPSETTING(      0x0000, "Invalid" )
1748   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
1749   /* "No Coin B" = coins produce sound, but no effect on coin counter */
19391750   PORT_DIPNAME( 0x0300, 0x0100, "Players/Controllers" )
19401751   PORT_DIPSETTING(      0x0300, "4/1" )
19411752   PORT_DIPSETTING(      0x0200, "4/2" )
r4470r4471
19841795   PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
19851796   PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
19861797   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1987INPUT_PORTS_END
19881798
1989static INPUT_PORTS_START( ssriders )
1990   PORT_START("P1")
1991   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1799   PORT_START("P1/P2")
1800   KONAMI16_LSB( 1, IPT_BUTTON3, IPT_BUTTON4 )
1801   KONAMI16_MSB( 2, IPT_BUTTON3, IPT_BUTTON4 )
19921802
1993   PORT_START("P2")
1994   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
1803   PORT_START("P3/P4")
1804   KONAMI16_LSB( 3, IPT_BUTTON3, IPT_BUTTON4 )
1805   KONAMI16_MSB( 4, IPT_BUTTON3, IPT_BUTTON4 )
1806INPUT_PORTS_END
19951807
1808static INPUT_PORTS_START( ssriders )
19961809   PORT_START("COINS")
19971810   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
19981811   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
20031816   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
20041817   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
20051818
1819   PORT_START("P1")
1820   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1821
1822   PORT_START("P2")
1823   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
1824
1825   PORT_START("P3")
1826   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1827
1828   PORT_START("P4")
1829   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1830
20061831   PORT_START("EEPROM")
20071832   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
20081833   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
r4470r4471
20111836   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* ?? TMNT2: IPL0 */
20121837   PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
20131838   PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
2014
2015   PORT_START("P3")
2016   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2017
2018   PORT_START("P4")
2019   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
20201839INPUT_PORTS_END
20211840
20221841static INPUT_PORTS_START( ssridr4p )
2023   PORT_START("P1")
2024   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
2025
2026   PORT_START("P2")
2027   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
2028
20291842   PORT_START("COINS")
20301843   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
20311844   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
20361849   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
20371850   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
20381851
1852   PORT_START("P1")
1853   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_UNKNOWN )
1854
1855   PORT_START("P2")
1856   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_UNKNOWN )
1857
1858   PORT_START("P3")
1859   KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
1860
1861   PORT_START("P4")
1862   KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
1863
20391864   PORT_START("EEPROM")
20401865   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
20411866   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
r4470r4471
20441869   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* ?? TMNT2: IPL0 */
20451870   PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
20461871   PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
2047
2048   PORT_START("P3")
2049   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_UNKNOWN )
2050
2051   PORT_START("P4")
2052   KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_UNKNOWN )
20531872INPUT_PORTS_END
20541873
20551874/* Same as 'ssridr4p', but additional Start button for each player.
20561875   COIN3, COIN4, SERVICE3 and SERVICE4 only have an effect in the "test mode". */
20571876static INPUT_PORTS_START( ssrid4ps )
2058   PORT_START("P1")
2059   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
2060
2061   PORT_START("P2")
2062   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
2063
20641877   PORT_START("COINS")
20651878   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
20661879   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
20711884   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
20721885   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
20731886
1887   PORT_START("P1")
1888   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1889
1890   PORT_START("P2")
1891   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
1892
1893   PORT_START("P3")
1894   KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_START3 )
1895
1896   PORT_START("P4")
1897   KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 )
1898
20741899   PORT_START("EEPROM")
20751900   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
20761901   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
r4470r4471
20791904   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* ?? TMNT2: IPL0 */
20801905   PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
20811906   PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
2082
2083   PORT_START("P3")
2084   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_START3 )
2085
2086   PORT_START("P4")
2087   KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_START4 )
20881907INPUT_PORTS_END
20891908
20901909/* Version for the bootleg, which has the service switch a little different */
20911910static INPUT_PORTS_START( sunsetbl )
2092   PORT_START("P1")
2093   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
2094
2095   PORT_START("P2")
2096   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
2097
20981911   PORT_START("COINS")
20991912   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
21001913   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
21051918   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
21061919   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
21071920
1921   PORT_START("P1")
1922   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1923
1924   PORT_START("P2")
1925   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
1926
1927   PORT_START("P3")
1928   KONAMI16_LSB( 3, IPT_UNKNOWN, IPT_START3 )
1929
1930   PORT_START("P4")
1931   KONAMI16_LSB( 4, IPT_UNKNOWN, IPT_START4 )
1932
21081933   PORT_START("EEPROM")
21091934   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
21101935   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
r4470r4471
21131938   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
21141939   PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
21151940   PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
2116
2117   PORT_START("P3")
2118   KONAMI_PLAYERS_INPUT_LSB( 3, IPT_UNKNOWN, IPT_START3 )
2119
2120   PORT_START("P4")
2121   KONAMI_PLAYERS_INPUT_LSB( 4, IPT_UNKNOWN, IPT_START4 )
21221941INPUT_PORTS_END
21231942
21241943static INPUT_PORTS_START( qgakumon )
r4470r4471
21421961   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
21431962   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
21441963
1964   PORT_START("P3")
1965   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1966
1967   PORT_START("P4")
1968   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1969
21451970   PORT_START("COINS")
21461971   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
21471972   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
r4470r4471
21601985   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* ?? TMNT2: IPL0 */
21611986   PORT_BIT( 0x60, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
21621987   PORT_SERVICE_NO_TOGGLE( 0x80, IP_ACTIVE_LOW )
2163
2164   PORT_START("P3")
2165   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
2166
2167   PORT_START("P4")
2168   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
21691988INPUT_PORTS_END
21701989
21711990static INPUT_PORTS_START( thndrx2 )
21721991   PORT_START("P1/COINS")
2173   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
1992   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
21741993   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
21751994   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
21761995   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 )
r4470r4471
21812000   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
21822001
21832002   PORT_START("P2/EEPROM")
2184   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
2003   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
21852004   PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
21862005   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
21872006   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
r4470r4471
21942013
21952014static INPUT_PORTS_START( prmrsocr )
21962015   PORT_START("P1/COINS")
2197   KONAMI_PLAYERS_INPUT_LSB( 1, IPT_UNKNOWN, IPT_START1 )
2016   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
21982017   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_SERVICE1 )
21992018   PORT_SERVICE_NO_TOGGLE( 0x0200, IP_ACTIVE_LOW )
22002019   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
22132032   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
22142033
22152034   PORT_START("P2/EEPROM")
2216   KONAMI_PLAYERS_INPUT_LSB( 2, IPT_UNKNOWN, IPT_START2 )
2035   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
22172036   PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
22182037   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM status? - always 1 */
22192038   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN2 )
src/mame/drivers/raiden2.c
r4470r4471
20232023
20242024   AM_RANGE(0x006b0, 0x006b1) AM_WRITE(mcu_prog_w)
20252025   AM_RANGE(0x006b2, 0x006b3) AM_WRITE(mcu_prog_w2)
2026   AM_RANGE(0x006b4, 0x006b5) AM_WRITE(SMH_NOP)
2027   AM_RANGE(0x006b6, 0x006b7) AM_WRITE(SMH_NOP)
2026   AM_RANGE(0x006b4, 0x006b5) AM_WRITENOP
2027   AM_RANGE(0x006b6, 0x006b7) AM_WRITENOP
20282028
20292029   AM_RANGE(0x006bc, 0x006bd) AM_WRITE(mcu_prog_offs_w)
20302030
src/mame/drivers/scramble.c
r4470r4471
149149   AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
150150   AM_RANGE(0x5000, 0x50ff) AM_READ(SMH_RAM)
151151   AM_RANGE(0x7000, 0x7000) AM_READ(watchdog_reset_r)
152   AM_RANGE(0x7000, 0x7000) AM_READ(SMH_NOP)
152   AM_RANGE(0x7000, 0x7000) AM_READNOP
153153   AM_RANGE(0x8100, 0x810f) AM_DEVREAD("ppi8255_0", mars_ppi8255_r)
154154   AM_RANGE(0x8200, 0x820f) AM_DEVREAD("ppi8255_1", mars_ppi8255_r)
155155ADDRESS_MAP_END
r4470r4471
12981298static ADDRESS_MAP_START( scramble_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
12991299   AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
13001300   AM_RANGE(0x8000, 0x8fff) AM_WRITE(scramble_soundram_w)
1301   AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_NOP) AM_BASE(&scramble_soundram)  /* only here to initialize pointer */
1301   AM_RANGE(0x8000, 0x83ff) AM_WRITENOP AM_BASE(&scramble_soundram)  /* only here to initialize pointer */
13021302   AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
13031303ADDRESS_MAP_END
13041304
src/mame/drivers/mogura.c
r4470r4471
33#include "driver.h"
44#include "cpu/z80/z80.h"
55#include "sound/dac.h"
6#include "konamipt.h"
67
78static UINT8 *mogura_tileram;
89static UINT8* mogura_gfxram;
r4470r4471
9697
9798static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
9899   ADDRESS_MAP_GLOBAL_MASK(0xff)
99   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)   // ??
100   AM_RANGE(0x00, 0x00) AM_WRITENOP   // ??
100101   AM_RANGE(0x08, 0x08) AM_READ_PORT("SYSTEM")
101102   AM_RANGE(0x0c, 0x0c) AM_READ_PORT("P1")
102103   AM_RANGE(0x0d, 0x0d) AM_READ_PORT("P2")
r4470r4471
142143   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
143144
144145   PORT_START("P1")
145   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
146   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
147   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
148   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
149   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
150   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1)
151   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(1)
152   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
146   KONAMI8_B123_START(1)
153147
154148   PORT_START("P2")
155   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
156   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
157   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
158   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
159   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
160   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
161   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2)
162   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
149   KONAMI8_B123_START(2)
163150
164151   PORT_START("P3")
165   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
166   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
167   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
168   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
169   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(3)
170   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(3)
171   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(3)
172   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
152   KONAMI8_B123_START(3)
173153
174154   PORT_START("P4")
175   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
176   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
177   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
178   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
179   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(4)
180   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(4)
181   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(4)
182   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
155   KONAMI8_B123_START(4)
183156
184157   PORT_START("SERVICE")
185158   PORT_SERVICE_NO_TOGGLE( 0x01, IP_ACTIVE_LOW)
r4470r4471
245218ROM_END
246219
247220GAME( 1991, mogura, 0, mogura, mogura, 0, ROT0, "Konami", "Mogura Desse", 0 )
248
src/mame/drivers/system18.c
r4470r4471
229229   AM_RANGE(0xc400, 0xc400) AM_READ(soundlatch_r)
230230   AM_RANGE(0xcc00, 0xcc03) AM_DEVREAD("3438.0", ym3438_r)
231231   AM_RANGE(0xd000, 0xd003) AM_DEVREAD("3438.1", ym3438_r)
232   AM_RANGE(0xdf00, 0xdfff) AM_READ(SMH_NOP)
232   AM_RANGE(0xdf00, 0xdfff) AM_READNOP
233233   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM)
234234ADDRESS_MAP_END
235235
236236static ADDRESS_MAP_START(shdancbl_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
237237   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
238   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_NOP) /* ROM bank */
239   AM_RANGE(0xc000, 0xc00f) AM_WRITE(SMH_NOP)
238   AM_RANGE(0x8000, 0xbfff) AM_WRITENOP /* ROM bank */
239   AM_RANGE(0xc000, 0xc00f) AM_WRITENOP
240240   AM_RANGE(0xc800, 0xc800) AM_WRITE(shdancbl_msm5205_data_w)
241241   AM_RANGE(0xcc00, 0xcc03) AM_DEVWRITE("3438.0", ym3438_w)
242242   AM_RANGE(0xd000, 0xd003) AM_DEVWRITE("3438.1", ym3438_w)
243243   AM_RANGE(0xd400, 0xd400) AM_WRITE(shdancbl_bankctrl_w)
244   AM_RANGE(0xdf00, 0xdfff) AM_WRITE(SMH_NOP)
244   AM_RANGE(0xdf00, 0xdfff) AM_WRITENOP
245245   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
246246ADDRESS_MAP_END
247247
248248static ADDRESS_MAP_START( shdancbl_sound_io_map, ADDRESS_SPACE_IO, 8 )
249249   ADDRESS_MAP_GLOBAL_MASK(0xff)
250   AM_RANGE(0xa0, 0xbf) AM_WRITE(SMH_NOP)
251   AM_RANGE(0xc0, 0xdf) AM_READ(SMH_NOP)
250   AM_RANGE(0xa0, 0xbf) AM_WRITENOP
251   AM_RANGE(0xc0, 0xdf) AM_READNOP
252252ADDRESS_MAP_END
253253
254254/***************************************************************************/
r4470r4471
672672   AM_RANGE(0x440000, 0x440fff) AM_WRITE(SYS16_MWA16_SPRITERAM) AM_BASE(&sys16_spriteram)
673673   AM_RANGE(0x840000, 0x840fff) AM_WRITE(SYS16_MWA16_PALETTERAM) AM_BASE(&paletteram16)
674674   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w)
675   AM_RANGE(0xe4001c, 0xe4001d) AM_WRITE(SMH_NOP) // to prevent access to screen blanking control below
675   AM_RANGE(0xe4001c, 0xe4001d) AM_WRITENOP // to prevent access to screen blanking control below
676676   AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(sys18_io_w)
677677   AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w)
678   AM_RANGE(0xc44000, 0xc44001) AM_WRITE(SMH_NOP) // only used via clr.w after tilebank set
679   AM_RANGE(0xc46000, 0xc46fff) AM_WRITE(SMH_NOP) // bootleg specific video hardware
680   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(SMH_NOP) // config regs
678   AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP // only used via clr.w after tilebank set
679   AM_RANGE(0xc46000, 0xc46fff) AM_WRITENOP // bootleg specific video hardware
680   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs
681681   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
682682ADDRESS_MAP_END
683683
r4470r4471
767767   AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
768768   AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
769769   AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P3")
770   AM_RANGE(0xc41008, 0xc41009) AM_READ(SMH_NOP) // figure this out, extra input for 3p?
770   AM_RANGE(0xc41008, 0xc41009) AM_READNOP // figure this out, extra input for 3p?
771771   AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
772772   AM_RANGE(0xe40000, 0xe4ffff) AM_READ(SYS16_MRA16_EXTRAM2)
773773   AM_RANGE(0xffe02c, 0xffe02d) AM_READ(mwalkbl_skip_r)
r4470r4471
785785   AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w)
786786   AM_RANGE(0xc46800, 0xc46801) AM_WRITE(sys18_tilebank_w)
787787   AM_RANGE(0xe40000, 0xe4ffff) AM_WRITE(SYS16_MWA16_EXTRAM2) AM_BASE(&sys16_extraram2)
788   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(SMH_NOP) // config regs
788   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs
789789   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
790790ADDRESS_MAP_END
791791
r4470r4471
916916   AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w)
917917   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(vdp_w)
918918   AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w)
919   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITE(SMH_NOP)
919   AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP
920920   AM_RANGE(0xffc000, 0xffffff) AM_WRITE(SYS16_MWA16_WORKINGRAM) AM_BASE(&sys16_workingram)
921921ADDRESS_MAP_END
922922
src/mame/drivers/pitnrun.c
r4470r4471
111111   AM_RANGE(0x8800, 0x8fff) AM_WRITE(pitnrun_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
112112   AM_RANGE(0x9000, 0x9fff) AM_WRITE(pitnrun_videoram2_w) AM_BASE(&pitnrun_videoram2)
113113   AM_RANGE(0xa000, 0xa0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
114   AM_RANGE(0xa800, 0xa807) AM_WRITE(SMH_NOP) /* Analog Sound */
114   AM_RANGE(0xa800, 0xa807) AM_WRITENOP /* Analog Sound */
115115   AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w)
116116   AM_RANGE(0xb001, 0xb001) AM_WRITE(pitnrun_color_select_w)
117   AM_RANGE(0xb004, 0xb004) AM_WRITE(SMH_NOP)/* COLOR SEL 2 - not used ?*/
117   AM_RANGE(0xb004, 0xb004) AM_WRITENOP/* COLOR SEL 2 - not used ?*/
118118   AM_RANGE(0xb005, 0xb005) AM_WRITE(pitnrun_char_bank_select)
119119   AM_RANGE(0xb006, 0xb006) AM_WRITE(pitnrun_hflip_w)
120120   AM_RANGE(0xb007, 0xb007) AM_WRITE(pitnrun_vflip_w)
121121   AM_RANGE(0xb800, 0xb800) AM_WRITE(soundlatch_w)
122122   AM_RANGE(0xc800, 0xc801) AM_WRITE(pitnrun_scroll_w)
123   AM_RANGE(0xc802, 0xc802) AM_WRITE(SMH_NOP)/* VP(VF?)MCV - not used ?*/
123   AM_RANGE(0xc802, 0xc802) AM_WRITENOP/* VP(VF?)MCV - not used ?*/
124124   AM_RANGE(0xc804, 0xc804) AM_WRITE(pitnrun_mcu_data_w)
125125   AM_RANGE(0xc805, 0xc805) AM_WRITE(pitnrun_h_heed_w)
126126    AM_RANGE(0xc806, 0xc806) AM_WRITE(pitnrun_v_heed_w)
r4470r4471
134134   AM_RANGE(0x8c, 0x8d) AM_DEVWRITE("ay2", ay8910_address_data_w)
135135   AM_RANGE(0x8e, 0x8f) AM_DEVWRITE("ay1", ay8910_address_data_w)
136136   AM_RANGE(0x8f, 0x8f) AM_DEVREAD("ay1", ay8910_r)
137   AM_RANGE(0x90, 0x96) AM_WRITE(SMH_NOP)
138   AM_RANGE(0x97, 0x97) AM_WRITE(SMH_NOP)
139   AM_RANGE(0x98, 0x98) AM_WRITE(SMH_NOP)
137   AM_RANGE(0x90, 0x96) AM_WRITENOP
138   AM_RANGE(0x97, 0x97) AM_WRITENOP
139   AM_RANGE(0x98, 0x98) AM_WRITENOP
140140ADDRESS_MAP_END
141141
142142static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/tehkanwc.c
r4470r4471
249249   AM_RANGE(0xf813, 0xf813) AM_READ_PORT("P2BUT")
250250   AM_RANGE(0xf820, 0xf820) AM_READWRITE(soundlatch2_r, sound_command_w)   /* answer from the sound CPU */
251251   AM_RANGE(0xf840, 0xf840) AM_READ_PORT("DSW1") AM_WRITE(sub_cpu_halt_w)
252   AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITE(SMH_NOP)         /* ?? writes 0x00 or 0xff */
252   AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITENOP         /* ?? writes 0x00 or 0xff */
253253   AM_RANGE(0xf860, 0xf860) AM_READWRITE(watchdog_reset_r, tehkanwc_flipscreen_x_w)
254254   AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE(tehkanwc_flipscreen_y_w)
255255ADDRESS_MAP_END
r4470r4471
273273   AM_RANGE(0x0000, 0x3fff) AM_ROM
274274   AM_RANGE(0x4000, 0x47ff) AM_RAM
275275   AM_RANGE(0x8001, 0x8001) AM_DEVWRITE("msm", msm_reset_w)/* MSM51xx reset */
276   AM_RANGE(0x8002, 0x8002) AM_WRITE(SMH_NOP)   /* ?? written in the IRQ handler */
277   AM_RANGE(0x8003, 0x8003) AM_WRITE(SMH_NOP)   /* ?? written in the NMI handler */
276   AM_RANGE(0x8002, 0x8002) AM_WRITENOP   /* ?? written in the IRQ handler */
277   AM_RANGE(0x8003, 0x8003) AM_WRITENOP   /* ?? written in the NMI handler */
278278   AM_RANGE(0xc000, 0xc000) AM_READWRITE(soundlatch_r, sound_answer_w)
279279ADDRESS_MAP_END
280280
src/mame/drivers/spy.c
r4470r4471
2323#include "video/konamiic.h"
2424#include "sound/3812intf.h"
2525#include "sound/k007232.h"
26#include "konamipt.h"
2627
27
2828VIDEO_START( spy );
2929VIDEO_UPDATE( spy );
3030
r4470r4471
399399
400400static INPUT_PORTS_START( spy )
401401   PORT_START("P1")
402   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
403   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
404   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
405   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
406   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
407   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
408   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
409   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* button 3 */
402   KONAMI8_ALT_B21(1)   /* button 3 unused */
410403
411404   PORT_START("P2")
412   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
413   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
414   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
415   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
416   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
417   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
418   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
419   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* button 3 */
405   KONAMI8_ALT_B21(2)   /* button 3 unused */
420406
421407   PORT_START("DSW1")
422   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
423   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
424   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
425   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
426   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
427   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
428   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
429   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
430   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
431   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
432   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
433   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
434   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
435   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
436   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
437   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
438   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
439   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
440   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
441   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
442   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
443   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
444   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
445   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
446   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
447   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
448   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
449   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
450   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
451   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
452   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
453   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
454   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
455//  PORT_DIPSETTING(    0x00, "Invalid" )
408   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
409   /* "Invalid" = both coin slots disabled */
456410
457411   PORT_START("DSW2")
458412   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
src/mame/drivers/dynadice.c
r4470r4471
7777   AM_RANGE(0x50, 0x50) AM_READ_PORT("IN0")
7878   AM_RANGE(0x51, 0x51) AM_READ_PORT("IN1")
7979   AM_RANGE(0x52, 0x52) AM_READ_PORT("DSW")
80   AM_RANGE(0x62, 0x62) AM_WRITE(SMH_NOP)
80   AM_RANGE(0x62, 0x62) AM_WRITENOP
8181   AM_RANGE(0x63, 0x63) AM_WRITE(soundlatch_w)
82   AM_RANGE(0x70, 0x77) AM_WRITE(SMH_NOP)
82   AM_RANGE(0x70, 0x77) AM_WRITENOP
8383ADDRESS_MAP_END
8484
8585static ADDRESS_MAP_START( dynadice_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/playmark.c
r4470r4471
234234   AM_RANGE(0x304000, 0x304001) AM_NOP            /* watchdog? irq ack? */
235235   AM_RANGE(0x440000, 0x4403ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
236236   AM_RANGE(0x500000, 0x500fff) AM_WRITE(wbeachvl_fgvideoram_w) AM_BASE(&wbeachvl_videoram2)
237   AM_RANGE(0x501000, 0x501fff) AM_WRITE(SMH_NOP)   /* unused RAM? */
237   AM_RANGE(0x501000, 0x501fff) AM_WRITENOP   /* unused RAM? */
238238   AM_RANGE(0x502000, 0x503fff) AM_WRITE(wbeachvl_txvideoram_w) AM_BASE(&wbeachvl_videoram1)
239   AM_RANGE(0x504000, 0x50ffff) AM_WRITE(SMH_NOP)   /* unused RAM? */
239   AM_RANGE(0x504000, 0x50ffff) AM_WRITENOP   /* unused RAM? */
240240   AM_RANGE(0x510000, 0x51000b) AM_WRITE(bigtwin_scroll_w)
241241   AM_RANGE(0x51000c, 0x51000d) AM_WRITENOP   /* always 3? */
242242   AM_RANGE(0x600000, 0x67ffff) AM_RAM AM_BASE(&bigtwin_bgvideoram)
r4470r4471
269269   AM_RANGE(0x710018, 0x710019) AM_READ_PORT("P3")
270270   AM_RANGE(0x71001a, 0x71001b) AM_READ_PORT("P4")
271271//  AM_RANGE(0x71001c, 0x71001d) AM_READ(playmark_snd_status???)
272//  AM_RANGE(0x71001e, 0x71001f) AM_WRITE(SMH_NOP)//playmark_snd_command_w },
272//  AM_RANGE(0x71001e, 0x71001f) AM_WRITENOP//playmark_snd_command_w },
273273   AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
274274   AM_RANGE(0xff0000, 0xffffff) AM_RAM
275275ADDRESS_MAP_END
src/mame/drivers/esd16.c
r4470r4471
190190   AM_RANGE(0xb00004, 0xb00007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1   )   //
191191   AM_RANGE(0xb00008, 0xb00009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x)
192192   AM_RANGE(0xb0000a, 0xb0000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y)
193   AM_RANGE(0xb0000c, 0xb0000d) AM_WRITE(SMH_NOP) // ??
193   AM_RANGE(0xb0000c, 0xb0000d) AM_WRITENOP // ??
194194   AM_RANGE(0xb0000e, 0xb0000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ??
195   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) // IRQ Ack
195   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP // IRQ Ack
196196   AM_RANGE(0xc00008, 0xc00009) AM_WRITE(esd16_tilemap0_color_w)   // Flip Screen + Tileamp0 palette banking
197   AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE(SMH_NOP)   // ? 2 not checked
197   AM_RANGE(0xc0000a, 0xc0000b) AM_WRITENOP   // ? 2 not checked
198198   AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(esd16_sound_command_w         )   // To Sound CPU // ok
199199   AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(esd_eeprom_w)
200200   AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w)
r4470r4471
218218   AM_RANGE(0x320000, 0x323fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1   )   //
219219   AM_RANGE(0x324000, 0x327fff) AM_WRITE(esd16_vram_1_w) AM_BASE(&esd16_vram_1   )   // mirror?
220220   AM_RANGE(0x400000, 0x400fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
221    AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   // IRQ Ack
221    AM_RANGE(0x500000, 0x500001) AM_WRITENOP   // IRQ Ack
222222   AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w)   // Flip Screen + Tileamp0 palette banking
223   AM_RANGE(0x50000a, 0x50000b) AM_WRITE(SMH_NOP)   // ? 2 not checked
223   AM_RANGE(0x50000a, 0x50000b) AM_WRITENOP   // ? 2 not checked
224224   AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w         )   // To Sound CPU // ok
225225   AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w)
226226   AM_RANGE(0x600000, 0x6007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size   )   // Sprites
r4470r4471
229229   AM_RANGE(0x700004, 0x700007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1   )   //
230230   AM_RANGE(0x700008, 0x700009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx?
231231   AM_RANGE(0x70000a, 0x70000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx?
232   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(SMH_NOP) // ??
232   AM_RANGE(0x70000c, 0x70000d) AM_WRITENOP // ??
233233   AM_RANGE(0x70000e, 0x70000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ??
234234   AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) // not used in mchampdx?
235235ADDRESS_MAP_END
r4470r4471
257257   AM_RANGE(0x400004, 0x400007) AM_WRITE(SMH_RAM) AM_BASE(&esd16_scroll_1   )   //
258258   AM_RANGE(0x400008, 0x400009) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_x) // not used in mchampdx?
259259   AM_RANGE(0x40000a, 0x40000b) AM_WRITE(SMH_RAM) AM_BASE(&headpanic_platform_y) // not used in mchampdx?
260   AM_RANGE(0x40000c, 0x40000d) AM_WRITE(SMH_NOP) // ??
260   AM_RANGE(0x40000c, 0x40000d) AM_WRITENOP // ??
261261   AM_RANGE(0x40000e, 0x40000f) AM_WRITE(SMH_RAM) AM_BASE(&head_layersize) // ??
262   AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   // IRQ Ack
262   AM_RANGE(0x500000, 0x500001) AM_WRITENOP   // IRQ Ack
263263   AM_RANGE(0x500008, 0x500009) AM_WRITE(esd16_tilemap0_color_w)   // Flip Screen + Tileamp0 palette banking
264   AM_RANGE(0x50000a, 0x50000b) AM_WRITE(SMH_NOP)   // ? 2 not checked
264   AM_RANGE(0x50000a, 0x50000b) AM_WRITENOP   // ? 2 not checked
265265   AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w         )   // To Sound CPU // ok
266266   AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w)
267267   AM_RANGE(0x600008, 0x600009) AM_WRITE(hedpanic_platform_w)
src/mame/drivers/jangou.c
r4470r4471
364364   ADDRESS_MAP_GLOBAL_MASK(0xff)
365365   AM_RANGE(0x00,0x00) AM_READ(sound_latch_r)
366366   AM_RANGE(0x01,0x01) AM_WRITE(cvsd_w)
367   AM_RANGE(0x02,0x02) AM_WRITE(SMH_NOP) // Echoes sound command - acknowledge?
367   AM_RANGE(0x02,0x02) AM_WRITENOP // Echoes sound command - acknowledge?
368368ADDRESS_MAP_END
369369
370370
r4470r4471
389389   ADDRESS_MAP_GLOBAL_MASK(0xff)
390390   AM_RANGE(0x00,0x00) AM_READ(sound_latch_r)
391391   AM_RANGE(0x01,0x01) AM_WRITE(adpcm_w)
392   AM_RANGE(0x02,0x02) AM_WRITE(SMH_NOP)
392   AM_RANGE(0x02,0x02) AM_WRITENOP
393393ADDRESS_MAP_END
394394
395395
src/mame/drivers/namcos21.c
r4470r4471
940940   AM_RANGE(0x02,0x02) AM_READ(slave_port2_r)
941941   AM_RANGE(0x03,0x03) AM_READ(slave_port3_r) AM_WRITE(slave_port3_w)
942942   AM_RANGE(0x0f,0x0f) AM_READ(slave_portf_r)
943   AM_RANGE(TMS32025_HOLD,  TMS32025_HOLD)  AM_READ(SMH_NOP)
944   AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(SMH_NOP)
943   AM_RANGE(TMS32025_HOLD,  TMS32025_HOLD)  AM_READNOP
944   AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
945945   AM_RANGE(TMS32025_XF,    TMS32025_XF)    AM_WRITE(slave_XF_output_w)
946946ADDRESS_MAP_END
947947
r4470r4471
11201120
11211121static ADDRESS_MAP_START( namcos21_68k_common, ADDRESS_SPACE_PROGRAM, 16 )
11221122   AM_RANGE(0x200000, 0x20ffff) AM_READ(dspram16_r) AM_WRITE(dspram16_w) AM_BASE(&namcos21_dspram16)
1123   AM_RANGE(0x280000, 0x280001) AM_WRITE(SMH_NOP) /* written once on startup */
1123   AM_RANGE(0x280000, 0x280001) AM_WRITENOP /* written once on startup */
11241124   AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
11251125   AM_RANGE(0x440000, 0x440001) AM_READ(pointram_data_r) AM_WRITE(pointram_data_w)
1126   AM_RANGE(0x440002, 0x47ffff) AM_WRITE(SMH_NOP) /* (?) Air Combat */
1126   AM_RANGE(0x440002, 0x47ffff) AM_WRITENOP /* (?) Air Combat */
11271127   AM_RANGE(0x480000, 0x4807ff) AM_WRITE(namcos21_depthcue_w) AM_READ(namcos21_depthcue_r) /* Air Combat */
11281128   AM_RANGE(0x700000, 0x71ffff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w)
11291129   AM_RANGE(0x720000, 0x720007) AM_READ(namco_spritepos16_r) AM_WRITE(namco_spritepos16_w)
r4470r4471
12881288static ADDRESS_MAP_START( winrun_dsp_io, ADDRESS_SPACE_IO, 16 )
12891289   AM_RANGE(0x08,0x09) AM_WRITE(winrun_dsp_pointrom_addr_w) AM_READ(winrun_dsp_pointrom_data_r)
12901290   AM_RANGE(0x0a,0x0a) AM_WRITE(winrun_dsp_render_w)
1291   AM_RANGE(0x0b,0x0b) AM_WRITE(SMH_NOP)
1291   AM_RANGE(0x0b,0x0b) AM_WRITENOP
12921292   AM_RANGE(0x0c,0x0c) AM_WRITE(winrun_dsp_complete_w)
12931293   AM_RANGE(TMS32025_BIO,   TMS32025_BIO)   AM_READ( winrun_poly_reset_r )
12941294   AM_RANGE(TMS32025_HOLD,  TMS32025_HOLD)  AM_READ( SMH_NOP )
r4470r4471
14111411ADDRESS_MAP_END
14121412
14131413static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
1414   AM_RANGE(0x3000, 0x3003) AM_WRITE(SMH_NOP) /* ? */
1414   AM_RANGE(0x3000, 0x3003) AM_WRITENOP /* ? */
14151415   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
14161416   AM_RANGE(0x4000, 0x4001) AM_DEVWRITE("ym", ym2151_w)
14171417   AM_RANGE(0x5000, 0x6fff) AM_DEVWRITE("c140", c140_w)
14181418   AM_RANGE(0x7000, 0x77ff) AM_WRITE(namcos2_dualportram_byte_w) AM_BASE(&mpDualPortRAM)
14191419   AM_RANGE(0x7800, 0x7fff) AM_WRITE(namcos2_dualportram_byte_w) /* mirror */
14201420   AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_RAM)
1421   AM_RANGE(0xa000, 0xbfff) AM_WRITE(SMH_NOP) /* amplifier enable on 1st write */
1421   AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* amplifier enable on 1st write */
14221422   AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos2_sound_bankselect_w)
1423   AM_RANGE(0xd001, 0xd001) AM_WRITE(SMH_NOP) /* watchdog */
1424   AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_NOP) /* avoid debug log noise; games write frequently to 0xe000 */
1423   AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog */
1424   AM_RANGE(0xc000, 0xffff) AM_WRITENOP /* avoid debug log noise; games write frequently to 0xe000 */
14251425ADDRESS_MAP_END
14261426
14271427/*************************************************************/
r4470r4471
14291429/*************************************************************/
14301430
14311431static ADDRESS_MAP_START( readmem_mcu, ADDRESS_SPACE_PROGRAM, 8 )
1432   AM_RANGE(0x0000, 0x0000) AM_READ(SMH_NOP)
1432   AM_RANGE(0x0000, 0x0000) AM_READNOP
14331433   AM_RANGE(0x0001, 0x0001) AM_READ_PORT("PORTB")         /* p1,p2 start */
14341434   AM_RANGE(0x0002, 0x0002) AM_READ_PORT("PORTC")         /* coins */
14351435   AM_RANGE(0x0003, 0x0003) AM_READ(namcos2_mcu_port_d_r)
r4470r4471
14451445   AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2")
14461446   AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3")
14471447   AM_RANGE(0x5000, 0x57ff) AM_READ(namcos2_dualportram_byte_r)
1448   AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_NOP)            /* watchdog */
1448   AM_RANGE(0x6000, 0x6fff) AM_READNOP            /* watchdog */
14491449   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
14501450ADDRESS_MAP_END
14511451
src/mame/drivers/pgm.c
r4470r4471
3535030x  - 1998  - The Killing Blade
3636040x  - 1998  - Dragon World 3
3737050x  - 1999? - Oriental Legend Super
38060x  - 1999  - Knights of Valor, Knights of Valor Plus, Knights of Valor Superheroes
38060x  - 1999  - Knights of Valor, Knights of Valor Plus, Knights of Valor Super Heroes
3939070x  - 1999  - Photo Y2k
4040080x  - 1999  - Puzzle Star
4141090x  - 2001  - Puzzli II
r4470r4471
173173    arm7 cpu with 16kb internal rom (different per game / region) + optional external data rom
174174    probably used to give extra power to the system, lots of calculations are offloaded to it
175175    used by:
176    Knights of Valour Superheros / Hero
176    Knights of Valour Super Heroes / Plus
177177    Puzzli II
178    Oriental Legend Ex
178    Oriental Legend Special Plus
179179    Knights of Valor 2 / 2 Plus
180180    DoDonPachi II
181181    Martial Masters
182182    The Gladiator
183183    Demon Front
184    Killing Blade Plus
184    The Killing Blade Plus
185185    Spectral VS Generation
186186
187187there are probably more...
r4470r4471
292292#include "includes/pgm.h"
293293
294294
295UINT16 *pgm_mainram, *pgm_bg_videoram, *pgm_tx_videoram, *pgm_videoregs, *pgm_rowscrollram;
295UINT16 *pgm_mainram, *pgm_bg_videoram, *pgm_tx_videoram, *pgm_videoregs, *pgm_rowscrollram, *pgm_videoram;
296296static UINT8 *z80_mainram;
297297static UINT32 *arm7_shareram;
298298static UINT32 *svg_shareram[2];   //for 5585G MACHINE
r4470r4471
300300static UINT32 kov2_latchdata_arm_w;
301301
302302
303static WRITE16_HANDLER( pgm_videoram_w )
304{
305   if (offset<0x4000/2)
306      pgm_bg_videoram_w(space, offset, data, mem_mask);
307   else if (offset<0x7000/2)
308      pgm_tx_videoram_w(space, offset-0x4000/2, data, mem_mask);
309   else COMBINE_DATA(&pgm_videoram[offset/2]);
310}
311
303312static READ16_HANDLER ( z80_ram_r )
304313{
305314   return (z80_mainram[offset*2] << 8)|z80_mainram[offset*2+1];
r4470r4471
342351
343352   generic_pulse_irq_line(space->machine->cpu[2], ARM7_FIRQ_LINE);
344353   cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200));
345   cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help
354   cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help)
346355}
347356
348357static READ16_HANDLER( arm7_ram_r )
r4470r4471
529538
530539   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
531540
532   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
533   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
534   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
541//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
542//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
543//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
544   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
535545   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
536546   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
537547
r4470r4471
561571
562572   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
563573
564   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
565   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
566   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
574//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
575//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
576//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
577   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
567578   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
568579   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
569580
r4470r4471
593604
594605   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
595606
596   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
597   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
598   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
607//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
608//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
609//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
610   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
599611   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
600612   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
601613
r4470r4471
622634
623635   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
624636
625   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
626   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
627   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
637//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
638//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
639//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
640   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
628641   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
629642   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
630643
r4470r4471
655668
656669   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
657670
658   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
659   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
660   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
671//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
672//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
673//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
674   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
661675   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
662676   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
663677
r4470r4471
698712   AM_RANGE(0x50000000, 0x500003ff) AM_RAM
699713ADDRESS_MAP_END
700714
701
702715/* Kov Superheroes */
703716
704717static UINT16 kovsh_highlatch_arm_w, kovsh_lowlatch_arm_w;
r4470r4471
706719
707720static READ32_HANDLER( kovsh_arm7_protlatch_r )
708721{
722   timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync
723
709724   return (kovsh_highlatch_68k_w << 16) | (kovsh_lowlatch_68k_w);
710725}
711726
712727static WRITE32_HANDLER( kovsh_arm7_protlatch_w )
713728{
729   timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync
730
714731   if (ACCESSING_BITS_16_31)
715732   {
716733      kovsh_highlatch_arm_w = data>>16;
r4470r4471
721738      kovsh_lowlatch_arm_w = data;
722739      kovsh_lowlatch_68k_w = 0;
723740   }
724
725//  cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(100));
726//  cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[0], 100));
727741}
728742
729743static READ16_HANDLER( kovsh_68k_protlatch_r )
730744{
731   //cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200));
732   //cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[0], 600));
745   timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync
733746
734747   switch (offset)
735748   {
r4470r4471
741754
742755static WRITE16_HANDLER( kovsh_68k_protlatch_w )
743756{
757   timer_call_after_resynch(space->machine, NULL, 0, 0); // force resync
758
744759   switch (offset)
745760   {
746      case 1: kovsh_highlatch_68k_w = data; break;
747      case 0: kovsh_lowlatch_68k_w = data; break;
761      case 1:
762         {
763            kovsh_highlatch_68k_w = data;
764         }
765         break;
766
767      case 0:
768         {
769            kovsh_lowlatch_68k_w = data;
770         }
771         break;
748772   }
749773}
750774
r4470r4471
771795
772796   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
773797
774   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
775   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
776   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
798//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
799//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
800//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
801   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
777802   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
778803   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
779804
r4470r4471
811836   AM_RANGE(0x08100000, 0x083fffff) AM_READ(kovsh_exrom_r) // unpopulated, returns 0 to keep checksum happy
812837   AM_RANGE(0x10000000, 0x100003ff) AM_RAM // internal ram for asic
813838   AM_RANGE(0x40000000, 0x40000003) AM_READ(kovsh_arm7_protlatch_r) AM_WRITE(kovsh_arm7_protlatch_w)
814   AM_RANGE(0x40000008, 0x4000000b) AM_WRITE(SMH_NOP) // ?
839   AM_RANGE(0x40000008, 0x4000000b) AM_WRITENOP // ?
815840   AM_RANGE(0x4000000c, 0x4000000f) AM_READ(kovsh_arm7_unk_r)
816841   AM_RANGE(0x50800000, 0x5080003f) AM_READWRITE(arm7_shareram_r, arm7_shareram_w) AM_BASE(&arm7_shareram)
817842   AM_RANGE(0x50000000, 0x500003ff) AM_RAM // uploads xor table to decrypt 68k rom here
r4470r4471
862887{
863888   generic_pulse_irq_line(space->machine->cpu[2], ARM7_FIRQ_LINE);
864889   cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200));
865   cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help
890   cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help)
866891}
867892
868893static WRITE16_HANDLER( svg_latch_68k_w )
r4470r4471
879904
880905   AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE(&pgm_mainram) /* Main Ram */
881906
882   AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
883   AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
884   AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
907//  AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(pgm_bg_videoram_w) AM_BASE(&pgm_bg_videoram) /* Backgrounds */
908//  AM_RANGE(0x904000, 0x905fff) AM_RAM_WRITE(pgm_tx_videoram_w) AM_BASE(&pgm_tx_videoram) /* Text Layer */
909//  AM_RANGE(0x907000, 0x9077ff) AM_RAM AM_BASE(&pgm_rowscrollram)
910   AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_RAM_WRITE(pgm_videoram_w) AM_BASE(&pgm_videoram) /* IGS023 VIDEO CHIP */
885911   AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
886912   AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(&pgm_videoregs) /* Video Regs inc. Zoom Table */
887913
r4470r4471
14221448
14231449   expand_32x32x5bpp(machine);
14241450   expand_colourdata(machine);
1451
1452   pgm_bg_videoram = &pgm_videoram[0];
1453   pgm_tx_videoram = &pgm_videoram[0x4000/2];
1454   pgm_rowscrollram = &pgm_videoram[0x7000/2];
14251455}
14261456
14271457static DRIVER_INIT( pgm )
r4470r4471
15121542   pgm_kovsh_decrypt(machine);
15131543}
15141544
1515static DRIVER_INIT( kovh )
1545static DRIVER_INIT( kovshp )
15161546{
15171547   pgm_basic_init(machine);
1518   pgm_kovh_decrypt(machine);
1548   pgm_kovshp_decrypt(machine);
15191549}
15201550
1521static DRIVER_INIT( oldss )
1551static DRIVER_INIT( oldsplus )
15221552{
15231553   pgm_basic_init(machine);
1524   pgm_oldss_decrypt(machine);
1554   pgm_oldsplus_decrypt(machine);
15251555}
15261556
15271557static DRIVER_INIT( kov2 )
r4470r4471
20582088
20592089   /* CPU2 = Z80, romless, code uploaded by 68k */
20602090
2061   ROM_REGION( 0x200000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Layer Tiles */
2091   ROM_REGION( 0x200000, "gfx1", 0 ) /* 8x8 Text Layer Tiles */
20622092   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) )
20632093
20642094   ROM_REGION( 0x200000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
20652095   ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) )
20662096
2067   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2097   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
20682098
20692099   ROM_REGION( 0x1000000, "gfx4", ROMREGION_ERASEFF ) /* Sprite Masks + Colour Indexes */
20702100ROM_END
r4470r4471
20762106
20772107   /* CPU2 = Z80, romless, code uploaded by 68k */
20782108
2079   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2109   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
20802110   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
20812111   ROM_LOAD( "t0100.rom",    0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
20822112
2083   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2113   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
20842114   /* 32x32 Tile Data is put here for easier Decoding */
20852115
2086   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2116   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
20872117   ROM_LOAD( "a0100.rom",    0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
20882118   ROM_LOAD( "a0101.rom",    0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
20892119   ROM_LOAD( "a0102.rom",    0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
r4470r4471
21082138
21092139   /* CPU2 = Z80, romless, code uploaded by 68k */
21102140
2111   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2141   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
21122142   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
21132143   ROM_LOAD( "t0100.rom",    0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
21142144
2115   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2145   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
21162146   /* 32x32 Tile Data is put here for easier Decoding */
21172147
2118   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2148   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
21192149   ROM_LOAD( "a0100.rom",    0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
21202150   ROM_LOAD( "a0101.rom",    0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
21212151   ROM_LOAD( "a0102.rom",    0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
r4470r4471
21402170
21412171   /* CPU2 = Z80, romless, code uploaded by 68k */
21422172
2143   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2173   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
21442174   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
21452175   ROM_LOAD( "t0100.rom",    0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
21462176
2147   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2177   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
21482178   /* 32x32 Tile Data is put here for easier Decoding */
21492179
2150   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2180   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
21512181   ROM_LOAD( "a0100.rom",    0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
21522182   ROM_LOAD( "a0101.rom",    0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
21532183   ROM_LOAD( "a0102.rom",    0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
r4470r4471
22082238
22092239   /* CPU2 = Z80, romless, code uploaded by 68k */
22102240
2211   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2241   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
22122242   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
22132243   ROM_LOAD( "t0100.rom",    0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
22142244
2215   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2245   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
22162246   /* 32x32 Tile Data is put here for easier Decoding */
22172247
2218   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2248   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
22192249   ROM_LOAD( "a0100.rom",    0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
22202250   ROM_LOAD( "a0101.rom",    0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
22212251   ROM_LOAD( "a0102.rom",    0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
r4470r4471
22762306
22772307   /* CPU2 = Z80, romless, code uploaded by 68k */
22782308
2279   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2309   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
22802310   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
22812311   ROM_LOAD( "t0100.rom",    0x400000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
22822312
2283   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2313   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
22842314   /* 32x32 Tile Data is put here for easier Decoding */
22852315
2286   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2316   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
22872317   ROM_LOAD( "a0100.rom",    0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
22882318   ROM_LOAD( "a0101.rom",    0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
22892319   ROM_LOAD( "a0102.rom",    0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
r4470r4471
23752405
23762406   /* CPU2 = Z80, romless, code uploaded by 68k */
23772407
2378   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2408   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
23792409   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
23802410   ROM_LOAD( "pgmt0200.u7",    0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) )
23812411
2382   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2412   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
23832413   /* 32x32 Tile Data is put here for easier Decoding */
23842414
2385   ROM_REGION( 0x400000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2415   ROM_REGION( 0x400000, "gfx3", 0 ) /* Sprite Colour Data */
23862416   ROM_LOAD( "pgma0200.u5",    0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) )
23872417
23882418   ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
r4470r4471
24002430
24012431   /* CPU2 = Z80, romless, code uploaded by 68k */
24022432
2403   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2433   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
24042434   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
24052435   ROM_LOAD( "pgmt0200.u7",    0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) )
24062436
2407   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2437   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
24082438   /* 32x32 Tile Data is put here for easier Decoding */
24092439
2410   ROM_REGION( 0x400000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2440   ROM_REGION( 0x400000, "gfx3", 0 ) /* Sprite Colour Data */
24112441   ROM_LOAD( "pgma0200.u5",    0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) )
24122442
24132443   ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
r4470r4471
24242454
24252455   /* CPU2 = Z80, romless, code uploaded by 68k */
24262456
2427   ROM_REGION( 0x800000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2457   ROM_REGION( 0x800000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
24282458   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
24292459   ROM_LOAD( "pgmt0200.u7",    0x400000, 0x400000, CRC(b0f6534d) SHA1(174cacd81169a0e0d14790ac06d03caed737e05d) )
24302460
2431   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2461   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
24322462   /* 32x32 Tile Data is put here for easier Decoding */
24332463
2434   ROM_REGION( 0x400000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2464   ROM_REGION( 0x400000, "gfx3", 0 ) /* Sprite Colour Data */
24352465   ROM_LOAD( "pgma0200.u5",    0x0000000, 0x400000, CRC(13b95069) SHA1(4888b06002afb18eab81c010e9362629045767af) )
24362466
24372467   ROM_REGION( 0x400000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
r4470r4471
24762506   ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */
24772507   ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) )
24782508
2479   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2509   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
24802510   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
24812511   ROM_LOAD( "dw3t0400.u18",   0x400000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) )
24822512
2483   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2513   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
24842514   /* 32x32 Tile Data is put here for easier Decoding */
24852515
2486   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2516   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
24872517   ROM_LOAD( "dw3a0400.u9",     0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
24882518   ROM_LOAD( "dw3a0401.u10",    0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
24892519
r4470r4471
25222552   ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data - is it correct for this set? */
25232553   ROM_LOAD( "dw3_v100.u15", 0x000000, 0x010000, CRC(03dc4fdf) SHA1(b329b04325d4f725231b1bb7862eedef2319b652) )
25242554
2525   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2555   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
25262556   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
25272557   ROM_LOAD( "dw3t0400.u18",   0x400000, 0x400000, CRC(b70f3357) SHA1(8733969d7d21f540f295a9f747a4bb8f0d325cf0) )
25282558
2529   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2559   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
25302560   /* 32x32 Tile Data is put here for easier Decoding */
25312561
2532   ROM_REGION( 0x1800000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2562   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
25332563   ROM_LOAD( "dw3a0400.u9",     0x0000000, 0x400000, CRC(dd7bfd40) SHA1(fb7ec5bf89a413c5208716083762a725ff63f5db) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25342564   ROM_LOAD( "dw3a0401.u10",    0x0400000, 0x400000, CRC(cab6557f) SHA1(1904dd86645eea27ac1ab8a2462b20f6531356f8) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25352565
r4470r4471
25512581   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
25522582   ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
25532583
2554   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2584   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
25552585   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
25562586   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
25572587
2558   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2588   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
25592589   /* 32x32 Tile Data is put here for easier Decoding */
25602590
2561   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2591   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
25622592   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25632593   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25642594   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
25832613   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
25842614   ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
25852615
2586   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2616   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
25872617   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
25882618   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
25892619
2590   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2620   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
25912621   /* 32x32 Tile Data is put here for easier Decoding */
25922622
2593   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2623   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
25942624   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25952625   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
25962626   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
26502680   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
26512681   ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
26522682
2653   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2683   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
26542684   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
26552685   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
26562686
2657   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2687   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
26582688   /* 32x32 Tile Data is put here for easier Decoding */
26592689
2660   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2690   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
26612691   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
26622692   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
26632693   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
26822712   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
26832713   ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
26842714
2685   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2715   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
26862716   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
26872717   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
26882718
2689   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2719   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
26902720   /* 32x32 Tile Data is put here for easier Decoding */
26912721
2692   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2722   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
26932723   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
26942724   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
26952725   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
27492779   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
27502780   ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
27512781
2752   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2782   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
27532783   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
27542784   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
27552785
2756   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2786   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
27572787   /* 32x32 Tile Data is put here for easier Decoding */
27582788
2759   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2789   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
27602790   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
27612791   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
27622792   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
27812811   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
27822812   ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000,  CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
27832813
2784   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2814   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
27852815   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
27862816   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
27872817
2788   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2818   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
27892819   /* 32x32 Tile Data is put here for easier Decoding */
27902820
27912821   /* all roms below need checking to see if they're the same on this board */
2792   ROM_REGION( 0x1e00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2822   ROM_REGION( 0x1e00000, "gfx3", 0 ) /* Sprite Colour Data */
27932823   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
27942824   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
27952825   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
28162846   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
28172847   ROM_LOAD( "photoy2k_v100_china.asic", 0x000000, 0x04000,  CRC(6dd7f257) SHA1(1984f98a282d8b3264674f231c3b7def1757cf72) )
28182848
2819   ROM_REGION( 0x480000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2849   ROM_REGION( 0x480000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
28202850   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
28212851   ROM_LOAD( "t0700.rom",    0x400000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) )
28222852
2823   ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2853   ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
28242854   /* 32x32 Tile Data is put here for easier Decoding */
28252855
28262856   /* all roms below need checking to see if they're the same on this board */
2827   ROM_REGION( 0x1080000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2857   ROM_REGION( 0x1080000, "gfx3", 0 ) /* Sprite Colour Data */
28282858   ROM_LOAD( "a0700.l",    0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
28292859   ROM_LOAD( "a0700.h",    0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
28302860   ROM_LOAD( "a0701.l",    0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
28842914   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
28852915   ROM_LOAD( "photoy2k_v100_china.asic", 0x000000, 0x04000,  CRC(6dd7f257) SHA1(1984f98a282d8b3264674f231c3b7def1757cf72) )
28862916
2887   ROM_REGION( 0x480000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
2917   ROM_REGION( 0x480000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
28882918   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
28892919   ROM_LOAD( "t0700.rom",    0x400000, 0x080000, CRC(93943b4d) SHA1(3b439903853727d45d62c781af6073024eb3c5a3) )
28902920
2891   ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
2921   ROM_REGION( 0x480000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
28922922   /* 32x32 Tile Data is put here for easier Decoding */
28932923
28942924   /* all roms below need checking to see if they're the same on this board */
2895   ROM_REGION( 0x1080000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
2925   ROM_REGION( 0x1080000, "gfx3", 0 ) /* Sprite Colour Data */
28962926   ROM_LOAD( "a0700.l",    0x0000000, 0x0400000, CRC(26a9ae9c) SHA1(c977c89db6fdf47ee260ff687b80375caeab975c) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
28972927   ROM_LOAD( "a0700.h",    0x0400000, 0x0400000, CRC(79bc1fc1) SHA1(a09472a9b75704c1d31ab828f92c2a5007b2b4ed) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
28982928   ROM_LOAD( "a0701.l",    0x0800000, 0x0400000, CRC(23607f81) SHA1(8b6dbcdce9b131370693847ed9771aa04b62711c) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
29933023   ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */
29943024   ROM_LOAD16_WORD_SWAP( "kb_u2_v104.u2", 0x000000, 0x010000,  CRC(c970f6d5) SHA1(399fc6f80262784c566363c847dc3fdc4fb37494) )
29953025
2996   ROM_REGION( 0x800000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3026   ROM_REGION( 0x800000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
29973027   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
29983028   ROM_LOAD( "t0300.u14",    0x400000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) )
29993029
3000   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3030   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
30013031   /* 32x32 Tile Data is put here for easier Decoding */
30023032
3003   ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3033   ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */
30043034   ROM_LOAD( "a0300.u9",   0x0000000, 0x0400000,  CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) )
30053035   ROM_LOAD( "a0301.u10",  0x0400000, 0x0400000,  CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) )
30063036   ROM_LOAD( "a0303.u11",  0x0800000, 0x0400000,  CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) )
r4470r4471
30343064   ROM_REGION( 0x010000, "user1", 0 ) /* Protection Data */
30353065   ROM_LOAD16_WORD_SWAP( "kb_u2.rom", 0x000000, 0x010000,  CRC(de3eae63) SHA1(03af767ef764055bda528b5cc6a24b9e1218cca8) )
30363066
3037   ROM_REGION( 0x800000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3067   ROM_REGION( 0x800000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
30383068   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
30393069   ROM_LOAD( "t0300.u14",    0x400000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) )
30403070
3041   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3071   ROM_REGION( 0x800000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
30423072   /* 32x32 Tile Data is put here for easier Decoding */
30433073
3044   ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3074   ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */
30453075   ROM_LOAD( "a0300.u9",   0x0000000, 0x0400000,  CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) )
30463076   ROM_LOAD( "a0301.u10",  0x0400000, 0x0400000,  CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) )
30473077   ROM_LOAD( "a0303.u11",  0x0800000, 0x0400000,  CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) )
r4470r4471
31253155   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
31263156   ROM_LOAD( "puzlstar_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
31273157
3128   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3158   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
31293159   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
31303160   ROM_LOAD( "t0800.u5",    0x400000, 0x200000, CRC(f9d84e59) SHA1(80ec77025ac5bf355b1a60f2a678dd4c56071f6b) )
31313161
3132   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3162   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
31333163   /* 32x32 Tile Data is put here for easier Decoding */
31343164
3135   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3165   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
31363166   ROM_LOAD( "a0800.u1",    0x0000000, 0x0400000, CRC(e1e6ec40) SHA1(390432431f144ef63424a426582b311765a61771) )
31373167
31383168   ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
r4470r4471
32173247   // clearly not for this revision
32183248   ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
32193249
3220   ROM_REGION( 0xc00000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3250   ROM_REGION( 0xc00000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
32213251   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
32223252   ROM_LOAD( "t0500.rom",    0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) )
32233253   ROM_LOAD( "t0501.rom",    0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) )
32243254
3225   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3255   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
32263256   /* 32x32 Tile Data is put here for easier Decoding */
32273257
3228   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3258   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
32293259   ROM_LOAD( "a0500.rom",    0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) )
32303260   ROM_LOAD( "a0501.rom",    0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) )
32313261   ROM_LOAD( "a0502.rom",    0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) )
r4470r4471
32643294   ROM_REGION( 0x010000, "user1", 0 ) /* ASIC25? Protection Data */
32653295   ROM_LOAD( "kd-u6.512", 0x000000, 0x010000,  CRC(e7613dda) SHA1(0d7c043b90e2f9a36a45066f22e3e305dc716676) )
32663296
3267   ROM_REGION( 0xc00000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3297   ROM_REGION( 0xc00000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
32683298   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
32693299   ROM_LOAD( "t0500.rom",    0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) )
32703300   ROM_LOAD( "t0501.rom",    0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) )
32713301
3272   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3302   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
32733303   /* 32x32 Tile Data is put here for easier Decoding */
32743304
3275   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3305   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
32763306   ROM_LOAD( "a0500.rom",    0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) )
32773307   ROM_LOAD( "a0501.rom",    0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) )
32783308   ROM_LOAD( "a0502.rom",    0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) )
r4470r4471
33083338   // used to simulate encrypted DMA protection device for now ..
33093339   ROM_LOAD( "ram_dump", 0x000000, 0x04000, CRC(280cfb4e) SHA1(cd2bdcaa21347952c2bf38b105a204d327fde39e) )
33103340
3311   ROM_REGION( 0xc00000, "gfx1",  ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3341   ROM_REGION( 0xc00000, "gfx1",  0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
33123342   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
33133343   ROM_LOAD( "t0500.rom",    0x400000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) )
33143344   ROM_LOAD( "t0501.rom",    0x800000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) )
33153345
3316   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3346   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
33173347   /* 32x32 Tile Data is put here for easier Decoding */
33183348
3319   ROM_REGION( 0x1c00000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
3349   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
33203350   ROM_LOAD( "a0500.rom",    0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) )
33213351   ROM_LOAD( "a0501.rom",    0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) )
33223352   ROM_LOAD( "a0502.rom",    0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) )
r4470r4471
33493379   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
33503380   ROM_LOAD( "igs_u19.rom", 0x000000, 0x200000,   CRC(edd59922) SHA1(09b14f20f685944a93292c83e5830849aade42c9) )
33513381
3352   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3382   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
33533383   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
33543384   ROM_LOAD( "t1200.rom",    0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
33553385
3356   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3386   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
33573387   /* 32x32 Tile Data is put here for easier Decoding */
33583388
33593389   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
33853415   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
33863416   ROM_LOAD( "u19.102", 0x000000, 0x200000,   CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) )
33873417
3388   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3418   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
33893419   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
33903420   ROM_LOAD( "t1200.rom",    0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
33913421
3392   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3422   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
33933423   /* 32x32 Tile Data is put here for easier Decoding */
33943424
33953425   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
34213451   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
34223452   ROM_LOAD( "v200-16.rom", 0x000000, 0x200000,  CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
34233453
3424   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3454   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
34253455   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
34263456   ROM_LOAD( "t1200.rom",    0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
34273457
3428   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3458   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
34293459   /* 32x32 Tile Data is put here for easier Decoding */
34303460
34313461   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
34573487   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
34583488   ROM_LOAD( "v200-16.rom", 0x000000, 0x200000,  CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
34593489
3460   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3490   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
34613491   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
34623492   ROM_LOAD( "t1200.rom",    0x400000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
34633493
3464   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3494   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
34653495   /* 32x32 Tile Data is put here for easier Decoding */
34663496
34673497   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
35083538   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
35093539   ROM_LOAD( "v100.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) )
35103540
3511   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3541   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
35123542   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
35133543   ROM_LOAD( "t1300.u21",    0x400000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) )
35143544
3515   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3545   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
35163546   /* 32x32 Tile Data is put here for easier Decoding */
35173547
35183548   ROM_REGION( 0x1000000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
35403570   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
35413571   ROM_LOAD( "v100.u23", 0x000000, 0x20000, CRC(06c3dd29) SHA1(20c9479f158467fc2037dcf162b6c6be18c91d46) )
35423572
3543   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3573   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
35443574   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
35453575   ROM_LOAD( "t1300.u21",    0x400000, 0x800000, CRC(e748f0cb) SHA1(5843bee3a17c33648ce904af2b98c6a90aff7393) )
35463576
3547   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3577   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
35483578   /* 32x32 Tile Data is put here for easier Decoding */
35493579
35503580   ROM_REGION( 0x1000000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
36273657   ROM_REGION32_LE( 0x4000000, "user1", ROMREGION_ERASEFF )
36283658   /* not on this PCB */
36293659
3630   ROM_REGION( 0x600000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3660   ROM_REGION( 0x600000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
36313661   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
36323662   ROM_LOAD( "t0900.u9",    0x400000, 0x200000, CRC(70615611) SHA1(a46d4aa71396947b427f9ba4ba0e636876c09d6b) )
36333663
3634   ROM_REGION( 0x600000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3664   ROM_REGION( 0x600000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
36353665   /* 32x32 Tile Data is put here for easier Decoding */
36363666
36373667   ROM_REGION( 0x400000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
37183748   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
37193749   ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000,  CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) )
37203750
3721   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3751   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
37223752   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
37233753   ROM_LOAD( "t1000.u3",    0x400000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) )
37243754
3725   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3755   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
37263756   /* 32x32 Tile Data is put here for easier Decoding */
37273757
37283758   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
37553785   ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
37563786   ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000,  CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) )
37573787
3758   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3788   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
37593789   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
37603790   ROM_LOAD( "t1000.u3",    0x400000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) )
37613791
3762   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3792   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
37633793   /* 32x32 Tile Data is put here for easier Decoding */
37643794
37653795   ROM_REGION( 0x2800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
38423872   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
38433873   ROM_LOAD( "v101_32m.u26", 0x000000, 0x400000,  CRC(93965281) SHA1(89da198aaa7ca759cb96b5f18859a477e55fd590) )
38443874
3845   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3875   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
38463876   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
38473877   ROM_LOAD( "t04501.u29",    0x400000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) )
38483878
3849   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3879   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
38503880   /* 32x32 Tile Data is put here for easier Decoding */
38513881
38523882   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
38763906   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
38773907   ROM_LOAD( "v105_32m.u26", 0x000000, 0x400000,  CRC(d200ee63) SHA1(3128c27c5f5a4361d31e7b4bb006de631b3a228c) )
38783908
3879   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3909   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
38803910   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
38813911   ROM_LOAD( "t04501.u29",    0x400000, 0x800000, CRC(900eaaac) SHA1(4033cb7b28fcadb92d5af3ea7fdd1c22747618fd) )
38823912
3883   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3913   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
38843914   /* 32x32 Tile Data is put here for easier Decoding */
38853915
38863916   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
39003930ROM_START( theglad )
39013931   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39023932   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
3903//  ROM_LOAD16_WORD_SWAP( "u6.rom",    0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) )
3904   ROM_LOAD16_WORD_SWAP( "sjfy_v101.u6", 0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) )
3933   ROM_LOAD16_WORD_SWAP( "u6.rom",       0x100000, 0x080000, CRC(14c85212) SHA1(8d2489708e176a2c460498a13173be01f645b79e) )
39053934
39063935   /* CPU2 = Z80, romless, code uploaded by 68k */
39073936
39083937   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3909   ROM_LOAD( "sjfy_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3938   ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
39103939
39113940   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
3912//  ROM_LOAD( "u2.rom", 0x000000, 0x200000,  CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) )
3913   ROM_LOAD( "sjfy_v107.u26", 0x000000, 0x200000,  CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) )
3941   ROM_LOAD( "u2.rom", 0x000000, 0x200000,  CRC(c7bcf2ae) SHA1(10bc012c83987f594d5375a51bc4be2e17568a81) )
39143942
3915   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3943   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
39163944   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
39173945   ROM_LOAD( "t04601.u33",   0x400000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) )
39183946
3919   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3947   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
39203948   /* 32x32 Tile Data is put here for easier Decoding */
39213949
39223950   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
r4470r4471
39333961   ROM_LOAD( "w04601.u1",    0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) )
39343962ROM_END
39353963
3936ROM_START( oldss )
3964ROM_START( theglada )
39373965   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39383966   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
3967   ROM_LOAD16_WORD_SWAP( "v101.u6",      0x100000, 0x080000, CRC(f799e866) SHA1(dccc3c903357c40c3cf85ac0ae8fc12fb0f853a6) )
3968
3969   /* CPU2 = Z80, romless, code uploaded by 68k */
3970
3971   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3972   ROM_LOAD( "theglad_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
3973
3974   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
3975   ROM_LOAD( "v107.u26", 0x000000, 0x200000,  CRC(f7c61357) SHA1(52d31c464dfc83c5371b078cb6b73c0d0e0d57e3) )
3976
3977   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
3978   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
3979   ROM_LOAD( "t04601.u33",   0x400000, 0x800000, CRC(e5dab371) SHA1(2e3c93958eb0326b6b84b95c2168626f26bbac76) )
3980
3981   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
3982   /* 32x32 Tile Data is put here for easier Decoding */
3983
3984   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
3985   ROM_LOAD( "a04601.u2",    0x0000000, 0x0800000,  CRC(d9b2e004) SHA1(8e1882b800fe9f12d7d49303e7417ba5b6f8ef85) )
3986   ROM_LOAD( "a04602.u4",    0x0800000, 0x0800000,  CRC(14f22308) SHA1(7fad54704e8c97eab723f53dfb50fb3e7bb606d2) )
3987   ROM_LOAD( "a04603.u6",    0x1000000, 0x0800000,  CRC(8f621e17) SHA1(b0f87f378e0115d0c95017ca0f1b0d508827a7c6) )
3988
3989   ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
3990   ROM_LOAD( "b04601.u11",   0x0000000, 0x0800000, CRC(ee72bccf) SHA1(73c25fe659f6c903447066e4ef83d2f580449d76) )
3991   ROM_LOAD( "b04602.u12",   0x0800000, 0x0400000, CRC(7dba9c38) SHA1(a03d509274e8f6a500a7ebe2da5aab8bed4e7f2f) )
3992
3993   ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
3994   ROM_LOAD( "pgm_m01s.rom", 0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS)
3995   ROM_LOAD( "w04601.u1",    0x400000, 0x800000, CRC(5f15ddb3) SHA1(c38dcef8e06802a84e42a7fc9fa505475fc3ac65) )
3996ROM_END
3997
3998ROM_START( oldsplus )
3999   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
4000   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
39394001   ROM_LOAD16_WORD_SWAP( "p05301.rom",   0x100000, 0x400000, CRC(923f7246) SHA1(818ade79e9724f5a2b0cc5a647ae5d4ee0374799) )
39404002
39414003   /* CPU2 = Z80, romless, code uploaded by 68k */
39424004
39434005   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3944   ROM_LOAD( "oldss_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4006   ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
39454007
3946   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4008   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
39474009   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
39484010   ROM_LOAD( "t05301.rom",   0x400000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) )
39494011
3950   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
4012   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
39514013   /* 32x32 Tile Data is put here for easier Decoding */
39524014
3953   /* all roms below need checking to see if they're the same on this board */
3954   ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
4015   ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */
39554016   ROM_LOAD( "a05301.rom",   0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
39564017   ROM_LOAD( "a05302.rom",   0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
39574018   ROM_LOAD( "a05303.rom",   0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
39664027   ROM_LOAD( "m05301.rom",   0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) )
39674028ROM_END
39684029
3969ROM_START( kovh )
4030ROM_START( kovshp )
39704031   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
39714032   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
39724033   ROM_LOAD16_WORD_SWAP( "p0600h.rom",   0x100000, 0x400000, CRC(e251e8e4) SHA1(af5b7c81632a39e1450d932951bed634c76b84e8) )
r4470r4471
39744035   /* CPU2 = Z80, romless, code uploaded by 68k */
39754036
39764037   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
3977   ROM_LOAD( "kovh_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
4038   ROM_LOAD( "kovshp_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
39784039
3979   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4040   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
39804041   ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
39814042   ROM_LOAD( "t0600.rom",    0x400000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
39824043
3983   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
4044   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
39844045   /* 32x32 Tile Data is put here for easier Decoding */
39854046
3986   /* all roms below need checking to see if they're the same on this board */
3987   ROM_REGION( 0x2000000, "gfx3", ROMREGION_DISPOSE ) /* Sprite Colour Data */
4047   ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */
39884048   ROM_LOAD( "a0600.rom",    0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
39894049   ROM_LOAD( "a0601.rom",    0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
39904050   ROM_LOAD( "a0602.rom",    0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
r4470r4471
40024062ROM_START( killbldp )
40034063   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
40044064   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
4005   ROM_LOAD16_WORD_SWAP( "kbex_v300x.u6",0x100000, 0x080000, CRC(b7fb8ec9) )
4065   ROM_LOAD16_WORD_SWAP( "v300x.u6",     0x100000, 0x080000, CRC(b7fb8ec9) SHA1(e71b2d74269a82c7155b9818821156e128b68b28) )
40064066
40074067   /* CPU2 = Z80, romless, code uploaded by 68k */
40084068
40094069   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4010   ROM_LOAD( "kbex_027a.rom", 0x000000, 0x04000, NO_DUMP )
4070   /* the first ~0x200 bytes of this are 'execute only' and can't be read directly, even when running code from internal/external ARM romspace */
4071   ROM_LOAD( "killbldp_igs027a.bin", 0x000000, 0x04000, BAD_DUMP CRC(9a73bf7d) SHA1(2ce1311b01e1124ad00af172f0670141bcb7a030) )
40114072
40124073   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
4013   ROM_LOAD( "kbex_v300x.u26", 0x000000, 0x200000,  CRC(144388c8) )
4074   ROM_LOAD( "v300x.u26", 0x000000, 0x200000,  CRC(144388c8) SHA1(d7469df077c1a674129f18210584ba4d05a61888) )
40144075
4015   ROM_REGION( 0xC00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4076   ROM_REGION( 0x800000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
40164077   ROM_LOAD( "pgm_t01s.rom",  0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
4017   ROM_LOAD( "t05701w032.bin",0x400000, 0x800000, CRC(bb8cc6c9) )
4078   ROM_LOAD( "t05701w032.bin",0x400000, 0x400000, CRC(567c714f) SHA1(b25b20e1ec9f077d6f7b9d41723a68d0d461bef2) )
40184079
4019   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
4080   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
40204081   /* 32x32 Tile Data is put here for easier Decoding */
40214082
4022   ROM_REGION( 0x2000000, "gfx3", 0 ) /* Sprite Colour Data */
4023   ROM_LOAD( "a05701w064.bin",   0x0000000, 0x0800000, CRC(8c0c992c) )
4024   ROM_LOAD( "a05702w064.bin",   0x0800000, 0x0800000, CRC(7e5b0f27) )
4025   ROM_LOAD( "a05703w064.bin",   0x1000000, 0x0800000, CRC(accbdb44) )
4083   ROM_REGION( 0x1800000, "gfx3", 0 ) /* Sprite Colour Data */
4084   ROM_LOAD( "a05701w064.bin",   0x0000000, 0x0800000, CRC(8c0c992c) SHA1(28391e50ca4400060676f1524bd49ede373292da) )
4085   ROM_LOAD( "a05702w064.bin",   0x0800000, 0x0800000, CRC(7e5b0f27) SHA1(9e8d69f34c30216925fcb7af87f8b37f703317e7) )
4086   ROM_LOAD( "a05703w064.bin",   0x1000000, 0x0800000, CRC(accbdb44) SHA1(d59b2452c7a5b4e666473dc973b73a0f2b4edc13) )
40264087
40274088   ROM_REGION( 0x1000000, "gfx4", 0 ) /* Sprite Masks + Colour Indexes */
4028   ROM_LOAD( "b05701w064.bin",   0x0000000, 0x0800000, CRC(a20cdcef) )
4029   ROM_LOAD( "b05702w016.bin",   0x0800000, 0x0800000, CRC(3447be95) )
4089   ROM_LOAD( "b05701w064.bin",   0x0000000, 0x0800000, CRC(a20cdcef) SHA1(029a49971adf1e72ab556a207172bdfbd0b86b03) )
4090   ROM_LOAD( "b05702w016.bin",   0x0800000, 0x0200000, CRC(fe7457df) SHA1(d66b1b31102b0210f9faf40e1473cd1511ccaf1f) )
40304091
4031   ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
4092   ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
40324093   ROM_LOAD( "pgm_m01s.rom",     0x000000, 0x200000, CRC(45ae7159) SHA1(d3ed3ff3464557fd0df6b069b2e431528b0ebfa8) ) // (BIOS)
4033   ROM_LOAD( "w05701b032.bin",   0x400000, 0x800000, CRC(4f139b7a) )
4094   ROM_LOAD( "w05701b032.bin",   0x400000, 0x400000, CRC(2d3ae593) SHA1(b9c1d2994be95ba974bc134a3bf115bc9c9c9c16) )
40344095ROM_END
40354096
40364097ROM_START( svg )
40374098   ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
40384099   ROM_LOAD16_WORD_SWAP( "pgm_p01s.rom", 0x000000, 0x020000, CRC(e42b166e) SHA1(2a9df9ec746b14b74fae48b1a438da14973702ea) )  // (BIOS)
4039   ROM_LOAD16_WORD_SWAP( "svg.u30.bin",  0x100000, 0x080000, CRC(34c18f3f) SHA1(42d1edd0dcfaa5e44861c6a1d4cb24f51ba23de8) )
4100   ROM_LOAD16_WORD_SWAP( "u30.bin",      0x100000, 0x080000, CRC(34c18f3f) SHA1(42d1edd0dcfaa5e44861c6a1d4cb24f51ba23de8) )
40404101
40414102   /* CPU2 = Z80, romless, code uploaded by 68k */
40424103
40434104   ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
4044   ROM_LOAD( "svg_027a.rom", 0x000000, 0x04000, NO_DUMP )
4105   ROM_LOAD( "svg_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
40454106
40464107   ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
4047   ROM_LOAD( "svg.u26.bin", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) )
4048   ROM_LOAD( "svg.u29.bin", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) )
4108   ROM_LOAD( "u26.bin", 0x000000, 0x400000, CRC(46826ec8) SHA1(ad1daf6f615fb8d748ce7f98f19dd3bf22f79fba) )
4109   ROM_LOAD( "u29.bin", 0x400000, 0x400000, CRC(fa5f3901) SHA1(8ab7c6763df4f752b50ed2197063f58046b32ddb) )
40494110
4050   ROM_REGION( 0xc00000, "gfx1", ROMREGION_DISPOSE ) /* 8x8 Text Tiles + 32x32 BG Tiles */
4111   ROM_REGION( 0xc00000, "gfx1", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
40514112   ROM_LOAD( "pgm_t01s.rom",  0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) ) // (BIOS)
40524113   ROM_LOAD( "t05601w016.bin",0x400000, 0x200000, CRC(03e110dc) SHA1(41c8f286e9303b24ba6235b341371c298226fb6a) )
40534114
4054   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_DISPOSE | ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
4115   ROM_REGION( 0xc00000/5*8, "gfx2", ROMREGION_ERASEFF ) /* Region for 32x32 BG Tiles */
40554116   /* 32x32 Tile Data is put here for easier Decoding */
40564117
4057   ROM_REGION( 0x1C00000, "gfx3", 0 ) /* Sprite Colour Data */
4118   ROM_REGION( 0x1c00000, "gfx3", 0 ) /* Sprite Colour Data */
40584119   ROM_LOAD( "a05601w064.bin",  0x0000000, 0x0800000, CRC(ea6453e4) SHA1(b5c82edafa8008ad59b5f2219511947d078d446e) )
40594120   ROM_LOAD( "a05602w064.bin",  0x0800000, 0x0800000, CRC(6d00621b) SHA1(55a4bc357e14b975b0234a9cd49e2224f509dad9) )
40604121   ROM_LOAD( "a05603w064.bin",  0x1000000, 0x0800000, CRC(7b71c64f) SHA1(bec7c7edf0634cf8351a54abb867c56af08ad2c3) )
r4470r4471
40754136
40764137GAME( 1997, pgm,      0,          pgm, pgm,      pgm,        ROT0,   "IGS", "PGM (Polygame Master) System BIOS", GAME_IS_BIOS_ROOT )
40774138
4078GAME( 1997, orlegend, pgm,        pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND  )
4079GAME( 1997, orlegnde, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND  )
4080GAME( 1997, orlegndc, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND  )
4081GAME( 1997, orld111c, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND  )
4082GAME( 1997, orld105k, orlegend,   pgm, orld105k, orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Ji Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND  )
4139GAME( 1997, orlegend, pgm,        pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND  )
4140GAME( 1997, orlegnde, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND  )
4141GAME( 1997, orlegndc, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND  )
4142GAME( 1997, orld111c, orlegend,   pgm, pgm,      orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND  )
4143GAME( 1997, orld105k, orlegend,   pgm, orld105k, orlegend,   ROT0,   "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND  )
40834144GAME( 1997, drgw2c,   drgw2,    drgw2, pgm,      drgw2c,     ROT0,   "IGS", "Zhong Guo Long II (ver. 100C, China)", GAME_IMPERFECT_SOUND )
4084GAME( 1999, photoy2k, pgm,        kov, photoy2k, djlzz,      ROT0,   "IGS", "Photo Y2K", GAME_IMPERFECT_SOUND ) /* region provided by protection device */
4145GAME( 1999, photoy2k, pgm,        kov, photoy2k, djlzz,      ROT0,   "IGS", "Photo Y2K (ver. 104)", GAME_IMPERFECT_SOUND ) /* region provided by protection device */
40854146GAME( 1999, raf102j,  photoy2k,   kov, photoy2k, djlzz,      ROT0,   "IGS", "Real and Fake / Photo Y2K (ver. 102, Japanese Board)", GAME_IMPERFECT_SOUND ) /* region provided by protection device */
4086GAME( 1999, kovsh,    kov,        kov, sango,    kovsh,      ROT0,   "IGS", "Knights of Valour Superheroes / Sangoku Senki Superheroes (ver. 104)", GAME_IMPERFECT_SOUND )
4087GAME( 2000, kov2,     pgm,       kov2, sango,    kov2,       ROT0,   "IGS", "Knights of Valour 2 (ver. 100)", GAME_IMPERFECT_SOUND )
4088GAME( 2000, kov2106,  kov2,      kov2, sango,    kov2,       ROT0,   "IGS", "Knights of Valour 2 (ver. 106)", GAME_IMPERFECT_SOUND )
4147GAME( 1999, kovsh,    kov,        kov, sango,    kovsh,      ROT0,   "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104)", GAME_IMPERFECT_SOUND )
4148GAME( 2000, kov2,     pgm,       kov2, sango,    kov2,       ROT0,   "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100)", GAME_IMPERFECT_SOUND )
4149GAME( 2000, kov2106,  kov2,      kov2, sango,    kov2,       ROT0,   "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106)", GAME_IMPERFECT_SOUND )
40894150GAME( 2001, martmast, pgm,       kov2, sango,    martmast,   ROT0,   "IGS", "Martial Masters (ver. 102)", GAME_IMPERFECT_SOUND )
40904151GAME( 2001, martmasc, martmast,  kov2, sango,    martmast,   ROT0,   "IGS", "Martial Masters (ver. 101, Chinese Board)", GAME_IMPERFECT_SOUND )
40914152
40924153/* Playable but maybe imperfect protection emulation */
40934154GAME( 1997, drgw2,    pgm,       drgw2, pgm,     drgw2,      ROT0,   "IGS", "Dragon World II (ver. 110X, Export)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
40944155GAME( 1997, drgw2j,   drgw2,     drgw2, pgm,     drgw2j,     ROT0,   "IGS", "Chuugokuryuu II (ver. 100J, Japan)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4095GAME( 1998, killbldt, killbld, killbld, killbld, killbld,    ROT0,   "IGS", "The Killing Blade (Chinese Board)", GAME_IMPERFECT_SOUND ) // it's playable, but there are some things unclear about the protection
4096GAME( 1998, olds,     pgm,       olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4097GAME( 1998, olds100,  olds,      olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4098GAME( 1998, olds100a, olds,      olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Ji Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING  ) // grashes on some bosses, high score table etc.
4156GAME( 1998, killbldt, killbld, killbld, killbld, killbld,    ROT0,   "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND ) // it's playable, but there are some things unclear about the protection
4157GAME( 1998, olds,     pgm,       olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4158GAME( 1998, olds100,  olds,      olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4159GAME( 1998, olds100a, olds,      olds, olds,     olds,       ROT0,   "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING  ) // grashes on some bosses, high score table etc.
40994160
41004161/* not working */
4101GAME( 1998, drgw3,    pgm,        pgm, sango,    dw3,        ROT0,   "IGS", "Dragon World 3", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4102GAME( 1998, drgw3k,   drgw3,      pgm, sango,    dw3,        ROT0,   "IGS", "Dragon World 3 (Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4103GAME( 1998, killbld,  pgm,    killbld, killbld,  killbld,    ROT0,   "IGS", "The Killing Blade", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4162GAME( 1998, drgw3,    pgm,        pgm, sango,    dw3,        ROT0,   "IGS", "Dragon World 3 (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4163GAME( 1998, drgw3k,   drgw3,      pgm, sango,    dw3,        ROT0,   "IGS", "Dragon World 3 (ver. 106, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4164GAME( 1998, killbld,  pgm,    killbld, killbld,  killbld,    ROT0,   "IGS", "The Killing Blade (ver. 104)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
41044165GAME( 1999, kov,      pgm,        kov, sango,    kov,        ROT0,   "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
41054166GAME( 1999, kov115,   kov,        kov, sango,    kov,        ROT0,   "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
41064167GAME( 1999, kovj,     kov,        kov, sango,    kov,        ROT0,   "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
41074168GAME( 1999, kovplus,  kov,        kov, sango,    kov,        ROT0,   "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
41084169GAME( 1999, kovplusa, kov,        kov, sango,    kov,        ROT0,   "IGS", "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4109GAME( 1999, puzlstar, pgm,        kov, sango,    pstar,      ROT0,   "IGS", "Puzzle Star", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4110GAME( 2001, kov2p,    kov2,      kov2, sango,    kov2p,      ROT0,   "IGS", "Knights of Valour 2 Plus - Nine Dragons (ver. M204XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4111GAME( 2001, kov2p205, kov2,      kov2, sango,    kov2p,      ROT0,   "IGS", "Knights of Valour 2 Plus - Nine Dragons (ver. M205XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4112GAME( 2001, ddp2,     pgm,       kov2, ddp2,     ddp2,       ROT270, "IGS", "Bee Storm - DoDonPachi II (set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4113GAME( 2001, ddp2a,    pgm,       kov2, ddp2,     ddp2,       ROT270, "IGS", "Bee Storm - DoDonPachi II (set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4114GAME( 2001, puzzli2,  pgm,        svg, sango,    puzzli2,    ROT0,   "IGS", "Puzzli 2 Super", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4115GAME( 2001, theglad,  pgm,        svg, sango,    theglad,    ROT0,   "IGS", "The Gladiator", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4116GAME( 2002, dmnfrnt,  pgm,        svg, sango,    dmnfrnt,    ROT0,   "IGS", "Demon Front (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4117GAME( 2002, dmnfrnta, dmnfrnt,    svg, sango,    dmnfrnt,    ROT0,   "IGS", "Demon Front (ver. 105)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4118GAME( 2004, kovh,     kov,        kov, sango,    kovh,       ROT0,   "IGS", "Knights of Valour Hero (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4119GAME( 2004, oldss,    pgm,        kov, sango,    oldss,      ROT0,   "IGS", "Oriental Legend Super Super", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4120GAME( 2005, killbldp, pgm,        svg, sango,    killbldp,   ROT0,   "IGS", "The Killing Blade Ex / Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4121GAME( 2005, svg,      pgm,        svg, sango,    svg,        ROT0,   "IGS", "Spectral VS Generation", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4170GAME( 1999, puzlstar, pgm,        kov, sango,    pstar,      ROT0,   "IGS", "Puzzle Star (ver. 100MG)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4171GAME( 2001, kov2p,    kov2,      kov2, sango,    kov2p,      ROT0,   "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4172GAME( 2001, kov2p205, kov2,      kov2, sango,    kov2p,      ROT0,   "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4173GAME( 2001, ddp2,     pgm,       kov2, ddp2,     ddp2,       ROT270, "IGS", "Bee Storm - DoDonPachi II (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4174GAME( 2001, ddp2a,    ddp2,      kov2, ddp2,     ddp2,       ROT270, "IGS", "Bee Storm - DoDonPachi II (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4175GAME( 2001, puzzli2,  pgm,        kov, sango,    puzzli2,    ROT0,   "IGS", "Puzzli 2 Super (ver. 200)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
4176GAME( 2002, dmnfrnt,  pgm,        svg, sango,    dmnfrnt,    ROT0,   "IGS", "Demon Front (ver. 102)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4177GAME( 2002, dmnfrnta, dmnfrnt,    svg, sango,    dmnfrnt,    ROT0,   "IGS", "Demon Front (ver. 105)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4178GAME( 2003, theglad,  pgm,        svg, sango,    theglad,    ROT0,   "IGS", "The Gladiator (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4179GAME( 2003, theglada, theglad,    svg, sango,    theglad,    ROT0,   "IGS", "The Gladiator (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4180GAME( 2004, oldsplus, pgm,        kov, olds,     oldsplus,   ROT0,   "IGS", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4181GAME( 2004, kovshp,   kov,        kov, sango,    kovshp,     ROT0,   "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4182GAME( 2005, killbldp, pgm,        svg, sango,    killbldp,   ROT0,   "IGS", "The Killing Blade Plus (ver. 300)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
4183GAME( 2005, svg,      pgm,        svg, sango,    svg,        ROT0,   "IGS", "S.V.G. - Spectral vs Generation (ver. 200)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) /* need internal rom of IGS027A */
src/mame/drivers/darius.c
r4470r4471
491491   AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
492492   AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym1", ym2203_r)
493493   AM_RANGE(0xa000, 0xa001) AM_DEVREAD("ym2", ym2203_r)
494   AM_RANGE(0xb000, 0xb000) AM_READ(SMH_NOP)
494   AM_RANGE(0xb000, 0xb000) AM_READNOP
495495   AM_RANGE(0xb001, 0xb001) AM_READ(taitosound_slave_comm_r)
496496ADDRESS_MAP_END
497497
r4470r4471
518518ADDRESS_MAP_END
519519
520520static ADDRESS_MAP_START( darius_sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
521   AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_NOP)   /* writes rom whenever interrupt occurs - as no stack */
521   AM_RANGE(0x0000, 0xffff) AM_WRITENOP   /* writes rom whenever interrupt occurs - as no stack */
522522   /* yes, no RAM */
523523ADDRESS_MAP_END
524524
src/mame/drivers/beathead.c
r4470r4471
342342   AM_RANGE(0x41000700, 0x41000703) AM_WRITE(watchdog_reset32_w)
343343   AM_RANGE(0x42000000, 0x4201ffff) AM_RAM_WRITE(beathead_palette_w) AM_BASE(&paletteram32)
344344   AM_RANGE(0x43000000, 0x43000007) AM_READWRITE(beathead_hsync_ram_r, beathead_hsync_ram_w)
345   AM_RANGE(0x8df80000, 0x8df80003) AM_READ(SMH_NOP)   /* noisy x4 during scanline int */
345   AM_RANGE(0x8df80000, 0x8df80003) AM_READNOP   /* noisy x4 during scanline int */
346346   AM_RANGE(0x8f380000, 0x8f3fffff) AM_WRITE(beathead_vram_latch_w)
347347   AM_RANGE(0x8f900000, 0x8f97ffff) AM_WRITE(beathead_vram_transparent_w)
348348   AM_RANGE(0x8f980000, 0x8f9fffff) AM_RAM AM_BASE(&videoram32)
src/mame/drivers/sbasketb.c
r4470r4471
3939***************************************************************************/
4040
4141#include "driver.h"
42#include "trackfld.h"
4243#include "cpu/z80/z80.h"
4344#include "cpu/m6809/m6809.h"
4445#include "sound/dac.h"
4546#include "sound/sn76496.h"
4647#include "sound/vlm5030.h"
4748#include "machine/konami1.h"
49#include "konamipt.h"
4850
49
5051extern UINT8 *sbasketb_scroll;
5152extern UINT8 *sbasketb_palettebank;
5253extern UINT8 *sbasketb_spriteram_select;
r4470r4471
6061VIDEO_START( sbasketb );
6162VIDEO_UPDATE( sbasketb );
6263
63WRITE8_HANDLER( konami_SN76496_latch_w );
64WRITE8_DEVICE_HANDLER( konami_SN76496_w );
65WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
66READ8_HANDLER( hyperspt_sh_timer_r );
6764
68
6965static WRITE8_HANDLER( sbasketb_sh_irqtrigger_w )
7066{
7167   cpu_set_input_line_and_vector(space->machine->cpu[1],0,HOLD_LINE,0xff);
r4470r4471
7975
8076static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
8177   AM_RANGE(0x2000, 0x3bff) AM_READ(SMH_RAM)
82   AM_RANGE(0x3c10, 0x3c10) AM_READ(SMH_NOP)    /* ???? */
78   AM_RANGE(0x3c10, 0x3c10) AM_READNOP    /* ???? */
8379   AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM")
8480   AM_RANGE(0x3e01, 0x3e01) AM_READ_PORT("P1")
8581   AM_RANGE(0x3e02, 0x3e02) AM_READ_PORT("P2")
86   AM_RANGE(0x3e03, 0x3e03) AM_READ(SMH_NOP)
82   AM_RANGE(0x3e03, 0x3e03) AM_READNOP
8783   AM_RANGE(0x3e80, 0x3e80) AM_READ_PORT("DSW2")
8884   AM_RANGE(0x3f00, 0x3f00) AM_READ_PORT("DSW1")
8985   AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
r4470r4471
126122
127123static INPUT_PORTS_START( sbasketb )
128124   PORT_START("SYSTEM")
129   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
130   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
131   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
132   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
133   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
134   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
135   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
136   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
125   KONAMI8_SYSTEM_UNK
137126
138127   PORT_START("P1")
139   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
140   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
141   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
142   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
143   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
144   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
145   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
146   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
128   KONAMI8_MONO_B123_UNK
147129
148130   PORT_START("P2")
149   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
150   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
151   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
152   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
153   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
154   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
155   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3  ) PORT_COCKTAIL
156   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
131   KONAMI8_COCKTAIL_B123_UNK
157132
133   PORT_START("DSW1")
134   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( Free_Play ), SW1)
135
158136   PORT_START("DSW2")
159137   PORT_DIPNAME( 0x03, 0x00, DEF_STR( Game_Time ) )   PORT_DIPLOCATION( "SW2:1,2" )
160138   PORT_DIPSETTING(    0x03, "30" )
r4470r4471
178156   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION( "SW2:8" )
179157   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
180158   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
181
182   PORT_START("DSW1")
183   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION( "SW1:1,2,3,4" )
184   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
185   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
186   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
187   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
188   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
189   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
190   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
191   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
192   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
193   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
194   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
195   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
196   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
197   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
198   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
199   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
200   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION( "SW1:5,6,7,8" )
201   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
202   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
203   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
204   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
205   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
206   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
207   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
208   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
209   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
210   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
211   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
212   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
213   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
214   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
215   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
216   PORT_DIPSETTING(    0x00, "Invalid" )
217159INPUT_PORTS_END
218160
219161
src/mame/drivers/funkyjet.c
r4470r4471
120120   AM_RANGE(0x140000, 0x143fff) AM_WRITE(SMH_RAM)
121121   AM_RANGE(0x160000, 0x1607ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
122122   AM_RANGE(0x180000, 0x1807ff) AM_WRITE(deco16_146_funkyjet_prot_w) AM_BASE(&deco16_prot_ram)
123   AM_RANGE(0x184000, 0x184001) AM_WRITE(SMH_NOP)
124   AM_RANGE(0x188000, 0x188001) AM_WRITE(SMH_NOP)
123   AM_RANGE(0x184000, 0x184001) AM_WRITENOP
124   AM_RANGE(0x188000, 0x188001) AM_WRITENOP
125125   AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
126126   AM_RANGE(0x320000, 0x321fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
127127   AM_RANGE(0x322000, 0x323fff) AM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
r4470r4471
134134/* Physical memory map (21 bits) */
135135static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
136136   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
137   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
137   AM_RANGE(0x100000, 0x100001) AM_READNOP
138138   AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
139139   AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r)
140   AM_RANGE(0x130000, 0x130001) AM_READ(SMH_NOP) /* This board only has 1 oki chip */
140   AM_RANGE(0x130000, 0x130001) AM_READNOP /* This board only has 1 oki chip */
141141   AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
142142   AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8)
143143ADDRESS_MAP_END
144144
145145static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
146146   AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
147   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP) /* YM2203 - this board doesn't have one */
147   AM_RANGE(0x100000, 0x100001) AM_WRITENOP /* YM2203 - this board doesn't have one */
148148   AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
149149   AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w)
150   AM_RANGE(0x130000, 0x130001) AM_WRITE(SMH_NOP)
150   AM_RANGE(0x130000, 0x130001) AM_WRITENOP
151151   AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8)
152152   AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w)
153153   AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
src/mame/drivers/skyarmy.c
r4470r4471
174174        AM_RANGE(0x9800, 0x983F) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* Sprites */
175175        AM_RANGE(0x9840, 0x985F) AM_WRITE(skyarmy_scrollram_w) AM_BASE(&skyarmy_scrollram) /* Sprites */
176176        AM_RANGE(0xa004, 0xa004) AM_WRITE(nmi_enable_w) // ???
177        AM_RANGE(0xa005, 0xa005) AM_WRITE(SMH_NOP)
178        AM_RANGE(0xa006, 0xa006) AM_WRITE(SMH_NOP)
179        AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP)
177        AM_RANGE(0xa005, 0xa005) AM_WRITENOP
178        AM_RANGE(0xa006, 0xa006) AM_WRITENOP
179        AM_RANGE(0xa007, 0xa007) AM_WRITENOP
180180ADDRESS_MAP_END
181181
182182static INPUT_PORTS_START( skyarmy )
src/mame/drivers/ksayakyu.c
r4470r4471
113113   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1")
114114   AM_RANGE(0xa801, 0xa801) AM_READ_PORT("P2")
115115   AM_RANGE(0xa802, 0xa802) AM_READ_PORT("DSW")
116   AM_RANGE(0xa803, 0xa803) AM_READ(SMH_NOP) /* watchdog ? */
116   AM_RANGE(0xa803, 0xa803) AM_READNOP /* watchdog ? */
117117   AM_RANGE(0xa804, 0xa804) AM_WRITE(ksayakyu_videoctrl_w)
118118   AM_RANGE(0xa805, 0xa805) AM_WRITE(latch_w)
119119   AM_RANGE(0xa806, 0xa806) AM_READ(sound_status_r)
120   AM_RANGE(0xa807, 0xa807) AM_READ(SMH_NOP) /* watchdog ? */
120   AM_RANGE(0xa807, 0xa807) AM_READNOP /* watchdog ? */
121121   AM_RANGE(0xa808, 0xa808) AM_WRITE(bank_select_w)
122122   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE(ksayakyu_videoram_w) AM_BASE(&videoram)
123123   AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
r4470r4471
129129   AM_RANGE(0xa001, 0xa001) AM_DEVREAD("ay1", ay8910_r)
130130   AM_RANGE(0xa002, 0xa003) AM_DEVWRITE("ay1", ay8910_data_address_w)
131131   AM_RANGE(0xa006, 0xa006) AM_DEVWRITE("ay2", ay8910_data_address_w)
132   AM_RANGE(0xa008, 0xa008) AM_WRITE(SMH_NOP)
132   AM_RANGE(0xa008, 0xa008) AM_WRITENOP
133133   AM_RANGE(0xa00c, 0xa00c) AM_WRITE(tomaincpu_w)
134   AM_RANGE(0xa010, 0xa010) AM_WRITE(SMH_NOP)
134   AM_RANGE(0xa010, 0xa010) AM_WRITENOP
135135ADDRESS_MAP_END
136136
137137static INPUT_PORTS_START( ksayakyu )
src/mame/drivers/qix.c
r4470r4471
240240static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
241241   AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE(1)
242242   AM_RANGE(0x8400, 0x87ff) AM_RAM
243   AM_RANGE(0x8800, 0x8bff) AM_READ(SMH_NOP)   /* 6850 ACIA */
243   AM_RANGE(0x8800, 0x8bff) AM_READNOP   /* 6850 ACIA */
244244   AM_RANGE(0x8c00, 0x8c00) AM_MIRROR(0x3fe) AM_READWRITE(qix_video_firq_r, qix_video_firq_w)
245245   AM_RANGE(0x8c01, 0x8c01) AM_MIRROR(0x3fe) AM_READWRITE(qix_data_firq_ack_r, qix_data_firq_ack_w)
246246   AM_RANGE(0x9000, 0x93ff) AM_DEVREADWRITE("sndpia0", pia6821_r, pia6821_w)
r4470r4471
254254static ADDRESS_MAP_START( zoo_main_map, ADDRESS_SPACE_PROGRAM, 8 )
255255   AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE(1)
256256   AM_RANGE(0x0400, 0x07ff) AM_RAM
257   AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_NOP)   /* ACIA */
257   AM_RANGE(0x0800, 0x0bff) AM_READNOP   /* ACIA */
258258   AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x3fe) AM_READWRITE(qix_video_firq_r, qix_video_firq_w)
259259   AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x3fe) AM_READWRITE(qix_data_firq_ack_r, qix_data_firq_ack_w)
260260   AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("sndpia0", pia6821_r, pia6821_w)
src/mame/drivers/xexex.c
r4470r4471
7070#include "sound/k054539.h"
7171#include "sound/2151intf.h"
7272#include "sound/flt_vol.h"
73#include "konamipt.h"
7374
7475VIDEO_START( xexex );
7576VIDEO_UPDATE( xexex );
r4470r4471
406407
407408static INPUT_PORTS_START( xexex )
408409   PORT_START("SYSTEM")
409   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
410   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
411   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
412   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
413   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
414   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
415   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
416   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
410   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
411   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
412   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
413   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
414   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_SERVICE1 )
415   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SERVICE2 )
416   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
417   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
418   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
417419
420   PORT_START("P1")
421   KONAMI16_LSB(1, IPT_UNKNOWN, IPT_START1 )
422
423   PORT_START("P2")
424   KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2 )
425
418426   PORT_START("EEPROM")
419427   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
420428   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SPECIAL )   /* EEPROM ready (always 1) */
421429   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
422430   PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW )
423431   PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
424
425   PORT_START("P1")
426   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
427   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
428   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
429   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
430   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
431   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
432   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
433   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
434
435   PORT_START("P2")
436   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
437   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
438   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
439   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
440   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
441   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
442   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
443   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
444432INPUT_PORTS_END
445433
446434
src/mame/drivers/marinedt.c
r4470r4471
126126   AM_RANGE(0x0000, 0x37ff) AM_WRITE(SMH_ROM)
127127   AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
128128   AM_RANGE(0x4800, 0x4bff) AM_WRITE(tx_tileram_w) AM_BASE(&tx_tileram)
129   AM_RANGE(0x4c00, 0x4c00) AM_WRITE(SMH_NOP)   //?? maybe off by one error
129   AM_RANGE(0x4c00, 0x4c00) AM_WRITENOP   //?? maybe off by one error
130130ADDRESS_MAP_END
131131
132132static READ8_HANDLER( marinedt_port1_r )
src/mame/drivers/ironhors.c
r4470r4471
1212#include "cpu/m6809/m6809.h"
1313#include "sound/2203intf.h"
1414#include "sound/discrete.h"
15#include "konamipt.h"
1516
1617extern UINT8 *ironhors_scroll;
1718static UINT8 *ironhors_interrupt_enable;
r4470r4471
136137
137138
138139
139static INPUT_PORTS_START( ironhors )
140static INPUT_PORTS_START( dairesya )
140141   PORT_START("SYSTEM")
141   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
142   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
143   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
144   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
145   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
146   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
142   KONAMI8_SYSTEM_UNK
147143
148   /* note that button 3 for player 1 and 2 are exchanged */
149144   PORT_START("P1")
150   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
151   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
152   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
153   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
154   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
155   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
156   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
157   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
145   KONAMI8_MONO_4WAY_B123_UNK
158146
159147   PORT_START("P2")
160   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
161   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
162   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
163   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
164   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
165   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
166   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
167   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
148   KONAMI8_COCKTAIL_4WAY_B123_UNK
168149
169150   PORT_START("DSW1")
170151   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
190171   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
191172
192173   PORT_START("DSW2")
193   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
194   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
195   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
196   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
197   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
198   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
199   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
200   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
201   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
202   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
203   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
204   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
205   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
206   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
207   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
208   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
209   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
210   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
211   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
212   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
213   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
214   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
215   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
216   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
217   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
218   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
219   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
220   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
221   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
222   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
223   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
224   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
225   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
174   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
175   /* "No Coin B" = coins produce sound, but no effect on coin counter */
226176
227177   PORT_START("DSW3")
228178   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
r4470r4471
237187   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNUSED )
238188INPUT_PORTS_END
239189
240static INPUT_PORTS_START( dairesya )
241   PORT_INCLUDE( ironhors )
190static INPUT_PORTS_START( ironhors )
191   PORT_INCLUDE( dairesya )
242192
243   /* here button 3 for player 1 and 2 are wired as usual */
193   /* here button 3 for player 1 and 2 are exchanged */
244194   PORT_MODIFY("P1")
245   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
195   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
246196
247197   PORT_MODIFY("P2")
248   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
198   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
249199INPUT_PORTS_END
250200
251201
src/mame/drivers/battlex.c
r4470r4471
8989
9090   /* 0x30 looks like scroll, but can't be ? changes (increases or decreases)
9191        depending on the direction your ship is facing on lev 2. at least */
92   AM_RANGE(0x30, 0x30) AM_WRITE(SMH_NOP)
92   AM_RANGE(0x30, 0x30) AM_WRITENOP
9393
9494   AM_RANGE(0x32, 0x32) AM_WRITE(battlex_scroll_x_lsb_w)
9595   AM_RANGE(0x33, 0x33) AM_WRITE(battlex_scroll_x_msb_w)
src/mame/drivers/sliver.c
r4470r4471
400400
401401   AM_RANGE(0x100000, 0x100001) AM_WRITE(sliver_RAMDAC_offset_w)
402402   AM_RANGE(0x100002, 0x100003) AM_WRITE(sliver_RAMDAC_color_w)
403   AM_RANGE(0x100004, 0x100005) AM_WRITE(SMH_NOP)//RAMDAC
403   AM_RANGE(0x100004, 0x100005) AM_WRITENOP//RAMDAC
404404
405405   AM_RANGE(0x300002, 0x300003) AM_NOP // bit 0 tested, writes 0xe0 and 0xc0 - both r and w at the end of interrupt code
406406
src/mame/drivers/konamigq.c
r4470r4471
285285   AM_RANGE(0x300000, 0x300001) AM_WRITE(tms57002_data_word_w)
286286   AM_RANGE(0x400000, 0x40000f) AM_WRITE(sndcomm68k_w)
287287   AM_RANGE(0x500000, 0x500001) AM_WRITE(tms57002_control_word_w)
288   AM_RANGE(0x580000, 0x580001) AM_WRITE(SMH_NOP) /* ?? */
288   AM_RANGE(0x580000, 0x580001) AM_WRITENOP /* ?? */
289289ADDRESS_MAP_END
290290
291291static const k054539_interface k054539_config =
src/mame/drivers/epos.c
r4470r4471
339339   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW1:2")
340340   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
341341   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
342   PORT_DIPUNUSED_DIPLOC( 0x0004, 0x0004, "SW1:4" )
343   PORT_DIPUNUSED_DIPLOC( 0x0008, 0x0008, "SW1:5" )
344   PORT_DIPUNUSED_DIPLOC( 0x0010, 0x0010, "SW1:6" )
345   PORT_DIPUNUSED_DIPLOC( 0x0020, 0x0020, "SW1:7" )
342   PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW1:3" )
343   PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW1:4" )
344   PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" )
345   PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW1:6" )
346346   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:7")
347347   PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
348348   PORT_DIPSETTING(    0x00, DEF_STR( Cocktail ) )
src/mame/drivers/mrflea.c
r4470r4471
169169
170170static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
171171   ADDRESS_MAP_GLOBAL_MASK(0xff)
172   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* watchdog? */
172   AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog? */
173173   AM_RANGE(0x40, 0x40) AM_WRITE(mrflea_io_w)
174174   AM_RANGE(0x41, 0x41) AM_READ(mrflea_main_r)
175175   AM_RANGE(0x42, 0x42) AM_READ(mrflea_main_status_r)
176   AM_RANGE(0x43, 0x43) AM_WRITE(SMH_NOP) /* 0xa6,0x0d,0x05 */
176   AM_RANGE(0x43, 0x43) AM_WRITENOP /* 0xa6,0x0d,0x05 */
177177   AM_RANGE(0x60, 0x60) AM_WRITE(mrflea_gfx_bank_w)
178178ADDRESS_MAP_END
179179
r4470r4471
193193
194194static ADDRESS_MAP_START( inout_io_map, ADDRESS_SPACE_IO, 8 )
195195   ADDRESS_MAP_GLOBAL_MASK(0xff)
196   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* watchdog */
196   AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
197197   AM_RANGE(0x10, 0x10) AM_READWRITE(mrflea_interrupt_type_r, SMH_NOP) /* ? / irq ACK */
198   AM_RANGE(0x11, 0x11) AM_WRITE(SMH_NOP) /* 0x83,0x00,0xfc */
198   AM_RANGE(0x11, 0x11) AM_WRITENOP /* 0x83,0x00,0xfc */
199199   AM_RANGE(0x20, 0x20) AM_READ(mrflea_io_r)
200200   AM_RANGE(0x21, 0x21) AM_WRITE(mrflea_main_w)
201201   AM_RANGE(0x22, 0x22) AM_READ(mrflea_io_status_r)
202   AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP) /* 0xb4,0x09,0x05 */
202   AM_RANGE(0x23, 0x23) AM_WRITENOP /* 0xb4,0x09,0x05 */
203203   AM_RANGE(0x40, 0x40) AM_DEVREAD("ay1", ay8910_r)
204204   AM_RANGE(0x40, 0x41) AM_DEVWRITE("ay1", ay8910_data_address_w)
205205   AM_RANGE(0x42, 0x42) AM_READWRITE(mrflea_input1_r, mrflea_data1_w)
src/mame/drivers/cps3.c
r4470r4471
21472147   // video registers of some kind probably
21482148   AM_RANGE(0x040C0000, 0x040C0003) AM_READ(cps3_40C0000_r)//?? every frame
21492149   AM_RANGE(0x040C0004, 0x040C0007) AM_READ(cps3_40C0004_r)//AM_READ(cps3_40C0004_r) // warzard reads this!
2150//  AM_RANGE(0x040C0008, 0x040C000b) AM_WRITE(SMH_NOP)//??
2151    AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITE(SMH_NOP)/
2150//  AM_RANGE(0x040C0008, 0x040C000b) AM_WRITENOP//??
2151    AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITENOP/
21522152
21532153   AM_RANGE(0x040C0000, 0x040C001f) AM_WRITE(cps3_unk_vidregs_w)
21542154   AM_RANGE(0x040C0020, 0x040C002b) AM_WRITE(SMH_RAM) AM_BASE(&tilemap20_regs_base)
src/mame/drivers/mcatadv.c
r4470r4471
181181   AM_RANGE(0x200000, 0x200005) AM_READ(SMH_RAM)
182182   AM_RANGE(0x300000, 0x300005) AM_READ(SMH_RAM)
183183
184//  AM_RANGE(0x180018, 0x18001f) AM_READ(SMH_NOP) // ?
184//  AM_RANGE(0x180018, 0x18001f) AM_READNOP // ?
185185
186186   AM_RANGE(0x400000, 0x401fff) AM_READ(SMH_RAM) // Tilemap 0
187187   AM_RANGE(0x500000, 0x501fff) AM_READ(SMH_RAM) // Tilemap 1
src/mame/drivers/mjkjidai.c
r4470r4471
191191static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
192192   ADDRESS_MAP_GLOBAL_MASK(0xff)
193193   AM_RANGE(0x00, 0x00) AM_READ(keyboard_r)
194   AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP)   // ???
194   AM_RANGE(0x01, 0x01) AM_READNOP   // ???
195195   AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
196196   AM_RANGE(0x01, 0x02) AM_WRITE(keyboard_select_w)
197197   AM_RANGE(0x10, 0x10) AM_WRITE(mjkjidai_ctrl_w)   // rom bank, coin counter, flip screen etc
src/mame/drivers/jailbrek.c
r4470r4471
3535#define MASTER_CLOCK      XTAL_18_432MHz
3636#define VOICE_CLOCK         XTAL_3_579545MHz
3737
38
3938#include "driver.h"
4039#include "machine/konami1.h"
4140#include "cpu/m6809/m6809.h"
4241#include "sound/sn76496.h"
4342#include "sound/vlm5030.h"
43#include "konamipt.h"
4444
45
4645extern UINT8 *jailbrek_scroll_x;
4746extern UINT8 *jailbrek_scroll_dir;
4847
r4470r4471
116115
117116static INPUT_PORTS_START( jailbrek )
118117   PORT_START("SYSTEM")   /* $3300 */
119   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
120   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
121   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
122   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
123   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
118   KONAMI8_SYSTEM_10
124119   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
125120
126121   PORT_START("P1")      /* $3301 */
127   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
128   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
129   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
130   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
131   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // shoot
132   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // select
133   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
122   KONAMI8_B12_UNK(1)   // button1 = shoot, button2 = select
134123
135124   PORT_START("P2")      /* $3302 */
136   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
137   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
138   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
139   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
140   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
141   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
142   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
125   KONAMI8_B12_UNK(2)
143126
144127   PORT_START("DSW1")      /* $3303 */
145   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION( "SW1:4,3,2,1" )
146   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
147   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
148   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
149   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
150   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
151   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
152   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
153   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
154   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
155   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
156   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
157   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
158   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
159   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
160   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
161   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
162   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION( "SW1:8,7,6,5" )
163   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
164   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
165   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
166   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
167   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
168   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
169   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
170   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
171   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
172   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
173   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
174   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
175   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
176   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
177   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
178   PORT_DIPSETTING(    0x00, "Invalid" )
128   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW1)
129   /* "Invalid" = both coin slots disabled */
179130
180131   PORT_START("DSW2")      /* $3100 */
181132   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )       PORT_DIPLOCATION( "SW2:1,2" )
src/mame/drivers/mlanding.c
r4470r4471
121121   AM_RANGE(0x1d0000, 0x1d0001) AM_WRITENOP
122122   AM_RANGE(0x1d0002, 0x1d0003) AM_NOP //sound reset ??
123123
124   AM_RANGE(0x2d0000, 0x2d0001) AM_READ(SMH_NOP) AM_WRITE(taitosound_port16_lsb_w)
125   AM_RANGE(0x2d0002, 0x2d0003) AM_READ(taitosound_comm16_msb_r) AM_WRITE(taitosound_comm16_lsb_w)
124   AM_RANGE(0x2d0000, 0x2d0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
125   AM_RANGE(0x2d0002, 0x2d0003) AM_READ8(taitosound_comm_r, 0xff00) AM_WRITE8(taitosound_comm_w, 0x00ff)
126126
127127   AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)//AM_SHARE(2)
128128   AM_RANGE(0x280000, 0x2807ff) AM_RAM // is it shared with mecha ? tested around $940
src/mame/drivers/gaelco.c
r4470r4471
174174static ADDRESS_MAP_START( bigkarnk_writemem_snd, ADDRESS_SPACE_PROGRAM, 8 )
175175   AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)            /* RAM */
176176   AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("oki", okim6295_w)      /* OKI6295 */
177//  AM_RANGE(0x0900, 0x0900) AM_WRITE(SMH_NOP)             /* enable sound output? */
177//  AM_RANGE(0x0900, 0x0900) AM_WRITENOP             /* enable sound output? */
178178   AM_RANGE(0x0a00, 0x0a01) AM_DEVWRITE("ym", ym3812_w)   /* YM3812 */
179179   AM_RANGE(0x0c00, 0xffff) AM_WRITE(SMH_ROM)            /* ROM */
180180ADDRESS_MAP_END
src/mame/drivers/tankbust.c
r4470r4471
206206   AM_RANGE(0xe802, 0xe802) AM_READ_PORT("DSW")
207207   AM_RANGE(0xe801, 0xe802) AM_WRITE(tankbust_xscroll_w)
208208   AM_RANGE(0xe803, 0xe803) AM_READWRITE(some_changing_input, tankbust_soundlatch_w)   /*unknown. Game expects this to change so this is not player input */
209   AM_RANGE(0xe804, 0xe804) AM_WRITE(SMH_NOP)   /* watchdog ? ; written in long-lasting loops */
209   AM_RANGE(0xe804, 0xe804) AM_WRITENOP   /* watchdog ? ; written in long-lasting loops */
210210   AM_RANGE(0xf000, 0xf7ff) AM_RAM
211211   //AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory)   /* a bug in game code ? */
212212ADDRESS_MAP_END
r4470r4471
223223static ADDRESS_MAP_START( map_cpu2, ADDRESS_SPACE_PROGRAM, 8 )
224224   AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
225225   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
226   AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_NOP)   /* garbage, written in initialization loop */
226   AM_RANGE(0x2000, 0x3fff) AM_WRITENOP   /* garbage, written in initialization loop */
227227   //0x4000 and 0x4040-0x4045 seem to be used (referenced in the code)
228   AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_NOP)   /* garbage, written in initialization loop */
228   AM_RANGE(0x4000, 0x7fff) AM_WRITENOP   /* garbage, written in initialization loop */
229229   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
230230   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
231231ADDRESS_MAP_END
src/mame/drivers/wecleman.c
r4470r4471
550550   AM_RANGE(0x140000, 0x140001) AM_WRITE(wecleman_soundlatch_w)   // To sound CPU
551551   AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w)   // Selects accelerator / wheel / ..
552552   AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w)   // Main CPU controls the other CPUs
553   AM_RANGE(0x140006, 0x140007) AM_WRITE(SMH_NOP)   // Watchdog reset
553   AM_RANGE(0x140006, 0x140007) AM_WRITENOP   // Watchdog reset
554554   AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0")   // Coins + brake + gear
555555   AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1")   // ??
556556   AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSWA")   // DSW 2
557557   AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSWB")   // DSW 1
558558   AM_RANGE(0x140020, 0x140021) AM_WRITE(SMH_RAM)   // Paired with writes to $140003
559559   AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r)   // Accelerator or Wheel or ..
560   AM_RANGE(0x140030, 0x140031) AM_WRITE(SMH_NOP)   // toggles between 0 & 1 on hitting bumps and crashes (vibration?)
560   AM_RANGE(0x140030, 0x140031) AM_WRITENOP   // toggles between 0 & 1 on hitting bumps and crashes (vibration?)
561561ADDRESS_MAP_END
562562
563563
r4470r4471
612612   AM_RANGE(0x140000, 0x140001) AM_WRITE(hotchase_soundlatch_w)   // To sound CPU
613613   AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w)   // Selects accelerator / wheel /
614614   AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w)   // Main CPU controls the other CPUs
615   AM_RANGE(0x140006, 0x140007) AM_READ(SMH_NOP)   // Watchdog reset
615   AM_RANGE(0x140006, 0x140007) AM_READNOP   // Watchdog reset
616616   AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0")   // Coins + brake + gear
617617   AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1")   // ?? bit 4 from sound cpu
618618   AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSW2")   // DSW 2
619619   AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSW1")   // DSW 1
620620   AM_RANGE(0x140020, 0x140021) AM_READWRITE(selected_ip_r, SMH_NOP)   // Paired with writes to $140003
621   AM_RANGE(0x140022, 0x140023) AM_READ(SMH_NOP)   // ??
622   AM_RANGE(0x140030, 0x140031) AM_WRITE(SMH_NOP)   // signal to cabinet vibration motors?
621   AM_RANGE(0x140022, 0x140023) AM_READNOP   // ??
622   AM_RANGE(0x140030, 0x140031) AM_WRITENOP   // signal to cabinet vibration motors?
623623ADDRESS_MAP_END
624624
625625
r4470r4471
695695static ADDRESS_MAP_START( wecleman_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
696696   AM_RANGE(0x0000, 0x7fff) AM_ROM
697697   AM_RANGE(0x8000, 0x83ff) AM_RAM
698   AM_RANGE(0x8500, 0x8500) AM_WRITE(SMH_NOP)   // incresed with speed (global volume)?
698   AM_RANGE(0x8500, 0x8500) AM_WRITENOP   // incresed with speed (global volume)?
699699   AM_RANGE(0x9000, 0x9000) AM_READ(multiply_r)   // Protection
700700   AM_RANGE(0x9000, 0x9001) AM_WRITE(multiply_w)   // Protection
701   AM_RANGE(0x9006, 0x9006) AM_WRITE(SMH_NOP)   // ?
701   AM_RANGE(0x9006, 0x9006) AM_WRITENOP   // ?
702702   AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)   // From main CPU
703703   AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("konami", k007232_r, k007232_w)   // K007232 (Reading offset 5/b triggers the sample)
704704   AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
r4470r4471
791791   AM_RANGE(0x2000, 0x200d) AM_DEVREADWRITE("konami2", hotchase_k007232_r, hotchase_k007232_w)
792792   AM_RANGE(0x3000, 0x300d) AM_DEVREADWRITE("konami3", hotchase_k007232_r, hotchase_k007232_w)
793793   AM_RANGE(0x4000, 0x4007) AM_WRITE(hotchase_sound_control_w)   // Sound volume, banking, etc.
794   AM_RANGE(0x5000, 0x5000) AM_WRITE(SMH_NOP)   // ? (written with 0 on IRQ, 1 on FIRQ)
794   AM_RANGE(0x5000, 0x5000) AM_WRITENOP   // ? (written with 0 on IRQ, 1 on FIRQ)
795795   AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)   // From main CPU (Read on IRQ)
796   AM_RANGE(0x7000, 0x7000) AM_WRITE(SMH_NOP)   // Command acknowledge ?
796   AM_RANGE(0x7000, 0x7000) AM_WRITENOP   // Command acknowledge ?
797797   AM_RANGE(0x8000, 0xffff) AM_ROM
798798ADDRESS_MAP_END
799799
r4470r4471
803803***************************************************************************/
804804
805805static INPUT_PORTS_START( wecleman )
806   PORT_START("IN0")   /* IN0 - Controls and Coins - $140011.b */
806   PORT_START("IN0")   /* $140011.b */
807807   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
808808   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
809809   PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_HIGH )
r4470r4471
813813   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake")
814814   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
815815
816   PORT_START("IN1")   /* IN1 - Motor? - $140013.b */
816   PORT_START("IN1")   /* Motor? - $140013.b */
817817   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 )   // right sw
818818   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )   // left sw
819819   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 )   // thermo
820820   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   // from sound cpu ?
821821   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
822822
823   PORT_START("DSWA")   /* IN2 - DSW A (Coinage) - $140015.b */
823   PORT_START("DSWA")   /* $140015.b */
824824   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
825825   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
826826   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
r4470r4471
854854   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
855855   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
856856   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
857   PORT_DIPSETTING(    0x00, "No Coin B" )
858   /* "No Coin B" = coins produce sound, but no effect on coin counter */
857859
858   PORT_START("DSWB")   /* IN3 - DSW B (options) - $140017.b */
860   PORT_START("DSWB")   /* $140017.b */
859861   PORT_DIPNAME( 0x01, 0x01, "Speed Unit" )
860862   PORT_DIPSETTING(    0x01, "km/h" )
861863   PORT_DIPSETTING(    0x00, "mph" )
r4470r4471
880882   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
881883   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
882884
883   PORT_START("ACCEL")   /* IN4 - Accelerator - $140021.b (0) */
885   PORT_START("ACCEL")   /* Accelerator - $140021.b (0) */
884886   PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
885887
886   PORT_START("STEER")   /* IN5 - Steering Wheel - $140021.b (2) */
888   PORT_START("STEER")   /* Steering Wheel - $140021.b (2) */
887889   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
888890INPUT_PORTS_END
889891
r4470r4471
893895***************************************************************************/
894896
895897static INPUT_PORTS_START( hotchase )
896   PORT_START("IN0")   /* IN0 - Controls and Coins - $140011.b */
898   PORT_START("IN0")   /* $140011.b */
897899   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
898900   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
899901   PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
r4470r4471
903905   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Brake")
904906   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
905907
906   PORT_START("IN1")   /* IN1 - Motor? - $140013.b */
908   PORT_START("IN1")   /* Motor? - $140013.b */
907909   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 )   // right sw
908910   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE3 )   // left sw
909911   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE4 )   // thermo
910912   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )   // from sound cpu ?
911913   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNKNOWN )
912914
913   PORT_START("DSW2")   /* IN2 - DSW 2 (options) - $140015.b */
915   PORT_START("DSW2")   /* $140015.b */
914916   PORT_DIPNAME( 0x01, 0x01, "Speed Unit" )
915917   PORT_DIPSETTING(    0x01, "KM" )
916918   PORT_DIPSETTING(    0x00, "M.P.H." )
r4470r4471
936938   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
937939   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
938940
939   PORT_START("DSW1")   /* IN3 - DSW 1 (Coinage) - $140017.b */
941   PORT_START("DSW1")   /* $140017.b */
940942   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
941943   PORT_DIPSETTING(    0x02, DEF_STR( 5C_1C ) )
942944   PORT_DIPSETTING(    0x04, DEF_STR( 4C_1C ) )
r4470r4471
971973   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
972974   PORT_DIPSETTING(    0x00, "1 Coin/99 Credits" )
973975
974   PORT_START("ACCEL")   /* IN4 - Accelerator - $140021.b (0) */
976   PORT_START("ACCEL")   /* Accelerator - $140021.b (0) */
975977   PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
976978
977   PORT_START("STEER")   /* IN5 - Steering Wheel - $140021.b (2) */
979   PORT_START("STEER")   /* Steering Wheel - $140021.b (2) */
978980   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
979981INPUT_PORTS_END
980982
src/mame/drivers/crbaloon.c
r4470r4471
221221   AM_RANGE(0x02, 0x02) AM_MIRROR(0x0c) AM_MASK(0x0c) AM_READ(pc3259_r)
222222   AM_RANGE(0x03, 0x03) AM_MIRROR(0x0c) AM_READ_PORT("IN1")
223223
224   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)   /* not connected */
225   AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP) /* watchdog */
224   AM_RANGE(0x00, 0x00) AM_WRITENOP   /* not connected */
225   AM_RANGE(0x01, 0x01) AM_WRITENOP /* watchdog */
226226   AM_RANGE(0x02, 0x04) AM_WRITE(SMH_RAM) AM_BASE(&crbaloon_spriteram)
227227   AM_RANGE(0x05, 0x05) AM_DEVWRITE("discrete", crbaloon_audio_set_music_freq)
228228   AM_RANGE(0x06, 0x06) AM_WRITE(port_sound_w)
229229   AM_RANGE(0x07, 0x0b) AM_WRITE(pc3092_w) AM_BASE(&pc3092_data)
230   AM_RANGE(0x0c, 0x0c) AM_WRITE(SMH_NOP) /* MSK - to PC3259 */
231   AM_RANGE(0x0d, 0x0d) AM_WRITE(SMH_NOP) /* schematics has it in a box marked "NOT USE" */
232   AM_RANGE(0x0e, 0x0f) AM_WRITE(SMH_NOP)
230   AM_RANGE(0x0c, 0x0c) AM_WRITENOP /* MSK - to PC3259 */
231   AM_RANGE(0x0d, 0x0d) AM_WRITENOP /* schematics has it in a box marked "NOT USE" */
232   AM_RANGE(0x0e, 0x0f) AM_WRITENOP
233233ADDRESS_MAP_END
234234
235235
src/mame/drivers/pastelg.c
r4470r4471
6666
6767static ADDRESS_MAP_START( pastelg_io_map, ADDRESS_SPACE_IO, 8 )
6868   ADDRESS_MAP_GLOBAL_MASK(0xff)
69//  AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)
69//  AM_RANGE(0x00, 0x00) AM_WRITENOP
7070   AM_RANGE(0x00, 0x7f) AM_READ(nb1413m3_sndrom_r)
7171   AM_RANGE(0x81, 0x81) AM_DEVREAD("ay", ay8910_r)
7272   AM_RANGE(0x82, 0x83) AM_DEVWRITE("ay", ay8910_data_address_w)
r4470r4471
541541
542542
543543GAME( 1985, pastelg, 0, pastelg, pastelg, pastelg, ROT0, "Nichibutsu", "Pastel Gal (Japan 851224)", 0 )
544GAME( 1985, 3ds, 0, threeds, threeds, pastelg, ROT0, "Nihon Bussan", "Three Ds - Three Dealers Casino House", GAME_IMPERFECT_GRAPHICS )
545
544GAME( 1985, 3ds,     0, threeds, threeds, pastelg, ROT0, "Nichibutsu", "Three Ds - Three Dealers Casino House", GAME_IMPERFECT_GRAPHICS )
src/mame/drivers/funkybee.c
r4470r4471
102102   AM_RANGE(0x0000, 0x4fff) AM_READ(SMH_ROM)
103103   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
104104   AM_RANGE(0xa000, 0xdfff) AM_READ(SMH_RAM)
105   AM_RANGE(0xf000, 0xf000) AM_READ(SMH_NOP)   /* IRQ Ack */
105   AM_RANGE(0xf000, 0xf000) AM_READNOP   /* IRQ Ack */
106106   AM_RANGE(0xf800, 0xf800) AM_READ(funkybee_input_port_0_r)
107107   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
108108   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2")
src/mame/drivers/galastrm.c
r4470r4471
195195   AM_RANGE(0x200000, 0x21ffff) AM_WRITE(SMH_RAM) AM_BASE(&galastrm_ram)
196196   AM_RANGE(0x300000, 0x303fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
197197   AM_RANGE(0x400000, 0x400007) AM_WRITE(galastrm_input_w)   /* eerom etc. */
198   AM_RANGE(0x40fff0, 0x40fff3) AM_WRITE(SMH_NOP)
198   AM_RANGE(0x40fff0, 0x40fff3) AM_WRITENOP
199199   AM_RANGE(0x500000, 0x500007) AM_WRITE(galastrm_adstick_ctrl_w)
200200   AM_RANGE(0x600000, 0x6007ff) AM_WRITE(SMH_RAM) AM_BASE(&f3_shared_ram)
201201   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0480SCP_long_w)
src/mame/drivers/btoads.c
r4470r4471
198198   AM_RANGE(0x20000300, 0x2000037f) AM_READWRITE(btoads_paletteram_r, btoads_paletteram_w)
199199   AM_RANGE(0x20000380, 0x200003ff) AM_READWRITE(main_sound_r, main_sound_w)
200200   AM_RANGE(0x20000400, 0x2000047f) AM_WRITE(btoads_misc_control_w)
201   AM_RANGE(0x40000000, 0x4000000f) AM_WRITE(SMH_NOP)   /* watchdog? */
201   AM_RANGE(0x40000000, 0x4000000f) AM_WRITENOP   /* watchdog? */
202202   AM_RANGE(0x60000000, 0x6003ffff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
203203   AM_RANGE(0xa0000000, 0xa03fffff) AM_READWRITE(btoads_vram_fg_display_r, btoads_vram_fg_display_w) AM_BASE(&btoads_vram_fg0)
204204   AM_RANGE(0xa4000000, 0xa43fffff) AM_READWRITE(btoads_vram_fg_draw_r, btoads_vram_fg_draw_w) AM_BASE(&btoads_vram_fg1)
205205   AM_RANGE(0xa8000000, 0xa87fffff) AM_RAM AM_BASE(&btoads_vram_fg_data)
206   AM_RANGE(0xa8800000, 0xa8ffffff) AM_WRITE(SMH_NOP)
206   AM_RANGE(0xa8800000, 0xa8ffffff) AM_WRITENOP
207207   AM_RANGE(0xb0000000, 0xb03fffff) AM_READWRITE(btoads_vram_bg0_r, btoads_vram_bg0_w) AM_BASE(&btoads_vram_bg0)
208208   AM_RANGE(0xb4000000, 0xb43fffff) AM_READWRITE(btoads_vram_bg1_r, btoads_vram_bg1_w) AM_BASE(&btoads_vram_bg1)
209209   AM_RANGE(0xc0000000, 0xc00003ff) AM_READWRITE(tms34020_io_register_r, tms34020_io_register_w)
src/mame/drivers/tetrisp2.c
r4470r4471
389389
390390   AM_RANGE(0xb40000, 0xb4000b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_fg   )   // Foreground Scrolling
391391   AM_RANGE(0xb40010, 0xb4001b) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_scroll_bg   )   // Background Scrolling
392   AM_RANGE(0xb4003e, 0xb4003f) AM_WRITE(SMH_NOP)   // scr_size
392   AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP   // scr_size
393393
394394   AM_RANGE(0xb60000, 0xb6002f) AM_WRITE(SMH_RAM) AM_BASE(&tetrisp2_rotregs)   // Rotation Registers
395395
src/mame/drivers/lastduel.c
r4470r4471
6565
6666static ADDRESS_MAP_START( lastduel_writemem, ADDRESS_SPACE_PROGRAM, 16 )
6767   AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM)
68   AM_RANGE(0xfc0000, 0xfc0003) AM_WRITE(SMH_NOP) /* Written rarely */
68   AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
6969   AM_RANGE(0xfc0800, 0xfc0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
7070   AM_RANGE(0xfc4000, 0xfc4001) AM_WRITE(lastduel_flip_w)
7171   AM_RANGE(0xfc4002, 0xfc4003) AM_WRITE(lastduel_sound_w)
src/mame/drivers/alpha68k.c
r4470r4471
717717   AM_RANGE(0x000000, 0x03ffff) AM_ROM                     // main program
718718   AM_RANGE(0x080000, 0x083fff) AM_RAM                     // work RAM
719719   AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE(&spriteram16)   // video RAM
720   AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN3") AM_WRITE(SMH_NOP) // LSB: DSW0, MSB: watchdog(?)
720   AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN3") AM_WRITENOP // LSB: DSW0, MSB: watchdog(?)
721721   AM_RANGE(0x180008, 0x180009) AM_READ_PORT("IN4")         // LSB: DSW1
722722   AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0")         // joy1, joy2
723723   AM_RANGE(0x340000, 0x340001) AM_READ_PORT("IN1")         // coin, start, service
r4470r4471
733733   AM_RANGE(0x0c0000, 0x0c00ff) AM_WRITE(alpha68k_II_video_bank_w)
734734   AM_RANGE(0x0c8000, 0x0c8001) AM_READ(control_3_r) /* Bottom of CN2 */
735735   AM_RANGE(0x0d0000, 0x0d0001) AM_READ(control_4_r) /* Top of CN1 & CN2 */
736   AM_RANGE(0x0d8000, 0x0d8001) AM_READ(SMH_NOP) /* IRQ ack? */
737   AM_RANGE(0x0e0000, 0x0e0001) AM_READ(SMH_NOP) /* IRQ ack? */
738   AM_RANGE(0x0e8000, 0x0e8001) AM_READ(SMH_NOP) /* watchdog? */
736   AM_RANGE(0x0d8000, 0x0d8001) AM_READNOP /* IRQ ack? */
737   AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* IRQ ack? */
738   AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* watchdog? */
739739   AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(alpha68k_videoram_w) AM_BASE(&videoram16)
740740   AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE(&spriteram16)
741741   AM_RANGE(0x300000, 0x3001ff) AM_READWRITE(alpha_II_trigger_r, alpha_microcontroller_w)
r4470r4471
804804   AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r)
805805   AM_RANGE(0xe002, 0xe002) AM_WRITE(soundlatch_clear_w)
806806   AM_RANGE(0xe004, 0xe004) AM_DEVWRITE("dac", dac_signed_w)
807   AM_RANGE(0xe006, 0xe00e) AM_WRITE(SMH_NOP) // soundboard I/O's, ignored
807   AM_RANGE(0xe006, 0xe00e) AM_WRITENOP // soundboard I/O's, ignored
808808/* reference only
809    AM_RANGE(0xe006, 0xe006) AM_WRITE(SMH_NOP) // NMI: diminishing saw-tooth
810    AM_RANGE(0xe008, 0xe008) AM_WRITE(SMH_NOP) // NMI: 00
811    AM_RANGE(0xe00a, 0xe00a) AM_WRITE(SMH_NOP) // RST38: 20
812    AM_RANGE(0xe00c, 0xe00c) AM_WRITE(SMH_NOP) // RST30: 00 on entry
813    AM_RANGE(0xe00e, 0xe00e) AM_WRITE(SMH_NOP) // RST30: 00,02,ff on exit(0x1d88)
809    AM_RANGE(0xe006, 0xe006) AM_WRITENOP // NMI: diminishing saw-tooth
810    AM_RANGE(0xe008, 0xe008) AM_WRITENOP // NMI: 00
811    AM_RANGE(0xe00a, 0xe00a) AM_WRITENOP // RST38: 20
812    AM_RANGE(0xe00c, 0xe00c) AM_WRITENOP // RST30: 00 on entry
813    AM_RANGE(0xe00e, 0xe00e) AM_WRITENOP // RST30: 00,02,ff on exit(0x1d88)
814814*/
815815ADDRESS_MAP_END
816816
r4470r4471
865865   AM_RANGE(0x00, 0x00) AM_DEVWRITE("ay", ay8910_address_w)
866866   AM_RANGE(0x01, 0x01) AM_DEVREADWRITE("ay", ay8910_r, ay8910_data_w)
867867   AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w)
868   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)
868   AM_RANGE(0x06, 0x06) AM_WRITENOP
869869ADDRESS_MAP_END
870870
871871static ADDRESS_MAP_START( tnexspce_sound_portmap, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/tmaster.c
r4470r4471
450450   AM_RANGE( 0x500000, 0x500011 ) AM_WRITE( tmaster_blitter_w ) AM_BASE( &tmaster_regs )
451451   AM_RANGE( 0x500010, 0x500011 ) AM_READ ( tmaster_blitter_r )
452452
453   AM_RANGE( 0x580000, 0x580001 ) AM_WRITE(SMH_NOP) // often
453   AM_RANGE( 0x580000, 0x580001 ) AM_WRITENOP // often
454454
455455   AM_RANGE( 0x600000, 0x600fff ) AM_READWRITE( SMH_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w ) AM_BASE(&paletteram16) // looks like palettes, maybe
456456
src/mame/drivers/freekick.c
r4470r4471
210210   AM_RANGE(0xf000, 0xf003) AM_DEVREAD("ppi8255_1", ppi8255_r)
211211   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0")
212212   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
213   AM_RANGE(0xf802, 0xf802) AM_READ(SMH_NOP)   //MUST return bit 0 = 0, otherwise game resets
213   AM_RANGE(0xf802, 0xf802) AM_READNOP   //MUST return bit 0 = 0, otherwise game resets
214214   AM_RANGE(0xf803, 0xf803) AM_READ(spinner_r)
215215ADDRESS_MAP_END
216216
r4470r4471
247247   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
248248   AM_RANGE(0xd800, 0xd8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
249249   AM_RANGE(0xd900, 0xdfff) AM_WRITE(SMH_RAM)
250   AM_RANGE(0xe000, 0xe001) AM_WRITE(SMH_NOP)// probably not flipscreen
250   AM_RANGE(0xe000, 0xe001) AM_WRITENOP// probably not flipscreen
251251   AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w)
252252   AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w)
253   AM_RANGE(0xe005, 0xe005) AM_WRITE(SMH_NOP)
254   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) //bankswitch ?
253   AM_RANGE(0xe005, 0xe005) AM_WRITENOP
254   AM_RANGE(0xf000, 0xf000) AM_WRITENOP //bankswitch ?
255255   AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("sn1", sn76496_w)
256256   AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE("sn2", sn76496_w)
257257   AM_RANGE(0xfc02, 0xfc02) AM_DEVWRITE("sn3", sn76496_w)
r4470r4471
261261static ADDRESS_MAP_START( gigas_io_map, ADDRESS_SPACE_IO, 8 )
262262   ADDRESS_MAP_GLOBAL_MASK(0xff)
263263   AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
264   AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP) //unused dip 3
264   AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
265265ADDRESS_MAP_END
266266
267267static ADDRESS_MAP_START( oigas_io_map, ADDRESS_SPACE_IO, 8 )
268268   ADDRESS_MAP_GLOBAL_MASK(0xff)
269269   AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
270   AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP) //unused dip 3
270   AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
271271   AM_RANGE(0x02, 0x02) AM_READ(oigas_2_r)
272272   AM_RANGE(0x03, 0x03) AM_READ(oigas_3_r)
273273   AM_RANGE(0x05, 0x05) AM_WRITE(oigas_5_w)
src/mame/drivers/namcos22.c
r4470r4471
17931793   AM_RANGE(0x1,0x1) AM_WRITE(point_ram_hiword_w) AM_READ(point_ram_hiword_ir)
17941794   AM_RANGE(0x2,0x2) AM_WRITE(dsp_unk2_w) AM_READ(pdp_begin_r)
17951795   AM_RANGE(0x3,0x3) AM_WRITE(point_ram_idx_w) AM_READ(dsp_unk_port3_r)
1796   AM_RANGE(0x4,0x4) AM_WRITE(SMH_NOP) /* unknown */
1796   AM_RANGE(0x4,0x4) AM_WRITENOP /* unknown */
17971797   AM_RANGE(0x7,0x7) AM_WRITE(upload_code_to_slave_dsp_w)
17981798   AM_RANGE(0x8,0x8) AM_WRITE(dsp_unk8_w) AM_READ(dsp_unk8_r)         /* trigger irq? */
1799   AM_RANGE(0x9,0x9) AM_WRITE(SMH_NOP) AM_READ(custom_ic_status_r) /* trigger irq? */
1799   AM_RANGE(0x9,0x9) AM_WRITENOP AM_READ(custom_ic_status_r) /* trigger irq? */
18001800   AM_RANGE(0xa,0xa) AM_WRITE(dsp_unk_porta_w)
1801   AM_RANGE(0xb,0xb) AM_WRITE(SMH_NOP) /* RINT-related? */
1801   AM_RANGE(0xb,0xb) AM_WRITENOP /* RINT-related? */
18021802   AM_RANGE(0xc,0xc) AM_WRITE(master_render_device_w)
18031803   AM_RANGE(0xd,0xd) AM_WRITE(namcos22_dspram16_bank_w)
18041804   AM_RANGE(0xe,0xe) AM_WRITE(dsp_led_w)
1805   AM_RANGE(0xf,0xf) AM_WRITE(SMH_NOP) AM_READ(dsp_upload_status_r)
1805   AM_RANGE(0xf,0xf) AM_WRITENOP AM_READ(dsp_upload_status_r)
18061806   AM_RANGE(TMS32025_HOLD,  TMS32025_HOLD)  AM_READ(dsp_HOLD_signal_r)
18071807   AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLD_ACK_w)
18081808   AM_RANGE(TMS32025_XF,    TMS32025_XF)    AM_WRITE(dsp_XF_output_w)
r4470r4471
18851885
18861886   AM_RANGE(0x4,0x4) AM_READ(dsp_slave_port4_r)
18871887   AM_RANGE(0x5,0x5) AM_READ(dsp_slave_port5_r)
1888   AM_RANGE(0x6,0x6) AM_WRITE(SMH_NOP) AM_READ(dsp_slave_port6_r)
1888   AM_RANGE(0x6,0x6) AM_WRITENOP AM_READ(dsp_slave_port6_r)
18891889
18901890   /* render device state */
1891   AM_RANGE(0x8,0x8) AM_WRITE(SMH_NOP) AM_READ(dsp_slave_port8_r)
1891   AM_RANGE(0x8,0x8) AM_WRITENOP AM_READ(dsp_slave_port8_r)
18921892
18931893   /* render device */
18941894   AM_RANGE(0xb,0xb) AM_WRITE(dsp_slave_portb_w) AM_READ(dsp_slave_portb_r)
r4470r4471
24022402   AM_RANGE(0x200000, 0x200003) AM_READ(alpinesa_prot_r)
24032403   AM_RANGE(0x300000, 0x300003) AM_WRITE(alpinesa_prot_w)
24042404   AM_RANGE(0x000000, 0x3fffff) AM_ROM
2405   AM_RANGE(0x400000, 0x40001f) AM_READ(namcos22_keycus_r) AM_WRITE(SMH_NOP)
2405   AM_RANGE(0x400000, 0x40001f) AM_READ(namcos22_keycus_r) AM_WRITENOP
24062406   AM_RANGE(0x410000, 0x413fff) AM_RAM /* C139 SCI buffer */
2407   AM_RANGE(0x420000, 0x42000f) AM_READ(SMH_NOP) AM_WRITE(SMH_NOP) /* C139 SCI registers */
2408   AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r) AM_WRITE(SMH_NOP) /* LEDs? */
2407   AM_RANGE(0x420000, 0x42000f) AM_READNOP AM_WRITENOP /* C139 SCI registers */
2408   AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r) AM_WRITENOP /* LEDs? */
24092409   AM_RANGE(0x440000, 0x440003) AM_READ(namcos22_dipswitch_r)
24102410   AM_RANGE(0x450008, 0x45000b) AM_READ(namcos22_portbit_r) AM_WRITE(namcos22_portbit_w)
24112411   AM_RANGE(0x460000, 0x463fff) AM_RAM AM_BASE(&namcos22_nvmem) AM_SIZE(&namcos22_nvmem_size)
r4470r4471
28272827     *     C389? (Cyber Cycles)
28282828     *     C392? (Ace Driver Victory Lap)
28292829     */
2830   AM_RANGE(0x20000000, 0x2000000f) AM_READ(namcos22_keycus_r) AM_WRITE(SMH_NOP)
2830   AM_RANGE(0x20000000, 0x2000000f) AM_READ(namcos22_keycus_r) AM_WRITENOP
28312831
28322832   /**
28332833     * C139 SCI Buffer
r4470r4471
29232923     * zero means not-connected.
29242924     * may be related to device at 0x94000000
29252925     */
2926   AM_RANGE(0x48000000, 0x4800003f) AM_READ(SMH_NOP) AM_WRITE(SMH_NOP)
2926   AM_RANGE(0x48000000, 0x4800003f) AM_READNOP AM_WRITENOP
29272927
29282928   /**
29292929     * DIPSW
29302930     *     0x50000000 - DIPSW3
29312931     *     0x50000001 - DIPSW2
29322932     */
2933   AM_RANGE(0x50000000, 0x50000003) AM_READ(namcos22_dipswitch_r) AM_WRITE(SMH_NOP)
2933   AM_RANGE(0x50000000, 0x50000003) AM_READ(namcos22_dipswitch_r) AM_WRITENOP
29342934   AM_RANGE(0x50000008, 0x5000000b) AM_READ(namcos22_portbit_r) AM_WRITE(namcos22_portbit_w)
29352935
29362936   /**
r4470r4471
29792979     * +0x0100 - 0x02ff Parameter RAM from Main MPU (for SEs)
29802980     * +0x0300 - 0x03ff?    Song Title (put messages here from Sound CPU)
29812981     */
2982   AM_RANGE(0x60000000, 0x60003fff) AM_WRITE(SMH_NOP)
2982   AM_RANGE(0x60000000, 0x60003fff) AM_WRITENOP
29832983   AM_RANGE(0x60004000, 0x6000bfff) AM_READ(namcos22_mcuram_r) AM_WRITE(namcos22_mcuram_w) AM_BASE(&namcos22_shareram)
29842984
29852985   /**
src/mame/drivers/redclash.c
r4470r4471
7373   AM_RANGE(0x3000, 0x37ff) AM_WRITE(SMH_RAM)
7474   AM_RANGE(0x3800, 0x3bff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
7575   AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
76   AM_RANGE(0x5000, 0x5007) AM_WRITE(SMH_NOP)   /* to sound board */
76   AM_RANGE(0x5000, 0x5007) AM_WRITENOP   /* to sound board */
7777   AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w)
78   AM_RANGE(0x5801, 0x5804) AM_WRITE(SMH_NOP)   /* to sound board */
78   AM_RANGE(0x5801, 0x5804) AM_WRITENOP   /* to sound board */
7979   AM_RANGE(0x5805, 0x5805) AM_WRITE(redclash_star1_w)
8080   AM_RANGE(0x5806, 0x5806) AM_WRITE(redclash_star2_w)
8181   AM_RANGE(0x5807, 0x5807) AM_WRITE(redclash_flipscreen_w)
r4470r4471
9595
9696static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
9797   AM_RANGE(0x0000, 0x2fff) AM_WRITE(SMH_ROM)
98//  AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP)
99//  AM_RANGE(0x3800, 0x3800) AM_WRITE(SMH_NOP)
98//  AM_RANGE(0x3000, 0x3000) AM_WRITENOP
99//  AM_RANGE(0x3800, 0x3800) AM_WRITENOP
100100   AM_RANGE(0x4000, 0x43ff) AM_WRITE(redclash_videoram_w) AM_BASE(&videoram)
101   AM_RANGE(0x5000, 0x5007) AM_WRITE(SMH_NOP)   /* to sound board */
101   AM_RANGE(0x5000, 0x5007) AM_WRITENOP   /* to sound board */
102102   AM_RANGE(0x5800, 0x5800) AM_WRITE(redclash_star0_w)
103103   AM_RANGE(0x5801, 0x5801) AM_WRITE(redclash_gfxbank_w)
104104   AM_RANGE(0x5805, 0x5805) AM_WRITE(redclash_star1_w)
src/mame/drivers/galaxold.c
r4470r4471
527527   AM_RANGE(0x5040, 0x505f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
528528   AM_RANGE(0x5060, 0x507f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
529529   AM_RANGE(0x5080, 0x50ff) AM_WRITE(SMH_RAM)
530   AM_RANGE(0x6000, 0x6001) AM_WRITE(SMH_NOP)  /* sound triggers */
530   AM_RANGE(0x6000, 0x6001) AM_WRITENOP  /* sound triggers */
531531   AM_RANGE(0x6003, 0x6003) AM_WRITE(galaxold_coin_counter_w)
532532   AM_RANGE(0x6004, 0x6007) AM_WRITE(galaxian_lfo_freq_w)
533533   AM_RANGE(0x6800, 0x6802) AM_WRITE(galaxian_background_enable_w)
r4470r4471
575575   AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w)
576576   AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
577577   AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
578   AM_RANGE(0x7006, 0x7006) AM_WRITE(SMH_NOP)
579   AM_RANGE(0x7007, 0x7007) AM_WRITE(SMH_NOP)
578   AM_RANGE(0x7006, 0x7006) AM_WRITENOP
579   AM_RANGE(0x7007, 0x7007) AM_WRITENOP
580580   AM_RANGE(0x7800, 0x7800) AM_WRITE(galaxian_pitch_w)
581581ADDRESS_MAP_END
582582
r4470r4471
703703   AM_RANGE(0x4c00, 0x4fff) AM_WRITE(galaxold_videoram_w)
704704   AM_RANGE(0x5000, 0x503f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
705705   AM_RANGE(0x5040, 0x505f) AM_WRITE(SMH_RAM) AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
706   AM_RANGE(0x6801, 0x6801) AM_WRITE(SMH_NOP) //continuosly 0 and 1
706   AM_RANGE(0x6801, 0x6801) AM_WRITENOP //continuosly 0 and 1
707707   AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
708   AM_RANGE(0x6806, 0x6806) AM_WRITE(SMH_NOP) //only one 0 at reset
709   AM_RANGE(0x6807, 0x6807) AM_WRITE(SMH_NOP) //only one 0 at reset
710   AM_RANGE(0x8103, 0x8103) AM_WRITE(SMH_NOP) //only one 9b at reset
708   AM_RANGE(0x6806, 0x6806) AM_WRITENOP //only one 0 at reset
709   AM_RANGE(0x6807, 0x6807) AM_WRITENOP //only one 0 at reset
710   AM_RANGE(0x8103, 0x8103) AM_WRITENOP //only one 9b at reset
711711ADDRESS_MAP_END
712712
713713static ADDRESS_MAP_START( ozon1_io_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
723723   AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
724724   AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
725725   AM_RANGE(0x1580, 0x1582) AM_MIRROR(0x6000) AM_WRITE(galaxian_background_enable_w)
726   AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
727   AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
726   AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITENOP
727   AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_WRITENOP
728728   AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_WRITE(galaxian_lfo_freq_w)
729729   AM_RANGE(0x1600, 0x1600) AM_MIRROR(0x6000) AM_READ_PORT("DSW0") AM_WRITE(galaxian_pitch_w)
730730   AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW1") AM_WRITENOP
731   AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
731   AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITENOP
732732   AM_RANGE(0x1704, 0x1707) AM_MIRROR(0x6000) AM_WRITE(galaxian_vol_w)
733733   AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
734734   AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
r4470r4471
745745static ADDRESS_MAP_START( bongo, ADDRESS_SPACE_PROGRAM, 8 )
746746   AM_RANGE(0x0000, 0x5fff) AM_ROM
747747   AM_RANGE(0x8000, 0x83ff) AM_RAM
748   AM_RANGE(0x8400, 0x87ff) AM_WRITE(SMH_NOP) // not used
748   AM_RANGE(0x8400, 0x87ff) AM_WRITENOP // not used
749749   AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
750   AM_RANGE(0x9400, 0x97ff) AM_WRITE(SMH_NOP) // not used
750   AM_RANGE(0x9400, 0x97ff) AM_WRITENOP // not used
751751   AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
752752   AM_RANGE(0x9840, 0x985f) AM_RAM AM_BASE(&galaxold_spriteram) AM_SIZE(&galaxold_spriteram_size)
753753   AM_RANGE(0x9860, 0x987f) AM_RAM AM_BASE(&galaxold_bulletsram) AM_SIZE(&galaxold_bulletsram_size)
r4470r4471
776776   AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
777777   AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
778778   AM_RANGE(0x1580, 0x1582) AM_MIRROR(0x6000) AM_WRITE(galaxian_background_enable_w)
779   AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
779   AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_WRITENOP
780780   AM_RANGE(0x1584, 0x1587) AM_MIRROR(0x6000) AM_WRITE(galaxian_lfo_freq_w)
781781   AM_RANGE(0x1600, 0x1600) AM_MIRROR(0x6000) AM_READ_PORT("DSW0")
782   AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
783   AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITE(SMH_NOP)
782   AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x6000) AM_WRITENOP
783   AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITENOP
784784   AM_RANGE(0x1606, 0x1606) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w)
785785   AM_RANGE(0x1607, 0x1607) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w)
786786   AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READWRITE(SMH_NOP, galaxian_pitch_w)
r4470r4471
792792ADDRESS_MAP_END
793793
794794static ADDRESS_MAP_START( hunchbkg_io, ADDRESS_SPACE_IO, 8 )
795   AM_RANGE(S2650_DATA_PORT,  S2650_DATA_PORT) AM_READ(SMH_NOP) // not used
795   AM_RANGE(S2650_DATA_PORT,  S2650_DATA_PORT) AM_READNOP // not used
796796   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
797797ADDRESS_MAP_END
798798
r4470r4471
910910   AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian_shoot_enable_w)
911911   AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w)
912912   AM_RANGE(0xc801, 0xc801) AM_WRITE(galaxold_nmi_enable_w)
913   AM_RANGE(0xc804, 0xc804) AM_WRITE(SMH_NOP) // link cut
913   AM_RANGE(0xc804, 0xc804) AM_WRITENOP // link cut
914914   AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxold_flip_screen_x_w)
915915   AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxold_flip_screen_y_w)
916916   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w)
r4470r4471
928928ADDRESS_MAP_END
929929
930930static ADDRESS_MAP_START( kkgalax_writemem, ADDRESS_SPACE_PROGRAM, 8 )
931   AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_NOP)
931   AM_RANGE(0x0000, 0x5fff) AM_WRITENOP
932932   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM)
933933   AM_RANGE(0x9000, 0x93ff) AM_WRITE(galaxold_videoram_w) AM_BASE(&galaxold_videoram)
934934   AM_RANGE(0x9800, 0x983f) AM_WRITE(galaxold_attributesram_w) AM_BASE(&galaxold_attributesram)
r4470r4471
944944//  AM_RANGE(0xc405, 0xc405) AM_WRITE(galaxian)
945945//  AM_RANGE(0xc406, 0xc407) AM_WRITE(galaxian_vol_w)
946946   AM_RANGE(0xb001, 0xb001) AM_WRITE(galaxold_nmi_enable_w)
947//  AM_RANGE(0xc804, 0xc804) AM_WRITE(SMH_NOP) // link cut
947//  AM_RANGE(0xc804, 0xc804) AM_WRITENOP // link cut
948948//  AM_RANGE(0xc806, 0xc806) AM_WRITE(galaxold_flip_screen_x_w)
949949//  AM_RANGE(0xc807, 0xc807) AM_WRITE(galaxold_flip_screen_y_w)
950950//  AM_RANGE(0xcc00, 0xcc00) AM_WRITE(galaxian_pitch_w)
src/mame/drivers/centiped.c
r4470r4471
805805   AM_RANGE(0x2500, 0x2502) AM_WRITE(coin_count_w)
806806   AM_RANGE(0x2503, 0x2504) AM_WRITE(led_w)
807807   AM_RANGE(0x2505, 0x2505) AM_WRITE(input_select_w)
808//  AM_RANGE(0x2506, 0x2507) AM_WRITE(SMH_NOP) /* ? */
808//  AM_RANGE(0x2506, 0x2507) AM_WRITENOP /* ? */
809809   AM_RANGE(0x2580, 0x2583) AM_WRITE(mazeinv_input_select_w)
810810   AM_RANGE(0x2600, 0x2600) AM_WRITE(irq_ack_w)
811811   AM_RANGE(0x2680, 0x2680) AM_WRITE(watchdog_reset_w)
src/mame/drivers/wgp.c
r4470r4471
664664   AM_RANGE(0x320000, 0x32000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r,TC0100SCN_ctrl_word_0_w)
665665   AM_RANGE(0x400000, 0x40bfff) AM_RAM AM_BASE(&wgp_spritemap) AM_SIZE(&wgp_spritemap_size)   /* sprite tilemaps */
666666   AM_RANGE(0x40c000, 0x40dfff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)         /* sprite ram */
667   AM_RANGE(0x40fff0, 0x40fff1) AM_WRITE(SMH_NOP)   /* ?? (writes 0x8000 and 0 alternately - Wgp2 just 0) */
667   AM_RANGE(0x40fff0, 0x40fff1) AM_WRITENOP   /* ?? (writes 0x8000 and 0 alternately - Wgp2 just 0) */
668668   AM_RANGE(0x500000, 0x501fff) AM_RAM               /* unknown/unused */
669669   AM_RANGE(0x502000, 0x517fff) AM_READWRITE(wgp_pivram_word_r,wgp_pivram_word_w) AM_BASE(&wgp_pivram) /* piv tilemaps */
670670   AM_RANGE(0x520000, 0x52001f) AM_READWRITE(wgp_piv_ctrl_word_r,wgp_piv_ctrl_word_w) AM_BASE(&wgp_piv_ctrlram)
r4470r4471
694694   AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w)
695695   AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP,taitosound_slave_port_w)
696696   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r,taitosound_slave_comm_w)
697   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
698   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
699   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
700   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
697   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
698   AM_RANGE(0xea00, 0xea00) AM_READNOP
699   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
700   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
701701   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
702702ADDRESS_MAP_END
703703
src/mame/drivers/welltris.c
r4470r4471
383383   AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
384384   AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("EXTRA")            /* P3+P4 Coin + Start Buttons */
385385   AM_RANGE(0xfff00c, 0xfff00d) AM_READ_PORT("DSW1")
386   AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE(SMH_NOP)               /* ?? */
386   AM_RANGE(0xfff00c, 0xfff00d) AM_WRITENOP               /* ?? */
387387   AM_RANGE(0xfff00e, 0xfff00f) AM_READ_PORT("DSW2")
388   AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE(SMH_NOP)               /* ?? */
388   AM_RANGE(0xfff00e, 0xfff00f) AM_WRITENOP               /* ?? */
389389ADDRESS_MAP_END
390390
391391static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/sprint8.c
r4470r4471
140140   AM_RANGE(0x1d05, 0x1d05) AM_WRITE(SMH_RAM) AM_BASE(&sprint8_team)
141141   AM_RANGE(0x1d06, 0x1d06) AM_WRITE(sprint8_attract_w)
142142   AM_RANGE(0x1e00, 0x1e07) AM_WRITE(sprint8_motor_w)
143   AM_RANGE(0x1f00, 0x1f00) AM_WRITE(SMH_NOP) /* probably a watchdog, disabled in service mode */
143   AM_RANGE(0x1f00, 0x1f00) AM_WRITENOP /* probably a watchdog, disabled in service mode */
144144   AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM)
145145   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_ROM)
146146ADDRESS_MAP_END
src/mame/drivers/scregg.c
r4470r4471
7373   AM_RANGE(0x2000, 0x23ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_videoram) AM_SIZE(&btime_videoram_size)
7474   AM_RANGE(0x2400, 0x27ff) AM_WRITE(SMH_RAM) AM_BASE(&btime_colorram)
7575   AM_RANGE(0x2800, 0x2bff) AM_WRITE(btime_mirrorvideoram_w)
76   AM_RANGE(0x4000, 0x4000) AM_WRITE(SMH_NOP)
76   AM_RANGE(0x4000, 0x4000) AM_WRITENOP
7777   AM_RANGE(0x4001, 0x4001) AM_WRITE(btime_video_control_w)
7878   AM_RANGE(0x4004, 0x4005) AM_DEVWRITE("ay1", ay8910_address_data_w)
7979   AM_RANGE(0x4006, 0x4007) AM_DEVWRITE("ay2", ay8910_address_data_w)
r4470r4471
100100   AM_RANGE(0x1800, 0x1bff) AM_WRITE(btime_mirrorvideoram_w)
101101   AM_RANGE(0x1c00, 0x1fff) AM_WRITE(btime_mirrorcolorram_w)
102102   AM_RANGE(0x2000, 0x2000) AM_WRITE(btime_video_control_w)
103   AM_RANGE(0x2001, 0x2001) AM_WRITE(SMH_NOP)
103   AM_RANGE(0x2001, 0x2001) AM_WRITENOP
104104   AM_RANGE(0x2004, 0x2005) AM_DEVWRITE("ay1", ay8910_address_data_w)
105105   AM_RANGE(0x2006, 0x2007) AM_DEVWRITE("ay2", ay8910_address_data_w)
106106   AM_RANGE(0x3000, 0x7fff) AM_WRITE(SMH_ROM)
r4470r4471
389389}
390390
391391
392GAME( 198?, dommy,    0,        dommy,  scregg, 0, ROT270, "Technos", "Dommy", 0 )
393GAME( 1983, scregg,   0,        scregg, scregg, 0, ROT270, "Technos", "Scrambled Egg", 0 )
394GAME( 1983, eggs,     scregg,   scregg, scregg, 0, ROT270, "[Technos] Universal USA", "Eggs", 0 )
392GAME( 198?, dommy,    0,        dommy,  scregg, 0, ROT270, "Technos Japan", "Dommy", 0 )
393GAME( 1983, scregg,   0,        scregg, scregg, 0, ROT270, "Technos Japan", "Scrambled Egg", 0 )
394GAME( 1983, eggs,     scregg,   scregg, scregg, 0, ROT270, "[Technos Japan] Universal USA", "Eggs", 0 )
395395GAME( 1983, rockduck, 0,        scregg, rockduck, rockduck, ROT270, "Datel SAS", "Rock Duck (prototype?)", GAME_WRONG_COLORS )
src/mame/drivers/dec0.c
r4470r4471
257257   AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM)
258258
259259   /* These locations aren't real!  They are just there so memory is allocated */
260   AM_RANGE(0x232000, 0x23207f) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_colscroll)
261   AM_RANGE(0x232400, 0x2327ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_rowscroll)
262   AM_RANGE(0x23c000, 0x23c07f) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_colscroll)
263   AM_RANGE(0x23c400, 0x23c7ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_rowscroll)
264   AM_RANGE(0x200000, 0x2007ff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf2_data)
265   AM_RANGE(0x202000, 0x203fff) AM_WRITE(SMH_NOP) AM_BASE(&dec0_pf1_data)
260   AM_RANGE(0x232000, 0x23207f) AM_WRITENOP AM_BASE(&dec0_pf2_colscroll)
261   AM_RANGE(0x232400, 0x2327ff) AM_WRITENOP AM_BASE(&dec0_pf2_rowscroll)
262   AM_RANGE(0x23c000, 0x23c07f) AM_WRITENOP AM_BASE(&dec0_pf1_colscroll)
263   AM_RANGE(0x23c400, 0x23c7ff) AM_WRITENOP AM_BASE(&dec0_pf1_rowscroll)
264   AM_RANGE(0x200000, 0x2007ff) AM_WRITENOP AM_BASE(&dec0_pf2_data)
265   AM_RANGE(0x202000, 0x203fff) AM_WRITENOP AM_BASE(&dec0_pf1_data)
266266
267   AM_RANGE(0x244000, 0x244001) AM_WRITE(SMH_NOP) /* Extra protection? */
267   AM_RANGE(0x244000, 0x244001) AM_WRITENOP /* Extra protection? */
268268
269269   /* The location of p1 & pf2 can change between these according to protection */
270270   AM_RANGE(0x240000, 0x241fff) AM_WRITE(slyspy_240000_w)
r4470r4471
287287   AM_RANGE(0x308000, 0x3087ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
288288   AM_RANGE(0x310000, 0x3107ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
289289   AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
290   AM_RANGE(0x31c000, 0x31c00f) AM_WRITE(SMH_NOP)
290   AM_RANGE(0x31c000, 0x31c00f) AM_WRITENOP
291291ADDRESS_MAP_END
292292
293293static ADDRESS_MAP_START( midres_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
310310   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
311311   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
312312   AM_RANGE(0x160000, 0x160001) AM_WRITE(dec0_priority_w)
313   AM_RANGE(0x180008, 0x18000f) AM_WRITE(SMH_NOP) /* ?? watchdog ?? */
313   AM_RANGE(0x180008, 0x18000f) AM_WRITENOP /* ?? watchdog ?? */
314314   AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(midres_sound_w)
315315
316316   AM_RANGE(0x200000, 0x200007) AM_WRITE(dec0_pf2_control_0_w)
r4470r4471
353353/* Physical memory map (21 bits) */
354354static ADDRESS_MAP_START( slyspy_s_readmem, ADDRESS_SPACE_PROGRAM, 8 )
355355   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
356   AM_RANGE(0x0a0000, 0x0a0001) AM_READ(SMH_NOP) /* Protection counter */
356   AM_RANGE(0x0a0000, 0x0a0001) AM_READNOP /* Protection counter */
357357   AM_RANGE(0x0e0000, 0x0e0001) AM_DEVREAD("oki", okim6295_r)
358358   AM_RANGE(0x0f0000, 0x0f0001) AM_READ(soundlatch_r)
359359   AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8)
src/mame/drivers/ssv.c
r4470r4471
447447   AM_RANGE(0x160000, 0x17ffff) AM_WRITE(SMH_RAM)                                                        \
448448   AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE(ssv_scroll_w) AM_BASE(&ssv_scroll )                 /*Scroll */   \
449449   AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_w)                                      /*Lockout */  \
450   AM_RANGE(0x210010, 0x210011) AM_WRITE(SMH_NOP)                                                        \
450   AM_RANGE(0x210010, 0x210011) AM_WRITENOP                                                        \
451451   AM_RANGE(0x230000, 0x230071) AM_WRITE(SMH_RAM) AM_BASE(&ssv_irq_vectors)             /* IRQ Vectors */ \
452452   AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w )                                 /* IRQ Ack */     \
453453   AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w)                               /* IRQ Enable */  \
src/mame/drivers/taitoair.c
r4470r4471
388388   AM_RANGE(0xa00000, 0xa00007) AM_READ(stick_input_r)
389389   AM_RANGE(0xa00100, 0xa00107) AM_READ(stick2_input_r)
390390   AM_RANGE(0xa00200, 0xa0020f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)   /* other I/O */
391   AM_RANGE(0xa80000, 0xa80001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w)
392   AM_RANGE(0xa80002, 0xa80003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
391   AM_RANGE(0xa80000, 0xa80001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
392   AM_RANGE(0xa80002, 0xa80003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
393393   AM_RANGE(0xb00000, 0xb007ff) AM_RAM                  /* "power common ram" (mecha drive) */
394394ADDRESS_MAP_END
395395
r4470r4471
402402   AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w)
403403   AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
404404   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
405   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP)      /* pan control */
406   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
407   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP)       /* ? */
408   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)       /* ? */
405   AM_RANGE(0xe400, 0xe403) AM_WRITENOP      /* pan control */
406   AM_RANGE(0xea00, 0xea00) AM_READNOP
407   AM_RANGE(0xee00, 0xee00) AM_WRITENOP       /* ? */
408   AM_RANGE(0xf000, 0xf000) AM_WRITENOP       /* ? */
409409   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
410410ADDRESS_MAP_END
411411
src/mame/drivers/tceptor.c
r4470r4471
181181   AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(tceptor_tile_attr_w) AM_BASE(&tceptor_tile_attr)
182182   AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(tceptor_bg_ram_w) AM_BASE(&tceptor_bg_ram)   // background (VIEW RAM)
183183   AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namcos1_cus30_r, namcos1_cus30_w)
184   AM_RANGE(0x4800, 0x4800) AM_WRITE(SMH_NOP)            // 3D scope left/right?
185   AM_RANGE(0x4f00, 0x4f00) AM_READ(SMH_NOP)            // unknown
184   AM_RANGE(0x4800, 0x4800) AM_WRITENOP            // 3D scope left/right?
185   AM_RANGE(0x4f00, 0x4f00) AM_READNOP            // unknown
186186   AM_RANGE(0x4f01, 0x4f01) AM_READ_PORT("PEDAL")         // analog input (accel)
187187   AM_RANGE(0x4f02, 0x4f02) AM_READ_PORT("STICKX")         // analog input (left/right)
188188   AM_RANGE(0x4f03, 0x4f03) AM_READ_PORT("STICKY")         // analog input (up/down)
189   AM_RANGE(0x4f00, 0x4f03) AM_WRITE(SMH_NOP)            // analog input control?
189   AM_RANGE(0x4f00, 0x4f03) AM_WRITENOP            // analog input control?
190190   AM_RANGE(0x5000, 0x5006) AM_WRITE(tceptor_bg_scroll_w)   // bg scroll
191191   AM_RANGE(0x6000, 0x7fff) AM_RAM AM_SHARE(1) AM_BASE(&m68k_shared_ram) // COM RAM
192192   AM_RANGE(0x8000, 0x8000) AM_WRITE(m6809_irq_disable_w)
src/mame/drivers/cop01.c
r4470r4471
141141
142142static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
143143   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
144   AM_RANGE(0x8000, 0x8000) AM_READ(SMH_NOP)   /* irq ack? */
144   AM_RANGE(0x8000, 0x8000) AM_READNOP   /* irq ack? */
145145   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
146146ADDRESS_MAP_END
147147
r4470r4471
165165static ADDRESS_MAP_START( mightguy_audio_io_map, ADDRESS_SPACE_IO, 8 )
166166   ADDRESS_MAP_GLOBAL_MASK(0xff)
167167   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w)
168   AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP)   /* 1412M2? */
169   AM_RANGE(0x03, 0x03) AM_WRITE(SMH_NOP)   /* 1412M2? */
168   AM_RANGE(0x02, 0x02) AM_WRITENOP   /* 1412M2? */
169   AM_RANGE(0x03, 0x03) AM_WRITENOP   /* 1412M2? */
170170   AM_RANGE(0x03, 0x03) AM_READ(kludge)   /* 1412M2? */
171171   AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r)
172172ADDRESS_MAP_END
src/mame/drivers/vindictr.c
r4470r4471
8383   AM_RANGE(0x260030, 0x260031) AM_READ(atarigen_sound_r)
8484   AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
8585   AM_RANGE(0x360000, 0x360001) AM_WRITE(atarigen_scanline_int_ack_w)
86   AM_RANGE(0x360010, 0x360011) AM_WRITE(SMH_NOP)
86   AM_RANGE(0x360010, 0x360011) AM_WRITENOP
8787   AM_RANGE(0x360020, 0x360021) AM_WRITE(atarigen_sound_reset_w)
8888   AM_RANGE(0x360030, 0x360031) AM_WRITE(atarigen_sound_w)
8989   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(vindictr_paletteram_w) AM_BASE(&paletteram16)
src/mame/drivers/aquarium.c
r4470r4471
149149   AM_RANGE(0xd80014, 0xd8001f) AM_WRITE(SMH_RAM) AM_BASE(&aquarium_scroll)
150150   AM_RANGE(0xd80068, 0xd80069) AM_WRITENOP      /* probably not used */
151151   AM_RANGE(0xd80080, 0xd80081) AM_READ_PORT("DSW")
152   AM_RANGE(0xd80082, 0xd80083) AM_READ(SMH_NOP)   /* stored but not read back ? check code at 0x01f440 */
152   AM_RANGE(0xd80082, 0xd80083) AM_READNOP   /* stored but not read back ? check code at 0x01f440 */
153153   AM_RANGE(0xd80084, 0xd80085) AM_READ_PORT("INPUTS")
154154   AM_RANGE(0xd80086, 0xd80087) AM_READ(aquarium_coins_r)
155155   AM_RANGE(0xd80088, 0xd80089) AM_WRITENOP      /* ?? video related */
src/mame/drivers/metro.c
r4470r4471
19711971static ADDRESS_MAP_START( blzntrnd_sound_writeport, ADDRESS_SPACE_IO, 8 )
19721972   ADDRESS_MAP_GLOBAL_MASK(0xff)
19731973   AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w)
1974   AM_RANGE(0x40, 0x40) AM_WRITE(SMH_NOP)
1974   AM_RANGE(0x40, 0x40) AM_WRITENOP
19751975   AM_RANGE(0x80, 0x83) AM_DEVWRITE("ym", ym2610_w)
19761976ADDRESS_MAP_END
19771977
r4470r4471
20152015   AM_RANGE(0x400000, 0x43ffff) AM_WRITE(metro_K053936_w) AM_BASE(&metro_K053936_ram   )   // 053936
20162016   AM_RANGE(0x500000, 0x500fff) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_linectrl)   // 053936 line control
20172017   AM_RANGE(0x600000, 0x60001f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl   )   // 053936 control
2018   AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)
2018   AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP
20192019   AM_RANGE(0xe00002, 0xe00003) AM_WRITE(blzntrnd_sound_w)
20202020   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM                  )   // RAM
20212021ADDRESS_MAP_END
r4470r4471
20692069   AM_RANGE(0x478836, 0x478837) AM_WRITE(watchdog_reset16_w         )   // Watchdog
20702070   AM_RANGE(0x478860, 0x47886b) AM_WRITE(metro_window_w) AM_BASE(&metro_window   )   // Tilemap Window
20712071   AM_RANGE(0x478850, 0x47885b) AM_WRITE(SMH_RAM) AM_BASE(&metro_scroll      )   // Scroll Regs
2072   AM_RANGE(0x478888, 0x478889) AM_WRITE(SMH_NOP)                        // ??
2072   AM_RANGE(0x478888, 0x478889) AM_WRITENOP                        // ??
20732073   AM_RANGE(0x479700, 0x479713) AM_WRITE(SMH_RAM) AM_BASE(&metro_videoregs   )   // Video Registers
20742074   AM_RANGE(0xc00000, 0xc00003) AM_DEVWRITE8("ym", ym2413_w, 0x00ff)
20752075   AM_RANGE(0x800000, 0x800001) AM_DEVWRITE("oki", mouja_sound_rombank_w         )
src/mame/drivers/angelkds.c
r4470r4471
238238
239239static ADDRESS_MAP_START( main_portmap, ADDRESS_SPACE_IO, 8 )
240240   ADDRESS_MAP_GLOBAL_MASK(0xff)
241   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) // 00 on start-up, not again
241   AM_RANGE(0x00, 0x00) AM_WRITENOP // 00 on start-up, not again
242242   AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
243   AM_RANGE(0x43, 0x43) AM_WRITE(SMH_NOP) // 9a on start-up, not again
243   AM_RANGE(0x43, 0x43) AM_WRITENOP // 9a on start-up, not again
244244   AM_RANGE(0x40, 0x40) AM_READ_PORT("I40")   /* "Coinage" Dip Switches */
245245   AM_RANGE(0x41, 0x41) AM_READ_PORT("I41")   /* Other Dip Switches */
246246   AM_RANGE(0x42, 0x42) AM_READ_PORT("I42")   /* Players inputs (not needed ?) */
247247   AM_RANGE(0x80, 0x80) AM_READ_PORT("I80")   /* System inputs */
248248   AM_RANGE(0x81, 0x82) AM_READ(angelkds_input_r)   /* Players inputs */
249   AM_RANGE(0x83, 0x83) AM_WRITE(SMH_NOP) // 9b on start-up, not again
249   AM_RANGE(0x83, 0x83) AM_WRITENOP // 9b on start-up, not again
250250   AM_RANGE(0xc0, 0xc3) AM_READWRITE(angelkds_main_sound_r, angelkds_main_sound_w) // 02 various points
251251ADDRESS_MAP_END
252252
src/mame/drivers/mikie.c
r4470r4471
2020#include "cpu/z80/z80.h"
2121#include "cpu/m6809/m6809.h"
2222#include "sound/sn76496.h"
23#include "konamipt.h"
2324
2425extern WRITE8_HANDLER( mikie_videoram_w );
2526extern WRITE8_HANDLER( mikie_colorram_w );
r4470r4471
103104
104105static INPUT_PORTS_START( mikie )
105106   PORT_START("SYSTEM")
106   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
107   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
108   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
109   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
110   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
111   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
112   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
113   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
107   KONAMI8_SYSTEM_UNK
114108
115109   PORT_START("P1")
116   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
117   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
118   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
119   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
120   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
121   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
122   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
123   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
110   KONAMI8_MONO_4WAY_B12_UNK
124111
125112   PORT_START("P2")
126   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
127   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
128   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
129   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
130   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
131   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
132   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
133   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
113   KONAMI8_COCKTAIL_4WAY_B12_UNK
134114
135115   PORT_START("DSW2")
136116   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
r4470r4471
142122   PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
143123
144124   PORT_START("DSW0")
145   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
146   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
147   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
148   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
149   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
150   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
151   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
152   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
153   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
154   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
155   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
156   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
157   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
158   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
159   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
160   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
161   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
162   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
163   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
164   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
165   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
166   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
167   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
168   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
169   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
170   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
171   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
172   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
173   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
174   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
175   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
176   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
177   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
178   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
125   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
126   /* "No Coin B" = coins produce sound, but no effect on coin counter */
179127
180128   PORT_START("DSW1")
181129   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
src/mame/drivers/midvunit.c
r4470r4471
491491   AM_RANGE(0x980040, 0x980040) AM_READWRITE(midvunit_page_control_r, midvunit_page_control_w)
492492   AM_RANGE(0x980080, 0x980080) AM_NOP
493493   AM_RANGE(0x980082, 0x980083) AM_READ(midvunit_dma_trigger_r)
494   AM_RANGE(0x990000, 0x990000) AM_READ(SMH_NOP)   // link PAL (low 4 bits must == 4)
494   AM_RANGE(0x990000, 0x990000) AM_READNOP   // link PAL (low 4 bits must == 4)
495495   AM_RANGE(0x991030, 0x991030) AM_READ_PORT("991030")
496496//  AM_RANGE(0x991050, 0x991050) AM_READ(SMH_RAM) // seems to be another port
497497   AM_RANGE(0x991060, 0x991060) AM_READ(port0_r)
498498   AM_RANGE(0x992000, 0x992000) AM_READ_PORT("992000")
499499   AM_RANGE(0x993000, 0x993000) AM_READWRITE(midvunit_adc_r, midvunit_adc_w)
500500   AM_RANGE(0x994000, 0x994000) AM_WRITE(midvunit_control_w)
501   AM_RANGE(0x995000, 0x995000) AM_WRITE(SMH_NOP)   // force feedback?
501   AM_RANGE(0x995000, 0x995000) AM_WRITENOP   // force feedback?
502502   AM_RANGE(0x995020, 0x995020) AM_WRITE(midvunit_cmos_protect_w)
503503   AM_RANGE(0x997000, 0x997000) AM_NOP   // communications
504504   AM_RANGE(0x9a0000, 0x9a0000) AM_WRITE(midvunit_sound_w)
src/mame/drivers/opwolf.c
r4470r4471
209209   AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM)
210210   AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r)   /* dip switches */
211211   AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r)   /* lightgun, read at $11e0/6 */
212   AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP)
213   AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_msb_r)
212   AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP
213   AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0xff00)
214214   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
215215   AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r)   /* sprite ram */
216216ADDRESS_MAP_END
r4470r4471
223223   AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM)
224224   AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16)
225225   AM_RANGE(0x380000, 0x380003) AM_WRITE(rainbow_spritectrl_w)   // usually 0x4, changes when you fire
226   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(SMH_NOP)   /* watchdog ?? */
227   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_msb_w)
228   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_msb_w)
226   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP   /* watchdog ?? */
227   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0xff00)
228   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0xff00)
229229   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w)
230230   AM_RANGE(0xc10000, 0xc1ffff) AM_WRITE(SMH_RAM)   /* error in init code (?) */
231231   AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w)
r4470r4471
243243   AM_RANGE(0x200000, 0x200fff) AM_READ(SMH_RAM)
244244   AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r)   /* dip switches */
245245   AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r)   /* lightgun, read at $11e0/6 */
246   AM_RANGE(0x3e0000, 0x3e0001) AM_READ(SMH_NOP)
247   AM_RANGE(0x3e0002, 0x3e0003) AM_READ(taitosound_comm16_msb_r)
246   AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP
247   AM_RANGE(0x3e0002, 0x3e0003) AM_READ8(taitosound_comm_r, 0xff00)
248248   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(PC080SN_word_0_r)
249249   AM_RANGE(0xd00000, 0xd03fff) AM_READ(PC090OJ_word_0_r)   /* sprite ram */
250250ADDRESS_MAP_END
r4470r4471
255255   AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM)
256256   AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE(&paletteram16)
257257   AM_RANGE(0x380000, 0x380003) AM_WRITE(rainbow_spritectrl_w)   // usually 0x4, changes when you fire
258   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(SMH_NOP)   /* watchdog ?? */
259   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_msb_w)
260   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE(taitosound_comm16_msb_w)
258   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP   /* watchdog ?? */
259   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0xff00)
260   AM_RANGE(0x3e0002, 0x3e0003) AM_WRITE8(taitosound_comm_w, 0xff00)
261261   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(PC080SN_word_0_w)
262262   AM_RANGE(0xc10000, 0xc1ffff) AM_WRITE(SMH_RAM)   /* error in init code (?) */
263263   AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w)
r4470r4471
279279
280280static ADDRESS_MAP_START( sub_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
281281   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
282   AM_RANGE(0x9000, 0x9000) AM_WRITE(SMH_NOP)   /* unknown write, 0 then 1 each interrupt */
283   AM_RANGE(0xa000, 0xa000) AM_WRITE(SMH_NOP)   /* IRQ acknowledge (unimplemented) */
282   AM_RANGE(0x9000, 0x9000) AM_WRITENOP   /* unknown write, 0 then 1 each interrupt */
283   AM_RANGE(0xa000, 0xa000) AM_WRITENOP   /* IRQ acknowledge (unimplemented) */
284284   AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE(&cchip_ram)
285285ADDRESS_MAP_END
286286
src/mame/drivers/surpratk.c
r4470r4471
1212#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */
1313#include "video/konamiic.h"
1414#include "sound/2151intf.h"
15#include "konamipt.h"
1516
1617/* prototypes */
1718static MACHINE_RESET( surpratk );
r4470r4471
122123
123124static INPUT_PORTS_START( surpratk )
124125   PORT_START("P1")
125   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
126   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
127   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
128   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
129   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
130   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
131   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
132   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
126   KONAMI8_ALT_B12(1)
133127
134128   PORT_START("P2")
135   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
136   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
137   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
138   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
139   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
140   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
141   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
142   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
129   KONAMI8_ALT_B12(2)
143130
144131   PORT_START("DSW1")
145   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
146   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
147   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
148   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
149   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
150   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
151   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
152   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
153   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
154   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
155   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
156   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
157   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
158   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
159   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
160   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
161   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
162   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
163   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
164   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
165   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
166   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
167   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
168   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
169   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
170   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
171   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
172   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
173   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
174   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
175   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
176   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
177   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
178//  PORT_DIPSETTING(    0x00, "No Use" )
132   KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play ))
179133
180134   PORT_START("DSW2")
181135   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
src/mame/drivers/zaccaria.c
r4470r4471
342342   AM_RANGE(0x6881, 0x68bc) AM_RAM AM_BASE(&spriteram_2) AM_SIZE(&spriteram_2_size)
343343   AM_RANGE(0x6c00, 0x6c00) AM_WRITE(zaccaria_flip_screen_x_w)
344344   AM_RANGE(0x6c01, 0x6c01) AM_WRITE(zaccaria_flip_screen_y_w)
345   AM_RANGE(0x6c02, 0x6c02) AM_WRITE(SMH_NOP)    /* sound reset */
345   AM_RANGE(0x6c02, 0x6c02) AM_WRITENOP    /* sound reset */
346346   AM_RANGE(0x6c06, 0x6c06) AM_WRITE(coin_w)
347347   AM_RANGE(0x6c07, 0x6c07) AM_WRITE(nmienable_w)
348348   AM_RANGE(0x6c00, 0x6c07) AM_READ(zaccaria_prot2_r)
src/mame/drivers/littlerb.c
r4470r4471
197197   AM_RANGE(0x7e0000, 0x7e0001) AM_READ_PORT("P1")
198198   AM_RANGE(0x7e0002, 0x7e0003) AM_READ_PORT("P2")
199199   AM_RANGE(0x700000, 0x700007) AM_READ(littlerb_vdp_r) AM_WRITE(littlerb_vdp_w)
200   AM_RANGE(0x780000, 0x780001) AM_WRITE(SMH_NOP)
200   AM_RANGE(0x780000, 0x780001) AM_WRITENOP
201201
202202   /* below are fake.. just to see the data */
203203   AM_RANGE(0xc00000, 0xc7ffff) AM_RAM AM_BASE(&littlerb_region1)
src/mame/drivers/clayshoo.c
r4470r4471
209209   AM_RANGE(0x2000, 0x23ff) AM_RAM
210210   AM_RANGE(0x4000, 0x47ff) AM_ROM
211211   AM_RANGE(0x8000, 0x97ff) AM_RAM AM_BASE(&clayshoo_videoram) AM_SIZE(&clayshoo_videoram_size)   /* 6k of video ram according to readme */
212   AM_RANGE(0x9800, 0xa800) AM_WRITE(SMH_NOP)     /* not really mapped, but cleared */
212   AM_RANGE(0x9800, 0xa800) AM_WRITENOP     /* not really mapped, but cleared */
213213   AM_RANGE(0xc800, 0xc800) AM_READWRITE(analog_r, analog_reset_w)
214214ADDRESS_MAP_END
215215
src/mame/drivers/tagteam.c
r4470r4471
5757   AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE(tagteam_control_w)
5858   AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w)
5959   AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2")
60//  AM_RANGE(0x2003, 0x2003) AM_WRITE(SMH_NOP) /* Appears to increment when you're out of the ring */
60//  AM_RANGE(0x2003, 0x2003) AM_WRITENOP /* Appears to increment when you're out of the ring */
6161   AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w)
6262   AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w)
6363   AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM)
r4470r4471
329329
330330
331331
332GAME( 1983, bigprowr, 0,        tagteam, bigprowr, 0, ROT270, "Technos", "The Big Pro Wrestling!", 0 )
333GAME( 1983, tagteam,  bigprowr, tagteam, tagteam,  0, ROT270, "Technos (Data East license)", "Tag Team Wrestling", 0 )
332GAME( 1983, bigprowr, 0,        tagteam, bigprowr, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", 0 )
333GAME( 1983, tagteam,  bigprowr, tagteam, tagteam,  0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", 0 )
src/mame/drivers/bigevglf.c
r4470r4471
306306
307307static ADDRESS_MAP_START( bigevglf_portmap, ADDRESS_SPACE_IO, 8 )
308308   ADDRESS_MAP_GLOBAL_MASK(0xff)
309   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)    /* video ram enable ???*/
309   AM_RANGE(0x00, 0x00) AM_WRITENOP    /* video ram enable ???*/
310310   AM_RANGE(0x01, 0x01) AM_WRITE(bigevglf_gfxcontrol_w)  /* plane select */
311311   AM_RANGE(0x02, 0x02) AM_WRITE(beg_banking_w)
312312   AM_RANGE(0x03, 0x03) AM_WRITE(beg13A_set_w)
r4470r4471
342342static ADDRESS_MAP_START( bigevglf_sub_portmap, ADDRESS_SPACE_IO, 8 )
343343   ADDRESS_MAP_GLOBAL_MASK(0xff)
344344   AM_RANGE(0x00, 0x00) AM_READ_PORT("PORT00")
345   AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP)
345   AM_RANGE(0x01, 0x01) AM_READNOP
346346   AM_RANGE(0x02, 0x02) AM_READ(beg_trackball_x_r)
347347   AM_RANGE(0x03, 0x03) AM_READ(beg_trackball_y_r)
348348   AM_RANGE(0x04, 0x04) AM_READ(sub_cpu_mcu_coin_port_r)
349349   AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW1")
350350   AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2")
351   AM_RANGE(0x07, 0x07) AM_READ(SMH_NOP)
351   AM_RANGE(0x07, 0x07) AM_READNOP
352352   AM_RANGE(0x08, 0x08) AM_WRITE(beg_port08_w) /* muxed port select + other unknown stuff */
353353   AM_RANGE(0x0b, 0x0b) AM_READ(bigevglf_mcu_r)
354354   AM_RANGE(0x0c, 0x0c) AM_WRITE(bigevglf_mcu_w)
355   AM_RANGE(0x0e, 0x0e) AM_WRITE(SMH_NOP) /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */
355   AM_RANGE(0x0e, 0x0e) AM_WRITENOP /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */
356356   AM_RANGE(0x10, 0x17) AM_WRITE(beg13A_clr_w)
357357   AM_RANGE(0x18, 0x1f) AM_WRITE(beg13B_set_w)
358358   AM_RANGE(0x20, 0x20) AM_READWRITE(beg_fromsound_r, sound_command_w)
r4470r4471
370370   AM_RANGE(0xc000, 0xc7ff) AM_RAM
371371   AM_RANGE(0xc800, 0xc801) AM_DEVWRITE("ay", ay8910_address_data_w)
372372   AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE("msm", msm5232_w)
373   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP)
374   AM_RANGE(0xce00, 0xce00) AM_WRITE(SMH_NOP)
373   AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
374   AM_RANGE(0xce00, 0xce00) AM_WRITENOP
375375   AM_RANGE(0xd800, 0xd800) AM_READWRITE(sound_command_r, beg_fromsound_w)   /* write to D800 sets bit 1 in status */
376376   AM_RANGE(0xda00, 0xda00) AM_READWRITE(soundstate_r, nmi_enable_w)
377377   AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
src/mame/drivers/bagman.c
r4470r4471
192192   AM_RANGE(0xc000, 0xffff) AM_ROM      /* Super Bagman only */
193193
194194#if 0
195   AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP)   /* ???? */
196   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP)   /* ???? */
197   AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP)   /* ???? */
195   AM_RANGE(0xa007, 0xa007) AM_WRITENOP   /* ???? */
196   AM_RANGE(0xb000, 0xb000) AM_WRITENOP   /* ???? */
197   AM_RANGE(0xb800, 0xb800) AM_WRITENOP   /* ???? */
198198#endif
199199ADDRESS_MAP_END
200200
r4470r4471
208208   AM_RANGE(0x9800, 0x981f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)   /* hidden portion of color RAM */
209209                           /* here only to initialize the pointer, */
210210                           /* writes are handled by bagman_colorram_w */
211   AM_RANGE(0x9c00, 0x9fff) AM_WRITE(SMH_NOP)   /* written to, but unused */
211   AM_RANGE(0x9c00, 0x9fff) AM_WRITENOP   /* written to, but unused */
212212   AM_RANGE(0xa000, 0xa000) AM_WRITE(interrupt_enable_w)
213213   AM_RANGE(0xa001, 0xa002) AM_WRITE(bagman_flipscreen_w)
214214   AM_RANGE(0xa003, 0xa003) AM_WRITE(SMH_RAM) AM_BASE(&bagman_video_enable)
r4470r4471
216216   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("DSW")
217217
218218
219   AM_RANGE(0xa005, 0xa005) AM_WRITE(SMH_NOP)   /* ???? */
220   AM_RANGE(0xa006, 0xa006) AM_WRITE(SMH_NOP)   /* ???? */
221   AM_RANGE(0xa007, 0xa007) AM_WRITE(SMH_NOP)   /* ???? */
219   AM_RANGE(0xa005, 0xa005) AM_WRITENOP   /* ???? */
220   AM_RANGE(0xa006, 0xa006) AM_WRITENOP   /* ???? */
221   AM_RANGE(0xa007, 0xa007) AM_WRITENOP   /* ???? */
222222
223223   /* guess */
224224   AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("ay2", ay8910_address_w)
r4470r4471
229229   ADDRESS_MAP_GLOBAL_MASK(0xff)
230230   AM_RANGE(0x08, 0x09) AM_DEVWRITE("ay", ay8910_address_data_w)
231231   AM_RANGE(0x0c, 0x0c) AM_DEVREAD("ay", ay8910_r)
232   //AM_RANGE(0x56, 0x56) AM_WRITE(SMH_NOP)
232   //AM_RANGE(0x56, 0x56) AM_WRITENOP
233233ADDRESS_MAP_END
234234
235235
src/mame/drivers/inufuku.c
r4470r4471
190190static ADDRESS_MAP_START( inufuku_writemem, ADDRESS_SPACE_PROGRAM, 16 )
191191   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)            // main rom
192192
193   AM_RANGE(0x100000, 0x100007) AM_WRITE(SMH_NOP)            // ?
193   AM_RANGE(0x100000, 0x100007) AM_WRITENOP            // ?
194194   AM_RANGE(0x200000, 0x200001) AM_WRITE(inufuku_eeprom_w)      // eeprom
195195   AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w)   // sound command
196196
r4470r4471
203203
204204   AM_RANGE(0x780000, 0x780013) AM_WRITE(inufuku_palettereg_w)   // bg & text palettebank register
205205   AM_RANGE(0x7a0000, 0x7a0023) AM_WRITE(inufuku_scrollreg_w)   // bg & text scroll register
206   AM_RANGE(0x7e0000, 0x7e0001) AM_WRITE(SMH_NOP)            // ?
206   AM_RANGE(0x7e0000, 0x7e0001) AM_WRITENOP            // ?
207207
208208   AM_RANGE(0x800000, 0xbfffff) AM_WRITE(SMH_ROM)            // data rom
209209   AM_RANGE(0xfd0000, 0xfdffff) AM_WRITE(SMH_RAM)            // work ram
src/mame/drivers/mjsister.c
r4470r4471
165165
166166static ADDRESS_MAP_START( mjsister_io_map, ADDRESS_SPACE_IO, 8 )
167167   ADDRESS_MAP_GLOBAL_MASK(0xff)
168   AM_RANGE(0x00, 0x01) AM_WRITE(SMH_NOP) /* HD46505? */
168   AM_RANGE(0x00, 0x01) AM_WRITENOP /* HD46505? */
169169   AM_RANGE(0x10, 0x10) AM_DEVWRITE("ay", ay8910_address_w)
170170   AM_RANGE(0x11, 0x11) AM_DEVREAD("ay", ay8910_r)
171171   AM_RANGE(0x12, 0x12) AM_DEVWRITE("ay", ay8910_data_w)
src/mame/drivers/wheelfir.c
r4470r4471
385385   AM_RANGE(0x700000, 0x70001f) AM_WRITE(wheelfir_blit_w) // blitter stuff
386386   AM_RANGE(0x720000, 0x720001) AM_WRITE(pal_reset_pos_w) // always 0?
387387   AM_RANGE(0x720002, 0x720003) AM_WRITE(pal_data_w) // lots of different values.. also blitter? palette?
388//  AM_RANGE(0x720004, 0x720005) AM_WRITE(SMH_NOP) // always ffff?
388//  AM_RANGE(0x720004, 0x720005) AM_WRITENOP // always ffff?
389389
390//  AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP)
391//  AM_RANGE(0x760000, 0x760001) AM_WRITE(SMH_NOP)
392//  AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP)
393//  AM_RANGE(0x7a0000, 0x7a0001) AM_WRITE(SMH_NOP)
394//  AM_RANGE(0x7c0000, 0x7c0001) AM_WRITE(SMH_NOP)
390//  AM_RANGE(0x740000, 0x740001) AM_WRITENOP
391//  AM_RANGE(0x760000, 0x760001) AM_WRITENOP
392//  AM_RANGE(0x740000, 0x740001) AM_WRITENOP
393//  AM_RANGE(0x7a0000, 0x7a0001) AM_WRITENOP
394//  AM_RANGE(0x7c0000, 0x7c0001) AM_WRITENOP
395395
396396  ADDRESS_MAP_END
397397
r4470r4471
402402   AM_RANGE(0x200000, 0x20ffff) AM_RAM
403403
404404   AM_RANGE(0x780000, 0x780001) AM_READ(wheelfir_rand4)
405   AM_RANGE(0x700000, 0x700001) AM_WRITE(SMH_NOP)
406   AM_RANGE(0x740000, 0x740001) AM_WRITE(SMH_NOP)
405   AM_RANGE(0x700000, 0x700001) AM_WRITENOP
406   AM_RANGE(0x740000, 0x740001) AM_WRITENOP
407407ADDRESS_MAP_END
408408
409409
src/mame/drivers/cbuster.c
r4470r4471
145145   AM_RANGE(0x0ae000, 0x0ae7ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf4_rowscroll)
146146
147147   AM_RANGE(0x0b0000, 0x0b07ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
148   AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE(SMH_NOP)
148   AM_RANGE(0x0b4000, 0x0b4001) AM_WRITENOP
149149
150150   AM_RANGE(0x0b5000, 0x0b500f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
151151   AM_RANGE(0x0b6000, 0x0b600f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control)
src/mame/drivers/gng.c
r4470r4471
7373   AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P2")
7474   AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW1")
7575   AM_RANGE(0x3004, 0x3004) AM_READ_PORT("DSW2")
76   AM_RANGE(0x3c00, 0x3c00) AM_READ(SMH_NOP)   /* watchdog? */
76   AM_RANGE(0x3c00, 0x3c00) AM_READNOP   /* watchdog? */
7777   AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_BANK1)
7878   AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM)
7979ADDRESS_MAP_END
r4470r4471
8888   AM_RANGE(0x3a00, 0x3a00) AM_WRITE(soundlatch_w)
8989   AM_RANGE(0x3b08, 0x3b09) AM_WRITE(gng_bgscrollx_w)
9090   AM_RANGE(0x3b0a, 0x3b0b) AM_WRITE(gng_bgscrolly_w)
91   AM_RANGE(0x3c00, 0x3c00) AM_WRITE(SMH_NOP)   /* watchdog? */
91   AM_RANGE(0x3c00, 0x3c00) AM_WRITENOP   /* watchdog? */
9292   AM_RANGE(0x3d00, 0x3d00) AM_WRITE(gng_flipscreen_w)
9393//  { 0x3d01, 0x3d01, reset sound cpu?
9494   AM_RANGE(0x3d02, 0x3d03) AM_WRITE(gng_coin_counter_w)
src/mame/drivers/ojankohs.c
r4470r4471
280280   AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
281281   AM_RANGE(0x06, 0x06) AM_DEVREAD("ay", ay8910_r)
282282   AM_RANGE(0x06, 0x07) AM_DEVWRITE("ay", ay8910_data_address_w)
283   AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP)            // unknown
284   AM_RANGE(0x11, 0x11) AM_WRITE(SMH_NOP)            // unknown
283   AM_RANGE(0x10, 0x10) AM_WRITENOP            // unknown
284   AM_RANGE(0x11, 0x11) AM_WRITENOP            // unknown
285285ADDRESS_MAP_END
286286
287287static ADDRESS_MAP_START( ojankoy_io_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
306306   AM_RANGE(0x06, 0x06) AM_DEVREAD("ay", ay8910_r)
307307   AM_RANGE(0x06, 0x07) AM_DEVWRITE("ay", ay8910_data_address_w)
308308   AM_RANGE(0x08, 0x0f) AM_WRITE(ccasino_palette_w)      // 16bit address access
309   AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP)
310   AM_RANGE(0x11, 0x11) AM_WRITE(SMH_NOP)
309   AM_RANGE(0x10, 0x10) AM_WRITENOP
310   AM_RANGE(0x11, 0x11) AM_WRITENOP
311311ADDRESS_MAP_END
312312
313313static ADDRESS_MAP_START( ojankoc_io_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/nbmj8891.c
r4470r4471
477477   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
478478   AM_RANGE(0xec00, 0xedff) AM_READ(nbmj8891_palette_type3_r)
479479   AM_RANGE(0xf800, 0xfeff) AM_READ(SMH_RAM)
480   AM_RANGE(0xff00, 0xff1f) AM_READ(SMH_NOP)                  // ?
480   AM_RANGE(0xff00, 0xff1f) AM_READNOP                  // ?
481481   AM_RANGE(0xff20, 0xff20) AM_READ(taiwanmb_unk_r)            // MCU or 1413M3 STATUS? (return != 0x00 then loop)
482   AM_RANGE(0xff21, 0xff2f) AM_READ(SMH_NOP)                  // ?
482   AM_RANGE(0xff21, 0xff2f) AM_READNOP                  // ?
483483   AM_RANGE(0xff30, 0xffff) AM_READ(SMH_RAM)                  //
484484ADDRESS_MAP_END
485485
r4470r4471
487487   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
488488   AM_RANGE(0xec00, 0xedff) AM_WRITE(nbmj8891_palette_type3_w)
489489   AM_RANGE(0xf800, 0xfeff) AM_WRITE(SMH_RAM) AM_BASE(&nb1413m3_nvram) AM_SIZE(&nb1413m3_nvram_size)
490   AM_RANGE(0xff00, 0xff1f) AM_WRITE(SMH_NOP)                  // ?
490   AM_RANGE(0xff00, 0xff1f) AM_WRITENOP                  // ?
491491   AM_RANGE(0xff20, 0xff20) AM_WRITE(nbmj8891_taiwanmb_mcu_w)      // MCU PARAMETER?
492   AM_RANGE(0xff21, 0xff21) AM_WRITE(SMH_NOP)                  // blitter parameter set end (write 0x01 only)
492   AM_RANGE(0xff21, 0xff21) AM_WRITENOP                  // blitter parameter set end (write 0x01 only)
493493   AM_RANGE(0xff22, 0xff27) AM_WRITE(nbmj8891_taiwanmb_blitter_w)   // blitter parameter
494494   AM_RANGE(0xff28, 0xff28) AM_WRITE(nbmj8891_romsel_w)         // gfx rombank select
495495   AM_RANGE(0xff29, 0xff29) AM_WRITE(nbmj8891_taiwanmb_gfxflag_w)   // screen flip flag?
496   AM_RANGE(0xff2a, 0xff2a) AM_WRITE(SMH_NOP)                  // not used?
496   AM_RANGE(0xff2a, 0xff2a) AM_WRITENOP                  // not used?
497497   AM_RANGE(0xff2b, 0xff2b) AM_WRITE(nbmj8891_clutsel_w)         // color look up table select
498   AM_RANGE(0xff2c, 0xff2c) AM_WRITE(SMH_NOP)                  // blitter parameter set start (write 0xff only)
499   AM_RANGE(0xff2d, 0xff2d) AM_WRITE(SMH_NOP)                  // not used?
500   AM_RANGE(0xff2e, 0xff2e) AM_WRITE(SMH_NOP)                  // not used?
501   AM_RANGE(0xff2f, 0xff2f) AM_WRITE(SMH_NOP)                  // not used?
498   AM_RANGE(0xff2c, 0xff2c) AM_WRITENOP                  // blitter parameter set start (write 0xff only)
499   AM_RANGE(0xff2d, 0xff2d) AM_WRITENOP                  // not used?
500   AM_RANGE(0xff2e, 0xff2e) AM_WRITENOP                  // not used?
501   AM_RANGE(0xff2f, 0xff2f) AM_WRITENOP                  // not used?
502502   AM_RANGE(0xff30, 0xffff) AM_WRITE(SMH_RAM)                  // RAM?
503503ADDRESS_MAP_END
504504
r4470r4471
524524   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
525525   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
526526   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
527//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
527//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP
528528   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
529529   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w)
530530   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
r4470r4471
540540   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
541541   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
542542   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
543//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
543//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP
544544   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
545545   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w)
546546   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
r4470r4471
569569//  AM_RANGE(0x50, 0x50) AM_WRITE(nb1413m3_nmi_clock_w)
570570   AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
571571   AM_RANGE(0x82, 0x83) AM_DEVWRITE("fm", ay8910_data_address_w)
572   AM_RANGE(0x90, 0x90) AM_WRITE(SMH_NOP)
572   AM_RANGE(0x90, 0x90) AM_WRITENOP
573573   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
574574   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
575AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
575AM_RANGE(0xc0, 0xc0) AM_WRITENOP
576576   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
577577   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
578578ADDRESS_MAP_END
r4470r4471
587587   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
588588   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
589589   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
590//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
590//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP
591591   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
592//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
593//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
592//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
593//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
594594ADDRESS_MAP_END
595595
596596static ADDRESS_MAP_START( writeport_msjiken, ADDRESS_SPACE_IO, 8 )
r4470r4471
603603   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
604604   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
605605   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
606//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
606//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP
607607   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
608//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
609//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
608//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
609//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
610610ADDRESS_MAP_END
611611
612612static ADDRESS_MAP_START( writeport_scandal, ADDRESS_SPACE_IO, 8 )
r4470r4471
621621   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
622622   AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w)
623623   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
624//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
625//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
624//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
625//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
626626ADDRESS_MAP_END
627627
628628static ADDRESS_MAP_START( readport_scandalm, ADDRESS_SPACE_IO, 8 )
r4470r4471
649649   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
650650   AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w)
651651   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
652//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
652//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
653653   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
654654ADDRESS_MAP_END
655655
r4470r4471
666666   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
667667   AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w)
668668   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
669//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
669//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
670670   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
671671ADDRESS_MAP_END
672672
r4470r4471
689689   AM_RANGE(0x60, 0x60) AM_WRITE(nbmj8891_romsel_w)
690690   AM_RANGE(0x70, 0x70) AM_WRITE(nbmj8891_scrolly_w)
691691   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
692//  AM_RANGE(0x90, 0x90) AM_WRITE(SMH_NOP)
692//  AM_RANGE(0x90, 0x90) AM_WRITENOP
693693   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
694694   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
695695   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
r4470r4471
718718   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
719719   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
720720   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
721//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)
721//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP
722722   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
723723   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_vramsel_w)
724724   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
r4470r4471
741741static ADDRESS_MAP_START( writeport_taiwanmb, ADDRESS_SPACE_IO, 8 )
742742   ADDRESS_MAP_GLOBAL_MASK(0xff)
743743   AM_RANGE(0x82, 0x83) AM_DEVWRITE("fm", ay8910_data_address_w)
744//  AM_RANGE(0x90, 0x90) AM_WRITE(SMH_NOP)                     // ?
744//  AM_RANGE(0x90, 0x90) AM_WRITENOP                     // ?
745745   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
746746   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
747//  AM_RANGE(0xc0, 0xc0) AM_WRITE(SMH_NOP)                     // ?
747//  AM_RANGE(0xc0, 0xc0) AM_WRITENOP                     // ?
748748   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
749749   AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj8891_taiwanmb_gfxdraw_w)   // blitter draw start
750750   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
src/mame/drivers/kncljoe.c
r4470r4471
6666   AM_RANGE(0xd801, 0xd801) AM_WRITE(kncljoe_control_w)
6767   AM_RANGE(0xd802, 0xd802) AM_DEVWRITE("sn1", sn76496_w)
6868   AM_RANGE(0xd803, 0xd803) AM_DEVWRITE("sn2", sn76496_w)
69   AM_RANGE(0xd807, 0xd807) AM_READ(SMH_NOP)      /* unknown read */
70   AM_RANGE(0xd817, 0xd817) AM_READ(SMH_NOP)      /* unknown read */
69   AM_RANGE(0xd807, 0xd807) AM_READNOP      /* unknown read */
70   AM_RANGE(0xd817, 0xd817) AM_READNOP      /* unknown read */
7171   AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
7272   AM_RANGE(0xf000, 0xffff) AM_RAM
7373ADDRESS_MAP_END
src/mame/drivers/spdodgeb.c
r4470r4471
615615
616616
617617
618GAME( 1987, spdodgeb, 0,        spdodgeb, spdodgeb, 0, ROT0, "Technos", "Super Dodge Ball (US)", 0 )
619GAME( 1987, nkdodge,  spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos", "Nekketsu Koukou Dodgeball Bu (Japan)", 0 )
620GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", 0 )
618GAME( 1987, spdodgeb, 0,        spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Super Dodge Ball (US)", 0 )
619GAME( 1987, nkdodge,  spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan)", 0 )
620GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", 0 )
src/mame/drivers/cvs.c
r4470r4471
570570    AM_RANGE(0x1800, 0x1800) AM_READ(soundlatch_r)
571571    AM_RANGE(0x1840, 0x1840) AM_DEVWRITE("dac1", dac_w)
572572    AM_RANGE(0x1880, 0x1883) AM_DEVWRITE("dac2", cvs_4_bit_dac_data_w) AM_BASE(&cvs_4_bit_dac_data)
573    AM_RANGE(0x1884, 0x1887) AM_WRITE(SMH_NOP)      /* not connected to anything */
573    AM_RANGE(0x1884, 0x1887) AM_WRITENOP      /* not connected to anything */
574574ADDRESS_MAP_END
575575
576576
src/mame/drivers/seta.c
r4470r4471
30673067static ADDRESS_MAP_START( utoukond_sound_io_map, ADDRESS_SPACE_IO, 8 )
30683068   ADDRESS_MAP_GLOBAL_MASK(0xff)
30693069   AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ym", ym3438_r, ym3438_w)
3070   AM_RANGE(0x80, 0x80) AM_WRITE(SMH_NOP) //?
3070   AM_RANGE(0x80, 0x80) AM_WRITENOP //?
30713071   AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
30723072ADDRESS_MAP_END
30733073
r4470r4471
31923192
31933193   AM_RANGE(0x300000, 0x300001) AM_WRITE(watchdog_reset16_w)   // Watchdog
31943194
3195   AM_RANGE(0x300010, 0x300011) AM_WRITE(SMH_NOP)   // lev1 ack
3196   AM_RANGE(0x300020, 0x300021) AM_WRITE(SMH_NOP)   // lev2 ack
3197   AM_RANGE(0x300040, 0x300041) AM_WRITE(SMH_NOP)   // lev4 ack
3198   AM_RANGE(0x300060, 0x300061) AM_WRITE(SMH_NOP)   // lev6 ack
3195   AM_RANGE(0x300010, 0x300011) AM_WRITENOP   // lev1 ack
3196   AM_RANGE(0x300020, 0x300021) AM_WRITENOP   // lev2 ack
3197   AM_RANGE(0x300040, 0x300041) AM_WRITENOP   // lev4 ack
3198   AM_RANGE(0x300060, 0x300061) AM_WRITENOP   // lev6 ack
31993199
32003200   AM_RANGE(0x500000, 0x500003) AM_READ(inttoote_dsw_r)   // DSW x 3
32013201
src/mame/drivers/tnzs.c
r4470r4471
751751      dac_data_w(device, data);
752752}
753753
754static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
755   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
756   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1) /* ROM + RAM */
757   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
758   AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r)   /* WORK RAM (shared by the 2 z80's) */
759   AM_RANGE(0xf000, 0xf1ff) AM_READ(SMH_RAM)   /* VDC RAM */
760   AM_RANGE(0xf600, 0xf600) AM_READ(SMH_NOP)   /* ? */
761   AM_RANGE(0xf800, 0xfbff) AM_READ(SMH_RAM)   /* not in extrmatn and arknoid2 (PROMs instead) */
762ADDRESS_MAP_END
763
764static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
765   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
766   AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_BANK1)   /* ROM + RAM */
767   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objram)
768   AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w) AM_BASE(&tnzs_sharedram)
769   AM_RANGE(0xf000, 0xf1ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_vdcram)
770   AM_RANGE(0xf200, 0xf2ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_scrollram) /* scrolling info */
771   AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
772   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_bg_flag)   /* enable / disable background transparency */
773   AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_bankswitch_w)
754static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
755   AM_RANGE(0x0000, 0x7fff) AM_ROM
756   AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1)   /* ROM + RAM */
757   AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&tnzs_objram)
758   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
759   AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE(&tnzs_vdcram)
760   AM_RANGE(0xf200, 0xf2ff) AM_WRITEONLY AM_BASE(&tnzs_scrollram) /* scrolling info */
761   AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITEONLY AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
762   AM_RANGE(0xf400, 0xf400) AM_WRITEONLY AM_BASE(&tnzs_bg_flag)   /* enable / disable background transparency */
763   AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE(tnzs_bankswitch_w)
774764   /* arknoid2, extrmatn, plumppop and drtoppel have PROMs instead of RAM */
775765   /* drtoppel writes here anyway! (maybe leftover from tests during development) */
776766   /* so the handler is patched out in init_drtopple() */
777   AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram)
767   AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram)
778768ADDRESS_MAP_END
779769
780770static ADDRESS_MAP_START( cpu0_type2, ADDRESS_SPACE_PROGRAM, 8 )
781771   AM_RANGE(0x0000, 0x7fff) AM_ROM
782772   AM_RANGE(0x8000, 0xbfff) AM_RAMBANK(1)   /* ROM + RAM */
783773   AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&tnzs_objram)
784   AM_RANGE(0xe000, 0xefff) AM_READWRITE(tnzs_sharedram_r, tnzs_sharedram_w) AM_BASE(&tnzs_sharedram) /* WORK RAM (shared by the 2 z80's) */
774   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
785775   AM_RANGE(0xf000, 0xf1ff) AM_RAM AM_BASE(&tnzs_vdcram)
786   AM_RANGE(0xf200, 0xf2ff) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_scrollram) /* scrolling info */
787   AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
788   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) AM_BASE(&tnzs_bg_flag)   /* enable / disable background transparency */
776   AM_RANGE(0xf200, 0xf2ff) AM_WRITEONLY AM_BASE(&tnzs_scrollram) /* scrolling info */
777   AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_WRITEONLY AM_BASE(&tnzs_objctrl) /* control registers (0x80 mirror used by Arkanoid 2) */
778   AM_RANGE(0xf400, 0xf400) AM_WRITEONLY AM_BASE(&tnzs_bg_flag)   /* enable / disable background transparency */
789779   AM_RANGE(0xf600, 0xf600) AM_WRITE(tnzs_bankswitch_w)
790780   /* kabukiz still writes here but it's not used (it's paletteram in type1 map) */
791781   AM_RANGE(0xf800, 0xfbff) AM_WRITENOP
792782ADDRESS_MAP_END
793783
794static ADDRESS_MAP_START( sub_readmem, ADDRESS_SPACE_PROGRAM, 8 )
795   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
796   AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_BANK2)
797   AM_RANGE(0xb000, 0xb001) AM_DEVREAD("ym", ym2203_r)
798   AM_RANGE(0xc000, 0xc001) AM_READ(tnzs_mcu_r)   /* plain input ports in insectx (memory handler */
799                           /* changed in insectx_init() ) */
800   AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM)
801   AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r)
784static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 )
785   AM_RANGE(0x0000, 0x7fff) AM_ROM
786   AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(2)
787   AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
788   AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
789   AM_RANGE(0xc000, 0xc001) AM_READWRITE(tnzs_mcu_r, tnzs_mcu_w)   /* not present in insectx */
790   AM_RANGE(0xd000, 0xdfff) AM_RAM
791   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
802792   AM_RANGE(0xf000, 0xf003) AM_READ(arknoid2_sh_f000_r)   /* paddles in arkanoid2/plumppop. The ports are */
803793                  /* read but not used by the other games, and are not read at */
804794                  /* all by insectx. */
805795ADDRESS_MAP_END
806796
807static ADDRESS_MAP_START( sub_writemem, ADDRESS_SPACE_PROGRAM, 8 )
808   AM_RANGE(0x0000, 0x9fff) AM_WRITE(SMH_ROM)
797static ADDRESS_MAP_START( kageki_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
798   AM_RANGE(0x0000, 0x7fff) AM_ROM
799   AM_RANGE(0x8000, 0x9fff) AM_ROMBANK(2)
809800   AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
810   AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym", ym2203_w)
811   AM_RANGE(0xc000, 0xc001) AM_WRITE(tnzs_mcu_w)   /* not present in insectx */
812   AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM)
813   AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w)
814ADDRESS_MAP_END
815
816static ADDRESS_MAP_START( kageki_sub_readmem, ADDRESS_SPACE_PROGRAM, 8 )
817   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
818   AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_BANK2)
819   AM_RANGE(0xb000, 0xb001) AM_DEVREAD("ym", ym2203_r)
801   AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
820802   AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
821803   AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
822804   AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
823   AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM)
824   AM_RANGE(0xe000, 0xefff) AM_READ(tnzs_sharedram_r)
805   AM_RANGE(0xd000, 0xdfff) AM_RAM
806   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
825807ADDRESS_MAP_END
826808
827static ADDRESS_MAP_START( kageki_sub_writemem, ADDRESS_SPACE_PROGRAM, 8 )
828   AM_RANGE(0x0000, 0x9fff) AM_WRITE(SMH_ROM)
829   AM_RANGE(0xa000, 0xa000) AM_WRITE(tnzs_bankswitch1_w)
830   AM_RANGE(0xb000, 0xb001) AM_DEVWRITE("ym", ym2203_w)
831   AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM)
832   AM_RANGE(0xe000, 0xefff) AM_WRITE(tnzs_sharedram_w)
833ADDRESS_MAP_END
834
835809/* the later board is different, it has a third CPU (and of course no mcu) */
836810
837811static WRITE8_HANDLER( tnzsb_sound_command_w )
r4470r4471
851825   AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
852826   AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
853827   AM_RANGE(0xd000, 0xdfff) AM_RAM
854   AM_RANGE(0xe000, 0xefff) AM_READWRITE(tnzs_sharedram_r, tnzs_sharedram_w)
828   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
855829   AM_RANGE(0xf000, 0xf003) AM_READ(SMH_RAM)
856830   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram)
857831ADDRESS_MAP_END
r4470r4471
867841   AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
868842   AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
869843   AM_RANGE(0xd000, 0xdfff) AM_RAM
870   AM_RANGE(0xe000, 0xefff) AM_READWRITE(tnzs_sharedram_r, tnzs_sharedram_w)
844   AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE(1)
871845   AM_RANGE(0xf800, 0xfbff) AM_WRITE(paletteram_xRRRRRGGGGGBBBBB_le_w) AM_BASE(&paletteram)
872846ADDRESS_MAP_END
873847
r4470r4471
16351609
16361610   /* basic machine hardware */
16371611   MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2)   /* verified on pcb */
1638   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1612   MDRV_CPU_PROGRAM_MAP(main_map,0)
16391613   MDRV_CPU_VBLANK_INT("screen", arknoid2_interrupt)
16401614
16411615   MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2)   /* verified on pcb */
1642   MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
1616   MDRV_CPU_PROGRAM_MAP(sub_map,0)
16431617   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
16441618
16451619   MDRV_QUANTUM_PERFECT_CPU("maincpu")
r4470r4471
16741648
16751649   /* basic machine hardware */
16761650   MDRV_CPU_ADD("maincpu", Z80,XTAL_12MHz/2)      /* 6.0 MHz ??? - Main board Crystal is 12MHz */
1677   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1651   MDRV_CPU_PROGRAM_MAP(main_map,0)
16781652   MDRV_CPU_VBLANK_INT("screen", arknoid2_interrupt)
16791653
16801654   MDRV_CPU_ADD("sub", Z80,XTAL_12MHz/2)      /* 6.0 MHz ??? - Main board Crystal is 12MHz */
1681   MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
1655   MDRV_CPU_PROGRAM_MAP(sub_map,0)
16821656   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
16831657
16841658   MDRV_QUANTUM_PERFECT_CPU("maincpu")
r4470r4471
17131687
17141688   /* basic machine hardware */
17151689   MDRV_CPU_ADD("maincpu", Z80,XTAL_12MHz/2)      /* 6.0 MHz ??? - Main board Crystal is 12MHz */
1716   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1690   MDRV_CPU_PROGRAM_MAP(main_map,0)
17171691   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
17181692
17191693   MDRV_CPU_ADD("sub", Z80,XTAL_12MHz/2)      /* 6.0 MHz ??? - Main board Crystal is 12MHz */
1720   MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
1694   MDRV_CPU_PROGRAM_MAP(sub_map,0)
17211695   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
17221696
17231697   MDRV_CPU_ADD("mcu", I8742 ,12000000/2)   /* 400KHz ??? - Main board Crystal is 12MHz */
r4470r4471
17541728
17551729   /* basic machine hardware */
17561730   MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2)   /* verified on pcb */
1757   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1731   MDRV_CPU_PROGRAM_MAP(main_map,0)
17581732   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
17591733
17601734   MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2)   /* verified on pcb */
1761   MDRV_CPU_PROGRAM_MAP(sub_readmem,sub_writemem)
1735   MDRV_CPU_PROGRAM_MAP(sub_map,0)
17621736   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
17631737
17641738   MDRV_QUANTUM_PERFECT_CPU("maincpu")
r4470r4471
17921766
17931767   /* basic machine hardware */
17941768   MDRV_CPU_ADD("maincpu", Z80, XTAL_12MHz/2) /* verified on pcb */
1795   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
1769   MDRV_CPU_PROGRAM_MAP(main_map,0)
17961770   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
17971771
17981772   MDRV_CPU_ADD("sub", Z80, XTAL_12MHz/2) /* verified on pcb */
1799   MDRV_CPU_PROGRAM_MAP(kageki_sub_readmem,kageki_sub_writemem)
1773   MDRV_CPU_PROGRAM_MAP(kageki_sub_map,0)
18001774   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
18011775
18021776   MDRV_QUANTUM_PERFECT_CPU("maincpu")
src/mame/drivers/tp84.c
r4470r4471
6969#include "cpu/m6809/m6809.h"
7070#include "sound/sn76496.h"
7171#include "sound/flt_rc.h"
72#include "konamipt.h"
7273
73
7474extern UINT8 *tp84_bg_videoram;
7575extern UINT8 *tp84_bg_colorram;
7676extern UINT8 *tp84_fg_videoram;
r4470r4471
195195   AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
196196   AM_RANGE(0x8000, 0x8000) AM_READ(tp84_sh_timer_r)
197197   AM_RANGE(0xa000, 0xa1ff) AM_WRITE(tp84_filter_w)
198   AM_RANGE(0xc000, 0xc000) AM_WRITE(SMH_NOP)
198   AM_RANGE(0xc000, 0xc000) AM_WRITENOP
199199   AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("sn1", sn76496_w)
200200   AM_RANGE(0xc003, 0xc003) AM_DEVWRITE("sn2", sn76496_w)
201201   AM_RANGE(0xc004, 0xc004) AM_DEVWRITE("sn3", sn76496_w)
r4470r4471
205205
206206static INPUT_PORTS_START( tp84 )
207207   PORT_START("SYSTEM")
208   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
209   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
210   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
211   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
212   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
213   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
214   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
215   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
208   KONAMI8_SYSTEM_UNK
216209
217210   PORT_START("P1")
218   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
219   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
220   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
221   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
222   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
223   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
224   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
225   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
211   KONAMI8_MONO_B12_UNK
226212
227213   PORT_START("P2")
228   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
229   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
230   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
231   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
232   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
233   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
234   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
235   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
214   KONAMI8_COCKTAIL_B12_UNK
236215
237216   PORT_START("DSW1")
238   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
239   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
240   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
241   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
242   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
243   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
244   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
245   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
246   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
247   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
248   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
249   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
250   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
251   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
252   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
253   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
254   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
255   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
256   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
257   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
258   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
259   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
260   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
261   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
262   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
263   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
264   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
265   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
266   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
267   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
268   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
269   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
270   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
271   PORT_DIPSETTING(    0x00, "Invalid" )
217   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
218   /* "Invalid" = both coin slots disabled */
272219
273220   PORT_START("DSW2")
274221   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
295242INPUT_PORTS_END
296243
297244static INPUT_PORTS_START( tp84a )
298   PORT_START("SYSTEM")
299   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
300   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
301   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
302   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
303   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
304   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
305   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
306   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
245   PORT_INCLUDE( tp84 )
307246
308   PORT_START("P1")
309   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
310   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
311   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
312   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
313   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
314   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
315   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
316   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
317
318   PORT_START("P2")
319   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
320   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
321   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
322   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
323   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
324   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
325   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
326   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
327
328   PORT_START("DSW1")
329   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
330   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
331   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
332   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
333   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
334   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
335   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
336   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
337   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
338   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
339   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
340   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
341   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
342   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
343   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
344   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
345   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
346   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
347   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
348   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
349   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
350   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
351   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
352   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
353   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
354   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
355   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
356   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
357   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
358   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
359   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
360   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
361   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
362   PORT_DIPSETTING(    0x00, "Invalid" )
363
364   PORT_START("DSW2")
247   PORT_MODIFY("DSW2")
365248   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
366249   PORT_DIPSETTING(    0x03, "3" )
367250   PORT_DIPSETTING(    0x02, "4" )
368251   PORT_DIPSETTING(    0x01, "5" )
369252   PORT_DIPSETTING(    0x00, "7" )
370   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
371   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
372   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
373   PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) )
374   PORT_DIPSETTING(    0x18, "10K 50K+" )
375   PORT_DIPSETTING(    0x10, "20K 60K+" )
376   PORT_DIPSETTING(    0x08, "30K 70K+" )
377   PORT_DIPSETTING(    0x00, "40K 80K+" )
378   PORT_DIPNAME( 0x60, 0x20, DEF_STR( Difficulty ) )
379   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
380   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
381   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
382   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
383   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
384   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
385   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
386253INPUT_PORTS_END
387254
388255
src/mame/drivers/rohga.c
r4470r4471
131131   AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
132132   AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_READ(deco16_104_rohga_prot_r) /* Protection device */
133133   AM_RANGE(0x2c0000, 0x2c0001) AM_READ_PORT("DSW3")
134   AM_RANGE(0x321100, 0x321101) AM_READ(SMH_NOP) /* Irq ack?  Value not used */
134   AM_RANGE(0x321100, 0x321101) AM_READNOP /* Irq ack?  Value not used */
135135   AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(SMH_RAM)
136136   AM_RANGE(0x3c2000, 0x3c2fff) AM_READ(SMH_RAM)
137137   AM_RANGE(0x3c4000, 0x3c4fff) AM_READ(SMH_RAM)
r4470r4471
152152   AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_WRITE(deco16_104_rohga_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
153153
154154   AM_RANGE(0x300000, 0x300001) AM_WRITE(rohga_buffer_spriteram16_w) /* write 1 for sprite dma */
155   AM_RANGE(0x310000, 0x310009) AM_WRITE(SMH_NOP) /* Palette control? */
155   AM_RANGE(0x310000, 0x310009) AM_WRITENOP /* Palette control? */
156156   AM_RANGE(0x31000a, 0x31000b) AM_WRITE(deco16_palette_dma_w) /* Write 1111 for dma?  (Or any value?) */
157   AM_RANGE(0x320000, 0x320001) AM_WRITE(SMH_NOP) /* ? */
157   AM_RANGE(0x320000, 0x320001) AM_WRITENOP /* ? */
158158   AM_RANGE(0x322000, 0x322001) AM_WRITE(deco16_priority_w)
159159
160160   AM_RANGE(0x3c0000, 0x3c1fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
r4470r4471
202202   AM_RANGE(0x310000, 0x31000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control)
203203
204204   AM_RANGE(0x320000, 0x320001) AM_WRITE(deco16_priority_w) /* Priority */
205   AM_RANGE(0x320002, 0x320003) AM_WRITE(SMH_NOP) /* ? */
206   AM_RANGE(0x320004, 0x320005) AM_WRITE(SMH_NOP) /* VBL IRQ ack */
205   AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
206   AM_RANGE(0x320004, 0x320005) AM_WRITENOP /* VBL IRQ ack */
207207
208208   AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
209209   AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */
r4470r4471
259259   AM_RANGE(0x310000, 0x31000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf34_control)
260260
261261   AM_RANGE(0x320000, 0x320001) AM_WRITE(deco16_priority_w) /* Priority */
262   AM_RANGE(0x320002, 0x320003) AM_WRITE(SMH_NOP) /* ? */
263   AM_RANGE(0x320004, 0x320005) AM_WRITE(SMH_NOP) /* VBL IRQ ack */
262   AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
263   AM_RANGE(0x320004, 0x320005) AM_WRITENOP /* VBL IRQ ack */
264264
265265   AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
266266   AM_RANGE(0x350000, 0x350001) AM_WRITE(buffer_spriteram16_w) /* Triggers DMA for spriteram */
r4470r4471
281281   AM_RANGE(0x2c0000, 0x2c0001) AM_READ_PORT("DSW3")
282282   AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSW3")
283283   AM_RANGE(0x310002, 0x310003) AM_READ_PORT("IN1")
284   AM_RANGE(0x321100, 0x321101) AM_READ(SMH_NOP) /* Irq ack?  Value not used */
284   AM_RANGE(0x321100, 0x321101) AM_READNOP /* Irq ack?  Value not used */
285285   AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(SMH_RAM)
286286   AM_RANGE(0x3c2000, 0x3c2fff) AM_READ(SMH_RAM)
287287   AM_RANGE(0x3c4000, 0x3c4fff) AM_READ(SMH_RAM)
r4470r4471
302302   AM_RANGE(0x280000, 0x2807ff) AM_MIRROR(0x800) AM_WRITE(deco16_104_rohga_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
303303
304304   AM_RANGE(0x300000, 0x300001) AM_WRITE(rohga_buffer_spriteram16_w) /* write 1 for sprite dma */
305   AM_RANGE(0x310000, 0x310009) AM_WRITE(SMH_NOP) /* Palette control? */
305   AM_RANGE(0x310000, 0x310009) AM_WRITENOP /* Palette control? */
306306   AM_RANGE(0x31000a, 0x31000b) AM_WRITE(deco16_palette_dma_w) /* Write 1111 for dma?  (Or any value?) */
307   AM_RANGE(0x320000, 0x320001) AM_WRITE(SMH_NOP) /* ? */
307   AM_RANGE(0x320000, 0x320001) AM_WRITENOP /* ? */
308308   AM_RANGE(0x322000, 0x322001) AM_WRITE(deco16_priority_w)
309309
310310   AM_RANGE(0x3c0000, 0x3c1fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
r4470r4471
324324
325325static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
326326   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
327   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
327   AM_RANGE(0x100000, 0x100001) AM_READNOP
328328   AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
329329   AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki1", okim6295_r)
330330   AM_RANGE(0x130000, 0x130001) AM_DEVREAD("oki2", okim6295_r)
r4470r4471
334334
335335static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
336336   AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
337   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP)
337   AM_RANGE(0x100000, 0x100001) AM_WRITENOP
338338   AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
339339   AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki1", okim6295_w)
340340   AM_RANGE(0x130000, 0x130001) AM_DEVWRITE("oki2", okim6295_w)
src/mame/drivers/vball.c
r4470r4471
204204}
205205
206206
207static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
208   AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM)
207//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches)
208static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
209   AM_RANGE(0x0000, 0x07ff) AM_RAM
210   AM_RANGE(0x0800, 0x08ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
209211   AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1")
210212   AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2")
211213   AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM")
r4470r4471
213215   AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2")
214216   AM_RANGE(0x1005, 0x1005) AM_READ_PORT("P3")
215217   AM_RANGE(0x1006, 0x1006) AM_READ_PORT("P4")
216   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)
217   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
218ADDRESS_MAP_END
219
220static ADDRESS_MAP_START( vball2pj_readmem, ADDRESS_SPACE_PROGRAM, 8 )
221   AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_RAM)
222   AM_RANGE(0x1000, 0x1000) AM_READ_PORT("P1")
223   AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P2")
224   AM_RANGE(0x1002, 0x1002) AM_READ_PORT("SYSTEM")
225   AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW1")
226   AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2")
227   AM_RANGE(0x1005, 0x1005) AM_READ(SMH_RAM)      //Strange, that these are read!
228   AM_RANGE(0x1006, 0x1006) AM_READ(SMH_RAM)      //Strange, that these are read!
229   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)
230   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
231ADDRESS_MAP_END
232
233//Cheaters note: Scores are stored in ram @ 0x57-0x58 (though the space is used for other things between matches)
234static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
235   AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
236   AM_RANGE(0x0800, 0x08ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
237218   AM_RANGE(0x1008, 0x1008) AM_WRITE(vb_scrollx_hi_w)
238219   AM_RANGE(0x1009, 0x1009) AM_WRITE(vb_bankswitch_w)
239220   AM_RANGE(0x100a, 0x100b) AM_WRITE(vball_irq_ack_w)   /* is there a scanline counter here? */
r4470r4471
242223   AM_RANGE(0x100e, 0x100e) AM_WRITE(SMH_RAM) AM_BASE(&vb_scrolly_lo)
243224   AM_RANGE(0x2000, 0x2fff) AM_WRITE(vb_videoram_w) AM_BASE(&vb_videoram)
244225   AM_RANGE(0x3000, 0x3fff) AM_WRITE(vb_attrib_w) AM_BASE(&vb_attribram)
245   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
226   AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1)
227   AM_RANGE(0x8000, 0xffff) AM_ROM
246228ADDRESS_MAP_END
247229
248static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
249   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
250   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
251   AM_RANGE(0x8800, 0x8801) AM_DEVREAD("ym", ym2151_r)
252   AM_RANGE(0x9800, 0x9800) AM_DEVREAD("oki", okim6295_r)
230static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
231   AM_RANGE(0x0000, 0x7fff) AM_ROM
232   AM_RANGE(0x8000, 0x87ff) AM_RAM
233   AM_RANGE(0x8800, 0x8801) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
234   AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
253235   AM_RANGE(0xA000, 0xA000) AM_READ(soundlatch_r)
254236ADDRESS_MAP_END
255237
256static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
257   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
258   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
259   AM_RANGE(0x8800, 0x8801) AM_DEVWRITE("ym", ym2151_w)
260   AM_RANGE(0x9800, 0x9803) AM_DEVWRITE("oki", okim6295_w)
261ADDRESS_MAP_END
262238
263
264239static INPUT_PORTS_START( common )
265240   PORT_START("P1")
266241   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
r4470r4471
317292   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Demo_Sounds ) )
318293   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
319294   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
295
296   PORT_START("P3")
297   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
298
299   PORT_START("P4")
300   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
320301INPUT_PORTS_END
321302
322303static INPUT_PORTS_START( vball )
r4470r4471
349330   PORT_DIPSETTING(    0x80, "2")
350331   PORT_DIPSETTING(    0x00, "4")
351332
352   PORT_START("P3")
333   PORT_MODIFY("P3")
353334   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
354335   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
355336   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
r4470r4471
359340   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
360341   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
361342
362   PORT_START("P4")
343   PORT_MODIFY("P4")
363344   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
364345   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
365346   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
r4470r4471
437418
438419   /* basic machine hardware */
439420    MDRV_CPU_ADD("maincpu", M6502, CPU_CLOCK)   /* 2 MHz - measured by guru but it makes the game far far too slow ?! */
440   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
421   MDRV_CPU_PROGRAM_MAP(main_map, 0)
441422   MDRV_TIMER_ADD_SCANLINE("scantimer", vball_scanline, "screen", 0, 1)
442423
443424   MDRV_CPU_ADD("audiocpu", Z80, 3579545)   /* 3.579545 MHz */
444   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
425   MDRV_CPU_PROGRAM_MAP(sound_map, 0)
445426
446427   /* video hardware */
447428   MDRV_SCREEN_ADD("screen", RASTER)
r4470r4471
469450   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
470451MACHINE_DRIVER_END
471452
472static MACHINE_DRIVER_START( vball2pj )
473   MDRV_IMPORT_FROM(vball)
474453
475   MDRV_CPU_MODIFY("maincpu")
476   MDRV_CPU_PROGRAM_MAP(vball2pj_readmem,writemem)
477MACHINE_DRIVER_END
478
479
480454/***************************************************************************
481455
482456  Game driver(s)
r4470r4471
572546ROM_END
573547
574548
575GAME( 1988, vball,    0,     vball,    vball,    0, ROT0, "Technos", "U.S. Championship V'ball (US)", 0 )
576GAME( 1988, vball2pj, vball, vball2pj, vball2pj, 0, ROT0, "Technos", "U.S. Championship V'ball (Japan)", 0 )
577GAME( 1988, vballb,   vball, vball,    vball,    0, ROT0, "Technos", "U.S. Championship V'ball (bootleg)", 0 )
549GAME( 1988, vball,    0,     vball,    vball,    0, ROT0, "Technos Japan", "U.S. Championship V'ball (US)", 0 )
550GAME( 1988, vball2pj, vball, vball,    vball2pj, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (Japan)", 0 )
551GAME( 1988, vballb,   vball, vball,    vball,    0, ROT0, "Technos Japan", "U.S. Championship V'ball (bootleg)", 0 )
src/mame/drivers/plygonet.c
r4470r4471
582582static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
583583   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
584584   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK2)
585   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_NOP)
585   AM_RANGE(0x0000, 0xbfff) AM_WRITENOP
586586   AM_RANGE(0xc000, 0xdfff) AM_RAM
587587   AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("konami1", k054539_r, k054539_w)
588588   AM_RANGE(0xe230, 0xe3ff) AM_RAM
r4470r4471
592592   AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
593593   AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r)
594594   AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
595   AM_RANGE(0xfff1, 0xfff3) AM_WRITE(SMH_NOP)
595   AM_RANGE(0xfff1, 0xfff3) AM_WRITENOP
596596ADDRESS_MAP_END
597597
598598static const k054539_interface k054539_config =
src/mame/drivers/naomi.c
r4470r4471
1212|----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------|
1313|romname   | Pl(s) | Rot | Test | Boot | Game | Control Type                   | Notes                                               |
1414|----------|-------|-----|------|------|------|--------------------------------|-----------------------------------------------------|
15|gundmgd   |   1   |  H  | Yes  | Yes  | Yes  | twin-joystick with 4+6 buttons |                                                     |
16|sfz3ugd   |   2   |  H  | Yes  | Yes  | No   | joystick with 6 buttons        | Spurious irq on ARM7 prg / broken timings           |
15|gundmgd   |   1   |  H  | Yes  | Yes  | Yes  | joystick with 4 buttons        |                                                     |
16|sfz3ugd   |   2   |  H  | Yes  | Yes  | No   | joystick with 6 buttons        | Hangs after pressing start                          |
1717|cvsgd     |   2   |  H  | Yes  | Yes  | Yes  | joystick with 4 buttons        | 2 + 2 extra buttons                                 |
18|gundmxgd  |   1   |  H  | Yes  | Yes  | Yes  | twin-joystick with 4+6 buttons |                                                     |
18|gundmxgd  |   1   |  H  | Yes  | Yes  | Yes  | joystick with 4+6 buttons      |                                                     |
1919|cvs2gd    |   2   |  H  | Yes  | Yes  | Yes  | joystick with 6 buttons        |                                                     |
20|ikaruga   |   2   |  V  | Yes  | Yes  | No  | joystick with 2 buttons?       | Broken i/o / timings                                |
20|ikaruga   |   2   |  V  | Yes  | Yes  | Yes  | joystick with 3 buttons?       |                                                  |
2121|ggxx      |   2   |  H  | Yes  | Yes  | Yes  | joystick with 5 buttons        |                                                     |
2222|moeru     |   2   |  H  | No   | No   | No   | joystick with 3 buttons?       | Broken i/o, stuck at the "now loading" msg          |
23|chocomk   |   2   |  H  | No?  | Yes  | Yes? | joystick with 3 buttons?       | Broken i/o?                                         |
23|chocomk   |   2   |  H  | Yes  | Yes  | Yes | joystick with 3 buttons?       |                                                    |
2424|quizqgd   |   2   |  V  | Yes  | Yes  | Yes  | joystick(?) with 4 buttons     |                                                     |
2525|ggxxrl    |   2   |  H  | Yes  | Yes  | Yes  | joystick with 5 buttons        |                                                     |
26|tetkiwam  |   2   |  H  | No   | No   | No   | joystick with 3 buttons?       |                                                     |
27|shikgam2  |   2   |  V  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
26|tetkiwam  |   2   |  H  | No   | No   | No   | joystick with 3 buttons?       | Black screen, tests the SCIF (UART) regs?           |
27|shikgam2  |   2   |  V  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o, crashes on the proper gameplay          |
2828|usagui    |   1   |  H  | Yes  | Yes  | No   | mahjong panel                  |                                                     |
29|bdrdown   |   2   |  H  | Yes  | Yes  | No?  | joystick with 3 buttons?       | Broken i/o in test mode                             |
29|bdrdown   |   2   |  H  | Yes  | Yes  | Yes  | joystick with 3 buttons?       |                                                 |
3030|psyvar2   |   1   |  V  | No   | No   | No   | joystick with 3 buttons?       |                                                     |
3131|cfield    |   1?  |  H  | No?  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
3232|trizeal   |   2   |  V  | No   | No   | No   | joystick with 3 buttons?       |                                                     |
33|meltybld  |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract with wrong mask                  |
33|meltybld  |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract/gameplay with wrong mask         |
3434|senko     |   2   |  H  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
3535|senkoo    |   2   |  H  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
3636|ss2005    |   1   |  H  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
r4470r4471
4040|undefeat  |   2   |  V  | No   | No   | No   | joystick with 3 buttons?       | Stuck at the "now loading" msg                      |
4141|trgheart  |   1   |  V  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
4242|jingystm  |   2   |  H  | Yes  | Yes  | No   | joystick with 4 buttons?       | Broken i/o                                          |
43|meltyb    |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract with wrong mask                  |
44|meltyba   |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract with wrong mask                  |
43|meltyb    |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract/gameplay with wrong mask         |
44|meltyba   |   2   |  H  | No?  | Yes  | No?  | joystick with 4 buttons?       | Crashes in attract/gameplay with wrong mask         |
4545|karous    |   1   |  V  | Yes  | Yes  | No   | joystick with 3 buttons?       | Broken i/o                                          |
4646|takoron   |   2   |  H  | Yes  | Yes  | Yes  | joystick with 3 buttons        |                                                     |
4747--------------------------------------------------------------------------------------------------------------------------------------
4848|confmiss  |   2   |  H  | Yes  | Yes  | No   | lightgun                       |                                                     |
4949|sprtjam   |   2   |  H  | Yes  | Yes  | Yes  | joystick with 2 buttons        |                                                     |
50|slashout  |   1   |  H  | Yes  | Yes  | Yes  | joystick with 4 buttons        | Needs to map the extra button                       |
50|slashout  |   1   |  H  | Yes  | Yes  | Yes  | joystick with 4 buttons        |                                                |
5151|spkrbtl   |   2   |  H  | Yes  | Yes  | No   | joystick with 4 buttons        | Crashes when loading the gameplay                   |
5252|monkeyba  |   1   |  H  | Yes  | Yes  | No   | ad stick                       | Crashes when loading the gameplay                   |
5353|dygolf    |   2   |  H  | No   | No   | No   | trackball + 4 buttons          | Moans about the jvs settings                        |
r4470r4471
10571057* Input ports
10581058*/
10591059
1060/* for now we hardwire a joystick + 6 buttons for every game.*/
10601061static INPUT_PORTS_START( naomi )
10611062   PORT_START("IN0")
10621063   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")
r4470r4471
10701071   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 )
10711072   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 )
10721073   PORT_START("IN2")
1074   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 )
1075   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 )
1076   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 )
10731077   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 )
10741078   PORT_START("IN3")
10751079   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START2 )
r4470r4471
10801084   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
10811085   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
10821086   PORT_START("IN4")
1087   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2)
1088   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2)
1089   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2)
10831090   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
10841091
10851092   PORT_START("COINS")
r4470r4471
29732980/* Incomplete Dumps (just the program rom IC22) */
29742981GAME( 2000, cspike,   naomi,    naomi,    naomi,    0, ROT0, "Psikyo / Capcom", "Gun Spike (JPN) / Cannon Spike (USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
29752982GAME( 2000, capsnk,   naomi,    naomi,    naomi,    0, ROT0, "Capcom / SNK",    "Capcom Vs. SNK Millennium Fight 2000 (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
2976GAME( ????, derbyoc,  naomi,    naomi,    naomi,    0, ROT0, "Sega",            "Derby Owners Club (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
2983GAME( 1999, derbyoc,  naomi,    naomi,    naomi,    0, ROT0, "Sega",            "Derby Owners Club (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
29772984GAME( 1998, dybb99,   naomi,    naomi,    naomi,    0, ROT0, "Sega",            "Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
29782985GAME( 2000, gram2000, naomi,    naomi,    naomi,    0, ROT0, "Sega",            "Giant Gram 2000 (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING )
29792986GAME( 1999, ggram2,   naomi,    naomi,    naomi,    0, ROT0, "Sega",            "Giant Gram (JPN, USA, EXP, KOR, AUS)", GAME_NO_SOUND|GAME_NOT_WORKING ) // strings in rom don't contain '2'
r4470r4471
40094016   ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) )
40104017ROM_END
40114018
4019ROM_START( vf4evoa )
4020   NAOMI2_BIOS
4021
4022   ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4023
4024   DISK_REGION( "gdrom" )
4025   DISK_IMAGE_READONLY( "gds-0024a", 0, SHA1(6225e778d73db18be26f882d4f9cd3b3a136d1c9) )
4026
4027   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4028   //PIC16C622A (317-0338-JPN)
4029   //(sticker 253-5508-0338J)
4030   ROM_LOAD("317-0338-jpn.data", 0x00, 0x50, CRC(eeb2c9e9) SHA1(d30b5914c603219daea9923e1cf8da2be6096742) )
4031ROM_END
4032
40124033ROM_START( initdv2j )
40134034   NAOMI2_BIOS
40144035
r4470r4471
40354056   ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) )
40364057ROM_END
40374058
4059ROM_START( vf4tunedd )
4060   NAOMI2_BIOS
4061
4062   ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4063
4064   DISK_REGION( "gdrom" )
4065   DISK_IMAGE_READONLY( "gds-0036d", 0, SHA1(2f7654307a4c978c5af6c8238c44e70275dd34f9) )
4066
4067   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4068   //PIC16C622A (317-0387-COM)
4069   //(sticker 253-5508-0387)
4070   ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) )
4071ROM_END
4072
4073
4074ROM_START( vf4tuneda )
4075   NAOMI2_BIOS
4076
4077   ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4078
4079   DISK_REGION( "gdrom" )
4080   DISK_IMAGE_READONLY( "gds-0036a", 0, SHA1(cd630fc4e8f7ed5641b85c609584d7efe0eac137) )
4081
4082   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4083   //PIC16C622A (317-0387-COM)
4084   //(sticker 253-5508-0387)
4085   ROM_LOAD("317-0387-com.data", 0x00, 0x50, CRC(ab9f3851) SHA1(8b64dc6df176eb7adb48267709a27db221d5e3c3) )
4086ROM_END
4087
4088
40384089/*
40394090
40404091Title   BEACH SPIKERS
r4470r4471
40984149   DISK_REGION( "gdrom" )
40994150   DISK_IMAGE_READONLY( "gds-0025", 0, SHA1(8ea92cf6b493f21b9453832edad7cbc5e5b350c1) )
41004151
4101   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)  // key supplied was bad
4152   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
41024153   ROM_LOAD("317-0343-com.data", 0x00, 0x50, CRC(e9d8fac0) SHA1(85f5bbffbd9d1f7162bae46ddd49e7870fe93662) )
41034154ROM_END
41044155
4156ROM_START( initdv3j )
4157   NAOMI2_BIOS
4158//  NAOMIGD_BIOS
4159
4160   ROM_REGION( 0x10000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4161
4162   DISK_REGION( "gdrom" )
4163   DISK_IMAGE_READONLY( "gds-0032b", 0, SHA1(568411aa72ca308a03a6b5b61c79833464b88bc6) )
4164
4165   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4166   ROM_LOAD("gds-0032_pic", 0x00, 0x50, NO_DUMP ) // PIC was missing
4167ROM_END
4168
4169
41054170GAME( 2001, naomi2,   0,        naomi,    naomi,    0, ROT0, "Sega",            "Naomi 2 Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
41064171
41074172//Naomi 2 Cart Games
r4470r4471
41164181GAME( 2002, beachspi,naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Beach Spikers (GDS-0014)", GAME_NO_SOUND|GAME_NOT_WORKING )
41174182GAME( 2002, initdexp,naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Initial D Arcade Stage (Export) (GDS-0025)", GAME_NO_SOUND|GAME_NOT_WORKING )
41184183GAME( 2002, vf4evo,  naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Virtua Fighter 4 Evolution (Rev B) (GDS-0024B)", GAME_NO_SOUND|GAME_NOT_WORKING )
4184GAME( 2002, vf4evoa, vf4evo,  naomigd,    naomi,    0,  ROT0, "Sega",          "Virtua Fighter 4 Evolution (Rev A) (GDS-0024A)", GAME_NO_SOUND|GAME_NOT_WORKING )
41194185GAME( 2002, initdv2j,naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Initial D : Arcade Stage Ver. 2 (Japan) (GDS-0026)", GAME_NO_SOUND|GAME_NOT_WORKING )
4186GAME( 2004, initdv3j,naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Initial D : Arcade Stage Ver. 3 (Japan) (Rev B) (GDS-0032B)", GAME_NO_SOUND|GAME_NOT_WORKING )
41204187GAME( 2004, vf4tuned,naomi2,  naomigd,    naomi,    0,  ROT0, "Sega",          "Virtua Fighter 4 Final Tuned (Rev F) (GDS-0036F)", GAME_NO_SOUND|GAME_NOT_WORKING )
4188GAME( 2004, vf4tunedd,vf4tuned,naomigd,   naomi,    0,  ROT0, "Sega",          "Virtua Fighter 4 Final Tuned (Rev D) (GDS-0036D)", GAME_NO_SOUND|GAME_NOT_WORKING )
4189GAME( 2004, vf4tuneda,vf4tuned,naomigd,   naomi,    0,  ROT0, "Sega",          "Virtua Fighter 4 Final Tuned (Rev A) (GDS-0036A)", GAME_NO_SOUND|GAME_NOT_WORKING )
41214190
41224191
41234192/* Atomiswave */
r4470r4471
41434212ROM_END
41444213
41454214/*
4215Title   VIRTUA_STRIKER_2002
4216Media ID    0DD8
4217Media Config    GD-ROM1/1
4218Regions J
4219Peripheral String   0000000
4220Product Number  GDT-0002
4221Version V1.005
4222Release Date    20020730
41464223
4224
4225PIC
4226
4227253-5508-337E
4228317-0337-EXP
4229*/
4230
4231ROM_START( vs2002ex )
4232   TRIFORCE_BIOS
4233   //NAOMIGD_BIOS
4234
4235   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4236
4237   DISK_REGION( "gdrom" )
4238   DISK_IMAGE_READONLY( "gdt-0002", 0, SHA1(471e896d43167c93cc229cfc94ff7ac6de7cf9a4) )
4239
4240   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4241   ROM_LOAD("317-0337-exp.data", 0x00, 0x50, CRC(aa6be604) SHA1(fabc43ecfb7ddf1d5a87f10884852027d6f4773b) )
4242ROM_END
4243
4244
4245ROM_START( gekpurya )
4246   TRIFORCE_BIOS
4247   //NAOMIGD_BIOS
4248
4249   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4250
4251   DISK_REGION( "gdrom" )
4252   DISK_IMAGE_READONLY( "gdt-0008c", 0, SHA1(2c1bdb8324efc216edd771fe45c680ac726111a0) )
4253
4254   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4255   ROM_LOAD("gdt-0008c.data", 0x00, 0x50, CRC(08434e5e) SHA1(2121999e851f6f62ab845e6de40849d850ac9d1c) )
4256ROM_END
4257
4258ROM_START( tfupdate )
4259   TRIFORCE_BIOS
4260   //NAOMIGD_BIOS
4261
4262   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4263
4264   DISK_REGION( "gdrom" )
4265   DISK_IMAGE_READONLY( "gdt-0011", 0, SHA1(71bfa8f53d211085c020d54f55eeeabf85212a0b) )
4266
4267   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4268   ROM_LOAD("gdt-0011.data", 0x00, 0x50, CRC(08434e5e) SHA1(2121999e851f6f62ab845e6de40849d850ac9d1c) )
4269ROM_END
4270
4271
4272/*
4273
41474274Title   VIRTUA STRIKER 4
41484275Media ID    93B2
41494276Media Config    GD-ROM1/1
r4470r4471
41794306   ROM_LOAD("317-0393-exp.data", 0x00, 0x50, CRC(2dcfecd7) SHA1(d805168e1564051ae5c47876ade2c9843253c6b4) )
41804307ROM_END
41814308
4309
41824310/*
4183Title   VIRTUA_STRIKER_2002
4184Media ID    0DD8
4311
4312Title   TRF GDROM TBA EX SATL
4313Media ID    92C5
41854314Media Config    GD-ROM1/1
41864315Regions J
41874316Peripheral String   0000000
4188Product Number  GDT-0002
4189Version V1.005
4190Release Date    20020730
4317Product Number  GDT-0010C
4318Version V4.000
4319Release Date    20040608
4320Manufacturer ID
41914321
4192
4193PIC
4194
4195253-5508-337E
4196317-0337-EXP
4322TOC DISC
4323Track   Start Sector    End Sector  Track Size
4324track01.bin 150 599 1058400
4325track02.raw 750 2101    3179904
4326track03.bin 45150   549299  1185760800
41974327*/
41984328
4199ROM_START( vs2002ex )
4329ROM_START( avalon13 )
42004330   TRIFORCE_BIOS
42014331   //NAOMIGD_BIOS
42024332
42034333   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
42044334
42054335   DISK_REGION( "gdrom" )
4206   DISK_IMAGE_READONLY( "gdt-0002", 0, SHA1(471e896d43167c93cc229cfc94ff7ac6de7cf9a4) )
4336   DISK_IMAGE_READONLY( "gdt-0010c", 0, SHA1(716c441d8dc9036a13c66ef0048cd6d32ac63c4e) )
42074337
42084338   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4209   ROM_LOAD("317-0337-exp.data", 0x00, 0x50, CRC(aa6be604) SHA1(fabc43ecfb7ddf1d5a87f10884852027d6f4773b) )
4339   ROM_LOAD("gdt-0010c.data", 0x00, 0x50, CRC(6c51e5d6) SHA1(84afef983f1f855fe8722f55baa8ea5121da9369) )
42104340ROM_END
42114341
42124342
4213ROM_START( gekpurya )
4343/*
4344
4345Title   TRF GDROM TBT SATL
4346Media ID    1348
4347Media Config    GD-ROM1/1
4348Regions J
4349Peripheral String   0000000
4350Product Number  GDT-0017B
4351Version V3.001
4352Release Date    20041102
4353Manufacturer ID
4354
4355TOC DISC
4356Track   Start Sector    End Sector  Track Size
4357track01.bin 150 599 1058400
4358track02.raw 750 2101    3179904
4359track03.bin 45150   549299  1185760800
4360
4361*/
4362
4363ROM_START( avalon20 )
42144364   TRIFORCE_BIOS
42154365   //NAOMIGD_BIOS
42164366
42174367   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
42184368
42194369   DISK_REGION( "gdrom" )
4220   DISK_IMAGE_READONLY( "gdt-0008c", 0, SHA1(2c1bdb8324efc216edd771fe45c680ac726111a0) )
4370   DISK_IMAGE_READONLY( "gdt-0017b", 0, SHA1(e2dd32c322ffcaf38b82275d2721b71bb3dfc1f2) )
42214371
42224372   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4223   ROM_LOAD("gdt-0008c.data", 0x00, 0x50, CRC(08434e5e) SHA1(2121999e851f6f62ab845e6de40849d850ac9d1c) )
4373   ROM_LOAD("gdt-0017b.data", 0x00, 0x50, CRC(32cb46d4) SHA1(a58b9e03d57b317133d9b6c29e42852af8e77559) )
42244374ROM_END
42254375
42264376
42274377
4228GAME( 200?, triforce, 0,        naomigd,    naomi,    0, ROT0, "Sega",           "Triforce Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
4378GAME( 2002, triforce, 0,        naomigd,    naomi,    0, ROT0, "Sega",           "Triforce Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
42294379GAME( 2002, vs2002ex, triforce, naomigd,    naomi,    0, ROT0, "Sega",           "Virtua Striker 2002 (GDT-0002)", GAME_NO_SOUND|GAME_NOT_WORKING )
42304380GAME( 2003, gekpurya, triforce, naomigd,    naomi,    0, ROT0, "Sega",           "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev C) (GDT-0008C)", GAME_NO_SOUND|GAME_NOT_WORKING )
4231GAME( 200?, vs4,      triforce, naomigd,    naomi,    0, ROT0, "Sega",           "Virtua Striker 4 (GDT-0015)", GAME_NO_SOUND|GAME_NOT_WORKING )
4381GAME( 200?, tfupdate, triforce, naomigd,    naomi,    0, ROT0, "Sega",           "Triforce DIMM Updater (GDT-0011)", GAME_NO_SOUND|GAME_NOT_WORKING )
4382GAME( 2004, vs4,      triforce, naomigd,    naomi,    0, ROT0, "Sega",           "Virtua Striker 4 (GDT-0015)", GAME_NO_SOUND|GAME_NOT_WORKING )
4383GAME( 2004, avalon13, triforce, naomigd,    naomi,    0, ROT0, "Sega",           "The Key Of Avalon 1.3 - Chaotic Sabbat - Client (GDT-0010C) (V4.000)", GAME_NO_SOUND|GAME_NOT_WORKING )
4384GAME( 2004, avalon20, triforce, naomigd,    naomi,    0, ROT0, "Sega",           "The Key Of Avalon 2.0 - Eutaxy and Commandment - Client (GDT-0017B) (V3.001)", GAME_NO_SOUND|GAME_NOT_WORKING )
42324385
42334386
42344387/*********************************************************************************************************************
r4470r4471
43144467   ROM_LOAD("317-0354-com.data", 0x00, 0x50,  CRC(df7e3217) SHA1(9f0f4bf6b15f3b6eeea81eaa27b3d25bd94110da) )
43154468ROM_END
43164469
4470ROM_START( mj2 )
4471   CHIHIRO_BIOS
4472
4473   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4474
4475   DISK_REGION( "gdrom" )
4476   DISK_IMAGE_READONLY( "gdx-0006c", 0, SHA1(505653117a73ed8b256ccf19450e7573a4dc57e9) )
4477
4478   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // key was missing
4479   ROM_LOAD("gdx-0006c.pic_data", 0x00, 0x50, NO_DUMP )
4480ROM_END
4481
4482
43174483ROM_START( wangmid )
43184484   CHIHIRO_BIOS
43194485
r4470r4471
43264492   ROM_LOAD("gdx-0009b.data", 0x00, 0x50, CRC(3af801f3) SHA1(e9a2558930f3f1f55d5b3c2cadad69329d931f26) )
43274493ROM_END
43284494
4495ROM_START( wangmid2 )
4496   CHIHIRO_BIOS
43294497
4498   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4499
4500   DISK_REGION( "gdrom" )
4501   DISK_IMAGE_READONLY( "gdx-0015", 0, SHA1(259483fd211a70c23205ffd852316d616c5a2740) )
4502
4503   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE)
4504   ROM_LOAD("gdx-0015.data", 0x00, 0x50, CRC(75c716aa) SHA1(5c2bcf3d28a80b336c6882d5aeb010d04327f8c1) )
4505ROM_END
4506
4507ROM_START( mj3 )
4508   CHIHIRO_BIOS
4509
4510   ROM_REGION( 0x20000000, "user1", ROMREGION_ERASE) // allocate max size in init instead?
4511
4512   DISK_REGION( "gdrom" )
4513   DISK_IMAGE_READONLY( "gdx-0017d", 0, SHA1(cfbbd452c8f4efe0e99f398f5521fc3574b913bb) )
4514
4515   ROM_REGION( 0x50, "picreturn", ROMREGION_ERASE) // key was missing
4516   ROM_LOAD("gdx-0017d.pic_data", 0x00, 0x50, NO_DUMP )
4517ROM_END
4518
4519
43304520GAME( 200?, chihiro,  0,       naomigd,    naomi,    0, ROT0, "Sega",           "Chihiro Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
4331GAME( 2005, wangmid,  chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Wangan Midnight Maximum Tune (Ver. B) (Export) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING )
4521GAME( 2005, mj2,      chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Sega Network Taisen Mahjong MJ 2 (Rev C) [GDX-0006C]", GAME_NO_SOUND|GAME_NOT_WORKING )
4522GAME( 2005, wangmid,  chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Wangan Midnight Maximum Tune (Rev. B) (Export) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING )
4523GAME( 2005, wangmid2, chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Wangan Midnight Maximum Tune 2 (Japan?) (GDX-0015)", GAME_NO_SOUND|GAME_NOT_WORKING )
43324524GAME( 2005, ghostsqu, chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Ghost Squad (Ver. A?) (GDX-0012A)", GAME_NO_SOUND|GAME_NOT_WORKING )
43334525GAME( 2003, vcop3,    chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Virtua Cop 3 (GDX-0003A)", GAME_NO_SOUND|GAME_NOT_WORKING )
4526GAME( 2005, mj3,      chihiro, naomigd,    naomi,    0, ROT0, "Sega",           "Sega Network Taisen Mahjong MJ 3 (Rev D) [GDX-0017D]", GAME_NO_SOUND|GAME_NOT_WORKING )
43344527
43354528
src/mame/drivers/nemesis.c
r4470r4471
5050#include "sound/k007232.h"
5151#include "sound/k051649.h"
5252#include "includes/nemesis.h"
53#include "konamipt.h"
5354
54
5555int nemesis_irq_on = 0;
5656int nemesis_irq2_on = 0;
5757static int nemesis_irq1_on = 0;
r4470r4471
407407   AM_RANGE(0x05e002, 0x05e003) AM_WRITE(&gx400_irq1_enable_word_w)   /* ?? */
408408   AM_RANGE(0x05e004, 0x05e005) AM_WRITE(nemesis_gfx_flipx_word_w)
409409   AM_RANGE(0x05e006, 0x05e007) AM_WRITE(nemesis_gfx_flipy_word_w)
410   AM_RANGE(0x05e008, 0x05e009) AM_WRITE(SMH_NOP)   /* IRQ acknowledge??? */
410   AM_RANGE(0x05e008, 0x05e009) AM_WRITENOP   /* IRQ acknowledge??? */
411411   AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(&gx400_irq4_enable_word_w)   /* ?? */
412412   AM_RANGE(0x060000, 0x067fff) AM_RAM         /* WORK RAM */
413413   AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r)
r4470r4471
628628
629629/******************************************************************************/
630630
631#define GX400_COINAGE_DIP \
632   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:1,2,3,4")   \
633   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) ) \
634   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) ) \
635   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) ) \
636   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) ) \
637   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) ) \
638   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) ) \
639   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) ) \
640   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) ) \
641   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) ) \
642   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) ) \
643   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) ) \
644   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) ) \
645   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) ) \
646   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) ) \
647   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) ) \
648   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
649   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:5,6,7,8") \
650   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) ) \
651   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) ) \
652   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) ) \
653   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) ) \
654   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) ) \
655   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
656   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) ) \
657   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) ) \
658   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) ) \
659   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) ) \
660   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) ) \
661   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) ) \
662   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) ) \
663   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) ) \
664   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) ) \
665   PORT_DIPSETTING(    0x00, "Disabled" )
666
667
668631static INPUT_PORTS_START( nemesis )
669632   PORT_START("IN0")
670633   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
r4470r4471
711674   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
712675
713676   PORT_START("DSW0")
714   GX400_COINAGE_DIP
677   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SWA)
678   /* "None" = coin slot B disabled */
715679
716680   PORT_START("DSW1")
717681   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
739703
740704
741705static INPUT_PORTS_START( nemesuk )
742   PORT_START("IN0")
743   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
744   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
745   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
746   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
747   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
748   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
749   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
750   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
706   PORT_INCLUDE( nemesis )
751707
752   PORT_START("IN1")
753   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
754   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
755   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
756   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
757   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)   // power-up
758   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1)   // shoot
759   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)   // missile
760   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
761
762   PORT_START("IN2")
763   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
764   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
765   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
766   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
767   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
768   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
769   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
770   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
771
772   PORT_START("TEST")
773   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
774   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
775   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
776   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Version ) ) PORT_DIPLOCATION("SWT:2")
777   PORT_DIPSETTING(    0x02, DEF_STR( Normal ) )
778   PORT_DIPSETTING(    0x00, "Vs" )
779   PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWT:3" )
780   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
781   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
782   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
783   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
784   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
785
786   PORT_START("DSW0")
787   GX400_COINAGE_DIP
788
789   PORT_START("DSW1")
708   PORT_MODIFY("DSW1")
790709   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
791710   PORT_DIPSETTING(    0x03, "2" )
792711   PORT_DIPSETTING(    0x02, "3" )
793712   PORT_DIPSETTING(    0x01, "5" )
794713   PORT_DIPSETTING(    0x00, "7" )
795   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
796   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
797   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
798714   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,5")
799715   PORT_DIPSETTING(    0x18, "20k and every 70k" )
800716   PORT_DIPSETTING(    0x10, "30k and every 80k" )
801717   PORT_DIPSETTING(    0x08, "20k" )
802718   PORT_DIPSETTING(    0x00, "30k" )
803   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:6,7")
804   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
805   PORT_DIPSETTING(    0x40, DEF_STR( Medium ) )
806   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
807   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
808   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:8")
809   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
810   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
811719INPUT_PORTS_END
812720
813721
r4470r4471
830738   PORT_START("IN2")
831739   PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
832740
741   PORT_START("IN3")
742   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
743   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
744//  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
745
833746   PORT_START("TEST")
834747   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
835748   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
r4470r4471
845758   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
846759
847760   PORT_START("DSW0")
848   GX400_COINAGE_DIP
761   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA)
762   /* "No Coin B" = coins produce sound, but no effect on coin counter */
849763
850764   PORT_START("DSW1")
851765   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
r4470r4471
874788
875789   PORT_START("PADDLE")
876790   PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
877
878   PORT_START("IN3")
879   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
880   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
881//  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
882791INPUT_PORTS_END
883792
884793
r4470r4471
901810   PORT_START("IN2")
902811   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
903812
813   PORT_START("IN3")
814   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
815   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
816//  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
817
904818   PORT_START("TEST")
905819   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
906820   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
r4470r4471
916830   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
917831
918832   PORT_START("DSW0")
919   GX400_COINAGE_DIP
833   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA)
834   /* "No Coin B" = coins produce sound, but no effect on coin counter */
920835
921836   PORT_START("DSW1")
922837   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:1")
r4470r4471
945860
946861   PORT_START("PADDLE")
947862   PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
948
949   PORT_START("IN3")
950   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
951   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
952//  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
953863INPUT_PORTS_END
954864
955865
956866static INPUT_PORTS_START( gwarrior )
957867   PORT_START("IN0")
958   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
959   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
960   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
961   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
962   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
963   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
964   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
965   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
868   KONAMI8_SYSTEM_UNK
966869
967870   PORT_START("IN1")
968   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
969   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
970   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
971   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
972   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
973   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
974   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
871   KONAMI8_B321(1)
975872   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
976873
977874   PORT_START("IN2")
978   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
979   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
980   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
981   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
982   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
983   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
984   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
875   KONAMI8_B321(2)
985876   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
986877
987878   PORT_START("TEST")
r4470r4471
999890   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1000891
1001892   PORT_START("DSW0")
1002   GX400_COINAGE_DIP
893   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA)
894   /* "No Coin B" = coins produce sound, but no effect on coin counter */
1003895
1004896   PORT_START("DSW1")
1005897   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
1028920
1029921static INPUT_PORTS_START( twinbee )
1030922   PORT_START("IN0")
1031   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1032   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1033   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1034   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1035   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1036   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1037   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1038   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
923   KONAMI8_SYSTEM_UNK
1039924
1040925   PORT_START("IN1")
1041   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1042   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1043   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1044   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1045   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1046   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1047   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1048   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
926   KONAMI8_B12_UNK(1)
1049927
1050928   PORT_START("IN2")
1051   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1052   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1053   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1054   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1055   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1056   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1057   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1058   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
929   KONAMI8_B12_UNK(2)
1059930
1060931   PORT_START("TEST")
1061932   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
r4470r4471
1072943   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1073944
1074945   PORT_START("DSW0")
1075   GX400_COINAGE_DIP
946   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SWA)
947   /* "No Coin B" = coins produce sound, but no effect on coin counter */
1076948
1077949   PORT_START("DSW1")
1078950   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
1101973
1102974static INPUT_PORTS_START( gradius )
1103975   PORT_START("IN0")
1104   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1105   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1106   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1107   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1108   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1109   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1110   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1111   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
976   KONAMI8_SYSTEM_UNK
1112977
1113978   PORT_START("IN1")
1114   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1115   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1116   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1117   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1118   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)      // power-up
1119   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)      // shoot
1120   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)      // missile
979   KONAMI8_B132(1)                        // button1 = power-up, button3 = shoot, button2 = missile
1121980   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1122981
1123982   PORT_START("IN2")
1124   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1125   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1126   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1127   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1128   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1129   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1130   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
983   KONAMI8_B132(2)
1131984   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1132985
1133986   PORT_START("TEST")
r4470r4471
1145998   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1146999
11471000   PORT_START("DSW0")
1148   GX400_COINAGE_DIP
1001   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SWA)
1002   /* "None" = coin slot B disabled */
11491003
11501004   PORT_START("DSW1")
11511005   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
13031157   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
13041158
13051159   PORT_START("DSW0")
1306   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4")
1307   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1308   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1309   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1310   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1311   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1312   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1313   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1314   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1315   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1316   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1317   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1318   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1319   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1320   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1321   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1322   PORT_DIPSETTING(    0x00, "Disabled" )
1323   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8")
1324   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1325   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1326   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1327   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1328   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1329   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1330   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1331   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1332   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1333   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1334   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1335   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1336   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1337   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1338   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1339   PORT_DIPSETTING(    0x00, "Disabled" )
1160   KONAMI_COINAGE_LOC("Invalid", "Invalid", SW0)
1161   /* "Invalid" = both coin slots disabled */
13401162
13411163   PORT_START("DSW1")
13421164   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
13991221   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
14001222
14011223   PORT_START("DSW0")
1402   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4")
1403   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1404   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1405   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1406   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1407   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1408   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1409   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1410   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1411   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1412   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1413   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1414   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1415   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1416   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1417   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1418   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1419   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8")
1420   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1421   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1422   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1423   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1424   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1425   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1426   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1427   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1428   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1429   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1430   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1431   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1432   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1433   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1434   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1435   PORT_DIPSETTING(    0x00, "Disabled" )
1224   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), DEF_STR( None ), SW0)
1225   /* "None" = coin slot B disabled */
14361226
14371227   PORT_START("DSW1")
14381228   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
14601250
14611251static INPUT_PORTS_START( citybomb )
14621252   PORT_START("IN0")
1463   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
1464   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
1465   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1466   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1467   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1253   KONAMI8_SYSTEM_10
14681254   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
14691255   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
14701256   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
r4470r4471
14741260   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:3" )
14751261
14761262   PORT_START("IN1")
1477   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1478   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1479   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1480   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1481   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1482   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1483   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1263   KONAMI8_B123(1)
14841264   PORT_DIPNAME( 0x80, 0x80, "Device Type" ) PORT_DIPLOCATION("SWT:4")
14851265   PORT_DIPSETTING(    0x00, "Handle" )
14861266   PORT_DIPSETTING(    0x80, DEF_STR( Joystick ) )
14871267
14881268   PORT_START("IN2")
1489   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1490   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1491   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1492   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1493   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1494   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1495   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1496   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1269   KONAMI8_B123_UNK(2)
14971270
14981271   PORT_START("DSW0")
1499   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4")
1500   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1501   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1502   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1503   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1504   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1505   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1506   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1507   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1508   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1509   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1510   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1511   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1512   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1513   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1514   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1515   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1516   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8")
1517   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1518   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1519   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1520   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1521   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1522   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1523   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1524   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1525   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1526   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1527   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1528   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1529   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1530   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1531   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1532   PORT_DIPSETTING(    0x00, "Disabled" )
1272   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW0)
1273   /* "Invalid" = both coin slots disabled */
15331274
15341275   PORT_START("DSW1")
15351276   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
r4470r4471
15511292
15521293   /* WEC Le Mans 24 specific control? */
15531294   PORT_START("ACCEL")      /* Accelerator */
1554   PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
1295   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
15551296
15561297   PORT_START("WHEEL")      /* Steering Wheel */
15571298   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
r4470r4471
15591300
15601301static INPUT_PORTS_START( nyanpani )
15611302   PORT_START("IN0")
1562   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
1563   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
1564   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1565   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
1566   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
1303   KONAMI8_SYSTEM_10
15671304   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
15681305   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
15691306   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
15711308   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:2" )
15721309
15731310   PORT_START("IN1")
1574   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1575   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1576   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1577   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1578   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1579   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1580   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1581   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1311   KONAMI8_B123_UNK(1)
15821312
15831313   PORT_START("IN2")
1584   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1585   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1586   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1587   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1588   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1589   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1590   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
1591   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
1314   KONAMI8_B123_UNK(2)
15921315
15931316   PORT_START("DSW0")
1594   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0:1,2,3,4")
1595   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
1596   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
1597   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
1598   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
1599   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
1600   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
1601   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
1602   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
1603   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
1604   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
1605   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
1606   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
1607   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
1608   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
1609   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
1610   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1611   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW0:5,6,7,8")
1612   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
1613   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
1614   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
1615   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
1616   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
1617   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
1618   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
1619   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
1620   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
1621   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
1622   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
1623   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
1624   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
1625   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
1626   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1627   PORT_DIPSETTING(    0x00, "Disabled" )
1317   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW0)
1318   /* "Invalid" = both coin slots disabled */
16281319
16291320   PORT_START("DSW1")
16301321   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
16571348   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
16581349   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
16591350   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
1660   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (WEC Le Mans 24 cabinet)")
1351   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x03, PORTCOND_EQUALS, 0x02)      // only in WEC Le Mans 24 cabinets
1352   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x03, PORTCOND_NOTEQUALS, 0x02)
16611353   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON3 )
16621354   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_SPECIAL )   // must be 0 otherwise game freezes when using WEC Le Mans 24 cabinet
16631355   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
r4470r4471
16911383   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
16921384
16931385   PORT_START("DSW0")
1694   GX400_COINAGE_DIP
1386   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SWA)
1387   /* "Invalid" = both coin slots disabled */
16951388
16961389   PORT_START("DSW1")
16971390   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1,2")
r4470r4471
17221415   PORT_BIT( 0x7f, 0x40, IPT_PADDLE ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
17231416
17241417   PORT_START("IN3")
1725   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Brake (Konami GT cabinet)")
1418   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CONDITION("DSW1", 0x03, PORTCOND_EQUALS, 0x01)      // only in Konami GT cabinet with brake
1419   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_CONDITION("DSW1", 0x03, PORTCOND_NOTEQUALS, 0x01)
17261420   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
17271421//  PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON4 )
17281422
17291423   /* WEC Le Mans 24 specific control */
17301424   PORT_START("ACCEL")      /* Accelerator */
1731   PORT_BIT( 0xff, 0, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
1425   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0,0x80) PORT_SENSITIVITY(30) PORT_KEYDELTA(10)
17321426
17331427   PORT_START("WHEEL")      /* Steering Wheel */
17341428   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
src/mame/drivers/magmax.c
r4470r4471
230230   AM_RANGE(0x030012, 0x030013) AM_WRITE(SMH_RAM) AM_BASE(&magmax_scroll_x)
231231   AM_RANGE(0x030014, 0x030015) AM_WRITE(SMH_RAM) AM_BASE(&magmax_scroll_y)
232232   AM_RANGE(0x03001c, 0x03001d) AM_WRITE(magmax_sound_w)
233   AM_RANGE(0x03001e, 0x03001f) AM_WRITE(SMH_NOP)   /* IRQ ack */
233   AM_RANGE(0x03001e, 0x03001f) AM_WRITENOP   /* IRQ ack */
234234ADDRESS_MAP_END
235235
236236static ADDRESS_MAP_START( magmax_soundreadmem, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/timelimt.c
r4470r4471
5555
5656/***************************************************************************/
5757
58static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
59   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)      /* rom */
60   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)      /* ram */
61   AM_RANGE(0x8800, 0x8bff) AM_READ(SMH_RAM)      /* video ram */
62   AM_RANGE(0x9000, 0x97ff) AM_READ(SMH_RAM)      /* background ram */
63   AM_RANGE(0x9800, 0x98ff) AM_READ(SMH_RAM)      /* sprite ram */
58static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
59   AM_RANGE(0x0000, 0x7fff) AM_ROM      /* rom */
60   AM_RANGE(0x8000, 0x87ff) AM_RAM      /* ram */
61   AM_RANGE(0x8800, 0x8bff) AM_RAM_WRITE(timelimt_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)   /* video ram */
62   AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(timelimt_bg_videoram_w) AM_BASE(&timelimt_bg_videoram) AM_SIZE(&timelimt_bg_videoram_size)/* background ram */
63   AM_RANGE(0x9800, 0x98ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)   /* sprite ram */
6464   AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
6565   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
6666   AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
67   AM_RANGE(0xb800, 0xb800) AM_READ(SMH_NOP)      /* NMI ack? */
68ADDRESS_MAP_END
69
70static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
71   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)      /* rom */
72   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)      /* ram */
73   AM_RANGE(0x8800, 0x8bff) AM_WRITE(timelimt_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)   /* video ram */
74   AM_RANGE(0x9000, 0x97ff) AM_WRITE(timelimt_bg_videoram_w) AM_BASE(&timelimt_bg_videoram) AM_SIZE(&timelimt_bg_videoram_size)/* background ram */
75   AM_RANGE(0x9800, 0x98ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)   /* sprite ram */
7667   AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w)   /* nmi enable */
7768   AM_RANGE(0xb003, 0xb003) AM_WRITE(sound_reset_w)/* sound reset ? */
7869   AM_RANGE(0xb800, 0xb800) AM_WRITE(soundlatch_w) /* sound write */
70   AM_RANGE(0xb800, 0xb800) AM_READNOP      /* NMI ack? */
7971   AM_RANGE(0xc800, 0xc800) AM_WRITE(timelimt_scroll_x_lsb_w)
8072   AM_RANGE(0xc801, 0xc801) AM_WRITE(timelimt_scroll_x_msb_w)
8173   AM_RANGE(0xc802, 0xc802) AM_WRITE(timelimt_scroll_y_w)
82   AM_RANGE(0xc803, 0xc803) AM_WRITE(SMH_NOP)      /* ???? bit 0 used only */
83   AM_RANGE(0xc804, 0xc804) AM_WRITE(SMH_NOP)      /* ???? not used */
74   AM_RANGE(0xc803, 0xc803) AM_WRITENOP      /* ???? bit 0 used only */
75   AM_RANGE(0xc804, 0xc804) AM_WRITENOP      /* ???? not used */
8476ADDRESS_MAP_END
8577
86static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
78static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
8779   ADDRESS_MAP_GLOBAL_MASK(0xff)
8880   AM_RANGE(0x00, 0x00) AM_READ(watchdog_reset_r)
8981ADDRESS_MAP_END
9082
91static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
92   AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
93   AM_RANGE(0x3800, 0x3bff) AM_READ(SMH_RAM)
83static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
84   AM_RANGE(0x0000, 0x1fff) AM_ROM
85   AM_RANGE(0x3800, 0x3bff) AM_RAM
9486ADDRESS_MAP_END
9587
96static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
97   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
98   AM_RANGE(0x3800, 0x3bff) AM_WRITE(SMH_RAM)
99ADDRESS_MAP_END
100
10188static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
10289   ADDRESS_MAP_GLOBAL_MASK(0xff)
10390   AM_RANGE(0x00, 0x00) AM_WRITE(soundlatch_clear_w)
r4470r4471
258245
259246   /* basic machine hardware */
260247   MDRV_CPU_ADD("maincpu", Z80, 5000000)   /* 5.000 MHz */
261   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
262   MDRV_CPU_IO_MAP(io_map,0)
248   MDRV_CPU_PROGRAM_MAP(main_map,0)
249   MDRV_CPU_IO_MAP(main_io_map,0)
263250   MDRV_CPU_VBLANK_INT("screen", timelimt_irq)
264251
265252   MDRV_CPU_ADD("audiocpu", Z80,18432000/6)   /* 3.072 MHz */
266   MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
253   MDRV_CPU_PROGRAM_MAP(sound_map,0)
267254   MDRV_CPU_IO_MAP(sound_io_map,0)
268255   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) /* ? */
269256
src/mame/drivers/warriorb.c
r4470r4471
218218   AM_RANGE(0x000000, 0x0fffff) AM_ROM
219219   AM_RANGE(0x100000, 0x10ffff) AM_RAM      /* main ram */
220220   AM_RANGE(0x200000, 0x213fff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_dual_screen_w)   /* tilemaps (all screens) */
221   AM_RANGE(0x214000, 0x2141ff) AM_WRITE(SMH_NOP)                                 /* error in screen clearing code ? */
221   AM_RANGE(0x214000, 0x2141ff) AM_WRITENOP                                 /* error in screen clearing code ? */
222222   AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
223223   AM_RANGE(0x240000, 0x253fff) AM_READWRITE(TC0100SCN_word_1_r, TC0100SCN_word_1_w)      /* tilemaps (2nd screen) */
224224   AM_RANGE(0x260000, 0x26000f) AM_READWRITE(TC0100SCN_ctrl_word_1_r, TC0100SCN_ctrl_word_1_w)
r4470r4471
226226   AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w)   /* palette (2nd screen) */
227227   AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
228228   AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
229//  AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP)    // ???
229//  AM_RANGE(0x820000, 0x820001) AM_WRITENOP    // ???
230230   AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
231231ADDRESS_MAP_END
232232
r4470r4471
241241   AM_RANGE(0x420000, 0x420007) AM_READWRITE(TC0110PCR_word_1_r, TC0110PCR_step1_word_1_w)   /* palette (2nd screen) */
242242   AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
243243   AM_RANGE(0x800000, 0x80000f) AM_READWRITE(TC0510NIO_halfword_r, TC0510NIO_halfword_w)
244//  AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP)    // ? uses bits 0,2,3
244//  AM_RANGE(0x820000, 0x820001) AM_WRITENOP    // ? uses bits 0,2,3
245245   AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
246246ADDRESS_MAP_END
247247
r4470r4471
255255   AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
256256   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
257257   AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */
258   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
259   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
260   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
258   AM_RANGE(0xea00, 0xea00) AM_READNOP
259   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
260   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
261261   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
262262ADDRESS_MAP_END
263263
src/mame/drivers/goal92.c
r4470r4471
7676   AM_RANGE(0x103000, 0x103fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
7777   AM_RANGE(0x104000, 0x13ffff) AM_WRITE(SMH_RAM)
7878   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
79   AM_RANGE(0x140800, 0x140801) AM_WRITE(SMH_NOP)
80   AM_RANGE(0x140802, 0x140803) AM_WRITE(SMH_NOP)
79   AM_RANGE(0x140800, 0x140801) AM_WRITENOP
80   AM_RANGE(0x140802, 0x140803) AM_WRITENOP
8181   AM_RANGE(0x180008, 0x180009) AM_WRITE(goal92_sound_command_w)
82   AM_RANGE(0x18000a, 0x18000b) AM_WRITE(SMH_NOP)
82   AM_RANGE(0x18000a, 0x18000b) AM_WRITENOP
8383   AM_RANGE(0x180010, 0x180017) AM_WRITE(SMH_RAM) AM_BASE(&goal92_scrollram16)
8484   AM_RANGE(0x18001c, 0x18001d) AM_WRITE(goal92_fg_bank_w)
8585ADDRESS_MAP_END
src/mame/drivers/bishi.c
r4470r4471
170170   AM_RANGE(0x800006, 0x800007) AM_READ_PORT("SYSTEM")
171171   AM_RANGE(0x800008, 0x800009) AM_READ_PORT("INPUTS")
172172   AM_RANGE(0x810000, 0x810003) AM_WRITE(control2_w)      // bank switch for K056832 character ROM test
173   AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP)         // lamps (see lamp test in service menu)
173   AM_RANGE(0x820000, 0x820001) AM_WRITENOP         // lamps (see lamp test in service menu)
174174   AM_RANGE(0x830000, 0x83003f) AM_WRITE(K056832_word_w)
175175   AM_RANGE(0x840000, 0x840007) AM_WRITE(K056832_b_word_w)   // VSCCS
176176   AM_RANGE(0x850000, 0x85001f) AM_WRITE(K054338_word_w)   // CLTC
src/mame/drivers/mayumi.c
r4470r4471
9494   AM_RANGE(0x30, 0x30) AM_READ_PORT("IN0") AM_WRITE(bank_sel_w)
9595   AM_RANGE(0xc0, 0xc0) AM_WRITE(input_sel_w)
9696   AM_RANGE(0xc1, 0xc2) AM_READ(key_matrix_r)   // 0xc0-c3 8255ppi
97   AM_RANGE(0xc3, 0xc3) AM_WRITE(SMH_NOP)      // 0xc0-c3 8255ppi
97   AM_RANGE(0xc3, 0xc3) AM_WRITENOP      // 0xc0-c3 8255ppi
9898   AM_RANGE(0xd0, 0xd1) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
9999ADDRESS_MAP_END
100100
src/mame/drivers/raiden.c
r4470r4471
7575   AM_RANGE(0x02800, 0x02fff) AM_RAM_WRITE(raiden_foreground_w) AM_BASE(&raiden_fore_data)
7676   AM_RANGE(0x03000, 0x03fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
7777   AM_RANGE(0x04000, 0x04fff) AM_RAM AM_SHARE(1)
78   AM_RANGE(0x07ffe, 0x0afff) AM_WRITE(SMH_NOP)
78   AM_RANGE(0x07ffe, 0x0afff) AM_WRITENOP
7979   AM_RANGE(0xc0000, 0xfffff) AM_ROM
8080ADDRESS_MAP_END
8181
src/mame/drivers/fromanc2.c
r4470r4471
262262static ADDRESS_MAP_START( fromanc2_readmem_main, ADDRESS_SPACE_PROGRAM, 16 )
263263   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)            // MAIN ROM
264264
265   AM_RANGE(0x802000, 0x802fff) AM_READ(SMH_NOP)            // ???
265   AM_RANGE(0x802000, 0x802fff) AM_READNOP            // ???
266266
267267   AM_RANGE(0xa00000, 0xa00fff) AM_READ(fromanc2_paletteram_0_r)// PALETTE (1P)
268268   AM_RANGE(0xa80000, 0xa80fff) AM_READ(fromanc2_paletteram_1_r)// PALETTE (2P)
r4470r4471
290290   AM_RANGE(0xd00200, 0xd00223) AM_WRITE(fromanc2_gfxreg_1_w)   // SCROLL REG (1P/2P)
291291   AM_RANGE(0xd00300, 0xd00323) AM_WRITE(fromanc2_gfxreg_3_w)   // SCROLL REG (1P/2P)
292292
293   AM_RANGE(0xd00400, 0xd00413) AM_WRITE(SMH_NOP)            // ???
294   AM_RANGE(0xd00500, 0xd00513) AM_WRITE(SMH_NOP)            // ???
293   AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP            // ???
294   AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP            // ???
295295
296296   AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w)      // SOUND REQ (1P/2P)
297297   AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w)      // SUB CPU WRITE
r4470r4471
322322   AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromancr_videoram_0_w)   // VRAM BG (1P/2P)
323323   AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromancr_videoram_1_w)   // VRAM FG (1P/2P)
324324   AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromancr_videoram_2_w)   // VRAM TEXT (1P/2P)
325   AM_RANGE(0x980000, 0x983fff) AM_WRITE(SMH_NOP)            // VRAM Unused ?
325   AM_RANGE(0x980000, 0x983fff) AM_WRITENOP            // VRAM Unused ?
326326
327327   AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(fromancr_paletteram_0_w)// PALETTE (1P)
328328   AM_RANGE(0xa80000, 0xa80fff) AM_WRITE(fromancr_paletteram_1_w)// PALETTE (2P)
r4470r4471
330330   AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromancr_gfxreg_1_w)   // SCROLL REG (1P/2P)
331331   AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromancr_gfxreg_0_w)   // SCROLL REG (1P/2P)
332332
333   AM_RANGE(0xd00200, 0xd002ff) AM_WRITE(SMH_NOP)            // ?
333   AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP            // ?
334334
335   AM_RANGE(0xd00400, 0xd00413) AM_WRITE(SMH_NOP)            // ???
336   AM_RANGE(0xd00500, 0xd00513) AM_WRITE(SMH_NOP)            // ???
335   AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP            // ???
336   AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP            // ???
337337
338338   AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w)      // SOUND REQ (1P/2P)
339339   AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w)      // SUB CPU WRITE
340   AM_RANGE(0xd01400, 0xd01401) AM_WRITE(SMH_NOP)            // COIN COUNTER ?
340   AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP            // COIN COUNTER ?
341341   AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w)      // EEPROM DATA, GFXBANK (1P/2P)
342342   AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w)   // PORT SELECT (1P/2P)
343343
r4470r4471
356356   AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r)   // INPUT KEY MATRIX
357357   AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
358358
359   AM_RANGE(0xe5000c, 0xe5000d) AM_READ(SMH_NOP)            // EXT-COMM PORT ?
359   AM_RANGE(0xe5000c, 0xe5000d) AM_READNOP            // EXT-COMM PORT ?
360360ADDRESS_MAP_END
361361
362362static ADDRESS_MAP_START( fromanc4_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
367367
368368   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w)   // PORT SELECT (1P/2P)
369369
370   AM_RANGE(0xd10000, 0xd10001) AM_WRITE(SMH_NOP)            // ?
371   AM_RANGE(0xd30000, 0xd30001) AM_WRITE(SMH_NOP)            // ?
370   AM_RANGE(0xd10000, 0xd10001) AM_WRITENOP            // ?
371   AM_RANGE(0xd30000, 0xd30001) AM_WRITENOP            // ?
372372   AM_RANGE(0xd50000, 0xd50001) AM_WRITE(fromanc4_eeprom_w)      // EEPROM DATA
373373
374374   AM_RANGE(0xd70000, 0xd70001) AM_WRITE(fromanc2_sndcmd_w)      // SOUND REQ (1P/2P)
r4470r4471
384384   AM_RANGE(0xe10000, 0xe1001d) AM_WRITE(fromanc4_gfxreg_1_w)   // SCROLL, GFXBANK (1P/2P)
385385   AM_RANGE(0xe20000, 0xe2001d) AM_WRITE(fromanc4_gfxreg_2_w)   // SCROLL, GFXBANK (1P/2P)
386386
387   AM_RANGE(0xe30000, 0xe30013) AM_WRITE(SMH_NOP)            // ???
388   AM_RANGE(0xe40000, 0xe40013) AM_WRITE(SMH_NOP)            // ???
387   AM_RANGE(0xe30000, 0xe30013) AM_WRITENOP            // ???
388   AM_RANGE(0xe40000, 0xe40013) AM_WRITENOP            // ???
389389
390   AM_RANGE(0xe50000, 0xe50009) AM_WRITE(SMH_NOP)            // EXT-COMM PORT ?
390   AM_RANGE(0xe50000, 0xe50009) AM_WRITENOP            // EXT-COMM PORT ?
391391ADDRESS_MAP_END
392392
393393
src/mame/drivers/bombjack.c
r4470r4471
145145   AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(bombjack_videoram_w) AM_BASE(&videoram)
146146   AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(bombjack_colorram_w) AM_BASE(&colorram)
147147   AM_RANGE(0x9820, 0x987f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
148   AM_RANGE(0x9a00, 0x9a00) AM_WRITE(SMH_NOP)
148   AM_RANGE(0x9a00, 0x9a00) AM_WRITENOP
149149   AM_RANGE(0x9c00, 0x9cff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE(&paletteram)
150150   AM_RANGE(0x9e00, 0x9e00) AM_WRITE(bombjack_background_w)
151151   AM_RANGE(0xb000, 0xb000) AM_READ_PORT("P1")
152152   AM_RANGE(0xb000, 0xb000) AM_WRITE(interrupt_enable_w)
153153   AM_RANGE(0xb001, 0xb001) AM_READ_PORT("P2")
154154   AM_RANGE(0xb002, 0xb002) AM_READ_PORT("SYSTEM")
155   AM_RANGE(0xb003, 0xb003) AM_READ(SMH_NOP)   /* watchdog reset? */
155   AM_RANGE(0xb003, 0xb003) AM_READNOP   /* watchdog reset? */
156156   AM_RANGE(0xb004, 0xb004) AM_READ_PORT("DSW1")
157157   AM_RANGE(0xb004, 0xb004) AM_WRITE(bombjack_flipscreen_w)
158158   AM_RANGE(0xb005, 0xb005) AM_READ_PORT("DSW2")
src/mame/drivers/gridlee.c
r4470r4471
334334   AM_RANGE(0x9070, 0x9070) AM_WRITE(gridlee_cocktail_flip_w)
335335   AM_RANGE(0x9200, 0x9200) AM_WRITE(gridlee_palette_select_w)
336336   AM_RANGE(0x9380, 0x9380) AM_WRITE(watchdog_reset_w)
337   AM_RANGE(0x9700, 0x9700) AM_WRITE(SMH_NOP)
337   AM_RANGE(0x9700, 0x9700) AM_WRITENOP
338338   AM_RANGE(0x9828, 0x993f) AM_WRITE(gridlee_sound_w)
339339   AM_RANGE(0x9c00, 0x9cff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)
340340   AM_RANGE(0xa000, 0xffff) AM_WRITE(SMH_ROM)
src/mame/drivers/rallyx.c
r4470r4471
328328   AM_RANGE(0xa100, 0xa11f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&namco_soundregs)
329329   AM_RANGE(0xa130, 0xa130) AM_WRITE(rallyx_scrollx_w)
330330   AM_RANGE(0xa140, 0xa140) AM_WRITE(rallyx_scrolly_w)
331   AM_RANGE(0xa170, 0xa170) AM_WRITE(SMH_NOP)         /* ? */
331   AM_RANGE(0xa170, 0xa170) AM_WRITENOP         /* ? */
332332   AM_RANGE(0xa180, 0xa187) AM_WRITE(rallyx_latch_w)
333333ADDRESS_MAP_END
334334
r4470r4471
607607   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
608608   PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
609609   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
610   PORT_DIPSETTING(    0x00, "Disabled" )
610   PORT_DIPSETTING(    0x00, "No Coin B" )
611   /* "No Coin B" = coins produce sound, but no effect on coin counter */
611612INPUT_PORTS_END
612613
613614
src/mame/drivers/bnstars.c
r4470r4471
12371237   AM_RANGE(0xfcc00008, 0xfcc0000b) AM_READ( bnstars2_r )
12381238   AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ( bnstars3_r )
12391239
1240   AM_RANGE(0xfce00034, 0xfce00037) AM_WRITE(SMH_NOP)
1240   AM_RANGE(0xfce00034, 0xfce00037) AM_WRITENOP
12411241
1242   AM_RANGE(0xfce00050, 0xfce00053) AM_WRITE(SMH_NOP)
1243   AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITE(SMH_NOP)
1244   AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITE(SMH_NOP)
1242   AM_RANGE(0xfce00050, 0xfce00053) AM_WRITENOP
1243   AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITENOP
1244   AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITENOP
12451245
12461246   AM_RANGE(0xfce00400, 0xfce0045f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl[0])
12471247   AM_RANGE(0xfce00700, 0xfce0075f) AM_WRITE(SMH_RAM) AM_BASE(&ms32_roz_ctrl[1]) // guess
src/mame/drivers/unico.c
r4470r4471
5757   }
5858}
5959
60static ADDRESS_MAP_START( readmem_burglarx, ADDRESS_SPACE_PROGRAM, 16 )
61   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM                  )   // ROM
62   AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM                  )   // RAM
60static ADDRESS_MAP_START( burglarx_map, ADDRESS_SPACE_PROGRAM, 16 )
61   AM_RANGE(0x000000, 0x0fffff) AM_ROM                                          // ROM
62   AM_RANGE(0xff0000, 0xffffff) AM_RAM                                          // RAM
6363   AM_RANGE(0x800000, 0x800001) AM_READ_PORT("INPUTS")
6464   AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
6565   AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
6666   AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
67   AM_RANGE(0x800188, 0x800189) AM_DEVREAD8("oki", okim6295_r, 0x00ff   )   // Sound
68   AM_RANGE(0x80018c, 0x80018d) AM_DEVREAD8("ym", ym3812_r, 0xff00 )//
69/**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM                  )   // Layers
70/**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM                  )   //
71/**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM                  )   //
72/**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM                  )   // ? 0
73/**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM                  )   // Sprites
74/**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM                  )   // Palette
67   AM_RANGE(0x800030, 0x800031) AM_WRITENOP                                    // ? 0
68   AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0)            // Scroll
69   AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0)            //
70   AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2)            //
71   AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2)            //
72   AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1)            //
73   AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1)            //
74   AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)   // Sound
75   AM_RANGE(0x80018a, 0x80018d) AM_DEVREADWRITE8("ym", ym3812_r, ym3812_w, 0xff00)         //
76   AM_RANGE(0x80018e, 0x80018f) AM_DEVWRITE("oki", burglarx_sound_bank_w)               //
77   AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP                                    // IRQ Ack
78   AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1   )      // Layers
79   AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2   )      //
80   AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0   )      //
81   AM_RANGE(0x920000, 0x923fff) AM_RAM                                          // ? 0
82   AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size   )   // Sprites
83   AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE(&paletteram16   )   // Palette
7584ADDRESS_MAP_END
7685
77static ADDRESS_MAP_START( writemem_burglarx, ADDRESS_SPACE_PROGRAM, 16 )
78   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM                     )   // ROM
79   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM                     )   // RAM
80   AM_RANGE(0x800030, 0x800031) AM_WRITE(SMH_NOP                     )   // ? 0
81   AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0      )   // Scroll
82   AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0      )   //
83   AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2      )   //
84   AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2      )   //
85   AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1      )   //
86   AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1      )   //
87   AM_RANGE(0x800188, 0x800189) AM_DEVWRITE8("oki", okim6295_w, 0x00ff   )   // Sound
88   AM_RANGE(0x80018a, 0x80018d) AM_DEVWRITE8("ym", ym3812_w, 0xff00 )   //
89   AM_RANGE(0x80018e, 0x80018f) AM_DEVWRITE("oki", burglarx_sound_bank_w            )   //
90   AM_RANGE(0x8001e0, 0x8001e1) AM_WRITE(SMH_RAM                     )   // ? IRQ Ack
91   AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1   )   // Layers
92   AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2   )   //
93   AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0   )   //
94   AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM                     )   // ? 0
95   AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size   )   // Sprites
96   AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette_w) AM_BASE(&paletteram16   )   // Palette
97ADDRESS_MAP_END
9886
9987
100
10188/***************************************************************************
10289                                Zero Point
10390***************************************************************************/
r4470r4471
161148   return ((y&0xff) ^ (video_screen_get_frame_number(space->machine->primary_screen)&1))<<8;
162149}
163150
164static ADDRESS_MAP_START( readmem_zeropnt, ADDRESS_SPACE_PROGRAM, 16 )
165   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM                  )   // ROM
166   AM_RANGE(0xef0000, 0xefffff) AM_READ(SMH_RAM                  )   // RAM
151static ADDRESS_MAP_START( zeropnt_map, ADDRESS_SPACE_PROGRAM, 16 )
152   AM_RANGE(0x000000, 0x0fffff) AM_ROM   // ROM
153   AM_RANGE(0xef0000, 0xefffff) AM_RAM   // RAM
154   AM_RANGE(0x800030, 0x800031) AM_WRITENOP   // ? 0
167155   AM_RANGE(0x800018, 0x800019) AM_READ_PORT("INPUTS")
168156   AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
169157   AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
170   AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r         )   // Light Guns
171   AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r         )   //
172   AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r         )   //
173   AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r         )   //
174   AM_RANGE(0x800188, 0x800189) AM_DEVREAD8("oki", okim6295_r, 0x00ff      )   // Sound
175   AM_RANGE(0x80018c, 0x80018d) AM_DEVREAD8("ym", ym3812_status_port_r, 0xff00   )   //
176/**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM                  )   // Layers
177/**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM                  )   //
178/**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM                  )   //
179/**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM                  )   // ? 0
180/**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM                  )   // Sprites
181/**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM                  )   // Palette
182ADDRESS_MAP_END
183
184static ADDRESS_MAP_START( writemem_zeropnt, ADDRESS_SPACE_PROGRAM, 16 )
185   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM                     )   // ROM
186   AM_RANGE(0xef0000, 0xefffff) AM_WRITE(SMH_RAM                     )   // RAM
187   AM_RANGE(0x800030, 0x800031) AM_WRITE(SMH_NOP                     )   // ? 0
188158   AM_RANGE(0x80010c, 0x80010d) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_0      )   // Scroll
189159   AM_RANGE(0x80010e, 0x80010f) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_0      )   //
190160   AM_RANGE(0x800110, 0x800111) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_2      )   //
191161   AM_RANGE(0x800114, 0x800115) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_2      )   //
192162   AM_RANGE(0x800116, 0x800117) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrollx_1      )   //
193163   AM_RANGE(0x800120, 0x800121) AM_WRITE(SMH_RAM) AM_BASE(&unico_scrolly_1      )   //
194   AM_RANGE(0x800188, 0x800189) AM_DEVWRITE8("oki", okim6295_w, 0x00ff            )   // Sound
164   AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r         )   // Light Guns
165   AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r         )   //
166   AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r         )   //
167   AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r         )   //
168   AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff            )   // Sound
195169   AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ym", ym3812_write_port_w, 0xff00         )   //
196   AM_RANGE(0x80018c, 0x80018d) AM_DEVWRITE8("ym", ym3812_control_port_w, 0xff00      )   //
170   AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ym", ym3812_status_port_r, ym3812_control_port_w, 0xff00      )   //
197171   AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w            )   //
198172   AM_RANGE(0x8001e0, 0x8001e1) AM_WRITE(SMH_RAM                     )   // ? IRQ Ack
199   AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1   )   // Layers
200   AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2   )   //
201   AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0   )   //
202   AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM                     )   // ? 0
203   AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size   )   // Sprites
204   AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette_w) AM_BASE(&paletteram16   )   // Palette
173   AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram_1_w) AM_BASE(&unico_vram_1   )   // Layers
174   AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram_2_w) AM_BASE(&unico_vram_2   )   //
175   AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram_0_w) AM_BASE(&unico_vram_0   )   //
176   AM_RANGE(0x920000, 0x923fff) AM_RAM   // ? 0
177   AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size   )   // Sprites
178   AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_BASE(&paletteram16   )   // Palette
205179ADDRESS_MAP_END
206180
207181
r4470r4471
253227   }
254228}
255229
256static ADDRESS_MAP_START( readmem_zeropnt2, ADDRESS_SPACE_PROGRAM, 32 )
257   AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM                  )   // ROM
230static ADDRESS_MAP_START( zeropnt2_map, ADDRESS_SPACE_PROGRAM, 32 )
231   AM_RANGE(0x000000, 0x1fffff) AM_ROM                                    // ROM
258232   AM_RANGE(0x800018, 0x80001b) AM_READ_PORT("SYSTEM")
259   AM_RANGE(0x800024, 0x800027) AM_DEVREAD8("oki1", okim6295_r, 0x00ff0000 )   // Sound
260   AM_RANGE(0x800028, 0x80002f) AM_DEVREAD8("ym", ym2151_r, 0x00ff0000 )   //
261   AM_RANGE(0x800030, 0x800033) AM_DEVREAD8("oki2", okim6295_r, 0x00ff0000 )   //
233   AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x00ff0000   )   // Sound
234   AM_RANGE(0x800028, 0x80002f) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff0000)   //
235   AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff0000   )   //
236   AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w            )   //
237   AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w               )   // ?
238   AM_RANGE(0x80010c, 0x800123) AM_WRITE(SMH_RAM) AM_BASE(&unico_scroll32      )   // Scroll
262239   AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r         )   // Light Guns
263240   AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r         )   //
264241   AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r         )   //
r4470r4471
266243   AM_RANGE(0x800150, 0x800153) AM_READ_PORT("DSW1")
267244   AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2")
268245   AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS")
269/**/AM_RANGE(0x904000, 0x907fff) AM_READ(SMH_RAM                  )   // Layers
270/**/AM_RANGE(0x908000, 0x90bfff) AM_READ(SMH_RAM                  )   //
271/**/AM_RANGE(0x90c000, 0x90ffff) AM_READ(SMH_RAM                  )   //
272/**/AM_RANGE(0x920000, 0x923fff) AM_READ(SMH_RAM                  )   // ? 0
273/**/AM_RANGE(0x930000, 0x9307ff) AM_READ(SMH_RAM                  )   // Sprites
274/**/AM_RANGE(0x940000, 0x947fff) AM_READ(SMH_RAM                  )   // Palette
275   AM_RANGE(0xfe0000, 0xffffff) AM_READ(SMH_RAM                  )   // RAM
246   AM_RANGE(0x8001e0, 0x8001e3) AM_WRITENOP                           // ? IRQ Ack
247   AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w)               // EEPROM
248   AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE(unico_vram32_1_w) AM_BASE(&unico_vram32_1   )   // Layers
249   AM_RANGE(0x908000, 0x90bfff) AM_RAM_WRITE(unico_vram32_2_w) AM_BASE(&unico_vram32_2   )   //
250   AM_RANGE(0x90c000, 0x90ffff) AM_RAM_WRITE(unico_vram32_0_w) AM_BASE(&unico_vram32_0   )   //
251   AM_RANGE(0x920000, 0x923fff) AM_RAM                                 // ? 0
252   AM_RANGE(0x930000, 0x9307ff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size   )   // Sprites
253   AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette32_w) AM_BASE(&paletteram32   )   // Palette
254   AM_RANGE(0xfe0000, 0xffffff) AM_RAM                                 // RAM
276255ADDRESS_MAP_END
277256
278static ADDRESS_MAP_START( writemem_zeropnt2, ADDRESS_SPACE_PROGRAM, 32 )
279   AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM                     )   // ROM
280   AM_RANGE(0x800024, 0x800027) AM_DEVWRITE8("oki1", okim6295_w, 0x00ff0000   )   // Sound
281   AM_RANGE(0x800028, 0x80002f) AM_DEVWRITE8("ym", ym2151_w, 0x00ff0000)   //
282   AM_RANGE(0x800030, 0x800033) AM_DEVWRITE8("oki2", okim6295_w, 0x00ff0000   )   //
283   AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w            )   //
284   AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w               )   // ?
285   AM_RANGE(0x80010c, 0x800123) AM_WRITE(SMH_RAM) AM_BASE(&unico_scroll32      )   // Scroll
286   AM_RANGE(0x8001e0, 0x8001e3) AM_WRITE(SMH_RAM                     )   // ? IRQ Ack
287   AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w               )   // EEPROM
288   AM_RANGE(0x904000, 0x907fff) AM_WRITE(unico_vram32_1_w) AM_BASE(&unico_vram32_1   )   // Layers
289   AM_RANGE(0x908000, 0x90bfff) AM_WRITE(unico_vram32_2_w) AM_BASE(&unico_vram32_2   )   //
290   AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(unico_vram32_0_w) AM_BASE(&unico_vram32_0   )   //
291   AM_RANGE(0x920000, 0x923fff) AM_WRITE(SMH_RAM                     )   // ? 0
292   AM_RANGE(0x930000, 0x9307ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size   )   // Sprites
293   AM_RANGE(0x940000, 0x947fff) AM_WRITE(unico_palette32_w) AM_BASE(&paletteram32   )   // Palette
294   AM_RANGE(0xfe0000, 0xffffff) AM_WRITE(SMH_RAM                     )   // RAM
295ADDRESS_MAP_END
296257
297
298258/***************************************************************************
299259
300260
r4470r4471
655615
656616   /* basic machine hardware */
657617   MDRV_CPU_ADD("maincpu", M68000, 16000000)
658   MDRV_CPU_PROGRAM_MAP(readmem_burglarx,writemem_burglarx)
618   MDRV_CPU_PROGRAM_MAP(burglarx_map,0)
659619   MDRV_CPU_VBLANK_INT("screen", irq2_line_hold)
660620
661621   MDRV_MACHINE_RESET(unico)
r4470r4471
702662
703663   /* basic machine hardware */
704664   MDRV_CPU_ADD("maincpu", M68000, 16000000)
705   MDRV_CPU_PROGRAM_MAP(readmem_zeropnt,writemem_zeropnt)
665   MDRV_CPU_PROGRAM_MAP(zeropnt_map,0)
706666   MDRV_CPU_VBLANK_INT("screen", irq2_line_hold)
707667
708668   MDRV_MACHINE_RESET(zeropt)
r4470r4471
744704
745705   /* basic machine hardware */
746706   MDRV_CPU_ADD("maincpu", M68EC020, 16000000)
747   MDRV_CPU_PROGRAM_MAP(readmem_zeropnt2,writemem_zeropnt2)
707   MDRV_CPU_PROGRAM_MAP(zeropnt2_map,0)
748708   MDRV_CPU_VBLANK_INT("screen", irq2_line_hold)
749709
750710   MDRV_MACHINE_RESET(zeropt)
src/mame/drivers/blockhl.c
r4470r4471
2424#include "cpu/konami/konami.h" /* for the callback and the firq irq definition */
2525#include "video/konamiic.h"
2626#include "sound/2151intf.h"
27#include "konamipt.h"
2728
2829/* prototypes */
2930static MACHINE_RESET( blockhl );
r4470r4471
8788   AM_RANGE(0x8000, 0x87ff) AM_RAM
8889   AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
8990   AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
90   AM_RANGE(0xe00c, 0xe00d) AM_WRITE(SMH_NOP)      /* leftover from missing 007232? */
91   AM_RANGE(0xe00c, 0xe00d) AM_WRITENOP      /* leftover from missing 007232? */
9192ADDRESS_MAP_END
9293
9394
r4470r4471
99100
100101static INPUT_PORTS_START( blockhl )
101102   PORT_START("P1")
102   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
103   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
104   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
105   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
106   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
107   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
108   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
109   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
103   KONAMI8_B123_START(1)
110104
111105   PORT_START("P2")
112   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
113   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
114   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
115   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
116   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
117   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
118   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
119   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
106   KONAMI8_B123_START(2)
120107
121108   PORT_START("DSW1")
122   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
123   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
124   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
125   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
126   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
127   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
128   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
129   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
130   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
131   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
132   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
133   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
134   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
135   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
136   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
137   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
138   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
139   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
140   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
141   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
142   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
143   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
144   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
145   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
146   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
147   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
148   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
149   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
150   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
151   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
152   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
153   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
154   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
155//  PORT_DIPSETTING(    0x00, "Invalid" )
109   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
110   /* "No Coin B" = coins produce sound, but no effect on coin counter */
156111
157112   PORT_START("DSW2")
158113   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1")
r4470r4471
332287}
333288
334289
335
336290GAME( 1989, blockhl, 0,       blockhl, blockhl, blockhl, ROT0, "Konami", "Block Hole", 0 )
337291GAME( 1989, quarth,  blockhl, blockhl, blockhl, blockhl, ROT0, "Konami", "Quarth (Japan)", 0 )
src/mame/drivers/diverboy.c
r4470r4471
8484   AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P1_P2")
8585   AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW")
8686   AM_RANGE(0x180008, 0x180009) AM_READ_PORT("COINS")
87//  AM_RANGE(0x18000a, 0x18000b) AM_READ(SMH_NOP)
87//  AM_RANGE(0x18000a, 0x18000b) AM_READNOP
8888ADDRESS_MAP_END
8989
9090static ADDRESS_MAP_START( diverboy_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
9393   AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM) AM_BASE(&diverboy_spriteram) AM_SIZE(&diverboy_spriteram_size)
9494   AM_RANGE(0x100000, 0x100001) AM_WRITE(soundcmd_w)
9595   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
96//  AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
96//  AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
9797   AM_RANGE(0x320000, 0x3207ff) AM_WRITE(SMH_RAM) /* ?? */
9898   AM_RANGE(0x322000, 0x3227ff) AM_WRITE(SMH_RAM) /* ?? */
99//  AM_RANGE(0x340000, 0x340001) AM_WRITE(SMH_NOP)
100//  AM_RANGE(0x340002, 0x340003) AM_WRITE(SMH_NOP)
99//  AM_RANGE(0x340000, 0x340001) AM_WRITENOP
100//  AM_RANGE(0x340002, 0x340003) AM_WRITENOP
101101ADDRESS_MAP_END
102102
103103static ADDRESS_MAP_START( snd_readmem, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/carjmbre.c
r4470r4471
5656static ADDRESS_MAP_START( carjmbre_readmem, ADDRESS_SPACE_PROGRAM, 8 )
5757   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
5858   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
59   AM_RANGE(0x8800, 0x8800) AM_READ(SMH_NOP)         //?? possibly watchdog
59   AM_RANGE(0x8800, 0x8800) AM_READNOP         //?? possibly watchdog
6060   AM_RANGE(0x9000, 0x97ff) AM_READ(SMH_RAM)
6161   AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
6262   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2")
r4470r4471
6969   AM_RANGE(0x8803, 0x8803) AM_WRITE(interrupt_enable_w)
7070   AM_RANGE(0x8805, 0x8806) AM_WRITE(carjmbre_bgcolor_w)   //guess
7171   AM_RANGE(0x8807, 0x8807) AM_WRITE(carjmbre_flipscreen_w)
72   AM_RANGE(0x8fc1, 0x8fc1) AM_WRITE(SMH_NOP)         //overrun during initial screen clear
73   AM_RANGE(0x8fe1, 0x8fe1) AM_WRITE(SMH_NOP)         //overrun during initial screen clear
72   AM_RANGE(0x8fc1, 0x8fc1) AM_WRITENOP         //overrun during initial screen clear
73   AM_RANGE(0x8fe1, 0x8fe1) AM_WRITENOP         //overrun during initial screen clear
7474   AM_RANGE(0x9000, 0x97ff) AM_WRITE(carjmbre_videoram_w) AM_BASE(&videoram)
7575   AM_RANGE(0x9800, 0x985f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
7676   AM_RANGE(0x9880, 0x98df) AM_WRITE(SMH_RAM)         //spriteram mirror
r4470r4471
7979
8080static ADDRESS_MAP_START( carjmbre_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
8181   AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
82   AM_RANGE(0x1000, 0x10ff) AM_READ(SMH_NOP)         //look to be stray reads from 10/12/14/16/18xx
83   AM_RANGE(0x1200, 0x12ff) AM_READ(SMH_NOP)
84   AM_RANGE(0x1400, 0x14ff) AM_READ(SMH_NOP)
85   AM_RANGE(0x1600, 0x16ff) AM_READ(SMH_NOP)
86   AM_RANGE(0x1800, 0x18ff) AM_READ(SMH_NOP)
82   AM_RANGE(0x1000, 0x10ff) AM_READNOP         //look to be stray reads from 10/12/14/16/18xx
83   AM_RANGE(0x1200, 0x12ff) AM_READNOP
84   AM_RANGE(0x1400, 0x14ff) AM_READNOP
85   AM_RANGE(0x1600, 0x16ff) AM_READNOP
86   AM_RANGE(0x1800, 0x18ff) AM_READNOP
8787   AM_RANGE(0x2000, 0x27ff) AM_READ(SMH_RAM)
8888ADDRESS_MAP_END
8989
r4470r4471
9696static ADDRESS_MAP_START( carjmbre_sound_io_map, ADDRESS_SPACE_IO, 8 )
9797   ADDRESS_MAP_GLOBAL_MASK(0xff)
9898   AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
99   AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP)            //?? written on init/0xff sound command reset
99   AM_RANGE(0x10, 0x10) AM_WRITENOP            //?? written on init/0xff sound command reset
100100   AM_RANGE(0x20, 0x21) AM_DEVWRITE("ay1", ay8910_address_data_w)
101   AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)            //?? written before and after 0x21 with same value
102   AM_RANGE(0x24, 0x24) AM_READ(SMH_NOP)            //??
101   AM_RANGE(0x22, 0x22) AM_WRITENOP            //?? written before and after 0x21 with same value
102   AM_RANGE(0x24, 0x24) AM_READNOP            //??
103103   AM_RANGE(0x30, 0x31) AM_DEVWRITE("ay2", ay8910_address_data_w)
104   AM_RANGE(0x32, 0x32) AM_WRITE(SMH_NOP)            //?? written before and after 0x31 with same value
104   AM_RANGE(0x32, 0x32) AM_WRITENOP            //?? written before and after 0x31 with same value
105105ADDRESS_MAP_END
106106
107107static INPUT_PORTS_START( carjmbre )
src/mame/drivers/bottom9.c
r4470r4471
1818#include "cpu/m6809/m6809.h"
1919#include "video/konamiic.h"
2020#include "sound/k007232.h"
21#include "konamipt.h"
2122
22
2323extern int bottom9_video_enable;
2424
2525VIDEO_START( bottom9 );
r4470r4471
164164
165165static INPUT_PORTS_START( bottom9 )
166166   PORT_START("P1")
167   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
168   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
169   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
170   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
171   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
172   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
173   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
174   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
167   KONAMI8_ALT_B12(1)
175168
176169   PORT_START("P2")
177   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
178   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
179   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
180   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
181   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
182   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
183   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
184   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
170   KONAMI8_ALT_B12(2)
185171
186172   PORT_START("DSW1")
187   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
188   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
189   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
190   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
191   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
192   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
193   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
194   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
195   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
196   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
197   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
198   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
199   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
200   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
201   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
202   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
203   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
204   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
205   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
206   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
207   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
208   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
209   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
210   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
211   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
212   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
213   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
214   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
215   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
216   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
217   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
218   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
219   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
220   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
173   KONAMI_COINAGE_ALT_LOC(SW1)
221174
222175   PORT_START("DSW2")
223176   PORT_DIPNAME( 0x07, 0x04, "Play Time" ) PORT_DIPLOCATION("SW2:1,2,3")
src/mame/drivers/dreamwld.c
r4470r4471
286286}
287287
288288static ADDRESS_MAP_START( dreamwld_map, ADDRESS_SPACE_PROGRAM, 32 )
289   AM_RANGE(0x000000, 0x0fffff) AM_ROM  AM_WRITE(SMH_NOP)
289   AM_RANGE(0x000000, 0x0fffff) AM_ROM  AM_WRITENOP
290290
291291   AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE( &spriteram32 )
292292   AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(dreamwld_palette_w) AM_BASE(&paletteram32)  // real palette?
src/mame/drivers/xain.c
r4470r4471
306306   AM_RANGE(0x3a04, 0x3a04) AM_READ(xain_68705_r)   /* from the 68705 */
307307   AM_RANGE(0x3a04, 0x3a05) AM_WRITE(xain_scrollxP0_w)
308308   AM_RANGE(0x3a05, 0x3a05) AM_READ_PORT("VBLANK")
309//  AM_RANGE(0x3a06, 0x3a06) AM_READ(SMH_NOP)  /* ?? read (and discarded) on startup. Maybe reset the 68705 */
309//  AM_RANGE(0x3a06, 0x3a06) AM_READNOP  /* ?? read (and discarded) on startup. Maybe reset the 68705 */
310310   AM_RANGE(0x3a06, 0x3a07) AM_WRITE(xain_scrollyP0_w)
311311   AM_RANGE(0x3a08, 0x3a08) AM_WRITE(xain_sound_command_w)
312312   AM_RANGE(0x3a09, 0x3a0c) AM_WRITE(xain_main_irq_w)
r4470r4471
717717}
718718
719719
720GAME( 1986, xsleena,  0,       xsleena, xsleena, xsleena,  ROT0, "Technos", "Xain'd Sleena", 0 )
720GAME( 1986, xsleena,  0,       xsleena, xsleena, xsleena,  ROT0, "Technos Japan", "Xain'd Sleena", 0 )
721721GAME( 1986, xsleenab, xsleena, xsleena, xsleena, 0,        ROT0, "bootleg", "Xain'd Sleena (bootleg)", 0 )
722GAME( 1986, solarwar, xsleena, xsleena, xsleena, solarwar, ROT0, "[Technos] Taito (Memetron license)", "Solar-Warrior", 0 )
722GAME( 1986, solarwar, xsleena, xsleena, xsleena, solarwar, ROT0, "[Technos Japan] Taito (Memetron license)", "Solar-Warrior", 0 )
src/mame/drivers/galdrvr.c
r4470r4471
14601460   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_5C ) )
14611461   PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
14621462   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
1463   PORT_DIPSETTING(    0x00, "Disable All Coins" )
1463   PORT_DIPSETTING(    0x00, "Invalid" )
1464   /* Invalid = both coin slots disabled */
14641465INPUT_PORTS_END
14651466
14661467
src/mame/drivers/namcos1.c
r4470r4471
435435   AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w)
436436   AM_RANGE(0xf000, 0xf000) AM_WRITE(namcos1_cpu_control_w)
437437   AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w)
438//  AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP) // unknown
438//  AM_RANGE(0xf400, 0xf400) AM_WRITENOP // unknown
439439   AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w)
440440   AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w)
441441   AM_RANGE(0xfa00, 0xfa00) AM_WRITE(namcos1_sub_firq_w) // asserts FIRQ on CPU1
r4470r4471
453453   AM_RANGE(0xa000, 0xbfff) AM_RAMBANK(14)
454454   AM_RANGE(0xc000, 0xdfff) AM_RAMBANK(15)
455455   AM_RANGE(0xe000, 0xefff) AM_WRITE(namcos1_bankswitch_w)
456//  AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) // IO Chip
456//  AM_RANGE(0xf000, 0xf000) AM_WRITENOP // IO Chip
457457   AM_RANGE(0xf200, 0xf200) AM_WRITE(namcos1_watchdog_w)
458//  AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP) // ?
458//  AM_RANGE(0xf400, 0xf400) AM_WRITENOP // ?
459459   AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w)
460460   AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w)
461461   AM_RANGE(0xe000, 0xffff) AM_ROMBANK(16)
r4470r4471
499499ADDRESS_MAP_END
500500
501501
502// #define PRIORITY_EASINESS_TO_PLAY
502503
503504/* Standard Namco System 1 input port definition */
504505static INPUT_PORTS_START( ns1 )
r4470r4471
523524   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
524525
525526   PORT_START( "DIPSW" )
526   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
527   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
528   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
529   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
530   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
531   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
532   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
533   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
534   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
535   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
536   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
537   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
538   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
539   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
540   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
541   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
542   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
543   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
544   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
545   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
546   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
547   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
527   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW:1" )
528   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW:2" )
529   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW:3" )
530   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW:4" )
531   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW:5" )
532   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW:6" )
533   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW:7" )
534   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW:8" )
548535
549536   PORT_START( "COIN" )
550537   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL )   /* OUT:coin lockout */
r4470r4471
563550   PORT_INCLUDE( ns1 )
564551
565552   PORT_MODIFY( "DIPSW" )
566   PORT_DIPNAME( 0x40, 0x40, "Freeze" )
553   PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2")
567554   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
568555   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
569   PORT_DIPNAME( 0x20, 0x20, "Alternate sound effects" )   // e.g. the red bird
556   PORT_DIPNAME( 0x20, 0x20, "Alternate sound effects" ) PORT_DIPLOCATION("SW:3")   // e.g. the red bird
570557   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
571558   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
572559INPUT_PORTS_END
r4470r4471
576563   PORT_INCLUDE( ns1 )
577564
578565   PORT_MODIFY( "DIPSW" )
579   PORT_DIPNAME( 0x7f, 0x7f, "Life" )
580   PORT_DIPSETTING(    0x7f, "2" )
581   PORT_DIPSETTING(    0x16, "3" )
566   #ifdef PRIORITY_EASINESS_TO_PLAY
567     PORT_DIPNAME( 0x7f, 0x7f, "Life" ) PORT_DIPLOCATION("SW:8,7,6,5,4,3,2")
568     PORT_DIPSETTING(    0x7f, "2" )
569     PORT_DIPSETTING(    0x16, "3" )
570   #else
571     PORT_DIPNAME( 0x40, 0x40, "Open 3rd Life (step1of7)" ) PORT_DIPLOCATION("SW:2")
572     PORT_DIPSETTING(    0x40, "No (off)" )
573     PORT_DIPSETTING(    0x00, "Yes (on)" )
574     PORT_DIPNAME( 0x20, 0x20, "Open 3rd Life (step2of7)" ) PORT_DIPLOCATION("SW:3")
575     PORT_DIPSETTING(    0x20, "No (off)" )
576     PORT_DIPSETTING(    0x00, "Yes (on)" )
577     PORT_DIPNAME( 0x10, 0x10, "Open 3rd Life (step3of7)" ) PORT_DIPLOCATION("SW:4")
578     PORT_DIPSETTING(    0x10, "Yes (off)" )
579     PORT_DIPSETTING(    0x00, "No (on)" )
580     PORT_DIPNAME( 0x08, 0x08, "Open 3rd Life (step4of7)" ) PORT_DIPLOCATION("SW:5")
581     PORT_DIPSETTING(    0x08, "No (off)" )
582     PORT_DIPSETTING(    0x00, "Yes (on)" )
583     PORT_DIPNAME( 0x04, 0x04, "Open 3rd Life (step5of7)" ) PORT_DIPLOCATION("SW:6")
584     PORT_DIPSETTING(    0x04, "Yes (off)" )
585     PORT_DIPSETTING(    0x00, "No (on)" )
586     PORT_DIPNAME( 0x02, 0x02, "Open 3rd Life (step6of7)" ) PORT_DIPLOCATION("SW:7")
587     PORT_DIPSETTING(    0x02, "Yes (off)" )
588     PORT_DIPSETTING(    0x00, "No (on)" )
589     PORT_DIPNAME( 0x01, 0x01, "Open 3rd Life (step7of7)" ) PORT_DIPLOCATION("SW:8")
590     PORT_DIPSETTING(    0x01, "No (off)" )
591     PORT_DIPSETTING(    0x00, "Yes (on)" )
592     //  Allow "Open 3rd Life" = _ooxoxxo
593     //                          12345678
594   #endif
582595INPUT_PORTS_END
583596
584597
r4470r4471
600613   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
601614
602615   PORT_MODIFY( "DIPSW" )
603   PORT_DIPNAME( 0x40, 0x40, "Unk 1" )   // read @ fac7
616   PORT_DIPNAME( 0x40, 0x40, "Unk 1" ) PORT_DIPLOCATION("SW:2")   // read @ fac7
604617   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
605618   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
606   PORT_DIPNAME( 0x10, 0x10, "Freeze" )
619   PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SW:4")
607620   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
608621   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
609   PORT_DIPNAME( 0x04, 0x00, "Brightness" )
622   PORT_DIPNAME( 0x04, 0x00, "Brightness" ) PORT_DIPLOCATION("SW:6")
610623   PORT_DIPSETTING(    0x04, DEF_STR( Low ) )
611624   PORT_DIPSETTING(    0x00, DEF_STR( Normal ) )
612   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) )
625   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW:8")
613626   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
614627   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
615628
r4470r4471
644657   PORT_INCLUDE( ns1 )
645658
646659   PORT_MODIFY( "DIPSW" )
647   PORT_DIPNAME( 0x40, 0x40, "Freeze" )
660   PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2")
648661   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
649662   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
650663   /* this doesn't seem to have much use... */
651   PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" )
664   PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:3")
652665   PORT_DIPSETTING(    0x20, DEF_STR( No ) )
653666   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
654667   /* to enter the A.D.S. menu, set the dip switch and reset with service coin pressed */
655   PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling" )
668   PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:5")
656669   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
657670   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
658671INPUT_PORTS_END
r4470r4471
662675   PORT_INCLUDE( ns1 )
663676
664677   PORT_MODIFY( "DIPSW" )
665   PORT_DIPNAME( 0x7f, 0x7f, "Auto Data Sampling" )
666   PORT_DIPSETTING(    0x7f, DEF_STR( Off ) )
667   PORT_DIPSETTING(    0x57, DEF_STR( On ) )
678   #ifdef PRIORITY_EASINESS_TO_PLAY
679     PORT_DIPNAME( 0x28, 0x28, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:5,3")
680     PORT_DIPSETTING(    0x28, DEF_STR( Off ) )
681     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
682   #else
683     PORT_DIPNAME( 0x20, 0x20, "Auto Data Sampling (step1of2)" ) PORT_DIPLOCATION("SW:3")
684     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
685     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
686     PORT_DIPNAME( 0x08, 0x08, "Auto Data Sampling (step2of2)" ) PORT_DIPLOCATION("SW:5")
687     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
688     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
689     //  Allow "Auto Data Sampling" = __o_o___
690     //                               12345678
691   #endif
668692INPUT_PORTS_END
669693
670694
r4470r4471
678702   PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_SPECIAL )    /* timing from the buttons interface */
679703
680704   PORT_MODIFY( "DIPSW" )
681   PORT_DIPNAME( 0x20, 0x20, "Invulnerability" )
705   PORT_DIPNAME( 0x20, 0x20, "Invulnerability" ) PORT_DIPLOCATION("SW:3")
682706   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
683707   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
684   PORT_DIPNAME( 0x01, 0x01, "Freeze" )
708   PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8")
685709   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
686710   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
687711
r4470r4471
743767   PORT_INCLUDE( ns1 )
744768
745769   PORT_MODIFY( "DIPSW" )
746   PORT_DIPNAME( 0x10, 0x10, "Freeze" )
770   PORT_DIPNAME( 0x10, 0x10, "Freeze" ) PORT_DIPLOCATION("SW:4")
747771   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
748772   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
749   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) )
773   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Level_Select ) ) PORT_DIPLOCATION("SW:8")
750774   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
751775   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
752776INPUT_PORTS_END
r4470r4471
756780   PORT_INCLUDE( ns1 )
757781
758782   PORT_MODIFY( "DIPSW" )
759   PORT_DIPNAME( 0x20, 0x20, "Show Coordinates" )
783   PORT_DIPNAME( 0x20, 0x20, "Show Coordinates" ) PORT_DIPLOCATION("SW:3")
760784   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
761785   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
762   PORT_DIPNAME( 0x08, 0x08, "Sprite Viewer" )
786   PORT_DIPNAME( 0x08, 0x08, "Sprite Viewer" ) PORT_DIPLOCATION("SW:5")
763787   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
764788   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
765   PORT_DIPNAME( 0x04, 0x04, "Invincibility (Cheat)")
789   PORT_DIPNAME( 0x04, 0x04, "Invincibility (Cheat)") PORT_DIPLOCATION("SW:6")
766790   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
767791   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
768   PORT_DIPNAME( 0x01, 0x01, "Freeze" )
792   PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8")
769793   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
770794   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
771795INPUT_PORTS_END
r4470r4471
775799   PORT_INCLUDE( ns1 )
776800
777801   PORT_MODIFY( "DIPSW" )
778   /* see code @ e331. The lines this draws can't even be seen because they are erased afterwards */
779   PORT_DIPNAME( 0x7e, 0x7e, "Draw Debug Lines" )
780   PORT_DIPSETTING(    0x7e, DEF_STR( Off ) )
781   PORT_DIPSETTING(    0x5c, DEF_STR( On ) )
782   PORT_DIPNAME( 0x01, 0x01, "Freeze" )
802   #ifdef PRIORITY_EASINESS_TO_PLAY
803     /* see code @ e331. The lines this draws can't even be seen because they are erased afterwards */
804     PORT_DIPNAME( 0x7e, 0x7e, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7,6,5,4,3,2")
805     PORT_DIPSETTING(    0x7e, DEF_STR( Off ) )
806     PORT_DIPSETTING(    0x5c, DEF_STR( On ) )
807   #else
808     PORT_DIPNAME( 0x40, 0x40, "Draw Debug Lines (step1of6)" ) PORT_DIPLOCATION("SW:2")
809     PORT_DIPSETTING(    0x40, "Yes (off)" )
810     PORT_DIPSETTING(    0x00, "No (on)" )
811     PORT_DIPNAME( 0x20, 0x20, "Draw Debug Lines (step2of6)" ) PORT_DIPLOCATION("SW:3")
812     PORT_DIPSETTING(    0x20, "No (off)" )
813     PORT_DIPSETTING(    0x00, "Yes (on)" )
814     PORT_DIPNAME( 0x10, 0x10, "Draw Debug Lines (step3of6)" ) PORT_DIPLOCATION("SW:4")
815     PORT_DIPSETTING(    0x10, "Yes (off)" )
816     PORT_DIPSETTING(    0x00, "No (on)" )
817     PORT_DIPNAME( 0x08, 0x08, "Draw Debug Lines (step4of6)" ) PORT_DIPLOCATION("SW:5")
818     PORT_DIPSETTING(    0x08, "Yes (off)" )
819     PORT_DIPSETTING(    0x00, "No (on)" )
820     PORT_DIPNAME( 0x04, 0x04, "Draw Debug Lines (step5of6)" ) PORT_DIPLOCATION("SW:6")
821     PORT_DIPSETTING(    0x04, "Yes (off)" )
822     PORT_DIPSETTING(    0x00, "No (on)" )
823     PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines (step6of6)" ) PORT_DIPLOCATION("SW:7")
824     PORT_DIPSETTING(    0x02, "No (off)" )
825     PORT_DIPSETTING(    0x00, "Yes (on)" )
826     //  Allow "Draw Debug Lines" = _xxoxxo_
827     //                             12345678
828   #endif
829   PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8")
783830   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
784831   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
785832INPUT_PORTS_END
r4470r4471
790837
791838   PORT_MODIFY( "DIPSW" )
792839   /* these two don't seem to have much use... */
793   PORT_DIPNAME( 0x11, 0x11, "CPU #0 Kick Watchdog in IRQ" )
794   PORT_DIPSETTING(    0x11, DEF_STR( No ) )
795   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
796   PORT_DIPNAME( 0x06, 0x06, "CPU #0&1 Kick Watchdog in IRQ" )
797   PORT_DIPSETTING(    0x06, DEF_STR( No ) )
798   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
840   #ifdef PRIORITY_EASINESS_TO_PLAY
841     PORT_DIPNAME( 0x11, 0x11, "CPU #0 Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:8,4")
842     PORT_DIPSETTING(    0x11, DEF_STR( No ) )
843     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
844   #else
845     PORT_DIPNAME( 0x10, 0x10, "CPU #0 Kick Watchdog in IRQ (step1of2)" ) PORT_DIPLOCATION("SW:4")
846     PORT_DIPSETTING(    0x10, DEF_STR( No ) )
847     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
848     PORT_DIPNAME( 0x01, 0x01, "CPU #0 Kick Watchdog in IRQ (step2of2)" ) PORT_DIPLOCATION("SW:8")
849     PORT_DIPSETTING(    0x01, DEF_STR( No ) )
850     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
851     //  Allow "CPU #0 Kick Watchdog in IRQ" = ___o___o
852     //                                        12345678
853   #endif
854   #ifdef PRIORITY_EASINESS_TO_PLAY
855     PORT_DIPNAME( 0x06, 0x06, "CPU #0&1 Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:7,6")
856     PORT_DIPSETTING(    0x06, DEF_STR( No ) )
857     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
858   #else
859     PORT_DIPNAME( 0x04, 0x04, "CPU #0&1 Kick Watchdog in IRQ (step1of2)" ) PORT_DIPLOCATION("SW:6")
860     PORT_DIPSETTING(    0x04, DEF_STR( No ) )
861     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
862     PORT_DIPNAME( 0x02, 0x02, "CPU #0&1 Kick Watchdog in IRQ (step2of2)" ) PORT_DIPLOCATION("SW:7")
863     PORT_DIPSETTING(    0x02, DEF_STR( No ) )
864     PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
865     //  Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_
866     //                                          12345678
867   #endif
799868   PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" )
800869   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
801870   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
852921
853922   PORT_MODIFY( "DIPSW" )
854923   /* see code @ e90c. The lines this draws can't even be seen because they are erased afterwards */
855   PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" )
924   PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7")
856925   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
857926   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
858   PORT_DIPNAME( 0x01, 0x01, "Freeze" )
927   PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8")
859928   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
860929   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
861930INPUT_PORTS_END
r4470r4471
865934   PORT_INCLUDE( ns1 )
866935
867936   PORT_MODIFY( "DIPSW" )
868   PORT_DIPNAME( 0x40, 0x40, "Freeze" )
937   PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2")
869938   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
870939   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
871940   /* this doesn't seem to have much use... */
872   PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" )
941   PORT_DIPNAME( 0x20, 0x20, "Kick Watchdog in IRQ" ) PORT_DIPLOCATION("SW:3")
873942   PORT_DIPSETTING(    0x20, DEF_STR( No ) )
874943   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
875944   /* to enter the A.D.S. menu, set the dip switch, keep 1p start pressed and press service coin */
876   PORT_DIPNAME( 0x04, 0x04, "Auto Data Sampling" )
945   PORT_DIPNAME( 0x04, 0x04, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:6")
877946   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
878947   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
879948INPUT_PORTS_END
r4470r4471
884953
885954   PORT_MODIFY( "DIPSW" )
886955   /* see code @ e8ff. The lines this draws can't even be seen because they are erased afterwards */
887   PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" )
956   PORT_DIPNAME( 0x02, 0x02, "Draw Debug Lines" ) PORT_DIPLOCATION("SW:7")
888957   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
889958   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
890   PORT_DIPNAME( 0x01, 0x01, "Freeze" )
959   PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW:8")
891960   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
892961   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
893962INPUT_PORTS_END
r4470r4471
897966   PORT_INCLUDE( ns1 )
898967
899968   PORT_MODIFY( "DIPSW" )
900   PORT_DIPNAME( 0x40, 0x40, "Freeze" )
969   PORT_DIPNAME( 0x40, 0x40, "Freeze" ) PORT_DIPLOCATION("SW:2")
901970   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
902971   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
903972INPUT_PORTS_END
r4470r4471
907976   PORT_INCLUDE( ns1 )
908977
909978   PORT_MODIFY( "DIPSW" )
910   PORT_DIPNAME( 0x40, 0x40, "Auto Data Sampling" )
979   PORT_DIPNAME( 0x40, 0x40, "Auto Data Sampling" ) PORT_DIPLOCATION("SW:2")
911980   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
912981   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
913982INPUT_PORTS_END
src/mame/drivers/mainevt.c
r4470r4471
2929#include "sound/2151intf.h"
3030#include "sound/k007232.h"
3131#include "sound/upd7759.h"
32#include "konamipt.h"
3233
33
3434VIDEO_UPDATE( mainevt );
3535VIDEO_UPDATE( dv );
3636VIDEO_START( mainevt );
r4470r4471
161161   AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
162162   AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)            /* probably */
163163   AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w)   /* probably */
164   AM_RANGE(0x1f8c, 0x1f8d) AM_WRITE(SMH_NOP)   /* ??? */
164   AM_RANGE(0x1f8c, 0x1f8d) AM_WRITENOP   /* ??? */
165165   AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w)   /* coin counters + lamps */
166166
167167   AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w)
r4470r4471
251251   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
252252
253253   PORT_START("P1")
254   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
255   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
256   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
257   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
258   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
259   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
260   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
261   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
254   KONAMI8_B21_UNK(1)
262255
263256   PORT_START("P2")
264   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
265   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
266   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
267   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
268   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
269   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
270   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
271   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
257   KONAMI8_B21_UNK(2)
272258
273259   PORT_START("P3")
274   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
275   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
276   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
277   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
278   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
279   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
280   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
281   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
260   KONAMI8_B21_UNK(3)
282261
283262   PORT_START("P4")
284   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
285   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
286   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
287   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
288   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
289   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
290   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
291   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
263   KONAMI8_B21_UNK(4)
292264
293265   PORT_START("DSW1")
294266   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
r4470r4471
383355   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
384356
385357   PORT_MODIFY("DSW1")
386   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
387   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
388   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
389   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
390   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
391   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
392   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
393   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
394   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
395   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
396   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
397   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
398   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
399   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
400   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
401   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
402   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
358   KONAMI_COINAGE_ALT
403359INPUT_PORTS_END
404360
405361static INPUT_PORTS_START( devstors )
r4470r4471
421377   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
422378
423379   PORT_MODIFY("DSW1")      /* like mainevt, but different 0x00 settings */
424   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
425   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
426   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
427   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
428   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
429   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
430   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
431   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
432   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
433   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
434   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
435   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
436   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
437   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
438   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
439   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
440   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
441   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
442   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
443   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
444   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
445   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
446   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
447   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
448   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
449   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
450   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
451   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
452   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
453   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
454   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
455   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
456   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
457//  PORT_DIPSETTING(    0x00, "Invalid" )
380   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
381   /* "Invalid" = both coin slots disabled */
458382
459383   PORT_MODIFY("DSW2")
460384   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
src/mame/drivers/megazone.c
r4470r4471
1414#include "sound/ay8910.h"
1515#include "sound/dac.h"
1616#include "sound/flt_rc.h"
17#include "konamipt.h"
1718
18
1919extern UINT8 *megazone_scrollx;
2020extern UINT8 *megazone_scrolly;
2121
r4470r4471
119119   AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")  /* IO Coin */
120120   AM_RANGE(0x6001, 0x6001) AM_READ_PORT("IN1")  /* P1 IO */
121121   AM_RANGE(0x6002, 0x6002) AM_READ_PORT("IN2")  /* P2 IO */
122   AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1") /* DIP 1 */
123   AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2") /* DIP 2 */
122   AM_RANGE(0x8000, 0x8000) AM_READ_PORT("DSW1")
123   AM_RANGE(0x8001, 0x8001) AM_READ_PORT("DSW2")
124124   AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE(1)
125125ADDRESS_MAP_END
126126
r4470r4471
157157static INPUT_PORTS_START( megazone )
158158   /* 0x6000 -> 0xe320 (CPU1) = 0x3b20 (CPU0) */
159159   PORT_START("IN0")
160   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
161   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
162   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
163   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
164   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
165   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
166   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
167   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
160   KONAMI8_SYSTEM_UNK
168161
169162   /* 0x6001 -> 0xe31e (CPU1) = 0x3b1e (CPU0) */
170163   PORT_START("IN1")
171   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_8WAY
172   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
173   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY
174   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY
175   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
176   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
177   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
178   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
164   KONAMI8_MONO_B1_UNK
179165
180166   /* 0x6002 -> 0xe31e (CPU1) = 0x3b1e (CPU0) or 0xe31f (CPU1) = 0x3b1f (CPU0) in "test mode" */
181167   PORT_START("IN2")
182   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  ) PORT_8WAY PORT_COCKTAIL
183   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
184   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    ) PORT_8WAY PORT_COCKTAIL
185   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  ) PORT_8WAY PORT_COCKTAIL
186   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
187   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
188   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
189   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
168   KONAMI8_COCKTAIL_B1_UNK
190169
191170   /* 0x8000 -> 0xe020 (CPU1) = 0x3820 (CPU0) */
192171   PORT_START("DSW1")
r4470r4471
214193
215194   /* 0x8001 -> 0xe021 (CPU1) = 0x3821 (CPU0) */
216195   PORT_START("DSW2")
217   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
218   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
219   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
220   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
221   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
222   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
223   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
224   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
225   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
226   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
227   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
228   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
229   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
230   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
231   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
232   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
233   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
234   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
235   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
236   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
237   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
238   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
239   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
240   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
241   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
242   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
243   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
244   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
245   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
246   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
247   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
248   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
249   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
250//  PORT_DIPSETTING(    0x00, DEF_STR( 1C_0C ) )            "Not use"
196   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
197   /* "No Coin B" = coins produce sound, but no effect on coin counter */
251198INPUT_PORTS_END
252199
253200static INPUT_PORTS_START( megazona )
r4470r4471
593540
594541/* this displays Konami and Kosuka copyright with a Konami / Interlogic logo */
595542GAME( 1983, megaznik, megazone, megazone, megazone, megazone, ROT90, "Konami / Interlogic + Kosuka", "Mega Zone (Interlogic + Kosuka)", 0 )
596
src/mame/drivers/deco156.c
r4470r4471
197197   AM_RANGE(0x000000, 0x0fffff) AM_ROM
198198   AM_RANGE(0x100000, 0x107fff) AM_RAM
199199   AM_RANGE(0x120000, 0x120003) AM_READ_PORT("INPUTS")
200   AM_RANGE(0x120000, 0x120003) AM_WRITE(SMH_NOP) // Volume control in low byte
200   AM_RANGE(0x120000, 0x120003) AM_WRITENOP // Volume control in low byte
201201   AM_RANGE(0x120004, 0x120007) AM_WRITE(hvysmsh_eeprom_w)
202   AM_RANGE(0x120008, 0x12000b) AM_WRITE(SMH_NOP) // IRQ ack?
202   AM_RANGE(0x120008, 0x12000b) AM_WRITENOP // IRQ ack?
203203   AM_RANGE(0x12000c, 0x12000f) AM_DEVWRITE("oki1", hvysmsh_oki_0_bank_w)
204204   AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x000000ff)
205205   AM_RANGE(0x160000, 0x160003) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x000000ff)
r4470r4471
209209   AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE( wcvol95_pf1_rowscroll_r, wcvol95_pf1_rowscroll_w )
210210   AM_RANGE(0x1a4000, 0x1a4fff) AM_READWRITE( wcvol95_pf2_rowscroll_r, wcvol95_pf2_rowscroll_w )
211211   AM_RANGE(0x1c0000, 0x1c0fff) AM_READ(SMH_RAM) AM_WRITE(deco32_nonbuffered_palette_w) AM_BASE(&paletteram32)
212   AM_RANGE(0x1d0010, 0x1d002f) AM_READ(SMH_NOP) // Check for DMA complete?
212   AM_RANGE(0x1d0010, 0x1d002f) AM_READNOP // Check for DMA complete?
213213   AM_RANGE(0x1e0000, 0x1e1fff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
214214ADDRESS_MAP_END
215215
src/mame/drivers/toki.c
r4470r4471
129129   AM_RANGE(0x06e800, 0x06efff) AM_RAM_WRITE(toki_background1_videoram16_w) AM_BASE(&toki_background1_videoram16)
130130   AM_RANGE(0x06f000, 0x06f7ff) AM_RAM_WRITE(toki_background2_videoram16_w) AM_BASE(&toki_background2_videoram16)
131131   AM_RANGE(0x06f800, 0x06ffff) AM_RAM_WRITE(toki_foreground_videoram16_w) AM_BASE(&videoram16)
132   AM_RANGE(0x071000, 0x071001) AM_WRITE(SMH_NOP)   /* sprite related? seems another scroll register */
132   AM_RANGE(0x071000, 0x071001) AM_WRITENOP   /* sprite related? seems another scroll register */
133133            /* gets written the same value as 75000a (bg2 scrollx) */
134   AM_RANGE(0x071804, 0x071807) AM_WRITE(SMH_NOP)   /* sprite related, always 01be0100 */
134   AM_RANGE(0x071804, 0x071807) AM_WRITENOP   /* sprite related, always 01be0100 */
135135   AM_RANGE(0x07180e, 0x071e45) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
136136   AM_RANGE(0x072000, 0x072001) AM_READ(watchdog_reset16_r)   /* probably */
137137   AM_RANGE(0x075000, 0x075001) AM_WRITE(tokib_soundcommand16_w)
r4470r4471
843843GAME( 1989, tokia, toki, toki,  toki,  toki,  ROT0, "Tad", "Toki (World set 2)", 0 )
844844GAME( 1989, tokiu, toki, toki,  toki,  toki,  ROT0, "Tad (Fabtek license)", "Toki (US)", 0 )
845845GAME( 1989, juju,  toki, toki,  toki,  toki,  ROT0, "Tad", "JuJu Densetsu (Japan)", 0 )
846GAME( 1989, tokib, toki, tokib, tokib, tokib, ROT0, "bootleg", "Toki (bootleg)", 0 )
846GAME( 1990, tokib, toki, tokib, tokib, tokib, ROT0, "bootleg", "Toki (Datsu bootleg)", 0 )
847847/* Sound hardware seems to have been slightly modified, the coins are handled ok, but there is no music and bad sfx.  Program roms have a slight bitswap, Flipscreen also seems to be ignored */
848848GAME( 1989, jujub, toki, toki,  toki,  jujub, ROT180, "bootleg", "JuJu Densetsu (Japan, bootleg)", GAME_IMPERFECT_SOUND ) // bootleg of tokia/tokij revison
src/mame/drivers/junofrst.c
r4470r4471
8686#include "sound/ay8910.h"
8787#include "sound/dac.h"
8888#include "sound/flt_rc.h"
89#include "konamipt.h"
8990
90
9191static int i8039_status;
9292
9393static WRITE8_HANDLER( junofrst_bankselect_w )
r4470r4471
225225
226226static INPUT_PORTS_START( junofrst )
227227   PORT_START("SYSTEM")
228   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
229   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
230   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
231   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
232   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
233   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
234   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
235   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
228   KONAMI8_SYSTEM_UNK
236229
237230   PORT_START("P1")
238   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
239   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
240   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
241   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
242   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 )
243   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 )
244   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
245   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
231   KONAMI8_MONO_B213_UNK
246232
247233   PORT_START("P2")
248   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
249   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
250   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
251   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
252   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
253   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
254   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
255   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
234   KONAMI8_COCKTAIL_B213_UNK
256235
257236   PORT_START("DSW1")
258   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
259   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
260   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
261   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
262   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
263   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
264   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
265   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
266   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
267   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
268   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
269   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
270   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
271   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
272   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
273   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
274   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
275   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
276   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
277   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
278   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
279   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
280   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
281   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
282   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
283   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
284   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
285   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
286   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
287   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
288   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
289   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
290   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
291   PORT_DIPSETTING(    0x00, "Disabled" )
292   /* 0x00 not remmed out since the game makes the usual sound if you insert the coin */
237   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
238   /* "No Coin B" = coins produce sound, but no effect on coin counter */
293239
294240   PORT_START("DSW2")
295241   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
src/mame/drivers/renegade.c
r4470r4471
560560   AM_RANGE(0x3803, 0x3803) AM_WRITE(renegade_flipscreen_w)
561561   AM_RANGE(0x3804, 0x3804) AM_WRITE(mcu_w)
562562   AM_RANGE(0x3805, 0x3805) AM_WRITE(bankswitch_w)
563   AM_RANGE(0x3806, 0x3806) AM_WRITE(SMH_NOP) // ?? watchdog
563   AM_RANGE(0x3806, 0x3806) AM_WRITENOP // ?? watchdog
564564   AM_RANGE(0x3807, 0x3807) AM_WRITE(renegade_coin_counter_w)
565565   AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM)
566566   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
r4470r4471
575575
576576static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
577577   AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_RAM)
578   AM_RANGE(0x1800, 0x1800) AM_WRITE(SMH_NOP) // this gets written the same values as 0x2000
578   AM_RANGE(0x1800, 0x1800) AM_WRITENOP // this gets written the same values as 0x2000
579579   AM_RANGE(0x2000, 0x2000) AM_WRITE(adpcm_play_w)
580580   AM_RANGE(0x2800, 0x2801) AM_DEVWRITE("ym", ym3526_w)
581   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP) /* adpcm related? stereo pan? */
581   AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* adpcm related? stereo pan? */
582582   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
583583ADDRESS_MAP_END
584584
r4470r4471
963963
964964
965965
966GAME( 1986, renegade, 0,        renegade, renegade, renegade, ROT0, "Technos (Taito America license)", "Renegade (US)", 0 )
967GAME( 1986, kuniokun, renegade, renegade, renegade, kuniokun, ROT0, "Technos", "Nekketsu Kouha Kunio-kun (Japan)", 0 )
966GAME( 1986, renegade, 0,        renegade, renegade, renegade, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", 0 )
967GAME( 1986, kuniokun, renegade, renegade, renegade, kuniokun, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", 0 )
968968GAME( 1986, kuniokub, renegade, renegade, renegade, 0,        ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", 0 )
src/mame/drivers/lasso.c
r4470r4471
204204   AM_RANGE(0x04, 0x05) AM_DEVWRITE("ay2", ay8910_address_data_w)
205205   AM_RANGE(0x06, 0x06) AM_DEVREAD("ay2", ay8910_r)
206206   AM_RANGE(0x08, 0x08) AM_READWRITE(soundlatch_r, SMH_NOP) /* ??? */
207   AM_RANGE(0x14, 0x14) AM_WRITE(SMH_NOP)   /* ??? */
207   AM_RANGE(0x14, 0x14) AM_WRITENOP   /* ??? */
208208ADDRESS_MAP_END
209209
210210
src/mame/drivers/nbmj8688.c
r4470r4471
387387   AM_RANGE(0xc0, 0xcf) AM_WRITE(nbmj8688_clut_w)
388388   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
389389   AM_RANGE(0xe0, 0xe0) AM_WRITE(crystalg_romsel_w)
390//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
390//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
391391ADDRESS_MAP_END
392392
393393
src/mame/drivers/taito_h.c
r4470r4471
264264   AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r)      /* 68000 RAM (Mirror) */
265265   AM_RANGE(0x200000, 0x200001) AM_READ(syvalion_input_bypass_r)
266266   AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r)
267   AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP)
268   AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r)
267   AM_RANGE(0x300000, 0x300001) AM_READNOP
268   AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff)
269269   AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r)
270270   AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM)
271271ADDRESS_MAP_END
r4470r4471
275275   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram)
276276   AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w)
277277   AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w)
278   AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w)
279   AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w)
278   AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff)
279   AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff)
280280   AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w)
281281   AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
282282ADDRESS_MAP_END
r4470r4471
287287   AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r)      /* 68000 RAM (Mirror) */
288288   AM_RANGE(0x200000, 0x200001) AM_READ(TC0220IOC_halfword_portreg_r)
289289   AM_RANGE(0x200002, 0x200003) AM_READ(TC0220IOC_halfword_port_r)
290   AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP)
291   AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r)
290   AM_RANGE(0x300000, 0x300001) AM_READNOP
291   AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff)
292292   AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r)
293293   AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM)
294294ADDRESS_MAP_END
r4470r4471
298298   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram)
299299   AM_RANGE(0x200000, 0x200001) AM_WRITE(TC0220IOC_halfword_portreg_w)
300300   AM_RANGE(0x200002, 0x200003) AM_WRITE(TC0220IOC_halfword_port_w)
301   AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w)
302   AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w)
301   AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff)
302   AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff)
303303   AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w)
304304   AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
305305ADDRESS_MAP_END
r4470r4471
309309   AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM)            /* 68000 RAM */
310310   AM_RANGE(0x110000, 0x11ffff) AM_READ(taitoh_mirrorram_r)      /* 68000 RAM (Mirror) */
311311   AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r)
312   AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP)
313   AM_RANGE(0x300002, 0x300003) AM_READ(taitosound_comm16_lsb_r)
312   AM_RANGE(0x300000, 0x300001) AM_READNOP
313   AM_RANGE(0x300002, 0x300003) AM_READ8(taitosound_comm_r, 0x00ff)
314314   AM_RANGE(0x400000, 0x420fff) AM_READ(TC0080VCO_word_r)
315315   AM_RANGE(0x500800, 0x500fff) AM_READ(SMH_RAM)
316316ADDRESS_MAP_END
r4470r4471
319319   AM_RANGE(0x000000, 0x05ffff) AM_WRITE(SMH_ROM)
320320   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM) AM_BASE(&taitoh_68000_mainram)
321321   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)
322   AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w)
323   AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w)
322   AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff)
323   AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff)
324324   AM_RANGE(0x400000, 0x420fff) AM_WRITE(TC0080VCO_word_w)
325325   AM_RANGE(0x500800, 0x500fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
326   AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)   /* ?? writes zero once per frame */
326   AM_RANGE(0x600000, 0x600001) AM_WRITENOP   /* ?? writes zero once per frame */
327327ADDRESS_MAP_END
328328
329329
r4470r4471
332332   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1)
333333   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
334334   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
335   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
335   AM_RANGE(0xe200, 0xe200) AM_READNOP
336336   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
337   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
337   AM_RANGE(0xea00, 0xea00) AM_READNOP
338338ADDRESS_MAP_END
339339
340340static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
343343   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
344344   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
345345   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
346   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP)      /* pan control */
347   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP)       /* ? */
348   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)       /* ? */
346   AM_RANGE(0xe400, 0xe403) AM_WRITENOP      /* pan control */
347   AM_RANGE(0xee00, 0xee00) AM_WRITENOP       /* ? */
348   AM_RANGE(0xf000, 0xf000) AM_WRITENOP       /* ? */
349349   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
350350ADDRESS_MAP_END
351351
src/mame/drivers/8080bw.c
r4470r4471
396396    AM_RANGE(0x03, 0x03) AM_WRITE(invadpt2_sh_port_1_w)
397397    AM_RANGE(0x05, 0x05) AM_WRITE(cosmo_sh_port_2_w)
398398   AM_RANGE(0x06, 0x06) AM_WRITE(watchdog_reset_w)
399   AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP)
399   AM_RANGE(0x07, 0x07) AM_WRITENOP
400400ADDRESS_MAP_END
401401
402402
r4470r4471
10061006   AM_RANGE(0x800b, 0x800b) AM_READ_PORT("IN0")
10071007   AM_RANGE(0x8018, 0x8018) AM_WRITE(mb14241_0_shift_data_w)
10081008   AM_RANGE(0x8019, 0x8019) AM_WRITE(mb14241_0_shift_count_w)
1009   AM_RANGE(0x801a, 0x801a) AM_WRITE(SMH_NOP)
1010   AM_RANGE(0x801c, 0x801c) AM_WRITE(SMH_NOP)
1011   AM_RANGE(0x801d, 0x801d) AM_WRITE(SMH_NOP)
1009   AM_RANGE(0x801a, 0x801a) AM_WRITENOP
1010   AM_RANGE(0x801c, 0x801c) AM_WRITENOP
1011   AM_RANGE(0x801d, 0x801d) AM_WRITENOP
10121012   AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x0060) AM_RAM AM_BASE(&c8080bw_colorram)
10131013   AM_RANGE(0xd800, 0xffff) AM_ROM
10141014ADDRESS_MAP_END
r4470r4471
14001400   AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
14011401   AM_RANGE(0x03, 0x03) AM_WRITE(yosakdon_sh_port_1_w)
14021402   AM_RANGE(0x05, 0x05) AM_WRITE(yosakdon_sh_port_2_w)
1403   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) /* character numbers */
1403   AM_RANGE(0x06, 0x06) AM_WRITENOP /* character numbers */
14041404ADDRESS_MAP_END
14051405
14061406
src/mame/drivers/othunder.c
r4470r4471
501501   AM_RANGE(0x080000, 0x08ffff) AM_RAM
502502   AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_TC0220IOC_r, othunder_TC0220IOC_w)
503503//  AM_RANGE(0x090006, 0x090007) AM_WRITE(eeprom_w)
504//  AM_RANGE(0x09000c, 0x09000d) AM_WRITE(SMH_NOP)   /* ?? (keeps writing 0x77) */
504//  AM_RANGE(0x09000c, 0x09000d) AM_WRITENOP   /* ?? (keeps writing 0x77) */
505505   AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w)   /* palette */
506506   AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
507507   AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
r4470r4471
522522   AM_RANGE(0xe200, 0xe200) AM_READWRITE(SMH_NOP, taitosound_slave_port_w)
523523   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
524524   AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */
525   AM_RANGE(0xe600, 0xe600) AM_WRITE(SMH_NOP) /* ? */
525   AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
526526   AM_RANGE(0xea00, 0xea00) AM_READ_PORT(ROTARY_PORT_TAG)   /* rotary input */
527   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
528   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
527   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
528   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
529529   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
530530ADDRESS_MAP_END
531531
src/mame/drivers/meritm.c
r4470r4471
4040  Megatouch IV (c)1996
4141  Megatouch IV Tournament Edition (c)1996
4242  Super Megatouch IV (c) 1996  (rom labels 9255-41-0x, see below)
43  Super Megatouch IV Tournament Edition (c) 1996
4344  *Megatouch 5 (c)1997
4445  *Megatouch 5 Tournament Edition (c)1997
4546  Megatouch 6 (c)1998
r4470r4471
750751 *
751752 *************************************/
752753
753static void meritm_audio_pio_interrupt(const device_config *device, int state)
754static WRITE_LINE_DEVICE_HANDLER( meritm_audio_pio_interrupt )
754755{
755756   //logerror( "PIO(0) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) );
756757   cpu_set_input_line(device->machine->cpu[0], 0, state);
757758}
758759
759static void meritm_io_pio_interrupt(const device_config *device, int state)
760static WRITE_LINE_DEVICE_HANDLER( meritm_io_pio_interrupt )
760761{
761762   //logerror( "PIO(1) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) );
762763   cpu_set_input_line(device->machine->cpu[0], 0, state);
r4470r4471
784785   ds1204_w((data & 0x4) >> 2, (data & 0x2) >> 1, data & 0x01);
785786};
786787
787static READ8_DEVICE_HANDLER(meritm_io_pio_port_a_r)
788{
789   return input_port_read(device->machine, "PIO1_PORTA");
790};
791
792static READ8_DEVICE_HANDLER(meritm_io_pio_port_b_r)
793{
794   return input_port_read(device->machine, "PIO1_PORTB");
795};
796
797788static WRITE8_DEVICE_HANDLER(meritm_io_pio_port_a_w)
798789{
799790};
r4470r4471
804795
805796static const z80pio_interface meritm_audio_pio_intf =
806797{
807   meritm_audio_pio_interrupt,
808   meritm_audio_pio_port_a_r,
809   meritm_audio_pio_port_b_r,
810   meritm_audio_pio_port_a_w,
811   meritm_audio_pio_port_b_w,
812   0,
813   0
798   DEVCB_LINE(meritm_audio_pio_interrupt),
799   DEVCB_HANDLER(meritm_audio_pio_port_a_r),
800   DEVCB_HANDLER(meritm_audio_pio_port_b_r),
801   DEVCB_HANDLER(meritm_audio_pio_port_a_w),
802   DEVCB_HANDLER(meritm_audio_pio_port_b_w),
803   DEVCB_NULL,
804   DEVCB_NULL
814805};
815806
816807static const z80pio_interface meritm_io_pio_intf =
817808{
818   meritm_io_pio_interrupt,
819   meritm_io_pio_port_a_r,
820   meritm_io_pio_port_b_r,
821   meritm_io_pio_port_a_w,
822   meritm_io_pio_port_b_w,
823   0,
824   0
809   DEVCB_LINE(meritm_io_pio_interrupt),
810   DEVCB_INPUT_PORT("PIO1_PORTA"),
811   DEVCB_INPUT_PORT("PIO1_PORTB"),
812   DEVCB_HANDLER(meritm_io_pio_port_a_w),
813   DEVCB_HANDLER(meritm_io_pio_port_b_w),
814   DEVCB_NULL,
815   DEVCB_NULL
825816};
826817
827818static const z80_daisy_chain meritm_daisy_chain[] =
r4470r4471
12741265   ROM_LOAD( "9255-41-07_u38-r0g", 0x300000, 0x80000,  CRC(71eac4d4) SHA1(73b9ed876f0af94bbd88503921a2b4f26bcfd397) ) /* Location U38, 02/11/1997 11:59:41 - New Jersey version */
12751266   ROM_RELOAD(                     0x380000, 0x80000)
12761267
1277   ROM_REGION( 0x8000, "user1", 0 ) // nvram
1278   ROM_LOAD( "megat4sn.nv",  0x0000, 0x8000, CRC(1ac8de52) SHA1(d4e7e455f581d7c5192209995af1b98d7802e50f) )
1268   ROM_REGION( 0x8000, "user1", 0 ) // DS1225Y nv ram
1269   ROM_LOAD( "mt4sn_ds1225y.u31",  0x0000, 0x8000, CRC(8d2a97e7) SHA1(7cb01d9499fed1674da6a04a11ed1cef0a39b3c0) ) /* No actual label, so use a unique name for this set */
12791270
12801271   ROM_REGION( 0x1000, "user2", 0 ) // PALs
12811272   ROM_LOAD( "sc3943.u20",     0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) )
r4470r4471
12951286   ROM_RELOAD(                     0x380000, 0x080000 )
12961287
12971288   ROM_REGION( 0x8000, "user1", 0 ) // DS1644 nv ram
1298   ROM_LOAD( "ds1644.u31",  0x00000,  0x8000,   CRC(0908bc39) SHA1(e6ec6238d6bf5c802e046407c0f25a83b09f6135) )
1289   ROM_LOAD( "mt4te_ds1644.u31",  0x00000,  0x8000,   CRC(d9485491) SHA1(c602bf954fe8b06f81b0f5002246e8fa89237705) ) /* No actual label, so use a unique name for this set */
12991290
13001291   ROM_REGION( 0x1000, "user2", 0 ) // PALs
13011292   ROM_LOAD( "sc3943.u20",     0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) )
r4470r4471
13041295   ROM_LOAD( "sc3981-0a.u51",  0x000, 0x117, CRC(4fc750d0) SHA1(d09ff7a8c66aeb5c49e9fec84bd1521e3f5d8d0a) )
13051296ROM_END
13061297
1298ROM_START( megat4st ) /* Dallas DS1204V security key at U5 labeled 9255-51-01 U5-B-RO1 C1996 MII */
1299   ROM_REGION( 0x400000, "maincpu", 0 )
1300   ROM_LOAD( "9255-41-01_u32-r0",  0x000000, 0x100000, CRC(f51ae565) SHA1(99c58063bfa24b4383c8b37a1eab670fa6e4c62c) ) /* Location U32 */
1301   ROM_LOAD( "qs9255-02_u36-r0",   0x100000, 0x80000,  CRC(57322328) SHA1(12bc604c9d34cde431ef7cd2aa33c7b12ac01833) ) /* Location U36 */
1302   ROM_RELOAD(                     0x180000, 0x80000)
1303   ROM_LOAD( "qs9255-02_u37-r0",   0x200000, 0x80000,  CRC(f2e8bb4e) SHA1(5c5475b3c176a6aca9b2c6aa4aee422675d20bd1) ) /* Location U37 */
1304   ROM_RELOAD(                     0x280000, 0x80000)
1305   ROM_LOAD( "9255-51-01_u38-r0b", 0x300000, 0x080000, CRC(181a83cb) SHA1(b8f92ae76ebba3849db76b084f0ab7d82256d81a) ) /* Location U38, 12/10/1996 16:59:23 - Standard Version */
1306   ROM_RELOAD(                     0x380000, 0x080000 )
1307
1308   ROM_REGION( 0x8000, "user1", 0 ) // DS1644 nv ram
1309   ROM_LOAD( "mt4st_ds1644.u31",  0x00000,  0x8000,   CRC(c6226d91) SHA1(20c9fa7ad135ac229c6bdf85b901629a0ecb8a81) ) /* No actual label, so use a unique name for this set */
1310
1311   ROM_REGION( 0x1000, "user2", 0 ) // PALs
1312   ROM_LOAD( "sc3943.u20",     0x000, 0x117, CRC(5a72fe78) SHA1(4b1a36904eb7048518507fe14bdade5c2589dbd7) )
1313   ROM_LOAD( "sc3944-0a.u19",  0x000, 0x2dd, CRC(4cc46c5e) SHA1(0bab970df1539ce905f43603ad13171b05449a01) )
1314   ROM_LOAD( "sc3980.u40",     0x000, 0x117, CRC(ee0cdab5) SHA1(216fef50a8a0f6a33b704d3501a4c5c3cbac2bad) )
1315   ROM_LOAD( "sc3981-0a.u51",  0x000, 0x117, CRC(4fc750d0) SHA1(d09ff7a8c66aeb5c49e9fec84bd1521e3f5d8d0a) )
1316ROM_END
1317
13071318ROM_START( megat5 ) /* Dallas DS1204V security key at U5 labeled 9255-60-01 U5-B-RO1 C1998 MII */
13081319   ROM_REGION( 0x400000, "maincpu", 0 )
13091320   ROM_LOAD( "9255-60-01_u32-r0",  0x000000, 0x100000, CRC(f8f7f48e) SHA1(1bebe1f8898c60b795a0f794ca9b79e03d2744e4) )
r4470r4471
14361447GAME( 1996, megat4a,   megat4, meritm_crt260, meritm_crt260, megat4,   ROT0, "Merit", "Megatouch IV (9255-40-01 ROD, Standard version)", GAME_IMPERFECT_GRAPHICS )
14371448GAME( 1996, megat4sn,  megat4, meritm_crt260, meritm_crt260, megat4,   ROT0, "Merit", "Super Megatouch IV (9255-41-07 ROG, New Jersey version)", GAME_IMPERFECT_GRAPHICS )
14381449GAME( 1996, megat4te,  megat4, meritm_crt260, meritm_crt260, megat4te, ROT0, "Merit", "Megatouch IV Tournament Edition (9255-50-01 ROD, Standard version)", GAME_IMPERFECT_GRAPHICS )
1450GAME( 1996, megat4st,  megat4, meritm_crt260, meritm_crt260, megat4te, ROT0, "Merit", "Super Megatouch IV Tournament Edition (9255-51-01 ROB, Standard version)", GAME_IMPERFECT_GRAPHICS )
14391451GAME( 1997, megat5,    0,      meritm_crt260, meritm_crt260, megat5,   ROT0, "Merit", "Megatouch 5 (9255-60-01 ROC, Standard version)", GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING )
14401452GAME( 1998, megat5nj,  megat5, meritm_crt260, meritm_crt260, megat5,   ROT0, "Merit", "Megatouch 5 (9255-60-07 RON, New Jersey version)", GAME_IMPERFECT_GRAPHICS )
14411453GAME( 1998, megat6,    0,      meritm_crt260, meritm_crt260, megat6,   ROT0, "Merit", "Megatouch 6 (9255-80-01 ROA, Standard version)", GAME_IMPERFECT_GRAPHICS )
src/mame/drivers/slapshot.c
r4470r4471
316316   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10)
317317   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
318318   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
319   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
319   AM_RANGE(0xe200, 0xe200) AM_READNOP
320320   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
321   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
321   AM_RANGE(0xea00, 0xea00) AM_READNOP
322322ADDRESS_MAP_END
323323
324324static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
327327   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
328328   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
329329   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
330   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
331   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
332   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
330   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
331   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
332   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
333333   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
334334ADDRESS_MAP_END
335335
src/mame/drivers/xyonix.c
r4470r4471
150150   ADDRESS_MAP_GLOBAL_MASK(0xff)
151151   AM_RANGE(0x20, 0x20) AM_READNOP AM_DEVWRITE("sn1", sn76496_w)   /* SN76496 ready signal */
152152   AM_RANGE(0x21, 0x21) AM_READNOP AM_DEVWRITE("sn2", sn76496_w)
153   AM_RANGE(0x40, 0x40) AM_WRITE(SMH_NOP)      /* NMI ack? */
153   AM_RANGE(0x40, 0x40) AM_WRITENOP      /* NMI ack? */
154154   AM_RANGE(0x50, 0x50) AM_WRITE(xyonix_irqack_w)
155   AM_RANGE(0x60, 0x61) AM_WRITE(SMH_NOP)      /* mc6845 */
155   AM_RANGE(0x60, 0x61) AM_WRITENOP      /* mc6845 */
156156   AM_RANGE(0xe0, 0xe0) AM_READWRITE(xyonix_io_r, xyonix_io_w)
157157ADDRESS_MAP_END
158158
src/mame/drivers/cninja.c
r4470r4471
190190   AM_RANGE(0x1a4000, 0x1a47ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
191191   AM_RANGE(0x1b4000, 0x1b4001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
192192   AM_RANGE(0x1bc000, 0x1bc0ff) AM_WRITE(deco16_104_cninja_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
193   AM_RANGE(0x308000, 0x308fff) AM_WRITE(SMH_NOP) /* Bootleg only */
193   AM_RANGE(0x308000, 0x308fff) AM_WRITENOP /* Bootleg only */
194194ADDRESS_MAP_END
195195
196196static ADDRESS_MAP_START( edrandy_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
229229   AM_RANGE(0x188000, 0x189fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16)
230230   AM_RANGE(0x194000, 0x197fff) AM_WRITE(SMH_RAM) AM_BASE(&cninja_ram) /* Main ram */
231231   AM_RANGE(0x198000, 0x1987ff) AM_WRITE(deco16_60_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
232   AM_RANGE(0x199550, 0x199551) AM_WRITE(SMH_NOP) /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
233   AM_RANGE(0x199750, 0x199751) AM_WRITE(SMH_NOP) /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
232   AM_RANGE(0x199550, 0x199551) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
233   AM_RANGE(0x199750, 0x199751) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
234234
235235   AM_RANGE(0x1a4000, 0x1a4007) AM_WRITE(cninja_irq_w)
236236   AM_RANGE(0x1ac000, 0x1ac001) AM_WRITE(buffer_spriteram16_w) /* DMA flag */
237237   AM_RANGE(0x1bc000, 0x1bc7ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
238   AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITE(SMH_NOP) /* Another bug in game code?  Sprite list can overrun.  Doesn't seem to mirror */
238   AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITENOP /* Another bug in game code?  Sprite list can overrun.  Doesn't seem to mirror */
239239ADDRESS_MAP_END
240240
241241static ADDRESS_MAP_START( robocop2_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
297297   AM_RANGE(0x316000, 0x317fff) AM_READ(SMH_RAM)
298298   AM_RANGE(0x318000, 0x3187ff) AM_READ(SMH_RAM)
299299   AM_RANGE(0x31a000, 0x31a7ff) AM_READ(SMH_RAM)
300   AM_RANGE(0xad00ac, 0xad00ff) AM_READ(SMH_NOP) /* Reads from here seem to be a game code bug */
300   AM_RANGE(0xad00ac, 0xad00ff) AM_READNOP /* Reads from here seem to be a game code bug */
301301ADDRESS_MAP_END
302302
303303static ADDRESS_MAP_START( mutantf_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
307307   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) AM_SIZE(&spriteram_2_size)
308308   AM_RANGE(0x160000, 0x161fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16)
309309   AM_RANGE(0x180000, 0x180001) AM_WRITE(deco16_priority_w)
310   AM_RANGE(0x180002, 0x180003) AM_WRITE(SMH_NOP) /* VBL irq ack */
310   AM_RANGE(0x180002, 0x180003) AM_WRITENOP /* VBL irq ack */
311311   AM_RANGE(0x1a0000, 0x1a07ff) AM_WRITE(deco16_66_prot_w) AM_BASE(&deco16_prot_ram) /* Protection writes */
312312   AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(buffer_spriteram16_w)
313313   AM_RANGE(0x1e0000, 0x1e0001) AM_WRITE(buffer_spriteram16_2_w)
r4470r4471
350350
351351static ADDRESS_MAP_START( sound_readmem_mutantf, ADDRESS_SPACE_PROGRAM, 8 )
352352   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
353   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
353   AM_RANGE(0x100000, 0x100001) AM_READNOP
354354   AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
355355   AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki1", okim6295_r)
356356   AM_RANGE(0x130000, 0x130001) AM_DEVREAD("oki2", okim6295_r)
r4470r4471
360360
361361static ADDRESS_MAP_START( sound_writemem_mutantf, ADDRESS_SPACE_PROGRAM, 8 )
362362   AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
363   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP)
363   AM_RANGE(0x100000, 0x100001) AM_WRITENOP
364364   AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
365365   AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki1", okim6295_w)
366366   AM_RANGE(0x130000, 0x130001) AM_DEVWRITE("oki2", okim6295_w)
src/mame/drivers/psikyo4.c
r4470r4471
396396   AM_RANGE(0x02000000, 0x021fffff) AM_READ(SMH_BANK1) // data ROM
397397   AM_RANGE(0x03000000, 0x030037ff) AM_READ(SMH_RAM)
398398   AM_RANGE(0x03003fe0, 0x03003fe3) AM_READ(ps4_eeprom_r)
399   AM_RANGE(0x03003fe4, 0x03003fe7) AM_READ(SMH_NOP) // also writes to this address - might be vblank?
399   AM_RANGE(0x03003fe4, 0x03003fe7) AM_READNOP // also writes to this address - might be vblank?
400400//  AM_RANGE(0x03003fe8, 0x03003fef) AM_READ(SMH_RAM) // vid regs?
401401   AM_RANGE(0x03004000, 0x03005fff) AM_READ(SMH_RAM)
402402   AM_RANGE(0x05000000, 0x05000003) AM_DEVREAD8("ymf", ymf278b_r, 0xffffffff) // read YMF status
r4470r4471
414414   AM_RANGE(0x00000000, 0x000fffff) AM_WRITE(SMH_ROM)   // program ROM (1 meg)
415415   AM_RANGE(0x03000000, 0x030037ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size)
416416   AM_RANGE(0x03003fe0, 0x03003fe3) AM_WRITE(ps4_eeprom_w)
417//  AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITE(SMH_NOP) // might be vblank?
417//  AM_RANGE(0x03003fe4, 0x03003fe7) AM_WRITENOP // might be vblank?
418418   AM_RANGE(0x03003fe4, 0x03003fef) AM_WRITE(ps4_vidregs_w) AM_BASE(&psikyo4_vidregs) // vid regs?
419419   AM_RANGE(0x03003ff0, 0x03003ff3) AM_WRITE(ps4_screen1_brt_w) // screen 1 brightness
420420   AM_RANGE(0x03003ff4, 0x03003ff7) AM_WRITE(ps4_bgpen_1_dword_w) AM_BASE(&bgpen_1) // screen 1 clear colour
src/mame/drivers/rollrace.c
r4470r4471
4141   AM_RANGE(0xd900, 0xd900) AM_READ(ra_fake_d800_r) /* protection ??*/
4242   AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM)
4343   AM_RANGE(0xe400, 0xe47f) AM_READ(SMH_RAM)
44   AM_RANGE(0xec00, 0xec0f) AM_READ(SMH_NOP) /* Analog sound effects ??*/
44   AM_RANGE(0xec00, 0xec0f) AM_READNOP /* Analog sound effects ??*/
4545   AM_RANGE(0xf000, 0xf0ff) AM_READ(SMH_RAM)
4646   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
4747   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
4848   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
4949   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
5050   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
51   AM_RANGE(0xd806, 0xd806) AM_READ(SMH_NOP) /* looks like a watchdog, bit4 checked*/
51   AM_RANGE(0xd806, 0xd806) AM_READNOP /* looks like a watchdog, bit4 checked*/
5252ADDRESS_MAP_END
5353
5454static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
5959   AM_RANGE(0xe000, 0xe3ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
6060   AM_RANGE(0xe400, 0xe47f) AM_WRITE(SMH_RAM) AM_BASE(&colorram)
6161   AM_RANGE(0xe800, 0xe800) AM_WRITE(soundlatch_w)
62   AM_RANGE(0xec00, 0xec0f) AM_WRITE(SMH_NOP) /* Analog sound effects ?? ec00 sound enable ?*/
62   AM_RANGE(0xec00, 0xec0f) AM_WRITENOP /* Analog sound effects ?? ec00 sound enable ?*/
6363   AM_RANGE(0xf000, 0xf0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
6464   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(rollrace_flipx_w)
6565   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(interrupt_enable_w)
66   AM_RANGE(0xfc02, 0xfc03) AM_WRITE(SMH_NOP) /* coin counters */
66   AM_RANGE(0xfc02, 0xfc03) AM_WRITENOP /* coin counters */
6767   AM_RANGE(0xfc04, 0xfc05) AM_WRITE(rollrace_charbank_w)
6868   AM_RANGE(0xfc06, 0xfc06) AM_WRITE(rollrace_spritebank_w)
6969   AM_RANGE(0xf400, 0xf400) AM_WRITE(rollrace_backgroundcolor_w)
src/mame/drivers/mirage.c
r4470r4471
189189
190190//  AM_RANGE(0x140006, 0x140007) AM_READ(random_readers)
191191
192//  AM_RANGE(0x150006, 0x150007) AM_READ(SMH_NOP)
192//  AM_RANGE(0x150006, 0x150007) AM_READNOP
193193
194194   AM_RANGE(0x16c006, 0x16c007) AM_READ(mirage_input_r)
195195
r4470r4471
215215   AM_RANGE(0x140000, 0x14000f) AM_DEVREADWRITE8("oki2", okim6295_r, okim6295_w, 0x00ff)
216216   AM_RANGE(0x150000, 0x15000f) AM_DEVREADWRITE8("oki1", okim6295_r, okim6295_w, 0x00ff)
217217
218   AM_RANGE(0x160000, 0x160001) AM_WRITE(SMH_NOP)
218   AM_RANGE(0x160000, 0x160001) AM_WRITENOP
219219
220220   AM_RANGE(0x168000, 0x16800f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
221221
222   AM_RANGE(0x16a000, 0x16a001) AM_WRITE(SMH_NOP)
222   AM_RANGE(0x16a000, 0x16a001) AM_WRITENOP
223223
224224   AM_RANGE(0x16c000, 0x16c001) AM_WRITE(okim1_rombank_w)
225225   AM_RANGE(0x16c002, 0x16c003) AM_WRITE(okim0_rombank_w)
226226   AM_RANGE(0x16c004, 0x16c005) AM_WRITE(mirage_mux_w)
227227
228   AM_RANGE(0x16e000, 0x16e001) AM_WRITE(SMH_NOP)
228   AM_RANGE(0x16e000, 0x16e001) AM_WRITENOP
229229
230230   AM_RANGE(0x170000, 0x173fff) AM_WRITE(SMH_RAM)
231231ADDRESS_MAP_END
src/mame/drivers/ddrible.c
r4470r4471
1414#include "sound/2203intf.h"
1515#include "sound/vlm5030.h"
1616#include "sound/flt_rc.h"
17#include "konamipt.h"
1718
1819int ddrible_int_enable_0;
1920int ddrible_int_enable_1;
r4470r4471
182183
183184static INPUT_PORTS_START( ddribble )
184185   PORT_START("P1")
185   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
186   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
187   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
188   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
189   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
190   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
191   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
186   KONAMI8_B132(1)
192187   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
193188
194189   PORT_START("P2")
195   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
196   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
197   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
198   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
199   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
200   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
201   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
190   KONAMI8_B132(2)
202191   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
203192
204193   PORT_START("SYSTEM")
205   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
206   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
207   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
208   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
209   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
210   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
211   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
212   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
194   KONAMI8_SYSTEM_UNK
213195
214196   PORT_START("DSW1")
215   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
216   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
217   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
218   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
219   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
220   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
221   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
222   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
223   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
224   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
225   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
226   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
227   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
228   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
229   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
230   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
231   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
232   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
233   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
234   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
235   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
236   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
237   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
238   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
239   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
240   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
241   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
242   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
243   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
244   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
245   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
246   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
247   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
248   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
197   KONAMI_COINAGE_ALT_LOC(SW1)
249198
250199   PORT_START("DSW2")
251200   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "SW2:1" )   /* Manual says it's Unused */
r4470r4471
418367ROM_END
419368
420369
421
422370GAME( 1986, ddribble, 0, ddribble, ddribble, 0, ROT0, "Konami", "Double Dribble", 0)
src/mame/drivers/popper.c
r4470r4471
166166   AM_RANGE(0xd800, 0xdfff) AM_READ(SMH_RAM)               //shared with sound cpu
167167   AM_RANGE(0xe000, 0xe007) AM_READ(popper_input_ports_r)
168168   AM_RANGE(0xe400, 0xe400) AM_READ(popper_soundcpu_nmi_r)
169   AM_RANGE(0xf800, 0xf800) AM_READ(SMH_NOP)               //?? read once at startup
170   AM_RANGE(0xfc00, 0xfc00) AM_READ(SMH_NOP)               //?? possibly watchdog
171   AM_RANGE(0xffff, 0xffff) AM_READ(SMH_NOP)
169   AM_RANGE(0xf800, 0xf800) AM_READNOP               //?? read once at startup
170   AM_RANGE(0xfc00, 0xfc00) AM_READNOP               //?? possibly watchdog
171   AM_RANGE(0xffff, 0xffff) AM_READNOP
172172ADDRESS_MAP_END
173173
174174static ADDRESS_MAP_START( popper_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
186186   AM_RANGE(0xe001, 0xe001) AM_WRITE(popper_flipscreen_w)
187187   AM_RANGE(0xe002, 0xe002) AM_WRITE(popper_e002_w)            //?? seems to be graphic related
188188   AM_RANGE(0xe003, 0xe003) AM_WRITE(popper_gfx_bank_w)
189   AM_RANGE(0xe004, 0xe007) AM_WRITE(SMH_NOP)               //?? range cleared once when the SP is set
189   AM_RANGE(0xe004, 0xe007) AM_WRITENOP               //?? range cleared once when the SP is set
190190ADDRESS_MAP_END
191191
192192static ADDRESS_MAP_START( popper_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
193193   AM_RANGE(0x0000, 0x0fff) AM_READ(SMH_ROM)
194   AM_RANGE(0x8002, 0x8002) AM_READ(SMH_NOP)               //?? all read once at startup and the
195   AM_RANGE(0x8003, 0x8003) AM_READ(SMH_NOP)               //?? result ignored, looks like part
196   AM_RANGE(0xa002, 0xa002) AM_READ(SMH_NOP)               //?? of AY8910 initialisation
194   AM_RANGE(0x8002, 0x8002) AM_READNOP               //?? all read once at startup and the
195   AM_RANGE(0x8003, 0x8003) AM_READNOP               //?? result ignored, looks like part
196   AM_RANGE(0xa002, 0xa002) AM_READNOP               //?? of AY8910 initialisation
197197   AM_RANGE(0xd800, 0xdfff) AM_READ(popper_sharedram_r)
198198ADDRESS_MAP_END
199199
200200static ADDRESS_MAP_START( popper_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
201201   AM_RANGE(0x0000, 0x0fff) AM_WRITE(SMH_ROM)
202202   AM_RANGE(0x8000, 0x8001) AM_DEVWRITE("ay1", ay8910_address_data_w)
203   AM_RANGE(0x8002, 0x8002) AM_WRITE(SMH_NOP)               //?? same writes as 0x8000 (mostly)
203   AM_RANGE(0x8002, 0x8002) AM_WRITENOP               //?? same writes as 0x8000 (mostly)
204204   AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ay2", ay8910_address_data_w)
205   AM_RANGE(0xa002, 0xa002) AM_WRITE(SMH_NOP)               //?? same writes as 0xa000
205   AM_RANGE(0xa002, 0xa002) AM_WRITENOP               //?? same writes as 0xa000
206206   AM_RANGE(0xd800, 0xdfff) AM_WRITE(popper_sharedram_w)
207207ADDRESS_MAP_END
208208
src/mame/drivers/ladyfrog.c
r4470r4471
156156   AM_RANGE(0xdca0, 0xdcbf) AM_READ(ladyfrog_scrlram_r)
157157   AM_RANGE(0xdcc0, 0xdcff) AM_READ(SMH_RAM)
158158   AM_RANGE(0xdd00, 0xdeff) AM_READ(ladyfrog_palette_r)
159   AM_RANGE(0xd0d0, 0xd0d0) AM_READ(SMH_NOP) /* code jumps to ASCII text "Alfa tecnology"  @ $b7 */
159   AM_RANGE(0xd0d0, 0xd0d0) AM_READNOP /* code jumps to ASCII text "Alfa tecnology"  @ $b7 */
160160   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM)
161161ADDRESS_MAP_END
162162
r4470r4471
181181   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
182182   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
183183   AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)
184   AM_RANGE(0xd200, 0xd200) AM_READ(SMH_NOP)
185   AM_RANGE(0xe000, 0xefff) AM_READ(SMH_NOP)
184   AM_RANGE(0xd200, 0xd200) AM_READNOP
185   AM_RANGE(0xe000, 0xefff) AM_READNOP
186186ADDRESS_MAP_END
187187
188188static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
189189   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
190190   AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM)
191   AM_RANGE(0xc800, 0xc801) AM_WRITE(SMH_NOP)
191   AM_RANGE(0xc800, 0xc801) AM_WRITENOP
192192   AM_RANGE(0xc802, 0xc803) AM_DEVWRITE("ay", ay8910_address_data_w)
193193   AM_RANGE(0xc900, 0xc90d) AM_DEVWRITE("msm", msm5232_w)
194   AM_RANGE(0xca00, 0xca00) AM_WRITE(SMH_NOP)
195   AM_RANGE(0xcb00, 0xcb00) AM_WRITE(SMH_NOP)
196   AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP)
194   AM_RANGE(0xca00, 0xca00) AM_WRITENOP
195   AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP
196   AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
197197   AM_RANGE(0xd000, 0xd000) AM_WRITE(to_main_w)
198198   AM_RANGE(0xd200, 0xd200) AM_WRITE(nmi_enable_w)
199199   AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w)
200   AM_RANGE(0xd600, 0xd600) AM_WRITE(SMH_NOP)
201   AM_RANGE(0xe000, 0xefff) AM_WRITE(SMH_NOP)
200   AM_RANGE(0xd600, 0xd600) AM_WRITENOP
201   AM_RANGE(0xe000, 0xefff) AM_WRITENOP
202202ADDRESS_MAP_END
203203
204204
src/mame/drivers/sidearms.c
r4470r4471
201201   AM_RANGE(0xc800, 0xc800) AM_WRITE(soundlatch_w)
202202   AM_RANGE(0xc801, 0xc801) AM_WRITE(whizz_bankswitch_w)
203203   AM_RANGE(0xc802, 0xc802) AM_WRITE(watchdog_reset_w)
204   AM_RANGE(0xc803, 0xc803) AM_WRITE(SMH_NOP) /* ? */
204   AM_RANGE(0xc803, 0xc803) AM_WRITENOP /* ? */
205205   AM_RANGE(0xc804, 0xc804) AM_WRITE(sidearms_c804_w)
206   AM_RANGE(0xc805, 0xc805) AM_WRITE(SMH_NOP) /* ? */
206   AM_RANGE(0xc805, 0xc805) AM_WRITENOP /* ? */
207207   AM_RANGE(0xe805, 0xe805) AM_WRITE(sidearms_star_scrollx_w)
208208   AM_RANGE(0xe806, 0xe806) AM_WRITE(sidearms_star_scrolly_w)
209209   AM_RANGE(0xc808, 0xc809) AM_WRITE(SMH_RAM) AM_BASE(&sidearms_bg_scrollx)
r4470r4471
228228static ADDRESS_MAP_START( whizz_io_map, ADDRESS_SPACE_IO, 8 )
229229   ADDRESS_MAP_GLOBAL_MASK(0xff)
230230   AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
231   AM_RANGE(0x40, 0x40) AM_WRITE(SMH_NOP)
231   AM_RANGE(0x40, 0x40) AM_WRITENOP
232232   AM_RANGE(0xc0, 0xc0) AM_READ(soundlatch_r)
233233ADDRESS_MAP_END
234234
src/mame/drivers/taito_x.c
r4470r4471
414414static ADDRESS_MAP_START( superman_readmem, ADDRESS_SPACE_PROGRAM, 16 )
415415   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
416416   AM_RANGE(0x500000, 0x500007) AM_READ(superman_dsw_input_r)
417   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)
418   AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r)
417   AM_RANGE(0x800000, 0x800001) AM_READNOP
418   AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff)
419419   AM_RANGE(0x900000, 0x9007ff) AM_READ(cchip1_ram_r)
420420   AM_RANGE(0x900802, 0x900803) AM_READ(cchip1_ctrl_r)
421421   AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM)
r4470r4471
426426
427427static ADDRESS_MAP_START( superman_writemem, ADDRESS_SPACE_PROGRAM, 16 )
428428   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
429   AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP)   /* written each frame at $3a9c, mostly 0x10 */
430   AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP)   /* written each frame at $3aa2, mostly 0x10 */
431   AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)   /* written each frame at $3ab0, mostly 0x10 */
432   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w)
433   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w)
429   AM_RANGE(0x300000, 0x300001) AM_WRITENOP   /* written each frame at $3a9c, mostly 0x10 */
430   AM_RANGE(0x400000, 0x400001) AM_WRITENOP   /* written each frame at $3aa2, mostly 0x10 */
431   AM_RANGE(0x600000, 0x600001) AM_WRITENOP   /* written each frame at $3ab0, mostly 0x10 */
432   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff)
433   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff)
434434   AM_RANGE(0x900000, 0x9007ff) AM_WRITE(cchip1_ram_w)
435435   AM_RANGE(0x900802, 0x900803) AM_WRITE(cchip1_ctrl_w)
436436   AM_RANGE(0x900c00, 0x900c01) AM_WRITE(cchip1_bank_w)
r4470r4471
443443static ADDRESS_MAP_START( daisenpu_readmem, ADDRESS_SPACE_PROGRAM, 16 )
444444   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
445445   AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r)
446   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)
447   AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r)
446   AM_RANGE(0x800000, 0x800001) AM_READNOP
447   AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff)
448448   AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r)
449449   AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM)
450450   AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM)   /* video attribute ram */
r4470r4471
454454
455455static ADDRESS_MAP_START( daisenpu_writemem, ADDRESS_SPACE_PROGRAM, 16 )
456456   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
457//  AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP)    /* written each frame at $2ac, values change */
458//  AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)    /* written each frame at $2a2, values change */
459   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w)
460   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w)
457//  AM_RANGE(0x400000, 0x400001) AM_WRITENOP    /* written each frame at $2ac, values change */
458//  AM_RANGE(0x600000, 0x600001) AM_WRITENOP    /* written each frame at $2a2, values change */
459   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff)
460   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff)
461461   AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w)
462462   AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
463463   AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16   )   // Sprites Y
r4470r4471
468468static ADDRESS_MAP_START( gigandes_readmem, ADDRESS_SPACE_PROGRAM, 16 )
469469   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
470470   AM_RANGE(0x500000, 0x500007) AM_READ(superman_dsw_input_r)
471   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)
472   AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r)
471   AM_RANGE(0x800000, 0x800001) AM_READNOP
472   AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff)
473473   AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r)
474474   AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM)
475475   AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM)   /* video attribute ram */
r4470r4471
479479
480480static ADDRESS_MAP_START( gigandes_writemem, ADDRESS_SPACE_PROGRAM, 16 )
481481   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
482   AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP)   /* 0x1 written each frame at $d42, watchdog? */
483   AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)   /* 0x1 written each frame at $d3c, watchdog? */
484   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w)
485   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w)
482   AM_RANGE(0x400000, 0x400001) AM_WRITENOP   /* 0x1 written each frame at $d42, watchdog? */
483   AM_RANGE(0x600000, 0x600001) AM_WRITENOP   /* 0x1 written each frame at $d3c, watchdog? */
484   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff)
485   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff)
486486   AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w)
487487   AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
488488   AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16   )   // Sprites Y
r4470r4471
493493static ADDRESS_MAP_START( ballbros_readmem, ADDRESS_SPACE_PROGRAM, 16 )
494494   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
495495   AM_RANGE(0x500000, 0x50000f) AM_READ(superman_dsw_input_r)
496   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)
497   AM_RANGE(0x800002, 0x800003) AM_READ(taitosound_comm16_lsb_r)
496   AM_RANGE(0x800000, 0x800001) AM_READNOP
497   AM_RANGE(0x800002, 0x800003) AM_READ8(taitosound_comm_r, 0x00ff)
498498   AM_RANGE(0x900000, 0x90000f) AM_READ(daisenpu_input_r)
499499   AM_RANGE(0xb00000, 0xb00fff) AM_READ(SMH_RAM)
500500   AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM)   /* video attribute ram */
r4470r4471
504504
505505static ADDRESS_MAP_START( ballbros_writemem, ADDRESS_SPACE_PROGRAM, 16 )
506506   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
507   AM_RANGE(0x400000, 0x400001) AM_WRITE(SMH_NOP)   /* 0x1 written each frame at $c56, watchdog? */
508   AM_RANGE(0x600000, 0x600001) AM_WRITE(SMH_NOP)   /* 0x1 written each frame at $c4e, watchdog? */
509   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_lsb_w)
510   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_lsb_w)
507   AM_RANGE(0x400000, 0x400001) AM_WRITENOP   /* 0x1 written each frame at $c56, watchdog? */
508   AM_RANGE(0x600000, 0x600001) AM_WRITENOP   /* 0x1 written each frame at $c4e, watchdog? */
509   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0x00ff)
510   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0x00ff)
511511   AM_RANGE(0x900000, 0x90000f) AM_WRITE(daisenpu_input_w)
512512   AM_RANGE(0xb00000, 0xb00fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
513513   AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16   )   // Sprites Y
r4470r4471
523523   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2)
524524   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
525525   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
526   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
526   AM_RANGE(0xe200, 0xe200) AM_READNOP
527527   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
528   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
528   AM_RANGE(0xea00, 0xea00) AM_READNOP
529529ADDRESS_MAP_END
530530
531531static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
534534   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
535535   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
536536   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
537   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
538   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
539   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
537   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
538   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
539   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
540540   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* bankswitch ? */
541541ADDRESS_MAP_END
542542
r4470r4471
545545   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2)
546546   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
547547   AM_RANGE(0xe000, 0xe001) AM_DEVREAD("ym", ym2151_r)
548   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
548   AM_RANGE(0xe200, 0xe200) AM_READNOP
549549   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
550   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
550   AM_RANGE(0xea00, 0xea00) AM_READNOP
551551ADDRESS_MAP_END
552552
553553static ADDRESS_MAP_START( daisenpu_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
556556   AM_RANGE(0xe000, 0xe001) AM_DEVWRITE("ym", ym2151_w)
557557   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
558558   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
559   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
560   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
561   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)
559   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
560   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
561   AM_RANGE(0xf000, 0xf000) AM_WRITENOP
562562   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
563563ADDRESS_MAP_END
564564
r4470r4471
567567   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2)
568568   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
569569   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
570   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
571   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
570   AM_RANGE(0xe200, 0xe200) AM_READNOP
571   AM_RANGE(0xe200, 0xe200) AM_READNOP
572572   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
573   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
573   AM_RANGE(0xea00, 0xea00) AM_READNOP
574574ADDRESS_MAP_END
575575
576576static ADDRESS_MAP_START( ballbros_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
579579   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
580580   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
581581   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
582   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
583   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
584   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
582   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
583   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
584   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
585585   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* bankswitch ? */
586586ADDRESS_MAP_END
587587
src/mame/drivers/jack.c
r4470r4471
190190static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
191191   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
192192   AM_RANGE(0x4000, 0x43ff) AM_WRITE(SMH_RAM)
193   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_NOP)  /* R/C filter ??? */
193   AM_RANGE(0x6000, 0x6fff) AM_WRITENOP  /* R/C filter ??? */
194194ADDRESS_MAP_END
195195
196196static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/tumblep.c
r4470r4471
117117   AM_RANGE(0x120000, 0x123fff) AM_RAM
118118   AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
119119   AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
120   AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
120   AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
121121   AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
122122   AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
123123   AM_RANGE(0x320000, 0x320fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
src/mame/drivers/dogfgt.c
r4470r4471
337337
338338
339339
340GAME( 1984, dogfgt,  0,      dogfgt, dogfgt, 0, ROT0, "Technos", "Acrobatic Dog-Fight", 0 )
341GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, 0, ROT0, "Technos", "Dog-Fight (Japan)", 0 )
340GAME( 1984, dogfgt,  0,      dogfgt, dogfgt, 0, ROT0, "Technos Japan", "Acrobatic Dog-Fight", 0 )
341GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, 0, ROT0, "Technos Japan", "Dog-Fight (Japan)", 0 )
src/mame/drivers/dietgo.c
r4470r4471
3434/* Physical memory map (21 bits) */
3535static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
3636   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
37   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
37   AM_RANGE(0x100000, 0x100001) AM_READNOP
3838   AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
3939   AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r)
40   AM_RANGE(0x130000, 0x130001) AM_READ(SMH_NOP) /* This board only has 1 oki chip */
40   AM_RANGE(0x130000, 0x130001) AM_READNOP /* This board only has 1 oki chip */
4141   AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
4242   AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8)
4343ADDRESS_MAP_END
4444
4545static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
4646   AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
47   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP) /* YM2203 - this board doesn't have one */
47   AM_RANGE(0x100000, 0x100001) AM_WRITENOP /* YM2203 - this board doesn't have one */
4848   AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
4949   AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w)
50   AM_RANGE(0x130000, 0x130001) AM_WRITE(SMH_NOP)
50   AM_RANGE(0x130000, 0x130001) AM_WRITENOP
5151   AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8)
5252   AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w)
5353   AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
src/mame/drivers/taitosj.c
r4470r4471
229229   AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
230230   AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/  /* Bio Attack sometimes resets after you die */
231231   AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w)
232   AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE(SMH_NOP)
232   AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
233233   AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode)
234234   AM_RANGE(0xd700, 0xdfff) AM_NOP
235235   AM_RANGE(0xe000, 0xffff) AM_ROM
r4470r4471
269269   AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
270270   AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITE(SMH_RAM) /*watchdog_reset_w*/  /* Bio Attack sometimes resets after you die */
271271   AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE(taitosj_bankswitch_w)
272   AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITE(SMH_NOP)
272   AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
273273   AM_RANGE(0xd600, 0xd600) AM_MIRROR(0x00ff) AM_WRITE(SMH_RAM) AM_BASE(&taitosj_video_mode)
274274   AM_RANGE(0xd700, 0xdfff) AM_NOP
275275   AM_RANGE(0xe000, 0xffff) AM_ROM
src/mame/drivers/vigilant.c
r4470r4471
110110   AM_RANGE(0x03, 0x03) AM_READ_PORT("IN1")
111111   AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2") AM_WRITE(vigilant_bank_select_w)
112112   AM_RANGE(0x06, 0x06) AM_WRITE(m72_sound_command_byte_w)
113//  AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP) /* ?? */
113//  AM_RANGE(0x07, 0x07) AM_WRITENOP /* ?? */
114114ADDRESS_MAP_END
115115
116116static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/kingobox.c
r4470r4471
100100    AM_RANGE(0xe800, 0xefff) AM_WRITE(video_shared_w) /* shared with video cpu */
101101    AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) /* ???? */
102102    AM_RANGE(0xf800, 0xf800) AM_WRITE(kingofb_f800_w)   /* NMI enable, palette bank */
103    AM_RANGE(0xf801, 0xf801) AM_WRITE(SMH_NOP) /* ???? */
103    AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* ???? */
104104    AM_RANGE(0xf802, 0xf802) AM_WRITE(SMH_RAM) AM_BASE(&kingofb_scroll_y)
105105    AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w)
106106    AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w)
r4470r4471
149149ADDRESS_MAP_END
150150
151151static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
152    AM_RANGE(0x8000, 0x8000) AM_WRITE(SMH_NOP) /* ??? */
152    AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* ??? */
153153    AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
154154    AM_RANGE(0xc000, 0xc3ff) AM_WRITE(SMH_RAM) /* work ram */
155155ADDRESS_MAP_END
src/mame/drivers/galivan.c
r4470r4471
136136   AM_RANGE(0x41, 0x42) AM_WRITE(galivan_scrollx_w)
137137   AM_RANGE(0x43, 0x44) AM_WRITE(galivan_scrolly_w)
138138   AM_RANGE(0x45, 0x45) AM_WRITE(galivan_sound_command_w)
139/*  AM_RANGE(0x46, 0x46) AM_WRITE(SMH_NOP) */
140/*  AM_RANGE(0x47, 0x47) AM_WRITE(SMH_NOP) */
139/*  AM_RANGE(0x46, 0x46) AM_WRITENOP */
140/*  AM_RANGE(0x47, 0x47) AM_WRITENOP */
141141   AM_RANGE(0xc0, 0xc0) AM_READ(IO_port_c0_r) /* dangar needs to return 0x58 */
142142ADDRESS_MAP_END
143143
r4470r4471
149149   AM_RANGE(0x83, 0x83) AM_READ_PORT("SERVICE")
150150   AM_RANGE(0x84, 0x84) AM_READ_PORT("DSW1")
151151   AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE(galivan_sound_command_w)
152//  AM_RANGE(0x86, 0x86) AM_WRITE(SMH_NOP)         // ??
153//  AM_RANGE(0x87, 0x87) AM_WRITE(SMH_NOP)         // ??
152//  AM_RANGE(0x86, 0x86) AM_WRITENOP         // ??
153//  AM_RANGE(0x87, 0x87) AM_WRITENOP         // ??
154154ADDRESS_MAP_END
155155
156156static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
168168   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym", ym3526_w)
169169   AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_w)
170170   AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac2", dac_w)
171/*  AM_RANGE(0x04, 0x04) AM_READ(SMH_NOP)    value read and *discarded*    */
171/*  AM_RANGE(0x04, 0x04) AM_READNOP    value read and *discarded*    */
172172   AM_RANGE(0x06, 0x06) AM_READ(galivan_sound_command_r)
173173ADDRESS_MAP_END
174174
src/mame/drivers/nbmj8991.c
r4470r4471
335335   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
336336   AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w)
337337   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
338//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
338//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
339339   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
340340ADDRESS_MAP_END
341341
r4470r4471
359359   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_sndrombank1_w)
360360   AM_RANGE(0xc0, 0xc0) AM_WRITE(nb1413m3_nmi_clock_w)
361361   AM_RANGE(0xd0, 0xd0) AM_DEVWRITE("dac", DAC_WRITE)
362//  AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP)
362//  AM_RANGE(0xe0, 0xe0) AM_WRITENOP
363363   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
364364ADDRESS_MAP_END
365365
r4470r4471
379379   AM_RANGE(0x00, 0x7f) AM_WRITE(nbmj8991_blitter_w)
380380   AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
381381   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
382//  AM_RANGE(0xb0, 0xb0) AM_WRITE(SMH_NOP)
383//  AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP)
382//  AM_RANGE(0xb0, 0xb0) AM_WRITENOP
383//  AM_RANGE(0xd0, 0xd0) AM_WRITENOP
384384   AM_RANGE(0xf0, 0xf0) AM_WRITE(nb1413m3_outcoin_w)
385385ADDRESS_MAP_END
386386
r4470r4471
391391   AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
392392   AM_RANGE(0xa0, 0xa0) AM_WRITE(nb1413m3_inputportsel_w)
393393   AM_RANGE(0xb0, 0xb0) AM_WRITE(nb1413m3_vcrctrl_w)
394//  AM_RANGE(0xd0, 0xd0) AM_WRITE(SMH_NOP)
395//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
394//  AM_RANGE(0xd0, 0xd0) AM_WRITENOP
395//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
396396ADDRESS_MAP_END
397397
398398
r4470r4471
419419   AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac1", DAC_WRITE)
420420   AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac2", DAC_WRITE)
421421   AM_RANGE(0x04, 0x04) AM_WRITE(nbmj8991_soundbank_w)
422   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)
422   AM_RANGE(0x06, 0x06) AM_WRITENOP
423423   AM_RANGE(0x80, 0x81) AM_DEVWRITE("fm", ym3812_w)
424424ADDRESS_MAP_END
425425
src/mame/drivers/blockout.c
r4470r4471
5454   AM_RANGE(0x100006, 0x100007) AM_READ_PORT("DSW1")
5555   AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW2")
5656   AM_RANGE(0x100014, 0x100015) AM_WRITE(blockout_sound_command_w)
57   AM_RANGE(0x100016, 0x100017) AM_WRITE(SMH_NOP)   /* don't know, maybe reset sound CPU */
57   AM_RANGE(0x100016, 0x100017) AM_WRITENOP   /* don't know, maybe reset sound CPU */
5858   AM_RANGE(0x180000, 0x1bffff) AM_RAM_WRITE(blockout_videoram_w) AM_BASE(&blockout_videoram)
5959   AM_RANGE(0x1d4000, 0x1dffff) AM_RAM   /* work RAM */
6060   AM_RANGE(0x1f4000, 0x1fffff) AM_RAM   /* work RAM */
r4470r4471
357357ROM_END
358358
359359
360GAME( 1989, blockout, 0,        blockout, blockout, 0, ROT0, "Technos + California Dreams", "Block Out (set 1)", 0 )
361GAME( 1989, blckout2, blockout, blockout, blockout, 0, ROT0, "Technos + California Dreams", "Block Out (set 2)", 0 )
362GAME( 1989, blckoutj, blockout, blockout, blckoutj, 0, ROT0, "Technos + California Dreams", "Block Out (Japan)", 0 )
360GAME( 1989, blockout, 0,        blockout, blockout, 0, ROT0, "Technos Japan + California Dreams", "Block Out (set 1)", 0 )
361GAME( 1989, blckout2, blockout, blockout, blockout, 0, ROT0, "Technos Japan + California Dreams", "Block Out (set 2)", 0 )
362GAME( 1989, blckoutj, blockout, blockout, blckoutj, 0, ROT0, "Technos Japan + California Dreams", "Block Out (Japan)", 0 )
363363GAME( 1991, agress,   0,        blockout, agress,   0, ROT0, "Palco", "Agress", 0 )
364364GAME( 2003, agressb,  agress,   blockout, agress,   0, ROT0, "Palco", "Agress (English bootleg)", 0 )
src/mame/drivers/tsamurai.c
r4470r4471
130130}
131131
132132
133static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
134   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
135   AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM)
133static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
134   AM_RANGE(0x0000, 0xbfff) AM_ROM
135   AM_RANGE(0xc000, 0xcfff) AM_RAM
136136
137137   /* protection? - there are writes as well...*/
138138   AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_r)
r4470r4471
140140   AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r)
141141   AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r)
142142
143   AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM)
144   AM_RANGE(0xe400, 0xe7ff) AM_READ(SMH_RAM)
145   AM_RANGE(0xe800, 0xefff) AM_READ(SMH_RAM)
146   AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM)
143   AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
144   AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram)
145   AM_RANGE(0xe440, 0xe7ff) AM_RAM
146   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram)
147   AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(&spriteram)
147148
148   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
149   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
150   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
151   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
152   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
153ADDRESS_MAP_END
154
155static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
156   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
157   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
158
159   AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
160   AM_RANGE(0xe400, 0xe43f) AM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram)
161   AM_RANGE(0xe440, 0xe7ff) AM_WRITE(SMH_RAM)
162   AM_RANGE(0xe800, 0xefff) AM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram)
163   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
164
165   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP)
149   AM_RANGE(0xf400, 0xf400) AM_WRITENOP
166150   AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command1_w)
167151   AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w)
168152
169   AM_RANGE(0xf801, 0xf801) AM_WRITE(tsamurai_bgcolor_w)
170   AM_RANGE(0xf802, 0xf802) AM_WRITE(tsamurai_scrolly_w)
153   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
154   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(tsamurai_bgcolor_w)
155   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(tsamurai_scrolly_w)
171156   AM_RANGE(0xf803, 0xf803) AM_WRITE(tsamurai_scrollx_w)
157   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
158   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
172159
173160   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w)
174161   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w)
r4470r4471
176163   AM_RANGE(0xfc03, 0xfc04) AM_WRITE(tsamurai_coin_counter_w)
177164ADDRESS_MAP_END
178165
179static ADDRESS_MAP_START( readmem_m660, ADDRESS_SPACE_PROGRAM, 8 )
180   AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
181   AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM)
166static ADDRESS_MAP_START( m660_map, ADDRESS_SPACE_PROGRAM, 8 )
167   AM_RANGE(0x0000, 0xbfff) AM_ROM
168   AM_RANGE(0xc000, 0xcfff) AM_RAM
182169
183170   /* protection? - there are writes as well...*/
184171   AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_m660_r)
r4470r4471
186173   AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r)
187174   AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r)
188175
189   AM_RANGE(0xe000, 0xe3ff) AM_READ(SMH_RAM)
190   AM_RANGE(0xe400, 0xe7ff) AM_READ(SMH_RAM)
191   AM_RANGE(0xe800, 0xefff) AM_READ(SMH_RAM)
192   AM_RANGE(0xf000, 0xf3ff) AM_READ(SMH_RAM)
176   AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
177   AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram)
178   AM_RANGE(0xe440, 0xe7ff) AM_RAM
179   AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram)
180   AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(&spriteram)
193181
194   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
195   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
196   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
197   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
198   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
199ADDRESS_MAP_END
200
201static ADDRESS_MAP_START( writemem_m660, ADDRESS_SPACE_PROGRAM, 8 )
202   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
203   AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
204
205   AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
206   AM_RANGE(0xe400, 0xe43f) AM_WRITE(tsamurai_fg_colorram_w) AM_BASE(&colorram)
207   AM_RANGE(0xe440, 0xe7ff) AM_WRITE(SMH_RAM)
208   AM_RANGE(0xe800, 0xefff) AM_WRITE(tsamurai_bg_videoram_w) AM_BASE(&tsamurai_videoram)
209   AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
210
211   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_NOP)/* This is always written with F401, F402 & F403 data */
182   AM_RANGE(0xf400, 0xf400) AM_WRITENOP/* This is always written with F401, F402 & F403 data */
212183   AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command3_w)
213184   AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w)
214185   AM_RANGE(0xf403, 0xf403) AM_WRITE(sound_command1_w)
215186
216
217   AM_RANGE(0xf801, 0xf801) AM_WRITE(tsamurai_bgcolor_w)
218   AM_RANGE(0xf802, 0xf802) AM_WRITE(tsamurai_scrolly_w)
187   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
188   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE(tsamurai_bgcolor_w)
189   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE(tsamurai_scrolly_w)
219190   AM_RANGE(0xf803, 0xf803) AM_WRITE(tsamurai_scrollx_w)
191   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
192   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
220193
221194   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w)
222195   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w)
r4470r4471
232205
233206static ADDRESS_MAP_START( z80_m660_io_map, ADDRESS_SPACE_IO, 8 )
234207   ADDRESS_MAP_GLOBAL_MASK(0xff)
235   AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)      /* ? */
236   AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP)      /* Written continuously. Increments with level. */
237   AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP)      /* Always follows above with 0x01 data */
208   AM_RANGE(0x00, 0x00) AM_WRITENOP      /* ? */
209   AM_RANGE(0x01, 0x01) AM_WRITENOP      /* Written continuously. Increments with level. */
210   AM_RANGE(0x02, 0x02) AM_WRITENOP      /* Always follows above with 0x01 data */
238211ADDRESS_MAP_END
239212
240213static ADDRESS_MAP_START( vsgongf_audio_io_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
256229}
257230
258231/*******************************************************************************/
259static ADDRESS_MAP_START( readmem_sound1, ADDRESS_SPACE_PROGRAM, 8 )
260   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
232static ADDRESS_MAP_START( sound1_map, ADDRESS_SPACE_PROGRAM, 8 )
233   AM_RANGE(0x0000, 0x3fff) AM_ROM
261234   AM_RANGE(0x6000, 0x6000) AM_READ(sound_command1_r)
262   AM_RANGE(0x7f00, 0x7fff) AM_READ(SMH_RAM)
263ADDRESS_MAP_END
264
265static ADDRESS_MAP_START( writemem_sound1, ADDRESS_SPACE_PROGRAM, 8 )
266   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
267   AM_RANGE(0x6001, 0x6001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */
235   AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
268236   AM_RANGE(0x6002, 0x6002) AM_DEVWRITE("dac1", dac_w)
269   AM_RANGE(0x7f00, 0x7fff) AM_WRITE(SMH_RAM)
237   AM_RANGE(0x7f00, 0x7fff) AM_RAM
270238ADDRESS_MAP_END
271239
272240/*******************************************************************************/
273241
274static ADDRESS_MAP_START( readmem_sound2, ADDRESS_SPACE_PROGRAM, 8 )
275   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
242static ADDRESS_MAP_START( sound2_map, ADDRESS_SPACE_PROGRAM, 8 )
243   AM_RANGE(0x0000, 0x3fff) AM_ROM
276244   AM_RANGE(0x6000, 0x6000) AM_READ(sound_command2_r)
277   AM_RANGE(0x7f00, 0x7fff) AM_READ(SMH_RAM)
278ADDRESS_MAP_END
279
280static ADDRESS_MAP_START( writemem_sound2, ADDRESS_SPACE_PROGRAM, 8 )
281   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
282   AM_RANGE(0x6001, 0x6001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */
245   AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
283246   AM_RANGE(0x6002, 0x6002) AM_DEVWRITE("dac2", dac_w)
284   AM_RANGE(0x7f00, 0x7fff) AM_WRITE(SMH_RAM)
247   AM_RANGE(0x7f00, 0x7fff) AM_RAM
285248ADDRESS_MAP_END
286249
287250/*******************************************************************************/
288251
289static ADDRESS_MAP_START( readmem_sound1_m660, ADDRESS_SPACE_PROGRAM, 8 )
290   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
252static ADDRESS_MAP_START( sound1_m660_map, ADDRESS_SPACE_PROGRAM, 8 )
253   AM_RANGE(0x0000, 0x3fff) AM_ROM
291254   AM_RANGE(0xc000, 0xc000) AM_READ(sound_command1_r)
292   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
293ADDRESS_MAP_END
294
295static ADDRESS_MAP_START( writemem_sound1_m660, ADDRESS_SPACE_PROGRAM, 8 )
296   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
297   AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */
255   AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
298256   AM_RANGE(0xc002, 0xc002) AM_DEVWRITE("dac1", dac_w)
299   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
257   AM_RANGE(0x8000, 0x87ff) AM_RAM
300258ADDRESS_MAP_END
301259
302260/*******************************************************************************/
303261
304static ADDRESS_MAP_START( readmem_sound2_m660, ADDRESS_SPACE_PROGRAM, 8 )
305   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
262static ADDRESS_MAP_START( sound2_m660_map, ADDRESS_SPACE_PROGRAM, 8 )
263   AM_RANGE(0x0000, 0x3fff) AM_ROM
306264   AM_RANGE(0xc000, 0xc000) AM_READ(sound_command2_r)
307   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
308ADDRESS_MAP_END
309
310static ADDRESS_MAP_START( writemem_sound2_m660, ADDRESS_SPACE_PROGRAM, 8 )
311   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
312   AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */
265   AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
313266   AM_RANGE(0xc002, 0xc002) AM_DEVWRITE("dac2", dac_w)
314   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
267   AM_RANGE(0x8000, 0x87ff) AM_RAM
315268ADDRESS_MAP_END
316269
317270/*******************************************************************************/
318271
272static ADDRESS_MAP_START( sound3_m660_map, ADDRESS_SPACE_PROGRAM, 8 )
273   AM_RANGE(0x0000, 0x3fff) AM_ROM
274   AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r)
275   AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
276   AM_RANGE(0x8000, 0x87ff) AM_RAM
277   AM_RANGE(0xfffc, 0xffff) AM_RAM   /* CPU writes here - music data */
278ADDRESS_MAP_END
279
319280static ADDRESS_MAP_START( sound3_m660_io_map, ADDRESS_SPACE_IO, 8 )
320281   ADDRESS_MAP_GLOBAL_MASK(0xff)
321282   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay", ay8910_address_data_w)
322283ADDRESS_MAP_END
323284
324static ADDRESS_MAP_START( readmem_sound3_m660, ADDRESS_SPACE_PROGRAM, 8 )
325   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
326   AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r)
327   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
328   AM_RANGE(0xfffc, 0xffff) AM_READ(SMH_RAM)   /* CPU reads here - music data */
329ADDRESS_MAP_END
330
331static ADDRESS_MAP_START( writemem_sound3_m660, ADDRESS_SPACE_PROGRAM, 8 )
332   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
333   AM_RANGE(0xc001, 0xc001) AM_WRITE(SMH_NOP) /* ? - probably clear IRQ */
334   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
335   AM_RANGE(0xfffc, 0xffff) AM_WRITE(SMH_RAM)   /* CPU writes here - music data */
336ADDRESS_MAP_END
337
338285/*******************************************************************************/
339286
340287static int vsgongf_sound_nmi_enabled;
r4470r4471
373320   cpu_set_input_line(space->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE );
374321}
375322
376static ADDRESS_MAP_START( readmem_vsgongf, ADDRESS_SPACE_PROGRAM, 8 )
377   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
323static ADDRESS_MAP_START( vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 )
324   AM_RANGE(0x0000, 0x7fff) AM_ROM
378325   AM_RANGE(0xa003, 0xa003) AM_READ(SMH_RAM)
379326   AM_RANGE(0xa006, 0xa006) AM_READ(vsgongf_a006_r) /* protection */
380327   AM_RANGE(0xa100, 0xa100) AM_READ(vsgongf_a100_r) /* protection */
381   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) /* work ram */
382   AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM)
328   AM_RANGE(0xc000, 0xc7ff) AM_RAM                /* work ram */
329   AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
330   AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE(&spriteram)
331   AM_RANGE(0xe440, 0xe47b) AM_RAM
332   AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w)
333   AM_RANGE(0xec00, 0xec06) AM_WRITE(SMH_RAM)
334   AM_RANGE(0xf000, 0xf000) AM_WRITE(vsgongf_color_w)
335   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) /* vreg? always 0 */
383336   AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
384337   AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2")
385338   AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM")
386339   AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
387340   AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
388   AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_RAM)
341   AM_RANGE(0xf800, 0xf800) AM_WRITENOP
342   AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* vreg? always 0 */
343   AM_RANGE(0xf803, 0xf803) AM_WRITENOP /* vreg? always 0 */
344   AM_RANGE(0xfc00, 0xfc00) AM_RAM /* vreg? always 0 */
345   AM_RANGE(0xfc01, 0xfc01) AM_RAM_WRITE(nmi_enable_w)
346   AM_RANGE(0xfc02, 0xfc03) AM_RAM_WRITE(tsamurai_coin_counter_w)
347   AM_RANGE(0xfc04, 0xfc04) AM_RAM_WRITE(tsamurai_textbank1_w)
389348ADDRESS_MAP_END
390349
391static ADDRESS_MAP_START( writemem_vsgongf, ADDRESS_SPACE_PROGRAM, 8 )
392   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
393   AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) /* work ram */
394   AM_RANGE(0xe000, 0xe3ff) AM_WRITE(tsamurai_fg_videoram_w) AM_BASE(&videoram)
395   AM_RANGE(0xe400, 0xe43f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
396   AM_RANGE(0xe440, 0xe47b) AM_WRITE(SMH_RAM)
397   AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w)
398   AM_RANGE(0xec00, 0xec06) AM_WRITE(SMH_RAM)
399   AM_RANGE(0xf000, 0xf000) AM_WRITE(vsgongf_color_w)
400   AM_RANGE(0xf400, 0xf400) AM_WRITE(SMH_RAM) /* vreg? always 0 */
401   AM_RANGE(0xf800, 0xf800) AM_WRITE(SMH_RAM)
402   AM_RANGE(0xf801, 0xf801) AM_WRITE(SMH_RAM) /* vreg? always 0 */
403   AM_RANGE(0xf803, 0xf803) AM_WRITE(SMH_RAM) /* vreg? always 0 */
404   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_RAM) /* vreg? always 0 */
405   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w)
406   AM_RANGE(0xfc02, 0xfc03) AM_WRITE(tsamurai_coin_counter_w)
407   AM_RANGE(0xfc04, 0xfc04) AM_WRITE(tsamurai_textbank1_w)
408ADDRESS_MAP_END
409
410static ADDRESS_MAP_START( readmem_sound_vsgongf, ADDRESS_SPACE_PROGRAM, 8 )
411   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
412   AM_RANGE(0x6000, 0x63ff) AM_READ(SMH_RAM) /* work RAM */
413   AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
414ADDRESS_MAP_END
415
416static ADDRESS_MAP_START( writemem_sound_vsgongf, ADDRESS_SPACE_PROGRAM, 8 )
417   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
418   AM_RANGE(0x6000, 0x63ff) AM_WRITE(SMH_RAM) /* work RAM */
419   AM_RANGE(0x8000, 0x8000) AM_WRITE(vsgongf_sound_nmi_enable_w) /* NMI enable */
350static ADDRESS_MAP_START( sound_vsgongf_map, ADDRESS_SPACE_PROGRAM, 8 )
351   AM_RANGE(0x0000, 0x3fff) AM_ROM
352   AM_RANGE(0x6000, 0x63ff) AM_RAM /* work RAM */
353   AM_RANGE(0x8000, 0x8000) AM_READWRITE(soundlatch_r, vsgongf_sound_nmi_enable_w) /* NMI enable */
420354   AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("dac", dac_w)
421355ADDRESS_MAP_END
422356
r4470r4471
719653
720654   /* basic machine hardware */
721655   MDRV_CPU_ADD("maincpu", Z80, 4000000)
722   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
656   MDRV_CPU_PROGRAM_MAP(main_map,0)
723657   MDRV_CPU_IO_MAP(z80_io_map,0)
724658   MDRV_CPU_VBLANK_INT("screen", samurai_interrupt)
725659
726660   MDRV_CPU_ADD("audiocpu", Z80, 2000000)
727   MDRV_CPU_PROGRAM_MAP(readmem_sound1,writemem_sound1)
661   MDRV_CPU_PROGRAM_MAP(sound1_map,0)
728662
729663   MDRV_CPU_ADD("audio2", Z80, 2000000)
730   MDRV_CPU_PROGRAM_MAP(readmem_sound2,writemem_sound2)
664   MDRV_CPU_PROGRAM_MAP(sound2_map,0)
731665
732666   /* video hardware */
733667   MDRV_SCREEN_ADD("screen", RASTER)
r4470r4471
762696
763697   /* basic machine hardware */
764698   MDRV_CPU_ADD("maincpu", Z80, 4000000)
765   MDRV_CPU_PROGRAM_MAP(readmem_m660,writemem_m660)
699   MDRV_CPU_PROGRAM_MAP(m660_map,0)
766700   MDRV_CPU_IO_MAP(z80_m660_io_map,0)
767701   MDRV_CPU_VBLANK_INT("screen", samurai_interrupt)
768702
769703   MDRV_CPU_ADD("audiocpu", Z80, 2000000)
770   MDRV_CPU_PROGRAM_MAP(readmem_sound1_m660,writemem_sound1_m660)
704   MDRV_CPU_PROGRAM_MAP(sound1_m660_map,0)
771705
772706   MDRV_CPU_ADD("audio2", Z80, 2000000)
773   MDRV_CPU_PROGRAM_MAP(readmem_sound2_m660,writemem_sound2_m660)
707   MDRV_CPU_PROGRAM_MAP(sound2_m660_map,0)
774708
775709   MDRV_CPU_ADD("audio3", Z80, 2000000)
776   MDRV_CPU_PROGRAM_MAP(readmem_sound3_m660,writemem_sound3_m660)
710   MDRV_CPU_PROGRAM_MAP(sound3_m660_map,0)
777711   MDRV_CPU_IO_MAP(sound3_m660_io_map,0)
778712   MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
779713
r4470r4471
810744
811745   /* basic machine hardware */
812746   MDRV_CPU_ADD("maincpu", Z80, 4000000)
813   MDRV_CPU_PROGRAM_MAP(readmem_vsgongf,writemem_vsgongf)
747   MDRV_CPU_PROGRAM_MAP(vsgongf_map,0)
814748   MDRV_CPU_VBLANK_INT("screen", samurai_interrupt)
815749
816750   MDRV_CPU_ADD("audiocpu", Z80, 4000000)
817   MDRV_CPU_PROGRAM_MAP(readmem_sound_vsgongf,writemem_sound_vsgongf)
751   MDRV_CPU_PROGRAM_MAP(sound_vsgongf_map,0)
818752   MDRV_CPU_IO_MAP(vsgongf_audio_io_map,0)
819753   MDRV_CPU_VBLANK_INT_HACK(vsgongf_sound_interrupt,3)
820754
r4470r4471
879813   ROM_LOAD( "a35-18.2m",  0x200, 0x0100, CRC(918e4732) SHA1(a38686b32d5ac0ebcba59fdba3201fe35c83d4d0) )
880814ROM_END
881815
882ROM_START( tsamura2 )
816ROM_START( tsamurai2 )
883817   ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 code  - main CPU */
884818   ROM_LOAD( "a35-01.3r",  0x0000, 0x4000, CRC(282d96ad) SHA1(c9d7a9b7acbe6431c061a9b50c05fab3ae664094) )
885819   ROM_LOAD( "a35-02.3t",  0x4000, 0x4000, CRC(e3fa0cfa) SHA1(3ed8a67789f666fe12d7597014d39deea3c12506) )
r4470r4471
12491183GAME( 1984, ringfgt,  vsgongf,  vsgongf,  vsgongf,  0, ROT90, "Taito", "Ring Fighter (set 1)", 0 )
12501184GAME( 1984, ringfgt2, vsgongf,  vsgongf,  vsgongf,  0, ROT90, "Taito", "Ring Fighter (set 2)", 0 )
12511185GAME( 1985, tsamurai, 0,        tsamurai, tsamurai, 0, ROT90, "Taito", "Samurai Nihon-ichi (set 1)", 0 )
1252GAME( 1985, tsamura2, tsamurai, tsamurai, tsamurai, 0, ROT90, "Taito", "Samurai Nihon-ichi (set 2)", 0 )
1186GAME( 1985, tsamurai2,tsamurai, tsamurai, tsamurai, 0, ROT90, "Taito", "Samurai Nihon-ichi (set 2)", 0 )
12531187GAME( 1985, ladymstr, 0,      tsamurai, tsamurai, 0, ROT90, "Taito", "Lady Master of Kungfu", 0 )
12541188GAME( 1985, nunchaku, 0,        tsamurai, nunchaku, 0, ROT90, "Taito", "Nunchackun", GAME_IMPERFECT_COLORS )
12551189GAME( 1985, yamagchi, 0,        tsamurai, yamagchi, 0, ROT90, "Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", GAME_IMPERFECT_COLORS )
r4470r4471
12581192GAME( 1986, m660j,    m660,     m660,     m660,     0, ROT90, "[Woodplace Inc.] Taito Corporation", "Mission 660 (Japan)", 0 )
12591193GAME( 1986, m660b,    m660,     m660,     m660,     0, ROT90, "bootleg", "Mission 660 (bootleg)", 0 )
12601194GAME( 1986, alphaxz,  m660,     m660,     m660,     0, ROT90, "Ed / Woodplace Inc.", "The Alphax Z (Japan)", 0 )
1261
1262
src/mame/drivers/splash.c
r4470r4471
153153static ADDRESS_MAP_START( splash_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
154154   AM_RANGE(0x0000, 0xd7ff) AM_WRITE(SMH_ROM)               /* ROM */
155155   AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w)      /* ADPCM data for the MSM5205 chip */
156//  AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP)                 /* ??? */
156//  AM_RANGE(0xe000, 0xe000) AM_WRITENOP                 /* ??? */
157157   AM_RANGE(0xf000, 0xf001) AM_DEVWRITE("ym", ym3812_w)   /* YM3812 */
158158   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM)               /* RAM */
159159ADDRESS_MAP_END
src/mame/drivers/jalmah.c
r4470r4471
33MJ-8956 HW games (c) 1989 Jaleco / NMK / UPL
44
55driver by Angelo Salese, based on early work by David Haywood
6Special thanks to Uki and Yasu for the priority system explaination.
67
7Similar to the NMK16 board but without sprites.
8Similar to the NMK16 / Jaleco Mega System 1 boards but without sprites.
89
910Notes(general):
1011-I think that the 0xf0000-0xfffff area is shared with the MCU because:
r4470r4471
1819  adding a value to these RAM areas according to what button is pressed.
1920
2021TODO:
21-Fully understand priorities,chances are that it just uses a mix between the priority
22 number,1+ prom(s) and the color number inside the video ram.Might need a test with the proper hardware;
23-In all the games there are square gaps during gameplay,caused by the imperfect priority system (see above);
22-Back layer pens looks ugly in some circumstances (i.e. suchipi when you win, mjzoomin when coined up),
23 static or controlled by something else?
24-daireika: the ranking screen on the original pcb shows some hearts instead of the "0".
25 Some investigation indicates that the game reads area "fe100" onwards for these to be filled.
26 These are likely to be provided by one of the mcu snippets...
2427-Check if urashima has a "mode 3" for the layer 0 tilemap;
25-Complete the dip-switches in the first version of this board;
28-Complete the dip-switches for all the games;
2629-There could be timing issues caused by MCU simulation at $80004;
27-Fix the sound banking in the first version of the MCU.Protection-related (should be somewhere on the work ram/shared ram)
28-Fix kakumei2 GFX3 rom region,maybe it's a bad dump (half length)?
30-Fix the sound banking, protection-related for the first version of the MCU
31 (should be somewhere on the work ram/shared ram)
2932-urashima: might use three/four layers instead of two.It can be checked when you win
3033 a match in particular circumstances because there's a write in the 94000-9bfff region;
31-kakumei: inserting two credits will give an "informaion" with A-E button choices and nothing appears
32 to work,protection?
33-Fix the sound banking in urashima/mjzoomin/daireika;
34-Massive clean-ups needed for the MCU snippet programs and the input-ports;
34-Massive clean-ups needed for the MCU snippet programs and the input-ports, also check if
35 the programs are actually into the m68k program itself (like hachamf/tdragon/ddealer);
3536
3637Notes (1st MCU ver.):
3738-$f000e is bogus,maybe the program snippets can modify this value,or the MCU itself can
r4470r4471
6263$f06c6-$f06e0: COM tiles
6364---- ---- --xx ----: Defines kind
6465---- ---- ---- xxxx: Defines number
66*
67$f0434: priority number
6568
6669============================================================================================
6770daireika 68k irq table vectors
r4470r4471
259262
260263static UINT8 sc0_prin,sc1_prin,sc2_prin,sc3_prin;
261264
262static void jalmah_priority_system(void)
265/***************************************************************************************
266The priority system is a combination between one prom and the priority number.
267The priority number is a pointer to an array of 16 bytes of the prom ( addresses bits 4-7
2680x*0-0x*f). These 16 bytes are read and added and every number is directly hooked up
269to the equivalent layer (i.e. read 0 == +1 for the layer 0, read 1 == +1 for the layer 1
270etc.)
271In the end the final results always are one bit assigned to each priority (i.e. most
272priority = 8, then 4, 2 and finally 1).
273***************************************************************************************/
274static void jalmah_priority_system(running_machine *machine)
263275{
264//  UINT8 *pri_rom = memory_region(Machine, "user1");
265   /*
266    Case by case priorities:
267    kakumei: title screen     = 0/23  (0-1 unused)
268             attract mode     = 0/0123 (?)
269             card table       = 0/013 (2 unused)
270             gameplay         = 0/0123
271    kakumei2:title screen     = 0/0123
272             attract mode     = 4/013 (2 unused) also 4/0213
273             card table       = 9/013 (2 unused)
274             character screen = 9/013 (2 unused)
275             gameplay         = 2/03  (1-2 unused) also 2/013 (2 unused)
276             continue screen  = 9/013 (2 unused)
277    suchipi: title screen     = 0/03  (1-2 unused)
278             attract mode     = 6/103 (2 unused) also 6/1023
279             card table       = 1/013 (2 unused)
280             character screen = 4/0213
281             victory screen   = 6/0123 also 6/1023
282             gameplay         = d/0123
283    mjzoomin doesn't seem to use the priority number (0/0123)
284    daireika/urashima uses priority number with the protection device
285    daireika: gameplay        = x/103 (2 unused),might be 6
286    good results:
287    0/0123
288    4/0213
289    6/1023
290    */
291   static const UINT16 pri_scheme[0x10] = { 0x0123, 0x0123, 0x0123, 0x0123, 0x0213, 0x0123, 0x1023, 0x0123,
292                                  0x0123, 0x1203, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123, 0x0123    };
293//  UINT8 prinum[0x10];
276    UINT8 *pri_rom = memory_region(machine, "user1");
277    UINT8 i;
278    UINT8 prinum[0x10];
294279
295//  for(i=0;i<0x10;i++)
296//      prinum[i] = pri_rom[i+pri*0x10];
297   sc0_prin = (pri_scheme[pri] & 0xf000) >> 12;
298   sc1_prin = (pri_scheme[pri] & 0x0f00) >> 8;
299   sc2_prin = (pri_scheme[pri] & 0x00f0) >> 4;
300   sc3_prin = (pri_scheme[pri] & 0x000f) >> 0;
280   sc0_prin = 0;
281   sc1_prin = 0;
282   sc2_prin = 0;
283   sc3_prin = 0;
301284
302//  popmessage("%04x",pri);
303   /*
304    popmessage("%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x %02x"
305    ,prinum[0x00],prinum[0x01],prinum[0x02],prinum[0x03]
306    ,prinum[0x04],prinum[0x05],prinum[0x06],prinum[0x07]
307    ,prinum[0x08],prinum[0x09],prinum[0x0a],prinum[0x0b]
308    ,prinum[0x0c],prinum[0x0d],prinum[0x0e],prinum[0x0f],pri);
309    */
285    for(i=0;i<0x10;i++)
286    {
287        prinum[i] = pri_rom[i+pri*0x10];
288
289        if(prinum[i] == 0) { sc0_prin++; }
290        if(prinum[i] == 1) { sc1_prin++; }
291        if(prinum[i] == 2) { sc2_prin++; }
292        if(prinum[i] == 3) { sc3_prin++; }
293   }
294
295   //popmessage("%02x %02x %02x %02x",sc0_prin,sc1_prin,sc2_prin,sc3_prin);
310296}
311297
312static void draw_sc0_layer(bitmap_t *bitmap, const rectangle *cliprect,int trans)
298static void draw_sc0_layer(bitmap_t *bitmap, const rectangle *cliprect)
313299{
314300   switch(jm_vregs[0] & 3)
315301   {
316      case 0: tilemap_draw(bitmap,cliprect,sc0_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
317      case 1: tilemap_draw(bitmap,cliprect,sc0_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
318      case 2: tilemap_draw(bitmap,cliprect,sc0_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
319      case 3: tilemap_draw(bitmap,cliprect,sc0_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
302      case 0: tilemap_draw(bitmap,cliprect,sc0_tilemap_0,0,0); break;
303      case 1: tilemap_draw(bitmap,cliprect,sc0_tilemap_1,0,0); break;
304      case 2: tilemap_draw(bitmap,cliprect,sc0_tilemap_2,0,0); break;
305      case 3: tilemap_draw(bitmap,cliprect,sc0_tilemap_3,0,0); break;
320306   }
321307}
322308
323static void draw_sc1_layer(bitmap_t *bitmap, const rectangle *cliprect,int trans)
309static void draw_sc1_layer(bitmap_t *bitmap, const rectangle *cliprect)
324310{
325311   switch(jm_vregs[1] & 3)
326312   {
327      case 0: tilemap_draw(bitmap,cliprect,sc1_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
328      case 1: tilemap_draw(bitmap,cliprect,sc1_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
329      case 2: tilemap_draw(bitmap,cliprect,sc1_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
330      case 3: tilemap_draw(bitmap,cliprect,sc1_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
313      case 0: tilemap_draw(bitmap,cliprect,sc1_tilemap_0,0,0); break;
314      case 1: tilemap_draw(bitmap,cliprect,sc1_tilemap_1,0,0); break;
315      case 2: tilemap_draw(bitmap,cliprect,sc1_tilemap_2,0,0); break;
316      case 3: tilemap_draw(bitmap,cliprect,sc1_tilemap_3,0,0); break;
331317   }
332318}
333319
334static void draw_sc2_layer(bitmap_t *bitmap, const rectangle *cliprect,int trans)
320static void draw_sc2_layer(bitmap_t *bitmap, const rectangle *cliprect)
335321{
336322   switch(jm_vregs[2] & 3)
337323   {
338      case 0: tilemap_draw(bitmap,cliprect,sc2_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
339      case 1: tilemap_draw(bitmap,cliprect,sc2_tilemap_1,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
340      case 2: tilemap_draw(bitmap,cliprect,sc2_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
341      case 3: tilemap_draw(bitmap,cliprect,sc2_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
324      case 0: tilemap_draw(bitmap,cliprect,sc2_tilemap_0,0,0); break;
325      case 1: tilemap_draw(bitmap,cliprect,sc2_tilemap_1,0,0); break;
326      case 2: tilemap_draw(bitmap,cliprect,sc2_tilemap_2,0,0); break;
327      case 3: tilemap_draw(bitmap,cliprect,sc2_tilemap_3,0,0); break;
342328   }
343329}
344330
345static void draw_sc3_layer(bitmap_t *bitmap, const rectangle *cliprect,int trans)
331static void draw_sc3_layer(bitmap_t *bitmap, const rectangle *cliprect)
346332{
347333   switch(jm_vregs[3] & 3)
348334   {
349335      case 0:
350      case 1: tilemap_draw(bitmap,cliprect,sc3_tilemap_0,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
351      case 2: tilemap_draw(bitmap,cliprect,sc3_tilemap_2,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
352      case 3: tilemap_draw(bitmap,cliprect,sc3_tilemap_3,(trans > 0) ? 0 : TILEMAP_DRAW_OPAQUE,0); break;
336      case 1: tilemap_draw(bitmap,cliprect,sc3_tilemap_0,0,0); break;
337      case 2: tilemap_draw(bitmap,cliprect,sc3_tilemap_2,0,0); break;
338      case 3: tilemap_draw(bitmap,cliprect,sc3_tilemap_3,0,0); break;
353339   }
354340}
355341
356342static VIDEO_UPDATE( jalmah )
357343{
358344   static UINT8 cur_prin;
359   jalmah_priority_system();
345   jalmah_priority_system(screen->machine);
360346
361347   tilemap_set_scrollx( sc0_tilemap_0, 0, jm_scrollram[0] & 0xfff);
362348   tilemap_set_scrollx( sc0_tilemap_1, 0, jm_scrollram[0] & 0x7ff);
r4470r4471
399385   tilemap_set_scrolly( sc3_tilemap_2, 0, jm_scrollram[7] & 0x1ff);
400386   tilemap_set_scrolly( sc3_tilemap_3, 0, jm_scrollram[7] & 0x3ff);
401387
402    bitmap_fill(bitmap, cliprect, screen->machine->pens[0x10f]);//selectable by a ram address?
388    bitmap_fill(bitmap, cliprect, screen->machine->pens[0xff]); //selectable by a ram address?
403389
404   for(cur_prin=0;cur_prin<4;cur_prin++)
390   for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1)
405391   {
406      if(cur_prin==sc0_prin) { draw_sc0_layer(bitmap,cliprect,sc0_prin); }
407      if(cur_prin==sc1_prin) { draw_sc1_layer(bitmap,cliprect,sc1_prin); }
408      if(cur_prin==sc2_prin) { draw_sc2_layer(bitmap,cliprect,sc2_prin); }
409      if(cur_prin==sc3_prin) { draw_sc3_layer(bitmap,cliprect,sc3_prin); }
392      if(cur_prin==sc0_prin) { draw_sc0_layer(bitmap,cliprect); }
393      if(cur_prin==sc1_prin) { draw_sc1_layer(bitmap,cliprect); }
394      if(cur_prin==sc2_prin) { draw_sc2_layer(bitmap,cliprect); }
395      if(cur_prin==sc3_prin) { draw_sc3_layer(bitmap,cliprect); }
410396   }
411397
412398   return 0;
r4470r4471
505491   {
506492      /*These 4 are just video regs,see mjzoomin test*/
507493      /*
508            ---x ---- Always on,8x8 tiles switch?
494            ---x ---- Always on with layer 3, 8x8 tiles switch?
509495            ---- --xx RANGE registers
510496        */
511497      case (0x24/2): jm_vregs[0] = data; break;
r4470r4471
905891   AM_RANGE(0x080010, 0x080011) AM_WRITE(jalmah_flip_screen_w)
906892   //       0x080012, 0x080013  MCU write related,same for each game
907893   //       0x080014, 0x080015  MCU write related,same for each game
908/**/AM_RANGE(0x080016, 0x080017) AM_READ(SMH_RAM) AM_WRITE(jalmah_tilebank_w)
894/**/AM_RANGE(0x080016, 0x080017) AM_RAM_WRITE(jalmah_tilebank_w)
909895   AM_RANGE(0x080018, 0x080019) AM_WRITE(jalmah_okibank_w)
910896   AM_RANGE(0x08001a, 0x08001b) AM_WRITE(jalmah_okirom_w)
911/**/AM_RANGE(0x080020, 0x08003f) AM_READ(SMH_RAM) AM_WRITE(jalmah_scroll_w)
897/**/AM_RANGE(0x080020, 0x08003f) AM_RAM_WRITE(jalmah_scroll_w)
912898   AM_RANGE(0x080040, 0x080041) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
913899   //       0x084000, 0x084001  ?
914900   AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) /* Palette RAM */
r4470r4471
14581444   ROM_LOAD( "mj-8956.13", 0x00000, 0x20000, CRC(afe93cf4) SHA1(1973dc5821c6df68e20f8a84b5c9ae281dd3f85f) )
14591445
14601446   ROM_REGION( 0x40000, "gfx3", 0 ) /* BG2 */
1461   ROM_LOAD( "mj-8956.12", 0x00000, 0x20000, BAD_DUMP CRC(43f7853d) SHA1(54fb523b27e79aa295900c478f09cc080fea0adf) )
1462   /*0x20000-0x40000 used,above rom is likely to be bad (half length) */
1463   ROM_COPY( "gfx3",         0x00000, 0x20000, 0x08000 )/*mj-8956.12*/
1464   ROM_COPY( "gfx3",         0x08000, 0x28000, 0x08000 )/*mj-8956.12*/
1465   ROM_COPY( "gfx3",         0x10000, 0x30000, 0x08000 )/*mj-8956.12*/
1466   ROM_COPY( "gfx3",         0x18000, 0x38000, 0x08000 )/*mj-8956.12*/
1447   ROM_LOAD( "mj-8956.12", 0x00000, 0x40000, CRC(4a088f69) SHA1(468c446d1f345dfd628cdd66ca71cf82e02abe6f) )
14671448
14681449   ROM_REGION( 0x80000, "gfx4", 0 ) /* BG3 */
14691450   ROM_LOAD( "92000-02.10", 0x00000, 0x80000, CRC(338fa9b2) SHA1(05ba4b3c44249cf92be238bf53d6345dc49b0881) )
r4470r4471
15491530   ROM_REGION( 0x220, "user1", 0 ) /* Proms */
15501531   ROM_LOAD( "mj15.bpr", 0x000, 0x100, CRC(ebac41f9) SHA1(9d1629d977849663392cbf03a3ddf76665f88608) )
15511532   ROM_LOAD( "mj16.bpr", 0x100, 0x100, CRC(8d5dc1f6) SHA1(9f723e7cd44f8c09ec30b04725644346484ec753) )
1552   ROM_LOAD( "mj17.bpr", 0x200, 0x020, CRC(a17c3e8a) SHA1(d7969fad7cec9c792c53aa457f4ad764a727e0a5) )
1533   ROM_LOAD( "pr93035.17", 0x200, 0x020, CRC(ab28ae42) SHA1(e05652c4bd5db4c7d7a1bfdeb63841e8b019f24c) )
15531534ROM_END
15541535
15551536
r4470r4471
18061787static WRITE16_HANDLER( daireika_mcu_w )
18071788{
18081789   static UINT16 i;
1790
18091791   if(ACCESSING_BITS_0_7 && data)
18101792   {
18111793      /*******************************************************
r4470r4471
18841866      jm_mcu_code[0x8806/2] = 0x323c;
18851867      jm_mcu_code[0x8808/2] = 0x1fff; //move.w #$1fff,D1
18861868      jm_mcu_code[0x880a/2] = 0x3cbc;
1887      jm_mcu_code[0x880c/2] = 0x0000; //move.w #$0000,(A6)
1869      jm_mcu_code[0x880c/2] = 0x00ff; //move.w #$0000,(A6)
18881870      jm_mcu_code[0x880e/2] = 0xdcfc;
18891871      jm_mcu_code[0x8810/2] = 0x0002; //adda.w #$0002,A6
18901872      jm_mcu_code[0x8812/2] = 0x51c9;
r4470r4471
19071889      jm_mcu_code[0x8886/2] = 0x323c;
19081890      jm_mcu_code[0x8888/2] = 0x1fff; //move.w #$1fff,D1
19091891      jm_mcu_code[0x888a/2] = 0x3cbc;
1910      jm_mcu_code[0x888c/2] = 0x0000; //move.w #$0000,(A6)
1892      jm_mcu_code[0x888c/2] = 0x00ff; //move.w #$0000,(A6)
19111893      jm_mcu_code[0x888e/2] = 0xdcfc;
19121894      jm_mcu_code[0x8890/2] = 0x0002; //adda.w #$0002,A6
19131895      jm_mcu_code[0x8892/2] = 0x51c9;
r4470r4471
22802262/*Second version of the MCU*/
22812263GAME( 1990, kakumei,  0, jalmah,   jalmah2,    kakumei,  ROT0, "Jaleco",       "Mahjong Kakumei",                  GAME_IMPERFECT_GRAPHICS )
22822264GAME( 1992, kakumei2, 0, jalmah,   jalmah2a,   kakumei2, ROT0, "Jaleco",       "Mahjong Kakumei 2 - Princess League",   GAME_IMPERFECT_GRAPHICS )
2283GAME( 1993, suchipi,  0, jalmah,   jalmah2a,   suchipi,  ROT0, "Jaleco",       "Idol Janshi Su-Chi-Pie Special",      GAME_IMPERFECT_GRAPHICS )
2265GAME( 1993, suchipi,  0, jalmah,   jalmah2a,   suchipi,  ROT0, "Jaleco",       "Idol Janshi Suchie-Pai Special",      GAME_IMPERFECT_GRAPHICS )
src/mame/drivers/namcos2.c
r4470r4471
616616   AM_RANGE(0x800000, 0x80ffff) AM_READ(namcos2_sprite_ram_r) AM_WRITE(namcos2_sprite_ram_w) AM_BASE(&namcos2_sprite_ram)
617617   AM_RANGE(0x840000, 0x840001) AM_READ(namcos2_gfx_ctrl_r) AM_WRITE(namcos2_gfx_ctrl_w)
618618   AM_RANGE(0x880000, 0x89ffff) AM_READ(namco_road16_r) AM_WRITE(namco_road16_w)
619   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE(SMH_NOP)
619   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITENOP
620620ADDRESS_MAP_END
621621
622622static ADDRESS_MAP_START( master_finallap_am, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
637637static ADDRESS_MAP_START( common_sgunner_am, ADDRESS_SPACE_PROGRAM, 16 )
638638   NAMCOS2_68K_DEFAULT_CPU_BOARD_AM
639639   AM_RANGE(0x800000, 0x8141ff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w)
640   AM_RANGE(0x818000, 0x818001) AM_WRITE(SMH_NOP)
640   AM_RANGE(0x818000, 0x818001) AM_WRITENOP
641641   AM_RANGE(0xa00000, 0xa0000f) AM_READ(namcos2_68k_key_r) AM_WRITE(namcos2_68k_key_w)
642642ADDRESS_MAP_END
643643
r4470r4471
682682static ADDRESS_MAP_START( common_luckywld_am, ADDRESS_SPACE_PROGRAM, 16 )
683683   NAMCOS2_68K_DEFAULT_CPU_BOARD_AM
684684   AM_RANGE(0x800000, 0x8141ff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w)
685   AM_RANGE(0x818000, 0x818001) AM_READ(SMH_RAM) AM_WRITE(SMH_NOP) /* enable? */
686   AM_RANGE(0x81a000, 0x81a001) AM_WRITE(SMH_NOP) /* enable? */
685   AM_RANGE(0x818000, 0x818001) AM_READ(SMH_RAM) AM_WRITENOP /* enable? */
686   AM_RANGE(0x81a000, 0x81a001) AM_WRITENOP /* enable? */
687687   AM_RANGE(0x840000, 0x840001) AM_READ(SMH_RAM)
688688   AM_RANGE(0x900000, 0x900007) AM_READ(namco_spritepos16_r) AM_WRITE(namco_spritepos16_w)
689689   AM_RANGE(0xa00000, 0xa1ffff) AM_READ(namco_road16_r) AM_WRITE(namco_road16_w)
r4470r4471
726726   AM_RANGE(0x7000, 0x77ff) AM_WRITE(namcos2_dpram_byte_w) AM_BASE(&namcos2_dpram)
727727   AM_RANGE(0x7800, 0x7fff) AM_WRITE(namcos2_dpram_byte_w)   /* mirror */
728728   AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_RAM)
729   AM_RANGE(0xa000, 0xbfff) AM_WRITE(SMH_NOP) /* Amplifier enable on 1st write */
729   AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* Amplifier enable on 1st write */
730730   AM_RANGE(0xc000, 0xc001) AM_WRITE(namcos2_sound_bankselect_w)
731   AM_RANGE(0xd001, 0xd001) AM_WRITE(SMH_NOP) /* Watchdog */
732   AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP)
731   AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* Watchdog */
732   AM_RANGE(0xe000, 0xe000) AM_WRITENOP
733733   AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_ROM)
734734ADDRESS_MAP_END
735735
r4470r4471
739739
740740static ADDRESS_MAP_START( readmem_mcu, ADDRESS_SPACE_PROGRAM, 8 )
741741   /* input ports and dips are mapped here */
742   AM_RANGE(0x0000, 0x0000) AM_READ(SMH_NOP) /* Keep logging quiet */
742   AM_RANGE(0x0000, 0x0000) AM_READNOP /* Keep logging quiet */
743743   AM_RANGE(0x0001, 0x0001) AM_READ(namcos2_input_port_0_r)
744744   AM_RANGE(0x0002, 0x0002) AM_READ_PORT("MCUC")
745745   AM_RANGE(0x0003, 0x0003) AM_READ(namcos2_mcu_port_d_r)
r4470r4471
755755   AM_RANGE(0x3002, 0x3002) AM_READ_PORT("MCUDI2")
756756   AM_RANGE(0x3003, 0x3003) AM_READ_PORT("MCUDI3")
757757   AM_RANGE(0x5000, 0x57ff) AM_READ(namcos2_dpram_byte_r)
758   AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_NOP) /* watchdog */
758   AM_RANGE(0x6000, 0x6fff) AM_READNOP /* watchdog */
759759   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
760760ADDRESS_MAP_END
761761
src/mame/drivers/tecmosys.c
r4470r4471
367367}
368368
369369
370static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
371   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
372   AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM) // work ram
373   AM_RANGE(0x210000, 0x210001) AM_READ(SMH_NOP) // single byte overflow on stack defined as 0x210000
374   AM_RANGE(0x300000, 0x3013ff) AM_READ(SMH_RAM) // bg0 ram
375   AM_RANGE(0x400000, 0x4013ff) AM_READ(SMH_RAM) // bg1 ram
376   AM_RANGE(0x500000, 0x5013ff) AM_READ(SMH_RAM) // bg2 ram
377   AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM) // fix ram   (all these names from test screen)
378   AM_RANGE(0x800000, 0x80ffff) AM_READ(SMH_RAM) // obj ram
379   AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r)
380   AM_RANGE(0x900000, 0x907fff) AM_READ(SMH_RAM) // obj pal
381   AM_RANGE(0x980000, 0x9807ff) AM_READ(SMH_RAM) // bg pal
382   AM_RANGE(0x980800, 0x980fff) AM_READ(SMH_RAM) // fix pal
383   AM_RANGE(0xb80000, 0xb80001) AM_READ(prot_status_r)
384   AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1")
385   AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2")
386   AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r)
387   AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r)
388   AM_RANGE(0xf80000, 0xf80001) AM_READ(prot_data_r)
389ADDRESS_MAP_END
390
391370static WRITE16_HANDLER( eeprom_w )
392371{
393372   if ( ACCESSING_BITS_8_15 )
r4470r4471
430409}
431410
432411
433static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
434   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
435   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) // work ram
436   AM_RANGE(0x300000, 0x300fff) AM_WRITE(bg0_tilemap_w) AM_BASE(&bg0tilemap_ram) // bg0 ram
437   AM_RANGE(0x301000, 0x3013ff) AM_WRITE(bg0_tilemap_lineram_w) AM_BASE(&bg0tilemap_lineram)// bg0 linescroll? (guess)
412static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
413   AM_RANGE(0x000000, 0x0fffff) AM_ROM
414   AM_RANGE(0x200000, 0x20ffff) AM_RAM // work ram
415   AM_RANGE(0x210000, 0x210001) AM_READNOP // single byte overflow on stack defined as 0x210000
416   AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(bg0_tilemap_w) AM_BASE(&bg0tilemap_ram) // bg0 ram
417   AM_RANGE(0x301000, 0x3013ff) AM_RAM_WRITE(bg0_tilemap_lineram_w) AM_BASE(&bg0tilemap_lineram)// bg0 linescroll? (guess)
438418
439   AM_RANGE(0x400000, 0x400fff) AM_WRITE(bg1_tilemap_w) AM_BASE(&bg1tilemap_ram) // bg1 ram
440   AM_RANGE(0x401000, 0x4013ff) AM_WRITE(bg1_tilemap_lineram_w) AM_BASE(&bg1tilemap_lineram)// bg1 linescroll? (guess)
419   AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE(bg1_tilemap_w) AM_BASE(&bg1tilemap_ram) // bg1 ram
420   AM_RANGE(0x401000, 0x4013ff) AM_RAM_WRITE(bg1_tilemap_lineram_w) AM_BASE(&bg1tilemap_lineram)// bg1 linescroll? (guess)
441421
442   AM_RANGE(0x500000, 0x500fff) AM_WRITE(bg2_tilemap_w) AM_BASE(&bg2tilemap_ram) // bg2 ram
443   AM_RANGE(0x501000, 0x5013ff) AM_WRITE(bg2_tilemap_lineram_w) AM_BASE(&bg2tilemap_lineram) // bg2 linescroll? (guess)
422   AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE(bg2_tilemap_w) AM_BASE(&bg2tilemap_ram) // bg2 ram
423   AM_RANGE(0x501000, 0x5013ff) AM_RAM_WRITE(bg2_tilemap_lineram_w) AM_BASE(&bg2tilemap_lineram) // bg2 linescroll? (guess)
444424
445   AM_RANGE(0x700000, 0x703fff) AM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram
446   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&tecmosys_spriteram) // obj ram
447   AM_RANGE(0x900000, 0x907fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // AM_WRITE(SMH_RAM) // obj pal
425   AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(fg_tilemap_w) AM_BASE(&fgtilemap_ram) // fix ram
426   AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE(&tecmosys_spriteram) // obj ram
427   AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r)
428   AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // AM_WRITE(SMH_RAM) // obj pal
448429
449430   //AM_RANGE(0x980000, 0x9807ff) AM_WRITE(SMH_RAM) // bg pal
450431   //AM_RANGE(0x980800, 0x980fff) AM_WRITE(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&paletteram16) // fix pal
451432   // the two above are as tested by the game code, I've only rolled them into one below to get colours to show right.
452   AM_RANGE(0x980000, 0x980fff) AM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16)
433   AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(&tilemap_paletteram16)
453434
454435   AM_RANGE(0x880000, 0x88002f) AM_WRITE( unk880000_w ) AM_BASE(&tecmosys_880000regs)   // 10 byte dta@88000c, 880022=watchdog?
455436   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(eeprom_w   )
456437   AM_RANGE(0xa80000, 0xa80005) AM_WRITE(SMH_RAM   ) AM_BASE(&tecmosys_a80000regs)   // a80000-3 scroll? a80004 inverted ? 3 : 0
457438   AM_RANGE(0xb00000, 0xb00005) AM_WRITE(SMH_RAM   ) AM_BASE(&tecmosys_b00000regs)   // b00000-3 scrool?, b00004 inverted ? 3 : 0
458   AM_RANGE(0xb80000, 0xb80001) AM_WRITE(prot_status_w)
439   AM_RANGE(0xb80000, 0xb80001) AM_READWRITE(prot_status_r, prot_status_w)
459440   AM_RANGE(0xc00000, 0xc00005) AM_WRITE(SMH_RAM   ) AM_BASE(&tecmosys_c00000regs)   // c00000-3 scroll? c00004 inverted ? 13 : 10
460441   AM_RANGE(0xc80000, 0xc80005) AM_WRITE(SMH_RAM   ) AM_BASE(&tecmosys_c80000regs)   // c80000-3 scrool? c80004 inverted ? 3 : 0
442   AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("P1")
443   AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("P2")
444   AM_RANGE(0xd80000, 0xd80001) AM_READ(eeprom_r)
461445   AM_RANGE(0xe00000, 0xe00001) AM_WRITE( sound_w )
462446   AM_RANGE(0xe80000, 0xe80001) AM_WRITE(prot_data_w)
447   AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r)
448   AM_RANGE(0xf80000, 0xf80001) AM_READ(prot_data_r)
463449ADDRESS_MAP_END
464450
465451
r4470r4471
553539   memcpy( region+0x20000, region+0x80000 + upperbank * 0x20000, 0x20000  );
554540}
555541
556static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
557   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
558   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1)
559   AM_RANGE(0xe000, 0xf7ff) AM_READ(SMH_RAM)
542static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
543   AM_RANGE(0x0000, 0x7fff) AM_ROM
544   AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
545   AM_RANGE(0xe000, 0xf7ff) AM_RAM
560546ADDRESS_MAP_END
561547
562static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
563   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
564   AM_RANGE(0xe000, 0xf7ff) AM_WRITE(SMH_RAM)
565ADDRESS_MAP_END
566
567548static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
568549   ADDRESS_MAP_GLOBAL_MASK(0xff)
569550   AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymf", ymf262_r, ymf262_w)
r4470r4471
899880
900881static MACHINE_DRIVER_START( deroon )
901882   MDRV_CPU_ADD("maincpu", M68000, 16000000)
902   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
883   MDRV_CPU_PROGRAM_MAP(main_map,0)
903884   MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
904885   MDRV_WATCHDOG_VBLANK_INIT(400) // guess
905886
906887   MDRV_CPU_ADD("audiocpu", Z80, 16000000/2 )   /* 8 MHz ??? */
907   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
888   MDRV_CPU_PROGRAM_MAP(sound_map,0)
908889   MDRV_CPU_IO_MAP(io_map,0)
909890
910891   MDRV_GFXDECODE(tecmosys)
src/mame/drivers/exzisus.c
r4470r4471
182182   AM_RANGE(0xc000, 0xc5ff) AM_READ(exzisus_objectram_0_r)
183183   AM_RANGE(0xc600, 0xdfff) AM_READ(exzisus_videoram_0_r)
184184   AM_RANGE(0xe000, 0xefff) AM_READ(SMH_RAM)
185   AM_RANGE(0xf000, 0xf000) AM_READ(SMH_NOP)
185   AM_RANGE(0xf000, 0xf000) AM_READNOP
186186   AM_RANGE(0xf001, 0xf001) AM_READ(taitosound_comm_r)
187187   AM_RANGE(0xf400, 0xf400) AM_READ_PORT("P1")
188188   AM_RANGE(0xf401, 0xf401) AM_READ_PORT("P2")
r4470r4471
201201   AM_RANGE(0xf001, 0xf001) AM_WRITE(taitosound_comm_w)
202202   AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpub_bankswitch_w)
203203   AM_RANGE(0xf402, 0xf402) AM_WRITE(exzisus_coincounter_w)
204   AM_RANGE(0xf404, 0xf404) AM_WRITE(SMH_NOP) // ??
204   AM_RANGE(0xf404, 0xf404) AM_WRITENOP // ??
205205   AM_RANGE(0xf800, 0xffff) AM_WRITE(exzisus_sharedram_ab_w)
206206ADDRESS_MAP_END
207207
r4470r4471
225225   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
226226   AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
227227   AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2151_r)
228   AM_RANGE(0xa000, 0xa000) AM_READ(SMH_NOP)
228   AM_RANGE(0xa000, 0xa000) AM_READNOP
229229   AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r)
230230ADDRESS_MAP_END
231231
src/mame/drivers/topshoot.c
r4470r4471
191191   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
192192INPUT_PORTS_END
193193
194static ADDRESS_MAP_START( topshoot_readmem, ADDRESS_SPACE_PROGRAM, 16 )
195   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)               /* Cartridge Program Rom */
196//  AM_RANGE(0x200000, 0x20007f) AM_READ(SMH_RAM)
197//  AM_RANGE(0x200040, 0x200041) AM_READ_PORT("IN0")        // ??
198//  AM_RANGE(0x200050, 0x200051) AM_READ_PORT("IN0")        // ??
199   AM_RANGE(0x202000, 0x2023ff) AM_READ(SMH_RAM)
194static ADDRESS_MAP_START( topshoot_map, ADDRESS_SPACE_PROGRAM, 16 )
195   AM_RANGE(0x000000, 0x0fffff) AM_ROM               /* Cartridge Program Rom */
196//  AM_RANGE(0x200000, 0x20007f) AM_RAM
197   AM_RANGE(0x200000, 0x2023ff) AM_RAM // tested
200198   AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0")      // ??
199   AM_RANGE(0xa10000, 0xa1001f) AM_WRITE(genesis_io_w) AM_BASE(&genesis_io_ram)            /* Genesis Input */
200   AM_RANGE(0xa11000, 0xa11203) AM_WRITE(genesis_ctrl_w)
201201   AM_RANGE(0xa10000, 0xa1001f) AM_READ_PORT("IN0")
202202   AM_RANGE(0xa11100, 0xa11101) AM_READ_PORT("IN0")      // ??
203
204
205   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(genesis_68k_to_z80_r)
206   AM_RANGE(0xc00000, 0xc0001f) AM_READ(genesis_vdp_r)            /* VDP Access */
207   AM_RANGE(0xe00000, 0xe1ffff) AM_READ(SMH_BANK3)
208   AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_BANK4)
209   AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)               /* Main Ram */
203   AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(genesis_68k_to_z80_r, genesis_68k_to_z80_w)
204   AM_RANGE(0xc00000, 0xc0001f) AM_READWRITE(genesis_vdp_r, genesis_vdp_w)            /* VDP Access */
205   AM_RANGE(0xe00000, 0xe1ffff) AM_ROMBANK(3)
206   AM_RANGE(0xfe0000, 0xfeffff) AM_RAMBANK(4)
207   AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_BASE(&genesis_68k_ram)/* Main Ram */
210208ADDRESS_MAP_END
211209
212
213static ADDRESS_MAP_START( topshoot_writemem, ADDRESS_SPACE_PROGRAM, 16 )
214   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)               /* Cartridge Program Rom */
215//  AM_RANGE(0x200000, 0x20007f) AM_WRITE(SMH_RAM)
216   AM_RANGE(0x200000, 0x2023ff) AM_WRITE(SMH_RAM) // tested
217   AM_RANGE(0xa10000, 0xa1001f) AM_WRITE(genesis_io_w) AM_BASE(&genesis_io_ram)            /* Genesis Input */
218   AM_RANGE(0xa11000, 0xa11203) AM_WRITE(genesis_ctrl_w)
219   AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(genesis_68k_to_z80_w)
220   AM_RANGE(0xc00000, 0xc0001f) AM_WRITE(genesis_vdp_w)            /* VDP Access */
221   AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_BANK4)
222   AM_RANGE(0xff0000, 0xffffff) AM_WRITE(SMH_RAM) AM_BASE(&genesis_68k_ram)/* Main Ram */
210static ADDRESS_MAP_START( genesis_z80_map, ADDRESS_SPACE_PROGRAM, 8 )
211   AM_RANGE(0x0000, 0x1fff) AM_RAMBANK(1) AM_BASE(&genesis_z80_ram)
212    AM_RANGE(0x2000, 0x3fff) AM_RAMBANK(2) /* mirror */
213   AM_RANGE(0x4000, 0x7fff) AM_READWRITE(genesis_z80_r, genesis_z80_w)
214   AM_RANGE(0x8000, 0xffff) AM_READ(genesis_z80_bank_r) //AM_WRITE(genesis_z80_bank_w)
223215ADDRESS_MAP_END
224216
225static ADDRESS_MAP_START( genesis_z80_readmem, ADDRESS_SPACE_PROGRAM, 8 )
226    AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_BANK1)
227    AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_BANK2) /* mirror */
228   AM_RANGE(0x4000, 0x7fff) AM_READ(genesis_z80_r)
229   AM_RANGE(0x8000, 0xffff) AM_READ(genesis_z80_bank_r)
230ADDRESS_MAP_END
231217
232static ADDRESS_MAP_START( genesis_z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
233   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_BANK1) AM_BASE(&genesis_z80_ram)
234    AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_BANK2) /* mirror */
235   AM_RANGE(0x4000, 0x7fff) AM_WRITE(genesis_z80_w)
236 // AM_RANGE(0x8000, 0xffff) AM_WRITE(genesis_z80_bank_w)
237ADDRESS_MAP_END
238
239
240218static MACHINE_DRIVER_START( genesis_base )
241219   /*basic machine hardware */
242220   MDRV_CPU_ADD("maincpu", M68000, MASTER_CLOCK / 7)
243221   MDRV_CPU_VBLANK_INT("screen", genesis_vblank_interrupt)
244222
245223   MDRV_CPU_ADD("soundcpu", Z80, MASTER_CLOCK / 15)
246   MDRV_CPU_PROGRAM_MAP(genesis_z80_readmem, genesis_z80_writemem)
224   MDRV_CPU_PROGRAM_MAP(genesis_z80_map, 0)
247225   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold) /* from vdp at scanline 0xe0 */
248226
249227   MDRV_QUANTUM_TIME(HZ(6000))
r4470r4471
278256   /* basic machine hardware */
279257   MDRV_IMPORT_FROM( genesis_base )
280258   MDRV_CPU_MODIFY("maincpu")
281   MDRV_CPU_PROGRAM_MAP(topshoot_readmem,topshoot_writemem)
259   MDRV_CPU_PROGRAM_MAP(topshoot_map,0)
282260
283261   /* video hardware */
284262   MDRV_VIDEO_START(genesis)
src/mame/drivers/dassault.c
r4470r4471
226226static ADDRESS_MAP_START( dassault_writemem, ADDRESS_SPACE_PROGRAM, 16 )
227227   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
228228   AM_RANGE(0x100000, 0x103fff) AM_WRITE(deco16_nonbuffered_palette_w) AM_BASE(&paletteram16)
229   AM_RANGE(0x140004, 0x140007) AM_WRITE(SMH_NOP) /* ? */
229   AM_RANGE(0x140004, 0x140007) AM_WRITENOP /* ? */
230230   AM_RANGE(0x180000, 0x180001) AM_WRITE(dassault_sound_w)
231231   AM_RANGE(0x1c000a, 0x1c000b) AM_WRITE(deco16_priority_w)
232232   AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(buffer_spriteram16_2_w)
r4470r4471
260260static ADDRESS_MAP_START( dassault_sub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
261261   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
262262   AM_RANGE(0x100000, 0x100001) AM_WRITE(buffer_spriteram16_w)
263   AM_RANGE(0x100002, 0x100007) AM_WRITE(SMH_NOP) /* ? */
263   AM_RANGE(0x100002, 0x100007) AM_WRITENOP /* ? */
264264   AM_RANGE(0x3f8000, 0x3fbfff) AM_WRITE(SMH_RAM) AM_BASE(&dassault_ram2)
265265   AM_RANGE(0x3fc000, 0x3fcfff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
266266   AM_RANGE(0x3feffc, 0x3fefff) AM_WRITE(dassault_irq_w)
src/mame/drivers/pingpong.c
r4470r4471
103103   AM_RANGE(0x9003, 0x9052) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
104104   AM_RANGE(0x9053, 0x97ff) AM_WRITE(SMH_RAM)
105105   AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w)   /* coin counters + irq enables */
106   AM_RANGE(0xa200, 0xa200) AM_WRITE(SMH_NOP)      /* SN76496 data latch */
106   AM_RANGE(0xa200, 0xa200) AM_WRITENOP      /* SN76496 data latch */
107107   AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("sn", sn76496_w)   /* trigger read */
108108   AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w)
109109ADDRESS_MAP_END
r4470r4471
124124   AM_RANGE(0xa080, 0xa080) AM_READ_PORT("IN1")
125125   AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN2")
126126   AM_RANGE(0xa180, 0xa180) AM_READ_PORT("IN3")
127   AM_RANGE(0xa200, 0xa200) AM_WRITE(SMH_NOP)      /* SN76496 data latch */
127   AM_RANGE(0xa200, 0xa200) AM_WRITENOP      /* SN76496 data latch */
128128   AM_RANGE(0xa400, 0xa400) AM_DEVWRITE("sn", sn76496_w)   /* trigger read */
129129   AM_RANGE(0xa600, 0xa600) AM_WRITE(watchdog_reset_w)
130130ADDRESS_MAP_END
src/mame/drivers/ssrj.c
r4470r4471
8585   AM_RANGE(0xd800, 0xdfff) AM_WRITE(ssrj_vram4_w) AM_BASE(&ssrj_vram4)
8686   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(SMH_RAM)
8787   AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&ssrj_scrollram)
88   AM_RANGE(0xf003, 0xf003) AM_WRITE(SMH_NOP) /* unknown */
88   AM_RANGE(0xf003, 0xf003) AM_WRITENOP /* unknown */
8989   AM_RANGE(0xf400, 0xf401) AM_DEVWRITE("ay", ay8910_address_data_w)
90   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(SMH_NOP) /* unknown */
91   AM_RANGE(0xf800, 0xf800) AM_WRITE(SMH_NOP) /* wheel ? */
90   AM_RANGE(0xfc00, 0xfc00) AM_WRITENOP /* unknown */
91   AM_RANGE(0xf800, 0xf800) AM_WRITENOP /* wheel ? */
9292ADDRESS_MAP_END
9393
9494static INPUT_PORTS_START( ssrj )
src/mame/drivers/tatsumi.c
r4470r4471
198198   AM_RANGE(0x04000, 0x07fff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
199199   AM_RANGE(0x08000, 0x08fff) AM_RAM_WRITE(apache3_palette_w) AM_BASE(&paletteram16)
200200   AM_RANGE(0x0c000, 0x0dfff) AM_RAM_WRITE(roundup5_text_w) AM_BASE(&videoram16)
201   AM_RANGE(0x0e800, 0x0e803) AM_WRITE(SMH_NOP) // CRT
201   AM_RANGE(0x0e800, 0x0e803) AM_WRITENOP // CRT
202202   AM_RANGE(0x0f000, 0x0f001) AM_READ_PORT("DSW")
203   AM_RANGE(0x0f000, 0x0f001) AM_WRITE(SMH_NOP) // todo
203   AM_RANGE(0x0f000, 0x0f001) AM_WRITENOP // todo
204204   AM_RANGE(0x0f800, 0x0f801) AM_READWRITE(apache3_bank_r, apache3_bank_w)
205205   AM_RANGE(0x10000, 0x1ffff) AM_READWRITE(apache3_v30_v20_r, apache3_v30_v20_w)
206206   AM_RANGE(0x20000, 0x2ffff) AM_READWRITE(tatsumi_v30_68000_r, tatsumi_v30_68000_w)
r4470r4471
272272   AM_RANGE(0xfff8, 0xfff8) AM_READ_PORT("IN0")
273273   AM_RANGE(0xfff9, 0xfff9) AM_READ_PORT("IN1")
274274   AM_RANGE(0xfffc, 0xfffc) AM_READ_PORT("STICKX")
275   AM_RANGE(0xfff9, 0xfff9) AM_WRITE(SMH_NOP) //irq ack?
276   AM_RANGE(0xfffa, 0xfffa) AM_WRITE(SMH_NOP) //irq ack?
275   AM_RANGE(0xfff9, 0xfff9) AM_WRITENOP //irq ack?
276   AM_RANGE(0xfffa, 0xfffa) AM_WRITENOP //irq ack?
277277ADDRESS_MAP_END
278278
279279/******************************************************************************/
r4470r4471
327327   AM_RANGE(0xfff0, 0xfff1) AM_DEVREADWRITE("ym", tatsumi_hack_ym2151_r, ym2151_w)
328328   AM_RANGE(0xfff4, 0xfff4) AM_DEVREADWRITE("oki", tatsumi_hack_oki_r, okim6295_w)
329329   AM_RANGE(0xfffc, 0xfffc) AM_READ(soundlatch_r)
330   AM_RANGE(0xfffe, 0xfffe) AM_WRITE(SMH_NOP)
330   AM_RANGE(0xfffe, 0xfffe) AM_WRITENOP
331331ADDRESS_MAP_END
332332
333333/******************************************************************************/
src/mame/drivers/supbtime.c
r4470r4471
7474static ADDRESS_MAP_START( supbtime_writemem, ADDRESS_SPACE_PROGRAM, 16 )
7575   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
7676   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
77   AM_RANGE(0x104000, 0x11ffff) AM_WRITE(SMH_NOP) /* Nothing there */
77   AM_RANGE(0x104000, 0x11ffff) AM_WRITENOP /* Nothing there */
7878   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
79   AM_RANGE(0x120800, 0x13ffff) AM_WRITE(SMH_NOP) /* Nothing there */
79   AM_RANGE(0x120800, 0x13ffff) AM_WRITENOP /* Nothing there */
8080   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
81   AM_RANGE(0x18000a, 0x18000d) AM_WRITE(SMH_NOP)
81   AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
8282   AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(sound_w)
8383
8484   AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
r4470r4471
105105   AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w)
106106   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
107107   AM_RANGE(0x140000, 0x1407ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
108   AM_RANGE(0x18000a, 0x18000d) AM_WRITE(SMH_NOP)
108   AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
109109   AM_RANGE(0x1a0000, 0x1a3fff) AM_WRITE(SMH_RAM)
110110
111111   AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
r4470r4471
120120/* Physical memory map (21 bits) */
121121static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
122122   AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
123   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)
123   AM_RANGE(0x100000, 0x100001) AM_READNOP
124124   AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
125125   AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r)
126   AM_RANGE(0x130000, 0x130001) AM_READ(SMH_NOP) /* This board only has 1 oki chip */
126   AM_RANGE(0x130000, 0x130001) AM_READNOP /* This board only has 1 oki chip */
127127   AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
128128   AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK8)
129129ADDRESS_MAP_END
130130
131131static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
132132   AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
133   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP) /* YM2203 - this board doesn't have one */
133   AM_RANGE(0x100000, 0x100001) AM_WRITENOP /* YM2203 - this board doesn't have one */
134134   AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
135135   AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w)
136   AM_RANGE(0x130000, 0x130001) AM_WRITE(SMH_NOP)
136   AM_RANGE(0x130000, 0x130001) AM_WRITENOP
137137   AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8)
138138   AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w)
139139   AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
src/mame/drivers/retofinv.c
r4470r4471
111111   AM_RANGE(0xb800, 0xb802) AM_WRITE(retofinv_gfx_ctrl_w)
112112   AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1")
113113   AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2")
114   AM_RANGE(0xc002, 0xc002) AM_READ(SMH_NOP)   /* bit 7 must be 0, otherwise game resets */
114   AM_RANGE(0xc002, 0xc002) AM_READNOP   /* bit 7 must be 0, otherwise game resets */
115115   AM_RANGE(0xc003, 0xc003) AM_READ(retofinv_mcu_status_r)
116116   AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM")
117117   AM_RANGE(0xc005, 0xc005) AM_READ_PORT("DSW1")
src/mame/drivers/gbusters.c
r4470r4471
1313#include "video/konamiic.h"
1414#include "sound/2151intf.h"
1515#include "sound/k007232.h"
16#include "konamipt.h"
1617
1718/* prototypes */
1819static MACHINE_RESET( gbusters );
r4470r4471
173174
174175static INPUT_PORTS_START( gbusters )
175176   PORT_START("DSW1")
176   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
177   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
178   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
179   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
180   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
181   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
182   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
183   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
184   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
185   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
186   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
187   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
188   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
189   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
190   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
191   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
192   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
193   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
194   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
195   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
196   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
197   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
198   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
199   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
200   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
201   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
202   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
203   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
204   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
205   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
206   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
207   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
208   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
209//  PORT_DIPSETTING(    0x00, "Invalid" )
177   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
178   /* "No Coin B" = coins produce sound, but no effect on coin counter */
210179
211180   PORT_START("DSW2")
212181   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
245214   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
246215
247216   PORT_START("SYSTEM")
248   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
249   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
250   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
251   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
252   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
253   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
254   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
255   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
217   KONAMI8_SYSTEM_UNK
256218
257219   PORT_START("P1")
258   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
259   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
260   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
261   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
262   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
263   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
264   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
265   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
220   KONAMI8_B12_UNK(1)
266221
267222   PORT_START("P2")
268   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
269   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
270   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
271   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
272   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
273   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
274   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
275   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
223   KONAMI8_B12_UNK(2)
276224INPUT_PORTS_END
277225
278226
src/mame/drivers/srmp2.c
r4470r4471
404404   AM_RANGE(0x0c0000, 0x0c3fff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
405405   AM_RANGE(0x140000, 0x143fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2)   /* Sprites Code + X + Attr */
406406   AM_RANGE(0x180000, 0x180609) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)   /* Sprites Y */
407   AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(SMH_NOP)               /* ??? */
407   AM_RANGE(0x1c0000, 0x1c0001) AM_WRITENOP               /* ??? */
408408   AM_RANGE(0x800000, 0x800001) AM_WRITE(srmp2_flags_w)            /* ADPCM bank, Color bank, etc. */
409   AM_RANGE(0x900000, 0x900001) AM_WRITE(SMH_NOP)               /* ??? */
409   AM_RANGE(0x900000, 0x900001) AM_WRITENOP               /* ??? */
410410   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(srmp2_input_1_w)         /* I/O ??? */
411411   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(srmp2_input_2_w)         /* I/O ??? */
412412   AM_RANGE(0xb00000, 0xb00001) AM_DEVWRITE("msm", srmp2_adpcm_code_w)         /* ADPCM number */
413   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP)               /* ??? */
414   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP)               /* ??? */
415   AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)               /* ??? */
413   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP               /* ??? */
414   AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP               /* ??? */
415   AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP               /* ??? */
416416   AM_RANGE(0xf00000, 0xf00003) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff)
417417ADDRESS_MAP_END
418418
r4470r4471
420420static ADDRESS_MAP_START( mjyuugi_readmem, ADDRESS_SPACE_PROGRAM, 16 )
421421   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
422422   AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM")         /* Coinage */
423   AM_RANGE(0x100010, 0x100011) AM_READ(SMH_NOP)            /* ??? */
424   AM_RANGE(0x200000, 0x200001) AM_READ(SMH_NOP)            /* ??? */
425   AM_RANGE(0x300000, 0x300001) AM_READ(SMH_NOP)            /* ??? */
423   AM_RANGE(0x100010, 0x100011) AM_READNOP            /* ??? */
424   AM_RANGE(0x200000, 0x200001) AM_READNOP            /* ??? */
425   AM_RANGE(0x300000, 0x300001) AM_READNOP            /* ??? */
426426   AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW3-1")         /* DSW 3-1 */
427427   AM_RANGE(0x500010, 0x500011) AM_READ_PORT("DSW3-2")         /* DSW 3-2 */
428428   AM_RANGE(0x700000, 0x7003ff) AM_READ(SMH_RAM)
429   AM_RANGE(0x800000, 0x800001) AM_READ(SMH_NOP)            /* ??? */
429   AM_RANGE(0x800000, 0x800001) AM_READNOP            /* ??? */
430430   AM_RANGE(0x900000, 0x900001) AM_READ(srmp2_input_1_r)      /* I/O port 1 */
431431   AM_RANGE(0x900002, 0x900003) AM_READ(srmp2_input_2_r)      /* I/O port 2 */
432432   AM_RANGE(0xa00000, 0xa00001) AM_READ(srmp2_cchip_status_0_r)   /* custom chip status ??? */
r4470r4471
447447   AM_RANGE(0x900002, 0x900003) AM_WRITE(srmp2_input_2_w)         /* I/O ??? */
448448   AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE("msm", srmp2_adpcm_code_w)         /* ADPCM number */
449449   AM_RANGE(0xb00000, 0xb00003) AM_DEVWRITE8("ay", ay8910_address_data_w, 0x00ff)
450   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP)               /* ??? */
450   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP               /* ??? */
451451   AM_RANGE(0xd00000, 0xd00609) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)   /* Sprites Y */
452452   AM_RANGE(0xd02000, 0xd023ff) AM_WRITE(SMH_RAM)               /* ??? only writes $00fa */
453453   AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2)   /* Sprites Code + X + Attr */
r4470r4471
575575   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
576576   AM_RANGE(0x8000, 0x9fff) AM_WRITE(SMH_ROM)                  /* rom bank */
577577   AM_RANGE(0xa000, 0xa7ff) AM_WRITE(SMH_RAM) AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size)   /* work ram */
578   AM_RANGE(0xa800, 0xa800) AM_WRITE(SMH_NOP)                  /* flag ? */
578   AM_RANGE(0xa800, 0xa800) AM_WRITENOP                  /* flag ? */
579579   AM_RANGE(0xb000, 0xb303) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)         /* Sprites Y */
580   AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP)                  /* flag ? */
580   AM_RANGE(0xb800, 0xb800) AM_WRITENOP                  /* flag ? */
581581   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)         /* Sprites Code + X + Attr */
582582   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3)
583583ADDRESS_MAP_END
584584
585585static ADDRESS_MAP_START( srmp3_io_map, ADDRESS_SPACE_IO, 8 )
586586   ADDRESS_MAP_GLOBAL_MASK(0xff)
587   AM_RANGE(0x20, 0x20) AM_WRITE(SMH_NOP)                        /* elapsed interrupt signal */
587   AM_RANGE(0x20, 0x20) AM_WRITENOP                        /* elapsed interrupt signal */
588588   AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM")   AM_WRITE(srmp3_flags_w)   /* coin, service | GFX bank, counter, lockout */
589589   AM_RANGE(0x60, 0x60) AM_WRITE(srmp3_rombank_w)                  /* ROM bank select */
590590   AM_RANGE(0xa0, 0xa0) AM_DEVWRITE("msm", srmp3_adpcm_code_w)               /* ADPCM number */
src/mame/drivers/m72.c
r4470r4471
928928   AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(m72_palette1_r, m72_palette1_w) AM_BASE(&paletteram16)
929929   AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(m72_palette2_r, m72_palette2_w) AM_BASE(&paletteram16_2)
930930   AM_RANGE(0xb0000, 0xb0001) AM_WRITE(m72_irq_line_w)
931   AM_RANGE(0xb4000, 0xb4001) AM_WRITE(SMH_NOP)   /* ??? */
931   AM_RANGE(0xb4000, 0xb4001) AM_WRITENOP   /* ??? */
932932   AM_RANGE(0xbc000, 0xbc001) AM_WRITE(m72_dmaon_w)
933933   AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
934934   AM_RANGE(0x80000, 0x83fff) AM_RAM_WRITE(m72_videoram1_w) AM_BASE(&m72_videoram1)
r4470r4471
945945   AM_RANGE(0x02, 0x03) AM_WRITE(m72_port02_w)   /* coin counters, reset sound cpu, other stuff? */
946946   AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w)
947947   AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w)
948   //AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
948   //AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
949949   AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w)
950950   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
951951   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
r4470r4471
959959   AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
960960   AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w)
961961   AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
962   AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
962   AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
963963   AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w)
964964   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
965965   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
r4470r4471
972972   AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r)
973973   AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w)
974974   AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
975   AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
975   AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
976976   AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w)
977977   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
978978   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
r4470r4471
985985   AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
986986   AM_RANGE(0x00, 0x01) AM_WRITE(m72_sound_command_w)
987987   AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
988   AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
988   AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
989989   AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w)
990990   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
991991   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
r4470r4471
10011001   AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)   /* coin counters, reset sound cpu, other stuff? */
10021002   AM_RANGE(0x04, 0x05) AM_WRITE(m72_dmaon_w)
10031003   AM_RANGE(0x06, 0x07) AM_WRITE(m72_irq_line_w)
1004   AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
1004   AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
10051005   AM_RANGE(0x80, 0x81) AM_WRITE(m72_scrolly1_w)
10061006   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
10071007   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
r4470r4471
10181018   AM_RANGE(0x82, 0x83) AM_WRITE(m72_scrollx1_w)
10191019   AM_RANGE(0x84, 0x85) AM_WRITE(m72_scrolly2_w)
10201020   AM_RANGE(0x86, 0x87) AM_WRITE(m72_scrollx2_w)
1021//AM_RANGE(0x8c, 0x8f) AM_WRITE(SMH_NOP)   /* ??? */
1021//AM_RANGE(0x8c, 0x8f) AM_WRITENOP   /* ??? */
10221022ADDRESS_MAP_END
10231023
10241024
src/mame/drivers/pokechmp.c
r4470r4471
130130   AM_RANGE(0x0800, 0x0fff) AM_WRITE(pokechmp_videoram_w) AM_BASE(&videoram)
131131   AM_RANGE(0x1000, 0x11ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
132132   AM_RANGE(0x1801, 0x1801) AM_WRITE(pokechmp_flipscreen_w)
133   AM_RANGE(0x1802, 0x181f) AM_WRITE(SMH_NOP)
133   AM_RANGE(0x1802, 0x181f) AM_WRITENOP
134134/* 1800 - 0x181f are unused BAC-06 registers, see video/dec0.c */
135135   AM_RANGE(0x1a00, 0x1a00) AM_WRITE(pokechmp_sound_w)
136136   AM_RANGE(0x1c00, 0x1c00) AM_WRITE(pokechmp_bank_w)
r4470r4471
156156   AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
157157   AM_RANGE(0x0800, 0x0801) AM_DEVWRITE("ym1", ym2203_w)
158158   AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym2", ym3812_w)
159   AM_RANGE(0x1800, 0x1800) AM_WRITE(SMH_NOP)   /* MSM5205 chip on Pocket Gal, not connected here? */
159   AM_RANGE(0x1800, 0x1800) AM_WRITENOP   /* MSM5205 chip on Pocket Gal, not connected here? */
160160//  AM_RANGE(0x2000, 0x2000) AM_WRITE(pokechmp_sound_bank_w)/ * might still be sound bank */
161161   AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("oki", okim6295_w) // extra
162162   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
src/mame/drivers/aeroboto.c
r4470r4471
8282   AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(aeroboto_videoram_w) AM_BASE(&aeroboto_videoram)      // tile RAM
8383   AM_RANGE(0x1800, 0x183f) AM_RAM AM_BASE(&aeroboto_hscroll)   // horizontal scroll regs
8484   AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(aeroboto_tilecolor_w) AM_BASE(&aeroboto_tilecolor)   // tile color RAM
85   AM_RANGE(0x1840, 0x27ff) AM_WRITE(SMH_NOP)               // cleared during custom LSI test
85   AM_RANGE(0x1840, 0x27ff) AM_WRITENOP               // cleared during custom LSI test
8686   AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)            // sprite RAM
87   AM_RANGE(0x2900, 0x2fff) AM_WRITE(SMH_NOP)               // cleared along with sprite RAM
87   AM_RANGE(0x2900, 0x2fff) AM_WRITENOP               // cleared along with sprite RAM
8888   AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r)         // protection read
8989   AM_RANGE(0x3000, 0x3000) AM_READWRITE(aeroboto_in0_r, aeroboto_3000_w)
9090   AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE(soundlatch_w)
src/mame/drivers/firetrap.c
r4470r4471
263263   AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
264264   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
265265   AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
266   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)   /* IRQ acknowledge */
266   AM_RANGE(0xf000, 0xf000) AM_WRITENOP   /* IRQ acknowledge */
267267   AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
268268   AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
269269   AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w)
r4470r4471
295295   AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
296296   AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
297297   AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
298   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)   /* IRQ acknowledge */
298   AM_RANGE(0xf000, 0xf000) AM_WRITENOP   /* IRQ acknowledge */
299299   AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
300300   AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
301301   AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w)
302302   AM_RANGE(0xf004, 0xf004) AM_WRITE(firetrap_nmi_disable_w)
303   AM_RANGE(0xf005, 0xf005) AM_WRITE(SMH_NOP)
303   AM_RANGE(0xf005, 0xf005) AM_WRITENOP
304304   AM_RANGE(0xf008, 0xf009) AM_WRITE(firetrap_bg1_scrollx_w)
305305   AM_RANGE(0xf00a, 0xf00b) AM_WRITE(firetrap_bg1_scrolly_w)
306306   AM_RANGE(0xf00c, 0xf00d) AM_WRITE(firetrap_bg2_scrollx_w)
src/mame/drivers/crgolf.c
r4470r4471
259259   AM_RANGE(0x0000, 0x7fff) AM_ROM
260260   AM_RANGE(0x8000, 0x87ff) AM_RAM
261261   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ay", ay8910_address_data_w)
262   AM_RANGE(0xc002, 0xc002) AM_WRITE(SMH_NOP)
262   AM_RANGE(0xc002, 0xc002) AM_WRITENOP
263263   AM_RANGE(0xe000, 0xe000) AM_READWRITE(switch_input_r, switch_input_select_w)
264264   AM_RANGE(0xe001, 0xe001) AM_READWRITE(analog_input_r, unknown_w)
265265   AM_RANGE(0xe003, 0xe003) AM_READWRITE(main_to_sound_r, sound_to_main_w)
src/mame/drivers/rmhaihai.c
r4470r4471
193193   AM_RANGE(0xa000, 0xa7ff) AM_WRITE(SMH_RAM)
194194   AM_RANGE(0xa800, 0xafff) AM_WRITE(rmhaihai_colorram_w) AM_BASE(&colorram)
195195   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(rmhaihai_videoram_w) AM_BASE(&videoram)
196   AM_RANGE(0xb83c, 0xb83c) AM_WRITE(SMH_NOP)   // ??
197   AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP)   // ??
196   AM_RANGE(0xb83c, 0xb83c) AM_WRITENOP   // ??
197   AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP   // ??
198198   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_ROM)
199199   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM)   /* rmhaisei only */
200200ADDRESS_MAP_END
r4470r4471
207207   AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("ay", ay8910_address_data_w)
208208   AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w)
209209   AM_RANGE(0x8060, 0x8060) AM_WRITE(ctrl_w)
210   AM_RANGE(0x8080, 0x8080) AM_WRITE(SMH_NOP)   // ??
211   AM_RANGE(0xbc04, 0xbc04) AM_WRITE(SMH_NOP)   // ??
212   AM_RANGE(0xbc0c, 0xbc0c) AM_WRITE(SMH_NOP)   // ??
210   AM_RANGE(0x8080, 0x8080) AM_WRITENOP   // ??
211   AM_RANGE(0xbc04, 0xbc04) AM_WRITENOP   // ??
212   AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP   // ??
213213ADDRESS_MAP_END
214214
215215static ADDRESS_MAP_START( themj_io_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
220220   AM_RANGE(0x8020, 0x8021) AM_DEVWRITE("ay", ay8910_address_data_w)
221221   AM_RANGE(0x8040, 0x8040) AM_DEVWRITE("msm", adpcm_w)
222222   AM_RANGE(0x8060, 0x8060) AM_WRITE(ctrl_w)
223   AM_RANGE(0x8080, 0x8080) AM_WRITE(SMH_NOP)   // ??
223   AM_RANGE(0x8080, 0x8080) AM_WRITENOP   // ??
224224   AM_RANGE(0x80a0, 0x80a0) AM_WRITE(themj_rombank_w)
225   AM_RANGE(0xbc04, 0xbc04) AM_WRITE(SMH_NOP)   // ??
226   AM_RANGE(0xbc0c, 0xbc0c) AM_WRITE(SMH_NOP)   // ??
225   AM_RANGE(0xbc04, 0xbc04) AM_WRITENOP   // ??
226   AM_RANGE(0xbc0c, 0xbc0c) AM_WRITENOP   // ??
227227ADDRESS_MAP_END
228228
229229static INPUT_PORTS_START( mjctrl )
src/mame/drivers/topspeed.c
r4470r4471
451451***********************************************************/
452452
453453
454static ADDRESS_MAP_START( topspeed_readmem, ADDRESS_SPACE_PROGRAM, 16 )
455   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
456   AM_RANGE(0x400000, 0x40ffff) AM_READ(sharedram_r)   // all shared ??
457   AM_RANGE(0x500000, 0x503fff) AM_READ(SMH_RAM)
458   AM_RANGE(0x7e0000, 0x7e0001) AM_READ(SMH_NOP)
459   AM_RANGE(0x7e0002, 0x7e0003) AM_READ(taitosound_comm16_lsb_r)
460   AM_RANGE(0x800000, 0x8003ff) AM_READ(SMH_RAM)   /* raster line color control */
461   AM_RANGE(0x800400, 0x80ffff) AM_READ(SMH_RAM)   /* unknown or unused */
462   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(PC080SN_word_0_r)   /* tilemaps */
463   AM_RANGE(0xb00000, 0xb0ffff) AM_READ(PC080SN_word_1_r)   /* tilemaps */
464   AM_RANGE(0xd00000, 0xd00fff) AM_READ(SMH_RAM)   /* sprite ram */
465   AM_RANGE(0xe00000, 0xe0ffff) AM_READ(SMH_RAM)   /* sprite map */
466ADDRESS_MAP_END
467
468static ADDRESS_MAP_START( topspeed_writemem, ADDRESS_SPACE_PROGRAM, 16 )
469   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
470   AM_RANGE(0x400000, 0x40ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size)
471   AM_RANGE(0x500000, 0x503fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
454static ADDRESS_MAP_START( topspeed_map, ADDRESS_SPACE_PROGRAM, 16 )
455   AM_RANGE(0x000000, 0x0fffff) AM_ROM
456   AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram) AM_SIZE(&sharedram_size)
457   AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
472458   AM_RANGE(0x600002, 0x600003) AM_WRITE(cpua_ctrl_w)
473   AM_RANGE(0x7e0000, 0x7e0001) AM_WRITE(taitosound_port16_lsb_w)
474   AM_RANGE(0x7e0002, 0x7e0003) AM_WRITE(taitosound_comm16_lsb_w)
475   AM_RANGE(0x800000, 0x8003ff) AM_WRITE(SMH_RAM) AM_BASE(&topspeed_raster_ctrl)
476   AM_RANGE(0x800400, 0x80ffff) AM_WRITE(SMH_RAM)
477   AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(PC080SN_word_0_w)
459   AM_RANGE(0x7e0000, 0x7e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
460   AM_RANGE(0x7e0002, 0x7e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
461   AM_RANGE(0x800000, 0x8003ff) AM_RAM AM_BASE(&topspeed_raster_ctrl)
462   AM_RANGE(0x800400, 0x80ffff) AM_RAM
463   AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(PC080SN_word_0_r, PC080SN_word_0_w)
478464   AM_RANGE(0xa20000, 0xa20003) AM_WRITE(PC080SN_yscroll_word_0_w)
479465   AM_RANGE(0xa40000, 0xa40003) AM_WRITE(PC080SN_xscroll_word_0_w)
480466   AM_RANGE(0xa50000, 0xa50003) AM_WRITE(PC080SN_ctrl_word_0_w)
481   AM_RANGE(0xb00000, 0xb0ffff) AM_WRITE(PC080SN_word_1_w)
467   AM_RANGE(0xb00000, 0xb0ffff) AM_READWRITE(PC080SN_word_1_r, PC080SN_word_1_w)
482468   AM_RANGE(0xb20000, 0xb20003) AM_WRITE(PC080SN_yscroll_word_1_w)
483469   AM_RANGE(0xb40000, 0xb40003) AM_WRITE(PC080SN_xscroll_word_1_w)
484470   AM_RANGE(0xb50000, 0xb50003) AM_WRITE(PC080SN_ctrl_word_1_w)
485   AM_RANGE(0xd00000, 0xd00fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
486
487   AM_RANGE(0xe00000, 0xe0ffff) AM_WRITE(SMH_RAM) AM_BASE(&topspeed_spritemap)
471   AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
472   AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_BASE(&topspeed_spritemap)
488473ADDRESS_MAP_END
489474
490static ADDRESS_MAP_START( topspeed_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
491   AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
492   AM_RANGE(0x400000, 0x40ffff) AM_READ(sharedram_r)
493   AM_RANGE(0x880000, 0x880001) AM_READ(topspeed_input_bypass_r)
494   AM_RANGE(0x880002, 0x880003) AM_READ(TC0220IOC_halfword_port_r)
495   AM_RANGE(0x900000, 0x9003ff) AM_READ(topspeed_motor_r)   /* motor CPU */
475static ADDRESS_MAP_START( topspeed_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
476   AM_RANGE(0x000000, 0x01ffff) AM_ROM
477   AM_RANGE(0x400000, 0X40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram)
478   AM_RANGE(0x880000, 0x880001) AM_READWRITE(topspeed_input_bypass_r, TC0220IOC_halfword_portreg_w)
479   AM_RANGE(0x880002, 0x880003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w)
480   AM_RANGE(0x900000, 0x9003ff) AM_READWRITE(topspeed_motor_r, topspeed_motor_w)   /* motor CPU */
496481ADDRESS_MAP_END
497482
498static ADDRESS_MAP_START( topspeed_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
499   AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
500   AM_RANGE(0x400000, 0X40ffff) AM_WRITE(sharedram_w) AM_BASE(&sharedram)
501   AM_RANGE(0x880000, 0x880001) AM_WRITE(TC0220IOC_halfword_portreg_w)
502   AM_RANGE(0x880002, 0x880003) AM_WRITE(TC0220IOC_halfword_port_w)
503   AM_RANGE(0x900000, 0x9003ff) AM_WRITE(topspeed_motor_w)   /* motor CPU */
504ADDRESS_MAP_END
505483
506
507484/***************************************************************************/
508485
509static ADDRESS_MAP_START( z80_readmem, ADDRESS_SPACE_PROGRAM, 8 )
510   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
511   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10)
512   AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
513   AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2151_r)
514   AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r)
515ADDRESS_MAP_END
516
517static ADDRESS_MAP_START( z80_writemem, ADDRESS_SPACE_PROGRAM, 8 )
518   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
519   AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM)
520   AM_RANGE(0x9000, 0x9001) AM_DEVWRITE("ym", ym2151_w)
486static ADDRESS_MAP_START( z80_map, ADDRESS_SPACE_PROGRAM, 8 )
487   AM_RANGE(0x0000, 0x3fff) AM_ROM
488   AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10)
489   AM_RANGE(0x8000, 0x8fff) AM_RAM
490   AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
521491   AM_RANGE(0xa000, 0xa000) AM_WRITE(taitosound_slave_port_w)
522   AM_RANGE(0xa001, 0xa001) AM_WRITE(taitosound_slave_comm_w)
492   AM_RANGE(0xa001, 0xa001) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
523493   AM_RANGE(0xb000, 0xb000) AM_DEVWRITE("msm", topspeed_msm5205_address_w)
524494//  AM_RANGE(0xb400, 0xb400) // msm5205 start? doesn't seem to work right
525495   AM_RANGE(0xb800, 0xb800) AM_DEVWRITE("msm", topspeed_msm5205_stop_w)
r4470r4471
705675
706676   /* basic machine hardware */
707677   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
708   MDRV_CPU_PROGRAM_MAP(topspeed_readmem,topspeed_writemem)
678   MDRV_CPU_PROGRAM_MAP(topspeed_map,0)
709679   MDRV_CPU_VBLANK_INT("screen", topspeed_interrupt)
710680
711681   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
712   MDRV_CPU_PROGRAM_MAP(z80_readmem,z80_writemem)
682   MDRV_CPU_PROGRAM_MAP(z80_map,0)
713683
714684   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
715   MDRV_CPU_PROGRAM_MAP(topspeed_cpub_readmem,topspeed_cpub_writemem)
685   MDRV_CPU_PROGRAM_MAP(topspeed_cpub_map,0)
716686   MDRV_CPU_VBLANK_INT("screen", topspeed_cpub_interrupt)
717687
718688   MDRV_MACHINE_START(topspeed)
src/mame/drivers/zr107.c
r4470r4471
580580   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8)
581581   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
582582   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
583   PORT_DIPNAME( 0x0c, 0x00, "Network ID" )
583   PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) PORT_DIPLOCATION("SW:2,1")
584584   PORT_DIPSETTING( 0x0c, "1" )
585585   PORT_DIPSETTING( 0x08, "2" )
586586   PORT_DIPSETTING( 0x04, "3" )
587587   PORT_DIPSETTING( 0x00, "4" )
588   PORT_DIPNAME( 0x02, 0x02, "Transmission Type" )
588   PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) PORT_DIPLOCATION("SW:3")
589589   PORT_DIPSETTING( 0x02, "Button" )
590590   PORT_DIPSETTING( 0x00, "'T'Gate" )
591   PORT_DIPNAME( 0x01, 0x01, "CG Board Type" )
591   PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) PORT_DIPLOCATION("SW:4")
592592   PORT_DIPSETTING( 0x01, DEF_STR( Single ) )
593593   PORT_DIPSETTING( 0x00, "Twin" )
594594
r4470r4471
624624   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8)
625625   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
626626   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
627   PORT_DIPNAME( 0x0c, 0x00, "Network ID" )
627   PORT_DIPNAME( 0x0c, 0x00, "Network ID" ) PORT_DIPLOCATION("SW:2,1")
628628   PORT_DIPSETTING( 0x0c, "1" )
629629   PORT_DIPSETTING( 0x08, "2" )
630630   PORT_DIPSETTING( 0x04, "3" )
631631   PORT_DIPSETTING( 0x00, "4" )
632   PORT_DIPNAME( 0x02, 0x02, "Transmission Type" )
632   PORT_DIPNAME( 0x02, 0x02, "Transmission Type" ) PORT_DIPLOCATION("SW:3")
633633   PORT_DIPSETTING( 0x02, "Button" )
634634   PORT_DIPSETTING( 0x00, "'T'Gate" )
635   PORT_DIPNAME( 0x01, 0x01, "CG Board Type" )
635   PORT_DIPNAME( 0x01, 0x01, "CG Board Type" ) PORT_DIPLOCATION("SW:4")
636636   PORT_DIPSETTING( 0x01, DEF_STR( Single ) )
637637   PORT_DIPSETTING( 0x00, "Twin" )
638638
r4470r4471
668668   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service Button") PORT_CODE(KEYCODE_8)
669669   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
670670   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
671   PORT_DIPNAME( 0x08, 0x00, "DIP 1" )
671   PORT_DIPNAME( 0x08, 0x00, "DIP 1" ) PORT_DIPLOCATION("SW:1")
672672   PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
673673   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
674   PORT_DIPNAME( 0x04, 0x04, "DIP 2" )
674   PORT_DIPNAME( 0x04, 0x04, "DIP 2" ) PORT_DIPLOCATION("SW:2")
675675   PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
676676   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
677   PORT_DIPNAME( 0x02, 0x02, "DIP 3" )
677   PORT_DIPNAME( 0x02, 0x02, "DIP 3" ) PORT_DIPLOCATION("SW:3")
678678   PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
679679   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
680   PORT_DIPNAME( 0x01, 0x00, "DIP 4" )
680   PORT_DIPNAME( 0x01, 0x00, "DIP 4" ) PORT_DIPLOCATION("SW:4")
681681   PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
682682   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
683683
src/mame/drivers/dominob.c
r4470r4471
130130   AM_RANGE(0xd001, 0xd001) AM_DEVREAD("ay", ay8910_r)
131131   AM_RANGE(0xd008, 0xd008) AM_WRITE(dominob_d008_w)
132132   AM_RANGE(0xd00c, 0xd00c) AM_READ_PORT("IN0")
133   AM_RANGE(0xd010, 0xd010) AM_READ_PORT("IN1") AM_WRITE(SMH_NOP)
133   AM_RANGE(0xd010, 0xd010) AM_READ_PORT("IN1") AM_WRITENOP
134134   AM_RANGE(0xd018, 0xd018) AM_READ_PORT("IN2") AM_WRITENOP
135135
136136   AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_BASE(&videoram)
src/mame/drivers/atarig1.c
r4470r4471
628628ROM_END
629629
630630
631/*
632This (rev 7) is the most recent Pit Fighter pcb that we have documented.
633It has printed Atari stickers that show the following:
634
6352 main board stickers:
636
637PIT FIGHTER
638A0478936-03
639
640WO#-PITPCB07
641G1 REV.D BD.
642
6432 stickers on JSA Audio II board:
644
645JSA II REV.B BD.
646PIT
647FIGHTER
648A047184-05
649
650PIT
651JSA
652007
653
654The card stuck into location 10P has 1 sticker:
655
656OOPSPCB01
657G1 OOPS
658PCB
659A048490-01
660
661The chip on the 10P card is labeled 136079-2053.
662*/
663
631664ROM_START( pitfight )
632665   ROM_REGION( 0x80000, "maincpu", 0 )   /* 8*64k for 68000 code */
666   ROM_LOAD16_BYTE( "136081-7028.05d", 0x00000, 0x10000, CRC(7391dc8b) SHA1(2140b21e71871c2cb81cccd92f536763d955ec97) )
667   ROM_LOAD16_BYTE( "136081-7029.05b", 0x00001, 0x10000, CRC(b3b88382) SHA1(0a0de330d7261c7eaa5aa705328d6c0c28d27536) )
668   ROM_LOAD16_BYTE( "136081-7030.15d", 0x20000, 0x10000, CRC(5fd5a0b1) SHA1(5d4711e8d10176b6989c4db012dbb4e29860590c) )
669   ROM_LOAD16_BYTE( "136081-7031.15b", 0x20001, 0x10000, CRC(e14a1d0c) SHA1(734fa1cd5ad835fa77c686006993ea9358e3b072) )
670
671   ROM_REGION( 0x14000, "jsa", 0 )   /* 64k for 6502 code */
672   ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
673   ROM_CONTINUE(               0x04000, 0xc000 )
674
675   ROM_REGION( 0x0a0000, "gfx1", ROMREGION_DISPOSE )
676   ROM_LOAD( "136081-1017.130m", 0x000000, 0x10000, CRC(ad3cfea5) SHA1(7b6fec131230e84ab87b7fc95f08989916f30e02) ) /* playfield, planes 0-3 odd */
677   ROM_LOAD( "136081-1018.120m", 0x010000, 0x10000, CRC(1a0f8bcf) SHA1(b965e73246db9507d2ad42dfcb033692b43b9b7a) )
678   ROM_LOAD( "136081-1021.90m",  0x040000, 0x10000, CRC(777efee3) SHA1(07591f11685c4c75c24c55fd242878253d32481b) ) /* playfield, planes 0-3 even */
679   ROM_LOAD( "136081-1022.75m",  0x050000, 0x10000, CRC(524319d0) SHA1(6f47a69d7d4e2a8f79b7470138e8b4edd6d0b2bb) )
680   ROM_LOAD( "136081-1025.45m",  0x080000, 0x10000, CRC(fc41691a) SHA1(4ef2f9093f20d27e1ba7d218b90ff6abb1f33646) ) /* playfield plane 4 */
681
682   ROM_REGION( 0x020000, "gfx2", ROMREGION_DISPOSE )
683   ROM_LOAD( "136081-1027.15l",  0x000000, 0x10000, CRC(a59f381d) SHA1(b14e878340ad2adbf4f6d4fc331c58f62037c7c7) ) /* alphanumerics */
684
685   ROM_REGION16_BE( 0x200000, "gfx3", 0 )
686   ROM_LOAD16_BYTE( "136081-1001.65r",  0x000001, 0x20000, CRC(3af31444) SHA1(91fc02786b82abdf12ebdbaacdd1f158f8ce6d06) )
687   ROM_LOAD16_BYTE( "136081-1002.65n",  0x000000, 0x20000, CRC(f1d76a4c) SHA1(ca769d2cdd096f4a54f7bcaa4840fc9ffaabf499) )
688   ROM_LOAD16_BYTE( "136081-1003.70r",  0x040001, 0x20000, CRC(28c41c2a) SHA1(75cd527f98c8475e3b880f53c5a355d6c3bd8766) )
689   ROM_LOAD16_BYTE( "136081-1004.70n",  0x040000, 0x20000, CRC(977744da) SHA1(10f388eef999f702863e2b1a02a188df9a0a6086) )
690   ROM_LOAD16_BYTE( "136081-1005.75r",  0x080001, 0x20000, CRC(ae59aef2) SHA1(44eda8a01016f6911b47df973b9427ff9f2ecef0) )
691   ROM_LOAD16_BYTE( "136081-1006.75n",  0x080000, 0x20000, CRC(b6ccd77e) SHA1(f09a829143abd972699f3e671d4a1362fd362b19) )
692   ROM_LOAD16_BYTE( "136081-1007.90r",  0x0c0001, 0x20000, CRC(ba33b0c0) SHA1(be09ba8796d3db2a859a2776336c1e9acbdaee95) )
693   ROM_LOAD16_BYTE( "136081-1008.90n",  0x0c0000, 0x20000, CRC(09bd047c) SHA1(c283d526c7b08ce06e3981d1fc69433ea0dae657) )
694   ROM_LOAD16_BYTE( "136081-1009.100r", 0x100001, 0x20000, CRC(ab85b00b) SHA1(6c60b9b58ff93ffdd1cffc49c3ea67400d56bf61) )
695   ROM_LOAD16_BYTE( "136081-1010.100n", 0x100000, 0x20000, CRC(eca94bdc) SHA1(c474dfc9dc4460cd2f40cc6012214e760b133c0d) )
696   ROM_LOAD16_BYTE( "136081-1011.115r", 0x140001, 0x20000, CRC(a86582fd) SHA1(8b557622c53c8ff388248ea54d3cc85b0d77cafb) )
697   ROM_LOAD16_BYTE( "136081-1012.115n", 0x140000, 0x20000, CRC(efd1152d) SHA1(77d1752b76b079c9e834a8b73e8601873d3afdbe) )
698   ROM_LOAD16_BYTE( "136081-1013.120r", 0x180001, 0x20000, CRC(a141379e) SHA1(d4c98b364495e19e2e7bee5431834f38ba20a514) )
699   ROM_LOAD16_BYTE( "136081-1014.120n", 0x180000, 0x20000, CRC(93bfcc15) SHA1(4d8f6c8c279533b2fc35f87c3eb5ed614cb03248) )
700   ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
701   ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
702
703   ROM_REGION( 0x40000, "adpcm", 0 )   /* 256k for ADPCM samples */
704   ROM_LOAD( "136081-1061.7k",  0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
705   ROM_LOAD( "136081-1062.7j",  0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
706   ROM_LOAD( "136081-1063.7e",  0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
707   ROM_LOAD( "136081-1064.7d",  0x30000, 0x10000, CRC(33f045d5) SHA1(1fc7bedafeb3c1ffa0f115538cc300959c8d4601) )
708
709   ROM_REGION( 0x0600, "proms", ROMREGION_DISPOSE )   /* microcode for growth renderer */
710   ROM_LOAD( "136081-1040.30s",  0x0000, 0x0200, CRC(9b0f8b95) SHA1(d03987fe2d50a9f7769c600885bd1c7e1dee0789) )
711   ROM_LOAD( "136081-1041.25s",  0x0200, 0x0200, CRC(f7ba6153) SHA1(d58792c9e9ea72d8f53f41ac1b420a86db6da3a3) )
712   ROM_LOAD( "136081-1042.20s",  0x0400, 0x0200, CRC(3572fe68) SHA1(ab34ff337c16cd4d568cd2bd6a5063f5ed97368f) )
713
714   ROM_REGION( 0x1200, "plds", ROMREGION_DISPOSE )
715   ROM_LOAD( "gal16v8a-136081-1043.15e",  0x0000, 0x0117, CRC(649d9c0d) SHA1(bba2f3cf4607946340de27157c799f6b84c48584) )
716   ROM_LOAD( "gal16v8a-136079-1045.40p",  0x0200, 0x0117, CRC(535c4d2e) SHA1(a428eef81723546566216e6af0db3baebda9a1f2) )
717   ROM_LOAD( "gal16v8a-136079-1046.65d",  0x0400, 0x0117, CRC(38b22b2c) SHA1(cf9051129a790f3427e1c6d74a5c66f16acbd4be) )
718   ROM_LOAD( "gal16v8a-136079-1047.40s",  0x0600, 0x0117, CRC(20839904) SHA1(134d1b379b7708ce33fbbf75e5c879dad971cd22) )
719   ROM_LOAD( "gal16v8a-136079-1048.125f", 0x0800, 0x0117, CRC(d16e8d6e) SHA1(61cc270d80cb34f63fc407e41b55f95d59717757) )
720   ROM_LOAD( "gal16v8a-136079-1049.120f", 0x0a00, 0x0117, CRC(68440ab1) SHA1(2f4eabac27d9a5778fcba0d9aa47460bcb153378) )
721   ROM_LOAD( "gal16v8a-136079-1050.115f", 0x0c00, 0x0117, CRC(20dc296a) SHA1(9179fca2efcdd0782bb15cbf1923670806755bc8) )
722   ROM_LOAD( "gal16v8a-136079-1051.105f", 0x0e00, 0x0117, CRC(45f0cb5f) SHA1(a7043231f68374871253da50cfd905519f283d9e) )
723   ROM_LOAD( "gal16v8a-136079-1052.30n",  0x1000, 0x0117, CRC(6b3d2669) SHA1(143178d9c36a87aa58034faea2e4d4038ae565e7) )
724ROM_END
725
726
727ROM_START( pitfigh6 )
728   ROM_REGION( 0x80000, "maincpu", 0 )   /* 8*64k for 68000 code */
633729   ROM_LOAD16_BYTE( "136081-6028.05d", 0x00000, 0x10000, CRC(dae1d895) SHA1(d3852b932e318e3f6ab034aba8210d896f9f08da) )
634730   ROM_LOAD16_BYTE( "136081-6029.05b", 0x00001, 0x10000, CRC(4df13418) SHA1(e5469fbdd7263ca651d5cb7518576e4f9c4892e7) )
635731   ROM_LOAD16_BYTE( "136081-6030.15d", 0x20000, 0x10000, CRC(72b4b249) SHA1(295c707783ca40d6b68eb36b4511774e889bf447) )
r4470r4471
9651061static DRIVER_INIT( hydra )    { init_g1_common(machine, 0x078000, 116, 0); }
9661062static DRIVER_INIT( hydrap )   { init_g1_common(machine, 0x000000,   0, 0); }
9671063
1064static DRIVER_INIT( pitfigh7 ) { init_g1_common(machine, 0x038000, 112, 2); }
9681065static DRIVER_INIT( pitfight ) { init_g1_common(machine, 0x038000, 111, 1); }
9691066static DRIVER_INIT( pitfighj ) { init_g1_common(machine, 0x038000, 113, 1); }
9701067static DRIVER_INIT( pitfighb ) { init_g1_common(machine, 0x038000,  -1, 1); }
9711068
9721069
973
9741070/*************************************
9751071 *
9761072 *  Game driver(s)
r4470r4471
9811077GAME( 1990, hydrap,   hydra,    atarig1, hydra,    hydrap,   ROT0, "Atari Games", "Hydra (prototype 5/14/90)", GAME_SUPPORTS_SAVE )
9821078GAME( 1990, hydrap2,  hydra,    atarig1, hydra,    hydrap,   ROT0, "Atari Games", "Hydra (prototype 5/25/90)", GAME_SUPPORTS_SAVE )
9831079
984GAME( 1990, pitfight, 0,        atarig1, pitfight, pitfighj, ROT0, "Atari Games", "Pit Fighter (rev 5)", GAME_SUPPORTS_SAVE )
1080GAME( 1990, pitfight, 0,        atarig1, pitfight, pitfigh7, ROT0, "Atari Games", "Pit Fighter (rev 7)", GAME_SUPPORTS_SAVE )
1081GAME( 1990, pitfigh6, pitfight, atarig1, pitfight, pitfighj, ROT0, "Atari Games", "Pit Fighter (rev 6)", GAME_SUPPORTS_SAVE )
9851082GAME( 1990, pitfigh4, pitfight, atarig1, pitfight, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 4)", GAME_SUPPORTS_SAVE )
9861083GAME( 1990, pitfigh3, pitfight, atarig1, pitfight, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 3)", GAME_SUPPORTS_SAVE )
9871084GAME( 1990, pitfighj, pitfight, atarig1, pitfighj, pitfighj, ROT0, "Atari Games", "Pit Fighter (Japan, 2 players)", GAME_SUPPORTS_SAVE )
src/mame/drivers/bladestl.c
r4470r4471
3232#include "video/konamiic.h"
3333#include "sound/2203intf.h"
3434#include "sound/upd7759.h"
35#include "konamipt.h"
3536
3637/* from video */
3738int bladestl_spritebank;
r4470r4471
124125   AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r)         /* Trackballs */
125126   AM_RANGE(0x2f40, 0x2f40) AM_WRITE(bladestl_bankswitch_w)   /* bankswitch control */
126127   AM_RANGE(0x2f80, 0x2f9f) AM_READWRITE(K051733_r, K051733_w)   /* Protection: 051733 */
127   AM_RANGE(0x2fc0, 0x2fc0) AM_WRITE(SMH_NOP)            /* ??? */
128   AM_RANGE(0x2fc0, 0x2fc0) AM_WRITENOP            /* ??? */
128129   AM_RANGE(0x4000, 0x5fff) AM_RAM                     /* Work RAM */
129130   AM_RANGE(0x6000, 0x7fff) AM_READWRITE(SMH_BANK1, SMH_RAM)   /* banked ROM */
130131   AM_RANGE(0x8000, 0xffff) AM_ROM
r4470r4471
135136   AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)      /* YM2203 */
136137   AM_RANGE(0x3000, 0x3000) AM_DEVWRITE("upd", bladestl_speech_ctrl_w)   /* UPD7759 */
137138   AM_RANGE(0x4000, 0x4000) AM_DEVREAD("upd", bladestl_speech_busy_r)         /* UPD7759 */
138   AM_RANGE(0x5000, 0x5000) AM_WRITE(SMH_NOP)               /* ??? */
139   AM_RANGE(0x5000, 0x5000) AM_WRITENOP               /* ??? */
139140   AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)            /* soundlatch_r */
140141   AM_RANGE(0x8000, 0xffff) AM_ROM
141142ADDRESS_MAP_END
r4470r4471
148149
149150static INPUT_PORTS_START( bladestl )
150151   PORT_START("DSW1")
151   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )   PORT_DIPLOCATION("SW1:1,2,3,4")
152   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
153   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
154   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
155   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
156   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
157   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
158   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
159   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
160   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
161   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
162   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
163   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
164   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
165   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
166   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
167   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
168   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )   PORT_DIPLOCATION("SW1:5,6,7,8")
169   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
170   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
171   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
172   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
173   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
174   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
175   PORT_DIPSETTING(    0x00, DEF_STR( 4C_5C ) )
176   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
177   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
178   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
179   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
180   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
181   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
182   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
183   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
184   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
152   KONAMI_COINAGE_ALT_LOC(SW1)
185153
186154   PORT_START("DSW2")
187155   PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" )
r4470r4471
216184   PORT_SERVICE_DIPLOC(  0x80, IP_ACTIVE_LOW, "SW3:3" )
217185
218186   PORT_START("P1")
219   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
220   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
221   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
222   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
223   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
224   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
225   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
187   KONAMI8_B123(1)
226188   PORT_DIPNAME( 0x80, 0x80, "Period time set" )      PORT_DIPLOCATION("SW3:4")
227189   PORT_DIPSETTING(    0x80, "4" )
228190   PORT_DIPSETTING(    0x00, "7" )
229191
230192   PORT_START("P2")
231   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
232   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
233   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
234   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
235   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
236   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
237   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
238   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
193   KONAMI8_B123_UNK(2)
239194
240195   PORT_START("TRACKBALL_P1_1")
241196   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(63) PORT_REVERSE PORT_PLAYER(1)
r4470r4471
402357ROM_END
403358
404359
405
406360GAME( 1987, bladestl, 0,        bladestl, bladestl, 0, ROT90, "Konami", "Blades of Steel (version T)", 0 )
407361GAME( 1987, bladstle, bladestl, bladestl, bladstle, 0, ROT90, "Konami", "Blades of Steel (version E)", 0 )
src/mame/drivers/toobin.c
r4470r4471
112112   AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_WRITE(atarigen_alpha_w) AM_BASE(&atarigen_alpha)
113113   AM_RANGE(0xc09800, 0xc09fff) AM_MIRROR(0x046000) AM_RAM_WRITE(atarimo_0_spriteram_w) AM_BASE(&atarimo_0_spriteram)
114114   AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE(toobin_paletteram_w) AM_BASE(&paletteram16)
115   AM_RANGE(0xff6000, 0xff6001) AM_READ(SMH_NOP)      /* who knows? read at controls time */
115   AM_RANGE(0xff6000, 0xff6001) AM_READNOP      /* who knows? read at controls time */
116116   AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x4500fe) AM_WRITE(watchdog_reset16_w)
117117   AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_WRITE(atarigen_sound_w)
118118   AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE(toobin_intensity_w)
src/mame/drivers/bwidow.c
r4470r4471
367367   AM_RANGE(0x88c0, 0x88c0) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
368368   AM_RANGE(0x8900, 0x8900) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
369369   AM_RANGE(0x8940, 0x897f) AM_DEVWRITE("earom", atari_vg_earom_w)
370   AM_RANGE(0x8980, 0x89ed) AM_WRITE(SMH_NOP) /* watchdog clear */
370   AM_RANGE(0x8980, 0x89ed) AM_WRITENOP /* watchdog clear */
371371   AM_RANGE(0x9000, 0xffff) AM_ROM
372372ADDRESS_MAP_END
373373
r4470r4471
376376   AM_RANGE(0x0000, 0x03ff) AM_RAM
377377   AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
378378   AM_RANGE(0x0900, 0x0907) AM_READ(spacduel_IN3_r)   /* IN1 */
379   AM_RANGE(0x0905, 0x0906) AM_WRITE(SMH_NOP) /* ignore? */
379   AM_RANGE(0x0905, 0x0906) AM_WRITENOP /* ignore? */
380380   AM_RANGE(0x0a00, 0x0a00) AM_DEVREAD("earom", atari_vg_earom_r)
381381//  AM_RANGE(0x0c00, 0x0c00) AM_WRITE(coin_counter_w) /* coin out */
382382   AM_RANGE(0x0c80, 0x0c80) AM_WRITE(avgdvg_go_w)
383   AM_RANGE(0x0d00, 0x0d00) AM_WRITE(SMH_NOP) /* watchdog clear */
383   AM_RANGE(0x0d00, 0x0d00) AM_WRITENOP /* watchdog clear */
384384   AM_RANGE(0x0d80, 0x0d80) AM_WRITE(avgdvg_reset_w)
385385   AM_RANGE(0x0e00, 0x0e00) AM_WRITE(irq_ack_w) /* interrupt acknowledge */
386386   AM_RANGE(0x0e80, 0x0e80) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
src/mame/drivers/pbaction.c
r4470r4471
104104   AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
105105   AM_RANGE(0xe604, 0xe604) AM_READ_PORT("DSW1")
106106   AM_RANGE(0xe605, 0xe605) AM_READ_PORT("DSW2")
107   AM_RANGE(0xe606, 0xe606) AM_READ(SMH_NOP)   /* ??? */
107   AM_RANGE(0xe606, 0xe606) AM_READNOP   /* ??? */
108108ADDRESS_MAP_END
109109
110110static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
132132static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
133133   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
134134   AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM)
135   AM_RANGE(0xffff, 0xffff) AM_WRITE(SMH_NOP)   /* watchdog? */
135   AM_RANGE(0xffff, 0xffff) AM_WRITENOP   /* watchdog? */
136136ADDRESS_MAP_END
137137
138138
src/mame/drivers/overdriv.c
r4470r4471
260260   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
261261   AM_RANGE(0x040000, 0x043fff) AM_WRITE(SMH_RAM)   /* work RAM */
262262   AM_RANGE(0x080000, 0x080fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
263   AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE(SMH_NOP)   /* unknown (always 0x30) */
264   AM_RANGE(0x100000, 0x10001f) AM_WRITE(SMH_NOP)   /* 053252? (LSB) */
263   AM_RANGE(0x0e0000, 0x0e0001) AM_WRITENOP   /* unknown (always 0x30) */
264   AM_RANGE(0x100000, 0x10001f) AM_WRITENOP   /* 053252? (LSB) */
265265   AM_RANGE(0x140000, 0x140001) AM_WRITE(watchdog_reset16_w)
266266   AM_RANGE(0x1c0000, 0x1c001f) AM_WRITE(K051316_ctrl_0_msb_w)
267267   AM_RANGE(0x1c8000, 0x1c801f) AM_WRITE(K051316_ctrl_1_msb_w)
r4470r4471
283283   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
284284   AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM)
285285   AM_RANGE(0x0c0000, 0x0c1fff) AM_READ(SMH_RAM)
286   AM_RANGE(0x100000, 0x10000f) AM_READ(SMH_NOP)   // K053250 #0
287   AM_RANGE(0x108000, 0x10800f) AM_READ(SMH_NOP)   // K053250 #1
286   AM_RANGE(0x100000, 0x10000f) AM_READNOP   // K053250 #0
287   AM_RANGE(0x108000, 0x10800f) AM_READNOP   // K053250 #1
288288   AM_RANGE(0x118000, 0x118fff) AM_READ(K053247_word_r)
289289   AM_RANGE(0x120000, 0x120001) AM_READ(K053246_word_r)
290290   AM_RANGE(0x128000, 0x128001) AM_READ(cpuB_ctrl_r)
291291   AM_RANGE(0x200000, 0x203fff) AM_READ(sharedram_r)
292292   AM_RANGE(0x208000, 0x20bfff) AM_READ(SMH_RAM)
293293
294   AM_RANGE(0x218000, 0x219fff) AM_READ(SMH_NOP)   // K053250 #0 gfx ROM read (LSB)
295   AM_RANGE(0x220000, 0x221fff) AM_READ(SMH_NOP)   // K053250 #1 gfx ROM read (LSB)
294   AM_RANGE(0x218000, 0x219fff) AM_READNOP   // K053250 #0 gfx ROM read (LSB)
295   AM_RANGE(0x220000, 0x221fff) AM_READNOP   // K053250 #1 gfx ROM read (LSB)
296296ADDRESS_MAP_END
297297
298298static ADDRESS_MAP_START( overdriv_writemem2, ADDRESS_SPACE_PROGRAM, 16 )
299299   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
300300   AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM)   /* work RAM */
301301   AM_RANGE(0x0c0000, 0x0c1fff) AM_WRITE(SMH_RAM)
302   AM_RANGE(0x100000, 0x10000f) AM_WRITE(SMH_NOP)   // K053250 #0
303   AM_RANGE(0x108000, 0x10800f) AM_WRITE(SMH_NOP)   // K053250 #1
302   AM_RANGE(0x100000, 0x10000f) AM_WRITENOP   // K053250 #0
303   AM_RANGE(0x108000, 0x10800f) AM_WRITENOP   // K053250 #1
304304   AM_RANGE(0x118000, 0x118fff) AM_WRITE(K053247_word_w)
305305   AM_RANGE(0x128000, 0x128001) AM_WRITE(cpuB_ctrl_w)   /* enable K053247 ROM reading, plus something else */
306306   AM_RANGE(0x130000, 0x130007) AM_WRITE(K053246_word_w)
src/mame/drivers/thunderx.c
r4470r4471
1414#include "video/konamiic.h"
1515#include "sound/2151intf.h"
1616#include "sound/k007232.h"
17#include "konamipt.h"
1718
1819static MACHINE_RESET( scontra );
1920static MACHINE_RESET( thunderx );
r4470r4471
370371
371372/***************************************************************************/
372373
373static ADDRESS_MAP_START( scontra_readmem, ADDRESS_SPACE_PROGRAM, 8 )
374static ADDRESS_MAP_START( scontra_map, ADDRESS_SPACE_PROGRAM, 8 )
375   AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w)   /* bankswitch control + coin counters */
376   AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
377   AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w)      /* cause interrupt on audio CPU */
378   AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
374379   AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM")
375380   AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1")
376381   AM_RANGE(0x1f92, 0x1f92) AM_READ_PORT("P2")
377382   AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3")
378383   AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1")
379384   AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2")
385   AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w)
386   AM_RANGE(0x0000, 0x3fff) AM_READWRITE(K052109_051960_r, K052109_051960_w)      /* video RAM + sprite RAM */
380387
381   AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r)
382   AM_RANGE(0x4000, 0x57ff) AM_READ(SMH_RAM)
383   AM_RANGE(0x5800, 0x5fff) AM_READ(scontra_bankedram_r)         /* palette + work RAM */
384   AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1)
385   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
388   AM_RANGE(0x4000, 0x57ff) AM_RAM
389   AM_RANGE(0x5800, 0x5fff) AM_READWRITE(scontra_bankedram_r, scontra_bankedram_w) AM_BASE(&ram)         /* palette + work RAM */
390   AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1)
391   AM_RANGE(0x8000, 0xffff) AM_ROM
386392ADDRESS_MAP_END
387393
388static ADDRESS_MAP_START( thunderx_readmem, ADDRESS_SPACE_PROGRAM, 8 )
394static ADDRESS_MAP_START( thunderx_map, ADDRESS_SPACE_PROGRAM, 8 )
395   AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w)
396   AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
397   AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w)      /* cause interrupt on audio CPU */
398   AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
389399   AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM")
390400   AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1")
391401   AM_RANGE(0x1f92, 0x1f92) AM_READ_PORT("P2")
392402   AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3")
393403   AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1")
394404   AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2")
395   AM_RANGE(0x1f98, 0x1f98) AM_READ(thunderx_1f98_r) /* registers */
405   AM_RANGE(0x1f98, 0x1f98) AM_READWRITE(thunderx_1f98_r, thunderx_1f98_w) /* registers */
406   AM_RANGE(0x0000, 0x3fff) AM_READWRITE(K052109_051960_r, K052109_051960_w)
396407
397   AM_RANGE(0x0000, 0x3fff) AM_READ(K052109_051960_r)
398   AM_RANGE(0x4000, 0x57ff) AM_READ(SMH_RAM)
399   AM_RANGE(0x5800, 0x5fff) AM_READ(thunderx_bankedram_r)         /* palette + work RAM + unknown RAM */
400   AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1)
401   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
408   AM_RANGE(0x4000, 0x57ff) AM_RAM
409   AM_RANGE(0x5800, 0x5fff) AM_READWRITE(thunderx_bankedram_r, thunderx_bankedram_w) AM_BASE(&ram)         /* palette + work RAM + unknown RAM */
410   AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1)
411   AM_RANGE(0x8000, 0xffff) AM_ROM
402412ADDRESS_MAP_END
403413
404static ADDRESS_MAP_START( scontra_writemem, ADDRESS_SPACE_PROGRAM, 8 )
405   AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w)   /* bankswitch control + coin counters */
406   AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
407   AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w)      /* cause interrupt on audio CPU */
408   AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
409   AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w)
410
411   AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w)      /* video RAM + sprite RAM */
412   AM_RANGE(0x4000, 0x57ff) AM_WRITE(SMH_RAM)
413   AM_RANGE(0x5800, 0x5fff) AM_WRITE(scontra_bankedram_w) AM_BASE(&ram)         /* palette + work RAM */
414   AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
415ADDRESS_MAP_END
416
417static ADDRESS_MAP_START( thunderx_writemem, ADDRESS_SPACE_PROGRAM, 8 )
418   AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w)
419   AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_w)
420   AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w)      /* cause interrupt on audio CPU */
421   AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
422   AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w)
423
424   AM_RANGE(0x0000, 0x3fff) AM_WRITE(K052109_051960_w)
425   AM_RANGE(0x4000, 0x57ff) AM_WRITE(SMH_RAM)
426   AM_RANGE(0x5800, 0x5fff) AM_WRITE(thunderx_bankedram_w) AM_BASE(&ram)         /* palette + work RAM + unknown RAM */
427   AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM)
428ADDRESS_MAP_END
429
430static ADDRESS_MAP_START( scontra_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
431   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)            /* ROM */
432   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)            /* RAM */
414static ADDRESS_MAP_START( scontra_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
415   AM_RANGE(0x0000, 0x7fff) AM_ROM               /* ROM */
416   AM_RANGE(0x8000, 0x87ff) AM_RAM               /* RAM */
433417   AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)         /* soundlatch_r */
434   AM_RANGE(0xb000, 0xb00d) AM_DEVREAD("konami", k007232_r)   /* 007232 registers */
435   AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r)   /* YM2151 */
436ADDRESS_MAP_END
437
438static ADDRESS_MAP_START( scontra_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
439   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)               /* ROM */
440   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)               /* RAM */
441   AM_RANGE(0xb000, 0xb00d) AM_DEVWRITE("konami", k007232_w)      /* 007232 registers */
442   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w)      /* YM2151 */
418   AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("konami", k007232_r, k007232_w)      /* 007232 registers */
419   AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)      /* YM2151 */
443420   AM_RANGE(0xf000, 0xf000) AM_DEVWRITE("konami", scontra_snd_bankswitch_w)   /* 007232 bank select */
444421ADDRESS_MAP_END
445422
446static ADDRESS_MAP_START( thunderx_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
447   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
448   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
423static ADDRESS_MAP_START( thunderx_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
424   AM_RANGE(0x0000, 0x7fff) AM_ROM
425   AM_RANGE(0x8000, 0x87ff) AM_RAM
449426   AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
450   AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r)
427   AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
451428ADDRESS_MAP_END
452429
453static ADDRESS_MAP_START( thunderx_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
454   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
455   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
456   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w)
457ADDRESS_MAP_END
458
459430/***************************************************************************
460431
461432    Input Ports
r4470r4471
464435
465436static INPUT_PORTS_START( scontra )
466437   PORT_START("SYSTEM")
467   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
468   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
469   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
470   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
471   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
472   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
473   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
474   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
438   KONAMI8_SYSTEM_UNK
475439
476440   PORT_START("P1")
477   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
478   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
479   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
480   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
481   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
482   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
483   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
484   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
441   KONAMI8_B12_UNK(1)
485442
486443   PORT_START("P2")
487   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
488   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
489   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
490   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
491   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
492   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
493   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
494   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
444   KONAMI8_B12_UNK(2)
495445
496446   PORT_START("DSW1")
497   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
498   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
499   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
500   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
501   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
502   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
503   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
504   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
505   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
506   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
507   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
508   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
509   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
510   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
511   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
512   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
513   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
514   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
515   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
516   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
517   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
518   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
519   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
520   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
521   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
522   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
523   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
524   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
525   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
526   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
527   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
528   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
529   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
530//  PORT_DIPSETTING(    0x00, "Invalid" )
447   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
448   /* "No Coin B" = coins produce sound, but no effect on coin counter */
531449
532450   PORT_START("DSW2")
533451   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
568486
569487static INPUT_PORTS_START( thunderx )
570488   PORT_START("SYSTEM")
571   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
572   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
573   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
574   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
575   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
489   KONAMI8_SYSTEM_10
576490   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
577491   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
578492   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
579493
580494   PORT_START("P1")
581   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
582   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
583   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
584   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
585   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
586   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
587   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
588   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
495   KONAMI8_B12_UNK(1)
589496
590497   PORT_START("P2")
591   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
592   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
593   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
594   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
595   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
596   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
597   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
598   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
498   KONAMI8_B12_UNK(2)
599499
600500   PORT_START("DSW1")
601   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
602   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
603   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
604   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
605   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
606   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
607   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
608   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
609   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
610   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
611   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
612   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
613   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
614   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
615   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
616   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
617   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
618   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
619   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
620   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
621   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
622   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
623   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
624   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
625   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
626   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
627   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
628   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
629   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
630   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
631   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
632   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
633   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
634//  PORT_DIPSETTING(    0x00, "Invalid" )
501   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
502   /* "No Coin B" = coins produce sound, but no effect on coin counter */
635503
636504    PORT_START("DSW2")
637505   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
695563
696564   /* basic machine hardware */
697565   MDRV_CPU_ADD("maincpu", KONAMI, 3000000)   /* 052001 */
698   MDRV_CPU_PROGRAM_MAP(scontra_readmem,scontra_writemem)
566   MDRV_CPU_PROGRAM_MAP(scontra_map,0)
699567   MDRV_CPU_VBLANK_INT("screen", scontra_interrupt)
700568
701569   MDRV_CPU_ADD("audiocpu", Z80, 3579545)      /* ? */
702   MDRV_CPU_PROGRAM_MAP(scontra_readmem_sound,scontra_writemem_sound)
570   MDRV_CPU_PROGRAM_MAP(scontra_sound_map,0)
703571
704572   MDRV_MACHINE_RESET(scontra)
705573
r4470r4471
736604
737605   /* basic machine hardware */
738606   MDRV_CPU_ADD("maincpu", KONAMI, 3000000)      /* ? */
739   MDRV_CPU_PROGRAM_MAP(thunderx_readmem,thunderx_writemem)
607   MDRV_CPU_PROGRAM_MAP(thunderx_map,0)
740608   MDRV_CPU_VBLANK_INT("screen", scontra_interrupt)
741609
742610   MDRV_CPU_ADD("audiocpu", Z80, 3579545)      /* ? */
743   MDRV_CPU_PROGRAM_MAP(thunderx_readmem_sound,thunderx_writemem_sound)
611   MDRV_CPU_PROGRAM_MAP(thunderx_sound_map,0)
744612
745613   MDRV_MACHINE_RESET(thunderx)
746614
src/mame/drivers/spcforce.c
r4470r4471
9696   AM_RANGE(0x7001, 0x7001) AM_WRITE(spcforce_soundtrigger_w)
9797   AM_RANGE(0x700b, 0x700b) AM_WRITE(spcforce_flip_screen_w)
9898   AM_RANGE(0x700e, 0x700e) AM_WRITE(interrupt_enable_w)
99   AM_RANGE(0x700f, 0x700f) AM_WRITE(SMH_NOP)
99   AM_RANGE(0x700f, 0x700f) AM_WRITENOP
100100   AM_RANGE(0x8000, 0x83ff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
101101   AM_RANGE(0x9000, 0x93ff) AM_WRITE(SMH_RAM) AM_BASE(&colorram)
102102   AM_RANGE(0xa000, 0xa3ff) AM_WRITE(SMH_RAM) AM_BASE(&spcforce_scrollram)
src/mame/drivers/gsword.c
r4470r4471
404404   AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("ay2", gsword_fake_1_r, gsword_AY8910_control_port_1_w)
405405   AM_RANGE(0x81, 0x81) AM_DEVREADWRITE("ay2", ay8910_r,        ay8910_data_w)
406406//
407   AM_RANGE(0xe0, 0xe0) AM_READ(SMH_NOP) /* ?? */
408   AM_RANGE(0xa0, 0xa0) AM_WRITE(SMH_NOP) /* ?? */
409   AM_RANGE(0xe0, 0xe0) AM_WRITE(SMH_NOP) /* watch dog ?*/
407   AM_RANGE(0xe0, 0xe0) AM_READNOP /* ?? */
408   AM_RANGE(0xa0, 0xa0) AM_WRITENOP /* ?? */
409   AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* watch dog ?*/
410410ADDRESS_MAP_END
411411
412412//
src/mame/drivers/xmen.c
r4470r4471
2323#include "sound/k054539.h"
2424#include "rendlay.h"
2525#include "includes/xmen.h"
26#include "konamipt.h"
2627
2728UINT16 xmen_current_frame;
2829
r4470r4471
248249
249250
250251static INPUT_PORTS_START( xmen )
251   PORT_START("P2_P4")
252   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
253   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
254   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
255   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
256   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
257   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
258   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
259   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 )
260   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
261   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
262   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
263   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
264   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
265   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
266   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
267   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 )
268
269252   PORT_START("P1_P3")
270   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
271   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
272   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
273   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
274   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
275   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
276   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
277   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 )
278   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
279   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
280   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
281   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
282   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
283   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
284   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
285   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 )
253   KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 )
254   KONAMI16_MSB(3, IPT_BUTTON3, IPT_COIN3 )
286255
256   PORT_START("P2_P4")
257   KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 )
258   KONAMI16_MSB(4, IPT_BUTTON3, IPT_COIN4 )
259
287260   PORT_START("EEPROM")
288261   PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
289262   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
r4470r4471
297270   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
298271INPUT_PORTS_END
299272
273static INPUT_PORTS_START( xmen2p )
274   PORT_START("P1_P3")
275   KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 )
276   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
300277
278   PORT_START("P2_P4")
279   KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 )
280   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
281
282   PORT_START("EEPROM")
283   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 )
284   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 )
285   PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
286   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
287   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* EEPROM status - always 1 */
288   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
289   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
290   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
291   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
292   PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
293   PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
294   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
295INPUT_PORTS_END
296
301297static CUSTOM_INPUT( xmen_frame_r )
302298{
303299   return xmen_current_frame;
304300}
305301
306302static INPUT_PORTS_START( xmen6p )
303   PORT_START("P1_P3")
304   KONAMI16_LSB(1, IPT_BUTTON3, IPT_COIN1 )
305   KONAMI16_MSB(3, IPT_BUTTON3, IPT_COIN3 )
306
307307   PORT_START("P2_P4")
308   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
309   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
310   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
311   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
312   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
313   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
314   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
315   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 )
316   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
317   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
318   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
319   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
320   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
321   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
322   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
323   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN4 )
308   KONAMI16_LSB(2, IPT_BUTTON3, IPT_COIN2 )
309   KONAMI16_MSB(4, IPT_BUTTON3, IPT_COIN4 )
324310
325   PORT_START("P1_P3")
326   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
327   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
328   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
329   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
330   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
331   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
332   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
333   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 )
334   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
335   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
336   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
337   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
338   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
339   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
340   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
341   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN3 )
311   PORT_START("P5_P6")
312   KONAMI16_LSB(5, IPT_BUTTON3, IPT_COIN5 )
313   KONAMI16_MSB(6, IPT_BUTTON3, IPT_COIN6 )
342314
343315   PORT_START("EEPROM")
344316   PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
r4470r4471
352324   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START6 ) /* not verified */
353325   PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
354326   PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(xmen_frame_r, NULL)   /* screen indicator? */
355
356   PORT_START("P5_P6")
357   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(5)
358   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(5)
359   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(5)
360   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(5)
361   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(5)
362   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(5)
363   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(5)
364   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN5 )
365   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(6)
366   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(6)
367   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(6)
368   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(6)
369   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(6)
370   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(6)
371   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(6)
372   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_COIN6 )
373327INPUT_PORTS_END
374328
375static INPUT_PORTS_START( xmen2p )
376   PORT_START("P2_P4")
377   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
378   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
379   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
380   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
381   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
382   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
383   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
384   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN2 )
385   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
386329
387   PORT_START("P1_P3")
388   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
389   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
390   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
391   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
392   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
393   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
394   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
395   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN1 )
396   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
397330
398   PORT_START("EEPROM")
399   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE1 )
400   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE2 )
401   PORT_BIT( 0x003c, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
402   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   /* EEPROM data */
403   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* EEPROM status - always 1 */
404   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
405   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
406   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
407   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
408   PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
409   PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
410   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )   /* unused? */
411INPUT_PORTS_END
412
413
414
415331static INTERRUPT_GEN( xmen_interrupt )
416332{
417333   if (cpu_getiloops(device) == 0) irq5_line_hold(device);
src/mame/drivers/atarifb.c
r4470r4471
162162   AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
163163   AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
164164   AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM)
165   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP) /* Interrupt Acknowledge */
165   AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* Interrupt Acknowledge */
166166   AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r)
167167   AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r)
168168   AM_RANGE(0x5000, 0x5000) AM_WRITE(watchdog_reset_w)
r4470r4471
183183   AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
184184   AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
185185   AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM)
186   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP) /* Interrupt Acknowledge */
186   AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* Interrupt Acknowledge */
187187   AM_RANGE(0x4000, 0x4000) AM_READ(atarifb4_in0_r)
188188   AM_RANGE(0x4001, 0x4001) AM_READ_PORT("EXTRA")
189189   AM_RANGE(0x4002, 0x4002) AM_READ(atarifb4_in2_r)
r4470r4471
205205   AM_RANGE(0x2002, 0x2002) AM_WRITE(atarifb_out2_w) /* OUT 2 */
206206   AM_RANGE(0x2003, 0x2003) AM_WRITE(atarifb_out3_w) /* OUT 3 */
207207   AM_RANGE(0x3000, 0x3000) AM_READ(SMH_RAM)
208   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_NOP) /* Interrupt Acknowledge */
208   AM_RANGE(0x3000, 0x3000) AM_WRITENOP /* Interrupt Acknowledge */
209209   AM_RANGE(0x4000, 0x4000) AM_READ(atarifb_in0_r)
210210   AM_RANGE(0x4002, 0x4002) AM_READ(atarifb_in2_r)
211211   AM_RANGE(0x5000, 0x5000) AM_WRITE(watchdog_reset_w)
r4470r4471
224224   AM_RANGE(0x1000, 0x1000) AM_WRITE(SMH_RAM) AM_BASE(&atarifb_scroll_register) /* OUT 0 */
225225   AM_RANGE(0x1001, 0x1001) AM_WRITE(soccer_out1_w) /* OUT 1 */
226226   AM_RANGE(0x1002, 0x1002) AM_WRITE(soccer_out2_w) /* OUT 2 */
227   AM_RANGE(0x1004, 0x1004) AM_WRITE(SMH_NOP) /* Interrupt Acknowledge */
227   AM_RANGE(0x1004, 0x1004) AM_WRITENOP /* Interrupt Acknowledge */
228228   AM_RANGE(0x1005, 0x1005) AM_WRITE(watchdog_reset_w)
229229   AM_RANGE(0x1800, 0x1800) AM_READ(atarifb4_in0_r)
230230   AM_RANGE(0x1801, 0x1801) AM_READ_PORT("EXTRA")
src/mame/drivers/lethal.c
r4470r4471
485485   AM_RANGE(0x2000, 0x3fff) AM_RAM            // work RAM
486486   AM_RANGE(0x4000, 0x403f) AM_WRITE(K056832_w)
487487   AM_RANGE(0x4040, 0x404f) AM_WRITE(K056832_b_w)
488   AM_RANGE(0x4080, 0x4080) AM_READ(SMH_NOP)      // watchdog
488   AM_RANGE(0x4080, 0x4080) AM_READNOP      // watchdog
489489   AM_RANGE(0x4090, 0x4090) AM_READNOP
490490   AM_RANGE(0x40a0, 0x40a0) AM_READNOP
491491   AM_RANGE(0x40c4, 0x40c4) AM_WRITE(control2_w)
src/mame/drivers/tecmo16.c
r4470r4471
6868
6969/******************************************************************************/
7070
71static ADDRESS_MAP_START( fstarfrc_readmem, ADDRESS_SPACE_PROGRAM, 16 )
72   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
73   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
74   AM_RANGE(0x110000, 0x110fff) AM_READ(SMH_RAM)
75   AM_RANGE(0x120000, 0x1207ff) AM_READ(SMH_RAM)
76   AM_RANGE(0x120800, 0x120fff) AM_READ(SMH_RAM)
77   AM_RANGE(0x121000, 0x1217ff) AM_READ(SMH_RAM)
78   AM_RANGE(0x121800, 0x121fff) AM_READ(SMH_RAM)
79   AM_RANGE(0x122000, 0x127fff) AM_READ(SMH_RAM)
80   AM_RANGE(0x130000, 0x130fff) AM_READ(SMH_RAM)
81   AM_RANGE(0x140000, 0x141fff) AM_READ(SMH_RAM)
82   AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2")
83   AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
84   AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2")
85ADDRESS_MAP_END
86
87static ADDRESS_MAP_START( fstarfrc_writemem, ADDRESS_SPACE_PROGRAM, 16 )
88   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
89   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)   /* Main RAM */
90   AM_RANGE(0x110000, 0x110fff) AM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram)
91   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram)
92   AM_RANGE(0x120800, 0x120fff) AM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram)
93   AM_RANGE(0x121000, 0x1217ff) AM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2)
94   AM_RANGE(0x121800, 0x121fff) AM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2)
95   AM_RANGE(0x122000, 0x127fff) AM_WRITE(SMH_RAM)   /* work area */
96   AM_RANGE(0x130000, 0x130fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
97   AM_RANGE(0x140000, 0x141fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
71static ADDRESS_MAP_START( fstarfrc_map, ADDRESS_SPACE_PROGRAM, 16 )
72   AM_RANGE(0x000000, 0x07ffff) AM_ROM
73   AM_RANGE(0x100000, 0x103fff) AM_RAM   /* Main RAM */
74   AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram)
75   AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram)
76   AM_RANGE(0x120800, 0x120fff) AM_RAM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram)
77   AM_RANGE(0x121000, 0x1217ff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2)
78   AM_RANGE(0x121800, 0x121fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2)
79   AM_RANGE(0x122000, 0x127fff) AM_RAM   /* work area */
80   AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
81   AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
9882   AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
9983   AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
100   AM_RANGE(0x150030, 0x150031) AM_WRITE(SMH_NOP)   /* ??? */
84   AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP   /* ??? */
85   AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
86   AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2")
10187   AM_RANGE(0x160000, 0x160001) AM_WRITE(tecmo16_scroll_char_x_w)
10288   AM_RANGE(0x16000c, 0x16000d) AM_WRITE(tecmo16_scroll_x_w)
10389   AM_RANGE(0x160012, 0x160013) AM_WRITE(tecmo16_scroll_y_w)
r4470r4471
10591   AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w)
10692ADDRESS_MAP_END
10793
108static ADDRESS_MAP_START( ginkun_readmem, ADDRESS_SPACE_PROGRAM, 16 )
109   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
110   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
111   AM_RANGE(0x110000, 0x110fff) AM_READ(SMH_RAM)
112   AM_RANGE(0x120000, 0x120fff) AM_READ(SMH_RAM)
113   AM_RANGE(0x121000, 0x121fff) AM_READ(SMH_RAM)
114   AM_RANGE(0x122000, 0x122fff) AM_READ(SMH_RAM)
115   AM_RANGE(0x123000, 0x123fff) AM_READ(SMH_RAM)
116   AM_RANGE(0x124000, 0x124fff) AM_READ(SMH_RAM)
117   AM_RANGE(0x130000, 0x130fff) AM_READ(SMH_RAM)
118   AM_RANGE(0x140000, 0x141fff) AM_READ(SMH_RAM)
119   AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA")
120   AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2")
121   AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
122   AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2")
123ADDRESS_MAP_END
124
125static ADDRESS_MAP_START( ginkun_writemem, ADDRESS_SPACE_PROGRAM, 16 )
126   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
127   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)   /* Main RAM */
128   AM_RANGE(0x110000, 0x110fff) AM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram)
129   AM_RANGE(0x120000, 0x120fff) AM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram)
130   AM_RANGE(0x121000, 0x121fff) AM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram)
131   AM_RANGE(0x122000, 0x122fff) AM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2)
132   AM_RANGE(0x123000, 0x123fff) AM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2)
133   AM_RANGE(0x124000, 0x124fff) AM_WRITE(SMH_RAM)   /* extra RAM for Riot */
134   AM_RANGE(0x130000, 0x130fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
135   AM_RANGE(0x140000, 0x141fff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
94static ADDRESS_MAP_START( ginkun_map, ADDRESS_SPACE_PROGRAM, 16 )
95   AM_RANGE(0x000000, 0x07ffff) AM_ROM
96   AM_RANGE(0x100000, 0x103fff) AM_RAM   /* Main RAM */
97   AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE(tecmo16_charram_w) AM_BASE(&tecmo16_charram)
98   AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE(tecmo16_videoram_w) AM_BASE(&tecmo16_videoram)
99   AM_RANGE(0x121000, 0x121fff) AM_RAM_WRITE(tecmo16_colorram_w) AM_BASE(&tecmo16_colorram)
100   AM_RANGE(0x122000, 0x122fff) AM_RAM_WRITE(tecmo16_videoram2_w) AM_BASE(&tecmo16_videoram2)
101   AM_RANGE(0x123000, 0x123fff) AM_RAM_WRITE(tecmo16_colorram2_w) AM_BASE(&tecmo16_colorram2)
102   AM_RANGE(0x124000, 0x124fff) AM_RAM   /* extra RAM for Riot */
103   AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
104   AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
136105   AM_RANGE(0x150000, 0x150001) AM_WRITE(tecmo16_flipscreen_w)
137106   AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
138   AM_RANGE(0x150020, 0x150021) AM_WRITE(SMH_NOP)   /* ??? */
139   AM_RANGE(0x150030, 0x150031) AM_WRITE(SMH_NOP)   /* ??? */
107   AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") AM_WRITENOP   /* ??? */
108   AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP   /* ??? */
109   AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
110   AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2")
140111   AM_RANGE(0x160000, 0x160001) AM_WRITE(tecmo16_scroll_char_x_w)
141112   AM_RANGE(0x160006, 0x160007) AM_WRITE(tecmo16_scroll_char_y_w)
142113   AM_RANGE(0x16000c, 0x16000d) AM_WRITE(tecmo16_scroll_x_w)
r4470r4471
145116   AM_RANGE(0x16001e, 0x16001f) AM_WRITE(tecmo16_scroll2_y_w)
146117ADDRESS_MAP_END
147118
148static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
149   AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM)
150   AM_RANGE(0xf000, 0xfbff) AM_READ(SMH_RAM)   /* Sound RAM */
151   AM_RANGE(0xfc00, 0xfc00) AM_DEVREAD("oki", okim6295_r)
152   AM_RANGE(0xfc04, 0xfc05) AM_DEVREAD("ym", ym2151_r)
119static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
120   AM_RANGE(0x0000, 0xefff) AM_ROM
121   AM_RANGE(0xf000, 0xfbff) AM_RAM   /* Sound RAM */
122   AM_RANGE(0xfc00, 0xfc00) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
123   AM_RANGE(0xfc04, 0xfc05) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
153124   AM_RANGE(0xfc08, 0xfc08) AM_READ(soundlatch_r)
154   AM_RANGE(0xfc0c, 0xfc0c) AM_READ(SMH_NOP)
155   AM_RANGE(0xfffe, 0xffff) AM_READ(SMH_RAM)
125   AM_RANGE(0xfc0c, 0xfc0c) AM_NOP
126   AM_RANGE(0xfffe, 0xffff) AM_RAM
156127ADDRESS_MAP_END
157128
158static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
159   AM_RANGE(0x0000, 0xefff) AM_WRITE(SMH_ROM)
160   AM_RANGE(0xf000, 0xfbff) AM_WRITE(SMH_RAM)   /* Sound RAM */
161   AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("oki", okim6295_w)
162   AM_RANGE(0xfc04, 0xfc05) AM_DEVWRITE("ym", ym2151_w)
163   AM_RANGE(0xfc0c, 0xfc0c) AM_WRITE(SMH_NOP)
164   AM_RANGE(0xfffe, 0xffff) AM_WRITE(SMH_RAM)
165ADDRESS_MAP_END
166
167129/******************************************************************************/
168130
169131static INPUT_PORTS_START( fstarfrc )
r4470r4471
440402
441403   /* basic machine hardware */
442404   MDRV_CPU_ADD("maincpu", M68000,24000000/2)         /* 12MHz */
443   MDRV_CPU_PROGRAM_MAP(fstarfrc_readmem,fstarfrc_writemem)
405   MDRV_CPU_PROGRAM_MAP(fstarfrc_map,0)
444406   MDRV_CPU_VBLANK_INT("screen", irq5_line_hold)
445407
446408   MDRV_CPU_ADD("audiocpu", Z80,8000000/2)         /* 4MHz */
447   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
409   MDRV_CPU_PROGRAM_MAP(sound_map,0)
448410                        /* NMIs are triggered by the main CPU */
449411   MDRV_QUANTUM_TIME(HZ(600))
450412
r4470r4471
477439MACHINE_DRIVER_END
478440
479441static MACHINE_DRIVER_START( ginkun )
442   MDRV_IMPORT_FROM(fstarfrc)
480443
481   /* basic machine hardware */
482   MDRV_CPU_ADD("maincpu", M68000,24000000/2)         /* 12MHz */
483   MDRV_CPU_PROGRAM_MAP(ginkun_readmem,ginkun_writemem)
484   MDRV_CPU_VBLANK_INT("screen", irq5_line_hold)
444   MDRV_CPU_MODIFY("maincpu")
445   MDRV_CPU_PROGRAM_MAP(ginkun_map,0)
485446
486   MDRV_CPU_ADD("audiocpu", Z80,8000000/2)         /* 4MHz */
487   MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
488                        /* NMIs are triggered by the main CPU */
489   MDRV_QUANTUM_TIME(HZ(600))
490
491   /* video hardware */
492   MDRV_SCREEN_ADD("screen", RASTER)
493   MDRV_SCREEN_REFRESH_RATE(60)
494   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
495   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_RGB32)
496   MDRV_SCREEN_SIZE(32*8, 32*8)
497   MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
498
499   MDRV_GFXDECODE(tecmo16)
500   MDRV_PALETTE_LENGTH(4096)
501
502447   MDRV_VIDEO_START(ginkun)
503   MDRV_VIDEO_UPDATE(tecmo16)
504
505   /* sound hardware */
506   MDRV_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
507
508   MDRV_SOUND_ADD("ym", YM2151, 8000000/2)
509   MDRV_SOUND_CONFIG(ym2151_config)
510   MDRV_SOUND_ROUTE(0, "lspeaker", 0.60)
511   MDRV_SOUND_ROUTE(1, "rspeaker", 0.60)
512
513   MDRV_SOUND_ADD("oki", OKIM6295, 999900)
514   MDRV_SOUND_CONFIG(okim6295_interface_pin7high) // clock frequency & pin 7 not verified
515   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40)
516   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40)
517448MACHINE_DRIVER_END
518449
519450static MACHINE_DRIVER_START( riot )
src/mame/drivers/murogmbl.c
r0r4471
1/* Unknown - Poker (morugem
2
3driver by Roberto Zandona'
4thanks to Angelo Salese for some precious advice
5
6TO DO:
7- check sound
8
9Anno: 1982
10Produttore:
11N.revisione:
12
13CPU:
141x unknown DIP40 (1ef)(missing)
151x TBA820 (14e)(sound)
161x oscillator 12.000 (2f)
17
18ROMs:
192x TMS2532 (5b,5e)
201x TMS2516 (8b)
211x PROM SN74S288N (8a)
221x RAM MWS5101AEL2 (11e)
234x RAM AM9114EPC (2b,3b,8e,9e)
24
25Note:
261x 22x2 edge connector
271x trimmer (volume)
281x 8x2 switches dip
291x empty DIP14 socket (close to sound)
30
31Funzionamento: Non Funzionante
32
33Dumped: 06/04/2009 f205v
34*/
35
36#include "driver.h"
37#include "cpu/z80/z80.h"
38#include "sound/dac.h"
39
40static UINT8* murogmbl_video;
41
42static PALETTE_INIT( murogmbl )
43{
44   int   bit0, bit1, bit2 , r, g, b;
45   int   i;
46
47   for (i = 0; i < 0x20; ++i)
48   {
49      bit0 = (color_prom[0] >> 0) & 0x01;
50      bit1 = (color_prom[0] >> 1) & 0x01;
51      bit2 = (color_prom[0] >> 2) & 0x01;
52      r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
53      bit0 = (color_prom[0] >> 3) & 0x01;
54      bit1 = (color_prom[0] >> 4) & 0x01;
55      bit2 = (color_prom[0] >> 5) & 0x01;
56      g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
57      bit0 = 0;
58      bit1 = (color_prom[0] >> 6) & 0x01;
59      bit2 = (color_prom[0] >> 7) & 0x01;
60      b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
61
62      palette_set_color(machine, i, MAKE_RGB(r, g, b));
63      color_prom++;
64   }
65}
66
67static ADDRESS_MAP_START( murogmbl_map, ADDRESS_SPACE_PROGRAM, 8 )
68   AM_RANGE(0x0000, 0x1fFf) AM_ROM
69   AM_RANGE(0x4000, 0x43ff) AM_RAM
70   AM_RANGE(0x4800, 0x4bff) AM_RAM
71   AM_RANGE(0x5800, 0x5bff) AM_RAM AM_BASE(&murogmbl_video)
72   AM_RANGE(0x5c00, 0x5fff) AM_RAM
73   AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
74   AM_RANGE(0x6800, 0x6800) AM_READ_PORT("DSW")
75   AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN1")
76   AM_RANGE(0x7800, 0x7800) AM_READNOP AM_DEVWRITE("dac1", dac_w) /* read is always discarded */
77ADDRESS_MAP_END
78
79static VIDEO_START(murogmbl)
80{
81
82}
83
84static VIDEO_UPDATE(murogmbl)
85{
86   const gfx_element *gfx = screen->machine->gfx[0];
87   int count = 0;
88
89   int y, x;
90
91   for (y = 0; y < 32; y++)
92   {
93      for (x = 0; x < 32; x++)
94      {
95         int tile = murogmbl_video[count];
96         drawgfx(bitmap, gfx, tile, 0, 0, 0, x * 8, y * 8, cliprect, TRANSPARENCY_NONE, 0);
97
98         count++;
99      }
100   }
101   return 0;
102}
103
104static INPUT_PORTS_START( murogmbl )
105   PORT_START("IN0")
106   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Clear")      PORT_CODE(KEYCODE_A)
107   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Replay")      PORT_CODE(KEYCODE_2)
108   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1  ) PORT_NAME("Deal")
109   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Hold 5")      PORT_CODE(KEYCODE_B)
110   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_NAME("Coin clear")   PORT_CODE(KEYCODE_S)
111   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
112   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_COIN1   ) PORT_NAME("Coin 1")
113   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN2   ) PORT_NAME("Coin 2")
114
115   PORT_START("IN1")
116   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Hold 1")      PORT_CODE(KEYCODE_Z)
117   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Hold 2")      PORT_CODE(KEYCODE_X)
118   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Hold 3")      PORT_CODE(KEYCODE_C)
119   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Hold 4")      PORT_CODE(KEYCODE_V)
120   PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
121   PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
122   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
123   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
124
125   PORT_START("DSW")
126   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
127   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
128   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
129   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
130   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
131   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
132   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
133   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
134   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
135   PORT_DIPNAME( 0x08, 0x08, "Coin 2" )
136   PORT_DIPSETTING(    0x08, "10 credits" )
137   PORT_DIPSETTING(    0x00, "5 credits" )
138   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
139   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
140   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
141   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
142   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
143   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
144   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
145   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
146   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
147   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
148   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
149   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
150INPUT_PORTS_END
151
152static const gfx_layout layout8x8x2 =
153{
154    8,8,
155    RGN_FRAC(1,2),
156    2,
157    {
158      RGN_FRAC(0,2),RGN_FRAC(1,2)
159    },
160    { STEP8(0,1) },
161    { STEP8(0,8) },
162    8*8
163};
164
165static GFXDECODE_START( murogmbl )
166   GFXDECODE_ENTRY( "gfx1", 0, layout8x8x2,  0x0, 1 )
167GFXDECODE_END
168
169static MACHINE_DRIVER_START( murogmbl )
170   /* basic machine hardware */
171   MDRV_CPU_ADD("maincpu", Z80, 1000000) /* Z80? */
172   MDRV_CPU_PROGRAM_MAP(murogmbl_map, 0)
173
174   MDRV_GFXDECODE(murogmbl)
175
176   MDRV_PALETTE_INIT(murogmbl)
177
178    /* video hardware */
179   MDRV_SCREEN_ADD("screen", RASTER)
180   MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
181   MDRV_SCREEN_REFRESH_RATE(60)
182   MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
183   MDRV_SCREEN_SIZE(64*8, 32*8)
184   MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
185
186   MDRV_PALETTE_LENGTH(0x100)
187
188   MDRV_VIDEO_START(murogmbl)
189   MDRV_VIDEO_UPDATE(murogmbl)
190
191   MDRV_SPEAKER_STANDARD_MONO("mono")
192   MDRV_SOUND_ADD("dac1", DAC, 0)
193   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
194MACHINE_DRIVER_END
195
196
197
198ROM_START(murogmbl)
199   ROM_REGION( 0x10000, "maincpu", 0 )
200   ROM_LOAD("2532.5e",   0x0000, 0x1000, CRC(093d4560) SHA1(d5401b5f7a2ebe5099fefc5b09f8710886e243b2) )
201
202   ROM_REGION( 0x1000, "gfx1", 0 )
203   ROM_LOAD("2532.8b",   0x0000, 0x0800, CRC(4427ffc0) SHA1(45f5fd0ae967cdb6abbf2e6c6d12d787556488ef) )
204   ROM_CONTINUE(0x0000, 0x0800)
205   ROM_LOAD("2516.5b",    0x0800, 0x0800, CRC(496ad48c) SHA1(28380c9d02b64e7d5ef2763de92cd2ca8861eceb) )
206
207   ROM_REGION( 0x0020, "proms", 0 )
208   ROM_LOAD( "74s288.a8",   0x0000, 0x0020, CRC(fc35201c) SHA1(4549e228c48992e0d10957f029b89a547392e72b) )
209ROM_END
210
211GAME( 1982, murogmbl,  murogem,   murogmbl, murogmbl, 0, ROT0, "bootleg", "Murogem Monaco (bootleg)?", GAME_NO_SOUND )
src/mame/drivers/runaway.c
r4470r4471
106106   AM_RANGE(0x1400, 0x143F) AM_DEVWRITE("earom", atari_vg_earom_w)
107107   AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("earom", atari_vg_earom_ctrl_w)
108108   AM_RANGE(0x1c00, 0x1c0f) AM_WRITE(runaway_paletteram_w)
109   AM_RANGE(0x2000, 0x2000) AM_WRITE(SMH_NOP) /* coin counter? */
110   AM_RANGE(0x2001, 0x2001) AM_WRITE(SMH_NOP) /* coin counter? */
109   AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* coin counter? */
110   AM_RANGE(0x2001, 0x2001) AM_WRITENOP /* coin counter? */
111111   AM_RANGE(0x2003, 0x2004) AM_WRITE(runaway_led_w)
112112   AM_RANGE(0x2005, 0x2005) AM_WRITE(runaway_tile_bank_w)
113113   AM_RANGE(0x6000, 0x600f) AM_DEVWRITE("pokey1", pokey_w)
src/mame/drivers/toypop.c
r4470r4471
130130static UINT8 *toypop_m68000_sharedram;
131131
132132
133static READ8_HANDLER( toypop_sound_sharedram_r )
133static READ8_DEVICE_HANDLER( toypop_sound_sharedram_r )
134134{
135135   return namco_soundregs[offset];
136136}
r4470r4471
252252 *
253253 *************************************/
254254
255static ADDRESS_MAP_START( readmem_mainCPU_liblrabl, ADDRESS_SPACE_PROGRAM, 8 )
256   AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_RAM)                        /* RAM everywhere else */
257   AM_RANGE(0x6000, 0x63ff) AM_READ(toypop_sound_sharedram_r)            /* shared RAM with sound CPU */
258   AM_RANGE(0x6800, 0x683f) AM_READ(namcoio_r)                        /* custom I/O */
259   AM_RANGE(0x7800, 0x7800) AM_READ(watchdog_reset_r)                  /* not sure; this is NOT irq enable (game crashes otherwise) */
260   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)                        /* ROM code */
261ADDRESS_MAP_END
262
263static ADDRESS_MAP_START( readmem_mainCPU_toypop, ADDRESS_SPACE_PROGRAM, 8 )
264   AM_RANGE(0x0000, 0x2fff) AM_READ(SMH_RAM)                        /* RAM everywhere else */
265   AM_RANGE(0x6000, 0x603f) AM_READ(namcoio_r)                        /* custom I/O */
266   AM_RANGE(0x6800, 0x6bff) AM_READ(toypop_sound_sharedram_r)            /* shared RAM with sound CPU */
267   AM_RANGE(0x7000, 0x7000) AM_READ(toypop_main_interrupt_enable_r)         /* enable interrupt?? */
268   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)                        /* ROM code */
269ADDRESS_MAP_END
270
271static ADDRESS_MAP_START( writemem_mainCPU_liblrabl, ADDRESS_SPACE_PROGRAM, 8 )
272   AM_RANGE(0x0000, 0x07ff) AM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram)   /* video RAM */
273   AM_RANGE(0x0800, 0x0f7f) AM_WRITE(SMH_RAM)                        /* general RAM, area 1 */
274   AM_RANGE(0x0f80, 0x0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)               /* sprite RAM, area 1 */
275   AM_RANGE(0x1000, 0x177f) AM_WRITE(SMH_RAM)                        /* general RAM, area 2 */
276   AM_RANGE(0x1780, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)               /* sprite RAM, area 2 */
277   AM_RANGE(0x1800, 0x1f7f) AM_WRITE(SMH_RAM)                        /* general RAM, area 3 */
278   AM_RANGE(0x1f80, 0x1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3)               /* sprite RAM, area 3 */
279   AM_RANGE(0x2800, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_m68000_sharedram)      /* shared RAM with the 68000 CPU */
280   AM_RANGE(0x6000, 0x63ff) AM_DEVWRITE("namco", toypop_sound_sharedram_w)            /* shared RAM with sound CPU */
281   AM_RANGE(0x6800, 0x683f) AM_WRITE(namcoio_w)                        /* custom I/O */
282   AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_enable_w)         /* enable interrupt */
283   AM_RANGE(0x7800, 0x7800) AM_WRITE(toypop_main_interrupt_disable_w)      /* disable interrupt */
284   AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w)               /* reset 68000 */
285   AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w)               /* reset 68000 */
255static ADDRESS_MAP_START( liblrabl_map, ADDRESS_SPACE_PROGRAM, 8 )
256   AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram)   /* video RAM */
257   AM_RANGE(0x0800, 0x0f7f) AM_RAM                                 /* general RAM, area 1 */
258   AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE(&spriteram)                  /* sprite RAM, area 1 */
259   AM_RANGE(0x1000, 0x177f) AM_RAM                                 /* general RAM, area 2 */
260   AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE(&spriteram_2)               /* sprite RAM, area 2 */
261   AM_RANGE(0x1800, 0x1f7f) AM_RAM                                 /* general RAM, area 3 */
262   AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE(&spriteram_3)               /* sprite RAM, area 3 */
263   AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram)      /* shared RAM with the 68000 CPU */
264   AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */
265   AM_RANGE(0x6800, 0x683f) AM_READWRITE(namcoio_r, namcoio_w)            /* custom I/O */
266   AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_enable_w)      /* enable interrupt */
267   AM_RANGE(0x7800, 0x7800) AM_READWRITE(watchdog_reset_r, toypop_main_interrupt_disable_w) /* disable interrupt */
268   AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w)            /* reset 68000 */
269   AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w)            /* reset 68000 */
286270   AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w)               /* sound CPU reset */
287   AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w)               /* sound CPU reset */
271   AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w)            /* sound CPU reset */
288272   AM_RANGE(0xa000, 0xa001) AM_WRITE(toypop_palettebank_w)               /* background image palette */
289   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)                        /* ROM code */
273   AM_RANGE(0x8000, 0xffff) AM_ROM                                 /* ROM code */
290274ADDRESS_MAP_END
291275
292static ADDRESS_MAP_START( writemem_mainCPU_toypop, ADDRESS_SPACE_PROGRAM, 8 )
293   AM_RANGE(0x0000, 0x07ff) AM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram)   /* video RAM */
294   AM_RANGE(0x0800, 0x0f7f) AM_WRITE(SMH_RAM)                        /* general RAM, area 1 */
295   AM_RANGE(0x0f80, 0x0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)               /* sprite RAM, area 1 */
296   AM_RANGE(0x1000, 0x177f) AM_WRITE(SMH_RAM)                        /* general RAM, area 2 */
297   AM_RANGE(0x1780, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)               /* sprite RAM, area 2 */
298   AM_RANGE(0x1800, 0x1f7f) AM_WRITE(SMH_RAM)                        /* general RAM, area 3 */
299   AM_RANGE(0x1f80, 0x1fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_3)               /* sprite RAM, area 3 */
300   AM_RANGE(0x2800, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_m68000_sharedram)      /* shared RAM with the 68000 CPU */
301   AM_RANGE(0x6000, 0x603f) AM_WRITE(namcoio_w)                        /* custom I/O */
302   AM_RANGE(0x6800, 0x6bff) AM_DEVWRITE("namco", toypop_sound_sharedram_w)            /* shared RAM with sound CPU */
303   AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_disable_w)      /* disable interrupt */
304   AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w)               /* reset 68000 */
305   AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w)               /* reset 68000 */
276static ADDRESS_MAP_START( toypop_map, ADDRESS_SPACE_PROGRAM, 8 )
277   AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(toypop_videoram_w) AM_BASE(&toypop_videoram)   /* video RAM */
278   AM_RANGE(0x0800, 0x0f7f) AM_RAM                                 /* general RAM, area 1 */
279   AM_RANGE(0x0f80, 0x0fff) AM_RAM AM_BASE(&spriteram)                  /* sprite RAM, area 1 */
280   AM_RANGE(0x1000, 0x177f) AM_RAM                                 /* general RAM, area 2 */
281   AM_RANGE(0x1780, 0x17ff) AM_RAM AM_BASE(&spriteram_2)               /* sprite RAM, area 2 */
282   AM_RANGE(0x1800, 0x1f7f) AM_RAM                                 /* general RAM, area 3 */
283   AM_RANGE(0x1f80, 0x1fff) AM_RAM AM_BASE(&spriteram_3)               /* sprite RAM, area 3 */
284   AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(&toypop_m68000_sharedram)      /* shared RAM with the 68000 CPU */
285   AM_RANGE(0x6000, 0x603f) AM_READWRITE(namcoio_r, namcoio_w)            /* custom I/O */
286   AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) /* shared RAM with sound CPU */
287   AM_RANGE(0x7000, 0x7000) AM_READWRITE(toypop_main_interrupt_enable_r, toypop_main_interrupt_disable_w) /* disable interrupt */
288   AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w)            /* reset 68000 */
289   AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w)            /* reset 68000 */
306290   AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w)               /* sound CPU reset */
307   AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w)               /* sound CPU reset */
291   AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w)            /* sound CPU reset */
308292   AM_RANGE(0xa000, 0xa001) AM_WRITE(toypop_palettebank_w)               /* background image palette */
309   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)                        /* ROM code */
293   AM_RANGE(0x8000, 0xffff) AM_ROM                                 /* ROM code */
310294ADDRESS_MAP_END
311295
312296
r4470r4471
316300 *
317301 *************************************/
318302
319static ADDRESS_MAP_START( readmem_soundCPU, ADDRESS_SPACE_PROGRAM, 8 )
320   AM_RANGE(0x0000, 0x03ff) AM_READ(toypop_sound_sharedram_r)
321   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)
322ADDRESS_MAP_END
323
324static ADDRESS_MAP_START( writemem_soundCPU, ADDRESS_SPACE_PROGRAM, 8 )
325   AM_RANGE(0x0000, 0x03ff) AM_DEVWRITE("namco", toypop_sound_sharedram_w) AM_BASE(&namco_soundregs)   /* shared RAM with the main CPU + sound registers */
303static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
304   AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE("namco", toypop_sound_sharedram_r, toypop_sound_sharedram_w) AM_BASE(&namco_soundregs)   /* shared RAM with the main CPU + sound registers */
326305   AM_RANGE(0x2000, 0x2000) AM_WRITE(toypop_sound_interrupt_disable_w)   /* ??? toypop doesn't write here */
327306   AM_RANGE(0x4000, 0x4000) AM_WRITE(toypop_sound_interrupt_enable_acknowledge_w)
328307   AM_RANGE(0x6000, 0x6000) AM_WRITE(watchdog_reset_w)
329   AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM)
308   AM_RANGE(0xe000, 0xffff) AM_ROM
330309ADDRESS_MAP_END
331310
332311
r4470r4471
337316 *
338317 *************************************/
339318
340static ADDRESS_MAP_START( readmem_68k, ADDRESS_SPACE_PROGRAM, 16 )
341   AM_RANGE(0x000000, 0x007fff) AM_READ(SMH_ROM)            // ROM code
342   AM_RANGE(0x080000, 0x0bffff) AM_READ(SMH_RAM)            // RAM
343   AM_RANGE(0x100000, 0x100fff) AM_READ(toypop_m68000_sharedram_r)   // shared RAM with the main CPU
344   AM_RANGE(0x180000, 0x187fff) AM_READ(toypop_merged_background_r)   // RAM merged with the background image
345   AM_RANGE(0x190000, 0x1dffff) AM_READ(SMH_RAM)            // RAM containing the background image
319static ADDRESS_MAP_START( m68k_map, ADDRESS_SPACE_PROGRAM, 16 )
320   AM_RANGE(0x000000, 0x007fff) AM_ROM                              /* ROM code */
321   AM_RANGE(0x080000, 0x0bffff) AM_RAM                              /* RAM */
322   AM_RANGE(0x100000, 0x100fff) AM_READWRITE(toypop_m68000_sharedram_r, toypop_m68000_sharedram_w)   /* shared RAM with the main CPU */
323   AM_RANGE(0x180000, 0x187fff) AM_READWRITE(toypop_merged_background_r, toypop_merged_background_w) /* RAM that has to be merged with the background image */
324   AM_RANGE(0x18fffc, 0x18ffff) AM_WRITE(toypop_flipscreen_w)            /* flip mode */
325   AM_RANGE(0x190000, 0x1dffff) AM_RAM AM_BASE(&toypop_bg_image)         /* RAM containing the background image */
326   AM_RANGE(0x300000, 0x300001) AM_WRITE(toypop_m68000_interrupt_enable_w)   /* interrupt enable */
327   AM_RANGE(0x380000, 0x380001) AM_WRITE(toypop_m68000_interrupt_disable_w)/* interrupt disable */
346328ADDRESS_MAP_END
347329
348static ADDRESS_MAP_START( writemem_68k, ADDRESS_SPACE_PROGRAM, 16 )
349   AM_RANGE(0x000000, 0x007fff) AM_WRITE(SMH_ROM)                  /* ROM code */
350   AM_RANGE(0x080000, 0x0bffff) AM_WRITE(SMH_RAM)                  /* RAM */
351   AM_RANGE(0x100000, 0x100fff) AM_WRITE(toypop_m68000_sharedram_w)      /* shared RAM with the main CPU */
352   AM_RANGE(0x180000, 0x187fff) AM_WRITE(toypop_merged_background_w)      /* RAM that has to be merged with the background image */
353   AM_RANGE(0x18fffc, 0x18ffff) AM_WRITE(toypop_flipscreen_w)         /* flip mode */
354   AM_RANGE(0x190000, 0x1dffff) AM_WRITE(SMH_RAM) AM_BASE(&toypop_bg_image)         /* RAM containing the background image */
355   AM_RANGE(0x300000, 0x300001) AM_WRITE(toypop_m68000_interrupt_enable_w)      /* interrupt enable */
356   AM_RANGE(0x380000, 0x380001) AM_WRITE(toypop_m68000_interrupt_disable_w)      /* interrupt disable */
357ADDRESS_MAP_END
358330
359331
360
361332static INPUT_PORTS_START( liblrabl )
362333   /* The inputs are not memory mapped, they are handled by three I/O chips. */
363334   PORT_START("INPUT_RIGHT")   /* 58XX #0 pins 22-29 */
r4470r4471
571542
572543   /* basic machine hardware */
573544   MDRV_CPU_ADD("maincpu", M6809, 1536000)   /* 1.536 MHz (measured on Libble Rabble board) */
574   MDRV_CPU_PROGRAM_MAP(readmem_mainCPU_liblrabl,writemem_mainCPU_liblrabl)
545   MDRV_CPU_PROGRAM_MAP(liblrabl_map,0)
575546   MDRV_CPU_VBLANK_INT("screen", toypop_main_interrupt)
576547
577548   MDRV_CPU_ADD("audiocpu", M6809, 1536000)
578   MDRV_CPU_PROGRAM_MAP(readmem_soundCPU,writemem_soundCPU)
549   MDRV_CPU_PROGRAM_MAP(sound_map,0)
579550   MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
580551
581552   MDRV_CPU_ADD("sub", M68000, 6144000)   /* 6.144 MHz (measured on Libble Rabble board) */
582   MDRV_CPU_PROGRAM_MAP(readmem_68k,writemem_68k)
553   MDRV_CPU_PROGRAM_MAP(m68k_map,0)
583554   MDRV_CPU_VBLANK_INT("screen", toypop_m68000_interrupt)
584555
585556   MDRV_QUANTUM_TIME(HZ(6000))    /* 100 CPU slices per frame - an high value to ensure proper */
r4470r4471
614585   /* basic machine hardware */
615586   MDRV_IMPORT_FROM(liblrabl)
616587   MDRV_CPU_MODIFY("maincpu")
617   MDRV_CPU_PROGRAM_MAP(readmem_mainCPU_toypop,writemem_mainCPU_toypop)
588   MDRV_CPU_PROGRAM_MAP(toypop_map,0)
618589MACHINE_DRIVER_END
619590
620591
src/mame/drivers/tumbleb.c
r4470r4471
673673   AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */
674674   AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */
675675   AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
676   AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
676   AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
677677   AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
678678   AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w)
679679   AM_RANGE(0x320000, 0x320fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data)
680680   AM_RANGE(0x322000, 0x322fff) AM_WRITE(tumblepb_pf2_data_w) AM_BASE(&tumblepb_pf2_data)
681   AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */
682   AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */
683   AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP)
684   AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP)
681   AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */
682   AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */
683   AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP
684   AM_RANGE(0x342400, 0x34247f) AM_WRITENOP
685685ADDRESS_MAP_END
686686
687687static ADDRESS_MAP_START( fncywld_main_map, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
697697   AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* sprites */
698698   AM_RANGE(0x160800, 0x16080f) AM_WRITE(SMH_RAM) /* goes slightly past the end of spriteram? */
699699   AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
700   AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
700   AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
701701   AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
702702   AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w)
703703   AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE(fncywld_pf1_data_w) AM_BASE(&tumblepb_pf1_data)
704704   AM_RANGE(0x322000, 0x323fff) AM_RAM_WRITE(fncywld_pf2_data_w) AM_BASE(&tumblepb_pf2_data)
705   AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */
706   AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */
707   AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP)
708   AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP)
705   AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */
706   AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */
707   AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP
708   AM_RANGE(0x342400, 0x34247f) AM_WRITENOP
709709   AM_RANGE(0xff0000, 0xffffff) AM_RAM
710710ADDRESS_MAP_END
711711
r4470r4471
723723   AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
724724   AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */
725725   AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
726   AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
726   AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
727727   AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM
728728   AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w)
729729   AM_RANGE(0x320000, 0x321fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data)
r4470r4471
859859   AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* Bootleg sprite buffer */
860860   AM_RANGE(0x160800, 0x160807) AM_WRITE(SMH_RAM) /* writes past the end of spriteram */
861861   AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
862   AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
862   AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
863863   AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
864864   AM_RANGE(0x300000, 0x30000f) AM_WRITE(tumblepb_control_0_w)
865865   AM_RANGE(0x320000, 0x320fff) AM_WRITE(tumblepb_pf1_data_w) AM_BASE(&tumblepb_pf1_data)
866866   AM_RANGE(0x322000, 0x322fff) AM_WRITE(tumblepb_pf2_data_w) AM_BASE(&tumblepb_pf2_data)
867   AM_RANGE(0x340000, 0x3401ff) AM_WRITE(SMH_NOP) /* Unused row scroll */
868   AM_RANGE(0x340400, 0x34047f) AM_WRITE(SMH_NOP) /* Unused col scroll */
869   AM_RANGE(0x342000, 0x3421ff) AM_WRITE(SMH_NOP)
870   AM_RANGE(0x342400, 0x34247f) AM_WRITE(SMH_NOP)
867   AM_RANGE(0x340000, 0x3401ff) AM_WRITENOP /* Unused row scroll */
868   AM_RANGE(0x340400, 0x34047f) AM_WRITENOP /* Unused col scroll */
869   AM_RANGE(0x342000, 0x3421ff) AM_WRITENOP
870   AM_RANGE(0x342400, 0x34247f) AM_WRITENOP
871871ADDRESS_MAP_END
872872
873873static WRITE8_HANDLER( jumpkids_oki_bank_w )
src/mame/drivers/momoko.c
r4470r4471
9393
9494   AM_RANGE(0xd064, 0xd0ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
9595
96   AM_RANGE(0xd400, 0xd400) AM_WRITE(SMH_NOP) /* interrupt ack? */
96   AM_RANGE(0xd400, 0xd400) AM_WRITENOP /* interrupt ack? */
9797   AM_RANGE(0xd402, 0xd402) AM_WRITE(momoko_flipscreen_w)
9898   AM_RANGE(0xd404, 0xd404) AM_WRITE(watchdog_reset_w)
9999   AM_RANGE(0xd406, 0xd406) AM_WRITE(soundlatch_w)
r4470r4471
126126static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
127127   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
128128   AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
129   AM_RANGE(0x9000, 0x9000) AM_WRITE(SMH_NOP) /* unknown */
129   AM_RANGE(0x9000, 0x9000) AM_WRITENOP /* unknown */
130130   AM_RANGE(0xa000, 0xa001) AM_DEVWRITE("ym1", ym2203_w)
131   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP) /* unknown */
131   AM_RANGE(0xb000, 0xb000) AM_WRITENOP /* unknown */
132132   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym2", ym2203_w)
133133ADDRESS_MAP_END
134134
src/mame/drivers/m90.c
r4470r4471
736736
737737   MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */
738738   MDRV_SOUND_CONFIG(ym2151_config)
739   MDRV_SOUND_ROUTE(0, "mono", 0.90)
740   MDRV_SOUND_ROUTE(1, "mono", 0.90)
739   MDRV_SOUND_ROUTE(0, "mono", 0.15)
740   MDRV_SOUND_ROUTE(1, "mono", 0.15)
741741
742742   MDRV_SOUND_ADD("dac", DAC, 0)
743   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
743   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
744744MACHINE_DRIVER_END
745745
746746
r4470r4471
817817
818818   MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */
819819   MDRV_SOUND_CONFIG(ym2151_config)
820   MDRV_SOUND_ROUTE(0, "mono", 0.90)
821   MDRV_SOUND_ROUTE(1, "mono", 0.90)
820   MDRV_SOUND_ROUTE(0, "mono", 0.15)
821   MDRV_SOUND_ROUTE(1, "mono", 0.15)
822822
823823   MDRV_SOUND_ADD("dac", DAC, 0)
824   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
824   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
825825MACHINE_DRIVER_END
826826
827827static const nec_config dynablaster_config ={    dynablaster_decryption_table, };
r4470r4471
862862
863863   MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz) /* verified on pcb */
864864   MDRV_SOUND_CONFIG(ym2151_config)
865   MDRV_SOUND_ROUTE(0, "mono", 0.90)
866   MDRV_SOUND_ROUTE(1, "mono", 0.90)
865   MDRV_SOUND_ROUTE(0, "mono", 0.15)
866   MDRV_SOUND_ROUTE(1, "mono", 0.15)
867867
868868   MDRV_SOUND_ADD("dac", DAC, 0)
869   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
869   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
870870MACHINE_DRIVER_END
871871
872872static const nec_config no_table ={ NULL, };
r4470r4471
931931
932932   MDRV_SOUND_ADD("ym", YM2151, XTAL_3_579545MHz)
933933   MDRV_SOUND_CONFIG(ym2151_config)
934   MDRV_SOUND_ROUTE(0, "mono", 0.90)
935   MDRV_SOUND_ROUTE(1, "mono", 0.90)
934   MDRV_SOUND_ROUTE(0, "mono", 0.15)
935   MDRV_SOUND_ROUTE(1, "mono", 0.15)
936936
937937   MDRV_SOUND_ADD("dac", DAC, 0)
938   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
938   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
939939MACHINE_DRIVER_END
940940
941941/***************************************************************************/
r4470r4471
13001300GAME( 1992, bbmanwj,  bbmanw,   bbmanwj,  bbmanwj,  0,        ROT0, "Irem", "Bomber Man World (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
13011301GAME( 1992, newapunk, bbmanw,   bbmanw,   bbmanwj,  0,        ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
13021302GAME( 1992, bomblord, bbmanw,   bomblord, bbmanw,   bomblord, ROT0, "bootleg", "Bomber Lord (bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
1303GAME( 1992, quizf1,   0,        quizf1,   quizf1,   quizf1,   ROT0, "Irem", "Quiz F-1 1,2finish", GAME_NO_COCKTAIL )
1304GAME( 1993, riskchal, 0,        riskchal, riskchal, 0,        ROT0, "Irem", "Risky Challenge", GAME_IMPERFECT_GRAPHICS )
1305GAME( 1993, gussun,   riskchal, riskchal, riskchal, 0,        ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_IMPERFECT_GRAPHICS )
1303GAME( 1992, quizf1,   0,        quizf1,   quizf1,   quizf1,   ROT0, "Irem", "Quiz F-1 1,2finish", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
1304GAME( 1993, riskchal, 0,        riskchal, riskchal, 0,        ROT0, "Irem", "Risky Challenge", GAME_NO_COCKTAIL )
1305GAME( 1993, gussun,   riskchal, riskchal, riskchal, 0,        ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_NO_COCKTAIL )
13061306GAME( 1993, matchit2, 0,        matchit2, matchit2, 0,        ROT0, "Tamtex", "Match It II", GAME_NO_COCKTAIL )
13071307GAME( 1993, shisen2,  matchit2, matchit2, shisen2,  0,        ROT0, "Tamtex", "Shisensho II", GAME_NO_COCKTAIL )
13081308
src/mame/drivers/scotrsht.c
r4470r4471
3636#include "cpu/z80/z80.h"
3737#include "cpu/m6809/m6809.h"
3838#include "sound/2203intf.h"
39#include "konamipt.h"
3940
4041extern UINT8 *scotrsht_scroll;
4142
r4470r4471
7475    AM_RANGE(0x1000, 0x10bf) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) /* sprites */
7576   AM_RANGE(0x10c0, 0x1fff) AM_RAM /* work ram */
7677    AM_RANGE(0x2000, 0x201f) AM_RAM AM_BASE(&scotrsht_scroll) /* scroll registers */
77   AM_RANGE(0x2040, 0x2040) AM_WRITE(SMH_NOP)
78   AM_RANGE(0x2041, 0x2041) AM_WRITE(SMH_NOP)
79    AM_RANGE(0x2042, 0x2042) AM_WRITE(SMH_NOP)  /* it should be -> bit 2 = scroll direction like in jailbrek, but it's not used */
78   AM_RANGE(0x2040, 0x2040) AM_WRITENOP
79   AM_RANGE(0x2041, 0x2041) AM_WRITENOP
80    AM_RANGE(0x2042, 0x2042) AM_WRITENOP  /* it should be -> bit 2 = scroll direction like in jailbrek, but it's not used */
8081   AM_RANGE(0x2043, 0x2043) AM_WRITE(scotrsht_charbank_w)
8182    AM_RANGE(0x2044, 0x2044) AM_WRITE(ctrl_w)
8283   AM_RANGE(0x3000, 0x3000) AM_WRITE(scotrsht_palettebank_w)
8384   AM_RANGE(0x3100, 0x3100) AM_WRITE(scotrsht_soundlatch_w)
84   AM_RANGE(0x3200, 0x3200) AM_WRITE(SMH_NOP) /* it writes 0, 1 */
85   AM_RANGE(0x3200, 0x3200) AM_WRITENOP /* it writes 0, 1 */
8586   AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW2")
8687   AM_RANGE(0x3200, 0x3200) AM_READ_PORT("DSW3")
8788   AM_RANGE(0x3300, 0x3300) AM_READ_PORT("SYSTEM")
r4470r4471
116117   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
117118
118119   PORT_START("P1")      /* $3301 */
119   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_8WAY PORT_PLAYER(1)
120   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
121   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_8WAY PORT_PLAYER(1)
122   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_8WAY PORT_PLAYER(1)
123   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
124   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
125   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
126   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
120   KONAMI8_B1_UNK(1)
127121
128122   PORT_START("P2")      /* $3302 */
129   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )  PORT_8WAY PORT_PLAYER(2)
130   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
131   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )    PORT_8WAY PORT_PLAYER(2)
132   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )  PORT_8WAY PORT_PLAYER(2)
133   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
134   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
135   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
136   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
123   KONAMI8_B1_UNK(2)
137124
138125   PORT_START("DSW1")      /* $3303 -> $196e */
139   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
140   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
141   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
142   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
143   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
144   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
145   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
146   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
147   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
148   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
149   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
150   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
151   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
152   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
153   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
154   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
155   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )        /* see notes */
156   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
157   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
158   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
159   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
160   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
161   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
162   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
163   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
164   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
165   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
166   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
167   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
168   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
169   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
170   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
171   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
172//  PORT_DIPSETTING(    0x00, "Disable All Coin Slots" )
126   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
127   /* "Invalid" = both coin slots disabled */
173128
174129   PORT_START("DSW2")      /* $3100 -> $196f */
175130   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
src/mame/drivers/taito_z.c
r4470r4471
898898//static UINT16 *taitoz_ram;
899899//static UINT16 *motor_ram;
900900
901static size_t taitoz_sharedram_size;
902static UINT16 *taitoz_sharedram;   /* read externally to draw Spacegun crosshair */
903
904static READ16_HANDLER( sharedram_r )
905{
906   return taitoz_sharedram[offset];
907}
908
909static WRITE16_HANDLER( sharedram_w )
910{
911   COMBINE_DATA(&taitoz_sharedram[offset]);
912}
913
914901static void parse_control(running_machine *machine)
915902{
916903   /* bit 0 enables cpu B */
r4470r4471
15411528***********************************************************/
15421529
15431530
1544static ADDRESS_MAP_START( contcirc_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1545   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1546   AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1547   AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r)
1548   AM_RANGE(0x100000, 0x100007) AM_READ(TC0110PCR_word_r)   /* palette */
1549   AM_RANGE(0x200000, 0x20ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1550   AM_RANGE(0x220000, 0x22000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1551   AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r)   /* "root ram" */
1552   AM_RANGE(0x400000, 0x4006ff) AM_READ(SMH_RAM)   /* spriteram */
1553ADDRESS_MAP_END
1554
1555static ADDRESS_MAP_START( contcirc_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1556   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1557   AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM)
1558   AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1531static ADDRESS_MAP_START( contcirc_map, ADDRESS_SPACE_PROGRAM, 16 )
1532   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1533   AM_RANGE(0x080000, 0x083fff) AM_RAM
1534   AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1)
15591535   AM_RANGE(0x090000, 0x090001) AM_WRITE(contcirc_out_w)    /* road palette bank, sub CPU reset, 3d glasses control */
1560   AM_RANGE(0x100000, 0x100007) AM_WRITE(TC0110PCR_step1_rbswap_word_w)   /* palette */
1561   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1562   AM_RANGE(0x220000, 0x22000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1563   AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w)   /* "root ram" */
1564   AM_RANGE(0x400000, 0x4006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1536   AM_RANGE(0x100000, 0x100007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w)   /* palette */
1537   AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1538   AM_RANGE(0x220000, 0x22000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1539   AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)   /* "root ram" */
1540   AM_RANGE(0x400000, 0x4006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
15651541ADDRESS_MAP_END
15661542
1567static ADDRESS_MAP_START( contcirc_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1568   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1569   AM_RANGE(0x080000, 0x083fff) AM_READ(SMH_RAM)
1570   AM_RANGE(0x084000, 0x087fff) AM_READ(sharedram_r)
1571   AM_RANGE(0x100000, 0x100001) AM_READ(contcirc_input_bypass_r)
1572   AM_RANGE(0x100002, 0x100003) AM_READ(TC0220IOC_halfword_port_r)   /* (actually game uses TC040IOC) */
1573   AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r)
1543static ADDRESS_MAP_START( contcirc_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1544   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1545   AM_RANGE(0x080000, 0x083fff) AM_RAM
1546   AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE(1)
1547   AM_RANGE(0x100000, 0x100001) AM_READWRITE(contcirc_input_bypass_r, TC0220IOC_halfword_portreg_w)
1548   AM_RANGE(0x100002, 0x100003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w) /* (actually game uses TC040IOC) */
1549   AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
15741550ADDRESS_MAP_END
15751551
1576static ADDRESS_MAP_START( contcirc_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1577   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1578   AM_RANGE(0x080000, 0x083fff) AM_WRITE(SMH_RAM)
1579   AM_RANGE(0x084000, 0x087fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1580   AM_RANGE(0x100000, 0x100001) AM_WRITE(TC0220IOC_halfword_portreg_w)
1581   AM_RANGE(0x100002, 0x100003) AM_WRITE(TC0220IOC_halfword_port_w)
1582   AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w)
1583ADDRESS_MAP_END
15841552
1585
1586static ADDRESS_MAP_START( chasehq_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1587   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1588   AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1589   AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r)
1590   AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM)   /* extra CPUA ram */
1591   AM_RANGE(0x400000, 0x400001) AM_READ(chasehq_input_bypass_r)
1592   AM_RANGE(0x400002, 0x400003) AM_READ(TC0220IOC_halfword_port_r)
1593   AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r)
1594   AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r)   /* palette */
1595   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1596   AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1597   AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM)   /* spriteram */
1598   AM_RANGE(0xe00000, 0xe003ff) AM_READ(chasehq_motor_r)   /* motor cpu */
1599ADDRESS_MAP_END
1600
1601static ADDRESS_MAP_START( chasehq_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1602   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1603   AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM)
1604   AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1605   AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM)
1606   AM_RANGE(0x400000, 0x400001) AM_WRITE(TC0220IOC_halfword_portreg_w)
1607   AM_RANGE(0x400002, 0x400003) AM_WRITE(TC0220IOC_halfword_port_w)
1553static ADDRESS_MAP_START( chasehq_map, ADDRESS_SPACE_PROGRAM, 16 )
1554   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1555   AM_RANGE(0x100000, 0x107fff) AM_RAM
1556   AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1)
1557   AM_RANGE(0x10c000, 0x10ffff) AM_RAM
1558   AM_RANGE(0x400000, 0x400001) AM_READWRITE(chasehq_input_bypass_r, TC0220IOC_halfword_portreg_w)
1559   AM_RANGE(0x400002, 0x400003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w)
16081560   AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w)
1609   AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w)
1610   AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w)   /* palette */
1611   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1612   AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1613   AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1614   AM_RANGE(0xe00000, 0xe003ff) AM_WRITE(chasehq_motor_w)   /* motor cpu */
1561   AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1562   AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)   /* palette */
1563   AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1564   AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1565   AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1566   AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE(chasehq_motor_r, chasehq_motor_w)   /* motor cpu */
16151567ADDRESS_MAP_END
16161568
1617static ADDRESS_MAP_START( chq_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1618   AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
1619   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
1620   AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r)
1621   AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r)
1569static ADDRESS_MAP_START( chq_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1570   AM_RANGE(0x000000, 0x01ffff) AM_ROM
1571   AM_RANGE(0x100000, 0x103fff) AM_RAM
1572   AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1)
1573   AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)
16221574ADDRESS_MAP_END
16231575
1624static ADDRESS_MAP_START( chq_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1625   AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
1626   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1627   AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1628   AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w)
1629ADDRESS_MAP_END
16301576
1631
1632static ADDRESS_MAP_START( enforce_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1633   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1634   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1635   AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r)
1636   AM_RANGE(0x300000, 0x3006ff) AM_READ(SMH_RAM)   /* spriteram */
1637   AM_RANGE(0x400000, 0x401fff) AM_READ(TC0150ROD_word_r)   /* "root ram" ??? */
1638   AM_RANGE(0x500000, 0x500007) AM_READ(TC0110PCR_word_r)   /* palette */
1639   AM_RANGE(0x600000, 0x60ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1640   AM_RANGE(0x620000, 0x62000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1641ADDRESS_MAP_END
1642
1643static ADDRESS_MAP_START( enforce_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1644   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1645   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1646   AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1577static ADDRESS_MAP_START( enforce_map, ADDRESS_SPACE_PROGRAM, 16 )
1578   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1579   AM_RANGE(0x100000, 0x103fff) AM_RAM
1580   AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1)
16471581   AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w)   // works without?
1648   AM_RANGE(0x300000, 0x3006ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1649   AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0150ROD_word_w)   /* "root ram" ??? */
1650   AM_RANGE(0x500000, 0x500007) AM_WRITE(TC0110PCR_step1_rbswap_word_w)   /* palette */
1651   AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1652   AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1582   AM_RANGE(0x300000, 0x3006ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1583   AM_RANGE(0x400000, 0x401fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)   /* "root ram" ??? */
1584   AM_RANGE(0x500000, 0x500007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w)   /* palette */
1585   AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1586   AM_RANGE(0x620000, 0x62000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
16531587ADDRESS_MAP_END
16541588
1655static ADDRESS_MAP_START( enforce_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1656   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1657   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
1658   AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r)
1659   AM_RANGE(0x200000, 0x200003) AM_READ(taitoz_sound_r)
1660   AM_RANGE(0x300000, 0x300001) AM_READ(TC0220IOC_halfword_portreg_r)
1661   AM_RANGE(0x300002, 0x300003) AM_READ(TC0220IOC_halfword_port_r)   /* (actually game uses TC040IOC ?) */
1589static ADDRESS_MAP_START( enforce_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1590   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1591   AM_RANGE(0x100000, 0x103fff) AM_RAM
1592   AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1)
1593   AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1594   AM_RANGE(0x300000, 0x300001) AM_READWRITE(TC0220IOC_halfword_portreg_r, TC0220IOC_halfword_portreg_w)
1595   AM_RANGE(0x300002, 0x300003) AM_READWRITE(TC0220IOC_halfword_port_r, TC0220IOC_halfword_port_w)
16621596ADDRESS_MAP_END
16631597
1664static ADDRESS_MAP_START( enforce_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1665   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1666   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1667   AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1668   AM_RANGE(0x200000, 0x200003) AM_WRITE(taitoz_sound_w)
1669   AM_RANGE(0x300000, 0x300001) AM_WRITE(TC0220IOC_halfword_portreg_w)
1670   AM_RANGE(0x300002, 0x300003) AM_WRITE(TC0220IOC_halfword_port_w)
1671ADDRESS_MAP_END
16721598
1673
1674static ADDRESS_MAP_START( bshark_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1675   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1676   AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM)   /* main CPUA ram */
1677   AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r)
1678   AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r)
1679   AM_RANGE(0x800000, 0x800007) AM_READ(bshark_stick_r)
1680   AM_RANGE(0xa00000, 0xa01fff) AM_READ(SMH_RAM)   /* palette */
1681   AM_RANGE(0xc00000, 0xc00fff) AM_READ(SMH_RAM)   /* spriteram */
1682   AM_RANGE(0xd00000, 0xd0ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1683   AM_RANGE(0xd20000, 0xd2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1684ADDRESS_MAP_END
1685
1686static ADDRESS_MAP_START( bshark_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1687   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1688   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
1689   AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1690   AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w)
1599static ADDRESS_MAP_START( bshark_map, ADDRESS_SPACE_PROGRAM, 16 )
1600   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1601   AM_RANGE(0x100000, 0x10ffff) AM_RAM
1602   AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1)
1603   AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
16911604   AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_noz80_ctrl_w)
1692   AM_RANGE(0x800000, 0x800007) AM_WRITE(bshark_stick_w)
1693   AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1694   AM_RANGE(0xc00000, 0xc00fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1695   AM_RANGE(0xd00000, 0xd0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1696   AM_RANGE(0xd20000, 0xd2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1605   AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w)
1606   AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1607   AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1608   AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1609   AM_RANGE(0xd20000, 0xd2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
16971610ADDRESS_MAP_END
16981611
1699static ADDRESS_MAP_START( bshark_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1700   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1701   AM_RANGE(0x108000, 0x10bfff) AM_READ(SMH_RAM)
1702   AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r)
1612static ADDRESS_MAP_START( bshark_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1613   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1614   AM_RANGE(0x108000, 0x10bfff) AM_RAM
1615   AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1)
1616   AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol)  /* pan */
17031617//  AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r)  // ???
1704   AM_RANGE(0x600000, 0x600007) AM_DEVREAD8("ym", ym2610_r, 0x00ff)
1705   AM_RANGE(0x60000c, 0x60000d) AM_READ(SMH_NOP)
1706   AM_RANGE(0x60000e, 0x60000f) AM_READ(SMH_NOP)
1707   AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r)   /* "root ram" */
1618   AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff)
1619   AM_RANGE(0x60000c, 0x60000d) AM_NOP   // interrupt controller?
1620   AM_RANGE(0x60000e, 0x60000f) AM_NOP
1621   AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)   /* "root ram" */
17081622ADDRESS_MAP_END
17091623
1710static ADDRESS_MAP_START( bshark_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1711   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1712   AM_RANGE(0x108000, 0x10bfff) AM_WRITE(SMH_RAM)
1713   AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w)
1714   AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol)  /* pan */
1715   AM_RANGE(0x600000, 0x600007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff)
1716   AM_RANGE(0x60000c, 0x60000d) AM_WRITE(SMH_NOP)   // interrupt controller?
1717   AM_RANGE(0x60000e, 0x60000f) AM_WRITE(SMH_NOP)
1718   AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w)   /* "root ram" */
1719ADDRESS_MAP_END
17201624
1721
1722static ADDRESS_MAP_START( sci_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1723   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1724   AM_RANGE(0x100000, 0x107fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1725   AM_RANGE(0x108000, 0x10bfff) AM_READ(sharedram_r)   /* extent ?? */
1726   AM_RANGE(0x10c000, 0x10ffff) AM_READ(SMH_RAM)   /* extra CPUA ram */
1727   AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r)
1625static ADDRESS_MAP_START( sci_map, ADDRESS_SPACE_PROGRAM, 16 )
1626   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1627   AM_RANGE(0x100000, 0x107fff) AM_RAM
1628   AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE(1)
1629   AM_RANGE(0x10c000, 0x10ffff) AM_RAM
1630   AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
17281631   AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r)
1729   AM_RANGE(0x420000, 0x420003) AM_READ(taitoz_sound_r)
1730   AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM)
1731   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1732   AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1733   AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM)   /* spriteram */   // Raine draws only 0x1000
1734   AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r)   // debugging
1735ADDRESS_MAP_END
1736
1737static ADDRESS_MAP_START( sci_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1738   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1739   AM_RANGE(0x100000, 0x107fff) AM_WRITE(SMH_RAM)
1740   AM_RANGE(0x108000, 0x10bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1741   AM_RANGE(0x10c000, 0x10ffff) AM_WRITE(SMH_RAM)
1742   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)
17431632//  AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w)  // ?? doesn't seem to fit what's written
1744   AM_RANGE(0x420000, 0x420003) AM_WRITE(taitoz_sound_w)
1745   AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1746   AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1747   AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1748   AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1749   AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w)
1633   AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1634   AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1635   AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1636   AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1637   AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1638   AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w)
17501639ADDRESS_MAP_END
17511640
1752static ADDRESS_MAP_START( sci_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1753   AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
1754   AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM)
1755   AM_RANGE(0x208000, 0x20bfff) AM_READ(sharedram_r)
1756   AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r)
1641static ADDRESS_MAP_START( sci_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1642   AM_RANGE(0x000000, 0x01ffff) AM_ROM
1643   AM_RANGE(0x200000, 0x203fff) AM_RAM
1644   AM_RANGE(0x208000, 0x20bfff) AM_RAM AM_SHARE(1)
1645   AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)
17571646ADDRESS_MAP_END
17581647
1759static ADDRESS_MAP_START( sci_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1760   AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
1761   AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM)
1762   AM_RANGE(0x208000, 0x20bfff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1763   AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w)
1764ADDRESS_MAP_END
17651648
1766
1767static ADDRESS_MAP_START( nightstr_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1768   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1769   AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM)   /* main CPUA ram */
1770   AM_RANGE(0x110000, 0x113fff) AM_READ(sharedram_r)
1771   AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r)
1772   AM_RANGE(0x820000, 0x820003) AM_READ(taitoz_sound_r)
1773   AM_RANGE(0xa00000, 0xa00007) AM_READ(TC0110PCR_word_r)   /* palette */
1774   AM_RANGE(0xc00000, 0xc0ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1775   AM_RANGE(0xc20000, 0xc2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1776   AM_RANGE(0xd00000, 0xd007ff) AM_READ(SMH_RAM)   /* spriteram */
1777   AM_RANGE(0xe40000, 0xe40007) AM_READ(nightstr_stick_r)
1778ADDRESS_MAP_END
1779
1780static ADDRESS_MAP_START( nightstr_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1781   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1782   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
1783   AM_RANGE(0x110000, 0x113fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1784   AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0220IOC_halfword_w)
1649static ADDRESS_MAP_START( nightstr_map, ADDRESS_SPACE_PROGRAM, 16 )
1650   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1651   AM_RANGE(0x100000, 0x10ffff) AM_RAM
1652   AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE(1)
1653   AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
17851654   AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w)
1786   AM_RANGE(0x820000, 0x820003) AM_WRITE(taitoz_sound_w)
1787   AM_RANGE(0xa00000, 0xa00007) AM_WRITE(TC0110PCR_step1_word_w)   /* palette */
1788   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1789   AM_RANGE(0xc20000, 0xc2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1790   AM_RANGE(0xd00000, 0xd007ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1791//  AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)    /* ??? */
1792//  AM_RANGE(0xe00008, 0xe00009) AM_WRITE(SMH_NOP)    /* ??? */
1793//  AM_RANGE(0xe00010, 0xe00011) AM_WRITE(SMH_NOP)    /* ??? */
1794   AM_RANGE(0xe40000, 0xe40007) AM_WRITE(bshark_stick_w)
1655   AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1656   AM_RANGE(0xa00000, 0xa00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)   /* palette */
1657   AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1658   AM_RANGE(0xc20000, 0xc2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1659   AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1660//  AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP    /* ??? */
1661//  AM_RANGE(0xe00008, 0xe00009) AM_WRITENOP    /* ??? */
1662//  AM_RANGE(0xe00010, 0xe00011) AM_WRITENOP    /* ??? */
1663   AM_RANGE(0xe40000, 0xe40007) AM_READWRITE(nightstr_stick_r, bshark_stick_w)
17951664ADDRESS_MAP_END
17961665
1797static ADDRESS_MAP_START( nightstr_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1798   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1799   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
1800   AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r)
1801   AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r)   /* "root ram" */
1666static ADDRESS_MAP_START( nightstr_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1667   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1668   AM_RANGE(0x100000, 0x103fff) AM_RAM
1669   AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1)
1670   AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)   /* "root ram" */
18021671ADDRESS_MAP_END
18031672
1804static ADDRESS_MAP_START( nightstr_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1805   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1806   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1807   AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1808   AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w)   /* "root ram" */
1809ADDRESS_MAP_END
18101673
1811
1812static ADDRESS_MAP_START( aquajack_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1813   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1814   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1815   AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r)
1816   AM_RANGE(0x300000, 0x300007) AM_READ(TC0110PCR_word_r)   /* palette */
1817   AM_RANGE(0x800000, 0x801fff) AM_READ(TC0150ROD_word_r)   /* (like Contcirc, uses CPUA for road) */
1818   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1819   AM_RANGE(0xa20000, 0xa2000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1820   AM_RANGE(0xc40000, 0xc403ff) AM_READ(SMH_RAM)   /* spriteram */
1821ADDRESS_MAP_END
1822
1823static ADDRESS_MAP_START( aquajack_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1824   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1825   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1826   AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1674static ADDRESS_MAP_START( aquajack_map, ADDRESS_SPACE_PROGRAM, 16 )
1675   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1676   AM_RANGE(0x100000, 0x103fff) AM_RAM
1677   AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1)
18271678   AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w)   // not needed, but it's probably like the others
1828   AM_RANGE(0x300000, 0x300007) AM_WRITE(TC0110PCR_step1_word_w)   /* palette */
1829   AM_RANGE(0x800000, 0x801fff) AM_WRITE(TC0150ROD_word_w)
1830   AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1831   AM_RANGE(0xa20000, 0xa2000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1832   AM_RANGE(0xc40000, 0xc403ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1679   AM_RANGE(0x300000, 0x300007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)   /* palette */
1680   AM_RANGE(0x800000, 0x801fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)
1681   AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1682   AM_RANGE(0xa20000, 0xa2000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1683   AM_RANGE(0xc40000, 0xc403ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
18331684ADDRESS_MAP_END
18341685
1835static ADDRESS_MAP_START( aquajack_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1836   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1837   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
1838   AM_RANGE(0x104000, 0x107fff) AM_READ(sharedram_r)
1839   AM_RANGE(0x200000, 0x20000f) AM_READ(TC0220IOC_halfword_r)
1840   AM_RANGE(0x300000, 0x300003) AM_READ(taitoz_sound_r)
1686static ADDRESS_MAP_START( aquajack_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1687   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1688   AM_RANGE(0x100000, 0x103fff) AM_RAM
1689   AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE(1)
1690   AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
1691   AM_RANGE(0x300000, 0x300003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
18411692   AM_RANGE(0x800800, 0x80083f) AM_READ(aquajack_unknown_r) // Read regularly after write to 800800...
1842//  AM_RANGE(0x900000, 0x900007) AM_READ(taitoz_unknown_r)
1843ADDRESS_MAP_END
1844
1845static ADDRESS_MAP_START( aquajack_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1846   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1847   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1848   AM_RANGE(0x104000, 0x107fff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1849   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)
1850   AM_RANGE(0x300000, 0x300003) AM_WRITE(taitoz_sound_w)
18511693//  AM_RANGE(0x800800, 0x800801) AM_WRITE(taitoz_unknown_w)
1852//  AM_RANGE(0x900000, 0x900007) AM_WRITE(taitoz_unknown_w)
1694//  AM_RANGE(0x900000, 0x900007) AM_READWRITE(taitoz_unknown_r, taitoz_unknown_w)
18531695ADDRESS_MAP_END
18541696
18551697
1856static ADDRESS_MAP_START( spacegun_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1857   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1858   AM_RANGE(0x30c000, 0x30ffff) AM_READ(SMH_RAM)   /* local CPUA ram */
1859   AM_RANGE(0x310000, 0x31ffff) AM_READ(sharedram_r)   /* extent correct acc. to CPUB inits */
1860   AM_RANGE(0x500000, 0x5005ff) AM_READ(SMH_RAM)   /* spriteram */
1861   AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0100SCN_word_0_r)   /* tilemaps */
1862   AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_word_0_r)
1863   AM_RANGE(0xb00000, 0xb00007) AM_READ(TC0110PCR_word_r)   /* palette */
1698static ADDRESS_MAP_START( spacegun_map, ADDRESS_SPACE_PROGRAM, 16 )
1699   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1700   AM_RANGE(0x30c000, 0x30ffff) AM_RAM
1701   AM_RANGE(0x310000, 0x31ffff) AM_RAM AM_SHARE(1)
1702   AM_RANGE(0x500000, 0x5005ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1703   AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
1704   AM_RANGE(0x920000, 0x92000f) AM_READWRITE(TC0100SCN_ctrl_word_0_r, TC0100SCN_ctrl_word_0_w)
1705   AM_RANGE(0xb00000, 0xb00007) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_rbswap_word_w)   /* palette */
18641706ADDRESS_MAP_END
18651707
1866static ADDRESS_MAP_START( spacegun_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1867   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1868   AM_RANGE(0x30c000, 0x30ffff) AM_WRITE(SMH_RAM)
1869   AM_RANGE(0x310000, 0x31ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1870   AM_RANGE(0x500000, 0x5005ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1871   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1872   AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1873   AM_RANGE(0xb00000, 0xb00007) AM_WRITE(TC0110PCR_step1_rbswap_word_w)   /* palette */
1874ADDRESS_MAP_END
1875
1876static ADDRESS_MAP_START( spacegun_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1877   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1878   AM_RANGE(0x20c000, 0x20ffff) AM_READ(SMH_RAM)   /* local CPUB ram */
1879   AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r)
1880   AM_RANGE(0x800000, 0x80000f) AM_READ(spacegun_input_bypass_r)
1881   AM_RANGE(0xc00000, 0xc00007) AM_DEVREAD8("ym", ym2610_r, 0x00ff)
1882   AM_RANGE(0xc0000c, 0xc0000d) AM_READ(SMH_NOP)
1883   AM_RANGE(0xc0000e, 0xc0000f) AM_READ(SMH_NOP)
1884   AM_RANGE(0xf00000, 0xf00007) AM_READ(spacegun_lightgun_r)
1885ADDRESS_MAP_END
1886
1887static ADDRESS_MAP_START( spacegun_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1888   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1889   AM_RANGE(0x20c000, 0x20ffff) AM_WRITE(SMH_RAM)
1890   AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w)
1891   AM_RANGE(0x800000, 0x80000f) AM_WRITE(spacegun_output_bypass_w)
1892   AM_RANGE(0xc00000, 0xc00007) AM_DEVWRITE8("ym", ym2610_w, 0x00ff)
1893   AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(SMH_NOP)   // interrupt controller?
1894   AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(SMH_NOP)
1708static ADDRESS_MAP_START( spacegun_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1709   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1710   AM_RANGE(0x20c000, 0x20ffff) AM_RAM
1711   AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1)
1712   AM_RANGE(0x800000, 0x80000f) AM_READWRITE(spacegun_input_bypass_r, spacegun_output_bypass_w)
1713   AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8("ym", ym2610_r, ym2610_w, 0x00ff)
1714   AM_RANGE(0xc0000c, 0xc0000d) AM_NOP   // interrupt controller?
1715   AM_RANGE(0xc0000e, 0xc0000f) AM_NOP
18951716   AM_RANGE(0xc20000, 0xc20007) AM_WRITE(spacegun_pancontrol)  /* pan */
1896//  AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)    /* ??? */
1897   AM_RANGE(0xf00000, 0xf00007) AM_WRITE(spacegun_lightgun_w)
1717//  AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP    /* ??? */
1718   AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(spacegun_lightgun_r, spacegun_lightgun_w)
18981719ADDRESS_MAP_END
18991720
19001721
1901static ADDRESS_MAP_START( dblaxle_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1902   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1903   AM_RANGE(0x200000, 0x203fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1904   AM_RANGE(0x210000, 0x21ffff) AM_READ(sharedram_r)
1905   AM_RANGE(0x400000, 0x40000f) AM_READ(TC0510NIO_halfword_wordswap_r)
1722static ADDRESS_MAP_START( dblaxle_map, ADDRESS_SPACE_PROGRAM, 16 )
1723   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1724   AM_RANGE(0x200000, 0x203fff) AM_RAM
1725   AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE(1)
1726   AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w)
19061727   AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r)
1907   AM_RANGE(0x620000, 0x620003) AM_READ(taitoz_sound_r)
1908   AM_RANGE(0x800000, 0x801fff) AM_READ(SMH_RAM)   /* palette */
1909   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(TC0480SCP_word_r)     /* tilemaps */
1910   AM_RANGE(0xa30000, 0xa3002f) AM_READ(TC0480SCP_ctrl_word_r)
1911   AM_RANGE(0xc00000, 0xc03fff) AM_READ(SMH_RAM)   /* spriteram */
1912   AM_RANGE(0xc08000, 0xc08001) AM_READ(sci_spriteframe_r)   // debugging
1913ADDRESS_MAP_END
1914
1915static ADDRESS_MAP_START( dblaxle_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1916   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1917   AM_RANGE(0x200000, 0x203fff) AM_WRITE(SMH_RAM)
1918   AM_RANGE(0x210000, 0x21ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1919   AM_RANGE(0x400000, 0x40000f) AM_WRITE(TC0510NIO_halfword_wordswap_w)
19201728   AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w)   /* could this be causing int6 ? */
1921   AM_RANGE(0x620000, 0x620003) AM_WRITE(taitoz_sound_w)
1922   AM_RANGE(0x800000, 0x801fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1923   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w)     /* tilemap mirror */
1924   AM_RANGE(0xa00000, 0xa0ffff) AM_WRITE(TC0480SCP_word_w)     /* tilemaps */
1925   AM_RANGE(0xa30000, 0xa3002f) AM_WRITE(TC0480SCP_ctrl_word_w)
1926   AM_RANGE(0xc00000, 0xc03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */
1927   AM_RANGE(0xc08000, 0xc08001) AM_WRITE(sci_spriteframe_w)   /* set in int6, seems to stay zero */
1729   AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1730   AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1731   AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w)     /* tilemap mirror */
1732   AM_RANGE(0xa00000, 0xa0ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w)     /* tilemaps */
1733   AM_RANGE(0xa30000, 0xa3002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w)
1734   AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */
1735   AM_RANGE(0xc08000, 0xc08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w)   /* set in int6, seems to stay zero */
19281736ADDRESS_MAP_END
19291737
1930static ADDRESS_MAP_START( dblaxle_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1931   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1932   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)
1933   AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r)
1934   AM_RANGE(0x300000, 0x301fff) AM_READ(TC0150ROD_word_r)
1935   AM_RANGE(0x500000, 0x503fff) AM_READ(SMH_RAM)   /* network ram ? (see Gunbustr) */
1738static ADDRESS_MAP_START( dblaxle_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1739   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1740   AM_RANGE(0x100000, 0x103fff) AM_RAM
1741   AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1)
1742   AM_RANGE(0x300000, 0x301fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)
1743   AM_RANGE(0x500000, 0x503fff) AM_RAM   /* network ram ? (see Gunbustr) */
19361744ADDRESS_MAP_END
19371745
1938static ADDRESS_MAP_START( dblaxle_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1939   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1940   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1941   AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1942   AM_RANGE(0x300000, 0x301fff) AM_WRITE(TC0150ROD_word_w)
1943   AM_RANGE(0x500000, 0x503fff) AM_WRITE(SMH_RAM)   /* network ram ? (see Gunbustr) */
1944ADDRESS_MAP_END
19451746
1946
1947static ADDRESS_MAP_START( racingb_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1948   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
1949   AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM)   /* main CPUA ram */
1950   AM_RANGE(0x110000, 0x11ffff) AM_READ(sharedram_r)
1951   AM_RANGE(0x300000, 0x30000f) AM_READ(TC0510NIO_halfword_wordswap_r)
1747static ADDRESS_MAP_START( racingb_map, ADDRESS_SPACE_PROGRAM, 16 )
1748   AM_RANGE(0x000000, 0x07ffff) AM_ROM
1749   AM_RANGE(0x100000, 0x103fff) AM_RAM
1750   AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE(1)
1751   AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0510NIO_halfword_wordswap_r, TC0510NIO_halfword_wordswap_w)
19521752   AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r)
1953   AM_RANGE(0x520000, 0x520003) AM_READ(taitoz_sound_r)
1954   AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM)   /* palette */
1955   AM_RANGE(0x900000, 0x90ffff) AM_READ(TC0480SCP_word_r)     /* tilemaps */
1956   AM_RANGE(0x930000, 0x93002f) AM_READ(TC0480SCP_ctrl_word_r)
1957   AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM)   /* spriteram */
1958   AM_RANGE(0xb08000, 0xb08001) AM_READ(sci_spriteframe_r)   // debugging
1959ADDRESS_MAP_END
1960
1961static ADDRESS_MAP_START( racingb_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1962   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1963   AM_RANGE(0x100000, 0x103fff) AM_WRITE(SMH_RAM)
1964   AM_RANGE(0x110000, 0x11ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram) AM_SIZE(&taitoz_sharedram_size)
1965   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w)
19661753   AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w)
1967   AM_RANGE(0x520000, 0x520003) AM_WRITE(taitoz_sound_w)
1968   AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1969   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0480SCP_word_w)     /* tilemaps */
1970   AM_RANGE(0x930000, 0x93002f) AM_WRITE(TC0480SCP_ctrl_word_w)
1971   AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */
1972   AM_RANGE(0xb08000, 0xb08001) AM_WRITE(sci_spriteframe_w)   /* alternates 0/0x100 */
1754   AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
1755   AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
1756   AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(TC0480SCP_word_r, TC0480SCP_word_w)     /* tilemaps */
1757   AM_RANGE(0x930000, 0x93002f) AM_READWRITE(TC0480SCP_ctrl_word_r, TC0480SCP_ctrl_word_w)
1758   AM_RANGE(0xb00000, 0xb03fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) /* mostly unused ? */
1759   AM_RANGE(0xb08000, 0xb08001) AM_READWRITE(sci_spriteframe_r, sci_spriteframe_w)   /* alternates 0/0x100 */
19731760ADDRESS_MAP_END
19741761
1975static ADDRESS_MAP_START( racingb_cpub_readmem, ADDRESS_SPACE_PROGRAM, 16 )
1976   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
1977   AM_RANGE(0x400000, 0x403fff) AM_READ(SMH_RAM)
1978   AM_RANGE(0x410000, 0x41ffff) AM_READ(sharedram_r)
1979   AM_RANGE(0xa00000, 0xa01fff) AM_READ(TC0150ROD_word_r)
1980   AM_RANGE(0xd00000, 0xd03fff) AM_READ(SMH_RAM)   /* network ram ? */
1762static ADDRESS_MAP_START( racingb_cpub_map, ADDRESS_SPACE_PROGRAM, 16 )
1763   AM_RANGE(0x000000, 0x03ffff) AM_ROM
1764   AM_RANGE(0x400000, 0x403fff) AM_RAM
1765   AM_RANGE(0x410000, 0x41ffff) AM_RAM AM_SHARE(1)
1766   AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(TC0150ROD_word_r, TC0150ROD_word_w)
1767   AM_RANGE(0xd00000, 0xd03fff) AM_RAM   /* network ram ? */
19811768ADDRESS_MAP_END
19821769
1983static ADDRESS_MAP_START( racingb_cpub_writemem, ADDRESS_SPACE_PROGRAM, 16 )
1984   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
1985   AM_RANGE(0x400000, 0x403fff) AM_WRITE(SMH_RAM)
1986   AM_RANGE(0x410000, 0x41ffff) AM_WRITE(sharedram_w) AM_BASE(&taitoz_sharedram)
1987   AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(TC0150ROD_word_w)
1988   AM_RANGE(0xd00000, 0xd03fff) AM_WRITE(SMH_RAM)   /* network ram ? */
1989ADDRESS_MAP_END
19901770
1991
19921771/***************************************************************************/
19931772
1994static ADDRESS_MAP_START( z80_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
1995   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
1996   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10)
1997   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
1998   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
1999   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
2000   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
2001   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
2002ADDRESS_MAP_END
2003
2004static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
2005   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
2006   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
2007   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
2008   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
2009   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
1773static ADDRESS_MAP_START( z80_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
1774   AM_RANGE(0x0000, 0x3fff) AM_ROM
1775   AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(10)
1776   AM_RANGE(0xc000, 0xdfff) AM_RAM
1777   AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ym", ym2610_r, ym2610_w)
1778   AM_RANGE(0xe200, 0xe200) AM_READNOP AM_WRITE(taitosound_slave_port_w)
1779   AM_RANGE(0xe201, 0xe201) AM_READWRITE(taitosound_slave_comm_r, taitosound_slave_comm_w)
20101780   AM_RANGE(0xe400, 0xe403) AM_WRITE(taitoz_pancontrol) /* pan */
2011   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
2012   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
1781   AM_RANGE(0xea00, 0xea00) AM_READNOP
1782   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
1783   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
20131784   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
20141785ADDRESS_MAP_END
20151786
r4470r4471
31282899
31292900   /* basic machine hardware */
31302901   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3131   MDRV_CPU_PROGRAM_MAP(contcirc_readmem,contcirc_writemem)
2902   MDRV_CPU_PROGRAM_MAP(contcirc_map,0)
31322903   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
31332904
31342905   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3135   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
2906   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
31362907
31372908   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3138   MDRV_CPU_PROGRAM_MAP(contcirc_cpub_readmem,contcirc_cpub_writemem)
2909   MDRV_CPU_PROGRAM_MAP(contcirc_cpub_map,0)
31392910   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
31402911
31412912   MDRV_MACHINE_START(taitoz)
r4470r4471
31842955
31852956   /* basic machine hardware */
31862957   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3187   MDRV_CPU_PROGRAM_MAP(chasehq_readmem,chasehq_writemem)
2958   MDRV_CPU_PROGRAM_MAP(chasehq_map,0)
31882959   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
31892960
31902961   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3191   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
2962   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
31922963
31932964   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3194   MDRV_CPU_PROGRAM_MAP(chq_cpub_readmem,chq_cpub_writemem)
2965   MDRV_CPU_PROGRAM_MAP(chq_cpub_map,0)
31952966   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
31962967
31972968   MDRV_MACHINE_START(taitoz)
r4470r4471
32383009
32393010   /* basic machine hardware */
32403011   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3241   MDRV_CPU_PROGRAM_MAP(enforce_readmem,enforce_writemem)
3012   MDRV_CPU_PROGRAM_MAP(enforce_map,0)
32423013   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
32433014
32443015   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3245   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3016   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
32463017
32473018   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3248   MDRV_CPU_PROGRAM_MAP(enforce_cpub_readmem,enforce_cpub_writemem)
3019   MDRV_CPU_PROGRAM_MAP(enforce_cpub_map,0)
32493020   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
32503021
32513022   MDRV_MACHINE_START(taitoz)
r4470r4471
32953066
32963067   /* basic machine hardware */
32973068   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3298   MDRV_CPU_PROGRAM_MAP(bshark_readmem,bshark_writemem)
3069   MDRV_CPU_PROGRAM_MAP(bshark_map,0)
32993070   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
33003071
33013072   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3302   MDRV_CPU_PROGRAM_MAP(bshark_cpub_readmem,bshark_cpub_writemem)
3073   MDRV_CPU_PROGRAM_MAP(bshark_cpub_map,0)
33033074   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
33043075
33053076   MDRV_MACHINE_START(taitoz)
r4470r4471
33473118
33483119   /* basic machine hardware */
33493120   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3350   MDRV_CPU_PROGRAM_MAP(sci_readmem,sci_writemem)
3121   MDRV_CPU_PROGRAM_MAP(sci_map,0)
33513122   MDRV_CPU_VBLANK_INT("screen", sci_interrupt)
33523123
33533124   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3354   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3125   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
33553126
33563127   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3357   MDRV_CPU_PROGRAM_MAP(sci_cpub_readmem,sci_cpub_writemem)
3128   MDRV_CPU_PROGRAM_MAP(sci_cpub_map,0)
33583129   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
33593130
33603131   MDRV_MACHINE_START(taitoz)
r4470r4471
34023173
34033174   /* basic machine hardware */
34043175   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3405   MDRV_CPU_PROGRAM_MAP(nightstr_readmem,nightstr_writemem)
3176   MDRV_CPU_PROGRAM_MAP(nightstr_map,0)
34063177   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
34073178
34083179   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3409   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3180   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
34103181
34113182   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3412   MDRV_CPU_PROGRAM_MAP(nightstr_cpub_readmem,nightstr_cpub_writemem)
3183   MDRV_CPU_PROGRAM_MAP(nightstr_cpub_map,0)
34133184   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
34143185
34153186   MDRV_MACHINE_START(taitoz)
r4470r4471
34583229
34593230   /* basic machine hardware */
34603231   MDRV_CPU_ADD("maincpu", M68000, 12000000)   /* 12 MHz ??? */
3461   MDRV_CPU_PROGRAM_MAP(aquajack_readmem,aquajack_writemem)
3232   MDRV_CPU_PROGRAM_MAP(aquajack_map,0)
34623233   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
34633234
34643235   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3465   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3236   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
34663237
34673238   MDRV_CPU_ADD("sub", M68000, 12000000)   /* 12 MHz ??? */
3468   MDRV_CPU_PROGRAM_MAP(aquajack_cpub_readmem,aquajack_cpub_writemem)
3239   MDRV_CPU_PROGRAM_MAP(aquajack_cpub_map,0)
34693240   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
34703241
34713242   MDRV_MACHINE_START(taitoz)
r4470r4471
35133284
35143285   /* basic machine hardware */
35153286   MDRV_CPU_ADD("maincpu", M68000, 16000000)   /* 16 MHz ??? */
3516   MDRV_CPU_PROGRAM_MAP(spacegun_readmem,spacegun_writemem)
3287   MDRV_CPU_PROGRAM_MAP(spacegun_map,0)
35173288   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
35183289
35193290   MDRV_CPU_ADD("sub", M68000, 16000000)   /* 16 MHz ??? */
3520   MDRV_CPU_PROGRAM_MAP(spacegun_cpub_readmem,spacegun_cpub_writemem)
3291   MDRV_CPU_PROGRAM_MAP(spacegun_cpub_map,0)
35213292   MDRV_CPU_VBLANK_INT("screen", irq4_line_hold)
35223293
35233294   MDRV_MACHINE_START(taitoz)
r4470r4471
35653336
35663337   /* basic machine hardware */
35673338   MDRV_CPU_ADD("maincpu", M68000, 16000000)   /* 16 MHz ??? */
3568   MDRV_CPU_PROGRAM_MAP(dblaxle_readmem,dblaxle_writemem)
3339   MDRV_CPU_PROGRAM_MAP(dblaxle_map,0)
35693340   MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt)
35703341
35713342   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3572   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3343   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
35733344
35743345   MDRV_CPU_ADD("sub", M68000, 16000000)   /* 16 MHz ??? */
3575   MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_readmem,dblaxle_cpub_writemem)
3346   MDRV_CPU_PROGRAM_MAP(dblaxle_cpub_map,0)
35763347   MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt)
35773348
35783349   MDRV_MACHINE_START(taitoz)
r4470r4471
36203391
36213392   /* basic machine hardware */
36223393   MDRV_CPU_ADD("maincpu", M68000, 16000000)   /* 16 MHz ??? */
3623   MDRV_CPU_PROGRAM_MAP(racingb_readmem,racingb_writemem)
3394   MDRV_CPU_PROGRAM_MAP(racingb_map,0)
36243395   MDRV_CPU_VBLANK_INT("screen", dblaxle_interrupt)
36253396
36263397   MDRV_CPU_ADD("audiocpu", Z80,16000000/4)   /* 4 MHz ??? */
3627   MDRV_CPU_PROGRAM_MAP(z80_sound_readmem,z80_sound_writemem)
3398   MDRV_CPU_PROGRAM_MAP(z80_sound_map,0)
36283399
36293400   MDRV_CPU_ADD("sub", M68000, 16000000)   /* 16 MHz ??? */
3630   MDRV_CPU_PROGRAM_MAP(racingb_cpub_readmem,racingb_cpub_writemem)
3401   MDRV_CPU_PROGRAM_MAP(racingb_cpub_map,0)
36313402   MDRV_CPU_VBLANK_INT("screen", dblaxle_cpub_interrupt)
36323403
36333404   MDRV_MACHINE_START(taitoz)
r4470r4471
39663737   ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
39673738ROM_END
39683739
3740ROM_START( chasehqu )
3741   ROM_REGION( 0x80000, "maincpu", 0 )   /* 512K for 68000 code (CPU A) */
3742   ROM_LOAD16_BYTE( "b52-138.36", 0x00000, 0x20000, CRC(8b71fe51) SHA1(6f2352aa2112dd18d328acddacf412b54c896ec0) )
3743   ROM_LOAD16_BYTE( "b52-135.29", 0x00001, 0x20000, CRC(5ba56a7c) SHA1(3af6f1008181d5a5951fbd6a48dd7592a9e38f96) )
3744   ROM_LOAD16_BYTE( "b52-131.37", 0x40000, 0x20000, CRC(aa945d83) SHA1(9d8a8186a199cacc0e24cf1ee75d81ab8b056406) )
3745   ROM_LOAD16_BYTE( "b52-129.30", 0x40001, 0x20000, CRC(0eaebc08) SHA1(1dde3304b251ddeb52f1378ef3845269c3667169) )
39693746
3747   ROM_REGION( 0x20000, "sub", 0 )   /* 128K for 68000 code (CPU B) */
3748   ROM_LOAD16_BYTE( "b52-132.39", 0x00000, 0x10000, CRC(a2f54789) SHA1(941a6470e3a5ae35d079657260a8d7d6a9fca122) )
3749   ROM_LOAD16_BYTE( "b52-133.55", 0x00001, 0x10000, CRC(12232f95) SHA1(2894b95fc1d0a6e5b323bf3e7f1968f02b30a845) )
3750
3751   ROM_REGION( 0x1c000, "audiocpu", 0 )   /* Z80 sound cpu */
3752   ROM_LOAD( "b52-137.51",   0x00000, 0x04000, CRC(37abb74a) SHA1(1feb1e49102c13a90e02c150472545cd9f6334da) )
3753   ROM_CONTINUE(           0x10000, 0x0c000 )   /* banked stuff */
3754
3755   ROM_REGION( 0x80000, "gfx1", ROMREGION_DISPOSE )
3756   ROM_LOAD( "b52-29.27", 0x00000, 0x80000, CRC(8366d27c) SHA1(d7c5f588b39742927228ce73e5d69bda1e903df6) )   /* SCR 8x8*/
3757
3758   ROM_REGION( 0x200000, "gfx2", ROMREGION_DISPOSE )
3759   ROM_LOAD32_BYTE( "b52-34.5",  0x000000, 0x080000, CRC(7d8dce36) SHA1(ca082e647d10378144c05a70a8e4fe352d95eeaf) )
3760   ROM_LOAD32_BYTE( "b52-35.7",  0x000001, 0x080000, CRC(78eeec0d) SHA1(2e82186ca17c579816865ef21c52aef9e133fbf5) )   /* OBJ A 16x16 */
3761   ROM_LOAD32_BYTE( "b52-36.9",  0x000002, 0x080000, CRC(61e89e91) SHA1(f655b3caa37a8835c2eb11f4d72e985636ac5379) )
3762   ROM_LOAD32_BYTE( "b52-37.11", 0x000003, 0x080000, CRC(f02e47b9) SHA1(093864bd18bd58dafa57990e999f394ca3124452) )
3763
3764   ROM_REGION( 0x80000, "gfx3", 0 )   /* don't dispose */
3765   ROM_LOAD( "b52-28.4", 0x00000, 0x80000, CRC(963bc82b) SHA1(e3558aecd1b82ddbf10ab2b71843a3664705f1f1) )   /* ROD, road lines */
3766
3767   ROM_REGION( 0x200000, "gfx4", ROMREGION_DISPOSE )
3768   ROM_LOAD32_BYTE( "b52-30.4",  0x000000, 0x080000, CRC(1b8cc647) SHA1(8807fe01b6804507564fc179adf995bf86521fda) )
3769   ROM_LOAD32_BYTE( "b52-31.6",  0x000001, 0x080000, CRC(f1998e20) SHA1(b03d4e373e88933391f3533b885817edfca4cfdf) )   /* OBJ B 16x16 */
3770   ROM_LOAD32_BYTE( "b52-32.8",  0x000002, 0x080000, CRC(8620780c) SHA1(2545fd8fb03dcddc3da86d5ea06a6dc915acd1a1) )
3771   ROM_LOAD32_BYTE( "b52-33.10", 0x000003, 0x080000, CRC(e6f4b8c4) SHA1(8d15c75a16953aa56fb3dc6fd3b691e227bef622) )
3772
3773   ROM_REGION16_LE( 0x80000, "user1", 0 )
3774   ROM_LOAD16_WORD( "b52-38.34", 0x00000, 0x80000, CRC(5b5bf7f6) SHA1(71dd5b40b83870d351c9ecaccc4fb98c3a6740ae) )   /* STY spritemap */
3775
3776   ROM_REGION( 0x180000, "ym", 0 )   /* ADPCM samples */
3777   ROM_LOAD( "b52-115.71", 0x000000, 0x080000, CRC(4e117e93) SHA1(51d893fa21793335878c76f6d5987d99da60be04) )
3778   ROM_LOAD( "b52-114.72", 0x080000, 0x080000, CRC(3a73d6b1) SHA1(419f02a875b30913331db207e344d0eaa275297e) )
3779   ROM_LOAD( "b52-113.73", 0x100000, 0x080000, CRC(2c6a3a05) SHA1(f2f0dfbbbb6930bf53025064ebae9c07a95c6deb) )
3780
3781   ROM_REGION( 0x80000, "ym.deltat", 0 )   /* Delta-T samples */
3782   ROM_LOAD( "b52-116.70", 0x00000, 0x80000, CRC(ad46983c) SHA1(6fcad67456fbd8c967cd4786815f70b57a24a969) )
3783
3784   ROM_REGION( 0x10000, "user2", 0 )   /* unused ROMs */
3785   ROM_LOAD( "b52-01.7",    0x00000, 0x00100, CRC(89719d17) SHA1(50181b8172b0fc08b149db18caf10659be9c517f) )   // road/sprite priority and palette select
3786   ROM_LOAD( "b52-03.135",  0x00000, 0x00400, CRC(a3f8490d) SHA1(349b8c9ba914603f72f800a3fc8e8277d756deb1) )
3787   ROM_LOAD( "b52-06.24",   0x00000, 0x00100, CRC(fbf81f30) SHA1(c868452c334792345dcced075f6df69cff9e31ca) )   // road A/B internal priority
3788   ROM_LOAD( "b52-18.93",   0x00000, 0x00100, CRC(60bdaf1a) SHA1(0cb9c6b821de9ccc1f38336608dd7ead46cb8d24) )   // identical to b52-18b
3789   ROM_LOAD( "b52-18a",     0x00000, 0x00100, CRC(6271be0d) SHA1(84282af98fc0de10e88282f7187cd865133ed6ce) )
3790   ROM_LOAD( "b52-49.68",   0x00000, 0x02000, CRC(60dd2ed1) SHA1(8673b6b3355975fb91cd1491e0ac7c0f590e3824) )
3791   ROM_LOAD( "b52-50.66",   0x00000, 0x10000, CRC(c189781c) SHA1(af3904ce51f715970965d110313491dbacf188b8) )
3792   ROM_LOAD( "b52-51.65",   0x00000, 0x10000, CRC(30cc1f79) SHA1(3b0e3e6e8bce7a7d04a5b0103e2ce4e18e52a68e) )
3793   ROM_LOAD( "b52-126.136", 0x00000, 0x00400, CRC(fa2f840e) SHA1(dd61ee6833bd43bbf619d36ec46f2bfa00880f40) )
3794   ROM_LOAD( "b52-127.156", 0x00000, 0x00400, CRC(77682a4f) SHA1(da2b3143f1c8688a22d8ec47bbb73b2f2e578480) )
3795
3796   ROM_REGION( 0x02a00, "plds", ROMREGION_DISPOSE )
3797   ROM_LOAD( "pal20l8b-b52-17.ic18",   0x0000, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
3798   ROM_LOAD( "pal20l8b-b52-17.ic16",   0x0200, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
3799   ROM_LOAD( "pal20l8b-b52-17.ic53",   0x0400, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
3800   ROM_LOAD( "pal20l8b-b52-17.ic55",   0x0600, 0x0144, CRC(4851316d) SHA1(c58537b4b1ded471b7edcb94518757916a207bc0) )
3801   ROM_LOAD( "pal16l8b-b52-19.ic33",   0x0800, 0x0104, CRC(3ba292dc) SHA1(ce904e92e9c0d73802e6f53dc747204c194281c5) )
3802   ROM_LOAD( "pal16l8b-b52-20.ic35",   0x0a00, 0x0104, CRC(bd39ad73) SHA1(03120f3d7d0b9b9105990e226388f9cdd53e5789) )
3803   ROM_LOAD( "pal16l8b-b52-21.ic51",   0x0c00, 0x0104, CRC(2fe76aa4) SHA1(9ea187cff3e0edb58b019400cfc4bf342d4304c3) )
3804   ROM_LOAD( "pal20l8b-b52-25.ic123",  0x0e00, 0x0144, CRC(372b632d) SHA1(84631489c9f56907a97d686c35b15284fab09e8d) )
3805   ROM_LOAD( "pal20l8b-b52-26.ic15",   0x1000, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
3806   ROM_LOAD( "pal20l8b-b52-26.ic18",   0x1200, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
3807   ROM_LOAD( "pal20l8b-b52-26.ic52",   0x1400, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
3808   ROM_LOAD( "pal20l8b-b52-26.ic54",   0x1600, 0x0144, CRC(d94f2bc2) SHA1(5ef92f824549add1a115ec25a10567bd4fe65c41) )
3809   ROM_LOAD( "pal20l8b-b52-27.ic64",   0x1800, 0x0144, CRC(61c2ab26) SHA1(8540d452a21581739b1ab08708b0c799dd2d2393) )
3810   ROM_LOAD( "pal20l8b-b52-118.ic20",  0x1a00, 0x0144, CRC(9c5fe4af) SHA1(1fbc6461f067eeac9679ca32c126563951a99c09) )
3811   ROM_LOAD( "pal20l8b-b52-119.ic21",  0x1c00, 0x0144, CRC(8b8e2106) SHA1(be59baae5cada9901c2ea8891f99731f010364db) )
3812   ROM_LOAD( "pal16l8b-b52-120.ic56",  0x1e00, 0x0104, CRC(3e7effa0) SHA1(0e8c09613b6a9311261aa8fa8bafab0f27081741) )
3813   ROM_LOAD( "pal20l8b-b52-121.ic57",  0x2000, 0x0144, CRC(7056fd1d) SHA1(fc032f24b95ff7a8bf5a7badddef51c5447c445d) )
3814   ROM_LOAD( "pal16l8b-b52-122.ic124", 0x2200, 0x0104, CRC(04c0fb04) SHA1(53dfeb747e213c67a78c1407e43cdad4cec2cb7e) )
3815   ROM_LOAD( "pal16l8b-b52-123.ic125", 0x2400, 0x0104, CRC(3865d1c8) SHA1(2d77326be4fb047243c3d5c33c442b009bf6fc04) )
3816   ROM_LOAD( "pal16l8b-b52-124.ic180", 0x2600, 0x0104, NO_DUMP )   /* read protected */
3817   ROM_LOAD( "pal16l8b-b52-125.ic112", 0x2800, 0x0104, CRC(7628c557) SHA1(11bf628e091dc02e0c2e17ae726061ac04705a54) )
3818ROM_END
3819
3820
39703821/*
39713822Enforce
39723823Taito, 198?/199?
r4470r4471
47884639GAMEL(1987, contcrua, contcirc, contcirc, contcrcu, taitoz,   ROT0,               "Taito America Corporation", "Continental Circus (US set 2)", GAME_IMPERFECT_GRAPHICS, layout_contcirc )
47894640GAMEL(1988, chasehq,  0,        chasehq,  chasehq,  taitoz,   ROT0,               "Taito Corporation Japan", "Chase H.Q. (World)", GAME_IMPERFECT_GRAPHICS, layout_contcirc )
47904641GAMEL(1988, chasehqj, chasehq,  chasehq,  chasehqj, taitoz,   ROT0,               "Taito Corporation", "Chase H.Q. (Japan)", GAME_IMPERFECT_GRAPHICS, layout_contcirc )
4642GAMEL(1988, chasehqu, chasehq,  chasehq,  chasehq,  taitoz,   ROT0,               "Taito America Corporation", "Chase H.Q. (US)", GAME_IMPERFECT_GRAPHICS, layout_contcirc )
47914643GAME( 1988, enforce,  0,        enforce,  enforce,  taitoz,   ROT0,               "Taito Corporation", "Enforce (Japan)", GAME_IMPERFECT_GRAPHICS )
47924644GAME( 1989, bshark,   0,        bshark,   bshark,   bshark,   ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", GAME_IMPERFECT_GRAPHICS )
47934645GAME( 1989, bsharkj,  bshark,   bshark,   bsharkj,  bshark,   ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", GAME_IMPERFECT_GRAPHICS )
src/mame/drivers/embargo.c
r4470r4471
170170static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
171171   AM_RANGE(0x01, 0x01) AM_READ_PORT("IN0") AM_WRITE(port_1_w)
172172   AM_RANGE(0x02, 0x02) AM_READWRITE(dial_r, port_2_w)
173   AM_RANGE(0x03, 0x03) AM_WRITE(SMH_NOP) /* always 0xFE */
173   AM_RANGE(0x03, 0x03) AM_WRITENOP /* always 0xFE */
174174   AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_PORT("IN2")
175175   AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(input_port_bit_r, input_select_w)
176176ADDRESS_MAP_END
src/mame/drivers/markham.c
r4470r4471
5656   AM_RANGE(0xd000, 0xd7ff) AM_WRITE(markham_videoram_w) AM_BASE(&videoram)
5757   AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) AM_SHARE(1)
5858
59   AM_RANGE(0xe008, 0xe008) AM_WRITE(SMH_NOP) /* coin counter? */
59   AM_RANGE(0xe008, 0xe008) AM_WRITENOP /* coin counter? */
6060
61   AM_RANGE(0xe009, 0xe009) AM_WRITE(SMH_NOP) /* to CPU2 busreq */
61   AM_RANGE(0xe009, 0xe009) AM_WRITENOP /* to CPU2 busreq */
6262
6363   AM_RANGE(0xe00c, 0xe00d) AM_WRITE(SMH_RAM) AM_BASE(&markham_xscroll)
6464   AM_RANGE(0xe00e, 0xe00e) AM_WRITE(markham_flipscreen_w)
r4470r4471
7676   AM_RANGE(0xc000, 0xc000) AM_DEVWRITE("sn1", sn76496_w)
7777   AM_RANGE(0xc001, 0xc001) AM_DEVWRITE("sn2", sn76496_w)
7878
79   AM_RANGE(0xc002, 0xc002) AM_WRITE(SMH_NOP) /* unknown */
80   AM_RANGE(0xc003, 0xc003) AM_WRITE(SMH_NOP) /* unknown */
79   AM_RANGE(0xc002, 0xc002) AM_WRITENOP /* unknown */
80   AM_RANGE(0xc003, 0xc003) AM_WRITENOP /* unknown */
8181ADDRESS_MAP_END
8282
8383
src/mame/drivers/msisaac.c
r4470r4471
224224   AM_RANGE(0xf0a3, 0xf0a3) AM_WRITE(ms_unknown_w)         //???? written in interrupt routine
225225
226226   AM_RANGE(0xf060, 0xf060) AM_WRITE(sound_command_w)      //sound command
227   AM_RANGE(0xf061, 0xf061) AM_WRITE(SMH_NOP) /*sound_reset*/   //????
227   AM_RANGE(0xf061, 0xf061) AM_WRITENOP /*sound_reset*/   //????
228228
229229   AM_RANGE(0xf000, 0xf000) AM_WRITE(msisaac_bg2_textbank_w)
230230   AM_RANGE(0xf001, 0xf001) AM_WRITE(SMH_RAM)          //???
r4470r4471
255255   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
256256   AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM)
257257   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)
258   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_NOP) /*space for diagnostic ROM (not dumped, not reachable) */
258   AM_RANGE(0xe000, 0xffff) AM_READNOP /*space for diagnostic ROM (not dumped, not reachable) */
259259ADDRESS_MAP_END
260260
261261
r4470r4471
323323
324324   AM_RANGE(0xc001, 0xc001) AM_WRITE(nmi_enable_w)
325325   AM_RANGE(0xc002, 0xc002) AM_WRITE(nmi_disable_w)
326   AM_RANGE(0xc003, 0xc003) AM_WRITE(SMH_NOP) /*???*/ /* this is NOT mixer_enable */
326   AM_RANGE(0xc003, 0xc003) AM_WRITENOP /*???*/ /* this is NOT mixer_enable */
327327
328328ADDRESS_MAP_END
329329
src/mame/drivers/superqix.c
r4470r4471
544544   AM_RANGE(0x0408, 0x0408) AM_READ(pbillian_from_mcu_r)
545545   AM_RANGE(0x0408, 0x0408) AM_WRITE(pbillian_z80_mcu_w)
546546   AM_RANGE(0x0410, 0x0410) AM_WRITE(pbillian_0410_w)
547   AM_RANGE(0x0418, 0x0418) AM_READ(SMH_NOP)  //?
548   AM_RANGE(0x0419, 0x0419) AM_WRITE(SMH_NOP)  //? watchdog ?
547   AM_RANGE(0x0418, 0x0418) AM_READNOP  //?
548   AM_RANGE(0x0419, 0x0419) AM_WRITENOP  //? watchdog ?
549549   AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w)
550   AM_RANGE(0x041b, 0x041b) AM_READ(SMH_NOP)  // input related? but probably not used
550   AM_RANGE(0x041b, 0x041b) AM_READNOP  // input related? but probably not used
551551ADDRESS_MAP_END
552552
553553static ADDRESS_MAP_START( hotsmash_port_map, ADDRESS_SPACE_IO, 8 )
r4470r4471
557557   AM_RANGE(0x0408, 0x0408) AM_READ(hotsmash_from_mcu_r)
558558   AM_RANGE(0x0408, 0x0408) AM_WRITE(hotsmash_z80_mcu_w)
559559   AM_RANGE(0x0410, 0x0410) AM_WRITE(pbillian_0410_w)
560   AM_RANGE(0x0418, 0x0418) AM_READ(SMH_NOP)  //?
561   AM_RANGE(0x0419, 0x0419) AM_WRITE(SMH_NOP)  //? watchdog ?
560   AM_RANGE(0x0418, 0x0418) AM_READNOP  //?
561   AM_RANGE(0x0419, 0x0419) AM_WRITENOP  //? watchdog ?
562562   AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w)
563   AM_RANGE(0x041b, 0x041b) AM_READ(SMH_NOP)  // input related? but probably not used
563   AM_RANGE(0x041b, 0x041b) AM_READNOP  // input related? but probably not used
564564ADDRESS_MAP_END
565565
566566static ADDRESS_MAP_START( sqix_port_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/playch10.c
r4470r4471
16591659GAME( 1986, pc_goons, playch10, playch10, playch10, pccboard, ROT0, "Konami",                           "The Goonies (PlayChoice-10)", 0 )
16601660
16611661/* D-Board Games */
1662GAME( 1986, pc_mtoid, playch10, playch10, playch10, pcdboard_2, ROT0, "Nintendo",                           "Metroid (PlayChoice-10)", 0 )
1662GAME( 1986, pc_mtoid, playch10, playch10, playch10, pcdboard_2, ROT0, "Nintendo",                        "Metroid (PlayChoice-10)", 0 )
16631663GAME( 1987, pc_radrc, playch10, playch10, playch10, pcdboard, ROT0, "Square",                           "Rad Racer (PlayChoice-10)", 0 )
16641664
16651665/* E-Board Games */
r4470r4471
16681668/* F-Board Games */
16691669GAME( 1987, pc_rcpam, playch10, playch10, playch10, pcfboard, ROT0, "Rare",                              "R.C. Pro-Am (PlayChoice-10)", 0 )
16701670GAME( 1987, pc_rrngr, playch10, playch10, playch10, pcfboard, ROT0, "Capcom USA (Nintendo of America license)", "Chip'n Dale: Rescue Rangers (PlayChoice-10)", 0 )
1671GAME( 1988, pc_ddrgn, playch10, playch10, playch10, pcfboard, ROT0, "Technos",                           "Double Dragon (PlayChoice-10)", 0 )
1671GAME( 1988, pc_ddrgn, playch10, playch10, playch10, pcfboard, ROT0, "Technos Japan",                     "Double Dragon (PlayChoice-10)", 0 )
16721672GAME( 1989, pc_ngaid, playch10, playch10, playch10, pcfboard, ROT0, "Tecmo (Nintendo of America license)",      "Ninja Gaiden (PlayChoice-10)", 0 )
16731673GAME( 1989, pc_tmnt,  playch10, playch10, playch10, pcfboard, ROT0, "Konami (Nintendo of America license)",      "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 )
16741674GAME( 1989, pc_ftqst, playch10, playch10, playch10, pcfboard, ROT0, "Sunsoft (Nintendo of America license)",   "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 )
r4470r4471
16831683GAME( 1990, pc_mman3, playch10, playch10, playch10, pcgboard, ROT0, "Capcom USA (Nintendo of America license)",   "Mega Man III (PlayChoice-10)", 0 )
16841684GAME( 1990, pc_suprc, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)",      "Super C (PlayChoice-10)", 0 )
16851685GAME( 1990, pc_tmnt2, playch10, playch10, playch10, pcgboard, ROT0, "Konami (Nintendo of America license)",      "Teenage Mutant Ninja Turtles II: The Arcade Game (PlayChoice-10)", 0 )
1686GAME( 1990, pc_wcup,  playch10, playch10, playch10, pcgboard, ROT0, "Technos (Nintendo license)",            "Nintendo World Cup (PlayChoice-10)", 0 )
1686GAME( 1990, pc_wcup,  playch10, playch10, playch10, pcgboard, ROT0, "Technos Japan (Nintendo license)",         "Nintendo World Cup (PlayChoice-10)", 0 )
16871687GAME( 1990, pc_ngai2, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)",      "Ninja Gaiden Episode II: The Dark Sword of Chaos (PlayChoice-10)", 0 )
16881688GAME( 1991, pc_ngai3, playch10, playch10, playch10, pcgboard, ROT0, "Tecmo (Nintendo of America license)",      "Ninja Gaiden Episode III: The Ancient Ship of Doom (PlayChoice-10)", 0 )
16891689GAME( 1991, pc_pwbld, playch10, playch10, playch10, pcgboard, ROT0, "Taito (Nintendo of America license)",      "Power Blade (PlayChoice-10)", 0 )
src/mame/drivers/rastan.c
r4470r4471
225225   AM_RANGE(0x000000, 0x05ffff) AM_ROM
226226   AM_RANGE(0x10c000, 0x10ffff) AM_RAM
227227   AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
228   AM_RANGE(0x350008, 0x350009) AM_WRITE(SMH_NOP)   /* 0 only (often) ? */
228   AM_RANGE(0x350008, 0x350009) AM_WRITENOP   /* 0 only (often) ? */
229229   AM_RANGE(0x380000, 0x380001) AM_WRITE(rastan_spritectrl_w)   /* sprite palette bank, coin counters & lockout */
230230   AM_RANGE(0x390000, 0x390001) AM_READ_PORT("P1")
231231   AM_RANGE(0x390002, 0x390003) AM_READ_PORT("P2")
r4470r4471
234234   AM_RANGE(0x390008, 0x390009) AM_READ_PORT("DSWA")
235235   AM_RANGE(0x39000a, 0x39000b) AM_READ_PORT("DSWB")
236236   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w)
237   AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w)
238   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
237   AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
238   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
239239   AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(PC080SN_word_0_r, PC080SN_word_0_w)
240240   AM_RANGE(0xc20000, 0xc20003) AM_WRITE(PC080SN_yscroll_word_0_w)
241241   AM_RANGE(0xc40000, 0xc40003) AM_WRITE(PC080SN_xscroll_word_0_w)
src/mame/drivers/pntnpuzl.c
r4470r4471
383383
384384static ADDRESS_MAP_START( pntnpuzl_map, ADDRESS_SPACE_PROGRAM, 16 )
385385   AM_RANGE(0x000000, 0x07ffff) AM_ROM
386   AM_RANGE(0x080000, 0x080001) AM_READ(SMH_NOP) //|
387   AM_RANGE(0x100000, 0x100001) AM_READ(SMH_NOP)   //| irq lines clear
388   AM_RANGE(0x180000, 0x180001) AM_READ(SMH_NOP) //|
386   AM_RANGE(0x080000, 0x080001) AM_READNOP //|
387   AM_RANGE(0x100000, 0x100001) AM_READNOP   //| irq lines clear
388   AM_RANGE(0x180000, 0x180001) AM_READNOP //|
389389   AM_RANGE(0x200000, 0x200001) AM_WRITE(pntnpuzl_200000_w)
390390   AM_RANGE(0x280000, 0x280001) AM_READ(pntnpuzl_eeprom_r)
391391   AM_RANGE(0x280002, 0x280003) AM_READ_PORT("IN2")
392392   AM_RANGE(0x280000, 0x280001) AM_WRITE(pntnpuzl_eeprom_w)
393   AM_RANGE(0x280008, 0x280009) AM_WRITE(SMH_NOP)
394   AM_RANGE(0x28000a, 0x28000b) AM_WRITE(SMH_NOP)
395   AM_RANGE(0x280010, 0x280011) AM_WRITE(SMH_NOP)
396   AM_RANGE(0x280012, 0x280013) AM_WRITE(SMH_NOP)
393   AM_RANGE(0x280008, 0x280009) AM_WRITENOP
394   AM_RANGE(0x28000a, 0x28000b) AM_WRITENOP
395   AM_RANGE(0x280010, 0x280011) AM_WRITENOP
396   AM_RANGE(0x280012, 0x280013) AM_WRITENOP
397397   AM_RANGE(0x280014, 0x280015) AM_READ(pntnpuzl_280014_r)
398   AM_RANGE(0x280016, 0x280017) AM_WRITE(SMH_NOP)
398   AM_RANGE(0x280016, 0x280017) AM_WRITENOP
399399   AM_RANGE(0x280018, 0x280019) AM_WRITE(pntnpuzl_280018_w)
400400   AM_RANGE(0x28001a, 0x28001b) AM_READ(pntnpuzl_28001a_r)
401   AM_RANGE(0x28001a, 0x28001b) AM_WRITE(SMH_NOP)
401   AM_RANGE(0x28001a, 0x28001b) AM_WRITENOP
402402
403403   /* standard VGA */
404404   AM_RANGE(0x3a0000, 0x3affff) AM_READWRITE(pntnpuzl_vid_r, pntnpuzl_vid_w)
src/mame/drivers/gijoe.c
r4470r4471
4343#include "machine/eeprom.h"
4444#include "sound/2151intf.h"
4545#include "sound/k054539.h"
46#include "konamipt.h"
4647
47
4848VIDEO_START( gijoe );
4949VIDEO_UPDATE( gijoe );
5050
r4470r4471
236236   AM_RANGE(0x122000, 0x123fff) AM_WRITE(K056832_ram_word_w)
237237   AM_RANGE(0x130000, 0x131fff) AM_WRITE(SMH_ROM)
238238   AM_RANGE(0x160000, 0x160007) AM_WRITE(K056832_b_word_w)   // VSCCS (board dependent)
239   AM_RANGE(0x170000, 0x170001) AM_WRITE(SMH_NOP)         // Watchdog
239   AM_RANGE(0x170000, 0x170001) AM_WRITENOP         // Watchdog
240240   AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM) AM_BASE(&gijoe_workram)
241241   AM_RANGE(0x190000, 0x190fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
242242   AM_RANGE(0x1a0000, 0x1a001f) AM_WRITE(K053251_lsb_w)
r4470r4471
282282   PORT_BIT( 0x0800, IP_ACTIVE_LOW,  IPT_SERVICE4 )
283283
284284   PORT_START("P1_P2")
285   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
286   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
287   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
288   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
289   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
290   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
291   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
285   KONAMI16_LSB_40(1, IPT_BUTTON3 )
292286   PORT_DIPNAME( 0x0080, 0x0000, "Sound" )
293287   PORT_DIPSETTING(      0x0080, DEF_STR( Mono ) )
294288   PORT_DIPSETTING(      0x0000, DEF_STR( Stereo ) )
295   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
296   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
297   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
298   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
299   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
300   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
301   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
289   KONAMI16_MSB_40(2, IPT_BUTTON3 )
302290   PORT_DIPNAME( 0x8000, 0x8000, "Coin mechanism" )
303291   PORT_DIPSETTING(      0x8000, "Common" )
304292   PORT_DIPSETTING(      0x0000, "Independant" )
305293
306294   PORT_START("P3_P4")
307   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
308   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
309   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
310   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
311   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
312   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
313   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
295   KONAMI16_LSB_40(3, IPT_BUTTON3 )
314296   PORT_DIPNAME( 0x0080, 0x0000, DEF_STR( Players ) )
315297   PORT_DIPSETTING(      0x0080, "2" )
316298   PORT_DIPSETTING(      0x0000, "4" )
317   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
318   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
319   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
320   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
321   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
322   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
323   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
299   KONAMI16_MSB_40(4, IPT_BUTTON3 )
324300   PORT_DIPUNUSED( 0x8000, IP_ACTIVE_LOW )
325301INPUT_PORTS_END
326302
src/mame/drivers/1945kiii.c
r4470r4471
131131
132132
133133static ADDRESS_MAP_START( k3_map, ADDRESS_SPACE_PROGRAM, 16 )
134   AM_RANGE(0x0009ce, 0x0009cf) AM_WRITE(SMH_NOP)   // bug in code? (clean up log)
135   AM_RANGE(0x0009d2, 0x0009d3) AM_WRITE(SMH_NOP)   // bug in code? (clean up log)
134   AM_RANGE(0x0009ce, 0x0009cf) AM_WRITENOP   // bug in code? (clean up log)
135   AM_RANGE(0x0009d2, 0x0009d3) AM_WRITENOP   // bug in code? (clean up log)
136136
137137   AM_RANGE(0x000000, 0x0fffff) AM_ROM   // ROM
138138   AM_RANGE(0x100000, 0x10ffff) AM_RAM   // Main Ram
src/mame/drivers/slapfght.c
r4470r4471
573573   AM_RANGE(0xa090, 0xa090) AM_DEVWRITE("ay2", ay8910_address_w)
574574   AM_RANGE(0xa092, 0xa092) AM_DEVWRITE("ay2", ay8910_data_w)
575575   AM_RANGE(0xa0e0, 0xa0e0) AM_WRITE(getstar_sh_intenable_w) /* maybe a0f0 also -LE */
576//  AM_RANGE(0xa0f0, 0xa0f0) AM_WRITE(SMH_NOP)
576//  AM_RANGE(0xa0f0, 0xa0f0) AM_WRITENOP
577577ADDRESS_MAP_END
578578
579579static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
src/mame/drivers/psikyosh.c
r4470r4471
486486   AM_RANGE(0x03004000, 0x0300ffff) AM_READ(SMH_RAM)
487487   AM_RANGE(0x03040000, 0x03044fff) AM_READ(SMH_RAM)
488488   AM_RANGE(0x03050000, 0x030501ff) AM_READ(SMH_RAM)
489   AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READ(SMH_NOP) // also writes to this address - might be vblank reads?
489   AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READNOP // also writes to this address - might be vblank reads?
490490   AM_RANGE(0x0305ffe0, 0x0305ffff) AM_READ(SMH_RAM) //  video registers
491491   AM_RANGE(0x05000000, 0x05000003) AM_DEVREAD8("ymf", ymf278b_r, 0xffffffff) // read YMF status
492492   AM_RANGE(0x05800000, 0x05800003) AM_READ_PORT("INPUTS")
r4470r4471
523523   AM_RANGE(0x04004000, 0x0400ffff) AM_READ(SMH_RAM)
524524   AM_RANGE(0x04040000, 0x04044fff) AM_READ(SMH_RAM)
525525   AM_RANGE(0x04050000, 0x040501ff) AM_READ(SMH_RAM)
526   AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READ(SMH_NOP) // also writes to this address - might be vblank reads?
526   AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READNOP // also writes to this address - might be vblank reads?
527527   AM_RANGE(0x0405ffe0, 0x0405ffff) AM_READ(SMH_RAM) // video registers
528528   AM_RANGE(0x05000000, 0x0507ffff) AM_READ(SMH_BANK1) // data ROM
529529   AM_RANGE(0x06000000, 0x060fffff) AM_READ(SMH_RAM)
src/mame/drivers/quizdna.c
r4470r4471
7171   ADDRESS_MAP_GLOBAL_MASK(0xff)
7272   AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w)
7373   AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w)
74   AM_RANGE(0x05, 0x06) AM_WRITE(SMH_NOP) /* unknown */
74   AM_RANGE(0x05, 0x06) AM_WRITENOP /* unknown */
7575   AM_RANGE(0x80, 0x80) AM_READ_PORT("P1")
7676   AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
7777   AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
r4470r4471
8686   ADDRESS_MAP_GLOBAL_MASK(0xff)
8787   AM_RANGE(0x00, 0x01) AM_WRITE(quizdna_bg_xscroll_w)
8888   AM_RANGE(0x02, 0x02) AM_WRITE(quizdna_bg_yscroll_w)
89   AM_RANGE(0x03, 0x04) AM_WRITE(SMH_NOP) /* unknown */
89   AM_RANGE(0x03, 0x04) AM_WRITENOP /* unknown */
9090   AM_RANGE(0x80, 0x80) AM_READ_PORT("P1")
9191   AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
9292   AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
r4470r4471
101101   ADDRESS_MAP_GLOBAL_MASK(0xff)
102102   AM_RANGE(0x02, 0x03) AM_WRITE(quizdna_bg_xscroll_w)
103103   AM_RANGE(0x04, 0x04) AM_WRITE(quizdna_bg_yscroll_w)
104   AM_RANGE(0x05, 0x06) AM_WRITE(SMH_NOP) /* unknown */
104   AM_RANGE(0x05, 0x06) AM_WRITENOP /* unknown */
105105   AM_RANGE(0x80, 0x80) AM_READ_PORT("P1")
106106   AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
107107   AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
src/mame/drivers/supertnk.c
r4470r4471
311311 *************************************/
312312
313313static ADDRESS_MAP_START( supertnk_io_map, ADDRESS_SPACE_IO, 8 )
314   AM_RANGE(0x0000, 0x0000) AM_WRITE(SMH_NOP)
314   AM_RANGE(0x0000, 0x0000) AM_WRITENOP
315315   AM_RANGE(0x0400, 0x0400) AM_WRITE(supertnk_bitplane_select_0_w)
316316   AM_RANGE(0x0401, 0x0401) AM_WRITE(supertnk_bitplane_select_1_w)
317317   AM_RANGE(0x0402, 0x0402) AM_WRITE(supertnk_bankswitch_0_w)
src/mame/drivers/neodrvr.c
r4470r4471
149149static INPUT_PORTS_START( irrmaze )
150150   PORT_START("IN0")
151151   STANDARD_DIPS
152   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, "0")
152   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0)
153153
154154   PORT_START("IN1")
155155   PORT_BIT( 0x0fff, IP_ACTIVE_LOW, IPT_UNUSED )
r4470r4471
181181   PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
182182
183183   PORT_START("IN0-0")
184   PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
185   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
184   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
186185
187186   PORT_START("IN0-1")
188   PORT_BIT( 0x00ff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
189   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
187   PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
190188INPUT_PORTS_END
191189
192190
193191static INPUT_PORTS_START( popbounc )
194192   PORT_START("IN0")
195193   STANDARD_DIPS
196   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, "0")
194   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)0)
197195
198196   PORT_START("IN1")
199197   PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
200   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, "1")
198   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(multiplexed_controller_r, (void *)1)
201199
202200   STANDARD_IN2
203201
r4470r4471
205203
206204   STANDARD_IN4
207205
206   /* Fake inputs read by CUSTOM_INPUT handlers */
208207   PORT_START("IN0-0")
209   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
210   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
211   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
212   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
213   PORT_BIT( 0x0090, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* note it needs it from 0x80 when using paddle */
214   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
215   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 )
216   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
208   PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
217209
218210   PORT_START("IN0-1")
219   PORT_BIT( 0x00ff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
211   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
212   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
213   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
214   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
215   PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) /* note it needs it from 0x80 when using paddle */
216   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
217   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
220218
221219   PORT_START("IN1-0")
222   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
223   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
224   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
225   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
226   PORT_BIT( 0x0090, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */
227   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
228   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
229   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
220   PORT_BIT( 0xff, 0x00, IPT_DIAL  ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2)
230221
231   PORT_START("IN1-1")      /* IN1 multiplexed */
232   PORT_BIT( 0x00ff, 0x0000, IPT_DIAL  ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2)
233   PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_UNUSED )
222   PORT_START("IN1-1")
223   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
224   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
225   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
226   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
227   PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */
228   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
229   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
234230INPUT_PORTS_END
235231
236232
r4470r4471
78527848/* Takara */
78537849GAME( 1995, marukodq, neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", 0 )
78547850
7855/* Technos */
7856GAME( 1995, doubledr, neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos", "Double Dragon (Neo-Geo)", 0 )
7857GAME( 1995, gowcaizr, neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", 0 )
7858GAME( 1996, sdodgeb,  neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 0 )
7851/* Technos Japan */
7852GAME( 1995, doubledr, neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", 0 )
7853GAME( 1995, gowcaizr, neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", 0 )
7854GAME( 1996, sdodgeb,  neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", 0 )
78597855
78607856/* Tecmo */
78617857GAME( 1996, tws96,    neogeo,   neogeo,   neogeo,   neogeo,   ROT0, "Tecmo", "Tecmo World Soccer '96", 0 )
src/mame/drivers/gradius3.c
r4470r4471
1313There's also something wrong in the way tile banks are implemented in
1414konamiic.c. They don't seem to be used by this game.
1515
162009-03:
17Added dsw locations and verified factory setting based on Guru's notes
18
1619***************************************************************************/
1720
1821#include "driver.h"
r4470r4471
2225#include "cpu/z80/z80.h"
2326#include "sound/2151intf.h"
2427#include "sound/k007232.h"
28#include "konamipt.h"
2529
26
2730extern UINT16 *gradius3_gfxram;
2831extern int gradius3_priority;
2932VIDEO_START( gradius3 );
r4470r4471
226229   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
227230
228231   PORT_START("P1")
229   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
230   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
231   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
232   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
233   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // power-up
234   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // shoot
235   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // missile
236   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
232   KONAMI8_MONO_B123_UNK                  // button1 = power-up, button2 = shoot, button3 = missile
237233
238234   PORT_START("P2")
239   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
240   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
241   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
242   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
243   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
244   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
245   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
246   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
235   KONAMI8_COCKTAIL_B123_UNK
247236
248237   PORT_START("DSW1")
249   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
250   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
251   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
252   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
253   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
254   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
255   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
256   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
257   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
258   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
259   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
260   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
261   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
262   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
263   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
264   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
265   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
266   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
267   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
268   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
269   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
270   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
271   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
272   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
273   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
274   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
275   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
276   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
277   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
278   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
279   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
280   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
281   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
282//  PORT_DIPSETTING(    0x00, "Invalid" )
238   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Invalid", SW1)
239   /* "Invalid" = both coin slots disabled */
283240
284241   PORT_START("DSW2")
285   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
242   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )         PORT_DIPLOCATION("SW2:1,2")
286243   PORT_DIPSETTING(    0x03, "2" )
287244   PORT_DIPSETTING(    0x02, "3" )
288245   PORT_DIPSETTING(    0x01, "5" )
289246   PORT_DIPSETTING(    0x00, "7" )
290   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
247   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )         PORT_DIPLOCATION("SW2:3")
291248   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
292249   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
293   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
294   PORT_DIPSETTING(    0x18, "20000 and every 70000" )
295   PORT_DIPSETTING(    0x10, "100000 and every 100000" )
296   PORT_DIPSETTING(    0x08, "50000" )
297   PORT_DIPSETTING(    0x00, "100000" )
298   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
250   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )      PORT_DIPLOCATION("SW2:4,5")
251   PORT_DIPSETTING(    0x18, "20k and every 70k" )
252   PORT_DIPSETTING(    0x10, "100k and every 100k" )
253   PORT_DIPSETTING(    0x08, "50k only" )
254   PORT_DIPSETTING(    0x00, "100k only" )
255   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )      PORT_DIPLOCATION("SW2:6,7")
299256   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
300257   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
301258   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
302259   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
303   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
260   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW2:8")
304261   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
305262   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
306263
307264   PORT_START("DSW3")
308   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
265   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )      PORT_DIPLOCATION("SW3:1")
309266   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
310267   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
311   PORT_DIPNAME( 0x02, 0x02, "Upright Controls" )
268   PORT_DIPNAME( 0x02, 0x02, "Upright Controls" )         PORT_DIPLOCATION("SW3:2")
312269   PORT_DIPSETTING(    0x02, DEF_STR( Single ) )
313270   PORT_DIPSETTING(    0x00, DEF_STR( Dual ) )
314   PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
315   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
316   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
317   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
271   PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" )
272   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )         /* Manual says it's unused */
318273   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
319274INPUT_PORTS_END
320275
src/mame/drivers/mystwarr.c
r4470r4471
3030#include "cpu/z80/z80.h"
3131#include "machine/eeprom.h"
3232#include "sound/k054539.h"
33#include "konamipt.h"
3334
3435VIDEO_START(gaiapols);
3536VIDEO_START(dadandrn);
r4470r4471
314315   }
315316}
316317
317static READ16_HANDLER( player1_r )
318{
319   return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P2")<<8);
320}
321
322static READ16_HANDLER( player2_r )
323{
324   return input_port_read(space->machine, "P3") | (input_port_read(space->machine, "P4")<<8);
325}
326
327static READ16_HANDLER( mmplayer1_r )
328{
329   return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P3")<<8);
330}
331
332static READ16_HANDLER( mmplayer2_r )
333{
334   return input_port_read(space->machine, "P2") | (input_port_read(space->machine, "P4")<<8);
335}
336
337318static READ16_HANDLER( mmcoins_r )
338319{
339320   int res = input_port_read(space->machine, "IN0");
r4470r4471
395376   AM_RANGE(0x200000, 0x20ffff) AM_READ(SMH_RAM)
396377   AM_RANGE(0x400000, 0x40ffff) AM_READ(K053247_scattered_word_r)
397378   AM_RANGE(0x482000, 0x48200f) AM_READ(K055673_rom_word_r)
398   AM_RANGE(0x494000, 0x494001) AM_READ(player1_r)
399   AM_RANGE(0x494002, 0x494003) AM_READ(player2_r)
379   AM_RANGE(0x494000, 0x494001) AM_READ_PORT("P1_P2")
380   AM_RANGE(0x494002, 0x494003) AM_READ_PORT("P3_P4")
400381   AM_RANGE(0x496000, 0x496001) AM_READ(mmcoins_r)
401382   AM_RANGE(0x496002, 0x496003) AM_READ(mweeprom_r)
402383   AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r)
r4470r4471
424405   AM_RANGE(0x48a000, 0x48a01f) AM_WRITE(K054338_word_w)
425406   AM_RANGE(0x48c000, 0x48c03f) AM_WRITE(K056832_word_w)
426407   AM_RANGE(0x490000, 0x490001) AM_WRITE(mweeprom_w)
427   AM_RANGE(0x492000, 0x492001) AM_WRITE(SMH_NOP)   // watchdog
408   AM_RANGE(0x492000, 0x492001) AM_WRITENOP   // watchdog
428409   AM_RANGE(0x49800c, 0x49800d) AM_WRITE(sound_cmd1_w)
429410   AM_RANGE(0x49800e, 0x49800f) AM_WRITE(sound_cmd2_w)
430411   AM_RANGE(0x498000, 0x49801f) AM_WRITE(SMH_RAM)
r4470r4471
447428   AM_RANGE(0x250000, 0x25000f) AM_READ(K053250_0_r)
448429   AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r)
449430   AM_RANGE(0x268000, 0x26801f) AM_READ(SMH_RAM)
450   AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r)
451   AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r)
431   AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3")
432   AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4")
452433   AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r)
453434   AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r)
454   AM_RANGE(0x27c000, 0x27c001) AM_READ(SMH_NOP)   // watchdog lives here
435   AM_RANGE(0x27c000, 0x27c001) AM_READNOP   // watchdog lives here
455436   AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r)
456437   AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r)   // tilemap RAM mirror read(essential)
457438   AM_RANGE(0x310000, 0x311fff) AM_READ(K056832_mw_rom_word_r)
r4470r4471
503484   AM_RANGE(0x25c000, 0x25c03f) AM_READ(K055550_word_r)
504485   AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r)
505486   AM_RANGE(0x268000, 0x26801f) AM_READ(SMH_RAM)
506   AM_RANGE(0x274000, 0x274001) AM_READ(mmplayer1_r)
507   AM_RANGE(0x274002, 0x274003) AM_READ(mmplayer2_r)
487   AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3")
488   AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4")
508489   AM_RANGE(0x278000, 0x278001) AM_READ(mmcoins_r)
509490   AM_RANGE(0x278002, 0x278003) AM_READ(vseeprom_r)
510   AM_RANGE(0x27c000, 0x27c001) AM_READ(SMH_NOP)      // watchdog lives here
491   AM_RANGE(0x27c000, 0x27c001) AM_READNOP      // watchdog lives here
511492   AM_RANGE(0x300000, 0x301fff) AM_READ(K056832_ram_word_r)
512493   AM_RANGE(0x302000, 0x303fff) AM_READ(K056832_ram_word_r) // tilemap RAM mirror read(essential)
513494   AM_RANGE(0x304000, 0x3041ff) AM_READ(SMH_RAM)
r4470r4471
606587   AM_RANGE(0x300000, 0x3fffff) AM_READ(SMH_ROM)         // data ROM
607588   AM_RANGE(0x402000, 0x40200f) AM_READ(K055673_rom_word_r)   // sprite ROM readback
608589   AM_RANGE(0x412000, 0x412001) AM_READ(mccontrol_r)
609   AM_RANGE(0x414000, 0x414001) AM_READ(player1_r)
610   AM_RANGE(0x414002, 0x414003) AM_READ(player2_r)
590   AM_RANGE(0x414000, 0x414001) AM_READ_PORT("P1_P2")
591   AM_RANGE(0x414002, 0x414003) AM_READ_PORT("P3_P4")
611592   AM_RANGE(0x416000, 0x416001) AM_READ(mmcoins_r)         // coin
612593   AM_RANGE(0x416002, 0x416003) AM_READ(mweeprom_r)         // eeprom read
613594   AM_RANGE(0x418014, 0x418015) AM_READ(sound_status_r)      // z80 status
r4470r4471
703684   AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w)
704685   AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w)
705686   AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w)
706   AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)   // watchdog
687   AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP   // watchdog
707688ADDRESS_MAP_END
708689
709690/* Gaiapolis */
r4470r4471
763744   AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w)
764745   AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE(ddd_053936_enable_w)
765746   AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w)
766   AM_RANGE(0xe00000, 0xe00001) AM_WRITE(SMH_NOP)    // watchdog
747   AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP    // watchdog
767748ADDRESS_MAP_END
768749
769750/**********************************************************************************/
r4470r4471
802783ADDRESS_MAP_END
803784
804785static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
805   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_NOP)
786   AM_RANGE(0x0000, 0xbfff) AM_WRITENOP
806787   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
807788   AM_RANGE(0xe000, 0xe22f) AM_DEVWRITE("konami1", k054539_w)
808789   AM_RANGE(0xe230, 0xe3ff) AM_WRITE(SMH_RAM)
r4470r4471
810791   AM_RANGE(0xe630, 0xe7ff) AM_WRITE(SMH_RAM)
811792   AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w)
812793   AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
813   AM_RANGE(0xfff0, 0xfff3) AM_WRITE(SMH_NOP)   // unknown write
794   AM_RANGE(0xfff0, 0xfff3) AM_WRITENOP   // unknown write
814795ADDRESS_MAP_END
815796
816797static const k054539_interface k054539_config =
r4470r4471
11241105   PORT_DIPSETTING(    0x40, "2" )
11251106   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
11261107
1127   PORT_START("P1")
1128   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1129   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1130   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1131   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1132   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1133   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1134   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1135   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1108   PORT_START("P1_P2")
1109   KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 )
1110   KONAMI16_MSB(2, IPT_BUTTON3, IPT_START2 )
11361111
1137   PORT_START("P2")
1138   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1139   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1140   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1141   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1142   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1143   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1144   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1145   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1146
1147   PORT_START("P3")
1148   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1149   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1150   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1151   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1152   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1153   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1154   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1155   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1156
1157   PORT_START("P4")
1158   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1159   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1160   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1161   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1162   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1163   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1164   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1165   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1112   PORT_START("P3_P4")
1113   KONAMI16_LSB(3, IPT_BUTTON3, IPT_START3 )
1114   KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 )
11661115INPUT_PORTS_END
11671116
11681117static INPUT_PORTS_START( metamrph )
r4470r4471
11941143   PORT_DIPSETTING(    0x80, DEF_STR( No ) )
11951144   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
11961145
1197   PORT_START("P1")
1198   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1199   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1200   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1201   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1202   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1203   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1204   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1205   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1146   PORT_START("P1_P3")
1147   KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 )
1148   KONAMI16_MSB(3, IPT_BUTTON3, IPT_START3 )
12061149
1207   PORT_START("P2")
1208   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1209   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1210   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1211   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1212   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1213   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1214   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1215   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1216
1217   PORT_START("P3")
1218   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1219   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1220   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1221   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1222   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1223   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1224   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1225   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1226
1227   PORT_START("P4")
1228   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1229   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1230   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1231   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1232   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1233   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1234   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1235   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1150   PORT_START("P2_P4")
1151   KONAMI16_LSB(2, IPT_BUTTON3, IPT_START2 )
1152   KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 )
12361153INPUT_PORTS_END
12371154
12381155static INPUT_PORTS_START( viostorm )
r4470r4471
12641181   PORT_DIPSETTING(    0x00, "3" )
12651182   PORT_DIPSETTING(    0x80, "2" )
12661183
1267   PORT_START("P1")
1268   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1269   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1270   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1271   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1272   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1273   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1274   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1275   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1184   PORT_START("P1_P3")
1185   KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 )
1186   KONAMI16_MSB(3, IPT_BUTTON3, IPT_START3 )
12761187
1277   PORT_START("P2")
1278   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1279   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1280   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1281   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1282   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1283   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1284   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1285   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1286
1287   PORT_START("P3")
1288   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1289   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1290   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1291   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1292   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1293   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1294   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1295   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1296
1297   PORT_START("P4")
1298   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1299   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1300   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1301   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1302   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1303   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1304   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1305   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1188   PORT_START("P2_P4")
1189   KONAMI16_LSB(2, IPT_BUTTON3, IPT_START2 )
1190   KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 )
13061191INPUT_PORTS_END
13071192
13081193static INPUT_PORTS_START( dadandrn )
r4470r4471
13311216   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
13321217
13331218   PORT_START("P1")
1334   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1335   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1336   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1337   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1338   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1339   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1340   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1341   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1219   KONAMI8_B123_START(1)
13421220
13431221   PORT_START("P2")
1344   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1345   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1346   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1347   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1348   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1349   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1350   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1351   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1222   KONAMI8_B123_START(2)
13521223
13531224   PORT_START("P3")
1354   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1355   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1356   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1357   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1358   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1359   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1360   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1361   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1225   KONAMI8_B123_START(3)
13621226
13631227   PORT_START("P4")
1364   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1365   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1366   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1367   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1368   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1369   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1370   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1371   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1228   KONAMI8_B123_START(4)
13721229INPUT_PORTS_END
13731230
13741231static INPUT_PORTS_START( martchmp )
r4470r4471
13961253   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
13971254   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
13981255
1399   PORT_START("P1")
1400   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
1401   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
1402   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
1403   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
1404   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1405   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1406   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1407   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
1256   PORT_START("P1_P2")
1257   KONAMI16_LSB(1, IPT_BUTTON3, IPT_START1 )
1258   KONAMI16_MSB(2, IPT_BUTTON3, IPT_START2 )
14081259
1409   PORT_START("P2")
1410   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
1411   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
1412   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
1413   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
1414   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
1415   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
1416   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
1417   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
1418
1419   PORT_START("P3")
1420   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
1421   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
1422   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
1423   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
1424   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
1425   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
1426   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
1427   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
1428
1429   PORT_START("P4")
1430   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
1431   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
1432   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
1433   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
1434   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
1435   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
1436   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
1437   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
1260   PORT_START("P3_P4")
1261   KONAMI16_LSB(3, IPT_BUTTON3, IPT_START3 )
1262   KONAMI16_MSB(4, IPT_BUTTON3, IPT_START4 )
14381263INPUT_PORTS_END
14391264
14401265/**********************************************************************************/
r4470r4471
17851610ROM_START( mtlchamp )
17861611   /* main program */
17871612   ROM_REGION( 0x400000, "maincpu", 0 )
1788        ROM_LOAD16_BYTE( "234eab01.20f", 0x000000, 0x40000, CRC(7c4d1e50) SHA1(f943b955aa66f0892c20df7a94fc8bf070bf4624) )
1789        ROM_LOAD16_BYTE( "234eab02.20g", 0x000001, 0x40000, CRC(d8bc85c9) SHA1(40a13b4139dd24c06378c6bd982ef3f5fd646dcc) )
1613   ROM_LOAD16_BYTE( "234eab01.20f", 0x000000, 0x40000, CRC(7c4d1e50) SHA1(f943b955aa66f0892c20df7a94fc8bf070bf4624) )
1614   ROM_LOAD16_BYTE( "234eab02.20g", 0x000001, 0x40000, CRC(d8bc85c9) SHA1(40a13b4139dd24c06378c6bd982ef3f5fd646dcc) )
17901615   ROM_LOAD16_BYTE( "234_d03.19f",  0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) )
17911616   ROM_LOAD16_BYTE( "234_d04.19g",  0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) )
17921617
r4470r4471
18191644ROM_START( mtlchmp1 )
18201645   /* main program */
18211646   ROM_REGION( 0x400000, "maincpu", 0 )
1822        ROM_LOAD16_BYTE( "234eaa01.20f", 0x000000, 0x40000, CRC(8fa731db) SHA1(e2ed81762070a764f51aae36ce03859b5d86520d) )
1823        ROM_LOAD16_BYTE( "234eaa02.20g", 0x000001, 0x40000, CRC(e7b50b54) SHA1(594391a37479e6973aadd1fc866671c306a75497) )
1647   ROM_LOAD16_BYTE( "234eaa01.20f", 0x000000, 0x40000, CRC(8fa731db) SHA1(e2ed81762070a764f51aae36ce03859b5d86520d) )
1648   ROM_LOAD16_BYTE( "234eaa02.20g", 0x000001, 0x40000, CRC(e7b50b54) SHA1(594391a37479e6973aadd1fc866671c306a75497) )
18241649   ROM_LOAD16_BYTE( "234_d03.19f",  0x300000, 0x80000, CRC(abb577c6) SHA1(493f11a10a4d5b62d755ff8274e77d898544944f) )
18251650   ROM_LOAD16_BYTE( "234_d04.19g",  0x300001, 0x80000, CRC(030a1925) SHA1(03783488950c9f27af5948e7b9f6a609c2df6e0b) )
18261651
r4470r4471
20901915ROM_START( mmaulers )
20911916   /* main program */
20921917   ROM_REGION( 0x400000, "maincpu", 0 )
2093        ROM_LOAD16_BYTE( "170eaa07.24m", 0x000000, 0x80000, CRC(5458bd93) SHA1(d27a29076be3c745e3efdb1c528b07bd5d8aff1c) )
2094        ROM_LOAD16_BYTE( "170eaa09.19l", 0x000001, 0x80000, CRC(99c95c7b) SHA1(7f22930c2fe21205ccd01b80566d6bc31fea34d2) )
1918   ROM_LOAD16_BYTE( "170eaa07.24m", 0x000000, 0x80000, CRC(5458bd93) SHA1(d27a29076be3c745e3efdb1c528b07bd5d8aff1c) )
1919   ROM_LOAD16_BYTE( "170eaa09.19l", 0x000001, 0x80000, CRC(99c95c7b) SHA1(7f22930c2fe21205ccd01b80566d6bc31fea34d2) )
20951920   ROM_LOAD16_BYTE( "170a08.21m",   0x100000, 0x40000, CRC(03c59ba2) SHA1(041473fe5f9004bfb7ca767c2004154c27f726ff) )
20961921   ROM_LOAD16_BYTE( "170a10.17l",   0x100001, 0x40000, CRC(8a340909) SHA1(3e2ef2642e792cdc38b3442df67377ed9e70d3ab) )
20971922
r4470r4471
22042029GAME( 1993, gaiapols, 0,        gaiapols, dadandrn, 0,        ROT90, "Konami", "Gaiapolis (ver EAF)", GAME_IMPERFECT_GRAPHICS )
22052030GAME( 1993, gaiapolu, gaiapols, gaiapols, dadandrn, 0,        ROT90, "Konami", "Gaiapolis (ver UAF)", GAME_IMPERFECT_GRAPHICS )
22062031GAME( 1993, gaiapolj, gaiapols, gaiapols, dadandrn, 0,        ROT90, "Konami", "Gaiapolis (ver JAF)", GAME_IMPERFECT_GRAPHICS )
2207
src/mame/drivers/fromance.c
r4470r4471
251251   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
252252   AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
253253   AM_RANGE(0xf000, 0xf000) AM_WRITE(fromance_portselect_w)
254   AM_RANGE(0xf001, 0xf001) AM_WRITE(SMH_NOP)
254   AM_RANGE(0xf001, 0xf001) AM_WRITENOP
255255   AM_RANGE(0xf002, 0xf002) AM_WRITE(fromance_coinctr_w)
256256   AM_RANGE(0xf003, 0xf003) AM_WRITE(fromance_commanddata_w)
257257ADDRESS_MAP_END
r4470r4471
260260static ADDRESS_MAP_START( fromance_readmem_main, ADDRESS_SPACE_PROGRAM, 8 )
261261   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
262262   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
263   AM_RANGE(0x9e89, 0x9e89) AM_READ(SMH_NOP)         // unknown (idolmj)
263   AM_RANGE(0x9e89, 0x9e89) AM_READNOP         // unknown (idolmj)
264264   AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE")
265265   AM_RANGE(0xe001, 0xe001) AM_READ(fromance_keymatrix_r)
266266   AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN")
r4470r4471
330330   ADDRESS_MAP_GLOBAL_MASK(0xff)
331331   AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
332332   AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
333   AM_RANGE(0x12, 0x12) AM_READ(SMH_NOP)            // unknown
333   AM_RANGE(0x12, 0x12) AM_READNOP            // unknown
334334   AM_RANGE(0xe0, 0xe0) AM_WRITE(fromance_rombank_w)
335335   AM_RANGE(0xe1, 0xe1) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w)
336336   AM_RANGE(0xe2, 0xe5) AM_WRITE(fromance_scroll_w)
r4470r4471
344344   ADDRESS_MAP_GLOBAL_MASK(0xff)
345345   AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
346346   AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
347   AM_RANGE(0x12, 0x12) AM_READ(SMH_NOP)            // unknown
347   AM_RANGE(0x12, 0x12) AM_READNOP            // unknown
348348   AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
349349   AM_RANGE(0x21, 0x21) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w)
350350   AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w)
r4470r4471
358358   ADDRESS_MAP_GLOBAL_MASK(0xff)
359359   AM_RANGE(0x10, 0x10) AM_WRITE(fromance_crtc_data_w)
360360   AM_RANGE(0x11, 0x11) AM_WRITE(fromance_crtc_register_w)
361   AM_RANGE(0x12, 0x12) AM_READ(SMH_NOP)            // unknown
361   AM_RANGE(0x12, 0x12) AM_READNOP            // unknown
362362   AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
363363   AM_RANGE(0x21, 0x21) AM_READWRITE(fromance_busycheck_sub_r, fromance_gfxreg_w)
364364   AM_RANGE(0x22, 0x25) AM_WRITE(fromance_scroll_w)
src/mame/drivers/skykid.c
r4470r4471
158158
159159static INPUT_PORTS_START( skykid )
160160   PORT_START("DSWA")   /* DSW A */
161   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
162   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
161   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
162   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
163163   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
164164   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
165165   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
166166   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
167   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
167   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
168168   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
169169   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
170   PORT_DIPNAME( 0x08, 0x08, "Round Skip" )
170   PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) PORT_DIPLOCATION("SWA:5")
171171   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
172172   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
173   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
173   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
174174   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
175175   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
176   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
176   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
177177   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
178178   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
179179   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
180180   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
181181
182182   PORT_START("DSWB")   /* DSW B */
183   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
183   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
184184   PORT_DIPSETTING(    0x80, "1" )
185185   PORT_DIPSETTING(    0x40, "2" )
186186   PORT_DIPSETTING(    0xc0, "3" )
187187   PORT_DIPSETTING(    0x00, "5" )
188   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
188   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3")
189189   PORT_DIPSETTING(    0x00, "20k every 80k" )
190190   PORT_DIPSETTING(    0x10, "20k and 80k" )
191191   PORT_DIPSETTING(    0x20, "30k every 90k" )
192192   PORT_DIPSETTING(    0x30, "30k and 90k" )
193   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
194   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
195   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
196   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
197   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
198   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
199   PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" )
193   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
194   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
195   PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) PORT_DIPLOCATION("SWB:7")
200196   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
201197   PORT_DIPSETTING(    0x02, DEF_STR( Yes ) )
202   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
198   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
203199   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
204200   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
205201
r4470r4471
237233
238234static INPUT_PORTS_START( skykids )
239235   PORT_START("DSWA")   /* DSW A */
240   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
241   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
236   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
237   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
242238   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
243239   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
244240   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
245241   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
246   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
242   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
247243   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
248244   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
249   PORT_DIPNAME( 0x08, 0x08, "Round Select" )
245   PORT_DIPNAME( 0x08, 0x08, "Round Select" ) PORT_DIPLOCATION("SWA:5")
250246   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
251247   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
252   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
248   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
253249   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
254250   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
255   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
251   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
256252   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
257253   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
258254   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
259255   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
260256
261257   PORT_START("DSWB")   /* DSW B */
262   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) )
258   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SWB:2,1")
263259   PORT_DIPSETTING(    0x80, "1" )
264260   PORT_DIPSETTING(    0x40, "2" )
265261   PORT_DIPSETTING(    0xc0, "3" )
266262   PORT_DIPSETTING(    0x00, "5" )
267   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
263   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SWB:4,3")
268264   PORT_DIPSETTING(    0x00, "30k every 80k" )
269265   PORT_DIPSETTING(    0x10, "30k and 80k" )
270266   PORT_DIPSETTING(    0x20, "40k every 90k" )
271267   PORT_DIPSETTING(    0x30, "40k and 90k" )
272   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
273   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
274   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
275   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
276   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
277   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
278   PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" )
268   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SWB:5" )
269   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SWB:6" )
270   PORT_DIPNAME( 0x02, 0x02, "Allow Buy In" ) PORT_DIPLOCATION("SWB:7")
279271   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
280272   PORT_DIPSETTING(    0x02, DEF_STR( Yes ) )
281   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
273   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWB:8")
282274   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
283275   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
284276
r4470r4471
316308
317309static INPUT_PORTS_START( drgnbstr )
318310   PORT_START("DSWA")   /* DSW A */
319   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
320   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) )
311   PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWA:1" )
312   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SWA:3,2")
321313   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
322314   PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) )
323315   PORT_DIPSETTING(    0x60, DEF_STR( 1C_1C ) )
324316   PORT_DIPSETTING(    0x40, DEF_STR( 1C_2C ) )
325   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) )
317   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWA:4")
326318   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
327319   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
328   PORT_DIPNAME( 0x08, 0x08, "Round Skip" )
320   PORT_DIPNAME( 0x08, 0x08, "Round Skip" ) PORT_DIPLOCATION("SWA:5")
329321   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
330322   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
331   PORT_DIPNAME( 0x04, 0x04, "Freeze" )
323   PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SWA:6")
332324   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
333325   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
334   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) )
326   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SWA:8,7")
335327   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C ) )
336328   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C ) )
337329   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C ) )
338330   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C ) )
339331
340332   PORT_START("DSWB")   /* DSW B */
341   PORT_DIPNAME( 0x80, 0x80, "Spurt Time" )
333   PORT_DIPNAME( 0x80, 0x80, "Spurt Time" ) PORT_DIPLOCATION("SWB:1")
342334   PORT_DIPSETTING(    0x80, DEF_STR( Normal ) )
343335   PORT_DIPSETTING(    0x00, "Difficult" )
344   PORT_DIPNAME( 0x40, 0x40, "Level of Monster" )
336   PORT_DIPNAME( 0x40, 0x40, "Level of Monster" ) PORT_DIPLOCATION("SWB:2")
345337   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
346338   PORT_DIPSETTING(    0x00, "Difficult" )
347   PORT_DIPNAME( 0x30, 0x30, "Starting Vitality" )
339   PORT_DIPNAME( 0x30, 0x30, "Starting Vitality" ) PORT_DIPLOCATION("SWB:4,3")
348340   PORT_DIPSETTING(    0x00, "160" )
349341   PORT_DIPSETTING(    0x30, "128" )
350342   PORT_DIPSETTING(    0x10, "96" )
351343   PORT_DIPSETTING(    0x20, "64" )
352   PORT_DIPNAME( 0x0c, 0x0c, "Bonus Vitality" ) /* Clear Mountain, Tower, ect... */
344   PORT_DIPNAME( 0x0c, 0x0c, "Bonus Vitality" ) PORT_DIPLOCATION("SWB:6,5") /* Clear Mountain, Tower, ect... */
353345   PORT_DIPSETTING(    0x00, "64" )
354346   PORT_DIPSETTING(    0x08, "48/64" )
355347   PORT_DIPSETTING(    0x04, "32/64" )
356348   PORT_DIPSETTING(    0x0c, DEF_STR( None ) )
357   PORT_DIPNAME( 0x02, 0x02, "Bonus Level" )    /* Clear Round */
349   PORT_DIPNAME( 0x02, 0x02, "Bonus Level" ) PORT_DIPLOCATION("SWB:7")    /* Clear Round */
358350   PORT_DIPSETTING(    0x02, "Full" )
359351   PORT_DIPSETTING(    0x00, "Partial" )
360   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) )
352   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SWB:8")
361353   PORT_DIPSETTING(    0x01, DEF_STR( No ) )
362354   PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
363355
src/mame/drivers/quizpani.c
r4470r4471
6262
6363static ADDRESS_MAP_START( quizpani_writemem, ADDRESS_SPACE_PROGRAM, 16 )
6464   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
65   AM_RANGE(0x100014, 0x100015) AM_WRITE(SMH_NOP)
66   AM_RANGE(0x100016, 0x100017) AM_WRITE(SMH_NOP) /* IRQ eanble? */
65   AM_RANGE(0x100014, 0x100015) AM_WRITENOP
66   AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ eanble? */
6767   AM_RANGE(0x100018, 0x100019) AM_WRITE(quizpani_tilesbank_w)
6868   AM_RANGE(0x104000, 0x104001) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)
6969   AM_RANGE(0x104020, 0x104027) AM_WRITE(NMK112_okibank_lsb_w)
7070   AM_RANGE(0x108000, 0x1083ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
71   AM_RANGE(0x108400, 0x1085ff) AM_WRITE(SMH_NOP)
71   AM_RANGE(0x108400, 0x1085ff) AM_WRITENOP
7272   AM_RANGE(0x10c000, 0x10c007) AM_WRITE(SMH_RAM) AM_BASE(&quizpani_scrollreg)
73   AM_RANGE(0x10c008, 0x10c403) AM_WRITE(SMH_NOP)
73   AM_RANGE(0x10c008, 0x10c403) AM_WRITENOP
7474   AM_RANGE(0x110000, 0x113fff) AM_WRITE(quizpani_bg_videoram_w) AM_BASE(&quizpani_bg_videoram)
7575   AM_RANGE(0x11c000, 0x11ffff) AM_WRITE(quizpani_txt_videoram_w) AM_BASE(&quizpani_txt_videoram)
7676   AM_RANGE(0x180000, 0x18ffff) AM_WRITE(SMH_RAM)
src/mame/drivers/gomoku.c
r4470r4471
5555   AM_RANGE(0x5800, 0x58ff) AM_WRITE(gomoku_bgram_w) AM_BASE(&gomoku_bgram)
5656   AM_RANGE(0x6000, 0x601f) AM_WRITE(gomoku_sound1_w) AM_BASE(&gomoku_soundregs1)
5757   AM_RANGE(0x6800, 0x681f) AM_WRITE(gomoku_sound2_w) AM_BASE(&gomoku_soundregs2)
58   AM_RANGE(0x7000, 0x7000) AM_WRITE(SMH_NOP)
58   AM_RANGE(0x7000, 0x7000) AM_WRITENOP
5959   AM_RANGE(0x7001, 0x7001) AM_WRITE(gomoku_flipscreen_w)
6060   AM_RANGE(0x7002, 0x7002) AM_WRITE(gomoku_bg_dispsw_w)
61   AM_RANGE(0x7003, 0x7007) AM_WRITE(SMH_NOP)
62   AM_RANGE(0x7800, 0x7800) AM_WRITE(SMH_NOP)
61   AM_RANGE(0x7003, 0x7007) AM_WRITENOP
62   AM_RANGE(0x7800, 0x7800) AM_WRITENOP
6363ADDRESS_MAP_END
6464
6565
src/mame/drivers/djmain.c
r4470r4471
22 *  Beatmania DJ Main Board (GX753)
33 *
44 *  Product numbers:
5 *  GQ753 beatmania (first release in 1997)
6 *  Gx853 beatmania 2nd MIX (1998)
7 *  Gx825 beatmania 3rd MIX
8 *  Gx858 beatmania complete MIX (1999)
9 *  Gx847 beatmania 4th MIX
10 *  Gx981 beatmania 5th MIX
11 *  Gx993 beatmania Club MIX (2000)
12 *  Gx988 beatmania complete MIX 2
13 *  Gx995 beatmania featuring Dreams Come True
14 *  GxA05 beatmania CORE REMIX
15 *  GxA21 beatmania 6th MIX (2001)
16 *  GxB07 beatmania 7th MIX
17 *  GxC01 beatmania THE FINAL (2002)
5 *  GQ753 beatmania (first release in 1997.12)
6 *  Gx853 beatmania 2nd MIX (1998.03)
7 *  Gx825 beatmania 3rd MIX (1998.09)
8 *  Gx858 beatmania complete MIX (1999.01)
9 *  Gx847 beatmania 4th MIX (1999.04)
10 *  Gx981 beatmania 5th MIX (1999.09)
11 *  Gx988 beatmania complete MIX 2 (2000.01)
12 *  Gx993 beatmania Club MIX (2000.03)
13 *  Gx995 beatmania featuring Dreams Come True (2000.05)
14 *  GxA05 beatmania CORE REMIX (2000.11)
15 *  GxA21 beatmania 6th MIX (2001.07)
16 *  GxB07 beatmania 7th MIX (2002.01)
17 *  GxC01 beatmania THE FINAL (2002.07))
1818 *
19 *  Gx803 Pop'n Music 1 (1998)
20 *  Gx831 Pop'n Music 2
21 *  Gx980 Pop'n Music 3 (1999)
19 *  Gx803 Pop'n Music 1 (1998.09)
20 *  Gx831 Pop'n Music 2 (1999.04)
21 *  Gx980 Pop'n Music 3 (1999.09)
2222 *
23 *  ????? Pop'n Stage
24 *  Gx970 Pop'n Stage EX (1999)
23 *  ????? Pop'n Stage (1999.11)
24 *  Gx970 Pop'n Stage EX (2000.03)
2525 *
2626 *  Chips:
2727 *  15a:    MC68EC020FG25
r4470r4471
264264
265265//---------
266266
267static READ8_HANDLER( inp1_r )
268{
269   static const char *const portnames[] = { "DSW3", "BTN3", "BTN2", "BTN1" };
270   return input_port_read(space->machine, portnames[ offset & 0x03 ]);
271}
272
273static READ8_HANDLER( inp2_r )
274{
275   static const char *const portnames[] = { "DSW1", "DSW2", "UNK2", "UNK1" };
276   return input_port_read(space->machine, portnames[ offset & 0x03 ]);
277}
278
267279static READ32_HANDLER( turntable_r )
268280{
269281   UINT32 result = 0;
r4470r4471
466478   AM_RANGE(0x590000, 0x590007) AM_WRITE(unknown590000_w)               // ??
467479   AM_RANGE(0x5a0000, 0x5a005f) AM_WRITE(K055555_long_w)               // 055555: priority encoder
468480   AM_RANGE(0x5b0000, 0x5b04ff) AM_READWRITE16(dual539_r, dual539_w, 0xffffffff)            // SOUND regs
469   AM_RANGE(0x5c0000, 0x5c0003) AM_READ_PORT("INPUTS")
470   AM_RANGE(0x5c8000, 0x5c8003) AM_READ_PORT("DSW")
481   AM_RANGE(0x5c0000, 0x5c0003) AM_READ8(inp1_r, 0xffffffff)  //  DSW3,BTN3,BTN2,BTN1  // input port control (buttons and DIP switches)
482   AM_RANGE(0x5c8000, 0x5c8003) AM_READ8(inp2_r, 0xffffffff)  //  DSW1,DSW2,UNK2,UNK1  // input port control (DIP switches)
471483   AM_RANGE(0x5d0000, 0x5d0003) AM_WRITE(light_ctrl_1_w)               // light/coin blocker control
472484   AM_RANGE(0x5d2000, 0x5d2003) AM_WRITE(light_ctrl_2_w)               // light/coin blocker control
473485   AM_RANGE(0x5d4000, 0x5d4003) AM_WRITE(v_ctrl_w)                  // VIDEO control
r4470r4471
495507 *
496508 *************************************/
497509
498#define BEATMANIA_DSW1(base,mask) \
499   PORT_DIPNAME( 0xff000000, (0xff000000 & mask) | base, DEF_STR( Coinage ) ) \
500   PORT_DIPSETTING(          (0xe0000000 & mask) | base, "1P 8C / 2P 16C / Continue 8C" ) \
501   PORT_DIPSETTING(          (0xe1000000 & mask) | base, "1P 8C / 2P 16C / Continue 7C" ) \
502   PORT_DIPSETTING(          (0xe2000000 & mask) | base, "1P 8C / 2P 16C / Continue 6C" ) \
503   PORT_DIPSETTING(          (0xe3000000 & mask) | base, "1P 7C / 2P 14C / Continue 7C" ) \
504   PORT_DIPSETTING(          (0xe4000000 & mask) | base, "1P 7C / 2P 14C / Continue 6C" ) \
505   PORT_DIPSETTING(          (0xe5000000 & mask) | base, "1P 7C / 2P 14C / Continue 5C" ) \
506   PORT_DIPSETTING(          (0xe6000000 & mask) | base, "1P 6C / 2P 12C / Continue 6C" ) \
507   PORT_DIPSETTING(          (0xe7000000 & mask) | base, "1P 6C / 2P 12C / Continue 5C" ) \
508   PORT_DIPSETTING(          (0xe8000000 & mask) | base, "1P 6C / 2P 12C / Continue 4C" ) \
509   PORT_DIPSETTING(          (0xe9000000 & mask) | base, "1P 5C / 2P 10C / Continue 5C" ) \
510   PORT_DIPSETTING(          (0xeb000000 & mask) | base, "1P 5C / 2P 10C / Continue 3C" ) \
511   PORT_DIPSETTING(          (0xea000000 & mask) | base, "1P 5C / 2P 10C / Continue 4C" ) \
512   PORT_DIPSETTING(          (0xec000000 & mask) | base, "1P 4C / 2P 8C / Continue 4C" ) \
513   PORT_DIPSETTING(          (0xed000000 & mask) | base, "1P 4C / 2P 8C / Continue 3C" ) \
514   PORT_DIPSETTING(          (0xee000000 & mask) | base, "1P 4C / 2P 8C / Continue 2C" ) \
515   PORT_DIPSETTING(          (0xef000000 & mask) | base, "1P 3C / 2P 6C / Continue 3C" ) \
516   PORT_DIPSETTING(          (0xf0000000 & mask) | base, "1P 3C / 2P 6C / Continue 2C" ) \
517   PORT_DIPSETTING(          (0xf1000000 & mask) | base, "1P 3C / 2P 6C / Continue 1C" ) \
518   PORT_DIPSETTING(          (0xf2000000 & mask) | base, "1P 3C / 2P 4C / Continue 3C" ) \
519   PORT_DIPSETTING(          (0xf3000000 & mask) | base, "1P 3C / 2P 4C / Continue 2C" ) \
520   PORT_DIPSETTING(          (0xf4000000 & mask) | base, "1P 3C / 2P 4C / Continue 1C" ) \
521   PORT_DIPSETTING(          (0xf5000000 & mask) | base, "1P 3C / 2P 3C / Continue 3C" ) \
522   PORT_DIPSETTING(          (0xf6000000 & mask) | base, "1P 3C / 2P 3C / Continue 2C" ) \
523   PORT_DIPSETTING(          (0xf7000000 & mask) | base, "1P 3C / 2P 3C / Continue 1C" ) \
524   PORT_DIPSETTING(          (0xfa000000 & mask) | base, "1P 2C / 2P 3C / Continue 2C" ) \
525   PORT_DIPSETTING(          (0xfb000000 & mask) | base, "1P 2C / 2P 3C / Continue 1C" ) \
526   PORT_DIPSETTING(          (0xf8000000 & mask) | base, "1P 2C / 2P 4C / Continue 2C" ) \
527   PORT_DIPSETTING(          (0xff000000 & mask) | base, "1P 2C / 2P 4C / Continue 1C" ) \
528   PORT_DIPSETTING(          (0xfc000000 & mask) | base, "1P 2C / 2P 2C / Continue 2C" ) \
529   PORT_DIPSETTING(          (0xfd000000 & mask) | base, "1P 2C / 2P 2C / Continue 1C" ) \
530   PORT_DIPSETTING(          (0xfe000000 & mask) | base, "1P 1C / 2P 2C / Continue 1C" ) \
531   PORT_DIPSETTING(          (0xf9000000 & mask) | base, "1P 1C / 2P 1C / Continue 1C" ) \
532   PORT_DIPSETTING(          (0x00000000 & mask) | base, DEF_STR( Free_Play ) )
510// #define PRIORITY_EASINESS_TO_PLAY
533511
512//--------- beatmania
534513
535static INPUT_PORTS_START( beatmania )
536   PORT_START("INPUTS")
537   PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
538   PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
539   PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
540   PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
541   PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
542   PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
543   PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
544   PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
545   PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
546   PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
547   PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
548   PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
549   PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_START1 )
550   PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_START2 )
551   PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Effect")   /* EFFECT */
552   PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_COIN1 )
553
554   PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2)   /* TEST SW */
555   PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")   /* SERVICE */
556   PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset")      /* RESET SW */
557   PORT_BIT( 0x00f80000, IP_ACTIVE_LOW, IPT_UNKNOWN )
558   PORT_BIT( 0xc0000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
559   PORT_DIPNAME( 0x20000000, 0x20000000, "Event Mode" )
560   PORT_DIPSETTING(          0x20000000, DEF_STR( Off ) )
561   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
562   PORT_DIPNAME( 0x1c000000, 0x1c000000, "Normal / Event Mode Stages" )
563   PORT_DIPSETTING(          0x0c000000, "4 / 1" )
564   PORT_DIPSETTING(          0x14000000, "4 / 2" )
565   PORT_DIPSETTING(          0x10000000, "3 / 3" )
566   PORT_DIPSETTING(          0x1c000000, "4 / 4" )
567   PORT_DIPSETTING(          0x08000000, "5 / 5" )
568   PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
569   PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
570
571   PORT_START("DSW")
572   BEATMANIA_DSW1(0x00000000, 0xff000000)
573
574   PORT_DIPNAME( 0x00800000, 0x00800000, "Score Display" )
575   PORT_DIPSETTING(          0x00000000, DEF_STR( Off ) )
576   PORT_DIPSETTING(          0x00800000, DEF_STR( On ) )
577   PORT_DIPNAME( 0x00600000, 0x00600000, DEF_STR( Demo_Sounds ) )
578   PORT_DIPSETTING(          0x00600000, "Loud" )
579   PORT_DIPSETTING(          0x00200000, DEF_STR( Medium ) )
580   PORT_DIPSETTING(          0x00400000, DEF_STR( Low ) )
581   PORT_DIPSETTING(          0x00000000, "Silent" )
582   PORT_DIPNAME( 0x00100000, 0x00100000, "Level Display" )
583   PORT_DIPSETTING(          0x00000000, DEF_STR( Off ) )
584   PORT_DIPSETTING(          0x00100000, DEF_STR( On ) )
585   PORT_DIPNAME( 0x000c0000, 0x000c0000, "Normal Difficulty" )
586   PORT_DIPSETTING(          0x00080000, "Level 0" )
587   PORT_DIPSETTING(          0x000c0000, "Level 1" )
588   PORT_DIPSETTING(          0x00040000, "Level 2" )
589   PORT_DIPSETTING(          0x00000000, "Level 3" )
590   PORT_DIPNAME( 0x00030000, 0x00030000, "Expert Difficulty" )
591   PORT_DIPSETTING(          0x00020000, "Level 0" )
592   PORT_DIPSETTING(          0x00030000, "Level 1" )
593   PORT_DIPSETTING(          0x00010000, "Level 2" )
594   PORT_DIPSETTING(          0x00000000, "Level 3" )
595   PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED )
596
514static INPUT_PORTS_START( beatmania_btn ) // and turntables
515   PORT_START("BTN1")
516   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
517   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
518   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
519   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
520   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
521   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
522   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
523   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
524   PORT_START("BTN2")
525   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
526   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
527   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
528   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
529   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
530   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
531   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Effect")   /* EFFECT */
532   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
533   PORT_START("BTN3")
534   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2)   /* TEST SW */
535   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")   /* SERVICE */
536   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset")      /* RESET SW */
537   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
538   PORT_START("UNK1")
539   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
540   PORT_START("UNK2")
541   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
597542   PORT_START("TT1")      /* turn table 1P */
598543   PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1)
599
600544   PORT_START("TT2")      /* turn table 2P */
601545   PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2)
602546INPUT_PORTS_END
603547
604static INPUT_PORTS_START( bm1stmix )
605   PORT_INCLUDE( beatmania )
548#ifdef PRIORITY_EASINESS_TO_PLAY
549   #define BEATMANIA_DSW1_COINAGE_OLD \
550      PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \
551      PORT_DIPSETTING(    0x1e, "1P 3C / 2P 6C / Continue 3C" ) \
552      PORT_DIPSETTING(    0x01, "1P 3C / 2P 6C / Continue 2C" ) \
553      PORT_DIPSETTING(    0x11, "1P 3C / 2P 6C / Continue 1C" ) \
554      PORT_DIPSETTING(    0x15, "1P 3C / 2P 3C / Continue 3C" ) \
555      PORT_DIPSETTING(    0x0d, "1P 3C / 2P 3C / Continue 2C" ) \
556      PORT_DIPSETTING(    0x1d, "1P 3C / 2P 3C / Continue 1C" ) \
557      PORT_DIPSETTING(    0x09, "1P 3C / 2P 4C / Continue 3C" ) \
558      PORT_DIPSETTING(    0x19, "1P 3C / 2P 4C / Continue 2C" ) \
559      PORT_DIPSETTING(    0x05, "1P 3C / 2P 4C / Continue 1C" ) \
560      PORT_DIPSETTING(    0x03, "1P 2C / 2P 4C / Continue 2C" ) \
561      PORT_DIPSETTING(    0x1f, "1P 2C / 2P 4C / Continue 1C" ) \
562      PORT_DIPSETTING(    0x0b, "1P 2C / 2P 3C / Continue 2C" ) \
563      PORT_DIPSETTING(    0x1b, "1P 2C / 2P 3C / Continue 1C" ) \
564      PORT_DIPSETTING(    0x07, "1P 2C / 2P 2C / Continue 2C" ) \
565      PORT_DIPSETTING(    0x17, "1P 2C / 2P 2C / Continue 1C" ) \
566      PORT_DIPSETTING(    0x0f, "1P 1C / 2P 2C / Continue 1C" ) \
567      PORT_DIPSETTING(    0x13, "1P 1C / 2P 1C / Continue 1C" ) \
568      PORT_DIPSETTING(    0x00, "Free_Play" )
569#else
570   #define BEATMANIA_DSW1_COINAGE_OLD \
571      PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \
572      PORT_DIPSETTING(    0x1e, "1P 3C / 2P 6C / Continue 3C" ) \
573      PORT_DIPSETTING(    0x01, "1P 3C / 2P 6C / Continue 2C" ) \
574      PORT_DIPSETTING(    0x11, "1P 3C / 2P 6C / Continue 1C" ) \
575      PORT_DIPSETTING(    0x15, "1P 3C / 2P 3C / Continue 3C" ) \
576      PORT_DIPSETTING(    0x0d, "1P 3C / 2P 3C / Continue 2C" ) \
577      PORT_DIPSETTING(    0x1d, "1P 3C / 2P 3C / Continue 1C" ) \
578      PORT_DIPSETTING(    0x09, "1P 3C / 2P 4C / Continue 3C" ) \
579      PORT_DIPSETTING(    0x19, "1P 3C / 2P 4C / Continue 2C" ) \
580      PORT_DIPSETTING(    0x05, "1P 3C / 2P 4C / Continue 1C" ) \
581      PORT_DIPSETTING(    0x03, "1P 2C / 2P 4C / Continue 2C" ) \
582      PORT_DIPSETTING(    0x1f, "1P 2C / 2P 4C / Continue 1C" ) \
583      PORT_DIPSETTING(    0x0b, "1P 2C / 2P 3C / Continue 2C" ) \
584      PORT_DIPSETTING(    0x1b, "1P 2C / 2P 3C / Continue 1C" ) \
585      PORT_DIPSETTING(    0x07, "1P 2C / 2P 2C / Continue 2C" ) \
586      PORT_DIPSETTING(    0x17, "1P 2C / 2P 2C / Continue 1C" ) \
587      PORT_DIPSETTING(    0x0f, "1P 1C / 2P 2C / Continue 1C" ) \
588      PORT_DIPSETTING(    0x13, "1P 1C / 2P 1C / Continue 1C" ) \
589        PORT_DIPSETTING(  0x0e, "Free_Play" ) /* duplicated setting */ \
590        PORT_DIPSETTING(  0x16, "Free_Play" ) /* duplicated setting */ \
591        PORT_DIPSETTING(  0x06, "Free_Play" ) /* duplicated setting */ \
592        PORT_DIPSETTING(  0x1a, "Free_Play" ) /* duplicated setting */ \
593        PORT_DIPSETTING(  0x0a, "Free_Play" ) /* duplicated setting */ \
594        PORT_DIPSETTING(  0x12, "Free_Play" ) /* duplicated setting */ \
595        PORT_DIPSETTING(  0x02, "Free_Play" ) /* duplicated setting */ \
596        PORT_DIPSETTING(  0x1c, "Free_Play" ) /* duplicated setting */ \
597        PORT_DIPSETTING(  0x0c, "Free_Play" ) /* duplicated setting */ \
598        PORT_DIPSETTING(  0x14, "Free_Play" ) /* duplicated setting */ \
599        PORT_DIPSETTING(  0x04, "Free_Play" ) /* duplicated setting */ \
600        PORT_DIPSETTING(  0x18, "Free_Play" ) /* duplicated setting */ \
601        PORT_DIPSETTING(  0x08, "Free_Play" ) /* duplicated setting */ \
602        PORT_DIPSETTING(  0x10, "Free_Play" ) /* duplicated setting */ \
603      PORT_DIPSETTING(    0x00, "Free_Play" )
604#endif
606605
607   PORT_MODIFY("INPUTS")
608   PORT_BIT( 0xff000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
606#define BEATMANIA_DSW1_COINAGE_NEW \
607   PORT_DIPNAME( 0x20, 0x20, "Free Play (Ignore Coinage)" ) PORT_DIPLOCATION("SW1:3") \
608   PORT_DIPSETTING(    0x20, DEF_STR( Off ) ) \
609   PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
610   PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \
611   PORT_DIPSETTING(    0x00, "1P 8C / 2P 16C / Continue 8C" ) \
612   PORT_DIPSETTING(    0x01, "1P 8C / 2P 16C / Continue 7C" ) \
613   PORT_DIPSETTING(    0x02, "1P 8C / 2P 16C / Continue 6C" ) \
614   PORT_DIPSETTING(    0x03, "1P 7C / 2P 14C / Continue 7C" ) \
615   PORT_DIPSETTING(    0x04, "1P 7C / 2P 14C / Continue 6C" ) \
616   PORT_DIPSETTING(    0x05, "1P 7C / 2P 14C / Continue 5C" ) \
617   PORT_DIPSETTING(    0x06, "1P 6C / 2P 12C / Continue 6C" ) \
618   PORT_DIPSETTING(    0x07, "1P 6C / 2P 12C / Continue 5C" ) \
619   PORT_DIPSETTING(    0x08, "1P 6C / 2P 12C / Continue 4C" ) \
620   PORT_DIPSETTING(    0x09, "1P 5C / 2P 10C / Continue 5C" ) \
621   PORT_DIPSETTING(    0x0b, "1P 5C / 2P 10C / Continue 3C" ) \
622   PORT_DIPSETTING(    0x0a, "1P 5C / 2P 10C / Continue 4C" ) \
623   PORT_DIPSETTING(    0x0c, "1P 4C / 2P 8C / Continue 4C" ) \
624   PORT_DIPSETTING(    0x0d, "1P 4C / 2P 8C / Continue 3C" ) \
625   PORT_DIPSETTING(    0x0e, "1P 4C / 2P 8C / Continue 2C" ) \
626   PORT_DIPSETTING(    0x0f, "1P 3C / 2P 6C / Continue 3C" ) \
627   PORT_DIPSETTING(    0x10, "1P 3C / 2P 6C / Continue 2C" ) \
628   PORT_DIPSETTING(    0x11, "1P 3C / 2P 6C / Continue 1C" ) \
629   PORT_DIPSETTING(    0x12, "1P 3C / 2P 4C / Continue 3C" ) \
630   PORT_DIPSETTING(    0x13, "1P 3C / 2P 4C / Continue 2C" ) \
631   PORT_DIPSETTING(    0x14, "1P 3C / 2P 4C / Continue 1C" ) \
632   PORT_DIPSETTING(    0x15, "1P 3C / 2P 3C / Continue 3C" ) \
633   PORT_DIPSETTING(    0x16, "1P 3C / 2P 3C / Continue 2C" ) \
634   PORT_DIPSETTING(    0x17, "1P 3C / 2P 3C / Continue 1C" ) \
635   PORT_DIPSETTING(    0x1a, "1P 2C / 2P 3C / Continue 2C" ) \
636   PORT_DIPSETTING(    0x1b, "1P 2C / 2P 3C / Continue 1C" ) \
637   PORT_DIPSETTING(    0x18, "1P 2C / 2P 4C / Continue 2C" ) \
638   PORT_DIPSETTING(    0x1f, "1P 2C / 2P 4C / Continue 1C" ) \
639   PORT_DIPSETTING(    0x1c, "1P 2C / 2P 2C / Continue 2C" ) \
640   PORT_DIPSETTING(    0x1d, "1P 2C / 2P 2C / Continue 1C" ) \
641   PORT_DIPSETTING(    0x1e, "1P 1C / 2P 2C / Continue 1C" ) \
642   PORT_DIPSETTING(    0x19, "1P 1C / 2P 1C / Continue 1C" )
609643
610   PORT_MODIFY("DSW")
611   PORT_BIT( 0xe0000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
612   PORT_DIPNAME( 0x1f000000, 0x1f000000, DEF_STR( Coinage ) )
613   PORT_DIPSETTING(          0x1e000000, "1P 3C / 2P 6C / Continue 3C" )
614   PORT_DIPSETTING(          0x01000000, "1P 3C / 2P 6C / Continue 2C" )
615   PORT_DIPSETTING(          0x11000000, "1P 3C / 2P 6C / Continue 1C" )
616   PORT_DIPSETTING(          0x15000000, "1P 3C / 2P 3C / Continue 3C" )
617   PORT_DIPSETTING(          0x0d000000, "1P 3C / 2P 3C / Continue 2C" )
618   PORT_DIPSETTING(          0x1d000000, "1P 3C / 2P 3C / Continue 1C" )
619   PORT_DIPSETTING(          0x09000000, "1P 3C / 2P 4C / Continue 3C" )
620   PORT_DIPSETTING(          0x19000000, "1P 3C / 2P 4C / Continue 2C" )
621   PORT_DIPSETTING(          0x05000000, "1P 3C / 2P 4C / Continue 1C" )
622   PORT_DIPSETTING(          0x03000000, "1P 2C / 2P 4C / Continue 2C" )
623   PORT_DIPSETTING(          0x1f000000, "1P 2C / 2P 4C / Continue 1C" )
624   PORT_DIPSETTING(          0x0b000000, "1P 2C / 2P 3C / Continue 2C" )
625   PORT_DIPSETTING(          0x1b000000, "1P 2C / 2P 3C / Continue 1C" )
626   PORT_DIPSETTING(          0x07000000, "1P 2C / 2P 2C / Continue 2C" )
627   PORT_DIPSETTING(          0x17000000, "1P 2C / 2P 2C / Continue 1C" )
628   PORT_DIPSETTING(          0x0f000000, "1P 1C / 2P 2C / Continue 1C" )
629   PORT_DIPSETTING(          0x13000000, "1P 1C / 2P 1C / Continue 1C" )
630   PORT_DIPSETTING(          0x00000000, DEF_STR( Free_Play ) )
644#define BEATMANIA_DSW2_SCOREDISPLAY \
645   PORT_DIPNAME( 0x80, 0x80, "Score Display" ) PORT_DIPLOCATION("SW2:1") \
646   PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
647   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
631648
632   PORT_DIPNAME( 0x00800000, 0x00800000, "Enable Expert Mode" )
633   PORT_DIPSETTING(          0x00000000, DEF_STR( No ) )
634   PORT_DIPSETTING(          0x00800000, DEF_STR( Yes ) )
635   PORT_BIT( 0x001f0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
636INPUT_PORTS_END
649#define BEATMANIA_DSW2_DEMOSOUNDS \
650   PORT_DIPNAME( 0x60, 0x60, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3,2") \
651   PORT_DIPSETTING(    0x60, "Loud" ) \
652   PORT_DIPSETTING(    0x20, DEF_STR( Medium ) ) \
653   PORT_DIPSETTING(    0x40, DEF_STR( Low ) ) \
654   PORT_DIPSETTING(    0x00, "Silent" )
637655
656#define BEATMANIA_DSW2_LEVELDISPLAY \
657   PORT_DIPNAME( 0x10, 0x10, "Level Display" ) PORT_DIPLOCATION("SW2:4") \
658   PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
659   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
638660
639static INPUT_PORTS_START( bm2ndmix )
640   PORT_INCLUDE( beatmania )
661#define BEATMANIA_DSW2_DIFFICULITY_OLD \
662   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:8,7,6,5") \
663   PORT_DIPSETTING(    0x0a, "Level 0" ) \
664   PORT_DIPSETTING(    0x0e, "Level 1" ) \
665   PORT_DIPSETTING(    0x0d, "Level 2" ) \
666   PORT_DIPSETTING(    0x0c, "Level 3" ) \
667   PORT_DIPSETTING(    0x0b, "Level 4" ) \
668   PORT_DIPSETTING(    0x0f, "Level 5" ) \
669   PORT_DIPSETTING(    0x09, "Level 6" ) \
670   PORT_DIPSETTING(    0x08, "Level 7" ) \
671   PORT_DIPSETTING(    0x07, "Level 8" ) \
672   PORT_DIPSETTING(    0x06, "Level 9" ) \
673   PORT_DIPSETTING(    0x05, "Level 10" ) \
674   PORT_DIPSETTING(    0x04, "Level 11" ) \
675   PORT_DIPSETTING(    0x03, "Level 12" ) \
676   PORT_DIPSETTING(    0x02, "Level 13" ) \
677   PORT_DIPSETTING(    0x01, "Level 14" ) \
678   PORT_DIPSETTING(    0x00, "Level 15" )
641679
642   PORT_MODIFY("INPUTS")
643   PORT_DIPNAME( 0x39000000, 0x39000000, "Event Mode / Free Hidden Songs" )
644   PORT_DIPSETTING(          0x39000000, "Off / Off" )
645   PORT_DIPSETTING(          0x20000000, "Off / On" )
646   PORT_DIPSETTING(          0x19000000, "1 Stages / On" )
647   PORT_DIPSETTING(          0x09000000, "2 Stages / On" )
648   PORT_DIPSETTING(          0x11000000, "3 Stages / On" )
649   PORT_DIPSETTING(          0x01000000, "4 Stages / On" )
650   PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
651   PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
680#define BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) \
681   PORT_DIPNAME( 0x0c, 0x0c, str ) PORT_DIPLOCATION("SW2:6,5") \
682   PORT_DIPSETTING(    0x08, "Level 0" ) \
683   PORT_DIPSETTING(    0x0c, "Level 1" ) \
684   PORT_DIPSETTING(    0x04, "Level 2" ) \
685   PORT_DIPSETTING(    0x00, "Level 3" ) \
686   PORT_DIPNAME( 0x03, 0x03, str2 ) PORT_DIPLOCATION("SW2:8,7") \
687   PORT_DIPSETTING(    0x02, "Level 0" ) \
688   PORT_DIPSETTING(    0x03, "Level 1" ) \
689   PORT_DIPSETTING(    0x01, "Level 2" ) \
690   PORT_DIPSETTING(    0x00, "Level 3" )
652691
653   PORT_MODIFY("DSW")
654   PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN )      /* DSW 2-4 */
655   PORT_DIPNAME( 0x000f0000, 0x000f0000, DEF_STR( Difficulty ) )
656   PORT_DIPSETTING(          0x000a0000, "Level 0" )
657   PORT_DIPSETTING(          0x000e0000, "Level 1" )
658   PORT_DIPSETTING(          0x000d0000, "Level 2" )
659   PORT_DIPSETTING(          0x000c0000, "Level 3" )
660   PORT_DIPSETTING(          0x000b0000, "Level 4" )
661   PORT_DIPSETTING(          0x000f0000, "Level 5" )
662   PORT_DIPSETTING(          0x00090000, "Level 6" )
663   PORT_DIPSETTING(          0x00080000, "Level 7" )
664   PORT_DIPSETTING(          0x00070000, "Level 8" )
665   PORT_DIPSETTING(          0x00060000, "Level 9" )
666   PORT_DIPSETTING(          0x00050000, "Level 10" )
667   PORT_DIPSETTING(          0x00040000, "Level 11" )
668   PORT_DIPSETTING(          0x00030000, "Level 12" )
669   PORT_DIPSETTING(          0x00020000, "Level 13" )
670   PORT_DIPSETTING(          0x00010000, "Level 14" )
671   PORT_DIPSETTING(          0x00000000, "Level 15" )
672INPUT_PORTS_END
692#define BEATMANIA_DSW3_EVENTMODE \
693   PORT_DIPNAME( 0x20, 0x20, "Event Mode (Ignore Coinage)" ) PORT_DIPLOCATION("SW3:1") \
694   PORT_DIPSETTING(    0x20, DEF_STR( Off ) ) \
695   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
673696
674static INPUT_PORTS_START( bmcompmx )
675   PORT_INCLUDE( beatmania )
697#ifdef PRIORITY_EASINESS_TO_PLAY
698   #define BEATMANIA_DSW3_STAGES_OLD \
699      PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
700      PORT_DIPSETTING(    0x10, "3 Stages" ) \
701      PORT_DIPSETTING(    0x00, "4 Stages" ) \
702      PORT_DIPSETTING(    0x08, "5 Stages" ) \
703      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
704      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
705      PORT_DIPSETTING(    0x14, "2 Stages" ) \
706      PORT_DIPSETTING(    0x10, "3 Stages" ) \
707      PORT_DIPSETTING(    0x00, "4 Stages" ) \
708      PORT_DIPSETTING(    0x08, "5 Stages" )
709#else
710   #define BEATMANIA_DSW3_STAGES_OLD \
711      PORT_DIPNAME( 0x1c, 0x1c, "Normal Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
712      PORT_DIPSETTING(    0x10, "3 Stages" ) \
713        PORT_DIPSETTING(  0x1c, "4 Stages" ) /* duplicated setting */ \
714        PORT_DIPSETTING(  0x0c, "4 Stages" ) /* duplicated setting */ \
715        PORT_DIPSETTING(  0x14, "4 Stages" ) /* duplicated setting */ \
716        PORT_DIPSETTING(  0x04, "4 Stages" ) /* duplicated setting */ \
717        PORT_DIPSETTING(  0x18, "4 Stages" ) /* duplicated setting */ \
718      PORT_DIPSETTING(    0x00, "4 Stages" ) \
719      PORT_DIPSETTING(    0x08, "5 Stages" ) \
720      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
721      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
722      PORT_DIPSETTING(    0x14, "2 Stages" ) \
723      PORT_DIPSETTING(    0x10, "3 Stages" ) \
724        PORT_DIPSETTING(  0x1c, "4 Stages" ) /* duplicated setting */ \
725        PORT_DIPSETTING(  0x04, "4 Stages" ) /* duplicated setting */ \
726        PORT_DIPSETTING(  0x18, "4 Stages" ) /* duplicated setting */ \
727      PORT_DIPSETTING(    0x00, "4 Stages" ) \
728      PORT_DIPSETTING(    0x08, "5 Stages" )
729#endif
676730
677   PORT_MODIFY("INPUTS")
678   PORT_DIPNAME( 0x01000000, 0x01000000, "Secret Expert Course" )   /* DSW 3-6 */
679   PORT_DIPSETTING(          0x01000000, DEF_STR( Off ) )
680   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
731#ifdef PRIORITY_EASINESS_TO_PLAY
732   #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \
733      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
734      PORT_DIPSETTING(    0x10, "3 / 3 Stages" ) \
735      PORT_DIPSETTING(    0x00, "4 / 4 Stages" ) \
736      PORT_DIPSETTING(    0x08, "5 / 5 Stages" ) \
737      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
738      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
739      PORT_DIPSETTING(    0x14, "2 Stages" ) \
740      PORT_DIPSETTING(    0x10, "3 Stages" ) \
741      PORT_DIPSETTING(    0x00, "4 Stages" ) \
742      PORT_DIPSETTING(    0x08, "5 Stages" )
743#else
744   #define BEATMANIA_DSW3_STAGES_MIDDLE( str ) \
745      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
746      PORT_DIPSETTING(    0x10, "3 / 3 Stages" ) \
747        PORT_DIPSETTING(  0x1c, "4 / 4 Stages" ) /* duplicated setting */ \
748        PORT_DIPSETTING(  0x0c, "4 / 4 Stages" ) /* duplicated setting */ \
749        PORT_DIPSETTING(  0x14, "4 / 4 Stages" ) /* duplicated setting */ \
750        PORT_DIPSETTING(  0x04, "4 / 4 Stages" ) /* duplicated setting */ \
751        PORT_DIPSETTING(  0x18, "4 / 4 Stages" ) /* duplicated setting */ \
752      PORT_DIPSETTING(    0x00, "4 / 4 Stages" ) \
753      PORT_DIPSETTING(    0x08, "5 / 5 Stages" ) \
754      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
755      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
756      PORT_DIPSETTING(    0x14, "2 Stages" ) \
757      PORT_DIPSETTING(    0x10, "3 Stages" ) \
758        PORT_DIPSETTING(  0x1c, "4 Stages" ) /* duplicated setting */ \
759        PORT_DIPSETTING(  0x04, "4 Stages" ) /* duplicated setting */ \
760        PORT_DIPSETTING(  0x18, "4 Stages" ) /* duplicated setting */ \
761      PORT_DIPSETTING(    0x00, "4 Stages" ) \
762      PORT_DIPSETTING(    0x08, "5 Stages" )
763#endif
681764
682   PORT_MODIFY("DSW")
683   BEATMANIA_DSW1(0x80000000, 0x3f000000)
765#ifdef PRIORITY_EASINESS_TO_PLAY
766   #define BEATMANIA_DSW3_STAGES_NEW( str ) \
767      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
768      PORT_DIPSETTING(    0x10, "3 / 2 Stages" ) \
769      PORT_DIPSETTING(    0x00, "4 / 3 Stages" ) \
770      PORT_DIPSETTING(    0x08, "5 / 3 Stages" ) \
771      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
772      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
773      PORT_DIPSETTING(    0x14, "2 Stages" ) \
774      PORT_DIPSETTING(    0x10, "3 Stages" ) \
775      PORT_DIPSETTING(    0x00, "4 Stages" ) \
776      PORT_DIPSETTING(    0x08, "5 Stages" )
777#else
778   #define BEATMANIA_DSW3_STAGES_NEW( str ) \
779      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
780      PORT_DIPSETTING(    0x10, "3 / 2 Stages" ) \
781        PORT_DIPSETTING(  0x1c, "4 / 3 Stages" ) /* duplicated setting */ \
782        PORT_DIPSETTING(  0x0c, "4 / 3 Stages" ) /* duplicated setting */ \
783        PORT_DIPSETTING(  0x14, "4 / 3 Stages" ) /* duplicated setting */ \
784        PORT_DIPSETTING(  0x04, "4 / 3 Stages" ) /* duplicated setting */ \
785        PORT_DIPSETTING(  0x18, "4 / 3 Stages" ) /* duplicated setting */ \
786      PORT_DIPSETTING(    0x00, "4 / 3 Stages" ) \
787      PORT_DIPSETTING(    0x08, "5 / 3 Stages" ) \
788      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
789      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
790      PORT_DIPSETTING(    0x14, "2 Stages" ) \
791      PORT_DIPSETTING(    0x10, "3 Stages" ) \
792        PORT_DIPSETTING(  0x1c, "4 Stages" ) /* duplicated setting */ \
793        PORT_DIPSETTING(  0x04, "4 Stages" ) /* duplicated setting */ \
794        PORT_DIPSETTING(  0x18, "4 Stages" ) /* duplicated setting */ \
795      PORT_DIPSETTING(    0x00, "4 Stages" ) \
796      PORT_DIPSETTING(    0x08, "5 Stages" )
797#endif
684798
685   PORT_BIT( 0x00100000, IP_ACTIVE_HIGH, IPT_UNKNOWN )      /* DSW 2-4 */
686   PORT_DIPNAME( 0x000f0000, 0x000f0000, DEF_STR( Difficulty ) )
687   PORT_DIPSETTING(          0x000a0000, "Level 0" )
688   PORT_DIPSETTING(          0x000e0000, "Level 1" )
689   PORT_DIPSETTING(          0x000d0000, "Level 2" )
690   PORT_DIPSETTING(          0x000c0000, "Level 3" )
691   PORT_DIPSETTING(          0x000b0000, "Level 4" )
692   PORT_DIPSETTING(          0x000f0000, "Level 5" )
693   PORT_DIPSETTING(          0x00090000, "Level 6" )
694   PORT_DIPSETTING(          0x00080000, "Level 7" )
695   PORT_DIPSETTING(          0x00070000, "Level 8" )
696   PORT_DIPSETTING(          0x00060000, "Level 9" )
697   PORT_DIPSETTING(          0x00050000, "Level 10" )
698   PORT_DIPSETTING(          0x00040000, "Level 11" )
699   PORT_DIPSETTING(          0x00030000, "Level 12" )
700   PORT_DIPSETTING(          0x00020000, "Level 13" )
701   PORT_DIPSETTING(          0x00010000, "Level 14" )
702   PORT_DIPSETTING(          0x00000000, "Level 15" )
799#define BM1STMIX_DSW1 \
800   PORT_START("DSW1") \
801   PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \
802   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \
803   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \
804   BEATMANIA_DSW1_COINAGE_OLD /* SW1:8,7,6,5,4 */
805
806#define BM1STMIX_DSW2 \
807   PORT_START("DSW2") \
808   PORT_DIPNAME( 0x80, 0x80, "Enable Expert Mode" ) PORT_DIPLOCATION("SW2:1") \
809   PORT_DIPSETTING(    0x00, DEF_STR( No ) ) \
810   PORT_DIPSETTING(    0x80, DEF_STR( Yes ) ) \
811   BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \
812   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \
813   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:5" ) \
814   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:6" ) \
815   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:7" ) \
816   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" )
817
818#define BM1STMIX_DSW3 \
819   PORT_START("DSW3") \
820   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
821   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \
822   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \
823   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \
824   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \
825   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
826   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
827
828#define BM2NDMIX_DSW1 \
829   PORT_START("DSW1") \
830   PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:1" ) \
831   PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:2" ) \
832   BEATMANIA_DSW1_COINAGE_NEW /* SW1:8,7,6,5,4,3 */
833
834#define BM2NDMIX_DSW2 \
835   PORT_START("DSW2") \
836   BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \
837   BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \
838   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \
839   BEATMANIA_DSW2_DIFFICULITY_OLD /* SW2:3,8,7,6,5 */
840
841#define BM2NDMIX_DSW3 \
842   PORT_START("DSW3") \
843   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
844   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
845   PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_DIPLOCATION("SW3:3,2") \
846   PORT_DIPSETTING(    0x18, "1 Stage" ) \
847   PORT_DIPSETTING(    0x08, "2 Stages" ) \
848   PORT_DIPSETTING(    0x10, "3 Stages" ) \
849   PORT_DIPSETTING(    0x00, "4 Stages" ) \
850   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \
851   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
852   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
853
854#define BM3RDMIX_DSW3 \
855   PORT_START("DSW3") \
856   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
857   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
858   BEATMANIA_DSW3_STAGES_OLD /* SW3:4,3,2 */ \
859   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
860   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
861
862#define BM4THMIX_DSW2( str, str2 ) \
863   PORT_START("DSW2") \
864   BEATMANIA_DSW2_SCOREDISPLAY /* SW2:1 */ \
865   BEATMANIA_DSW2_DEMOSOUNDS /* SW2:3,2 */ \
866   BEATMANIA_DSW2_LEVELDISPLAY /* SW2:4 */ \
867   BEATMANIA_DSW2_DIFFICULITY_NEW( str, str2 ) /* SW2:8,7,6,5 */
868
869#define BM4THMIX_DSW3( str ) \
870   PORT_START("DSW3") \
871   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
872   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
873   BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \
874   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
875   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
876
877#define HMCOMPM2_DSW3( str ) \
878   PORT_START("DSW3") \
879   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
880   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
881   BEATMANIA_DSW3_STAGES_MIDDLE( str ) /* SW3:4,3,2 */ \
882   PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5") \
883   PORT_DIPSETTING(    0x02, "On Stage Middle" ) \
884   PORT_DIPSETTING(    0x00, "On Stage Last" ) \
885   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
886
887#ifdef PRIORITY_EASINESS_TO_PLAY
888   #define BMDCT_DSW3( str ) \
889      PORT_START("DSW3") \
890      PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
891      BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
892      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
893      PORT_DIPSETTING(    0x1c, "3 / 3 Stages" ) \
894      PORT_DIPSETTING(    0x10, "4 / 4 Stages" ) \
895      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
896      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
897      PORT_DIPSETTING(    0x14, "2 Stages" ) \
898      PORT_DIPSETTING(    0x10, "3 Stages" ) \
899      PORT_DIPSETTING(    0x1c, "4 Stages" ) \
900      PORT_DIPSETTING(    0x08, "5 Stages" ) \
901      PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
902      PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
903#else
904   #define BMDCT_DSW3( str ) \
905      PORT_START("DSW3") \
906      PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
907      BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
908      PORT_DIPNAME( 0x1c, 0x1c, str ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
909      PORT_DIPSETTING(    0x1c, "3 / 3 Stages" ) \
910        PORT_DIPSETTING(  0x0c, "3 / 3 Stages" ) /* duplicated setting */ \
911        PORT_DIPSETTING(  0x14, "3 / 3 Stages" ) /* duplicated setting */ \
912        PORT_DIPSETTING(  0x04, "3 / 3 Stages" ) /* duplicated setting */ \
913        PORT_DIPSETTING(  0x18, "3 / 3 Stages" ) /* duplicated setting */ \
914        PORT_DIPSETTING(  0x08, "3 / 3 Stages" ) /* duplicated setting */ \
915        PORT_DIPSETTING(  0x00, "3 / 3 Stages" ) /* duplicated setting */ \
916      PORT_DIPSETTING(    0x10, "4 / 4 Stages" ) \
917      PORT_DIPNAME( 0x1c, 0x1c, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:4,3,2") \
918      PORT_DIPSETTING(    0x0c, "1 Stage" ) \
919      PORT_DIPSETTING(    0x14, "2 Stages" ) \
920      PORT_DIPSETTING(    0x10, "3 Stages" ) \
921      PORT_DIPSETTING(    0x1c, "4 Stages" ) \
922        PORT_DIPSETTING(  0x04, "4 Stages" ) /* duplicated setting */ \
923        PORT_DIPSETTING(  0x18, "4 Stages" ) /* duplicated setting */ \
924        PORT_DIPSETTING(  0x00, "4 Stages" ) /* duplicated setting */ \
925      PORT_DIPSETTING(    0x08, "5 Stages" ) \
926      PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
927      PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
928#endif
929
930#define BM6THMIX_DSW3( str ) \
931   PORT_START("DSW3") \
932   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
933   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */ \
934   BEATMANIA_DSW3_STAGES_NEW( str ) /* SW3:4,3,2 */ \
935   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
936   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
937
938static INPUT_PORTS_START( bm1stmix )
939   PORT_INCLUDE( beatmania_btn )
940   BM1STMIX_DSW1
941   BM1STMIX_DSW2
942   BM1STMIX_DSW3
703943INPUT_PORTS_END
704944
705static INPUT_PORTS_START( bm4thmix )
706   PORT_INCLUDE( beatmania )
945static INPUT_PORTS_START( bm2ndmix )
946   PORT_INCLUDE( beatmania_btn )
947   BM2NDMIX_DSW1
948   BM2NDMIX_DSW2
949   BM2NDMIX_DSW3
950   /* "Free Hidden Songs" 3-3=On 3-6=On */
951   PORT_MODIFY("DSW3")
952   BEATMANIA_DSW3_EVENTMODE /* SW3:1 */
953   PORT_DIPNAME( 0x10, 0x10, "Unused (Used if Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:2")
954   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
955   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
956   PORT_DIPNAME( 0x08, 0x08, "Free Hidden Songs (step1of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:3")
957   PORT_DIPSETTING(    0x08, "No (Off)" )
958   PORT_DIPSETTING(    0x00, "Yes (On)" )
959   PORT_DIPNAME( 0x18, 0x18, "Event Mode Stages" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:3,2")
960   PORT_DIPSETTING(    0x18, "1 Stage" )
961   PORT_DIPSETTING(    0x08, "2 Stages" )
962   PORT_DIPSETTING(    0x10, "3 Stages" )
963   PORT_DIPSETTING(    0x00, "4 Stages" )
964   PORT_DIPNAME( 0x01, 0x01, "Free Hidden Songs (step2of2)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_EQUALS, 0x20) PORT_DIPLOCATION("SW3:6")
965   PORT_DIPSETTING(    0x01, "No (Off)" )
966   PORT_DIPSETTING(    0x00, "Yes (On)" )
967   PORT_DIPNAME( 0x01, 0x01, "Unused (Used if not Event Mode)" ) PORT_CONDITION("DSW3", 0x20, PORTCOND_NOTEQUALS, 0x20) PORT_DIPLOCATION("SW3:6")
968   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
969   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
970   /* "Free Hidden Songs" 3-3=On 3-6=On */
971INPUT_PORTS_END
707972
708   PORT_MODIFY("INPUTS")
709   PORT_DIPNAME( 0x02000000, 0x02000000, "Secret Expert Course" )   /* DSW 3-5 */
710   PORT_DIPSETTING(          0x02000000, DEF_STR( Off ) )
711   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
973static INPUT_PORTS_START( bm3rdmix )
974   PORT_INCLUDE( beatmania_btn )
975   BM2NDMIX_DSW1
976   BM2NDMIX_DSW2
977   BM3RDMIX_DSW3
978INPUT_PORTS_END
712979
713   PORT_MODIFY("DSW")
714   BEATMANIA_DSW1(0x40000000, 0x3f000000)
980static INPUT_PORTS_START( bmcompmx )
981   PORT_INCLUDE( beatmania_btn )
982   BM2NDMIX_DSW1
983   BM2NDMIX_DSW2
984   BM3RDMIX_DSW3
985   /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */
986   PORT_MODIFY("DSW1")
987   PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of5)" ) PORT_DIPLOCATION("SW1:1")
988   PORT_DIPSETTING(    0x80, "Yes (Off)" )
989   PORT_DIPSETTING(    0x00, "No (On)" )
990   PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of5)" ) PORT_DIPLOCATION("SW1:2")
991   PORT_DIPSETTING(    0x40, "No (Off)" )
992   PORT_DIPSETTING(    0x00, "Yes (On)" )
993   PORT_MODIFY("DSW2")
994   PORT_DIPNAME( 0x10, 0x10, "Free Secret Expert Course (step3of5)" ) PORT_DIPLOCATION("SW2:4")
995   PORT_DIPSETTING(    0x10, "No (Off)" )
996   PORT_DIPSETTING(    0x00, "Yes (On)" )
997   PORT_MODIFY("DSW3")
998   PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of5)" ) PORT_DIPLOCATION("SW3:5")
999   PORT_DIPSETTING(    0x02, "Yes (Off)" )
1000   PORT_DIPSETTING(    0x00, "No (On)" )
1001   PORT_DIPNAME( 0x01, 0x01, "Free Secret Expert Course (step5of5)" ) PORT_DIPLOCATION("SW3:6")
1002   PORT_DIPSETTING(    0x01, "No (Off)" )
1003   PORT_DIPSETTING(    0x00, "Yes (On)" )
1004   /* "Free Secret Expert Course" 1-1=Off 1-2=On 2-4=On 3-5=Off 3-6=On */
7151005INPUT_PORTS_END
7161006
1007static INPUT_PORTS_START( bm4thmix )
1008   PORT_INCLUDE( beatmania_btn )
1009   BM2NDMIX_DSW1
1010   BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" )
1011   BM4THMIX_DSW3( "Basic / Hard Mode Stages" )
1012   /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */
1013   PORT_MODIFY("DSW1")
1014   PORT_DIPNAME( 0x80, 0x80, "Free Secret Expert Course (step1of4)" ) PORT_DIPLOCATION("SW1:1")
1015   PORT_DIPSETTING(    0x80, "No (Off)" )
1016   PORT_DIPSETTING(    0x00, "Yes (On)" )
1017   PORT_DIPNAME( 0x40, 0x40, "Free Secret Expert Course (step2of4)" ) PORT_DIPLOCATION("SW1:2")
1018   PORT_DIPSETTING(    0x40, "Yes (Off)" )
1019   PORT_DIPSETTING(    0x00, "No (On)" )
1020   PORT_MODIFY("DSW2")
1021   PORT_DIPNAME( 0x80, 0x80, "Score Display / Free Secret Expert Course (step3of4)" ) PORT_DIPLOCATION("SW2:1")
1022   PORT_DIPSETTING(    0x80, "On / No (Off)" )
1023   PORT_DIPSETTING(    0x00, "Off / Yes (On)" )
1024   PORT_MODIFY("DSW3")
1025   PORT_DIPNAME( 0x02, 0x02, "Free Secret Expert Course (step4of4)" ) PORT_DIPLOCATION("SW3:5")
1026   PORT_DIPSETTING(    0x02, "No (Off)" )
1027   PORT_DIPSETTING(    0x00, "Yes (On)" )
1028   PORT_DIPNAME( 0x01, 0x01, "Score Display (if Free Secret Expert Course)" ) PORT_DIPLOCATION("SW3:6")
1029   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1030   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
1031   /* "Free Secret Expert Course" 1-1=On 1-2=Off 2-1=On 3-5=On */
1032INPUT_PORTS_END
1033
1034static INPUT_PORTS_START( bm5thmix ) /* and bmcompm2 */
1035   PORT_INCLUDE( beatmania_btn )
1036   BM2NDMIX_DSW1
1037   BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" )
1038   BM4THMIX_DSW3( "Basic / Hard Mode Stages" )
1039INPUT_PORTS_END
1040
7171041static INPUT_PORTS_START( hmcompm2 )
718   PORT_INCLUDE( beatmania )
1042   PORT_INCLUDE( beatmania_btn )
1043   BM2NDMIX_DSW1
1044   BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Expert Mode Difficulty" )
1045   BM4THMIX_DSW3( "Basic / Hard Mode Stages" )
1046   PORT_MODIFY("DSW3")
1047   PORT_DIPNAME( 0x02, 0x02, "Game Over Mode" ) PORT_DIPLOCATION("SW3:5")
1048   PORT_DIPSETTING(    0x02, "On Stage Middle" )
1049   PORT_DIPSETTING(    0x00, "On Stage Last" )
1050INPUT_PORTS_END
7191051
720   PORT_MODIFY("INPUTS")
721   PORT_DIPNAME( 0x02000000, 0x02000000, "Game Over Mode" )
722   PORT_DIPSETTING(          0x02000000, "On Stage Middle" )
723   PORT_DIPSETTING(          0x00000000, "On Stage Last" )
1052static INPUT_PORTS_START( bmclubmx )
1053   PORT_INCLUDE( beatmania_btn )
1054   BM2NDMIX_DSW1
1055   BM4THMIX_DSW2( "Normal / Maniac Mode Difficulty", "Expert Mode Difficulty" )
1056   BM4THMIX_DSW3( "Normal / Maniac Mode Stages" )
7241057INPUT_PORTS_END
7251058
7261059static INPUT_PORTS_START( bmdct )
727   PORT_INCLUDE( beatmania )
1060   PORT_INCLUDE( beatmania_btn )
1061   BM2NDMIX_DSW1
1062   BM4THMIX_DSW2( "Basic / Hard Mode Difficulty", "Monkey Live Mode Difficulty" )
1063   BMDCT_DSW3( "Basic / Hard Mode Stages" )
1064INPUT_PORTS_END
7281065
729   PORT_MODIFY("INPUTS")
730   PORT_DIPNAME( 0x1c000000, 0x1c000000, "Normal / Event Mode Stages" )
731   PORT_DIPSETTING(          0x0c000000, "3 / 1" )
732   PORT_DIPSETTING(          0x14000000, "3 / 2" )
733   PORT_DIPSETTING(          0x10000000, "4 / 3" )
734   PORT_DIPSETTING(          0x1c000000, "3 / 4" )
735   PORT_DIPSETTING(          0x08000000, "3 / 5" )
1066static INPUT_PORTS_START( bmcorerm )
1067   PORT_INCLUDE( beatmania_btn )
1068   BM2NDMIX_DSW1
1069   BM4THMIX_DSW2( "Normal / Hard Mode Difficulty", "Expert Mode Difficulty" )
1070   BM4THMIX_DSW3( "Normal / Hard Mode Stages" )
7361071INPUT_PORTS_END
7371072
738#ifdef UNUSED_DEFINITION
739static INPUT_PORTS_START( popn1 )
740   PORT_START("INPUTS")
741   PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
742   PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
743   PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
744   PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
745   PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
746   PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_UNKNOWN )
747   PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
748   PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1)
749   PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1)
750   PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1)
751   PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNKNOWN )
752   PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
753   PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_UNKNOWN )
754   PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_UNKNOWN )
755   PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNKNOWN )
756   PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_COIN1 )
1073static INPUT_PORTS_START( bm6thmix ) /* bm7thmix, and bmfinal */
1074   PORT_INCLUDE( beatmania_btn )
1075   BM2NDMIX_DSW1
1076   BM4THMIX_DSW2( "Normal / Free Mode Difficulty", "Expert Mode Difficulty" )
1077   BM6THMIX_DSW3( "Normal / Free Mode Stages" )
1078INPUT_PORTS_END
7571079
758   PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2)   /* TEST SW */
759   PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_SERVICE1 )   /* SERVICE */
760   PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_SERVICE2 )   /* RESET SW */
761   PORT_BIT( 0x00f80000, IP_ACTIVE_LOW, IPT_UNKNOWN )
762   PORT_BIT( 0xec000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
763   PORT_DIPNAME( 0x10000000, 0x10000000, "All Song Mode" )      /* DSW 3-2 */
764   PORT_DIPSETTING(          0x10000000, DEF_STR( Off ) )
765   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
766   PORT_DIPNAME( 0x02000000, 0x02000000, "Enable\"RAVE\"" )      /* DSW 3-5 */
767   PORT_DIPSETTING(          0x02000000, DEF_STR( Off ) )
768   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
769   PORT_DIPNAME( 0x01000000, 0x01000000, "Bonus Track" )      /* DSW 3-6 */
770   PORT_DIPSETTING(          0x01000000, DEF_STR( Off ) )
771   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
7721080
773   PORT_START("DSW")
774   PORT_DIPNAME( 0xc0000000, 0xc0000000, "Jamming Gauge Blocks" )
775   PORT_DIPSETTING(          0x80000000, "5" )
776   PORT_DIPSETTING(          0xc0000000, "6" )
777   PORT_DIPSETTING(          0x40000000, "7" )
778   PORT_DIPSETTING(          0x00000000, "8" )
779   PORT_BIT( 0x30000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
780   PORT_DIPNAME( 0x0f000000, 0x0f000000, DEF_STR( Coinage ) )
781   PORT_DIPSETTING(          0x01000000, "1P 5C / Continue 5C" )
782   PORT_DIPSETTING(          0x02000000, "1P 5C / Continue 4C" )
783   PORT_DIPSETTING(          0x03000000, "1P 5C / Continue 3C" )
784   PORT_DIPSETTING(          0x04000000, "1P 5C / Continue 2C" )
785   PORT_DIPSETTING(          0x05000000, "1P 5C / Continue 1C" )
786   PORT_DIPSETTING(          0x06000000, "1P 4C / Continue 4C" )
787   PORT_DIPSETTING(          0x07000000, "1P 4C / Continue 3C" )
788   PORT_DIPSETTING(          0x08000000, "1P 4C / Continue 2C" )
789   PORT_DIPSETTING(          0x09000000, "1P 4C / Continue 1C" )
790   PORT_DIPSETTING(          0x0a000000, "1P 3C / Continue 3C" )
791   PORT_DIPSETTING(          0x0b000000, "1P 3C / Continue 2C" )
792   PORT_DIPSETTING(          0x0c000000, "1P 3C / Continue 1C" )
793   PORT_DIPSETTING(          0x0d000000, "1P 2C / Continue 2C" )
794   PORT_DIPSETTING(          0x0f000000, "1P 2C / Continue 1C" )
795   PORT_DIPSETTING(          0x0e000000, "1P 1C / Continue 1C" )
796   PORT_DIPSETTING(          0x00000000, DEF_STR( Free_Play ) )
1081//--------- Pop'n Music
7971082
798   PORT_DIPNAME( 0x00800000, 0x00800000, "Score Display" )
799   PORT_DIPSETTING(          0x00000000, DEF_STR( Off ) )
800   PORT_DIPSETTING(          0x00800000, DEF_STR( On ) )
801   PORT_DIPNAME( 0x00600000, 0x00600000, DEF_STR( Demo_Sounds ) )
802   PORT_DIPSETTING(          0x00600000, "Loud" )
803   PORT_DIPSETTING(          0x00200000, DEF_STR ( Medium ) )
804   PORT_DIPSETTING(          0x00400000, DEF_STR ( Low ) )
805   PORT_DIPSETTING(          0x00000000, "Silent" )
806   PORT_DIPNAME( 0x00100000, 0x00100000, "Normal Mode Jamming" )
807   PORT_DIPSETTING(          0x00000000, DEF_STR( Off ) )
808   PORT_DIPSETTING(          0x00100000, DEF_STR( On ) )
809   PORT_DIPNAME( 0x000c0000, 0x000c0000, "Guage Decrement Level" )
810   PORT_DIPSETTING(          0x00040000, "0" )
811   PORT_DIPSETTING(          0x000c0000, "1" )
812   PORT_DIPSETTING(          0x00080000, "2" )
813   PORT_DIPSETTING(          0x00000000, "3" )
814   PORT_DIPNAME( 0x00030000, 0x00030000, "Guage Increment Level" )
815   PORT_DIPSETTING(          0x00010000, "0" )
816   PORT_DIPSETTING(          0x00030000, "1" )
817   PORT_DIPSETTING(          0x00020000, "2" )
818   PORT_DIPSETTING(          0x00000000, "3" )
819
820   PORT_BIT( 0x0000ffff, IP_ACTIVE_LOW, IPT_UNUSED )
1083#ifdef UNUSED_DEFINITION
1084static INPUT_PORTS_START( popnmusic_btn )
1085   PORT_START("BTN1")
1086   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1087   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1088   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1089   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
1090   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
1091   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1092   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
1093   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1)
1094   PORT_START("BTN2")
1095   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1)
1096   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1)
1097   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 BUTTON 5 */
1098   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1099   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P1 START */
1100   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as P2 START */
1101   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as EFFECT */
1102   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1103   PORT_START("BTN3")
1104   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2)   /* TEST SW */
1105   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")   /* SERVICE */
1106   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset")   /* RESET SW */
1107   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
1108   PORT_START("UNK1")
1109   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1110   PORT_START("UNK2")
1111   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1112   //PORT_START("TT1")     /* turn table 1P */
1113   //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1)
1114   //PORT_START("TT2")     /* turn table 2P */
1115   //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2)
8211116INPUT_PORTS_END
8221117#endif
8231118
824#ifdef UNUSED_DEFINITION
825static INPUT_PORTS_START( popnmusic )
826   PORT_INCLUDE( popn1 )
1119#define POPN_DSW1_COINAGE_OLD \
1120   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5") \
1121   PORT_DIPSETTING(    0x01, "1P 5C / Continue 5C" ) \
1122   PORT_DIPSETTING(    0x02, "1P 5C / Continue 4C" ) \
1123   PORT_DIPSETTING(    0x03, "1P 5C / Continue 3C" ) \
1124   PORT_DIPSETTING(    0x04, "1P 5C / Continue 2C" ) \
1125   PORT_DIPSETTING(    0x05, "1P 5C / Continue 1C" ) \
1126   PORT_DIPSETTING(    0x06, "1P 4C / Continue 4C" ) \
1127   PORT_DIPSETTING(    0x07, "1P 4C / Continue 3C" ) \
1128   PORT_DIPSETTING(    0x08, "1P 4C / Continue 2C" ) \
1129   PORT_DIPSETTING(    0x09, "1P 4C / Continue 1C" ) \
1130   PORT_DIPSETTING(    0x0a, "1P 3C / Continue 3C" ) \
1131   PORT_DIPSETTING(    0x0b, "1P 3C / Continue 2C" ) \
1132   PORT_DIPSETTING(    0x0c, "1P 3C / Continue 1C" ) \
1133   PORT_DIPSETTING(    0x0d, "1P 2C / Continue 2C" ) \
1134   PORT_DIPSETTING(    0x0f, "1P 2C / Continue 1C" ) \
1135   PORT_DIPSETTING(    0x0e, "1P 1C / Continue 1C" ) \
1136   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
8271137
828   PORT_MODIFY("INPUTS")
829   PORT_BIT( 0xf7000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
830   PORT_DIPNAME( 0x08000000, 0x08000000, "All Song Mode" )      /* DSW 3-3 */
831   PORT_DIPSETTING(          0x08000000, DEF_STR( Off ) )
832   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
1138#define POPN_DSW1_COINAGE_NEW \
1139   PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7,6,5,4") \
1140   PORT_DIPSETTING(    0x01, "1P 8C / Continue 8C" ) \
1141   PORT_DIPSETTING(    0x02, "1P 8C / Continue 7C" ) \
1142   PORT_DIPSETTING(    0x03, "1P 8C / Continue 6C" ) \
1143   PORT_DIPSETTING(    0x04, "1P 8C / Continue 5C" ) \
1144   PORT_DIPSETTING(    0x05, "1P 8C / Continue 4C" ) \
1145   PORT_DIPSETTING(    0x06, "1P 8C / Continue 3C" ) \
1146   PORT_DIPSETTING(    0x07, "1P 7C / Continue 7C" ) \
1147   PORT_DIPSETTING(    0x08, "1P 7C / Continue 6C" ) \
1148   PORT_DIPSETTING(    0x09, "1P 7C / Continue 5C" ) \
1149   PORT_DIPSETTING(    0x0a, "1P 7C / Continue 4C" ) \
1150   PORT_DIPSETTING(    0x0b, "1P 7C / Continue 3C" ) \
1151   PORT_DIPSETTING(    0x0c, "1P 6C / Continue 6C" ) \
1152   PORT_DIPSETTING(    0x0d, "1P 6C / Continue 5C" ) \
1153   PORT_DIPSETTING(    0x0e, "1P 6C / Continue 4C" ) \
1154   PORT_DIPSETTING(    0x0f, "1P 6C / Continue 3C" ) \
1155   PORT_DIPSETTING(    0x10, "1P 6C / Continue 2C" ) \
1156   PORT_DIPSETTING(    0x11, "1P 5C / Continue 5C" ) \
1157   PORT_DIPSETTING(    0x12, "1P 5C / Continue 4C" ) \
1158   PORT_DIPSETTING(    0x13, "1P 5C / Continue 3C" ) \
1159   PORT_DIPSETTING(    0x14, "1P 5C / Continue 2C" ) \
1160   PORT_DIPSETTING(    0x15, "1P 5C / Continue 1C" ) \
1161   PORT_DIPSETTING(    0x16, "1P 4C / Continue 4C" ) \
1162   PORT_DIPSETTING(    0x17, "1P 4C / Continue 3C" ) \
1163   PORT_DIPSETTING(    0x18, "1P 4C / Continue 2C" ) \
1164   PORT_DIPSETTING(    0x19, "1P 4C / Continue 1C" ) \
1165   PORT_DIPSETTING(    0x1a, "1P 3C / Continue 3C" ) \
1166   PORT_DIPSETTING(    0x1b, "1P 3C / Continue 2C" ) \
1167   PORT_DIPSETTING(    0x1c, "1P 3C / Continue 1C" ) \
1168   PORT_DIPSETTING(    0x1d, "1P 2C / Continue 2C" ) \
1169   PORT_DIPSETTING(    0x1f, "1P 2C / Continue 1C" ) \
1170   PORT_DIPSETTING(    0x1e, "1P 1C / Continue 1C" ) \
1171   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
8331172
834   PORT_MODIFY("DSW")
835   PORT_DIPNAME( 0x20000000, 0x20000000, "Normal Mode Jamming" )
836   PORT_DIPSETTING(          0x20000000, DEF_STR( Off ) )
837   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
838   PORT_DIPNAME( 0x1f000000, 0x1f000000, DEF_STR( Coinage ) )
839   PORT_DIPSETTING(          0x01000000, "1P 8C / Continue 8C" )
840   PORT_DIPSETTING(          0x02000000, "1P 8C / Continue 7C" )
841   PORT_DIPSETTING(          0x03000000, "1P 8C / Continue 6C" )
842   PORT_DIPSETTING(          0x04000000, "1P 8C / Continue 5C" )
843   PORT_DIPSETTING(          0x05000000, "1P 8C / Continue 4C" )
844   PORT_DIPSETTING(          0x06000000, "1P 8C / Continue 3C" )
845   PORT_DIPSETTING(          0x07000000, "1P 7C / Continue 7C" )
846   PORT_DIPSETTING(          0x08000000, "1P 7C / Continue 6C" )
847   PORT_DIPSETTING(          0x09000000, "1P 7C / Continue 5C" )
848   PORT_DIPSETTING(          0x0a000000, "1P 7C / Continue 4C" )
849   PORT_DIPSETTING(          0x0b000000, "1P 7C / Continue 3C" )
850   PORT_DIPSETTING(          0x0c000000, "1P 6C / Continue 6C" )
851   PORT_DIPSETTING(          0x0d000000, "1P 6C / Continue 5C" )
852   PORT_DIPSETTING(          0x0e000000, "1P 6C / Continue 4C" )
853   PORT_DIPSETTING(          0x0f000000, "1P 6C / Continue 3C" )
854   PORT_DIPSETTING(          0x10000000, "1P 6C / Continue 2C" )
855   PORT_DIPSETTING(          0x11000000, "1P 5C / Continue 5C" )
856   PORT_DIPSETTING(          0x12000000, "1P 5C / Continue 4C" )
857   PORT_DIPSETTING(          0x13000000, "1P 5C / Continue 3C" )
858   PORT_DIPSETTING(          0x14000000, "1P 5C / Continue 2C" )
859   PORT_DIPSETTING(          0x15000000, "1P 5C / Continue 1C" )
860   PORT_DIPSETTING(          0x16000000, "1P 4C / Continue 4C" )
861   PORT_DIPSETTING(          0x17000000, "1P 4C / Continue 3C" )
862   PORT_DIPSETTING(          0x18000000, "1P 4C / Continue 2C" )
863   PORT_DIPSETTING(          0x19000000, "1P 4C / Continue 1C" )
864   PORT_DIPSETTING(          0x1a000000, "1P 3C / Continue 3C" )
865   PORT_DIPSETTING(          0x1b000000, "1P 3C / Continue 2C" )
866   PORT_DIPSETTING(          0x1c000000, "1P 3C / Continue 1C" )
867   PORT_DIPSETTING(          0x1d000000, "1P 2C / Continue 2C" )
868   PORT_DIPSETTING(          0x1f000000, "1P 2C / Continue 1C" )
869   PORT_DIPSETTING(          0x1e000000, "1P 1C / Continue 1C" )
870   PORT_DIPSETTING(          0x00000000, DEF_STR( Free_Play ) )
1173#define POPN_DSW1_JAMMINGGAUGE \
1174   PORT_DIPNAME( 0xc0, 0xc0, "Jamming Gauge Blocks" ) PORT_DIPLOCATION("SW1:2,1") \
1175   PORT_DIPSETTING(    0x80, "5" ) \
1176   PORT_DIPSETTING(    0xc0, "6" ) \
1177   PORT_DIPSETTING(    0x40, "7" ) \
1178   PORT_DIPSETTING(    0x00, "8" )
8711179
872   PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1180#define POPN_DSW2_GAUGEDECREMENT \
1181   PORT_DIPNAME( 0x0c, 0x0c, "Guage Decrement Level" ) PORT_DIPLOCATION("SW2:6,5") \
1182   PORT_DIPSETTING(    0x04, "0" ) \
1183   PORT_DIPSETTING(    0x0c, "1" ) \
1184   PORT_DIPSETTING(    0x08, "2" ) \
1185   PORT_DIPSETTING(    0x00, "3" )
1186
1187#define POPN_DSW2_GAUGEINCREMENT \
1188   PORT_DIPNAME( 0x03, 0x03, "Guage Increment Level" ) PORT_DIPLOCATION("SW2:8,7") \
1189   PORT_DIPSETTING(    0x01, "0" ) \
1190   PORT_DIPSETTING(    0x03, "1" ) \
1191   PORT_DIPSETTING(    0x02, "2" ) \
1192   PORT_DIPSETTING(    0x00, "3" )
1193
1194#define POPN1_DSW1 \
1195   PORT_START("DSW1") \
1196   POPN_DSW1_JAMMINGGAUGE \
1197   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:3" ) \
1198   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" ) \
1199   POPN_DSW1_COINAGE_OLD
1200
1201#define POPN2_DSW1 \
1202   PORT_START("DSW1") \
1203   POPN_DSW1_JAMMINGGAUGE \
1204   PORT_DIPNAME( 0x20, 0x20, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW1:3") \
1205   PORT_DIPSETTING(    0x20, DEF_STR( Off ) ) \
1206   PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
1207   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:4" ) \
1208   POPN_DSW1_COINAGE_NEW
1209
1210#define POPN1_DSW2 \
1211   PORT_START("DSW2") \
1212   BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \
1213   BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \
1214   PORT_DIPNAME( 0x10, 0x10, "Normal Mode Jamming" ) PORT_DIPLOCATION("SW2:4") \
1215   PORT_DIPSETTING(    0x00, DEF_STR( Off ) ) \
1216   PORT_DIPSETTING(    0x10, DEF_STR( On ) ) \
1217   POPN_DSW2_GAUGEDECREMENT \
1218   POPN_DSW2_GAUGEINCREMENT
1219
1220#define POPN2_DSW2 \
1221   PORT_START("DSW2") \
1222   BEATMANIA_DSW2_SCOREDISPLAY /* same as BEATMANIA */ \
1223   BEATMANIA_DSW2_DEMOSOUNDS /* same as BEATMANIA */ \
1224   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:4" ) \
1225   POPN_DSW2_GAUGEDECREMENT \
1226   POPN_DSW2_GAUGEINCREMENT
1227
1228#define POPN1_DSW3 \
1229   PORT_START("DSW3") \
1230   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
1231   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \
1232   PORT_DIPNAME( 0x10, 0x10, "All Song Mode [*A]" ) PORT_DIPLOCATION("SW3:2") \
1233   PORT_DIPSETTING(    0x10, DEF_STR( Off ) ) \
1234   PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
1235   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" ) \
1236   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \
1237   PORT_DIPNAME( 0x02, 0x02, "Enable \"RAVE\" (with *A=On) [*B]" ) PORT_DIPLOCATION("SW3:5") \
1238   PORT_DIPSETTING(    0x02, DEF_STR( Off ) ) \
1239   PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
1240   PORT_DIPNAME( 0x01, 0x01, "Enable \"Bonus Track\" (with *A=On and *B=On )" ) PORT_DIPLOCATION("SW3:6") \
1241   PORT_DIPSETTING(    0x01, DEF_STR( Off ) ) \
1242   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1243   /* "All Song Mode"      3-2=On */
1244   /* "Enable RAVE"        3-2=On 3-5=On */
1245   /* "Enable BONUS TRACK" 3-2=On 3-5=On 3-6=On */
1246
1247#define POPN2_DSW3 \
1248   PORT_START("DSW3") \
1249   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */ \
1250   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" ) \
1251   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" ) \
1252   PORT_DIPNAME( 0x08, 0x08, "All Song Mode" ) PORT_DIPLOCATION("SW3:3") \
1253   PORT_DIPSETTING(    0x08, DEF_STR( Off ) ) \
1254   PORT_DIPSETTING(    0x00, DEF_STR( On ) ) \
1255   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" ) \
1256   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" ) \
1257   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
1258   /* "All Song Mode" 3-3=On */
1259
1260#ifdef UNUSED_DEFINITION
1261static INPUT_PORTS_START( popn1 )
1262   PORT_INCLUDE( popnmusic_btn )
1263   POPN1_DSW1
1264   POPN1_DSW2
1265   POPN1_DSW3
8731266INPUT_PORTS_END
8741267#endif
8751268
8761269#ifdef UNUSED_DEFINITION
1270static INPUT_PORTS_START( popnmusic )   /* popn2 and popn3 */
1271   PORT_INCLUDE( popnmusic_btn )
1272   POPN_DSW1
1273   POPN_DSW2
1274   POPN_DSW3
1275INPUT_PORTS_END
1276#endif
1277
1278//--------- Pop'n Stage
1279
1280#ifdef UNUSED_DEFINITION
8771281static INPUT_PORTS_START( popnstage )
878   PORT_INCLUDE( popn1 )
1282   PORT_START("BTN1")
1283   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
1284   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
1285   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
1286   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
1287   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
1288   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
1289   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
1290   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(1)
1291   PORT_START("BTN2")
1292   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_PLAYER(1)
1293   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_PLAYER(1)
1294   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_PLAYER(1)
1295   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
1296   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )   /* LEFT SELECTION */
1297   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )   /* "OK" (MIDDLE) SELECTION */
1298   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START3 )   /* RIGHT SELECTION */
1299   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
1300   PORT_START("BTN3")
1301   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F2)   /* TEST SW */
1302   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Service")   /* SERVICE */
1303   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Used by beatmania as RESET SW */
1304   PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
1305   PORT_START("UNK1")
1306   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1307   PORT_START("UNK2")
1308   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
1309   //PORT_START("TT1")     /* turn table 1P */
1310   //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(1)
1311   //PORT_START("TT2")     /* turn table 2P */
1312   //PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(30) PORT_KEYDELTA(15) PORT_PLAYER(2)
8791313
880   PORT_MODIFY("INPUTS")
881   PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_PLAYER(1)
882   PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNKNOWN )
883   PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_START1 )   /* LEFT SELECTION */
884   PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_START2 )   /* MIDDLE SELECTION */
885   PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_START3 )   /* RIGHT SELECTION */
886   PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_UNKNOWN )
887   PORT_BIT( 0xd5000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
888   PORT_DIPNAME( 0x2a000000, 0x2a000000, "Enable Secret Mode" )
889   PORT_DIPSETTING(          0x2a000000, DEF_STR( Off ) )
890   PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
1314   PORT_START("DSW1")
1315   PORT_DIPNAME( 0xe0, 0xe0, "Coinage (6 Buttons)" ) PORT_DIPLOCATION("SW1:3,2,1")
1316   PORT_DIPSETTING(    0x20, "1P 4C / Continue 2C" )
1317   PORT_DIPSETTING(    0x40, "1P 3C / Continue 3C" )
1318   PORT_DIPSETTING(    0x60, "1P 3C / Continue 2C" )
1319   PORT_DIPSETTING(    0x80, "1P 3C / Continue 1C" )
1320   PORT_DIPSETTING(    0xa0, "1P 2C / Continue 2C" )
1321   PORT_DIPSETTING(    0xe0, "1P 2C / Continue 1C" )
1322   PORT_DIPSETTING(    0xc0, "1P 1C / Continue 1C" )
1323   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1324   PORT_DIPNAME( 0x1e, 0x1e, "Coinage (10 Buttons)" ) PORT_DIPLOCATION("SW1:7,6,5,4")
1325   PORT_DIPSETTING(    0x02, "1P 5C / Continue 5C" )
1326   PORT_DIPSETTING(    0x04, "1P 5C / Continue 4C" )
1327   PORT_DIPSETTING(    0x06, "1P 5C / Continue 3C" )
1328   PORT_DIPSETTING(    0x08, "1P 5C / Continue 2C" )
1329   PORT_DIPSETTING(    0x0c, "1P 5C / Continue 1C" )
1330   PORT_DIPSETTING(    0x0a, "1P 4C / Continue 4C" )
1331   PORT_DIPSETTING(    0x0e, "1P 4C / Continue 3C" )
1332   PORT_DIPSETTING(    0x10, "1P 4C / Continue 2C" )
1333   PORT_DIPSETTING(    0x12, "1P 4C / Continue 1C" )
1334   PORT_DIPSETTING(    0x14, "1P 3C / Continue 3C" )
1335   PORT_DIPSETTING(    0x1e, "1P 3C / Continue 2C" )
1336   PORT_DIPSETTING(    0x16, "1P 3C / Continue 1C" )
1337   PORT_DIPSETTING(    0x18, "1P 2C / Continue 2C" )
1338   PORT_DIPSETTING(    0x1a, "1P 2C / Continue 1C" )
1339   PORT_DIPSETTING(    0x1c, "1P 1C / Continue 1C" )
1340   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
1341   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW1:8" )
8911342
892   PORT_MODIFY("DSW")
893   PORT_DIPNAME( 0xe0000000, 0xe0000000, "Coinage (6 Buttons)" )
894   PORT_DIPSETTING(          0x20000000, "1P 4C / Continue 2C" )
895   PORT_DIPSETTING(          0x40000000, "1P 3C / Continue 3C" )
896   PORT_DIPSETTING(          0x60000000, "1P 3C / Continue 2C" )
897   PORT_DIPSETTING(          0x80000000, "1P 3C / Continue 1C" )
898   PORT_DIPSETTING(          0xa0000000, "1P 2C / Continue 2C" )
899   PORT_DIPSETTING(          0xe0000000, "1P 2C / Continue 1C" )
900   PORT_DIPSETTING(          0xc0000000, "1P 1C / Continue 1C" )
901   PORT_DIPSETTING(          0x00000000, DEF_STR( Free_Play ) )
902   PORT_DIPNAME( 0x1e000000, 0x1e000000, "Coinage (10 Buttons)" )
903   PORT_DIPSETTING(          0x02000000, "1P 5C / Continue 5C" )
904   PORT_DIPSETTING(          0x04000000, "1P 5C / Continue 4C" )
905   PORT_DIPSETTING(          0x06000000, "1P 5C / Continue 3C" )
906   PORT_DIPSETTING(          0x08000000, "1P 5C / Continue 2C" )
907   PORT_DIPSETTING(          0x0c000000, "1P 5C / Continue 1C" )
908   PORT_DIPSETTING(          0x0a000000, "1P 4C / Continue 4C" )
909   PORT_DIPSETTING(          0x0e000000, "1P 4C / Continue 3C" )
910   PORT_DIPSETTING(          0x10000000, "1P 4C / Continue 2C" )
911   PORT_DIPSETTING(          0x12000000, "1P 4C / Continue 1C" )
912   PORT_DIPSETTING(          0x14000000, "1P 3C / Continue 3C" )
913   PORT_DIPSETTING(          0x1e000000, "1P 3C / Continue 2C" )
914   PORT_DIPSETTING(          0x16000000, "1P 3C / Continue 1C" )
915   PORT_DIPSETTING(          0x18000000, "1P 2C / Continue 2C" )
916   PORT_DIPSETTING(          0x1a000000, "1P 2C / Continue 1C" )
917   PORT_DIPSETTING(          0x1c000000, "1P 1C / Continue 1C" )
918   PORT_DIPSETTING(          0x00000000, DEF_STR( Free_Play ) )
919   PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1343   PORT_START("DSW2")
1344   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:2,1")
1345   PORT_DIPSETTING(    0xc0, "Loud" )
1346   PORT_DIPSETTING(    0x80, DEF_STR ( Medium ) )
1347   PORT_DIPSETTING(    0x40, DEF_STR ( Low ) )
1348   PORT_DIPSETTING(    0x00, "Silent" )
1349   PORT_DIPNAME( 0x30, 0x30, "Guage Decrement Level" ) PORT_DIPLOCATION("SW1:4,3")
1350   PORT_DIPSETTING(    0x20, "0" )
1351   PORT_DIPSETTING(    0x30, "1" )
1352   PORT_DIPSETTING(    0x10, "2" )
1353   PORT_DIPSETTING(    0x00, "3" )
1354   PORT_DIPNAME( 0x0c, 0x0c, "Guage Increment Level" ) PORT_DIPLOCATION("SW1:6,5")
1355   PORT_DIPSETTING(    0x08, "0" )
1356   PORT_DIPSETTING(    0x0c, "1" )
1357   PORT_DIPSETTING(    0x04, "2" )
1358   PORT_DIPSETTING(    0x00, "3" )
1359   PORT_DIPNAME( 0x02, 0x02, "Score Display" ) PORT_DIPLOCATION("SW1:7")
1360   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1361   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
1362   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" )
9201363
921   PORT_DIPNAME( 0x00c00000, 0x00c00000, DEF_STR( Demo_Sounds ) )
922   PORT_DIPSETTING(          0x00c00000, "Loud" )
923   PORT_DIPSETTING(          0x00800000, DEF_STR ( Medium ) )
924   PORT_DIPSETTING(          0x00400000, DEF_STR ( Low ) )
925   PORT_DIPSETTING(          0x00000000, "Silent" )
926   PORT_DIPNAME( 0x00300000, 0x00300000, "Guage Decrement Level" )
927   PORT_DIPSETTING(          0x00200000, "0" )
928   PORT_DIPSETTING(          0x00300000, "1" )
929   PORT_DIPSETTING(          0x00100000, "2" )
930   PORT_DIPSETTING(          0x00000000, "3" )
931   PORT_DIPNAME( 0x000c0000, 0x000c0000, "Guage Increment Level" )
932   PORT_DIPSETTING(          0x00080000, "0" )
933   PORT_DIPSETTING(          0x000c0000, "1" )
934   PORT_DIPSETTING(          0x00040000, "2" )
935   PORT_DIPSETTING(          0x00000000, "3" )
936   PORT_DIPNAME( 0x00020000, 0x00020000, "Score Display" )
937   PORT_DIPSETTING(          0x00000000, DEF_STR( Off ) )
938   PORT_DIPSETTING(          0x00020000, DEF_STR( On ) )
939   PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_UNKNOWN )
1364   PORT_START("DSW3")
1365   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) /* bit 7,6 don't exist */
1366   PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:1" )
1367   PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:2" )
1368   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:3" )
1369   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:4" )
1370   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:5" )
1371   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:6" )
9401372INPUT_PORTS_END
9411373#endif
9421374
1375#ifdef UNUSED_DEFINITION
1376static INPUT_PORTS_START( popnstex )
1377   PORT_INCLUDE( popnstage )
1378   PORT_MODIFY("DSW3")
1379   PORT_DIPNAME( 0x20, 0x20, "Enable Secret Mode (step1of3)" ) PORT_DIPLOCATION("SW3:1")
1380   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1381   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1382   PORT_DIPNAME( 0x08, 0x08, "Enable Secret Mode (step2of3)" ) PORT_DIPLOCATION("SW3:3")
1383   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1384   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1385   PORT_DIPNAME( 0x02, 0x02, "Enable Secret Mode (step3of3)" ) PORT_DIPLOCATION("SW3:5")
1386   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1387   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1388   /* "Enable Secret Mode" 3-1=On 3-3=On 3-5=On */
1389INPUT_PORTS_END
1390#endif
1391
9431392/*************************************
9441393 *
9451394 *  Graphics layouts
r4470r4471
17902239
17912240// commented out games should also run on this driver
17922241
1793GAME( 1997, bm1stmix, 0,        djmain,   bm1stmix,  beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 )
1794GAME( 1998, bm2ndmix, 0,        djmain,   bm2ndmix,  beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 )
1795GAME( 1998, bm2ndmxa, bm2ndmix, djmain,   bm2ndmix,  beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 )
1796GAME( 1998, bm3rdmix, 0,        djmain,   beatmania, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 )
1797GAME( 1999, bmcompmx, 0,        djmain,   bmcompmx,  beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 )
1798GAME( 1999, hmcompmx, bmcompmx, djmain,   bmcompmx,  hmcompmx,  ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 )
1799GAME( 1999, bm4thmix, 0,        djmain,   bm4thmix,  bm4thmix,  ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 )
1800GAME( 1999, bm5thmix, 0,        djmain,   beatmania, bm5thmix,  ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 )
1801GAME( 2000, bmclubmx, 0,        djmain,   beatmania, bmclubmx,  ROT0, "Konami", "beatmania Club MIX (ver JA-A)", GAME_NOT_WORKING ) // misisng hd
1802GAME( 2000, bmcompm2, 0,        djmain,   beatmania, bmcompm2,  ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 )
1803GAME( 2000, hmcompm2, bmcompm2, djmain,   hmcompm2,  hmcompm2,  ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 )
1804GAME( 2000, bmdct,    0,        djmain,   bmdct,     bmdct,     ROT0, "Konami", "beatmania f. Dreams Come True (ver JA-A)", 0 )
1805GAME( 2000, bmcorerm, 0,        djmain,   beatmania, bmcorerm,  ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 )
1806GAME( 2001, bm6thmix, 0,        djmain,   beatmania, bm6thmix,  ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 )
1807GAME( 2001, bm7thmix, 0,        djmain,   beatmania, bm7thmix,  ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 )
1808GAME( 2002, bmfinal,  0,        djmain,   beatmania, bmfinal,   ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 )
2242GAME( 1997, bm1stmix, 0,        djmain,   bm1stmix, beatmania, ROT0, "Konami", "beatmania (ver JA-B)", 0 )
2243GAME( 1998, bm2ndmix, 0,        djmain,   bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-B)", 0 )
2244GAME( 1998, bm2ndmxa, bm2ndmix, djmain,   bm2ndmix, beatmania, ROT0, "Konami", "beatmania 2nd MIX (ver JA-A)", 0 )
2245GAME( 1998, bm3rdmix, 0,        djmain,   bm3rdmix, beatmania, ROT0, "Konami", "beatmania 3rd MIX (ver JA-A)", 0 )
2246GAME( 1999, bmcompmx, 0,        djmain,   bmcompmx, beatmania, ROT0, "Konami", "beatmania complete MIX (ver JA-B)", 0 )
2247GAME( 1999, hmcompmx, bmcompmx, djmain,   bmcompmx, hmcompmx,  ROT0, "Konami", "hiphopmania complete MIX (ver UA-B)", 0 )
2248GAME( 1999, bm4thmix, 0,        djmain,   bm4thmix, bm4thmix,  ROT0, "Konami", "beatmania 4th MIX (ver JA-A)", 0 )
2249GAME( 1999, bm5thmix, 0,        djmain,   bm5thmix, bm5thmix,  ROT0, "Konami", "beatmania 5th MIX (ver JA-A)", 0 )
2250GAME( 2000, bmcompm2, 0,        djmain,   bm5thmix, bmcompm2,  ROT0, "Konami", "beatmania complete MIX 2 (ver JA-A)", 0 )
2251GAME( 2000, hmcompm2, bmcompm2, djmain,   hmcompm2, hmcompm2,  ROT0, "Konami", "hiphopmania complete MIX 2 (ver UA-A)", 0 )
2252GAME( 2000, bmclubmx, 0,        djmain,   bmclubmx, bmclubmx,  ROT0, "Konami", "beatmania Club MIX (ver JA-A)", GAME_NOT_WORKING ) // misisng hd
2253GAME( 2000, bmdct,    0,        djmain,   bmdct,    bmdct,     ROT0, "Konami", "beatmania f. Dreams Come True (ver JA-A)", 0 )
2254GAME( 2000, bmcorerm, 0,        djmain,   bmcorerm, bmcorerm,  ROT0, "Konami", "beatmania CORE REMIX (ver JA-A)", 0 )
2255GAME( 2001, bm6thmix, 0,        djmain,   bm6thmix, bm6thmix,  ROT0, "Konami", "beatmania 6th MIX (ver JA-A)", 0 )
2256GAME( 2001, bm7thmix, 0,        djmain,   bm6thmix, bm7thmix,  ROT0, "Konami", "beatmania 7th MIX (ver JA-B)", 0 )
2257GAME( 2002, bmfinal,  0,        djmain,   bm6thmix, bmfinal,   ROT0, "Konami", "beatmania THE FINAL (ver JA-A)", 0 )
18092258
18102259#if 0
18112260// for reference, these sets have not been verified
r4470r4471
18152264GAME( 1998, popn2,    0,        djmain,   popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 2 (ver JA-A)", 0 )
18162265GAME( 1999, popn3,    0,        djmain,   popnmusic, beatmania, ROT0, "Konami", "Pop'n Music 3 (ver JA-A)", 0 )
18172266
1818GAME( 1999, popnstex, 0,        djmain,   popnstage, beatmania, ROT0, "Konami", "Pop'n Stage EX (ver JB-A)", 0 )
2267GAME( 1999, popnstex, 0,        djmain,   popnstex, beatmania, ROT0, "Konami", "Pop'n Stage EX (ver JB-A)", 0 )
18192268#endif
src/mame/drivers/neogeo.c
r4470r4471
171171        * Distorted jumping sound in Nightmare in the Dark
172172        * Ninja Combat sometimes glitches
173173
174
175    Mahjong Panel notes (2009-03 FP):
176    =================================
177
178    * In Service Mode menu with mahjong panel active, controls are as
179      follows:
180
181        A = select / up (for options)
182        B = down (for options)
183        C = go to previous menu
184        E = up (for menu entries)
185        F = down (for menu entries)
186        G = left (for options)
187        H = right (for options)
188
189    * These only work with Japanese BIOS, but I think it's not a bug: I
190      doubt other bios were programmed to be compatible with mahjong panels
191
174192****************************************************************************/
175193
176194#include "driver.h"
r4470r4471
413431
414432static CUSTOM_INPUT( multiplexed_controller_r )
415433{
416   char tag[40];
434   int port = (FPTR)param;
417435
418   sprintf(tag, "IN%s-%d", (const char *)param, controller_select & 0x01);
436   static const char *const cntrl[2][2] =
437      {
438         { "IN0-0", "IN0-1" }, { "IN1-0", "IN1-1" }
439      };
419440
420   return input_port_read(field->port->machine, tag);
441   return input_port_read_safe(field->port->machine, cntrl[port][controller_select & 0x01], 0x00);
421442}
422443
423444
src/mame/drivers/konamigx.c
r4470r4471
11511151   AM_RANGE(0xddc000, 0xddcfff) AM_READ(adc0834_r)
11521152   AM_RANGE(0xdde000, 0xdde003) AM_WRITE(type1_cablamps_w)
11531153   AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl)
1154   AM_RANGE(0xe20000, 0xe2000f) AM_WRITE(SMH_NOP)
1155   AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP)
1154   AM_RANGE(0xe20000, 0xe2000f) AM_WRITENOP
1155   AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP
11561156   AM_RANGE(0xe80000, 0xe81fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl)    // chips 21L+19L / S
11571157   AM_RANGE(0xec0000, 0xedffff) AM_RAM_WRITE(konamigx_t1_psacmap_w) AM_BASE(&gx_psacram)  // chips 20J+23J+18J / S
11581158   AM_RANGE(0xf00000, 0xf3ffff) AM_READ(type1_roz_r1)   // ROM readback
r4470r4471
11701170   AM_RANGE(0xd90000, 0xd97fff) AM_RAM
11711171   AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
11721172   AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl)
1173   AM_RANGE(0xe20000, 0xe20003) AM_WRITE(SMH_NOP)
1174   AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP)
1173   AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP
1174   AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP
11751175   AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl)
11761176   AM_RANGE(0xe80000, 0xe87fff) AM_RAM_WRITE(konamigx_555_palette_w) AM_BASE(&paletteram32)    // main monitor palette (twice as large as reality)
11771177   AM_RANGE(0xea0000, 0xea3fff) AM_RAM_WRITE(konamigx_555_palette2_w) AM_BASE(&gx_subpaletteram32) // sub monitor palette
r4470r4471
11831183   AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
11841184   AM_RANGE(0xd90000, 0xd97fff) AM_RAM
11851185   AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE((UINT32**)&K053936_1_ctrl)
1186   AM_RANGE(0xe20000, 0xe20003) AM_WRITE(SMH_NOP)
1187   AM_RANGE(0xe40000, 0xe40003) AM_WRITE(SMH_NOP)
1186   AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP
1187   AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP
11881188   AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE((UINT32**)&K053936_1_linectrl)  // 29C & 29G (PSAC2 line control)
11891189   AM_RANGE(0xe80000, 0xe8ffff) AM_RAM_WRITE(konamigx_palette_w) AM_BASE(&paletteram32) // 11G/13G/15G (main screen palette RAM) (twice as large as reality)
11901190   AM_RANGE(0xea0000, 0xea7fff) AM_RAM_WRITE(konamigx_palette2_w) AM_BASE(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM)
src/mame/drivers/statriv2.c
r4470r4471
339339   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
340340   AM_RANGE(0x2b, 0x2b) AM_READ(statriv2_questions_read)      // question data
341341   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
342   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)            // ???
342   AM_RANGE(0xce, 0xce) AM_READNOP            // ???
343343ADDRESS_MAP_END
344344
345345static ADDRESS_MAP_START( statriv2_writeport, ADDRESS_SPACE_IO, 8 )
346   AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)            // ???
347   AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP)            // ???
346   AM_RANGE(0x22, 0x22) AM_WRITENOP            // ???
347   AM_RANGE(0x23, 0x23) AM_WRITENOP            // ???
348348   AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_low_w)
349349   AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_high_w)
350350   AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w)
351   AM_RANGE(0xc0, 0xcf) AM_WRITE(SMH_NOP)            // ???
351   AM_RANGE(0xc0, 0xcf) AM_WRITENOP            // ???
352352ADDRESS_MAP_END
353353
354354static ADDRESS_MAP_START( statriv4_readport, ADDRESS_SPACE_IO, 8 )
r4470r4471
356356   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
357357   AM_RANGE(0x28, 0x28) AM_READ(statriv2_questions_read)      // question data
358358   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
359   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)            // ???
359   AM_RANGE(0xce, 0xce) AM_READNOP            // ???
360360ADDRESS_MAP_END
361361
362362static ADDRESS_MAP_START( statriv4_writeport, ADDRESS_SPACE_IO, 8 )
363   AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)            // ???
364   AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP)            // ???
363   AM_RANGE(0x22, 0x22) AM_WRITENOP            // ???
364   AM_RANGE(0x23, 0x23) AM_WRITENOP            // ???
365365   AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_high_w)
366366   AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_low_w)
367367   AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w)
368   AM_RANGE(0xc0, 0xcf) AM_WRITE(SMH_NOP)            // ???
368   AM_RANGE(0xc0, 0xcf) AM_WRITENOP            // ???
369369ADDRESS_MAP_END
370370
371371static ADDRESS_MAP_START( supertr2_readport, ADDRESS_SPACE_IO, 8 )
r4470r4471
373373   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
374374   AM_RANGE(0x28, 0x28) AM_READ(supertr2_questions_read)                // question data
375375   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
376   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)         // ???
376   AM_RANGE(0xce, 0xce) AM_READNOP         // ???
377377ADDRESS_MAP_END
378378
379379static ADDRESS_MAP_START( supertr2_writeport, ADDRESS_SPACE_IO, 8 )
380   AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)            // ???
381   AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP)         // ???
380   AM_RANGE(0x22, 0x22) AM_WRITENOP            // ???
381   AM_RANGE(0x23, 0x23) AM_WRITENOP         // ???
382382   AM_RANGE(0x28, 0x28) AM_WRITE(question_offset_low_w)
383383   AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_med_w)
384384   AM_RANGE(0x2a, 0x2a) AM_WRITE(question_offset_high_w)
385385   AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w)
386   AM_RANGE(0xc0, 0xcf) AM_WRITE(SMH_NOP)            // ???
386   AM_RANGE(0xc0, 0xcf) AM_WRITENOP            // ???
387387ADDRESS_MAP_END
388388
389389static ADDRESS_MAP_START( trivquiz_writeport, ADDRESS_SPACE_IO, 8 )
390    AM_RANGE(0x22, 0x22) AM_WRITE(SMH_NOP)                               // ???
391    AM_RANGE(0x23, 0x23) AM_WRITE(SMH_NOP)                               // ???
390    AM_RANGE(0x22, 0x22) AM_WRITENOP                               // ???
391    AM_RANGE(0x23, 0x23) AM_WRITENOP                               // ???
392392    AM_RANGE(0x28, 0x28) AM_WRITE(question_offset_low_w)
393393    AM_RANGE(0x29, 0x29) AM_WRITE(question_offset_high_w)
394394   AM_RANGE(0xb0, 0xb1) AM_DEVWRITE("ay", ay8910_address_data_w)
395   AM_RANGE(0xc0, 0xcf) AM_WRITE(SMH_NOP)            // ???
395   AM_RANGE(0xc0, 0xcf) AM_WRITENOP            // ???
396396ADDRESS_MAP_END
397397
398398static ADDRESS_MAP_START( trivquiz_readport, ADDRESS_SPACE_IO, 8 )
r4470r4471
400400   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
401401   AM_RANGE(0x2a, 0x2a) AM_READ(statriv2_questions_read)                // question data
402402   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
403   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)            // ???
403   AM_RANGE(0xce, 0xce) AM_READNOP            // ???
404404ADDRESS_MAP_END
405405
406406static ADDRESS_MAP_START( supertr3_readport, ADDRESS_SPACE_IO, 8 )
r4470r4471
408408   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
409409   AM_RANGE(0x28, 0x28) AM_READ(supertr3_questions_read)                // question data
410410   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
411   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)            // ???
411   AM_RANGE(0xce, 0xce) AM_READNOP            // ???
412412ADDRESS_MAP_END
413413
414414static ADDRESS_MAP_START( hangman_readport, ADDRESS_SPACE_IO, 8 )
r4470r4471
416416   AM_RANGE(0x21, 0x21) AM_READ_PORT("IN1")
417417   AM_RANGE(0x28, 0x28) AM_READ(hangman_questions_read)                // question data
418418   AM_RANGE(0xb1, 0xb1) AM_DEVREAD("ay", ay8910_r)      // ???
419   AM_RANGE(0xce, 0xce) AM_READ(SMH_NOP)         // ???
419   AM_RANGE(0xce, 0xce) AM_READNOP         // ???
420420ADDRESS_MAP_END
421421
422422static ADDRESS_MAP_START( statusbj_io, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/carrera.c
r4470r4471
7373   AM_RANGE(0x03, 0x03) AM_READ_PORT("IN3")
7474   AM_RANGE(0x04, 0x04) AM_READ_PORT("IN4")
7575   AM_RANGE(0x05, 0x05) AM_READ_PORT("IN5")
76   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP) // ?
76   AM_RANGE(0x06, 0x06) AM_WRITENOP // ?
7777   AM_RANGE(0x08, 0x09) AM_DEVWRITE("ay", ay8910_address_data_w)
7878ADDRESS_MAP_END
7979
src/mame/drivers/dorachan.c
r4470r4471
150150
151151static ADDRESS_MAP_START( dorachan_io_map, ADDRESS_SPACE_IO, 8 )
152152   ADDRESS_MAP_GLOBAL_MASK(0xff)
153   AM_RANGE(0x01, 0x01) AM_WRITE(SMH_NOP)
154   AM_RANGE(0x02, 0x02) AM_WRITE(SMH_NOP)
153   AM_RANGE(0x01, 0x01) AM_WRITENOP
154   AM_RANGE(0x02, 0x02) AM_WRITENOP
155155   AM_RANGE(0x03, 0x03) AM_WRITE(dorachan_ctrl_w)
156156ADDRESS_MAP_END
157157
src/mame/drivers/ultraman.c
r4470r4471
44
55Driver by Manuel Abadia <manu@teleline.es>
66
72009-03:
8Added dsw locations and verified factory setting based on Guru's notes
9
710***************************************************************************/
811
912#include "driver.h"
r4470r4471
136139   AM_RANGE(0x0000, 0x7fff) AM_ROM
137140   AM_RANGE(0x8000, 0xbfff) AM_RAM
138141   AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_r)   /* Sound latch read */
139//  AM_RANGE(0xd000, 0xd000) AM_WRITE(SMH_NOP)      /* ??? */
142//  AM_RANGE(0xd000, 0xd000) AM_WRITENOP      /* ??? */
140143   AM_RANGE(0xe000, 0xe000) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)      /* M6295 */
141144   AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)   /* YM2151 */
142145ADDRESS_MAP_END
143146
144147static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
145148   ADDRESS_MAP_GLOBAL_MASK(0xff)
146//  AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP)                     /* ??? */
149//  AM_RANGE(0x00, 0x00) AM_WRITENOP                     /* ??? */
147150ADDRESS_MAP_END
148151
149152
r4470r4471
176179   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
177180
178181   PORT_START("DSW1")
179   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
182   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:8,7,6,5")
180183   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
181184   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
182185   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
r4470r4471
192195   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
193196   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
194197   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
195   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
196
197   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
198   PORT_DIPSETTING(    0x00, "No Coin A" )
199   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:4,3,2,1")
198200   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
199201   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
200202   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
r4470r4471
211213   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
212214   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
213215   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
216   PORT_DIPSETTING(    0x00, "No Coin B" )      /* 5C_3C according to manual, but it's not true */
217   /* No Coin X = coin slot X open (coins produce sound), but no effect on coin counter */
214218
215219   PORT_START("DSW2")
216   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) /* Manual states dips 1 & 2 are "Unused" */
217   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
218   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
219   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) )
220   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
221   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
222   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) )
220   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:8" ) /* Manual states it's "Unused" */
221   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:7" ) /* Manual states it's "Unused" */
222   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) )   PORT_DIPLOCATION("SW2:6")
223223   PORT_DIPSETTING(    0x00, DEF_STR( No ) )
224224   PORT_DIPSETTING(    0x04, DEF_STR( Yes ) )
225   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
225   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )      PORT_DIPLOCATION("SW2:5")
226226   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
227227   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
228   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
228   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )      PORT_DIPLOCATION("SW2:4,3")
229229   PORT_DIPSETTING(    0x10, DEF_STR( Easy ) )
230230   PORT_DIPSETTING(    0x30, DEF_STR( Normal ) )
231231   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
232232   PORT_DIPSETTING(    0x00, DEF_STR( Very_Hard ) )
233   PORT_DIPNAME( 0x40, 0x40, "Upright Controls" )
233   PORT_DIPNAME( 0x40, 0x40, "Upright Controls" )         PORT_DIPLOCATION("SW2:2")
234234   PORT_DIPSETTING(    0x40, DEF_STR( Single ) )
235235   PORT_DIPSETTING(    0x00, DEF_STR( Dual ) )
236   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )
236   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) )         PORT_DIPLOCATION("SW2:1")
237237   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
238238   PORT_DIPSETTING(    0x80, DEF_STR( Cocktail ) )
239239INPUT_PORTS_END
src/mame/drivers/parodius.c
r4470r4471
1212#include "video/konamiic.h"
1313#include "sound/2151intf.h"
1414#include "sound/k053260.h"
15#include "konamipt.h"
1516
1617/* prototypes */
1718static MACHINE_RESET( parodius );
r4470r4471
183184
184185static INPUT_PORTS_START( parodius )
185186   PORT_START("P1")
186   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
189   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
190   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
191   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)      // power-up
192   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)      // shoot
193   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)      // missile
187   KONAMI8_ALT_B123(1)                  // button1 = power-up, button2 = shoot, button3 = missile
194188
195189   PORT_START("P2")
196   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
197   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
198   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
199   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
200   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
201   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
202   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
203   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
190   KONAMI8_ALT_B123(2)
204191
205192   PORT_START("DSW1")
206   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
207   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
208   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
209   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
210   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
211   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
212   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
213   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
214   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
215   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
216   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
217   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
218   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
219   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
220   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
221   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
222   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
223   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
224   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
225   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
226   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
227   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
228   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
229   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
230   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
231   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
232   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
233   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
234   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
235   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
236   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
237   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
238   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
239//  PORT_DIPSETTING(    0x00, "No Use" )
193   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
194   /* "No Coin B" = coins produce sound, but no effect on coin counter */
240195
241196   PORT_START("DSW2")
242197   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
414369}
415370
416371
417
418372GAME( 1990, parodius, 0,        parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (World)", 0 )
419373GAME( 1990, parodisj, parodius, parodius, parodius, parodius, ROT0, "Konami", "Parodius DA! (Japan)", 0 )
src/mame/drivers/ladybug.c
r4470r4471
9393   AM_RANGE(0x0000, 0x5fff) AM_ROM
9494   AM_RANGE(0x6000, 0x6fff) AM_RAM
9595   AM_RANGE(0x7000, 0x73ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
96   AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_NOP)
96   AM_RANGE(0x8000, 0x8fff) AM_READNOP
9797   AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0")
9898   AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1")
9999   AM_RANGE(0x9002, 0x9002) AM_READ_PORT("DSW0")
r4470r4471
120120   AM_RANGE(0x9003, 0x9003) AM_READ_PORT("DSW1")
121121   AM_RANGE(0xd000, 0xd3ff) AM_WRITE(ladybug_videoram_w) AM_BASE(&videoram)
122122   AM_RANGE(0xd400, 0xd7ff) AM_WRITE(ladybug_colorram_w) AM_BASE(&colorram)
123   AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP)  //unknown 0x10 when in attract, 0x20 when coined/playing
123   AM_RANGE(0xe000, 0xe000) AM_WRITENOP  //unknown 0x10 when in attract, 0x20 when coined/playing
124124ADDRESS_MAP_END
125125
126126
r4470r4471
129129   AM_RANGE(0x6000, 0x63ff) AM_RAM
130130   AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r)
131131   AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r)
132   AM_RANGE(0xc000, 0xc000) AM_READ(SMH_NOP) //some kind of sync
132   AM_RANGE(0xc000, 0xc000) AM_READNOP //some kind of sync
133133   AM_RANGE(0xe000, 0xe0ff) AM_WRITE(SMH_RAM) AM_BASE(&sraider_grid_data)
134134   AM_RANGE(0xe800, 0xe800) AM_WRITE(sraider_io_w)
135135ADDRESS_MAP_END
src/mame/drivers/quantum.c
r4470r4471
123123   AM_RANGE(0x948000, 0x948001) AM_READ_PORT("SYSTEM")
124124   AM_RANGE(0x950000, 0x95001f) AM_WRITE(SMH_RAM) AM_BASE(&quantum_colorram)
125125   AM_RANGE(0x958000, 0x958001) AM_WRITE(led_w)
126   AM_RANGE(0x960000, 0x960001) AM_WRITE(SMH_NOP)
126   AM_RANGE(0x960000, 0x960001) AM_WRITENOP
127127   AM_RANGE(0x968000, 0x968001) AM_WRITE(avgdvg_reset_word_w)
128128    AM_RANGE(0x970000, 0x970001) AM_WRITE(avgdvg_go_word_w)
129129   AM_RANGE(0x978000, 0x978001) AM_READWRITE(SMH_NOP, watchdog_reset16_w)
src/mame/drivers/combatsc.c
r4470r4471
422422   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
423423   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
424424   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
425   PORT_DIPSETTING(    0x00, "coin 2 invalidity" )
425   PORT_DIPSETTING(    0x00, DEF_STR( None ) )
426   /* None = coin slot B disabled */
426427
427428   PORT_START("DSW2")
428429   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" )   /* Not Used according to the manual */
src/mame/drivers/rockrage.c
r4470r4471
187187   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
188188   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
189189   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
190//  PORT_DIPSETTING(    0x00, "Invalid" )
190   PORT_DIPSETTING(    0x00, "Invalid" )
191   /* Invalid = both coin slots disabled */
191192
192193   PORT_START("DSW2")
193194   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )
src/mame/drivers/ttchamp.c
r4470r4471
128128ADDRESS_MAP_END
129129
130130static ADDRESS_MAP_START( ttchamp_io, ADDRESS_SPACE_IO, 16 )
131    AM_RANGE(0x0000, 0x0001) AM_WRITE(SMH_NOP)
131    AM_RANGE(0x0000, 0x0001) AM_WRITENOP
132132
133133    AM_RANGE(0x0002, 0x0003) AM_READ_PORT("SYSTEM")
134134    AM_RANGE(0x0004, 0x0005) AM_READ_PORT("P1_P2")
r4470r4471
140140    AM_RANGE(0x000a, 0x000b) AM_WRITE(paloff_w)
141141
142142//  AM_RANGE(0x0010, 0x0010) AM_WRITE(pcup_prgbank_w)
143    AM_RANGE(0x0010, 0x0011) AM_WRITE(SMH_NOP)
143    AM_RANGE(0x0010, 0x0011) AM_WRITENOP
144144
145    AM_RANGE(0x0020, 0x0021) AM_WRITE(SMH_NOP)
145    AM_RANGE(0x0020, 0x0021) AM_WRITENOP
146146
147    AM_RANGE(0x0034, 0x0035) AM_READ(peno_rand) AM_WRITE(SMH_NOP)
147    AM_RANGE(0x0034, 0x0035) AM_READ(peno_rand) AM_WRITENOP
148148ADDRESS_MAP_END
149149
150150
src/mame/drivers/buggychl.c
r4470r4471
171171   AM_RANGE(0xd500, 0xd57f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
172172   AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w)
173173//  AM_RANGE(0xd613, 0xd613) // reset sound cpu & sound chips
174   AM_RANGE(0xd618, 0xd618) AM_WRITE(SMH_NOP)   /* accelerator clear */
174   AM_RANGE(0xd618, 0xd618) AM_WRITENOP   /* accelerator clear */
175175   AM_RANGE(0xd700, 0xd7ff) AM_WRITE(paletteram_xxxxRRRRGGGGBBBB_be_w) AM_BASE(&paletteram)
176176   AM_RANGE(0xd840, 0xd85f) AM_WRITE(SMH_RAM) AM_BASE(&buggychl_scrollv)
177177   AM_RANGE(0xdb00, 0xdbff) AM_WRITE(SMH_RAM) AM_BASE(&buggychl_scrollh)
src/mame/drivers/pandoras.c
r4470r4471
1111- CPU B continuously reads from 1e00. It seems to be important, could be a
1212  scanline counter or something like that.
1313
142009-03:
15Added dsw locations and verified factory setting based on Guru's notes
16(DSW3 not mentioned)
17
1418***************************************************************************/
1519
1620#include "driver.h"
r4470r4471
1923#include "cpu/mcs48/mcs48.h"
2024#include "sound/ay8910.h"
2125#include "sound/dac.h"
26#include "konamipt.h"
2227
2328static int irq_enable_a, irq_enable_b;
2429static int firq_old_data_a, firq_old_data_b;
r4470r4471
146151   AM_RANGE(0x1a02, 0x1a02) AM_READ_PORT("P2")
147152   AM_RANGE(0x1a03, 0x1a03) AM_READ_PORT("DSW3")
148153   AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2")
149//  AM_RANGE(0x1e00, 0x1e00) AM_READ(SMH_NOP)              /* ??? seems to be important */
154//  AM_RANGE(0x1e00, 0x1e00) AM_READNOP              /* ??? seems to be important */
150155   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) AM_SHARE(4)   /* Shared RAM with the CPU A */
151156   AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM)            /* ROM */
152157ADDRESS_MAP_END
r4470r4471
201206
202207static INPUT_PORTS_START( pandoras )
203208   PORT_START("DSW1")
204   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
205   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
206   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
207   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
208   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
209   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
210   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
211   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
212   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
213   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
214   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
215   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
216   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
217   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
218   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
219   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
220   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
221   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
222   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
223   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
224   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
225   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
226   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
227   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
228   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
229   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
230   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
231   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
232   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
233   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
234   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
235   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
236   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
237//  PORT_DIPSETTING(    0x00, "Invalid" )
209   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
210   /* "No Coin B" = coins produce sound, but no effect on coin counter */
238211
239212   PORT_START("DSW2")
240   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
213   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1,2")
241214   PORT_DIPSETTING(    0x03, "3" )
242215   PORT_DIPSETTING(    0x02, "4" )
243216   PORT_DIPSETTING(    0x01, "5" )
244217   PORT_DIPSETTING(    0x00, "7" )
245   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
218   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )      PORT_DIPLOCATION("SW2:3")
246219   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
247220   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
248   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
221   PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )   PORT_DIPLOCATION("SW2:4,5")
249222   PORT_DIPSETTING(    0x18, "20k and every 60k" )
250223   PORT_DIPSETTING(    0x10, "30k and every 70k" )
251224   PORT_DIPSETTING(    0x08, "20k" )
252225   PORT_DIPSETTING(    0x00, "30k" )
253   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
226   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:6,7")
254227   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
255228   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
256229   PORT_DIPSETTING(    0x20, "Difficult" )
257230   PORT_DIPSETTING(    0x00, "Very Difficult" )
258   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
231   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SW2:8")
259232   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
260233   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
261234
r4470r4471
286259   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
287260
288261   PORT_START("SYSTEM")
289   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
290   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
291   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
292   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
293   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
262   KONAMI8_SYSTEM_10
294263   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
295264   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
296265
297266   PORT_START("P1")
298   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
299   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
300   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
301   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
302   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
303   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
267   KONAMI8_MONO_B1_UNK
304268
305269   PORT_START("P2")
306   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
307   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
308   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
309   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
310   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
311   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
270   KONAMI8_COCKTAIL_B1_UNK
312271INPUT_PORTS_END
313272
314273
r4470r4471
461420ROM_END
462421
463422
464
465423GAME( 1984, pandoras, 0, pandoras, pandoras, 0, ROT90, "Konami/Interlogic", "Pandora's Palace", 0 )
466
src/mame/drivers/taito_f2.c
r4470r4471
821821
822822static READ16_HANDLER( taitof2_sound_r )
823823{
824   if (offset == 1)
825      return (taitosound_comm16_lsb_r(space,0,mem_mask));
824   if (offset == 1 && ACCESSING_BITS_0_7)
825      return (taitosound_comm_r(space,0));
826826   else return 0;
827827}
828828
829829static READ16_HANDLER( taitof2_msb_sound_r )
830830{
831   if (offset == 1)
832      return (taitosound_comm16_msb_r(space,0,mem_mask));
831   if (offset == 1 && ACCESSING_BITS_8_15)
832      return (taitosound_comm_r(space,0));
833833   else return 0;
834834}
835835
r4470r4471
907907   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
908908   AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w)   /* palette */
909909   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
910   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w)
911   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w)
910   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0x00ff)
911   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0x00ff)
912912   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
913   AM_RANGE(0x810000, 0x81ffff) AM_WRITE(SMH_NOP)   /* error in game init code ? */
913   AM_RANGE(0x810000, 0x81ffff) AM_WRITENOP   /* error in game init code ? */
914914   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
915915   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
916   AM_RANGE(0xb00002, 0xb00003) AM_WRITE(SMH_NOP)   /* ?? */
916   AM_RANGE(0xb00002, 0xb00003) AM_WRITENOP   /* ?? */
917917ADDRESS_MAP_END
918918
919919static ADDRESS_MAP_START( dondokod_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
933933   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
934934   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
935935   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
936   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w)
937   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w)
936   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00)
937   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00)
938938   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
939939   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
940940   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
958958
959959static ADDRESS_MAP_START( megab_writemem, ADDRESS_SPACE_PROGRAM, 16 )
960960   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
961   AM_RANGE(0x100000, 0x100001) AM_WRITE(taitosound_port16_msb_w)
962   AM_RANGE(0x100002, 0x100003) AM_WRITE(taitosound_comm16_msb_w)
961   AM_RANGE(0x100000, 0x100001) AM_WRITE8(taitosound_port_w, 0xff00)
962   AM_RANGE(0x100002, 0x100003) AM_WRITE8(taitosound_comm_w, 0xff00)
963963   AM_RANGE(0x120000, 0x12000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
964964   AM_RANGE(0x180000, 0x180fff) AM_WRITE(cchip2_word_w) AM_BASE(&cchip2_ram)
965965   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM)
r4470r4471
988988   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
989989   AM_RANGE(0x100000, 0x101fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
990990   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
991   AM_RANGE(0x220000, 0x220001) AM_WRITE(taitosound_port16_msb_w)
992   AM_RANGE(0x220002, 0x220003) AM_WRITE(taitosound_comm16_msb_w)
991   AM_RANGE(0x220000, 0x220001) AM_WRITE8(taitosound_port_w, 0xff00)
992   AM_RANGE(0x220002, 0x220003) AM_WRITE8(taitosound_comm_w, 0xff00)
993993   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM)
994994   AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
995995   AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
r4470r4471
10171017   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
10181018   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
10191019   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
1020   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w)
1021   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w)
1020   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00)
1021   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00)
10221022   AM_RANGE(0x800000, 0x813fff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
10231023   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
10241024   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
10431043   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
10441044   AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w)   /* palette */
10451045   AM_RANGE(0x500000, 0x50000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
1046   AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_msb_w)
1047   AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_msb_w)
1046   AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0xff00)
1047   AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0xff00)
10481048   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
10491049   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
10501050   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1051   AM_RANGE(0x910000, 0x9120ff) AM_WRITE(SMH_NOP)   /* error in init code ? */
1051   AM_RANGE(0x910000, 0x9120ff) AM_WRITENOP   /* error in init code ? */
10521052ADDRESS_MAP_END
10531053
10541054static ADDRESS_MAP_START( liquidk_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
10671067   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
10681068   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
10691069   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0220IOC_halfword_w)   /* I/O */
1070   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_lsb_w)
1071   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_lsb_w)
1070   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0x00ff)
1071   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0x00ff)
10721072   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
10731073   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
10741074   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
10931093   AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w)   /* palette */
10941094   AM_RANGE(0x500004, 0x500005) AM_WRITE(growl_coin_word_w)
10951095   AM_RANGE(0x580000, 0x580001) AM_WRITE(taitof2_watchdog_w)   /* ??? */
1096   AM_RANGE(0x580006, 0x580007) AM_WRITE(SMH_NOP)   /* ??? */
1097   AM_RANGE(0x600000, 0x600001) AM_WRITE(taitosound_port16_lsb_w)
1098   AM_RANGE(0x600002, 0x600003) AM_WRITE(taitosound_comm16_lsb_w)
1099   AM_RANGE(0x680000, 0x680001) AM_WRITE(SMH_NOP)   /* ??? */
1096   AM_RANGE(0x580006, 0x580007) AM_WRITENOP   /* ??? */
1097   AM_RANGE(0x600000, 0x600001) AM_WRITE8(taitosound_port_w, 0x00ff)
1098   AM_RANGE(0x600002, 0x600003) AM_WRITE8(taitosound_comm_w, 0x00ff)
1099   AM_RANGE(0x680000, 0x680001) AM_WRITENOP   /* ??? */
11001100   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
1101   AM_RANGE(0x810000, 0x81ffff) AM_WRITE(SMH_NOP)   /* error in init code ? */
1101   AM_RANGE(0x810000, 0x81ffff) AM_WRITENOP   /* error in init code ? */
11021102   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
11031103   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
11041104ADDRESS_MAP_END
r4470r4471
11191119   AM_RANGE(0x100000, 0x10000f) AM_WRITE(TC0510NIO_halfword_w)
11201120   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM)
11211121   AM_RANGE(0x300000, 0x301fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
1122   AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w)
1123   AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w)
1124//  AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   /* ?? */
1122   AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00)
1123   AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00)
1124//  AM_RANGE(0x500000, 0x500001) AM_WRITENOP   /* ?? */
11251125   AM_RANGE(0x600000, 0x60ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps (not used) */
11261126   AM_RANGE(0x620000, 0x62000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
11271127   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)   /* sprite ram */
r4470r4471
11431143   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
11441144   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
11451145   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_wordswap_w)
1146   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w)
1147   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w)
1146   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00)
1147   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00)
11481148   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
11491149   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
11501150   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1151//  AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* ?? */
1151//  AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* ?? */
11521152   AM_RANGE(0xb00000, 0xb0001f) AM_WRITE(TC0360PRI_halfword_w)   /* ?? */
11531153ADDRESS_MAP_END
11541154
r4470r4471
11721172   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
11731173   AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w)
11741174   AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w)
1175   AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w)
1176   AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w)
1175   AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00)
1176   AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00)
11771177   AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w)
1178   AM_RANGE(0x504000, 0x504001) AM_WRITE(SMH_NOP)   /* unknown... various values */
1178   AM_RANGE(0x504000, 0x504001) AM_WRITENOP   /* unknown... various values */
11791179   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
11801180   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
11811181   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
12011201   AM_RANGE(0x120000, 0x12ffff) AM_WRITE(SMH_RAM)
12021202   AM_RANGE(0x200000, 0x200007) AM_WRITE(TC0110PCR_word_w)   /* palette */
12031203   AM_RANGE(0x320000, 0x320001) AM_WRITE(mjnquest_inputselect_w)
1204   AM_RANGE(0x330000, 0x330001) AM_WRITE(SMH_NOP)   /* watchdog ? */
1205   AM_RANGE(0x350000, 0x350001) AM_WRITE(SMH_NOP)   /* watchdog ? */
1206   AM_RANGE(0x360000, 0x360001) AM_WRITE(taitosound_port16_msb_w)
1207   AM_RANGE(0x360002, 0x360003) AM_WRITE(taitosound_comm16_msb_w)
1204   AM_RANGE(0x330000, 0x330001) AM_WRITENOP   /* watchdog ? */
1205   AM_RANGE(0x350000, 0x350001) AM_WRITENOP   /* watchdog ? */
1206   AM_RANGE(0x360000, 0x360001) AM_WRITE8(taitosound_port_w, 0xff00)
1207   AM_RANGE(0x360002, 0x360003) AM_WRITE8(taitosound_comm_w, 0xff00)
12081208   AM_RANGE(0x380000, 0x380001) AM_WRITE(TC0100SCN_gfxbank_w)   /* scr gfx bank select */
12091209   AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
12101210   AM_RANGE(0x420000, 0x42000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
r4470r4471
12331233   AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
12341234   AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w)
12351235   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w)   /* ??? */
1236   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_lsb_w)
1237   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_lsb_w)
1236   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0x00ff)
1237   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0x00ff)
12381238ADDRESS_MAP_END
12391239
12401240static ADDRESS_MAP_START( koshien_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
12541254   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
12551255   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
12561256   AM_RANGE(0x300000, 0x30000f) AM_WRITE(TC0510NIO_halfword_w)
1257   AM_RANGE(0x320000, 0x320001) AM_WRITE(taitosound_port16_msb_w)
1258   AM_RANGE(0x320002, 0x320003) AM_WRITE(taitosound_comm16_msb_w)
1257   AM_RANGE(0x320000, 0x320001) AM_WRITE8(taitosound_port_w, 0xff00)
1258   AM_RANGE(0x320002, 0x320003) AM_WRITE8(taitosound_comm_w, 0xff00)
12591259   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
12601260   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
12611261   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
12781278static ADDRESS_MAP_START( yuyugogo_writemem, ADDRESS_SPACE_PROGRAM, 16 )
12791279   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
12801280   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w)
1281   AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w)
1282   AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w)
1281   AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00)
1282   AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00)
12831283   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
12841284   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
12851285   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
13061306   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
13071307   AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w)
13081308   AM_RANGE(0x380000, 0x380001) AM_WRITE(taitof2_watchdog_w)   /* ??? */
1309   AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w)
1310   AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w)
1309   AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00)
1310   AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00)
13111311   AM_RANGE(0x600000, 0x60000f) AM_WRITE(taitof2_spritebank_w)
13121312   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
13131313   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
r4470r4471
13331333   AM_RANGE(0x200000, 0x201fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
13341334   AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w)   /* NOT VERIFIED */
13351335   AM_RANGE(0x340000, 0x340001) AM_WRITE(taitof2_watchdog_w)   /* NOT VERIFIED */
1336   AM_RANGE(0x400000, 0x400001) AM_WRITE(taitosound_port16_msb_w)
1337   AM_RANGE(0x400002, 0x400003) AM_WRITE(taitosound_comm16_msb_w)
1336   AM_RANGE(0x400000, 0x400001) AM_WRITE8(taitosound_port_w, 0xff00)
1337   AM_RANGE(0x400002, 0x400003) AM_WRITE8(taitosound_comm_w, 0xff00)
13381338   AM_RANGE(0x500000, 0x50000f) AM_WRITE(taitof2_spritebank_w)
1339   AM_RANGE(0x504000, 0x504001) AM_WRITE(SMH_NOP)   /* unknown... various values */
1339   AM_RANGE(0x504000, 0x504001) AM_WRITENOP   /* unknown... various values */
13401340   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
13411341   AM_RANGE(0x820000, 0x82000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
13421342   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
13571357static ADDRESS_MAP_START( qzquest_writemem, ADDRESS_SPACE_PROGRAM, 16 )
13581358   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
13591359   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w)
1360   AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w)
1361   AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w)
1360   AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff)
1361   AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff)
13621362   AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
13631363   AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM)
13641364   AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
13801380
13811381static ADDRESS_MAP_START( pulirula_writemem, ADDRESS_SPACE_PROGRAM, 16 )
13821382   AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM)
1383   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
1384   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
1383   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
1384   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
13851385   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM)
13861386   AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w)   /* ROZ tilemap */
13871387   AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w)
1388//  AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   /* ??? */
1388//  AM_RANGE(0x500000, 0x500001) AM_WRITENOP   /* ??? */
13891389   AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size)
13901390   AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
13911391   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
r4470r4471
14101410   AM_RANGE(0x000000, 0x0bffff) AM_WRITE(SMH_ROM)
14111411   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
14121412   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
1413//  AM_RANGE(0x42000c, 0x42000f) AM_WRITE(SMH_NOP)   /* zeroed */
1413//  AM_RANGE(0x42000c, 0x42000f) AM_WRITENOP   /* zeroed */
14141414   AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0480SCP_word_w)     /* tilemaps */
14151415   AM_RANGE(0x530000, 0x53002f) AM_WRITE(TC0480SCP_ctrl_word_w)
14161416   AM_RANGE(0x600000, 0x60001f) AM_WRITE(TC0360PRI_halfword_w)
14171417   AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
14181418   AM_RANGE(0x800000, 0x80000f) AM_WRITE(TC0510NIO_halfword_wordswap_w)
1419   AM_RANGE(0x900000, 0x900001) AM_WRITE(taitosound_port16_msb_w)
1420   AM_RANGE(0x900002, 0x900003) AM_WRITE(taitosound_comm16_msb_w)
1421//  AM_RANGE(0xa00000, 0xa00001) AM_WRITE(SMH_NOP)   /* ??? */
1419   AM_RANGE(0x900000, 0x900001) AM_WRITE8(taitosound_port_w, 0xff00)
1420   AM_RANGE(0x900002, 0x900003) AM_WRITE8(taitosound_comm_w, 0xff00)
1421//  AM_RANGE(0xa00000, 0xa00001) AM_WRITENOP   /* ??? */
14221422ADDRESS_MAP_END
14231423
14241424static ADDRESS_MAP_START( qzchikyu_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
14351435static ADDRESS_MAP_START( qzchikyu_writemem, ADDRESS_SPACE_PROGRAM, 16 )
14361436   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
14371437   AM_RANGE(0x200000, 0x20000f) AM_WRITE(TC0510NIO_halfword_w)
1438   AM_RANGE(0x300000, 0x300001) AM_WRITE(taitosound_port16_lsb_w)
1439   AM_RANGE(0x300002, 0x300003) AM_WRITE(taitosound_comm16_lsb_w)
1438   AM_RANGE(0x300000, 0x300001) AM_WRITE8(taitosound_port_w, 0x00ff)
1439   AM_RANGE(0x300002, 0x300003) AM_WRITE8(taitosound_comm_w, 0x00ff)
14401440   AM_RANGE(0x400000, 0x401fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
14411441   AM_RANGE(0x500000, 0x50ffff) AM_WRITE(SMH_RAM)
14421442   AM_RANGE(0x600000, 0x60ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
14641464   AM_RANGE(0x500000, 0x50ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
14651465   AM_RANGE(0x520000, 0x52000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
14661466   AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
1467   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitosound_port16_msb_w)
1468   AM_RANGE(0x800002, 0x800003) AM_WRITE(taitosound_comm16_msb_w)
1469   AM_RANGE(0x900002, 0x900003) AM_WRITE(SMH_NOP)   /* lots of similar writes */
1470   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP)   /* watchdog ?? */
1471   AM_RANGE(0xd00000, 0xd00001) AM_WRITE(SMH_NOP)   /* lots of similar writes */
1467   AM_RANGE(0x800000, 0x800001) AM_WRITE8(taitosound_port_w, 0xff00)
1468   AM_RANGE(0x800002, 0x800003) AM_WRITE8(taitosound_comm_w, 0xff00)
1469   AM_RANGE(0x900002, 0x900003) AM_WRITENOP   /* lots of similar writes */
1470   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP   /* watchdog ?? */
1471   AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP   /* lots of similar writes */
14721472ADDRESS_MAP_END
14731473
14741474static ADDRESS_MAP_START( deadconx_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
14881488   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
14891489   AM_RANGE(0x300000, 0x30000f) AM_WRITE(taitof2_spritebank_w)
14901490   AM_RANGE(0x400000, 0x40ffff) AM_WRITE(TC0480SCP_word_w)     /* tilemaps */
1491//  AM_RANGE(0x42000c, 0x42000f) AM_WRITE(SMH_NOP)   /* zeroed */
1491//  AM_RANGE(0x42000c, 0x42000f) AM_WRITENOP   /* zeroed */
14921492   AM_RANGE(0x430000, 0x43002f) AM_WRITE(TC0480SCP_ctrl_word_w)
14931493   AM_RANGE(0x500000, 0x50001f) AM_WRITE(TC0360PRI_halfword_w)   /* uses 500002 like a watchdog !? */
14941494   AM_RANGE(0x600000, 0x601fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
14951495   AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w)
14961496   AM_RANGE(0x800000, 0x800001) AM_WRITE(taitof2_watchdog_w)   /* ??? */
1497   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w)
1498   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w)
1497   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00)
1498   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00)
14991499ADDRESS_MAP_END
15001500
15011501static ADDRESS_MAP_START( dinorex_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
15191519   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
15201520   AM_RANGE(0x900000, 0x90ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
15211521   AM_RANGE(0x920000, 0x92000f) AM_WRITE(TC0100SCN_ctrl_word_0_w)
1522   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w)
1523   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w)
1524   AM_RANGE(0xb00000, 0xb00001) AM_WRITE(SMH_NOP)   /* watchdog? */
1522   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00)
1523   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00)
1524   AM_RANGE(0xb00000, 0xb00001) AM_WRITENOP   /* watchdog? */
15251525ADDRESS_MAP_END
15261526
15271527static ADDRESS_MAP_START( qjinsei_readmem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
15371537
15381538static ADDRESS_MAP_START( qjinsei_writemem, ADDRESS_SPACE_PROGRAM, 16 )
15391539   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
1540   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
1541   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
1540   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
1541   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
15421542   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM)
1543   AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   /* watchdog ? */
1543   AM_RANGE(0x500000, 0x500001) AM_WRITENOP   /* watchdog ? */
15441544   AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size)
15451545   AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
15461546   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(TC0100SCN_word_0_w)   /* tilemaps */
r4470r4471
15651565static ADDRESS_MAP_START( qcrayon_writemem, ADDRESS_SPACE_PROGRAM, 16 )
15661566   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
15671567   AM_RANGE(0x100000, 0x10ffff) AM_WRITE(SMH_RAM)
1568//  AM_RANGE(0x200000, 0x200001) AM_WRITE(SMH_NOP)   /* unknown */
1568//  AM_RANGE(0x200000, 0x200001) AM_WRITENOP   /* unknown */
15691569   AM_RANGE(0x300000, 0x3fffff) AM_WRITE(SMH_ROM)
1570   AM_RANGE(0x500000, 0x500001) AM_WRITE(taitosound_port16_msb_w)
1571   AM_RANGE(0x500002, 0x500003) AM_WRITE(taitosound_comm16_msb_w)
1570   AM_RANGE(0x500000, 0x500001) AM_WRITE8(taitosound_port_w, 0xff00)
1571   AM_RANGE(0x500002, 0x500003) AM_WRITE8(taitosound_comm_w, 0xff00)
15721572   AM_RANGE(0x600000, 0x603fff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size)
15731573   AM_RANGE(0x700000, 0x701fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16)
15741574   AM_RANGE(0x800000, 0x80ffff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
r4470r4471
16001600   AM_RANGE(0x600000, 0x67ffff) AM_WRITE(SMH_ROM)
16011601   AM_RANGE(0x700000, 0x70000f) AM_WRITE(TC0510NIO_halfword_w)
16021602   AM_RANGE(0x900000, 0x90001f) AM_WRITE(TC0360PRI_halfword_w)   /* ?? */
1603   AM_RANGE(0xa00000, 0xa00001) AM_WRITE(taitosound_port16_msb_w)
1604   AM_RANGE(0xa00002, 0xa00003) AM_WRITE(taitosound_comm16_msb_w)
1603   AM_RANGE(0xa00000, 0xa00001) AM_WRITE8(taitosound_port_w, 0xff00)
1604   AM_RANGE(0xa00002, 0xa00003) AM_WRITE8(taitosound_comm_w, 0xff00)
16051605   AM_RANGE(0xb00000, 0xb017ff) AM_WRITE(taitof2_sprite_extension_w) AM_BASE(&f2_sprite_extension) AM_SIZE(&f2_spriteext_size)
16061606ADDRESS_MAP_END
16071607
r4470r4471
16201620
16211621static ADDRESS_MAP_START( driftout_writemem, ADDRESS_SPACE_PROGRAM, 16 )
16221622   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
1623   AM_RANGE(0x200000, 0x200001) AM_WRITE(taitosound_port16_msb_w)
1624   AM_RANGE(0x200002, 0x200003) AM_WRITE(taitosound_comm16_msb_w)
1623   AM_RANGE(0x200000, 0x200001) AM_WRITE8(taitosound_port_w, 0xff00)
1624   AM_RANGE(0x200002, 0x200003) AM_WRITE8(taitosound_comm_w, 0xff00)
16251625   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM)
16261626   AM_RANGE(0x400000, 0x401fff) AM_WRITE(TC0430GRW_word_w)   /* ROZ tilemap */
16271627   AM_RANGE(0x402000, 0x40200f) AM_WRITE(TC0430GRW_ctrl_word_w)
r4470r4471
16361636/* same as driftout, except for sound address 0x200000 */
16371637static ADDRESS_MAP_START( driveout_readmem, ADDRESS_SPACE_PROGRAM, 16 )
16381638   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)
1639   AM_RANGE(0x200000, 0x200003) AM_READ(SMH_NOP)
1639   AM_RANGE(0x200000, 0x200003) AM_READNOP
16401640   AM_RANGE(0x300000, 0x30ffff) AM_READ(SMH_RAM)
16411641   AM_RANGE(0x400000, 0x401fff) AM_READ(TC0430GRW_word_r)
16421642   AM_RANGE(0x700000, 0x701fff) AM_READ(SMH_RAM)
r4470r4471
16691669   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK2)
16701670   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
16711671   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
1672   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
1672   AM_RANGE(0xe200, 0xe200) AM_READNOP
16731673   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
1674   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
1674   AM_RANGE(0xea00, 0xea00) AM_READNOP
16751675ADDRESS_MAP_END
16761676
16771677static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
16801680   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
16811681   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
16821682   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
1683   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
1684   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
1685   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
1683   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
1684   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
1685   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
16861686   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)   /* ?? */
16871687ADDRESS_MAP_END
16881688
src/mame/drivers/gberet.c
r4470r4471
6969#include "cpu/z80/z80.h"
7070#include "deprecat.h"
7171#include "sound/sn76496.h"
72#include "konamipt.h"
7273
73
7474extern UINT8 *gberet_scrollram;
7575
7676extern WRITE8_HANDLER( gberet_videoram_w );
r4470r4471
213213
214214static INPUT_PORTS_START( gberet )
215215   PORT_START("P1")
216   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
217   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
218   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
219   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
220   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // knife
221   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // shoot
222   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
216   KONAMI8_MONO_B12_UNK               // button 1 = knife, button 2 = shoot
223217
224218   PORT_START("P2")
225   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
226   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
227   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
228   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
229   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
230   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
231   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
219   KONAMI8_COCKTAIL_B12_UNK
232220
233221   PORT_START("SYSTEM")
234   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
235   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
236   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
237   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
238   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
239   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
222   KONAMI8_SYSTEM_UNK
240223
241224   PORT_START("DSW1")
242   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
243   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
244   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
245   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
246   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
247   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
248   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
249   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
250   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
251   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
252   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
253   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
254   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
255   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
256   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
257   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
258   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
259   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
260   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
261   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
262   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
263   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
264   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
265   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
266   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
267   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
268   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
269   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
270   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
271   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
272   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
273   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
274   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
275//  PORT_DIPSETTING(    0x00, "Invalid" )
225   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
226   /* "No Coin B" = coins produce sound, but no effect on coin counter */
276227
277228   PORT_START("DSW2")
278229   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
309260
310261static INPUT_PORTS_START( gberetb )
311262   PORT_START("P1")
312   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
313   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
314   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
315   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
316   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // knife
317   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // shoot
318   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
263   KONAMI8_MONO_B12_UNK               // button 1 = knife, button 2 = shoot
319264
320265   PORT_START("P2")
321266   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
r4470r4471
324269   PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
325270   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
326271   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
327   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
328   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
272   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
273   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
329274
330275   PORT_START("DSW1")
331   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
332   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
333   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
334   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
335   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
336   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
337   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
338   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
339   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
340   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
341   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
342   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
343   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
344   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
345   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
346   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
347   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
348   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
349   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
350   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
351   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
352   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
353   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
354   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
355   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
356   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
357   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
358   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
359   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
360   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
361   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
362   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
363   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
364//  PORT_DIPSETTING(    0x00, "Invalid" )
276   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
277   /* "No Coin B" = coins produce sound, but no effect on coin counter */
365278
366279   PORT_START("DSW2")
367280   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
389302
390303static INPUT_PORTS_START( mrgoemon )
391304   PORT_START("P1")
392   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
393   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
394   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
395   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
396   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
397   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
398   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
305   KONAMI8_MONO_B12_UNK
399306
400307   PORT_START("P2")
401   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
402   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
403   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
404   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
405   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
406   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
407   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
308   KONAMI8_COCKTAIL_B12_UNK
408309
409310   PORT_START("SYSTEM")
410   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
411   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
412   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
413   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
414   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
415   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
311   KONAMI8_SYSTEM_UNK
416312
417313   PORT_START("DSW1")
418   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
419   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
420   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
421   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
422   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
423   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
424   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
425   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
426   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
427   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
428   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
429   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
430   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
431   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
432   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
433   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
434   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
435   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
436   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
437   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
438   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
439   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
440   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
441   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
442   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
443   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
444   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
445   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
446   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
447   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
448   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
449   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
450   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
451//  PORT_DIPSETTING(    0x00, "Invalid" )
314   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
315   /* "No Coin B" = coins produce sound, but no effect on coin counter */
452316
453317   PORT_START("DSW2")
454318   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
src/mame/drivers/stfight.c
r4470r4471
256256   AM_RANGE(0xc500, 0xc500) AM_WRITE(stfight_fm_w)               /* play fm sound */
257257   AM_RANGE(0xc600, 0xc600) AM_DEVWRITE("msm", stfight_adpcm_control_w)    /* voice control */
258258   AM_RANGE(0xc700, 0xc700) AM_WRITE(stfight_coin_w)             /* coin mech */
259   AM_RANGE(0xc804, 0xc806) AM_WRITE(SMH_NOP)                    /* TBD */
259   AM_RANGE(0xc804, 0xc806) AM_WRITENOP                    /* TBD */
260260   AM_RANGE(0xc807, 0xc807) AM_WRITE(stfight_sprite_bank_w)
261261   AM_RANGE(0xd000, 0xd3ff) AM_WRITE(stfight_text_char_w) AM_BASE(&stfight_text_char_ram)
262262   AM_RANGE(0xd400, 0xd7ff) AM_WRITE(stfight_text_attr_w) AM_BASE(&stfight_text_attr_ram)
src/mame/drivers/ddragon.c
r4470r4471
20252025 *
20262026 *************************************/
20272027
2028GAME( 1987, ddragon,  0,        ddragon,  ddragon,  ddragon,  ROT0, "Technos", "Double Dragon (Japan)", GAME_SUPPORTS_SAVE )
2029GAME( 1987, ddragonw, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos] (Taito license)", "Double Dragon (World Set 1)", GAME_SUPPORTS_SAVE )
2030GAME( 1987, ddragnw1, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos] (Taito license)", "Double Dragon (World Set 2)", GAME_SUPPORTS_SAVE )
2031GAME( 1987, ddragonu, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos] (Taito America license)", "Double Dragon (US Set 1)", GAME_SUPPORTS_SAVE )
2032GAME( 1987, ddragoua, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos] (Taito America license)", "Double Dragon (US Set 2)", GAME_SUPPORTS_SAVE )
2028GAME( 1987, ddragon,  0,        ddragon,  ddragon,  ddragon,  ROT0, "Technos Japan", "Double Dragon (Japan)", GAME_SUPPORTS_SAVE )
2029GAME( 1987, ddragonw, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos Japan] (Taito license)", "Double Dragon (World Set 1)", GAME_SUPPORTS_SAVE )
2030GAME( 1987, ddragnw1, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos Japan] (Taito license)", "Double Dragon (World Set 2)", GAME_SUPPORTS_SAVE )
2031GAME( 1987, ddragonu, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos Japan] (Taito America license)", "Double Dragon (US Set 1)", GAME_SUPPORTS_SAVE )
2032GAME( 1987, ddragoua, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "[Technos Japan] (Taito America license)", "Double Dragon (US Set 2)", GAME_SUPPORTS_SAVE )
20332033GAME( 1987, ddragob2, ddragon,  ddragon,  ddragon,  ddragon,  ROT0, "bootleg", "Double Dragon (bootleg)", GAME_SUPPORTS_SAVE )
20342034GAME( 1987, ddragonb, ddragon,  ddragonb, ddragon,  ddragon,  ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", GAME_SUPPORTS_SAVE ) // according to dump notes
20352035GAME( 1987, ddragnba, ddragon,  ddragnba, ddragon,  ddragon,  ROT0, "bootleg", "Double Dragon (bootleg with M6803)", GAME_SUPPORTS_SAVE )
20362036GAME( 1987, ddgn6809, ddragon,  ddgn6809, ddragon,  ddgn6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 1)", GAME_NOT_WORKING )
20372037GAME( 1987, dd6809a,  ddragon,  ddgn6809, ddragon,  ddgn6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 2)", GAME_NOT_WORKING )
2038GAME( 1988, ddragon2, 0,        ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE )
2039GAME( 1988, ddragn2u, ddragon2, ddragon2, ddragon2, ddragon2, ROT0, "Technos", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE )
2038GAME( 1988, ddragon2, 0,        ddragon2, ddragon2, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE )
2039GAME( 1988, ddragn2u, ddragon2, ddragon2, ddragon2, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE )
20402040
20412041/* these were conversions of double dragon */
20422042GAME( 1991, tstrike,  0,        darktowr, tstrike,  darktowr, ROT0, "East Coast Coin Company (Melbourne)", "Thunder Strike (Newer)", GAME_SUPPORTS_SAVE )
src/mame/drivers/asterix.c
r4470r4471
1616#include "machine/eeprom.h"
1717#include "sound/2151intf.h"
1818#include "sound/k053260.h"
19#include "konamipt.h"
1920
2021VIDEO_START( asterix );
2122VIDEO_UPDATE( asterix );
r4470r4471
211212
212213static INPUT_PORTS_START( asterix )
213214   PORT_START("IN0")
214   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
215   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
216   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
217   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
218   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
219   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
220   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN3 )
221   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
215   KONAMI16_LSB(1, IPT_UNKNOWN, IPT_START1)
222216   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
223217   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN2 )
224   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN4 )
218   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_SERVICE1 )
225219   PORT_BIT( 0xf800, IP_ACTIVE_LOW, IPT_UNKNOWN )
226220
227221   PORT_START("IN1")
228   PORT_BIT( 0x0001, IP_ACTIVE_LOW,  IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
229   PORT_BIT( 0x0002, IP_ACTIVE_LOW,  IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
230   PORT_BIT( 0x0004, IP_ACTIVE_LOW,  IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
231   PORT_BIT( 0x0008, IP_ACTIVE_LOW,  IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
232   PORT_BIT( 0x0010, IP_ACTIVE_LOW,  IPT_BUTTON1 ) PORT_PLAYER(2)
233   PORT_BIT( 0x0020, IP_ACTIVE_LOW,  IPT_BUTTON2 ) PORT_PLAYER(2)
234   PORT_BIT( 0x0040, IP_ACTIVE_LOW,  IPT_UNKNOWN )
235   PORT_BIT( 0x0080, IP_ACTIVE_LOW,  IPT_START2 )
222   KONAMI16_LSB(2, IPT_UNKNOWN, IPT_START2)
236223   PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(eeprom_bit_r, NULL)   // EEPROM data
237224   PORT_BIT( 0x0200, IP_ACTIVE_LOW,  IPT_UNUSED )   // EEPROM ready (always 1)
238225   PORT_SERVICE_NO_TOGGLE(0x0400, IP_ACTIVE_LOW )
src/mame/drivers/tubep.c
r4470r4471
374374   AM_RANGE(0x0000, 0x03ff) AM_RAM AM_SHARE(3) AM_BASE(&tubep_sprite_colorsharedram)
375375   AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE(2)
376376   AM_RANGE(0x2000, 0x2009) AM_WRITE(tubep_sprite_control_w)
377   AM_RANGE(0x200a, 0x200b) AM_WRITE(SMH_NOP) /* not used by the games - perhaps designed for debugging */
377   AM_RANGE(0x200a, 0x200b) AM_WRITENOP /* not used by the games - perhaps designed for debugging */
378378   AM_RANGE(0xc000, 0xffff) AM_ROM
379379ADDRESS_MAP_END
380380
src/mame/drivers/homedata.c
r4470r4471
575575   AM_RANGE(0x7803, 0x7803) AM_READ_PORT("IN0")         // coin, service
576576   AM_RANGE(0x7804, 0x7804) AM_READ_PORT("DSW1")         // DSW1
577577   AM_RANGE(0x7805, 0x7805) AM_READ_PORT("DSW2")         // DSW2
578   AM_RANGE(0x7ffe, 0x7ffe) AM_READ(SMH_NOP)   // ??? read every vblank, value discarded
578   AM_RANGE(0x7ffe, 0x7ffe) AM_READNOP   // ??? read every vblank, value discarded
579579   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
580580ADDRESS_MAP_END
581581
r4470r4471
601601
602602static ADDRESS_MAP_START( mrokumei_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
603603   AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
604   AM_RANGE(0xfffc, 0xfffd) AM_WRITE(SMH_NOP)   /* stack writes happen here, but there's no RAM */
604   AM_RANGE(0xfffc, 0xfffd) AM_WRITENOP   /* stack writes happen here, but there's no RAM */
605605   AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w)
606606ADDRESS_MAP_END
607607
src/mame/drivers/exidy.c
r4470r4471
276276   AM_RANGE(0x2000, 0x2000) AM_WRITE(fax_bank_select_w)
277277   AM_RANGE(0x2000, 0x3fff) AM_ROMBANK(1)
278278   AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
279   AM_RANGE(0x5213, 0x5217) AM_WRITE(SMH_NOP)      /* empty control lines on color/sound board */
279   AM_RANGE(0x5213, 0x5217) AM_WRITENOP      /* empty control lines on color/sound board */
280280   AM_RANGE(0x6000, 0x6fff) AM_RAM AM_BASE(&exidy_characterram)
281281   AM_RANGE(0x8000, 0xffff) AM_ROM
282282ADDRESS_MAP_END
src/mame/drivers/hyhoo.c
r4470r4471
8080   AM_RANGE(0xe0, 0xe0) AM_WRITE(hyhoo_romsel_w)
8181   AM_RANGE(0xe0, 0xe1) AM_READ(nb1413m3_gfxrom_r)
8282   AM_RANGE(0xf0, 0xf0) AM_READ(nb1413m3_dipsw1_r)
83//  AM_RANGE(0xf0, 0xf0) AM_WRITE(SMH_NOP)
83//  AM_RANGE(0xf0, 0xf0) AM_WRITENOP
8484   AM_RANGE(0xf1, 0xf1) AM_READ(nb1413m3_dipsw2_r)
8585ADDRESS_MAP_END
8686
src/mame/drivers/hng64.c
r4470r4471
905905   // Ports
906906   AM_RANGE(0x1F700000, 0x1F702fff) AM_READ(hng64_port_read)
907907
908//  AM_RANGE(0x1F70100C, 0x1F70100F) AM_WRITE(SMH_NOP)        // ?? often
909//  AM_RANGE(0x1F70101C, 0x1F70101F) AM_WRITE(SMH_NOP)        // ?? often
910//  AM_RANGE(0x1F70106C, 0x1F70106F) AM_WRITE(SMH_NOP)        // fatfur,strange
908//  AM_RANGE(0x1F70100C, 0x1F70100F) AM_WRITENOP        // ?? often
909//  AM_RANGE(0x1F70101C, 0x1F70101F) AM_WRITENOP        // ?? often
910//  AM_RANGE(0x1F70106C, 0x1F70106F) AM_WRITENOP        // fatfur,strange
911911//  AM_RANGE(0x1F701084, 0x1F701087) AM_RAM
912//  AM_RANGE(0x1F70111C, 0x1F70111F) AM_WRITE(SMH_NOP)        // irq ack
912//  AM_RANGE(0x1F70111C, 0x1F70111F) AM_WRITENOP        // irq ack
913913   AM_RANGE(0x1F701204, 0x1F701207) AM_WRITE(hng_dma_start_w)
914914   AM_RANGE(0x1F701214, 0x1F701217) AM_WRITE(hng_dma_dst_w)
915915   AM_RANGE(0x1F701224, 0x1F701227) AM_WRITE(hng_dma_len_w)
916//  AM_RANGE(0x1F70124C, 0x1F70124F) AM_WRITE(SMH_NOP)        // dma related?
917//  AM_RANGE(0x1F70125C, 0x1F70125F) AM_WRITE(SMH_NOP)        // dma related?
918//  AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITE(SMH_NOP)        // ?? often
916//  AM_RANGE(0x1F70124C, 0x1F70124F) AM_WRITENOP        // dma related?
917//  AM_RANGE(0x1F70125C, 0x1F70125F) AM_WRITENOP        // dma related?
918//  AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITENOP        // ?? often
919919
920920   // SRAM.  Coin data, Player Statistics, etc.
921921   AM_RANGE(0x1F800000, 0x1F803fff) AM_READWRITE(hng64_sram_r, hng64_sram_w) AM_BASE(&hng64_sram)
r4470r4471
945945   AM_RANGE(0x60200000, 0x603fffff) AM_READWRITE(hng64_soundram_r, hng64_soundram_w)               // uploads the v53 sound program here, elsewhere on ss64-2 */
946946
947947   // ?
948//  AM_RANGE(0x68000000, 0x68000003) AM_WRITE(SMH_NOP)                                                // ??
949//  AM_RANGE(0x68000004, 0x68000007) AM_READ(SMH_NOP)                                                 // ??
950//  AM_RANGE(0x68000008, 0x6800000b) AM_WRITE(SMH_NOP)                                                // ??
948//  AM_RANGE(0x68000000, 0x68000003) AM_WRITENOP                                                // ??
949//  AM_RANGE(0x68000004, 0x68000007) AM_READNOP                                                 // ??
950//  AM_RANGE(0x68000008, 0x6800000b) AM_WRITENOP                                                // ??
951951
952952   // Communications
953953   AM_RANGE(0xc0000000, 0xc0000fff) AM_READWRITE(hng64_com_r, hng64_com_w) AM_BASE(&hng64_com_ram)
src/mame/drivers/solomon.c
r4470r4471
7575   AM_RANGE(0x0000, 0x3fff) AM_ROM
7676   AM_RANGE(0x4000, 0x47ff) AM_RAM
7777   AM_RANGE(0x8000, 0x8000) AM_READ(soundlatch_r)
78   AM_RANGE(0xffff, 0xffff) AM_WRITE(SMH_NOP)   /* watchdog? */
78   AM_RANGE(0xffff, 0xffff) AM_WRITENOP   /* watchdog? */
7979ADDRESS_MAP_END
8080
8181static ADDRESS_MAP_START( sound_portmap, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/macrossp.c
r4470r4471
422422
423423   AM_RANGE(0xf00000, 0xf1ffff) AM_READ(SMH_RAM)
424424
425//  AM_RANGE(0xfe0000, 0xfe0003) AM_READ(SMH_NOP)
425//  AM_RANGE(0xfe0000, 0xfe0003) AM_READNOP
426426ADDRESS_MAP_END
427427
428428static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 32 )
r4470r4471
448448
449449   AM_RANGE(0xa00000, 0xa03fff) AM_WRITE(paletteram32_macrossp_w) AM_BASE(&paletteram32)
450450
451   AM_RANGE(0xb00004, 0xb00007) AM_WRITE(SMH_NOP)   // irq related?
452   AM_RANGE(0xb00008, 0xb0000b) AM_WRITE(SMH_NOP)   // irq related?
453   AM_RANGE(0xb0000c, 0xb0000f) AM_WRITE(SMH_NOP)
451   AM_RANGE(0xb00004, 0xb00007) AM_WRITENOP   // irq related?
452   AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP   // irq related?
453   AM_RANGE(0xb0000c, 0xb0000f) AM_WRITENOP
454454   AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w)   // macrossp palette fade
455     AM_RANGE(0xb00020, 0xb00023) AM_WRITE(SMH_NOP)
455     AM_RANGE(0xb00020, 0xb00023) AM_WRITENOP
456456
457457   AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w)
458458
459459   AM_RANGE(0xf00000, 0xf1ffff) AM_WRITE(SMH_RAM) AM_BASE(&macrossp_mainram) /* Main Ram */
460460
461//  AM_RANGE(0xfe0000, 0xfe0003) AM_WRITE(SMH_NOP)
461//  AM_RANGE(0xfe0000, 0xfe0003) AM_WRITENOP
462462ADDRESS_MAP_END
463463
464464
src/mame/drivers/gladiatr.c
r4470r4471
413413   ADDRESS_MAP_GLOBAL_MASK(0xff)
414414   AM_RANGE(0x00, 0x01) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
415415   AM_RANGE(0x20, 0x21) AM_READ(qx1_r) AM_WRITE(qx1_w)
416   AM_RANGE(0x40, 0x40) AM_READ(SMH_NOP)
416   AM_RANGE(0x40, 0x40) AM_READNOP
417417   AM_RANGE(0x60, 0x61) AM_READ(qx2_r) AM_WRITE(qx2_w)
418418   AM_RANGE(0x80, 0x81) AM_READ(qx3_r) AM_WRITE(qx3_w)
419419ADDRESS_MAP_END
src/mame/drivers/imolagp.c
r4470r4471
324324   AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM)
325325   AM_RANGE(0x2000, 0x23ff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM)
326326   AM_RANGE(0x2800, 0x2800) AM_READ_PORT("2800")   /* gas */
327   AM_RANGE(0x2802, 0x2802) AM_READ(steerlatch_r) AM_WRITE(SMH_NOP)
327   AM_RANGE(0x2802, 0x2802) AM_READ(steerlatch_r) AM_WRITENOP
328328   /*  AM_RANGE(0x2803, 0x2803) ? */
329329   AM_RANGE(0x3000, 0x3000) AM_WRITE(vreg_control_w)
330330   AM_RANGE(0x37f0, 0x37f0) AM_DEVWRITE("ay", ay8910_address_w)
src/mame/drivers/puckpkmn.c
r4470r4471
141141   AM_RANGE(0xff0000, 0xffffff) AM_READ(SMH_RAM)               /* Main Ram */
142142
143143   /* Unknown reads: */
144//  AM_RANGE(0xa10000, 0xa10001) AM_READ(SMH_NOP)                   /* ? once */
145   AM_RANGE(0xa10002, 0xa10005) AM_READ(SMH_NOP)               /* ? alternative way of reading inputs ? */
146   AM_RANGE(0xa11100, 0xa11101) AM_READ(SMH_NOP)               /* ? */
144//  AM_RANGE(0xa10000, 0xa10001) AM_READNOP                   /* ? once */
145   AM_RANGE(0xa10002, 0xa10005) AM_READNOP               /* ? alternative way of reading inputs ? */
146   AM_RANGE(0xa11100, 0xa11101) AM_READNOP               /* ? */
147147ADDRESS_MAP_END
148148
149149static ADDRESS_MAP_START( puckpkmn_writemem, ADDRESS_SPACE_PROGRAM, 16 )
r4470r4471
155155
156156   /* Unknown writes: */
157157   AM_RANGE(0xa00000, 0xa00551) AM_WRITE(SMH_RAM)               /* ? */
158   AM_RANGE(0xa10002, 0xa10005) AM_WRITE(SMH_NOP)               /* ? alternative way of reading inputs ? */
159//  AM_RANGE(0xa10008, 0xa1000d) AM_WRITE(SMH_NOP)                    /* ? once */
160//  AM_RANGE(0xa14000, 0xa14003) AM_WRITE(SMH_NOP)                    /* ? once */
161   AM_RANGE(0xa11100, 0xa11101) AM_WRITE(SMH_NOP)               /* ? */
162   AM_RANGE(0xa11200, 0xa11201) AM_WRITE(SMH_NOP)               /* ? */
158   AM_RANGE(0xa10002, 0xa10005) AM_WRITENOP               /* ? alternative way of reading inputs ? */
159//  AM_RANGE(0xa10008, 0xa1000d) AM_WRITENOP                    /* ? once */
160//  AM_RANGE(0xa14000, 0xa14003) AM_WRITENOP                    /* ? once */
161   AM_RANGE(0xa11100, 0xa11101) AM_WRITENOP               /* ? */
162   AM_RANGE(0xa11200, 0xa11201) AM_WRITENOP               /* ? */
163163ADDRESS_MAP_END
164164
165165
src/mame/drivers/moo.c
r4470r4471
4949#include "sound/2151intf.h"
5050#include "sound/okim6295.h"
5151#include "sound/k054539.h"
52#include "konamipt.h"
5253
5354VIDEO_START(moo);
5455VIDEO_UPDATE(moo);
r4470r4471
258259#endif
259260
260261
261static READ16_HANDLER( player1_r )    // players 1 and 3
262{
263   return input_port_read(space->machine, "P1") | (input_port_read(space->machine, "P3")<<8);
264}
265
266static READ16_HANDLER( player2_r )   // players 2 and 4
267{
268   return input_port_read(space->machine, "P2") | (input_port_read(space->machine, "P4")<<8);
269}
270
271262static WRITE16_HANDLER( moo_prot_w )
272263{
273264   UINT32 src1, src2, dst, length, a, b, res;
r4470r4471
310301   AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
311302   AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
312303   AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM)         /* sound regs fall through */
313   AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r)
314   AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r)
304   AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
305   AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
315306   AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
316307   AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
317308   AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
r4470r4471
356347
357348static ADDRESS_MAP_START( readmembl, ADDRESS_SPACE_PROGRAM, 16 )
358349   AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
359   AM_RANGE(0x0c2f00, 0x0c2f01) AM_READ(SMH_NOP)              /* heck if I know, but it's polled constantly */
350   AM_RANGE(0x0c2f00, 0x0c2f01) AM_READNOP              /* heck if I know, but it's polled constantly */
360351   AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r)
361352   AM_RANGE(0x0d6ffe, 0x0d6fff) AM_DEVREAD8("oki", okim6295_r, 0x00ff)
362   AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r)
363   AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r)
353   AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
354   AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
364355   AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
365356   AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
366357   AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
r4470r4471
401392   AM_RANGE(0x0d2000, 0x0d20ff) AM_READ(K054000_lsb_r)
402393   AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
403394   AM_RANGE(0x0d6000, 0x0d601f) AM_READ(SMH_RAM)         /* sound regs fall through */
404   AM_RANGE(0x0da000, 0x0da001) AM_READ(player1_r)
405   AM_RANGE(0x0da002, 0x0da003) AM_READ(player2_r)
395   AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
396   AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
406397   AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
407398   AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
408399   AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
r4470r4471
494485   PORT_DIPSETTING(    0x40, "3")
495486   PORT_DIPSETTING(    0x80, "4")
496487
497   PORT_START("P1")
498   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
499   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
500   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
501   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
502   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
503   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
504   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
505   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
488   PORT_START("P1_P3")
489   KONAMI16_LSB( 1, IPT_UNKNOWN, IPT_START1 )
490   KONAMI16_MSB( 3, IPT_UNKNOWN, IPT_START3 )
506491
507   PORT_START("P2")
508   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
509   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
510   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
511   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
512   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
513   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
514   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
515   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
516
517   PORT_START("P3")
518   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
519   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
520   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
521   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
522   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
523   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
524   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
525   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
526
527   PORT_START("P4")
528   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
529   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
530   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
531   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
532   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
533   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
534   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
535   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
492   PORT_START("P2_P4")
493   KONAMI16_LSB( 2, IPT_UNKNOWN, IPT_START2 )
494   KONAMI16_MSB( 4, IPT_UNKNOWN, IPT_START4 )
536495INPUT_PORTS_END
537496
538497/* Same as 'moo', but additional "Button 3" for all players */
539498static INPUT_PORTS_START( bucky )
540499   PORT_INCLUDE( moo )
541500
542   PORT_MODIFY("P1")
543   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
501   PORT_MODIFY("P1_P3")
502   KONAMI16_LSB( 1, IPT_BUTTON3, IPT_START1 )
503   KONAMI16_MSB( 3, IPT_BUTTON3, IPT_START3 )
544504
545   PORT_MODIFY("P2")
546   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
547
548   PORT_MODIFY("P3")
549   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
550
551   PORT_MODIFY("P4")
552   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
505   PORT_MODIFY("P2_P4")
506   KONAMI16_LSB( 2, IPT_BUTTON3, IPT_START2 )
507   KONAMI16_MSB( 4, IPT_BUTTON3, IPT_START4 )
553508INPUT_PORTS_END
554509
555510
src/mame/drivers/stepstag.c
r4470r4471
6464
6565   AM_RANGE(0x500000, 0x53ffff) AM_WRITE(SMH_RAM)
6666
67   AM_RANGE(0x700000, 0x700001) AM_WRITE(SMH_NOP) //??
68   AM_RANGE(0x700002, 0x700003) AM_WRITE(SMH_NOP) //??
69   AM_RANGE(0x700004, 0x700005) AM_WRITE(SMH_NOP) //??
70   AM_RANGE(0x700006, 0x700007) AM_WRITE(SMH_NOP) //??
67   AM_RANGE(0x700000, 0x700001) AM_WRITENOP //??
68   AM_RANGE(0x700002, 0x700003) AM_WRITENOP //??
69   AM_RANGE(0x700004, 0x700005) AM_WRITENOP //??
70   AM_RANGE(0x700006, 0x700007) AM_WRITENOP //??
7171
7272   AM_RANGE(0x800000, 0x87ffff) AM_WRITE(SMH_RAM)
73   AM_RANGE(0x880000, 0x880001) AM_WRITE(SMH_NOP) //??
73   AM_RANGE(0x880000, 0x880001) AM_WRITENOP //??
7474   AM_RANGE(0x900000, 0x97ffff) AM_WRITE(SMH_RAM)
75   AM_RANGE(0x980000, 0x980001) AM_WRITE(SMH_NOP) //??
75   AM_RANGE(0x980000, 0x980001) AM_WRITENOP //??
7676   AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(SMH_RAM)
77   AM_RANGE(0xa80000, 0xa80001) AM_WRITE(SMH_NOP) //??
78   AM_RANGE(0xc00000, 0xc00001) AM_WRITE(SMH_NOP) //??
79   AM_RANGE(0xf00000, 0xf00001) AM_WRITE(SMH_NOP) //??
77   AM_RANGE(0xa80000, 0xa80001) AM_WRITENOP //??
78   AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP //??
79   AM_RANGE(0xf00000, 0xf00001) AM_WRITENOP //??
8080ADDRESS_MAP_END
8181
8282static READ16_HANDLER( unknown_sub_read_0xbe0004 )
src/mame/drivers/goindol.c
r4470r4471
100100   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
101101   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1)
102102   AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
103   AM_RANGE(0xc800, 0xc800) AM_READ(SMH_NOP)   // watchdog?
103   AM_RANGE(0xc800, 0xc800) AM_READNOP   // watchdog?
104104   AM_RANGE(0xd000, 0xefff) AM_READ(SMH_RAM)
105105   AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1")
106106   AM_RANGE(0xf422, 0xf422) AM_READ(prot_f422_r)
src/mame/drivers/taito_l.c
r4470r4471
689689static ADDRESS_MAP_START( fhawk_2_readmem, ADDRESS_SPACE_PROGRAM, 8 )
690690   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
691691   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK6)
692   AM_RANGE(0xc800, 0xc800) AM_READ(SMH_NOP)
692   AM_RANGE(0xc800, 0xc800) AM_READNOP
693693   AM_RANGE(0xc801, 0xc801) AM_READ(taitosound_comm_r)
694694   AM_RANGE(0xe000, 0xffff) AM_READ(shared_r)
695695   AM_RANGE(0xd000, 0xd000) AM_READ_PORT("DSWA")
r4470r4471
704704   AM_RANGE(0xc000, 0xc000) AM_WRITE(rombank2switch_w)
705705   AM_RANGE(0xc800, 0xc800) AM_WRITE(taitosound_port_w)
706706   AM_RANGE(0xc801, 0xc801) AM_WRITE(taitosound_comm_w)
707   AM_RANGE(0xd000, 0xd000) AM_WRITE(SMH_NOP)   // Direct copy of input port 0
707   AM_RANGE(0xd000, 0xd000) AM_WRITENOP   // Direct copy of input port 0
708708   AM_RANGE(0xd004, 0xd004) AM_WRITE(control2_w)
709   AM_RANGE(0xd005, 0xd006) AM_WRITE(SMH_NOP)   // Always 0
709   AM_RANGE(0xd005, 0xd006) AM_WRITENOP   // Always 0
710710   AM_RANGE(0xe000, 0xffff) AM_WRITE(shared_w)
711711ADDRESS_MAP_END
712712
r4470r4471
714714   AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
715715   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7)
716716   AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_RAM)
717   AM_RANGE(0xe000, 0xe000) AM_READ(SMH_NOP)
717   AM_RANGE(0xe000, 0xe000) AM_READNOP
718718   AM_RANGE(0xe001, 0xe001) AM_READ(taitosound_slave_comm_r)
719719   AM_RANGE(0xf000, 0xf001) AM_DEVREAD("ym", ym2203_r)
720720ADDRESS_MAP_END
r4470r4471
731731   COMMON_BANKS_READ
732732   AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
733733   AM_RANGE(0x8800, 0x8800) AM_READ(mux_r)
734   AM_RANGE(0x8801, 0x8801) AM_READ(SMH_NOP)   // Watchdog or interrupt ack (value ignored)
735   AM_RANGE(0x8c00, 0x8c00) AM_READ(SMH_NOP)
734   AM_RANGE(0x8801, 0x8801) AM_READNOP   // Watchdog or interrupt ack (value ignored)
735   AM_RANGE(0x8c00, 0x8c00) AM_READNOP
736736   AM_RANGE(0x8c01, 0x8c01) AM_READ(taitosound_comm_r)
737737   AM_RANGE(0xa000, 0xbfff) AM_READ(SMH_RAM)
738738ADDRESS_MAP_END
r4470r4471
764764   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7)
765765   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
766766   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
767   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
767   AM_RANGE(0xe200, 0xe200) AM_READNOP
768768   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
769769ADDRESS_MAP_END
770770
r4470r4471
782782   AM_RANGE(0xe000, 0xe003) AM_DEVWRITE("ym", ym2610_w)
783783   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
784784   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
785   AM_RANGE(0xe400, 0xe403) AM_WRITE(SMH_NOP) /* pan */
786   AM_RANGE(0xe600, 0xe600) AM_WRITE(SMH_NOP) /* ? */
787   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
788   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
785   AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
786   AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
787   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
788   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
789789   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
790790ADDRESS_MAP_END
791791
r4470r4471
812812   AM_RANGE(0xe002, 0xe002) AM_READ_PORT("IN0")
813813   AM_RANGE(0xe003, 0xe003) AM_READ_PORT("IN1")
814814   AM_RANGE(0xe007, 0xe007) AM_READ_PORT("IN2")
815   AM_RANGE(0xe008, 0xe00f) AM_READ(SMH_NOP)
816   AM_RANGE(0xe800, 0xe800) AM_READ(SMH_NOP)
815   AM_RANGE(0xe008, 0xe00f) AM_READNOP
816   AM_RANGE(0xe800, 0xe800) AM_READNOP
817817   AM_RANGE(0xe801, 0xe801) AM_READ(taitosound_comm_r)
818818   AM_RANGE(0xf000, 0xf000) AM_READ(rombank2switch_r)
819819ADDRESS_MAP_END
r4470r4471
821821static ADDRESS_MAP_START( champwr_2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
822822   AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
823823   AM_RANGE(0xc000, 0xdfff) AM_WRITE(shared_w)
824   AM_RANGE(0xe000, 0xe000) AM_WRITE(SMH_NOP)   // Watchdog
824   AM_RANGE(0xe000, 0xe000) AM_WRITENOP   // Watchdog
825825   AM_RANGE(0xe004, 0xe004) AM_WRITE(control2_w)
826826   AM_RANGE(0xe800, 0xe800) AM_WRITE(taitosound_port_w)
827827   AM_RANGE(0xe801, 0xe801) AM_WRITE(taitosound_comm_w)
r4470r4471
833833   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK7)
834834   AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM)
835835   AM_RANGE(0x9000, 0x9001) AM_DEVREAD("ym", ym2203_r)
836   AM_RANGE(0xa000, 0xa000) AM_READ(SMH_NOP)
836   AM_RANGE(0xa000, 0xa000) AM_READNOP
837837   AM_RANGE(0xa001, 0xa001) AM_READ(taitosound_slave_comm_r)
838838ADDRESS_MAP_END
839839
r4470r4471
856856   AM_RANGE(0x8000, 0x9fff) AM_READ(SMH_RAM)
857857   AM_RANGE(0xa000, 0xa7ff) AM_READ(SMH_RAM)
858858   AM_RANGE(0xa800, 0xa800) AM_READ(mux_r)
859   AM_RANGE(0xa801, 0xa801) AM_READ(SMH_NOP)   // Watchdog or interrupt ack (value ignored)
859   AM_RANGE(0xa801, 0xa801) AM_READNOP   // Watchdog or interrupt ack (value ignored)
860860ADDRESS_MAP_END
861861
862862static ADDRESS_MAP_START( kurikint_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
896896static ADDRESS_MAP_START( puzznic_readmem, ADDRESS_SPACE_PROGRAM, 8 )
897897   COMMON_BANKS_READ
898898   COMMON_SINGLE_READ
899   AM_RANGE(0xa800, 0xa800) AM_READ(SMH_NOP)   // Watchdog
899   AM_RANGE(0xa800, 0xa800) AM_READNOP   // Watchdog
900900   AM_RANGE(0xb000, 0xb7ff) AM_READ(SMH_RAM)   // Wrong, used to overcome protection
901901   AM_RANGE(0xb800, 0xb800) AM_READ(mcu_data_r)
902902   AM_RANGE(0xb801, 0xb801) AM_READ(mcu_control_r)
r4470r4471
908908   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(SMH_RAM)   // Wrong, used to overcome protection
909909   AM_RANGE(0xb800, 0xb800) AM_WRITE(mcu_data_w)
910910   AM_RANGE(0xb801, 0xb801) AM_WRITE(mcu_control_w)
911   AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP)   // Control register, function unknown
911   AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP   // Control register, function unknown
912912ADDRESS_MAP_END
913913
914914/* bootleg, doesn't have the MCU */
915915static ADDRESS_MAP_START( puzznici_readmem, ADDRESS_SPACE_PROGRAM, 8 )
916916   COMMON_BANKS_READ
917917   COMMON_SINGLE_READ
918   AM_RANGE(0xa800, 0xa800) AM_READ(SMH_NOP)   // Watchdog
918   AM_RANGE(0xa800, 0xa800) AM_READNOP   // Watchdog
919919   AM_RANGE(0xb000, 0xb7ff) AM_READ(SMH_RAM)   // Wrong, used to overcome protection
920920//  AM_RANGE(0xb800, 0xb800) AM_READ(mcu_data_r)
921921   AM_RANGE(0xb801, 0xb801) AM_READ(mcu_control_r)
r4470r4471
927927   AM_RANGE(0xb000, 0xb7ff) AM_WRITE(SMH_RAM)   // Wrong, used to overcome protection
928928//  AM_RANGE(0xb800, 0xb800) AM_WRITE(mcu_data_w)
929929//  AM_RANGE(0xb801, 0xb801) AM_WRITE(mcu_control_w)
930   AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP)   // Control register, function unknown
930   AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP   // Control register, function unknown
931931ADDRESS_MAP_END
932932
933933
r4470r4471
939939static ADDRESS_MAP_START( plotting_writemem, ADDRESS_SPACE_PROGRAM, 8 )
940940   COMMON_BANKS_WRITE
941941   COMMON_SINGLE_WRITE
942   AM_RANGE(0xa800, 0xa800) AM_WRITE(SMH_NOP)   // Watchdog or interrupt ack
943   AM_RANGE(0xb800, 0xb800) AM_WRITE(SMH_NOP)   // Control register, function unknown
942   AM_RANGE(0xa800, 0xa800) AM_WRITENOP   // Watchdog or interrupt ack
943   AM_RANGE(0xb800, 0xb800) AM_WRITENOP   // Control register, function unknown
944944ADDRESS_MAP_END
945945
946946
r4470r4471
950950   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0")
951951   AM_RANGE(0xa801, 0xa801) AM_READ_PORT("IN1")
952952   AM_RANGE(0xa802, 0xa802) AM_READ_PORT("IN2")
953   AM_RANGE(0xb001, 0xb001) AM_READ(SMH_NOP)   // Watchdog or interrupt ack
953   AM_RANGE(0xb001, 0xb001) AM_READNOP   // Watchdog or interrupt ack
954954ADDRESS_MAP_END
955955
956956static ADDRESS_MAP_START( palamed_writemem, ADDRESS_SPACE_PROGRAM, 8 )
957957   COMMON_BANKS_WRITE
958958   COMMON_SINGLE_WRITE
959   AM_RANGE(0xa803, 0xa803) AM_WRITE(SMH_NOP)   // Control register, function unknown
960   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP)   // Control register, function unknown (copy of 8822)
959   AM_RANGE(0xa803, 0xa803) AM_WRITENOP   // Control register, function unknown
960   AM_RANGE(0xb000, 0xb000) AM_WRITENOP   // Control register, function unknown (copy of 8822)
961961ADDRESS_MAP_END
962962
963963
r4470r4471
967967   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN0")
968968   AM_RANGE(0xa801, 0xa801) AM_READ_PORT("IN1")
969969   AM_RANGE(0xa802, 0xa802) AM_READ_PORT("IN2")
970   AM_RANGE(0xb001, 0xb001) AM_READ(SMH_NOP)   // Watchdog or interrupt ack (value ignored)
970   AM_RANGE(0xb001, 0xb001) AM_READNOP   // Watchdog or interrupt ack (value ignored)
971971   AM_RANGE(0xfff8, 0xfff8) AM_READ(rombankswitch_r)
972972ADDRESS_MAP_END
973973
974974static ADDRESS_MAP_START( cachat_writemem, ADDRESS_SPACE_PROGRAM, 8 )
975975   COMMON_BANKS_WRITE
976976   COMMON_SINGLE_WRITE
977   AM_RANGE(0xa803, 0xa803) AM_WRITE(SMH_NOP)   // Control register, function unknown
978   AM_RANGE(0xb000, 0xb000) AM_WRITE(SMH_NOP)   // Control register, function unknown
977   AM_RANGE(0xa803, 0xa803) AM_WRITENOP   // Control register, function unknown
978   AM_RANGE(0xb000, 0xb000) AM_WRITENOP   // Control register, function unknown
979979   AM_RANGE(0xfff8, 0xfff8) AM_WRITE(rombankswitch_w)
980980ADDRESS_MAP_END
981981
r4470r4471
989989   AM_RANGE(0xa804, 0xa804) AM_READ(horshoes_tracky_hi_r)
990990   AM_RANGE(0xa808, 0xa808) AM_READ(horshoes_trackx_lo_r)
991991   AM_RANGE(0xa80c, 0xa80c) AM_READ(horshoes_trackx_hi_r)
992   AM_RANGE(0xb801, 0xb801) AM_READ(SMH_NOP)   // Watchdog or interrupt ack
992   AM_RANGE(0xb801, 0xb801) AM_READNOP   // Watchdog or interrupt ack
993993ADDRESS_MAP_END
994994
995995static ADDRESS_MAP_START( horshoes_writemem, ADDRESS_SPACE_PROGRAM, 8 )
996996   COMMON_BANKS_WRITE
997997   COMMON_SINGLE_WRITE
998998   AM_RANGE(0xb802, 0xb802) AM_WRITE(horshoes_bankg_w)
999   AM_RANGE(0xbc00, 0xbc00) AM_WRITE(SMH_NOP)
999   AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP
10001000ADDRESS_MAP_END
10011001
10021002static ADDRESS_MAP_START( evilston_readmem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
16991699   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
17001700   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
17011701   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1702   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1703   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1704   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1702   PORT_DIPNAME( 0x80, 0x80, "P1+P2 Start to Clear Round (Cheat)" )
1703   PORT_DIPSETTING(   0x80, DEF_STR( Off ) )
1704   PORT_DIPSETTING(   0x00, DEF_STR( On ) )
17051705
17061706   PORT_START("IN0")
17071707   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 )
r4470r4471
17431743   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
17441744   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
17451745   PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
1746   PORT_DIPNAME( 0x08, 0x08, "Coin Mode" ) /* Coin Mode B not supported yet */
1746   PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
17471747   PORT_DIPSETTING(    0x08, "Mode A" )
17481748   PORT_DIPSETTING(    0x00, "Mode B" )
1749   TAITO_COINAGE_JAPAN_OLD
1749   PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
1750   PORT_DIPSETTING(    0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1751   PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1752   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1753   PORT_DIPSETTING(    0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1754   PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1755   PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1756   PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1757   PORT_DIPSETTING(    0x20, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1758   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) )
1759   PORT_DIPSETTING(    0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1760   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1761   PORT_DIPSETTING(    0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1762   PORT_DIPSETTING(    0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x08)
1763   PORT_DIPSETTING(    0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1764   PORT_DIPSETTING(    0x40, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1765   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
1766   PORT_DIPSETTING(    0x80, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWA", 0x08, PORTCOND_EQUALS, 0x00)
17501767/*
17511768
17521769Coin 1 is DSW 1, 5&6 - Coin 2 is DSW 1, 7&8
r4470r4471
17621779       |        | 3cn/1pl |off|on |
17631780       |        | 4cn/1pl |on |on |
17641781-----------------------------------
1782
1783Mode A corresponds to TAITO_COINAGE_JAPAN_OLD in taitoipt.h
1784
17651785*/
17661786
17671787   PORT_START("DSWB")
src/mame/drivers/groundfx.c
r4470r4471
263263   AM_RANGE(0x920000, 0x92000f) AM_READ(TC0100SCN_ctrl_long_r)
264264   AM_RANGE(0xa00000, 0xa0ffff) AM_READ(SMH_RAM) /* palette ram */
265265   AM_RANGE(0xb00000, 0xb003ff) AM_READ(SMH_RAM)   // ?? single bytes
266   AM_RANGE(0xc00000, 0xc00007) AM_READ(SMH_NOP) /* Network? */
266   AM_RANGE(0xc00000, 0xc00007) AM_READNOP /* Network? */
267267ADDRESS_MAP_END
268268
269269static ADDRESS_MAP_START( groundfx_writemem, ADDRESS_SPACE_PROGRAM, 32 )
src/mame/drivers/fastlane.c
r4470r4471
1515#include "cpu/hd6309/hd6309.h"
1616#include "video/konamiic.h"
1717#include "sound/k007232.h"
18#include "konamipt.h"
1819
1920/* from video/fastlane.c */
2021extern UINT8 *fastlane_k007121_regs,*fastlane_videoram1,*fastlane_videoram2;
r4470r4471
119120
120121static INPUT_PORTS_START( fastlane )
121122   PORT_START("DSW1")
122   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
123   PORT_DIPSETTING(   0x02, DEF_STR( 4C_1C ) )
124   PORT_DIPSETTING(   0x05, DEF_STR( 3C_1C ) )
125   PORT_DIPSETTING(   0x08, DEF_STR( 2C_1C ) )
126   PORT_DIPSETTING(   0x04, DEF_STR( 3C_2C ) )
127   PORT_DIPSETTING(   0x01, DEF_STR( 4C_3C ) )
128   PORT_DIPSETTING(   0x0f, DEF_STR( 1C_1C ) )
129   PORT_DIPSETTING(   0x03, DEF_STR( 3C_4C ) )
130   PORT_DIPSETTING(   0x07, DEF_STR( 2C_3C ) )
131   PORT_DIPSETTING(   0x0e, DEF_STR( 1C_2C ) )
132   PORT_DIPSETTING(   0x06, DEF_STR( 2C_5C ) )
133   PORT_DIPSETTING(   0x0d, DEF_STR( 1C_3C ) )
134   PORT_DIPSETTING(   0x0c, DEF_STR( 1C_4C ) )
135   PORT_DIPSETTING(   0x0b, DEF_STR( 1C_5C ) )
136   PORT_DIPSETTING(   0x0a, DEF_STR( 1C_6C ) )
137   PORT_DIPSETTING(   0x09, DEF_STR( 1C_7C ) )
138   PORT_DIPSETTING(   0x00, DEF_STR( Free_Play ) )
139   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
140   PORT_DIPSETTING(   0x20, DEF_STR( 4C_1C ) )
141   PORT_DIPSETTING(   0x50, DEF_STR( 3C_1C ) )
142   PORT_DIPSETTING(   0x80, DEF_STR( 2C_1C ) )
143   PORT_DIPSETTING(   0x40, DEF_STR( 3C_2C ) )
144   PORT_DIPSETTING(   0x10, DEF_STR( 4C_3C ) )
145   PORT_DIPSETTING(   0xf0, DEF_STR( 1C_1C ) )
146   PORT_DIPSETTING(   0x30, DEF_STR( 3C_4C ) )
147   PORT_DIPSETTING(   0x70, DEF_STR( 2C_3C ) )
148   PORT_DIPSETTING(   0xe0, DEF_STR( 1C_2C ) )
149   PORT_DIPSETTING(   0x60, DEF_STR( 2C_5C ) )
150   PORT_DIPSETTING(   0xd0, DEF_STR( 1C_3C ) )
151   PORT_DIPSETTING(   0xc0, DEF_STR( 1C_4C ) )
152   PORT_DIPSETTING(   0xb0, DEF_STR( 1C_5C ) )
153   PORT_DIPSETTING(   0xa0, DEF_STR( 1C_6C ) )
154   PORT_DIPSETTING(   0x90, DEF_STR( 1C_7C ) )
155//  PORT_DIPSETTING(    0x00, "Invalid" )
123   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
124   /* "No Coin B" = coins produce sound, but no effect on coin counter */
156125
157126   PORT_START("DSW2")
158127   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
r4470r4471
192161   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
193162
194163   PORT_START("SYSTEM")
195   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
196   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
197   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )   /* service */
198   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
199   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
200   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
201   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
164   KONAMI8_SYSTEM_UNK
202165
203166   PORT_START("P1")
204   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
205   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
206   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
207   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
208   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
209   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
210   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
167   KONAMI8_B12_UNK(1)
211168
212169   PORT_START("P2")
213   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
214   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
215   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
216   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
217   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
218   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
219   PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED )
170   KONAMI8_B12_UNK(2)
220171INPUT_PORTS_END
221172
222173static const gfx_layout gfxlayout =
r4470r4471
324275ROM_END
325276
326277
327
328278GAME( 1987, fastlane, 0, fastlane, fastlane, 0, ROT90, "Konami", "Fast Lane", GAME_IMPERFECT_COLORS )
src/mame/drivers/cabal.c
r4470r4471
135135   AM_RANGE(0xa0008, 0xa000f) AM_READ(track_r)
136136   AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS")
137137   AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w)
138   AM_RANGE(0xc0040, 0xc0041) AM_WRITE(SMH_NOP) /* ??? */
138   AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
139139   AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w)
140140   AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
141141   AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w)   // fix coin insertion
r4470r4471
153153   AM_RANGE(0xa0000, 0xa0001) AM_READ_PORT("DSW")
154154   AM_RANGE(0xa0008, 0xa0009) AM_READ_PORT("JOY")
155155   AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS")
156   AM_RANGE(0xc0040, 0xc0041) AM_WRITE(SMH_NOP) /* ??? */
156   AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
157157   AM_RANGE(0xc0080, 0xc0081) AM_WRITE(cabal_flipscreen_w)
158158   AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
159159   AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w)
r4470r4471
212212   AM_RANGE(0x400a, 0x400a) AM_READ(cabalbl_snd1_r)
213213   AM_RANGE(0x400c, 0x400c) AM_WRITE(soundlatch2_w)
214214   AM_RANGE(0x400e, 0x400f) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
215   AM_RANGE(0x6000, 0x6000) AM_WRITE(SMH_NOP)  /* ??? */
215   AM_RANGE(0x6000, 0x6000) AM_WRITENOP  /* ??? */
216216   AM_RANGE(0x8000, 0xffff) AM_ROM
217217ADDRESS_MAP_END
218218
src/mame/drivers/m92.c
r4470r4471
403403   AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w)
404404   AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
405405   AM_RANGE(0x20, 0x21) AM_WRITE(m92_bankswitch_w)
406   AM_RANGE(0x40, 0x43) AM_WRITE(SMH_NOP) /* Interrupt controller, only written to at bootup */
406   AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
407407   AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w)
408408   AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_control_w)
409409   AM_RANGE(0x90, 0x97) AM_WRITE(m92_pf3_control_w)
r4470r4471
415415
416416static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 )
417417   AM_RANGE(0x00000, 0x1ffff) AM_ROM
418   AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE(SMH_NOP) /* Irq controller? */
418   AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
419419   AM_RANGE(0xa0000, 0xa3fff) AM_RAM
420420   AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
421421   AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff)
src/mame/drivers/vendetta.c
r4470r4471
9393#include "machine/eeprom.h"
9494#include "sound/2151intf.h"
9595#include "sound/k053260.h"
96#include "konamipt.h"
9697
9798/* prototypes */
9899static MACHINE_RESET( vendetta );
r4470r4471
266267
267268/********************************************/
268269
269static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
270   AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_BANK1   )
271   AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_RAM)
272   AM_RANGE(0x5f80, 0x5f9f) AM_READ(K054000_r)
270static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
271   AM_RANGE(0x0000, 0x1fff) AM_ROMBANK(1)
272   AM_RANGE(0x2000, 0x3fff) AM_RAM
273   AM_RANGE(0x5f80, 0x5f9f) AM_READWRITE(K054000_r, K054000_w)
274   AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053251_w)
275   AM_RANGE(0x5fb0, 0x5fb7) AM_WRITE(K053246_w)
273276   AM_RANGE(0x5fc0, 0x5fc0) AM_READ_PORT("P1")
274277   AM_RANGE(0x5fc1, 0x5fc1) AM_READ_PORT("P2")
275278   AM_RANGE(0x5fc2, 0x5fc2) AM_READ_PORT("P3")
276279   AM_RANGE(0x5fc3, 0x5fc3) AM_READ_PORT("P4")
277280   AM_RANGE(0x5fd0, 0x5fd0) AM_READ(vendetta_eeprom_r) /* vblank, service */
278281   AM_RANGE(0x5fd1, 0x5fd1) AM_READ_PORT("SERVICE")
279   AM_RANGE(0x5fe4, 0x5fe4) AM_READ(vendetta_sound_interrupt_r)
280   AM_RANGE(0x5fe6, 0x5fe7) AM_DEVREAD("konami", vendetta_sound_r)
282   AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE(vendetta_5fe0_w)
283   AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE(vendetta_eeprom_w)
284   AM_RANGE(0x5fe4, 0x5fe4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w)
285   AM_RANGE(0x5fe6, 0x5fe7) AM_DEVREADWRITE("konami", vendetta_sound_r, k053260_w)
281286   AM_RANGE(0x5fe8, 0x5fe9) AM_READ(K053246_r)
282287   AM_RANGE(0x5fea, 0x5fea) AM_READ(watchdog_reset_r)
283288   /* what is the desired effect of overlapping these memory regions anyway? */
284   AM_RANGE(0x4000, 0x4fff) AM_READ(SMH_BANK3)
285   AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_BANK2)
286   AM_RANGE(0x4000, 0x7fff) AM_READ(K052109_r)
287   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
289   AM_RANGE(0x4000, 0x4fff) AM_RAMBANK(3)
290   AM_RANGE(0x6000, 0x6fff) AM_RAMBANK(2)
291   AM_RANGE(0x4000, 0x7fff) AM_READWRITE(K052109_r, K052109_w)
292   AM_RANGE(0x8000, 0xffff) AM_ROM
288293ADDRESS_MAP_END
289294
290static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
291   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM)
292   AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_RAM)
293   AM_RANGE(0x5f80, 0x5f9f) AM_WRITE(K054000_w)
294   AM_RANGE(0x5fa0, 0x5faf) AM_WRITE(K053251_w)
295   AM_RANGE(0x5fb0, 0x5fb7) AM_WRITE(K053246_w)
296   AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE(vendetta_5fe0_w)
297   AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE(vendetta_eeprom_w)
298   AM_RANGE(0x5fe4, 0x5fe4) AM_WRITE(z80_irq_w)
299   AM_RANGE(0x5fe6, 0x5fe7) AM_DEVWRITE("konami", k053260_w)
300   /* what is the desired effect of overlapping these memory regions anyway? */
301   AM_RANGE(0x4000, 0x4fff) AM_WRITE(SMH_BANK3)
302   AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_BANK2)
303   AM_RANGE(0x4000, 0x7fff) AM_WRITE(K052109_w)
304   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
305ADDRESS_MAP_END
306
307static ADDRESS_MAP_START( esckids_readmem, ADDRESS_SPACE_PROGRAM, 8 )
308   AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_RAM)         // 053248 64K SRAM
295static ADDRESS_MAP_START( esckids_map, ADDRESS_SPACE_PROGRAM, 8 )
296   AM_RANGE(0x0000, 0x1fff) AM_RAM                     // 053248 64K SRAM
309297   AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("P1")
310298   AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P2")
311   AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P3")         // ???  (But not used)
312   AM_RANGE(0x3f83, 0x3f83) AM_READ_PORT("P4")         // ???  (But not used)
313   AM_RANGE(0x3f92, 0x3f92) AM_READ(vendetta_eeprom_r)   // vblank, TEST SW on PCB
299   AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P3")            // ???  (But not used)
300   AM_RANGE(0x3f83, 0x3f83) AM_READ_PORT("P4")            // ???  (But not used)
301   AM_RANGE(0x3f92, 0x3f92) AM_READ(vendetta_eeprom_r)      // vblank, TEST SW on PCB
314302   AM_RANGE(0x3f93, 0x3f93) AM_READ_PORT("SERVICE")
315   AM_RANGE(0x3fd4, 0x3fd4) AM_READ(vendetta_sound_interrupt_r)   // Sound
316   AM_RANGE(0x3fd6, 0x3fd7) AM_DEVREAD("konami", vendetta_sound_r)            // Sound
317   AM_RANGE(0x3fd8, 0x3fd9) AM_READ(K053246_r)         // 053246 (Sprite)
318   /* what is the desired effect of overlapping these memory regions anyway? */
319   AM_RANGE(0x2000, 0x2fff) AM_READ(SMH_BANK3)         // 052109 (Tilemap) 0x0000-0x0fff
320   AM_RANGE(0x4000, 0x4fff) AM_READ(SMH_BANK2)         // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test)
321   AM_RANGE(0x2000, 0x5fff) AM_READ(K052109_r)         // 052109 (Tilemap)
322   AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1)         // 053248 '975r01' 1M ROM (Banked)
323   AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)         // 053248 '975r01' 1M ROM (0x18000-0x1ffff)
324ADDRESS_MAP_END
325
326static ADDRESS_MAP_START( esckids_writemem, ADDRESS_SPACE_PROGRAM, 8 )
327   AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_RAM)         // 053248 64K SRAM
328303   AM_RANGE(0x3fa0, 0x3fa7) AM_WRITE(K053246_w)         // 053246 (Sprite)
329304   AM_RANGE(0x3fb0, 0x3fbf) AM_WRITE(K053251_w)         // 053251 (Priority Encoder)
330   AM_RANGE(0x3fc0, 0x3fcf) AM_WRITE(SMH_NOP)         // Not Emulated (053252 ???)
331   AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w)   // Coin Counter, 052109 RMRD, 053246 OBJCHA
305   AM_RANGE(0x3fc0, 0x3fcf) AM_WRITENOP            // Not Emulated (053252 ???)
306   AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE(vendetta_5fe0_w)      // Coin Counter, 052109 RMRD, 053246 OBJCHA
332307   AM_RANGE(0x3fd2, 0x3fd2) AM_WRITE(vendetta_eeprom_w)   // EEPROM, Video banking
333   AM_RANGE(0x3fd4, 0x3fd4) AM_WRITE(z80_irq_w)         // Sound
334   AM_RANGE(0x3fd6, 0x3fd7) AM_DEVWRITE("konami", k053260_w)      // Sound
335   AM_RANGE(0x3fda, 0x3fda) AM_WRITE(SMH_NOP)         // Not Emulated (Watchdog ???)
308   AM_RANGE(0x3fd4, 0x3fd4) AM_READWRITE(vendetta_sound_interrupt_r, z80_irq_w)         // Sound
309   AM_RANGE(0x3fd6, 0x3fd7) AM_DEVREADWRITE("konami", vendetta_sound_r, k053260_w)      // Sound
310   AM_RANGE(0x3fd8, 0x3fd9) AM_READ(K053246_r)            // 053246 (Sprite)
311   AM_RANGE(0x3fda, 0x3fda) AM_WRITENOP            // Not Emulated (Watchdog ???)
336312   /* what is the desired effect of overlapping these memory regions anyway? */
337   AM_RANGE(0x2000, 0x2fff) AM_WRITE(SMH_BANK3)         // 052109 (Tilemap) 0x0000-0x0fff
338   AM_RANGE(0x4000, 0x4fff) AM_WRITE(SMH_BANK2)         // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test)
339   AM_RANGE(0x2000, 0x5fff) AM_WRITE(K052109_w)         // 052109 (Tilemap)
340   AM_RANGE(0x6000, 0x7fff) AM_WRITE(SMH_ROM)         // 053248 '975r01' 1M ROM (Banked)
341   AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)         // 053248 '975r01' 1M ROM (0x18000-0x1ffff)
313   AM_RANGE(0x2000, 0x2fff) AM_RAMBANK(3)               // 052109 (Tilemap) 0x0000-0x0fff
314   AM_RANGE(0x4000, 0x4fff) AM_RAMBANK(2)               // 052109 (Tilemap) 0x2000-0x3fff, Tilemap MASK-ROM bank selector (MASK-ROM Test)
315   AM_RANGE(0x2000, 0x5fff) AM_READWRITE(K052109_r, K052109_w)         // 052109 (Tilemap)
316   AM_RANGE(0x6000, 0x7fff) AM_ROMBANK(1)               // 053248 '975r01' 1M ROM (Banked)
317   AM_RANGE(0x8000, 0xffff) AM_ROM                     // 053248 '975r01' 1M ROM (0x18000-0x1ffff)
342318ADDRESS_MAP_END
343319
344320
345static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
346   AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM)
347   AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM)
348   AM_RANGE(0xf800, 0xf801) AM_DEVREAD("ym", ym2151_r)
349   AM_RANGE(0xfc00, 0xfc2f) AM_DEVREAD("konami", k053260_r)
350ADDRESS_MAP_END
351
352static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
353   AM_RANGE(0x0000, 0xefff) AM_WRITE(SMH_ROM)
354   AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
355   AM_RANGE(0xf800, 0xf801) AM_DEVWRITE("ym", ym2151_w)
321static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
322   AM_RANGE(0x0000, 0xefff) AM_ROM
323   AM_RANGE(0xf000, 0xf7ff) AM_RAM
324   AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
356325   AM_RANGE(0xfa00, 0xfa00) AM_WRITE(z80_arm_nmi_w)
357   AM_RANGE(0xfc00, 0xfc2f) AM_DEVWRITE("konami", k053260_w)
326   AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE("konami", k053260_r, k053260_w)
358327ADDRESS_MAP_END
359328
360329
r4470r4471
366335
367336static INPUT_PORTS_START( vendet4p )
368337   PORT_START("P1")
369   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
370   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
371   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
372   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
373   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
374   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
375   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
376   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
338   KONAMI8_RL_B12_COIN(1)
377339
378340   PORT_START("P2")
379   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
380   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
381   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
382   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
383   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
384   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
385   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
386   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
341   KONAMI8_RL_B12_COIN(2)
387342
343   PORT_START("P3")
344   KONAMI8_RL_B12_COIN(3)
345
346   PORT_START("P4")
347   KONAMI8_RL_B12_COIN(4)
348
388349   PORT_START("SERVICE")
389350   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
390351   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
r4470r4471
401362   PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
402363   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */
403364   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
404
405   PORT_START("P3")
406   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
407   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
408   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
409   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
410   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
411   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
412   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
413   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
414
415   PORT_START("P4")
416   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
417   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
418   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
419   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
420   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
421   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
422   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
423   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 )
424365INPUT_PORTS_END
425366
426367static INPUT_PORTS_START( vendetta )
427368   PORT_INCLUDE( vendet4p )
428369
370   PORT_MODIFY("P3")
371   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
372
373   PORT_MODIFY("P4")
374   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
375
429376   PORT_MODIFY("SERVICE")
430377   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
431378   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
r4470r4471
435382   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
436383   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
437384   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
438
439   PORT_MODIFY("P3")
440   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
441
442   PORT_MODIFY("P4")
443   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
444385INPUT_PORTS_END
445386
446387static INPUT_PORTS_START( esckids )
447   PORT_START("P1")      // Player 1 Control
448   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
449   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
450   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
451   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
452   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
453   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
454   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
455   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
388   PORT_START("P1")
389   KONAMI8_RL_B12_COIN(1)      // Player 1 Control
456390
457   PORT_START("P2")      // Player 2 Control
458   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
459   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
460   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
461   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
462   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
463   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
464   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
465   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
391   PORT_START("P2")
392   KONAMI8_RL_B12_COIN(2)      // Player 2 Control
466393
394   PORT_START("P3")
395   KONAMI8_RL_B12_COIN(3)      // Player 3 Control ???  (Not used)
396
397   PORT_START("P4")
398   KONAMI8_RL_B12_COIN(4)      // Player 4 Control ???  (Not used)
399
467400   PORT_START("SERVICE")      // Start, Service
468401   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
469402   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
r4470r4471
480413   PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
481414   PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VBLANK ) /* not really vblank, object related. Its timed, otherwise sprites flicker */
482415   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
483
484   PORT_START("P3")      // Player 3 Control ???  (Not used)
485   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
486   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
487   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
488   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
489   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
490   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
491   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
492   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
493
494   PORT_START("P4")      // Player 4 Control ???  (Not used)
495   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
496   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
497   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
498   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
499   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
500   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
501   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
502   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 )
503416INPUT_PORTS_END
504417
505418static INPUT_PORTS_START( esckidsj )
r4470r4471
529442   /* basic machine hardware */
530443   MDRV_CPU_ADD("maincpu", KONAMI, 6000000)   /* this is strange, seems an overclock but */
531444//  MDRV_CPU_ADD("maincpu", KONAMI, 3000000)   /* is needed to have correct music speed */
532   MDRV_CPU_PROGRAM_MAP(readmem,writemem)
445   MDRV_CPU_PROGRAM_MAP(main_map, 0)
533446   MDRV_CPU_VBLANK_INT("screen", vendetta_irq)
534447
535448   MDRV_CPU_ADD("audiocpu", Z80, 3579545)   /* verified with PCB */
536   MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound)
449   MDRV_CPU_PROGRAM_MAP(sound_map, 0)
537450                            /* interrupts are triggered by the main CPU */
538451
539452   MDRV_MACHINE_RESET(vendetta)
r4470r4471
572485   /* basic machine hardware */
573486   MDRV_IMPORT_FROM(vendetta)
574487   MDRV_CPU_MODIFY("maincpu")
575   MDRV_CPU_PROGRAM_MAP(esckids_readmem,esckids_writemem)
488   MDRV_CPU_PROGRAM_MAP(esckids_map, 0)
576489
577490   MDRV_SCREEN_MODIFY("screen")
578491//MDRV_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )    /* black areas on the edges */
r4470r4471
612525   ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
613526ROM_END
614527
615ROM_START( vendetao )
528ROM_START( vendettar )
616529   ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */
617530   ROM_LOAD( "081r01", 0x10000, 0x38000, CRC(84796281) SHA1(e4330c6eaa17adda5b4bd3eb824388c89fb07918) )
618531   ROM_CONTINUE(      0x08000, 0x08000 )
r4470r4471
634547   ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
635548ROM_END
636549
637ROM_START( vendet2p )
550ROM_START( vendetta2p )
638551   ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */
639552   ROM_LOAD( "081w01", 0x10000, 0x38000, CRC(cee57132) SHA1(8b6413877e127511daa76278910c2ee3247d613a) )
640553   ROM_CONTINUE(      0x08000, 0x08000 )
r4470r4471
656569   ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
657570ROM_END
658571
659ROM_START( vendetas )
572ROM_START( vendetta2pu )
660573   ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */
661574   ROM_LOAD( "081u01", 0x10000, 0x38000, CRC(b4d9ade5) SHA1(fbd543738cb0b68c80ff05eed7849b608de03395) )
662575   ROM_CONTINUE(      0x08000, 0x08000 )
r4470r4471
678591   ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
679592ROM_END
680593
681ROM_START( vendtaso )
594ROM_START( vendetta2pd )
682595   ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */
683596   ROM_LOAD( "081d01", 0x10000, 0x38000, CRC(335da495) SHA1(ea74680eb898aeecf9f1eec95f151bcf66e6b6cb) )
684597   ROM_CONTINUE(      0x08000, 0x08000 )
r4470r4471
700613   ROM_LOAD( "081a03", 0x000000, 0x100000, CRC(14b6baea) SHA1(fe15ee57f19f5acaad6c1642d51f390046a7468a) )
701614ROM_END
702615
703ROM_START( vendettj )
616ROM_START( vendettaj )
704617   ROM_REGION( 0x49000, "maincpu", 0 ) /* code + banked roms + banked ram */
705618   ROM_LOAD( "081p01", 0x10000, 0x38000, CRC(5fe30242) SHA1(2ea98e66637fa2ad60044b1a2b0dd158a82403a2) )
706619   ROM_CONTINUE(      0x08000, 0x08000 )
r4470r4471
815728
816729
817730
818GAME( 1991, vendetta, 0,        vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. T)", 0 )
819GAME( 1991, vendetao, vendetta, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. R)", 0 )
820GAME( 1991, vendet2p, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (World 2 Players ver. W)", 0 )
821GAME( 1991, vendetas, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. U)", 0 )
822GAME( 1991, vendtaso, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. D)", 0 )
823GAME( 1991, vendettj, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan 2 Players ver. P)", 0 )
824GAME( 1991, esckids,  0,        esckids,  esckids,  esckids,  ROT0, "Konami", "Escape Kids (Asia, 4 Players)", 0 )
825GAME( 1991, esckidsj, esckids,  esckids,  esckidsj, esckids,  ROT0, "Konami", "Escape Kids (Japan, 2 Players)", 0 )
731GAME( 1991, vendetta,    0,        vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. T)", 0 )
732GAME( 1991, vendettar,   vendetta, vendetta, vendet4p, vendetta, ROT0, "Konami", "Vendetta (World 4 Players ver. R)", 0 )
733GAME( 1991, vendetta2p,  vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (World 2 Players ver. W)", 0 )
734GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. U)", 0 )
735GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Vendetta (Asia 2 Players ver. D)", 0 )
736GAME( 1991, vendettaj,   vendetta, vendetta, vendetta, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan 2 Players ver. P)", 0 )
737GAME( 1991, esckids,     0,        esckids,  esckids,  esckids,  ROT0, "Konami", "Escape Kids (Asia, 4 Players)", 0 )
738GAME( 1991, esckidsj,    esckids,  esckids,  esckidsj, esckids,  ROT0, "Konami", "Escape Kids (Japan, 2 Players)", 0 )
src/mame/drivers/thoop2.c
r4470r4471
44
55Driver by Manuel Abadia <manu@teleline.es>
66
7updated by Peter Ferrie <peter.ferrie@gmail.com>
8
79Very similar to maniacsq and biomtoy but protected :_(
810The DS5002FP has up to 128 KB undumped gameplay code
11pf: its presence might be a distraction, since the game runs at least partially without it
12pf: but some gameplay bugs - sprite positioning is incorrect, no enemies, jump animation never completes
913
1014***************************************************************************/
1115
r4470r4471
5458GFXDECODE_END
5559
5660
57static ADDRESS_MAP_START( thoop2_readmem, ADDRESS_SPACE_PROGRAM, 16 )
58   AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM)         /* ROM */
59   AM_RANGE(0x100000, 0x101fff) AM_READ(SMH_RAM)         /* Video RAM */
60   AM_RANGE(0x200000, 0x2007ff) AM_READ(SMH_RAM)         /* Palette */
61   AM_RANGE(0x440000, 0x440fff) AM_READ(SMH_RAM)         /* Sprite RAM */
62   AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
63   AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
64   AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
65   AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
66   AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM")
67   AM_RANGE(0x70000e, 0x70000f) AM_DEVREAD8("oki", okim6295_r, 0x00ff)/* OKI6295 status register */
68   AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_RAM)         /* Work RAM (partially shared with DS5002FP) */
69ADDRESS_MAP_END
70
7161static WRITE16_HANDLER( OKIM6295_bankswitch_w )
7262{
7363   UINT8 *RAM = memory_region(space->machine, "oki");
r4470r4471
9686   /* 05b unknown */
9787}
9888
99static ADDRESS_MAP_START( thoop2_writemem, ADDRESS_SPACE_PROGRAM, 16 )
100   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)                        /* ROM */
101   AM_RANGE(0x100000, 0x101fff) AM_WRITE(thoop2_vram_w) AM_BASE(&thoop2_videoram)      /* Video RAM */
102   AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&thoop2_vregs)            /* Video Registers */
103   AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w)                  /* INT 6 ACK/Watchdog timer */
104   AM_RANGE(0x200000, 0x2007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */
105   AM_RANGE(0x440000, 0x440fff) AM_WRITE(SMH_RAM) AM_BASE(&thoop2_spriteram)         /* Sprite RAM */
106   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w)               /* OKI6295 bankswitch */
107   AM_RANGE(0x70000e, 0x70000f) AM_DEVWRITE8("oki", okim6295_w, 0x00ff)               /* OKI6295 data register */
108   AM_RANGE(0x70000a, 0x70005b) AM_WRITE(thoop2_coin_w)                     /* Coin Counters + Coin Lockout */
109   AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM)                        /* Work RAM (partially shared with DS5002FP) */
89/* pretend that it's there */
90
91static READ16_HANDLER( DS5002FP_R )
92{
93    return 0x55aa;
94}
95
96static ADDRESS_MAP_START( thoop2_map, ADDRESS_SPACE_PROGRAM, 16 )
97   AM_RANGE(0x000000, 0x0fffff) AM_ROM                                       /* ROM */
98   AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop2_vram_w) AM_BASE(&thoop2_videoram)   /* Video RAM */
99   AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(&thoop2_vregs)               /* Video Registers */
100   AM_RANGE(0x10800c, 0x10800d) AM_WRITE(watchdog_reset16_w)                     /* INT 6 ACK/Watchdog timer */
101   AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */
102   AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&thoop2_spriteram)                  /* Sprite RAM */
103   AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
104   AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
105   AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
106   AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
107   AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM")
108   AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w)                  /* OKI6295 bankswitch */
109   AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)               /* OKI6295 data register */
110   AM_RANGE(0x70000a, 0x70005b) AM_WRITE(thoop2_coin_w)                        /* Coin Counters + Coin Lockout */
111   AM_RANGE(0xfeff00, 0xfeff01) AM_READ(DS5002FP_R)
112   AM_RANGE(0xfeff02, 0xfeff03) AM_WRITENOP  /* pf: 0xfeff02 and 0xfeff03 need to remain zero always */
113   AM_RANGE(0xfe0000, 0xfeffff) AM_RAM                                       /* Work RAM (partially shared with DS5002FP) */
110114ADDRESS_MAP_END
111115
112116
r4470r4471
195199
196200   /* basic machine hardware */
197201   MDRV_CPU_ADD("maincpu", M68000,24000000/2)         /* 12 MHz */
198   MDRV_CPU_PROGRAM_MAP(thoop2_readmem,thoop2_writemem)
202   MDRV_CPU_PROGRAM_MAP(thoop2_map,0)
199203   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
200204
201205   /* video hardware */
src/mame/drivers/timeplt.c
r4470r4471
4848#include "cpu/z80/z80.h"
4949#include "timeplt.h"
5050#include "audio/timeplt.h"
51#include "konamipt.h"
5152
52
5353#define MASTER_CLOCK      XTAL_18_432MHz
5454
55
56
5755static UINT8 nmi_enable;
5856
5957
r4470r4471
175173
176174static INPUT_PORTS_START( timeplt )
177175   PORT_START("IN0")
178   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
179   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
180   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
181   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
182   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
183   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
176   KONAMI8_SYSTEM_UNK
184177
185178   PORT_START("IN1")
186   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
189   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
190   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
191   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
179   KONAMI8_MONO_B1_UNK
192180
193181   PORT_START("IN2")
194   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
195   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
196   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
197   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
198   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
199   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNKNOWN )
182   KONAMI8_COCKTAIL_B1_UNK
200183
201184   PORT_START("DSW0")
202   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
203   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
204   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
205   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
206   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
207   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
208   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
209   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
210   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
211   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
212   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
213   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
214   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
215   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
216   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
217   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
218   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
219   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
220   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
221   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
222   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
223   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
224   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
225   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
226   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
227   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
228   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
229   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
230   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
231   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
232   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
233   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
234   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
235   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
185   KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( Free_Play ))
236186
237187   PORT_START("DSW1")
238188   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
src/mame/drivers/atarigx2.c
r4470r4471
11761176   AM_RANGE(0xe06000, 0xe06003) AM_WRITE(atarigen_sound_upper32_w)
11771177   AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
11781178   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE(atarigen_video_int_ack32_w)
1179   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE(SMH_NOP)//watchdog_reset_w },
1179   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITENOP//watchdog_reset_w },
11801180   AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2")
11811181   AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r)
11821182   AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r)
src/mame/drivers/nwk-tr.c
r4470r4471
975975   PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN )
976976
977977   PORT_START("DSW")
978   PORT_DIPNAME( 0x80, 0x00, "Test Mode" )
978   PORT_DIPNAME( 0x80, 0x00, "Test Mode" ) PORT_DIPLOCATION("SW:1")
979979   PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
980980   PORT_DIPSETTING( 0x80, DEF_STR( On ) )
981   PORT_DIPNAME( 0x40, 0x00, "Disable Machine Init" )
981   PORT_DIPNAME( 0x40, 0x00, "Disable Machine Init" ) PORT_DIPLOCATION("SW:2")
982982   PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
983983   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
984   PORT_DIPNAME( 0x20, 0x20, "DIP3" )
984   PORT_DIPNAME( 0x20, 0x20, "DIP3" ) PORT_DIPLOCATION("SW:3")
985985   PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
986986   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
987   PORT_DIPNAME( 0x10, 0x10, "DIP4" )
987   PORT_DIPNAME( 0x10, 0x10, "DIP4" ) PORT_DIPLOCATION("SW:4")
988988   PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
989989   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
990   PORT_DIPNAME( 0x08, 0x08, "DIP5" )
990   PORT_DIPNAME( 0x08, 0x08, "DIP5" ) PORT_DIPLOCATION("SW:5")
991991   PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
992992   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
993   PORT_DIPNAME( 0x04, 0x04, "DIP6" )
993   PORT_DIPNAME( 0x04, 0x04, "DIP6" ) PORT_DIPLOCATION("SW:6")
994994   PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
995995   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
996   PORT_DIPNAME( 0x02, 0x02, "DIP7" )
996   PORT_DIPNAME( 0x02, 0x02, "DIP7" ) PORT_DIPLOCATION("SW:7")
997997   PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
998998   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
999   PORT_DIPNAME( 0x01, 0x01, "DIP8" )
999   PORT_DIPNAME( 0x01, 0x01, "DIP8" ) PORT_DIPLOCATION("SW:8")
10001000   PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
10011001   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
10021002
src/mame/drivers/sderby.c
r4470r4471
290290   AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram)   /* mid */
291291   AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram)   /* fg */
292292   AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w)
293   AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP)   /* ??? - check code at 0x000456 (executed once at startup) */
294   AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP)   /* ??? - check code at 0x000524 (executed once at startup) */
293   AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP   /* ??? - check code at 0x000456 (executed once at startup) */
294   AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP   /* ??? - check code at 0x000524 (executed once at startup) */
295295    AM_RANGE(0x200000, 0x200fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
296296   AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
297297   AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w)   /* output port */
298298   AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
299299   AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
300   AM_RANGE(0x500000, 0x500001) AM_WRITE(SMH_NOP)   /* unknown... write 0x01 in game, and 0x00 on reset */
300   AM_RANGE(0x500000, 0x500001) AM_WRITENOP   /* unknown... write 0x01 in game, and 0x00 on reset */
301301   AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)
302302   AM_RANGE(0xffc000, 0xffffff) AM_RAM
303303ADDRESS_MAP_END
r4470r4471
308308   AM_RANGE(0x101000, 0x101fff) AM_RAM AM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram)   /* mid */
309309   AM_RANGE(0x102000, 0x103fff) AM_RAM AM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram)   /* fg */
310310   AM_RANGE(0x104000, 0x10400b) AM_WRITE(sderby_scroll_w)   /* tilemaps offset control */
311   AM_RANGE(0x10400c, 0x10400d) AM_WRITE(SMH_NOP)   /* seems another video register. constantly used */
312   AM_RANGE(0x10400e, 0x10400f) AM_WRITE(SMH_NOP)   /* seems another video register. constantly used */
313   AM_RANGE(0x104010, 0x105fff) AM_WRITE(SMH_NOP)   /* unknown */
314   AM_RANGE(0x300000, 0x300001) AM_WRITE(SMH_NOP)   /* unknown... write 0x01 in game, and 0x00 on reset */
311   AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP   /* seems another video register. constantly used */
312   AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP   /* seems another video register. constantly used */
313   AM_RANGE(0x104010, 0x105fff) AM_WRITENOP   /* unknown */
314   AM_RANGE(0x300000, 0x300001) AM_WRITENOP   /* unknown... write 0x01 in game, and 0x00 on reset */
315315   AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
316316   AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w)   /* output port */
317317   AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
318318   AM_RANGE(0x380000, 0x380fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
319319   AM_RANGE(0xd00000, 0xd001ff) AM_RAM
320320    AM_RANGE(0x800000, 0x800fff) AM_RAM AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
321   AM_RANGE(0x801000, 0x80100d) AM_WRITE(SMH_NOP)   /* unknown */
321   AM_RANGE(0x801000, 0x80100d) AM_WRITENOP   /* unknown */
322322   AM_RANGE(0x8f0000, 0x8f07ff) AM_RAM AM_BASE(&generic_nvram16) AM_SIZE(&generic_nvram_size)   /* 16K Dallas DS1220Y-200 NVRAM */
323323   AM_RANGE(0x8fc000, 0x8fffff) AM_RAM
324324ADDRESS_MAP_END
r4470r4471
330330   AM_RANGE(0x501000, 0x501fff) AM_RAM_WRITE(sderby_md_videoram_w) AM_BASE(&sderby_md_videoram)   /* mid */
331331   AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(sderby_fg_videoram_w) AM_BASE(&sderby_fg_videoram)   /* fg */
332332   AM_RANGE(0x504000, 0x50400b) AM_RAM_WRITE(sderby_scroll_w)
333   AM_RANGE(0x50400e, 0x50400f) AM_WRITE(SMH_NOP)
333   AM_RANGE(0x50400e, 0x50400f) AM_WRITENOP
334334
335335   AM_RANGE(0x708000, 0x708009) AM_READ(roulette_input_r)
336336   AM_RANGE(0x708006, 0x708007) AM_WRITE(roulette_out_w)
337337   AM_RANGE(0x70800a, 0x70800b) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)
338   AM_RANGE(0x70800c, 0x70800d) AM_WRITE(SMH_NOP)   /* watchdog?? (0x0003) */
338   AM_RANGE(0x70800c, 0x70800d) AM_WRITENOP   /* watchdog?? (0x0003) */
339339   AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w)   /* MCU communication */
340340   AM_RANGE(0x780000, 0x780fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
341341
src/mame/drivers/shangha3.c
r4470r4471
141141   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
142142   AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
143143   AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w)
144   AM_RANGE(0x20000a, 0x20000b) AM_WRITE(SMH_NOP)   /* irq ack? */
144   AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP   /* irq ack? */
145145   AM_RANGE(0x20000c, 0x20000d) AM_WRITE(shangha3_coinctrl_w)
146146   AM_RANGE(0x20002e, 0x20002f) AM_DEVWRITE8("ay", ay8910_data_w, 0x00ff)
147147   AM_RANGE(0x20003e, 0x20003f) AM_DEVWRITE8("ay", ay8910_address_w, 0x00ff)
r4470r4471
167167   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
168168   AM_RANGE(0x100000, 0x100fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
169169   AM_RANGE(0x200008, 0x200009) AM_WRITE(shangha3_blitter_go_w)
170   AM_RANGE(0x20000a, 0x20000b) AM_WRITE(SMH_NOP)   /* irq ack? */
170   AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP   /* irq ack? */
171171   AM_RANGE(0x20000c, 0x20000d) AM_WRITE(heberpop_coinctrl_w)
172172   AM_RANGE(0x20000e, 0x20000f) AM_WRITE(heberpop_sound_command_w)
173173   AM_RANGE(0x300000, 0x30ffff) AM_WRITE(SMH_RAM) AM_BASE(&shangha3_ram) AM_SIZE(&shangha3_ram_size)   /* gfx & work ram */
r4470r4471
188188static ADDRESS_MAP_START( blocken_writemem, ADDRESS_SPACE_PROGRAM, 16 )
189189   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM)
190190   AM_RANGE(0x100008, 0x100009) AM_WRITE(shangha3_blitter_go_w)
191   AM_RANGE(0x10000a, 0x10000b) AM_WRITE(SMH_NOP)   /* irq ack? */
191   AM_RANGE(0x10000a, 0x10000b) AM_WRITENOP   /* irq ack? */
192192   AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w)
193193   AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w)
194194   AM_RANGE(0x200000, 0x200fff) AM_WRITE(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE(&paletteram16)
src/mame/drivers/taotaido.c
r4470r4471
107107   AM_RANGE(0xffffa0, 0xffffa1) AM_READ_PORT("P3")                  // used only by taotaida
108108   AM_RANGE(0xffffa2, 0xffffa3) AM_READ_PORT("P4")                  // used only by taotaida
109109   AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(taotaido_tileregs_w)
110   AM_RANGE(0xffff10, 0xffff11) AM_WRITE(SMH_NOP)                  // unknown
111   AM_RANGE(0xffff20, 0xffff21) AM_WRITE(SMH_NOP)                  // unknown - flip screen related
110   AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP                  // unknown
111   AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP                  // unknown - flip screen related
112112   AM_RANGE(0xffff40, 0xffff47) AM_WRITE(taotaido_sprite_character_bank_select_w)
113113   AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w)            // seems right
114114   AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r)   // guess - seems to be needed for all the sounds to work
src/mame/drivers/gaelco2.c
r4470r4471
7474   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(gaelco2_vram_w) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)   /* Video RAM */
7575   AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16)   /* Palette */
7676   AM_RANGE(0x218004, 0x218009) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs)         /* Video Registers */
77   AM_RANGE(0x30004a, 0x30004b) AM_WRITE(SMH_NOP)                     /* Sound muting? */
77   AM_RANGE(0x30004a, 0x30004b) AM_WRITENOP                     /* Sound muting? */
7878   AM_RANGE(0x500000, 0x500001) AM_WRITE(gaelco2_coin_w)                  /* Coin lockout + counters */
7979   AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM)                     /* Work RAM */
8080ADDRESS_MAP_END
r4470r4471
230230    AM_RANGE(0x210000, 0x211fff) AM_READ(SMH_RAM) /* Palette */
231231    AM_RANGE(0x218004, 0x218009) AM_READ(SMH_RAM) /* Video Registers */
232232    AM_RANGE(0x300000, 0x300001) AM_READ_PORT("P1")
233    AM_RANGE(0x300002, 0x300003) AM_READ(SMH_NOP) /* Random number generator? */
233    AM_RANGE(0x300002, 0x300003) AM_READNOP /* Random number generator? */
234234    AM_RANGE(0x300010, 0x300011) AM_READ_PORT("P2")
235235    AM_RANGE(0x300020, 0x300021) AM_READ_PORT("COIN")
236236    AM_RANGE(0x310000, 0x310001) AM_READ(p1_gun_x)/* Gun 1P X */
r4470r4471
246246   AM_RANGE(0x200000, 0x20ffff) AM_WRITE(gaelco2_vram_w) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)   /* Video RAM */
247247   AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16)   /* Palette */
248248   AM_RANGE(0x218004, 0x218007) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs)   /* Video Registers */
249   AM_RANGE(0x218008, 0x218009) AM_WRITE(SMH_NOP)                     /* CLR INT Video */
249   AM_RANGE(0x218008, 0x218009) AM_WRITENOP                     /* CLR INT Video */
250250   AM_RANGE(0x300000, 0x300003) AM_WRITE(gaelco2_coin2_w)               /* Coin Counters */
251251   AM_RANGE(0x300008, 0x300009) AM_WRITE(gaelco2_eeprom_data_w)         /* EEPROM data */
252252   AM_RANGE(0x30000a, 0x30000b) AM_WRITE(gaelco2_eeprom_sk_w)            /* EEPROM serial clock */
r4470r4471
408408   AM_RANGE(0x210000, 0x211fff) AM_WRITE(gaelco2_palette_w) AM_BASE(&paletteram16)   /* Palette */
409409   AM_RANGE(0x218004, 0x218009) AM_WRITE(SMH_RAM) AM_BASE(&gaelco2_vregs)         /* Video Registers */
410410   AM_RANGE(0x500000, 0x500001) AM_WRITE(gaelco2_coin_w)                  /* Coin lockout + counters */
411   AM_RANGE(0x500006, 0x500007) AM_WRITE(SMH_NOP)                     /* ??? */
411   AM_RANGE(0x500006, 0x500007) AM_WRITENOP                     /* ??? */
412412   AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM)                     /* Work RAM */
413413ADDRESS_MAP_END
414414
src/mame/drivers/homerun.c
r4470r4471
9797
9898static ADDRESS_MAP_START( homerun_iomap, ADDRESS_SPACE_IO, 8 )
9999   ADDRESS_MAP_GLOBAL_MASK(0xff)
100   AM_RANGE(0x10, 0x10) AM_WRITE(SMH_NOP) /* ?? */
101   AM_RANGE(0x20, 0x20) AM_WRITE(SMH_NOP) /* ?? */
100   AM_RANGE(0x10, 0x10) AM_WRITENOP /* ?? */
101   AM_RANGE(0x20, 0x20) AM_WRITENOP /* ?? */
102102   AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", ppi8255_r, ppi8255_w)
103103   AM_RANGE(0x40, 0x40) AM_READ_PORT("IN0")
104104   AM_RANGE(0x50, 0x50) AM_READ_PORT("IN2")
src/mame/drivers/baraduke.c
r4470r4471
200200   AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r)            /* cures speech */
201201   AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namcos1_cus30_r,namcos1_cus30_w) AM_BASE(&namco_wavedata)/* PSG device, shared RAM */
202202   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)               /* MCU external ROM */
203   AM_RANGE(0x8000, 0x8000) AM_WRITE(SMH_NOP)               /* watchdog reset? */
204   AM_RANGE(0x8800, 0x8800) AM_WRITE(SMH_NOP)               /* irq acknoledge? */
203   AM_RANGE(0x8000, 0x8000) AM_WRITENOP               /* watchdog reset? */
204   AM_RANGE(0x8800, 0x8800) AM_WRITENOP               /* irq acknoledge? */
205205   AM_RANGE(0xc000, 0xc7ff) AM_RAM                        /* RAM */
206206   AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM)               /* MCU internal ROM */
207207ADDRESS_MAP_END
src/mame/drivers/champbas.c
r4470r4471
634634static MACHINE_DRIVER_START( exctsccr )
635635
636636   /* basic machine hardware */
637   MDRV_CPU_ADD("maincpu", Z80, 4000000)   /* 4.0 MHz (?) */
637   MDRV_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6 )
638638   MDRV_CPU_PROGRAM_MAP(exctsccr_main_map,0)
639639   MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
640640
641   MDRV_CPU_ADD("audiocpu", Z80, 4123456)   /* ??? with 4 MHz, nested NMIs might happen */
641   MDRV_CPU_ADD("audiocpu", Z80, XTAL_14_31818MHz/4 )
642642   MDRV_CPU_PROGRAM_MAP(exctsccr_sub_map,0)
643643   MDRV_CPU_IO_MAP(exctsccr_sound_io_map,0)
644644   MDRV_CPU_PERIODIC_INT(nmi_line_pulse, 4000) /* 4 kHz, updates the dac */
r4470r4471
667667   /* sound hardware */
668668   MDRV_SPEAKER_STANDARD_MONO("mono")
669669
670   MDRV_SOUND_ADD("ay1", AY8910, 1500000)
670   /* AY (melody) clock is specified by VR (0.9 - 3.9 MHz), which is it? */
671   MDRV_SOUND_ADD("ay1", AY8910, XTAL_14_31818MHz/8)
671672   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08)
672673
673   MDRV_SOUND_ADD("ay2", AY8910, 1500000)
674   MDRV_SOUND_ADD("ay2", AY8910, XTAL_14_31818MHz/8)
674675   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08)
675676
676   MDRV_SOUND_ADD("ay3", AY8910, 1500000)
677   MDRV_SOUND_ADD("ay3", AY8910, XTAL_14_31818MHz/8)
677678   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08)
678679
679   MDRV_SOUND_ADD("ay4", AY8910, 1500000)
680   MDRV_SOUND_ADD("ay4", AY8910, XTAL_14_31818MHz/8)
680681   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.08)
681682
682683   MDRV_SOUND_ADD("dac1", DAC, 0)
r4470r4471
931932   ROM_LOAD( "prom2.8r",     0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
932933ROM_END
933934
935ROM_START( exctsccj )
936   ROM_REGION( 0x10000, "maincpu", 0 )
937   ROM_LOAD( "1.10g",    0x0000, 0x2000, CRC(d1bfdf75) SHA1(a4a9bb340712401b1d24705c26d996a798776d4f) )
938   ROM_LOAD( "2.10h",    0x2000, 0x2000, CRC(5c61f0fe) SHA1(8c6751b80f89d8744d3eaa2a6da2cafdde968ed2) )
939   ROM_LOAD( "3.10j",    0x4000, 0x2000, CRC(8f213b10) SHA1(5bffaee2725fe34b0614fcf1b4dc1c9a2f2df36c) )
940
941   ROM_REGION( 0x10000, "audiocpu", 0 )
942   ROM_LOAD( "0.6h",     0x0000, 0x2000, CRC(548b08a2) SHA1(4cdcc67e34e56cbac5d07e9603650073de0bb5d1) )
943   ROM_LOAD( "9_f6.bin", 0x2000, 0x2000, CRC(639998f5) SHA1(c4ff5e5e75d53dea38449f323186d08d5b57bf90) )
944   ROM_LOAD( "8.6d",     0x4000, 0x2000, CRC(b6b209a5) SHA1(e49a0db65b29337ac6b919237067b1990f2233ab) )
945   ROM_LOAD( "7.6c",     0x6000, 0x2000, CRC(8856452a) SHA1(4494c225c9df97da09c180caadb4dda49d0d5392) )
946
947   ROM_REGION( 0x04000, "gfx1", ROMREGION_DISPOSE )   // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only chars
948   ROM_LOAD( "4.5a",     0x0000, 0x2000, CRC(c4259307) SHA1(7bd4e229a5e1a5136826a57aa61810fcdf9c5027) ) /* planes 0,1 */
949   ROM_LOAD( "6.5c",     0x2000, 0x2000, CRC(cca53367) SHA1(f06ebf2ab8f8f10cfe118af490017972990e3073) ) /* plane 3 */
950
951   ROM_REGION( 0x04000, "gfx2", ROMREGION_DISPOSE )   // 3bpp chars + sprites: rearranged by DRIVER_INIT to leave only sprites
952   ROM_LOAD( "5.5b",     0x0000, 0x2000, CRC(851d1a18) SHA1(2cfad530c8f9d95094fd0aacd2e0965b0300898c) ) /* planes 0,1 */
953
954   ROM_REGION( 0x02000, "gfx3", ROMREGION_DISPOSE )   // 4bpp sprites
955   ROM_LOAD( "2.5k",     0x0000, 0x1000, CRC(7f9cace2) SHA1(bf05a31716f3ca1c2fd1034cd1f39e2d21cdaed3) )
956   ROM_LOAD( "3.5l",     0x1000, 0x1000, CRC(db2d9e0d) SHA1(6ec09a47f7aea6bf31eb0ee78f44012f4d92de8a) )
957
958   ROM_REGION( 0x0220, "proms", 0 )
959   ROM_LOAD( "prom1.e1",     0x0000, 0x0020, CRC(d9b10bf0) SHA1(bc1263331968f4bf37eb70ec4f56a8cb763c29d2) ) /* palette */
960   ROM_LOAD( "prom3.k5",     0x0020, 0x0100, CRC(b5db1c2c) SHA1(900aaaac6b674a9c5c7b7804a4b0c3d5cce761aa) ) /* lookup table */
961   ROM_LOAD( "prom2.8r",     0x0120, 0x0100, CRC(8a9c0edf) SHA1(8aad387e9409cff0eeb42eeb57e9ea88770a8c9a) ) /* lookup table */
962ROM_END
963
934964/*
935965The Kazutomi bootleg board is a conversion from Champion Baseball:
936966Alpha denshi co. LTD made in Japan
r4470r4471
10691099
10701100GAME( 1983, exctsccr, 0,        exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer", 0 )
10711101GAME( 1983, exctscca, exctsccr, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (alternate music)", 0 )
1102GAME( 1983, exctsccj, exctsccr, exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan)", 0 )
10721103GAME( 1983, exctsccb, exctsccr, exctsccb, exctsccr, exctsccr, ROT270, "bootleg",          "Exciting Soccer (bootleg)", 0 )
10731104GAME( 1984, exctscc2, 0,        exctsccr, exctsccr, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", 0 )
src/mame/drivers/ssozumo.c
r4470r4471
326326
327327
328328
329GAME( 1984, ssozumo, 0, ssozumo, ssozumo, 0, ROT270, "Technos", "Syusse Oozumou (Japan)", 0 )
329GAME( 1984, ssozumo, 0, ssozumo, ssozumo, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", 0 )
src/mame/drivers/mcr.c
r4470r4471
630630   ADDRESS_MAP_GLOBAL_MASK(0xff)
631631   SSIO_INPUT_PORTS
632632   AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
633   AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP)
633   AM_RANGE(0xe8, 0xe8) AM_WRITENOP
634634   AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
635635ADDRESS_MAP_END
636636
r4470r4471
657657   ADDRESS_MAP_GLOBAL_MASK(0xff)
658658   SSIO_INPUT_PORTS
659659   AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
660   AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP)
660   AM_RANGE(0xe8, 0xe8) AM_WRITENOP
661661   AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
662662ADDRESS_MAP_END
663663
r4470r4471
685685   ADDRESS_MAP_GLOBAL_MASK(0xff)
686686   SSIO_INPUT_PORTS
687687   AM_RANGE(0xe0, 0xe0) AM_WRITE(watchdog_reset_w)
688   AM_RANGE(0xe8, 0xe8) AM_WRITE(SMH_NOP)
688   AM_RANGE(0xe8, 0xe8) AM_WRITENOP
689689   AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_r, z80ctc_w)
690690ADDRESS_MAP_END
691691
src/mame/drivers/m107.c
r4470r4471
179179   AM_RANGE(0x08, 0x09) AM_READ(m107_sound_status_r)   /* answer from sound CPU */
180180   AM_RANGE(0x00, 0x01) AM_WRITE(m107_soundlatch_w)
181181   AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w)
182   AM_RANGE(0x04, 0x05) AM_WRITE(SMH_NOP) /* ??? 0008 */
182   AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */
183183   AM_RANGE(0x06, 0x07) AM_WRITE(bankswitch_w)
184184   AM_RANGE(0x80, 0x9f) AM_WRITE(m107_control_w)
185   AM_RANGE(0xa0, 0xaf) AM_WRITE(SMH_NOP) /* Written with 0's in interrupt */
185   AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */
186186   AM_RANGE(0xb0, 0xb1) AM_WRITE(m107_spritebuffer_w)
187   AM_RANGE(0xc0, 0xc3) AM_READ(SMH_NOP) /* Only wpksoc: ticket related? */
187   AM_RANGE(0xc0, 0xc3) AM_READNOP /* Only wpksoc: ticket related? */
188188ADDRESS_MAP_END
189189
190190/******************************************************************************/
191191
192192static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 16 )
193193   AM_RANGE(0x00000, 0x1ffff) AM_ROM
194   AM_RANGE(0x9ff00, 0x9ffff) AM_WRITE(SMH_NOP) /* Irq controller? */
194   AM_RANGE(0x9ff00, 0x9ffff) AM_WRITENOP /* Irq controller? */
195195   AM_RANGE(0xa0000, 0xa3fff) AM_RAM
196196   AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
197197   AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ym", ym2151_r, ym2151_w, 0x00ff)
src/mame/drivers/ninjaw.c
r4470r4471
411411   AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK10)
412412   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
413413   AM_RANGE(0xe000, 0xe003) AM_DEVREAD("ym", ym2610_r)
414   AM_RANGE(0xe200, 0xe200) AM_READ(SMH_NOP)
414   AM_RANGE(0xe200, 0xe200) AM_READNOP
415415   AM_RANGE(0xe201, 0xe201) AM_READ(taitosound_slave_comm_r)
416   AM_RANGE(0xea00, 0xea00) AM_READ(SMH_NOP)
416   AM_RANGE(0xea00, 0xea00) AM_READNOP
417417ADDRESS_MAP_END
418418
419419static ADDRESS_MAP_START( z80_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
423423   AM_RANGE(0xe200, 0xe200) AM_WRITE(taitosound_slave_port_w)
424424   AM_RANGE(0xe201, 0xe201) AM_WRITE(taitosound_slave_comm_w)
425425   AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */
426   AM_RANGE(0xee00, 0xee00) AM_WRITE(SMH_NOP) /* ? */
427   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ? */
426   AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
427   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
428428   AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
429429ADDRESS_MAP_END
430430
src/mame/drivers/matmania.c
r4470r4471
7676   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_RAM) AM_BASE(&matmania_pageselect)
7777   AM_RANGE(0x3010, 0x3010) AM_WRITE(matmania_sh_command_w)
7878   AM_RANGE(0x3020, 0x3020) AM_WRITE(SMH_RAM) AM_BASE(&matmania_scroll)
79//  AM_RANGE(0x3030, 0x3030) AM_WRITE(SMH_NOP) /* ?? */
79//  AM_RANGE(0x3030, 0x3030) AM_WRITENOP /* ?? */
8080   AM_RANGE(0x3050, 0x307f) AM_WRITE(matmania_paletteram_w) AM_BASE(&paletteram)
8181   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
8282ADDRESS_MAP_END
r4470r4471
106106   AM_RANGE(0x3000, 0x3000) AM_WRITE(SMH_RAM) AM_BASE(&matmania_pageselect)
107107   AM_RANGE(0x3010, 0x3010) AM_WRITE(maniach_sh_command_w)
108108   AM_RANGE(0x3020, 0x3020) AM_WRITE(SMH_RAM) AM_BASE(&matmania_scroll)
109   AM_RANGE(0x3030, 0x3030) AM_WRITE(SMH_NOP)   /* ?? */
109   AM_RANGE(0x3030, 0x3030) AM_WRITENOP   /* ?? */
110110   AM_RANGE(0x3040, 0x3040) AM_WRITE(maniach_mcu_w)
111111   AM_RANGE(0x3050, 0x307f) AM_WRITE(matmania_paletteram_w) AM_BASE(&paletteram)
112112   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
r4470r4471
633633
634634
635635
636GAME( 1985, matmania, 0,        matmania, matmania, 0, ROT270, "Technos (Taito America license)", "Mat Mania", 0 )
637GAME( 1985, excthour, matmania, matmania, maniach,  0, ROT270, "Technos (Taito license)", "Exciting Hour", 0 )
638GAME( 1986, maniach,  0,        maniach,  maniach,  0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 1)", 0 )
639GAME( 1986, maniach2, maniach,  maniach,  maniach,  0, ROT270, "Technos (Taito America license)", "Mania Challenge (set 2)" , 0)   /* earlier version? */
636GAME( 1985, matmania, 0,        matmania, matmania, 0, ROT270, "Technos Japan (Taito America license)", "Mat Mania", 0 )
637GAME( 1985, excthour, matmania, matmania, maniach,  0, ROT270, "Technos Japan (Taito license)", "Exciting Hour", 0 )
638GAME( 1986, maniach,  0,        maniach,  maniach,  0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 1)", 0 )
639GAME( 1986, maniach2, maniach,  maniach,  maniach,  0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 2)" , 0)   /* earlier version? */
src/mame/drivers/twin16.c
r4470r4471
5959#include "sound/k007232.h"
6060#include "sound/upd7759.h"
6161#include "includes/twin16.h"
62#include "konamipt.h"
6263
6364UINT16 twin16_custom_video;
6465UINT16 *twin16_gfx_rom;
r4470r4471
273274   AM_RANGE(0x044000, 0x04ffff) AM_RAM            // miaj
274275   AM_RANGE(0x060000, 0x063fff) AM_RAM
275276   AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(twin16_paletteram_word_w) AM_BASE(&paletteram16)
276   AM_RANGE(0x081000, 0x081fff) AM_WRITE(SMH_NOP)
277   AM_RANGE(0x081000, 0x081fff) AM_WRITENOP
277278   AM_RANGE(0x0a0000, 0x0a001b) AM_READ(twin16_input_r)
278279   AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUA_register_w)
279280   AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(sound_command_w)
r4470r4471
323324
324325/* Input Ports */
325326
326#define KONAMI_TWIN_COINAGE PORT_START("DSW1") \
327   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \
328   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) ) \
329   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) ) \
330   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) ) \
331   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) ) \
332   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) ) \
333   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) ) \
334   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) ) \
335   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) ) \
336   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) ) \
337   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) ) \
338   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) ) \
339   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) ) \
340   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) ) \
341   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) ) \
342   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) ) \
343   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) ) \
344   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \
345   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) ) \
346   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) ) \
347   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) ) \
348   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) ) \
349   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) ) \
350   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
351   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) ) \
352   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) ) \
353   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) ) \
354   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) ) \
355   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) ) \
356   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) ) \
357   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) ) \
358   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) ) \
359   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) ) \
360   PORT_DIPSETTING(    0x00, "Disabled" )
361
362327static INPUT_PORTS_START( devilw )
363328   PORT_START("SYSTEM")   /* 0xa0001 */
364329   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
371336   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
372337
373338   PORT_START("P1")   /* 0xa0003 */
374   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
375   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
376   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
377   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
378   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // start/powerup
379   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // attack
380   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // jump
381   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
339   KONAMI8_B123_UNK(1)                        // button1 = start/powerup, button2 = attack, button3 = jump
382340
383341   PORT_START("P2")   /* 0xa0005 */
384   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
385   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
386   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
387   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
388   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
389   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
390   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
391   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
342   KONAMI8_B123_UNK(2)
392343
393344   PORT_START("P3")   /* 0xa0007 */
394345   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
395346
396   KONAMI_TWIN_COINAGE
347   PORT_START("DSW1")
348   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
349   /* "Invalid" = both coin slots disabled */
397350
398   PORT_START("DSW2")   /* DSW2 */
351   PORT_START("DSW2")
399352   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
400353   PORT_DIPSETTING(    0x03, "2" )
401354   PORT_DIPSETTING(    0x02, "3" )
r4470r4471
411364   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
412365   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
413366
414   PORT_START("DSW3")   /* DSW3 0xa0019 */
367   PORT_START("DSW3")   /* 0xa0019 */
415368   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
416369   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
417370   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
433386   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE2 )
434387
435388   PORT_START("P1")   /* 0xa0003 */
436   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
437   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
438   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
439   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
440   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // start/jump
441   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // attack
442   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // dynamite
389   KONAMI8_B123(1)                           // button1 = start/jump, button2 = attack, button3 = dynamite
443390   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE3 )
444391
445392   PORT_START("P2")   /* 0xa0005 */
446   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
447   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
448   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
449   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
450   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
451   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
452   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
453   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
393   KONAMI8_B123_UNK(2)
454394
455395   PORT_START("P3")   /* 0xa0007 */
456   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
457   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
458   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
459   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
460   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
461   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
462   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
463   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
396   KONAMI8_B123_UNK(3)
464397
465398   PORT_START("DSW1")   /* Coinage */
466399   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) )
r4470r4471
482415   PORT_DIPSETTING(    0x00, "Invalid" )
483416   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
484417
485   PORT_START("DSW2")   /* DSW2 */
418   PORT_START("DSW2")
486419   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
487420   PORT_DIPSETTING(    0x03, "2" )
488421   PORT_DIPSETTING(    0x02, "3" )
r4470r4471
498431   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
499432   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
500433
501   PORT_START("DSW3")   /* DSW3 0xa0019 */
434   PORT_START("DSW3")   /* 0xa0019 */
502435   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
503436   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
504437   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
520453   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
521454
522455   PORT_START("P1")   /* 0xa0003 */
523   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
524   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
525   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
526   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
527   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // powerup
528   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // shoot
529   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // missile
530   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
456   KONAMI8_B123_UNK(1)                        // button1 = powerup, button2 = shoot, button3 = missile
531457
532458   PORT_START("P2")   /* 0xa0005 */
533   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
534   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
535   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
536   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
537   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
538   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
539   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
540   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
459   KONAMI8_B123_UNK(2)
541460
542461   PORT_START("P3")   /* 0xa0007 */
543462   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
544463
545   KONAMI_TWIN_COINAGE
464   PORT_START("DSW1")
465   KONAMI_COINAGE(DEF_STR( Free_Play ), DEF_STR( None ))
466   /* "None" = coin slot B disabled */
546467
547   PORT_START("DSW2")   /* DSW2 */
468   PORT_START("DSW2")
548469   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
549470   PORT_DIPSETTING(    0x03, "2" )
550471   PORT_DIPSETTING(    0x02, "3" )
r4470r4471
567488   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
568489   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
569490
570   PORT_START("DSW3")   /* DSW3 0xa0018 */
491   PORT_START("DSW3")   /* 0xa0018 */
571492   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
572493   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
573494   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
581502
582503
583504static INPUT_PORTS_START( gradius2 )   // same as vulcan, different bonus
584   PORT_START("SYSTEM")   /* 0xa0001 */
585   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
586   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
587   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
588   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )      // advance through tests
589   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
590   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
591   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 )
592   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
505   PORT_INCLUDE( vulcan )
593506
594   PORT_START("P1")   /* 0xa0003 */
595   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
596   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
597   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
598   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
599   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // powerup
600   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // shoot
601   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // missile
602   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
603
604   PORT_START("P2")   /* 0xa0005 */
605   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
606   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
607   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
608   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
609   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
610   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
611   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
612   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
613
614   PORT_START("P3")   /* 0xa0007 */
615   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
616
617   KONAMI_TWIN_COINAGE
618
619   PORT_START("DSW2")   /* DSW2 */
620   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
621   PORT_DIPSETTING(    0x03, "2" )
622   PORT_DIPSETTING(    0x02, "3" )
623   PORT_DIPSETTING(    0x01, "4" )
624   PORT_DIPSETTING(    0x00, "7" )
625   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
626   PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
627   PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
507   PORT_MODIFY("DSW2")
628508   PORT_DIPNAME( 0x18, 0x18, DEF_STR (Bonus_Life ) )
629509   PORT_DIPSETTING(    0x18, "20K 150K" )
630510   PORT_DIPSETTING(    0x10, "30K 200K" )
631511   PORT_DIPSETTING(    0x08, "20K" )
632512   PORT_DIPSETTING(    0x00, "70K" )
633   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
634   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
635   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
636   PORT_DIPSETTING(    0x20, "Difficult" )
637   PORT_DIPSETTING(    0x00, "Very Difficult" )
638   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
639   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
640   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
641
642   PORT_START("DSW3")   /* DSW3 0xa0018 */
643   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
644   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
645   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
646   PORT_DIPNAME( 0x02, 0x00, "Upright Controls" )
647   PORT_DIPSETTING(    0x02, DEF_STR( Single ) )
648   PORT_DIPSETTING(    0x00, DEF_STR( Dual ) )
649   PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
650   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED)
651   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED)
652513INPUT_PORTS_END
653514
654515static INPUT_PORTS_START( fround )
r4470r4471
663524   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
664525
665526   PORT_START("P1")   /* 0xa0003 */
666   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
667   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
668   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
669   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
670   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // face punch
671   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // body punch
672   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // defend
673   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
527   KONAMI8_B123_UNK(1)                        // button1 = face punch, button2 = body punch, button3 = defend
674528
675529   PORT_START("P2")   /* 0xa0005 */
676   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
677   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
678   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
679   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
680   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
681   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
682   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
683   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED)
530   KONAMI8_B123_UNK(2)
684531
685532   PORT_START("P3")   /* 0xa0007 */
686533   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
687534
688   KONAMI_TWIN_COINAGE
535   PORT_START("DSW1")
536   KONAMI_COINAGE(DEF_STR( Free_Play ), "No Coin B")
537   /* "No Coin B" = coins produce sound, but no effect on coin counter */
689538
690   PORT_START("DSW2")   /* DSW2 */
539   PORT_START("DSW2")
691540   PORT_DIPNAME( 0x03, 0x02, "Energy" )
692541   PORT_DIPSETTING(    0x03, "18" )
693542   PORT_DIPSETTING(    0x02, "20" )
r4470r4471
703552   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
704553   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
705554
706   PORT_START("DSW3")   /* DSW3 0xa0018 */
555   PORT_START("DSW3")   /* 0xa0018 */
707556   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
708557   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
709558   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
725574   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
726575
727576   PORT_START("P1")   /* 0xa0003 */
728   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
729   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
730   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
731   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
732   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // knife
733   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // weapon
734   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // choice
735   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
577   KONAMI8_B123_UNK(1)                        // button1 = knife, button2 = weapon, button3 = choice
736578
737579   PORT_START("P2")   /* 0xa0005 */
738   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
739   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
740   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
741   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
742   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
743   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
744   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
745   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
580   KONAMI8_B123_UNK(2)
746581
747582   PORT_START("P3")   /* 0xa0007 */
748583   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
749584
750   KONAMI_TWIN_COINAGE
585   PORT_START("DSW1")
586   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
587   /* "Invalid" = both coin slots disabled */
751588
752   PORT_START("DSW2")   /* DSW2 */
589   PORT_START("DSW2")
753590   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
754591   PORT_DIPSETTING(    0x03, "2" )
755592   PORT_DIPSETTING(    0x02, "3" )
r4470r4471
770607   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
771608   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
772609
773   PORT_START("DSW3")   /* DSW3 0xa0018 */
610   PORT_START("DSW3")   /* 0xa0018 */
774611   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
775612   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
776613   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
794631   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
795632
796633   PORT_START("P1")   /* 0xa0003 */
797   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
798   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
799   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
800   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
801   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )   // move
802   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )   // warp
803   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )   // stop
804   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
634   KONAMI8_B123_UNK(1)                        // button1 = move, button2 = warp, button3 = stop
805635
806636   PORT_START("P2")   /* 0xa0005 */
807   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
808   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
809   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
810   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
811   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
812   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
813   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
814   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
637   KONAMI8_B123_UNK(2)
815638
816639   PORT_START("P3")   /* 0xa0007 */
817640   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
818641
819   KONAMI_TWIN_COINAGE
642   PORT_START("DSW1")
643   KONAMI_COINAGE(DEF_STR( Free_Play ), "Invalid")
644   /* "Invalid" = both coin slots disabled */
820645
821   PORT_START("DSW2")   /* DSW2 */
646   PORT_START("DSW2")
822647   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
823648   PORT_DIPSETTING(    0x03, "1" )
824649   PORT_DIPSETTING(    0x02, "2" )
r4470r4471
841666   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
842667   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
843668
844   PORT_START("DSW3")   /* DSW3 0xa0018 */
669   PORT_START("DSW3")   /* 0xa0018 */
845670   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
846671   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
847672   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r4470r4471
14661291
14671292/* Game Drivers */
14681293
1469GAME( 1987, devilw,   0,        devilw,     devilw,   twin16,   ROT0, "Konami", "Devil World", 0 )
1470GAME( 1987, majuu,    devilw,   devilw,     devilw,   twin16,   ROT0, "Konami", "Majuu no Ohkoku", 0 )
1471GAME( 1987, darkadv,  devilw,   devilw,     darkadv,  twin16,   ROT0, "Konami", "Dark Adventure", 0 )
1472GAME( 1988, vulcan,   0,        twin16,    vulcan,   twin16,   ROT0, "Konami", "Vulcan Venture", 0 )
1473GAME( 1988, gradius2, vulcan,   twin16,    gradius2, twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", 0 )
1474GAME( 1988, grdius2a, vulcan,   twin16,    vulcan,   twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", 0 )
1475GAME( 1988, grdius2b, vulcan,   twin16,    vulcan,   twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", 0 )
1294GAME( 1987, devilw,   0,        devilw,      devilw,   twin16,   ROT0, "Konami", "Devil World", 0 )
1295GAME( 1987, majuu,    devilw,   devilw,      devilw,   twin16,   ROT0, "Konami", "Majuu no Ohkoku", 0 )
1296GAME( 1987, darkadv,  devilw,   devilw,      darkadv,  twin16,   ROT0, "Konami", "Dark Adventure", 0 )
1297GAME( 1988, vulcan,   0,        twin16,      vulcan,   twin16,   ROT0, "Konami", "Vulcan Venture", 0 )
1298GAME( 1988, gradius2, vulcan,   twin16,      gradius2, twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", 0 )
1299GAME( 1988, grdius2a, vulcan,   twin16,      vulcan,   twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", 0 )
1300GAME( 1988, grdius2b, vulcan,   twin16,      vulcan,   twin16,   ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", 0 )
14761301
1477GAME( 1988, fround,   0,        fround,    fround,   fround,   ROT0, "Konami", "The Final Round (version M)", 0 )
1478GAME( 1988, froundl,  fround,   fround,    fround,   fround,   ROT0, "Konami", "The Final Round (version L)", 0 )
1479GAME( 1988, hpuncher, fround,   hpuncher,  fround,   hpuncher, ROT0, "Konami", "Hard Puncher (Japan)", 0 )
1480GAME( 1989, miaj,     mia,      miaj,      miaj,     hpuncher, ROT0, "Konami", "M.I.A. - Missing in Action (Japan)", 0 )
1481GAME( 1989, cuebrckj, cuebrick, cuebrckj,  cuebrckj, cuebrckj, ROT0, "Konami", "Cue Brick (Japan)", 0 )
1302GAME( 1988, fround,   0,        fround,      fround,   fround,   ROT0, "Konami", "The Final Round (version M)", 0 )
1303GAME( 1988, froundl,  fround,   fround,      fround,   fround,   ROT0, "Konami", "The Final Round (version L)", 0 )
1304GAME( 1988, hpuncher, fround,   hpuncher,   fround,   hpuncher, ROT0, "Konami", "Hard Puncher (Japan)", 0 )
1305GAME( 1989, miaj,     mia,      miaj,      miaj,     hpuncher, ROT0, "Konami", "M.I.A. - Missing in Action (Japan)", 0 )
1306GAME( 1989, cuebrckj, cuebrick, cuebrckj,   cuebrckj, cuebrckj, ROT0, "Konami", "Cue Brick (Japan)", 0 )
src/mame/drivers/megasys1.c
r4470r4471
512512static ADDRESS_MAP_START( sound_writemem_z80, ADDRESS_SPACE_PROGRAM, 8 )
513513   AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
514514   AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM)
515   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP) /* ?? */
515   AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ?? */
516516ADDRESS_MAP_END
517517
518518static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/crshrace.c
r4470r4471
293293   PORT_DIPNAME( 0x0100, 0x0100, "Coin Slot" ) PORT_DIPLOCATION("SW1:1")
294294   PORT_DIPSETTING(      0x0100, "Same" )
295295   PORT_DIPSETTING(      0x0000, "Individual" )
296   PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,3,4")
296   PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:2,3,4") PORT_CONDITION("DSW0", 0x0100, PORTCOND_EQUALS, 0x0100)
297297   PORT_DIPSETTING(      0x0a00, DEF_STR( 3C_1C ) )
298298   PORT_DIPSETTING(      0x0c00, DEF_STR( 2C_1C ) )
299299   PORT_DIPSETTING(      0x0e00, DEF_STR( 1C_1C ) )
r4470r4471
302302   PORT_DIPSETTING(      0x0400, DEF_STR( 1C_4C ) )
303303   PORT_DIPSETTING(      0x0200, DEF_STR( 1C_5C ) )
304304   PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
305   PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7")
305   PORT_DIPNAME( 0x7000, 0x7000, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7") PORT_CONDITION("DSW0", 0x0100, PORTCOND_EQUALS, 0x0100)
306306   PORT_DIPSETTING(      0x5000, DEF_STR( 3C_1C ) )
307307   PORT_DIPSETTING(      0x6000, DEF_STR( 2C_1C ) )
308308   PORT_DIPSETTING(      0x7000, DEF_STR( 1C_1C ) )
r4470r4471
311311   PORT_DIPSETTING(      0x2000, DEF_STR( 1C_4C ) )
312312   PORT_DIPSETTING(      0x1000, DEF_STR( 1C_5C ) )
313313   PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
314   PORT_DIPNAME( 0x0e00, 0x0e00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3,4") PORT_CONDITION("DSW0", 0x0100, PORTCOND_NOTEQUALS, 0x0100)
315   PORT_DIPSETTING(      0x0a00, DEF_STR( 3C_1C ) )
316   PORT_DIPSETTING(      0x0c00, DEF_STR( 2C_1C ) )
317   PORT_DIPSETTING(      0x0e00, DEF_STR( 1C_1C ) )
318   PORT_DIPSETTING(      0x0800, DEF_STR( 1C_2C ) )
319   PORT_DIPSETTING(      0x0600, DEF_STR( 1C_3C ) )
320   PORT_DIPSETTING(      0x0400, DEF_STR( 1C_4C ) )
321   PORT_DIPSETTING(      0x0200, DEF_STR( 1C_5C ) )
322   PORT_DIPSETTING(      0x0000, DEF_STR( 1C_6C ) )
323   PORT_DIPUNUSED_DIPLOC( 0x7000, 0x7000, "SW1:5,6,7") PORT_CONDITION("DSW0", 0x0100, PORTCOND_NOTEQUALS, 0x0100)
314324   PORT_DIPNAME( 0x8000, 0x8000, "2 to Start, 1 to Cont." ) PORT_DIPLOCATION("SW1:8")   // Other desc. was too long !
315325   PORT_DIPSETTING(      0x8000, DEF_STR( Off ) )
316326   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
r4470r4471
383393   PORT_INCLUDE( crshrace )
384394
385395   PORT_MODIFY("DSW0")
386   PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW1:5" )      // Check code at 0x00ea36
396   PORT_DIPUNKNOWN_DIPLOC( 0x0010, 0x0010, "SW2:5" )      // Check code at 0x00ea36
387397INPUT_PORTS_END
388398
389399
src/mame/drivers/pacman.c
r4470r4471
898898   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
899899   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
900900   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
901   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
901   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
902902   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
903   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
904   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
903   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
904   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
905905   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
906906   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
907907   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
908   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
909   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
908   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
909   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
910910   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
911911   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
912912   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
925925   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
926926   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
927927   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
928   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
928   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
929929   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
930   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
930   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
931931   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
932932   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
933933   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
934934   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
935   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
936   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
935   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
936   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
937937   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
938938   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
939939   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
965965   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
966966   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
967967   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
968   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
968   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
969969   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
970   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
971   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
970   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
971   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
972972   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
973973   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
974974   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
975   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
976   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
975   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
976   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
977977   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
978978   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
979979   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
997997   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
998998   AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(alibaba_sound_w) AM_BASE(&pacman_soundregs)  /* the sound region is not contiguous */
999999   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2) /* actually at 5050-505f, here to point to free RAM */
1000   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1001   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
1000   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1001   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
10021002   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_enable_w)
10031003   AM_RANGE(0x50c1, 0x50c1) AM_MIRROR(0xaf00) AM_WRITE(pacman_flipscreen_w)
10041004   AM_RANGE(0x50c2, 0x50c2) AM_MIRROR(0xaf00) AM_WRITE(interrupt_enable_w)
1005   AM_RANGE(0x50c3, 0x50ff) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1005   AM_RANGE(0x50c3, 0x50ff) AM_MIRROR(0xaf00) AM_WRITENOP
10061006   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
10071007   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
10081008   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1")      /* DSW1 */
r4470r4471
10231023   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
10241024   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
10251025//  AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
1026   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) /* unknown */
1026   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP /* unknown */
10271027   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
1028   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
1029   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
1028   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
1029   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
10301030   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
10311031//  AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
10321032   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
1033   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1034   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
1033   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1034   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
10351035   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
10361036   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
10371037   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
10501050   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
10511051   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
10521052   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
1053   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
1053   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
10541054   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
1055   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
1056   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
1055   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
1056   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
10571057   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
10581058   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
10591059   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
1060   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1061   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
1060   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1061   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
10621062   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
10631063   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
10641064   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
10751075   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
10761076   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
10771077   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_WRITE(vanvan_bgcolor_w)
1078   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
1078   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
10791079   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
1080   AM_RANGE(0x5004, 0x5004) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
1081   AM_RANGE(0x5005, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) /* always written together with 5001 */
1080   AM_RANGE(0x5004, 0x5004) AM_MIRROR(0xaf38) AM_WRITENOP
1081   AM_RANGE(0x5005, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP /* always written together with 5001 */
10821082   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
1083   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1083   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP
10841084   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
1085   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1086   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP) /* ??? toggled before reading 5000 */
1085   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1086   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP /* ??? toggled before reading 5000 */
10871087   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
10881088   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
10891089   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
10931093   /* probably a leftover from development: the Sanritsu version */
10941094   /* writes the color lookup table here, while the Karateko version */
10951095   /* writes garbage. */
1096   AM_RANGE(0xb800, 0xb87f) AM_WRITE(SMH_NOP)
1096   AM_RANGE(0xb800, 0xb87f) AM_WRITENOP
10971097ADDRESS_MAP_END
10981098
10991099static ADDRESS_MAP_START( s2650games_map, ADDRESS_SPACE_PROGRAM, 8 )
r4470r4471
11041104   AM_RANGE(0x1490, 0x149f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE(&s2650games_spriteram)
11051105   AM_RANGE(0x14a0, 0x14bf) AM_MIRROR(0xe000) AM_WRITE(s2650games_tilesbank_w) AM_BASE(&s2650games_tileram)
11061106   AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
1107   AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITE(SMH_NOP)
1107   AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITENOP
11081108   AM_RANGE(0x1503, 0x1503) AM_MIRROR(0xe000) AM_WRITE(pacman_flipscreen_w)
1109   AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITE(SMH_NOP)
1109   AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITENOP
11101110   AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE(pacman_coin_counter_w)
11111111   AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
11121112   AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
11131113   AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITE(SMH_RAM)
1114   AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITE(SMH_NOP)
1114   AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITENOP
11151115   AM_RANGE(0x15c0, 0x15c0) AM_MIRROR(0xe000) AM_WRITE(watchdog_reset_w)
11161116   AM_RANGE(0x15c7, 0x15c7) AM_MIRROR(0xe000) AM_WRITE(porky_banking_w)
11171117   AM_RANGE(0x1500, 0x1500) AM_MIRROR(0xe000) AM_READ_PORT("IN0")
r4470r4471
11611161   AM_RANGE(0x5000, 0x5000) AM_WRITE(interrupt_enable_w)
11621162   AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", pacman_sound_enable_w)
11631163   AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
1164   AM_RANGE(0x5007, 0x5007) AM_WRITE(SMH_NOP) /*?*/
1164   AM_RANGE(0x5007, 0x5007) AM_WRITENOP /*?*/
11651165   AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
11661166   AM_RANGE(0x50c0, 0x50c0) AM_WRITE(watchdog_reset_w)
11671167   AM_RANGE(0x5000, 0x503f) AM_READ_PORT("IN0")      /* IN0 */
11681168   AM_RANGE(0x5040, 0x507f) AM_READ_PORT("IN1")      /* IN1 */
11691169   AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW1")      /* DSW1 */
11701170   AM_RANGE(0x50c0, 0x50ff) AM_READ_PORT("DSW2")      /* DSW2 */
1171   AM_RANGE(0x5100, 0x5100) AM_WRITE(SMH_NOP) /*?*/
1171   AM_RANGE(0x5100, 0x5100) AM_WRITENOP /*?*/
11721172   AM_RANGE(0x6000, 0x6000) AM_WRITE(bigbucks_bank_w)
11731173   AM_RANGE(0x8000, 0x9fff) AM_ROM
11741174ADDRESS_MAP_END
r4470r4471
11831183   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
11841184   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
11851185   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
1186   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
1186   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
11871187   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
1188   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
1189   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
1188   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
1189   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
11901190   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
11911191   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", pacman_sound_w) AM_BASE(&pacman_soundregs)
11921192   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
1193   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1194   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
1193   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1194   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
11951195   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
11961196   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")      /* IN0 */
11971197   AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")      /* IN1 */
r4470r4471
12101210   AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
12111211   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(interrupt_enable_w)
12121212   AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", pacman_sound_enable_w)
1213   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP)
1213   AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
12141214   AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
1215   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_leds_w)
1216   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(SMH_NOP) // AM_WRITE(pacman_coin_lockout_global_w)
1215   AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
1216   AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
12171217   AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
1218   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP) // doesn't use pacman sound hw
1218   AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP // doesn't use pacman sound hw
12191219   AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(SMH_RAM) AM_BASE(&spriteram_2)
1220   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITE(SMH_NOP)
1221   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITE(SMH_NOP)
1220   AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
1221   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
12221222   AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_WRITE(watchdog_reset_w)
12231223   AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")
12241224   AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")
r4470r4471
12781278ADDRESS_MAP_END
12791279
12801280static ADDRESS_MAP_START( drivfrcp_readport, ADDRESS_SPACE_IO, 8 )
1281   AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP)
1281   AM_RANGE(0x00, 0x00) AM_READNOP
12821282   AM_RANGE(0x01, 0x01) AM_READ(drivfrcp_port1_r)
12831283   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
12841284ADDRESS_MAP_END
12851285
12861286static ADDRESS_MAP_START( _8bpm_readport, ADDRESS_SPACE_IO, 8 )
1287   AM_RANGE(0x00, 0x00) AM_READ(SMH_NOP)
1287   AM_RANGE(0x00, 0x00) AM_READNOP
12881288   AM_RANGE(0x01, 0x01) AM_READ(_8bpm_port1_r)
1289   AM_RANGE(0xe0, 0xe0) AM_READ(SMH_NOP)
1289   AM_RANGE(0xe0, 0xe0) AM_READNOP
12901290   AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
12911291ADDRESS_MAP_END
12921292
r4470r4471
41484148   ROM_LOAD( "82s126.3m",    0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )   /* timing - not used */
41494149ROM_END
41504150
4151ROM_START( crushbl2 )
4152   ROM_REGION( 0x10000, "maincpu", 0 )
4153   ROM_LOAD( "cr5.7d",       0x0000, 0x1000, CRC(4954d51d) SHA1(ff973ed961a531f7fc6f45b2c27af317f4cc6a4d) )
4154   ROM_LOAD( "cr6.7e",       0x1000, 0x1000, CRC(27eb4299) SHA1(af2d7fdedcea766045fc2f20ae383024d1c35731) )
4155   ROM_LOAD( "cr7.7h",       0x2000, 0x1000, CRC(d297108e) SHA1(a5bd11f26ba82b66a93d07e8cbc838ad9bd01413) )
4156   ROM_LOAD( "cr8.7j",       0x3000, 0x1000, CRC(bcc40eaf) SHA1(50ffb3cf5cffd7618ceac207f60ca052fc13e38c) )
4157
4158   ROM_REGION( 0x2000, "gfx1", ROMREGION_DISPOSE )
4159   ROM_LOAD( "cr1.5e",       0x0000, 0x0800, CRC(c7617198) SHA1(95b204af0345163f93811cc770ee0ca2851a39c1) )
4160   ROM_LOAD( "cr3.5h",       0x0800, 0x0800, CRC(c15b6967) SHA1(d8f16e2d6af5bf0f610d1e23614c531f67490da9) )
4161   ROM_LOAD( "cr2.5f",       0x1000, 0x0800, CRC(d5bc5cb8) SHA1(269b82ae2b838c72ae06bff77412f22bb779ad2e) )  /* copyright sign was removed */
4162   ROM_LOAD( "cr4.5j",       0x1800, 0x0800, CRC(d35d1caf) SHA1(65dd7861e05651485626465dc97215fed58db551) )
4163
4164   ROM_REGION( 0x0120, "proms", 0 )
4165   ROM_LOAD( "74s288.8a",    0x0000, 0x0020, CRC(ff344446) SHA1(45eb37533da8912645a089b014f3b3384702114a) )
4166   ROM_LOAD( "2s140.4a",     0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) )
4167
4168   ROM_REGION( 0x0200, "namco", 0 )   /* sound PROMs */
4169   ROM_LOAD( "82s126.1m",    0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
4170   ROM_LOAD( "82s126.3m",    0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )   /* timing - not used */
4171ROM_END
4172
41514173ROM_START( crush2 )
41524174   ROM_REGION( 0x10000, "maincpu", 0 )
41534175   ROM_LOAD( "tp1",          0x0000, 0x0800, CRC(f276592e) SHA1(68ebb7d9f70af868d99ec42c26bc55a54ba1f22c) )
r4470r4471
57035725GAME( 1981, piranhah, puckman,  pacman,   mspacman, 0,        ROT90,  "hack", "Piranha (hack)", GAME_SUPPORTS_SAVE )
57045726GAME( 1981, crush,    0,        pacman,   maketrax, maketrax, ROT90,  "Kural Samno Electric", "Crush Roller (Kural Samno)", GAME_SUPPORTS_SAVE )
57055727GAME( 1981, crushbl,  crush,    pacman,   maketrax, 0,        ROT90,  "bootleg", "Crush Roller (bootleg)", GAME_SUPPORTS_SAVE )
5728GAME( 1981, crushbl2, crush,    pacman,   mbrush,   maketrax, ROT90,  "bootleg", "Crush Roller (bootleg?)", GAME_SUPPORTS_SAVE )
57065729GAME( 1981, crush2,   crush,    pacman,   maketrax, 0,        ROT90,  "Kural Esco Electric", "Crush Roller (Kural Esco - bootleg?)", GAME_SUPPORTS_SAVE )
57075730GAME( 1981, crush3,   crush,    pacman,   maketrax, eyes,     ROT90,  "Kural Electric", "Crush Roller (Kural - bootleg?)", GAME_SUPPORTS_SAVE )
57085731GAME( 19??, crush4,   crush,    crush4,   crush4,   0,        ROT90,  "Kural TWT", "Crush Roller (Kural TWT)", GAME_SUPPORTS_SAVE )
src/mame/drivers/parentj.c
r4470r4471
4545   AM_RANGE(0x100000, 0x103fff) AM_RAM
4646
4747
48   AM_RANGE(0x200004, 0x200005) AM_WRITE(SMH_NOP)
48   AM_RANGE(0x200004, 0x200005) AM_WRITENOP
4949
5050   AM_RANGE(0x400000, 0x41ffff) AM_RAM AM_BASE(&parentj_video)
5151
src/mame/drivers/chqflag.c
r4470r4471
192192   AM_RANGE(0xb000, 0xb00d) AM_DEVREAD("konami2", k007232_r)   /* 007232 (chip 2) */
193193   AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r)   /* YM2151 */
194194   AM_RANGE(0xd000, 0xd000) AM_READ(soundlatch_r)         /* soundlatch_r */
195   //AM_RANGE(0xe000, 0xe000) AM_READ(SMH_NOP)                /* ??? */
195   //AM_RANGE(0xe000, 0xe000) AM_READNOP                /* ??? */
196196ADDRESS_MAP_END
197197
198198static WRITE8_HANDLER( k007232_bankswitch_w )
r4470r4471
219219                                 /* selecting a different latch for the external port */
220220   AM_RANGE(0xb000, 0xb00d) AM_DEVWRITE("konami2", k007232_w)      /* 007232 (chip 2) */
221221   AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w)      /* YM2151 */
222   AM_RANGE(0xf000, 0xf000) AM_WRITE(SMH_NOP)               /* ??? */
222   AM_RANGE(0xf000, 0xf000) AM_WRITENOP               /* ??? */
223223ADDRESS_MAP_END
224224
225225
r4470r4471
258258   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
259259   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
260260   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
261//  PORT_DIPSETTING(    0x00, "Coin Slot 2 Invalidity" )
261   PORT_DIPSETTING(    0x00, "Invalid" )
262   /* Invalid = both coin slots disabled */
262263
263264   PORT_START("DSW2")
264265   PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW2:1" )   /* Manual says it's not used */
src/mame/drivers/bwing.c
r4470r4471
198198   AM_RANGE(0x1c00, 0x1c07) AM_WRITE(bwp1_ctrl_w)
199199   AM_RANGE(0x2000, 0x3fff) AM_WRITE(bwing_scrollram_w)
200200   AM_RANGE(0x1000, 0x1fff) AM_WRITE(SMH_RAM) // falls through
201   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_NOP) // "B-Wings US" writes to 9631-9632(debug?)
201   AM_RANGE(0x4000, 0xffff) AM_WRITENOP // "B-Wings US" writes to 9631-9632(debug?)
202202ADDRESS_MAP_END
203203
204204
src/mame/drivers/sf.c
r4470r4471
272272/* Yes, _no_ ram */
273273static ADDRESS_MAP_START( sound2_writemem, ADDRESS_SPACE_PROGRAM, 8 )
274274/*  AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_ROM) avoid cluttering up error.log */
275   AM_RANGE(0x0000, 0xffff) AM_WRITE(SMH_NOP)
275   AM_RANGE(0x0000, 0xffff) AM_WRITENOP
276276ADDRESS_MAP_END
277277
278278static ADDRESS_MAP_START( sound2_io_map, ADDRESS_SPACE_IO, 8 )
src/mame/drivers/dooyong.c
r4470r4471
292292   AM_RANGE(0x04e000, 0x04ffff) AM_WRITE(SMH_RAM)
293293   AM_RANGE(0x0c0012, 0x0c0013) AM_WRITE(soundlatch_word_w)
294294   AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE(rshark_ctrl_w)
295   AM_RANGE(0x0c0018, 0x0c001b) AM_WRITE(SMH_NOP) // ?
295   AM_RANGE(0x0c0018, 0x0c001b) AM_WRITENOP // ?
296296   AM_RANGE(0x0c4000, 0x0c400f) AM_WRITE(dooyong_bgscroll16_w)
297297   AM_RANGE(0x0c4010, 0x0c401f) AM_WRITE(dooyong_bg2scroll16_w) // not used atm
298298   AM_RANGE(0x0c8000, 0x0c8fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
src/mame/drivers/brkthru.c
r4470r4471
123123   AM_RANGE(0x1400, 0x1bff) AM_RAM
124124   AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(brkthru_bgram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
125125   AM_RANGE(0x0000, 0x00ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
126   AM_RANGE(0x0100, 0x01ff) AM_WRITE(SMH_NOP) /*tidyup, nothing realy here?*/
126   AM_RANGE(0x0100, 0x01ff) AM_WRITENOP /*tidyup, nothing realy here?*/
127127   AM_RANGE(0x0800, 0x0800) AM_READ_PORT("P1")
128128   AM_RANGE(0x0801, 0x0801) AM_READ_PORT("P2")
129129   AM_RANGE(0x0802, 0x0802) AM_READ_PORT("DSW1")
src/mame/drivers/fuukifg3.c
r4470r4471
296296   AM_RANGE(0x600000, 0x601fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size   )   // Sprites
297297   AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(&paletteram32) // Palette
298298
299   AM_RANGE(0x800000, 0x800003) AM_WRITE(SMH_NOP) // Clear buffered inputs
300   AM_RANGE(0x810000, 0x810003) AM_WRITE(SMH_NOP) // Clear buffered inputs
299   AM_RANGE(0x800000, 0x800003) AM_WRITENOP // Clear buffered inputs
300   AM_RANGE(0x810000, 0x810003) AM_WRITENOP // Clear buffered inputs
301301
302302   AM_RANGE(0x8c0000, 0x8c001f) AM_WRITE(fuuki32_vregs_w) AM_BASE(&fuuki32_vregs)   // Video Registers
303303
r4470r4471
351351static ADDRESS_MAP_START( fuuki32_sound_io_map, ADDRESS_SPACE_IO, 8 )
352352   ADDRESS_MAP_GLOBAL_MASK(0xff)
353353   AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w)
354   AM_RANGE(0x30, 0x30) AM_WRITE(SMH_NOP)
354   AM_RANGE(0x30, 0x30) AM_WRITENOP
355355   AM_RANGE(0x40, 0x45) AM_DEVREADWRITE("ymf", ymf278b_r, ymf278b_w)
356356ADDRESS_MAP_END
357357
src/mame/drivers/dec8.c
r4470r4471
585585   AM_RANGE(0x1400, 0x17ff) AM_WRITE(dec8_pf0_data_w) AM_BASE(&dec8_pf0_data)
586586   AM_RANGE(0x1800, 0x1801) AM_WRITE(srdarwin_i8751_w)
587587   AM_RANGE(0x1802, 0x1802) AM_WRITE(i8751_reset_w)      /* Maybe.. */
588   AM_RANGE(0x1803, 0x1803) AM_WRITE(SMH_NOP)            /* NMI ack */
588   AM_RANGE(0x1803, 0x1803) AM_WRITENOP            /* NMI ack */
589589   AM_RANGE(0x1804, 0x1804) AM_WRITE(buffer_spriteram_w) /* DMA */
590590   AM_RANGE(0x1805, 0x1806) AM_WRITE(srdarwin_control_w) /* Scroll & Bank */
591591   AM_RANGE(0x2000, 0x2000) AM_WRITE(dec8_sound_w)       /* Sound */
r4470r4471
657657   AM_RANGE(0x3c80, 0x3c80) AM_WRITE(buffer_spriteram_w)   /* DMA */
658658   AM_RANGE(0x3d00, 0x3d00) AM_WRITE(dec8_bank_w)         /* BNKS */
659659   AM_RANGE(0x3d80, 0x3d80) AM_WRITE(oscar_sound_w)       /* SOUN */
660   AM_RANGE(0x3e00, 0x3e00) AM_WRITE(SMH_NOP)             /* COINCL */
660   AM_RANGE(0x3e00, 0x3e00) AM_WRITENOP             /* COINCL */
661661   AM_RANGE(0x3e80, 0x3e83) AM_WRITE(oscar_int_w)
662662   AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
663663ADDRESS_MAP_END
r4470r4471
891891   AM_RANGE(0x3000, 0x37ff) AM_READ(SMH_RAM)      /* Sprites */
892892   AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0")   /* Dip 1 */
893893   AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1")   /* Dip 2 */
894   AM_RANGE(0x3808, 0x3808) AM_READ(SMH_NOP)      /* ? */
894   AM_RANGE(0x3808, 0x3808) AM_READNOP      /* ? */
895895   AM_RANGE(0x380a, 0x380a) AM_READ_PORT("IN1")   /* Player 2 + VBL */
896896   AM_RANGE(0x380b, 0x380b) AM_READ_PORT("IN0")   /* Player 1 */
897897   AM_RANGE(0x383a, 0x383a) AM_READ(i8751_h_r)
src/mame/drivers/tbowl.c
r4470r4471
153153   AM_RANGE(0xf000, 0xf7ff) AM_READWRITE(SMH_BANK2, SMH_ROM)
154154   AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w)
155155   AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w)
156   AM_RANGE(0xfc01, 0xfc01) AM_WRITE(SMH_NOP) /* ? */
156   AM_RANGE(0xfc01, 0xfc01) AM_WRITENOP /* ? */
157157   AM_RANGE(0xfc02, 0xfc02) AM_WRITE(tbowl_trigger_nmi) /* ? */
158   AM_RANGE(0xfc03, 0xfc03) AM_WRITE(SMH_NOP) /* ? */
159   AM_RANGE(0xfc06, 0xfc06) AM_WRITE(SMH_NOP) /* ? */
158   AM_RANGE(0xfc03, 0xfc03) AM_WRITENOP /* ? */
159   AM_RANGE(0xfc06, 0xfc06) AM_WRITENOP /* ? */
160160ADDRESS_MAP_END
161161
162162/* Board A */
r4470r4471
207207   AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w)
208208   AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w)
209209   AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w)
210   AM_RANGE(0xe006, 0xe006) AM_WRITE(SMH_NOP)
211   AM_RANGE(0xe007, 0xe007) AM_WRITE(SMH_NOP)   /* NMI acknowledge */
210   AM_RANGE(0xe006, 0xe006) AM_WRITENOP
211   AM_RANGE(0xe007, 0xe007) AM_WRITENOP   /* NMI acknowledge */
212212   AM_RANGE(0xe010, 0xe010) AM_READ(soundlatch_r)
213213ADDRESS_MAP_END
214214
src/mame/drivers/battlane.c
r4470r4471
376376ROM_END
377377
378378
379GAME( 1986, battlane, 0,        battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 1)", 0 )
380GAME( 1986, battlan2, battlane, battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 2)", 0 )
381GAME( 1986, battlan3, battlane, battlane, battlane, 0, ROT90, "Technos (Taito license)", "Battle Lane! Vol. 5 (set 3)", 0 )
379GAME( 1986, battlane, 0,        battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 1)", 0 )
380GAME( 1986, battlan2, battlane, battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 2)", 0 )
381GAME( 1986, battlan3, battlane, battlane, battlane, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 3)", 0 )
src/mame/drivers/atarigt.c
r4470r4471
607607   AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
608608   AM_RANGE(0xe0a000, 0xe0a003) AM_WRITE(atarigen_scanline_int_ack32_w)
609609   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE(atarigen_video_int_ack32_w)
610   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITE(SMH_NOP)//watchdog_reset_w },
610   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITENOP//watchdog_reset_w },
611611   AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2")
612612   AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r)
613613   AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r)
src/mame/drivers/thepit.c
r4470r4471
175175   AM_RANGE(0xa000, 0xa000) AM_READWRITE(thepit_input_port_0_r, SMH_NOP) // Not hooked up according to the schematics
176176   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
177177   AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(interrupt_enable_w)
178   AM_RANGE(0xb001, 0xb001) AM_WRITE(SMH_NOP) // Unused, but initialized
179   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) // coin_lockout_w
178   AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized
179   AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w
180180   AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w)
181   AM_RANGE(0xb004, 0xb005) AM_WRITE(SMH_NOP) // Unused, but initialized
181   AM_RANGE(0xb004, 0xb005) AM_WRITENOP // Unused, but initialized
182182   AM_RANGE(0xb006, 0xb006) AM_WRITE(thepit_flip_screen_x_w)
183183   AM_RANGE(0xb007, 0xb007) AM_WRITE(thepit_flip_screen_y_w)
184184   AM_RANGE(0xb800, 0xb800) AM_READWRITE(watchdog_reset_r, soundlatch_w)
r4470r4471
196196   AM_RANGE(0xa000, 0xa000) AM_READ(thepit_input_port_0_r)
197197   AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
198198   AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(interrupt_enable_w)
199   AM_RANGE(0xb001, 0xb001) AM_WRITE(SMH_NOP) // Unused, but initialized
200   AM_RANGE(0xb002, 0xb002) AM_WRITE(SMH_NOP) // coin_lockout_w
199   AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized
200   AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w
201201   AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w)
202   AM_RANGE(0xb004, 0xb004) AM_WRITE(SMH_NOP) // Unused, but initialized
202   AM_RANGE(0xb004, 0xb004) AM_WRITENOP // Unused, but initialized
203203   AM_RANGE(0xb005, 0xb005) AM_WRITE(intrepid_graphics_bank_w)
204204   AM_RANGE(0xb006, 0xb006) AM_WRITE(thepit_flip_screen_x_w)
205205   AM_RANGE(0xb007, 0xb007) AM_WRITE(thepit_flip_screen_y_w)
src/mame/drivers/changela.c
r4470r4471
285285   AM_RANGE(0xc000, 0xc7ff) AM_WRITE(changela_mem_device_w)         /* River-Tree RAMs, slope ROM, tree ROM */
286286
287287   /* LS138 - U16 */
288   AM_RANGE(0xc800, 0xc800) AM_WRITE(SMH_NOP)            /* not connected */
288   AM_RANGE(0xc800, 0xc800) AM_WRITENOP            /* not connected */
289289   AM_RANGE(0xc900, 0xc900) AM_WRITE(changela_mem_device_select_w)   /* selects the memory device to be accessible at 0xc000-0xc7ff */
290290   AM_RANGE(0xca00, 0xca00) AM_WRITE(changela_slope_rom_addr_hi_w)
291291   AM_RANGE(0xcb00, 0xcb00) AM_WRITE(changela_slope_rom_addr_lo_w)
r4470r4471
296296   /* LS259 - U44 */
297297   AM_RANGE(0xd020, 0xd020) AM_WRITE(changela_collision_reset_0)
298298   AM_RANGE(0xd021, 0xd022) AM_WRITE(changela_coin_counter_w)
299//AM_RANGE(0xd023, 0xd023) AM_WRITE(SMH_NOP)
299//AM_RANGE(0xd023, 0xd023) AM_WRITENOP
300300   AM_RANGE(0xd024, 0xd024) AM_WRITE(mcu_PC0_w)
301301   AM_RANGE(0xd025, 0xd025) AM_WRITE(changela_collision_reset_1)
302   AM_RANGE(0xd026, 0xd026) AM_WRITE(SMH_NOP)
302   AM_RANGE(0xd026, 0xd026) AM_WRITENOP
303303
304304   AM_RANGE(0xd030, 0xd030) AM_WRITE(mcu_w)
305305   AM_RANGE(0xe000, 0xe000) AM_WRITE(watchdog_reset_w)      /* Watchdog */
src/mame/drivers/crimfght.c
r4470r4471
1717#include "video/konamiic.h"
1818#include "sound/2151intf.h"
1919#include "sound/k007232.h"
20#include "konamipt.h"
2021
21
2222/* prototypes */
2323static MACHINE_RESET( crimfght );
2424static KONAMI_SETLINES_CALLBACK( crimfght_banking );
r4470r4471
120120   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
121121   PORT_DIPSETTING(    0x00, "1 Coin/99 Credits" )
122122   PORT_DIPUNUSED_DIPLOC( 0xf0, 0xf0, "SW1:5,6,7,8" ) /* Manual says these are unused */
123/*  PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
124    PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
125    PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
126    PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
127    PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
128    PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
129    PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
130    PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
131    PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
132    PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
133    PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
134    PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
135    PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
136    PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
137    PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
138    PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
139    PORT_DIPSETTING(    0x00, "Invalid" ) */
140123
141124   PORT_START("DSW2")
142125   PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" ) /* Manual says these are unused */
r4470r4471
163146   PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
164147
165148   PORT_START("P1")
166   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
167   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
168   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
169   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
170   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
171   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
172   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
173   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
149   KONAMI8_B12_UNK(1)
174150
175151   PORT_START("P2")
176   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
177   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
178   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
179   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
180   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
181   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
182   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
183   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
152   KONAMI8_B12_UNK(2)
184153
185154   PORT_START("P3")
186   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
187   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
188   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
189   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
190   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
191   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
192   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
193   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
155   KONAMI8_B12_UNK(3)
194156
195157   PORT_START("P4")
196   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
197   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
198   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
199   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
200   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
201   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
202   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
203   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
158   KONAMI8_B12_UNK(1)
204159
205160   PORT_START("SYSTEM")
206161   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
r4470r4471
217172   PORT_INCLUDE( crimfght )
218173
219174   PORT_MODIFY("DSW1")
220   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:5,6,7,8")
221   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
222   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
223   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
224   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
225   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
226   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
227   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
228   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
229   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
230   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
231   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
232   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
233   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
234   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
235   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
236//  PORT_DIPSETTING(    0x00, "Invalid" )
175   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
176   /* "No Coin B" = coins produce sound, but no effect on coin counter */
237177
238178   PORT_MODIFY("DSW2")
239179   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
r4470r4471
243183   PORT_DIPSETTING(    0x00, "4" )
244184
245185   PORT_MODIFY("P1")
246   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
247   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
186   KONAMI8_B123_START(1)
248187
249188   PORT_MODIFY("P2")
250   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
251   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
189   KONAMI8_B123_START(2)
252190
253191   PORT_MODIFY("P3")
254192   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
src/mame/drivers/rabbit.c
r4470r4471
719719}
720720
721721static ADDRESS_MAP_START( rabbit_writemem, ADDRESS_SPACE_PROGRAM, 32 )
722   AM_RANGE(0x000000, 0x000003) AM_WRITE(SMH_NOP) // bug in code / emulation?
723   AM_RANGE(0x000010, 0x000013) AM_WRITE(SMH_NOP) // bug in code / emulation?
724   AM_RANGE(0x000024, 0x000027) AM_WRITE(SMH_NOP) // bug in code / emulation?
725   AM_RANGE(0x00719C, 0x00719F) AM_WRITE(SMH_NOP) // bug in code / emulation?
722   AM_RANGE(0x000000, 0x000003) AM_WRITENOP // bug in code / emulation?
723   AM_RANGE(0x000010, 0x000013) AM_WRITENOP // bug in code / emulation?
724   AM_RANGE(0x000024, 0x000027) AM_WRITENOP // bug in code / emulation?
725   AM_RANGE(0x00719C, 0x00719F) AM_WRITENOP // bug in code / emulation?
726726   AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
727727   AM_RANGE(0x200000, 0x200003) AM_WRITE(rabbit_eeprom_write)
728728   /* this lot are probably gfxchip/blitter etc. related */
src/mame/drivers/asuka.c
r4470r4471
332332   AM_RANGE(0x3b0000, 0x3b0001) AM_READ_PORT("DSWB")
333333   AM_RANGE(0x3c0000, 0x3c0001) AM_WRITE(watchdog_reset16_w)
334334   AM_RANGE(0x3d0000, 0x3d0001) AM_READNOP
335   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE(taitosound_port16_lsb_w)
336   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
335   AM_RANGE(0x3e0000, 0x3e0001) AM_WRITE8(taitosound_port_w, 0x00ff)
336   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
337337   AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(bonzeadv_cchip_ram_r, bonzeadv_cchip_ram_w)
338338   AM_RANGE(0x800802, 0x800803) AM_READWRITE(bonzeadv_cchip_ctrl_r, bonzeadv_cchip_ctrl_w)
339339   AM_RANGE(0x800c00, 0x800c01) AM_WRITE(bonzeadv_cchip_bank_w)
r4470r4471
348348   AM_RANGE(0x1076f0, 0x1076f1) AM_READNOP   /* Mofflott init does dummy reads here */
349349   AM_RANGE(0x200000, 0x20000f) AM_READWRITE(TC0110PCR_word_r, TC0110PCR_step1_word_w)
350350   AM_RANGE(0x3a0000, 0x3a0003) AM_WRITE(asuka_spritectrl_w)
351   AM_RANGE(0x3e0000, 0x3e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w)
352   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
351   AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
352   AM_RANGE(0x3e0002, 0x3e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
353353   AM_RANGE(0x400000, 0x40000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
354354   AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
355355   AM_RANGE(0xc10000, 0xc103ff) AM_WRITENOP   /* error in Asuka init code */
r4470r4471
360360static ADDRESS_MAP_START( cadash_map, ADDRESS_SPACE_PROGRAM, 16 )
361361   AM_RANGE(0x000000, 0x07ffff) AM_ROM
362362   AM_RANGE(0x080000, 0x080003) AM_WRITE(asuka_spritectrl_w)
363   AM_RANGE(0x0c0000, 0x0c0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w)
364   AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
363   AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
364   AM_RANGE(0x0c0002, 0x0c0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
365365   AM_RANGE(0x100000, 0x107fff) AM_RAM
366366   AM_RANGE(0x800000, 0x800fff) AM_RAM   /* network ram */
367367   AM_RANGE(0x900000, 0x90000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
r4470r4471
378378   AM_RANGE(0x300000, 0x30000f) AM_READWRITE(TC0220IOC_halfword_r, TC0220IOC_halfword_w)
379379   AM_RANGE(0x400000, 0x40000f) AM_READ(TC0220IOC_halfword_r)   /* service mode mirror */
380380   AM_RANGE(0x4a0000, 0x4a0003) AM_WRITE(asuka_spritectrl_w)
381   AM_RANGE(0x4e0000, 0x4e0001) AM_READWRITE(SMH_NOP, taitosound_port16_lsb_w)
382   AM_RANGE(0x4e0002, 0x4e0003) AM_READWRITE(taitosound_comm16_lsb_r, taitosound_comm16_lsb_w)
381   AM_RANGE(0x4e0000, 0x4e0001) AM_READNOP AM_WRITE8(taitosound_port_w, 0x00ff)
382   AM_RANGE(0x4e0002, 0x4e0003) AM_READWRITE8(taitosound_comm_r, taitosound_comm_w, 0x00ff)
383383   AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(PC090OJ_word_0_r, PC090OJ_word_0_w)   /* sprite ram */
384384   AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(TC0100SCN_word_0_w)   /* service mode mirror */
385385   AM_RANGE(0xd00000, 0xd0ffff) AM_READWRITE(TC0100SCN_word_0_r, TC0100SCN_word_0_w)   /* tilemaps */
src/mame/drivers/triplhnt.c
r4470r4471
134134}
135135
136136
137static ADDRESS_MAP_START( triplhnt_readmem, ADDRESS_SPACE_PROGRAM, 8 )
138   AM_RANGE(0x0000, 0x00ff) AM_READ(SMH_RAM) AM_MIRROR(0x300)
137static ADDRESS_MAP_START( triplhnt_map, ADDRESS_SPACE_PROGRAM, 8 )
138   ADDRESS_MAP_GLOBAL_MASK(0x7fff)
139   AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300)
140   AM_RANGE(0x0400, 0x04ff) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_playfield_ram)
141   AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_vpos_ram)
142   AM_RANGE(0x0810, 0x081f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_hpos_ram)
143   AM_RANGE(0x0820, 0x082f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_orga_ram)
144   AM_RANGE(0x0830, 0x083f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_code_ram)
139145   AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("0C00")
140146   AM_RANGE(0x0c08, 0x0c08) AM_READ_PORT("0C08")
141147   AM_RANGE(0x0c09, 0x0c09) AM_READ_PORT("0C09")
r4470r4471
143149   AM_RANGE(0x0c0b, 0x0c0b) AM_READ(triplhnt_input_port_4_r)
144150   AM_RANGE(0x0c10, 0x0c1f) AM_READ(triplhnt_da_latch_r)
145151   AM_RANGE(0x0c20, 0x0c2f) AM_READ(triplhnt_cmos_r)
146   AM_RANGE(0x0c30, 0x0c3f) AM_READ(triplhnt_misc_r)
152   AM_RANGE(0x0c30, 0x0c3f) AM_READWRITE(triplhnt_misc_r, triplhnt_misc_w)
147153   AM_RANGE(0x0c40, 0x0c40) AM_READ_PORT("0C40")
148154   AM_RANGE(0x0c48, 0x0c48) AM_READ_PORT("0C48")
149   AM_RANGE(0x7000, 0x7fff) AM_READ(SMH_ROM) /* program */
150   AM_RANGE(0xf800, 0xffff) AM_READ(SMH_ROM) /* program mirror */
155   AM_RANGE(0x7000, 0x7fff) AM_ROM /* program */
151156ADDRESS_MAP_END
152157
153static ADDRESS_MAP_START( triplhnt_writemem, ADDRESS_SPACE_PROGRAM, 8 )
154   AM_RANGE(0x0000, 0x00ff) AM_WRITE(SMH_RAM) AM_MIRROR(0x300)
155   AM_RANGE(0x0400, 0x04ff) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_playfield_ram)
156   AM_RANGE(0x0800, 0x080f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_vpos_ram)
157   AM_RANGE(0x0810, 0x081f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_hpos_ram)
158   AM_RANGE(0x0820, 0x082f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_orga_ram)
159   AM_RANGE(0x0830, 0x083f) AM_WRITE(SMH_RAM) AM_BASE(&triplhnt_code_ram)
160   AM_RANGE(0x0c30, 0x0c3f) AM_WRITE(triplhnt_misc_w)
161   AM_RANGE(0x7000, 0x7fff) AM_WRITE(SMH_ROM) /* program */
162   AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_ROM) /* program mirror */
163ADDRESS_MAP_END
164158
165
166159static INPUT_PORTS_START( triplhnt )
167160   PORT_START("0C00")   /* 0C00 */
168161   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
r4470r4471
320313
321314/* basic machine hardware */
322315   MDRV_CPU_ADD("maincpu", M6800, 800000)
323   MDRV_CPU_PROGRAM_MAP(triplhnt_readmem, triplhnt_writemem)
316   MDRV_CPU_PROGRAM_MAP(triplhnt_map, 0)
324317   MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
325318
326319   MDRV_NVRAM_HANDLER(generic_0fill)
r4470r4471
352345
353346
354347ROM_START( triplhnt )
355   ROM_REGION( 0x10000, "maincpu", 0 )
348   ROM_REGION( 0x8000, "maincpu", 0 )
356349   ROM_LOAD_NIB_HIGH( "8404.f1", 0x7000, 0x400, CRC(abc8acd5) SHA1(bcef2abc5829829a01aa21776c3deb2e1bf1d4ac) )
357350   ROM_LOAD_NIB_LOW ( "8408.f2", 0x7000, 0x400, CRC(77fcdd3f) SHA1(ce0196abb8d6510aa9a5308f8efd6442e94272c4) )
358351   ROM_LOAD_NIB_HIGH( "8403.e1", 0x7400, 0x400, CRC(8d756fa1) SHA1(48a74f710b130d9af0c866483d6fc4ecce4a3ac5) )
r4470r4471
360353   ROM_LOAD_NIB_HIGH( "8402.d1", 0x7800, 0x400, CRC(eb75c936) SHA1(48f9d4113a7ab8413a5aacd44b3506afc99d26ce) )
361354   ROM_LOAD_NIB_LOW ( "8406.d2", 0x7800, 0x400, CRC(e7ab1186) SHA1(7185fb837966bfb4aa70be3dd948d44f356b0452) )
362355   ROM_LOAD_NIB_HIGH( "8401.c1", 0x7C00, 0x400, CRC(7461b05e) SHA1(16573ae655c306a38ff0f29a3c3285d636907f38) )
363   ROM_RELOAD(                   0xFC00, 0x400 )
364356   ROM_LOAD_NIB_LOW ( "8405.c2", 0x7C00, 0x400, CRC(ba370b97) SHA1(5d799ce6ae56c315ff0abedea7ad9204bacc266b) )
365   ROM_RELOAD(                   0xFC00, 0x400 )
366357
367358   ROM_REGION( 0x1000, "gfx1", ROMREGION_DISPOSE )  /* sprites */
368359   ROM_LOAD( "8423.n1", 0x0000, 0x800, CRC(9937d0da) SHA1(abb906c2d9869b09be5172cc7639bb9cda38831b) )
src/mame/drivers/pooyan.c
r4470r4471
140140   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
141141   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
142142   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
143   PORT_DIPSETTING(    0x00, "Invalid" )
144   /* Invalid = both coin slots disabled */
143145
144146   PORT_START("DSW1")
145147   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
src/mame/drivers/backfire.c
r4470r4471
332332
333333   AM_RANGE(0x1a8000, 0x1a8003) AM_RAM AM_BASE(&backfire_left_priority)
334334   AM_RANGE(0x1ac000, 0x1ac003) AM_RAM AM_BASE(&backfire_right_priority)
335//  AM_RANGE(0x1b0000, 0x1b0003) AM_WRITE(SMH_NOP) // always 1b0000
335//  AM_RANGE(0x1b0000, 0x1b0003) AM_WRITENOP // always 1b0000
336336
337337   /* when set to pentometer in test mode */
338338//  AM_RANGE(0x1e4000, 0x1e4003) AM_READ(backfire_unknown_wheel_r)
src/mame/drivers/rollerg.c
r4470r4471
44
55driver by Nicola Salmoria
66
7
82009-03:
9Added dsw locations and verified factory settings based on Guru's notes
10
711***************************************************************************/
812
913#include "driver.h"
r4470r4471
99103   AM_RANGE(0x0020, 0x0020) AM_WRITE(watchdog_reset_w)
100104   AM_RANGE(0x0030, 0x0031) AM_DEVWRITE("konami", k053260_w)
101105   AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
102   AM_RANGE(0x0100, 0x010f) AM_WRITE(SMH_NOP)   /* 053252? */
106   AM_RANGE(0x0100, 0x010f) AM_WRITENOP   /* 053252? */
103107   AM_RANGE(0x0200, 0x020f) AM_WRITE(K051316_ctrl_0_w)
104108   AM_RANGE(0x0300, 0x030f) AM_WRITE(K053244_w)
105109   AM_RANGE(0x0800, 0x0fff) AM_WRITE(K051316_0_w)
r4470r4471
153157   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
154158
155159   PORT_START("DSW1")
156   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
160   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
157161   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
158162   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
159163   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
r4470r4471
170174   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
171175   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
172176   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
173   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
177   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
174178   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
175179   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
176180   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
r4470r4471
186190   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
187191   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
188192   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
189//  PORT_DIPSETTING(    0x00, "Disabled" )
193   PORT_DIPSETTING(    0x00, "No Credits" )
194   /* No Credits = both coin slots open, but no effect on coin counters */
190195
191196   PORT_START("DSW2")
192   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )
197   PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1,2")
193198   PORT_DIPSETTING(    0x03, "1" )
194199   PORT_DIPSETTING(    0x02, "2" )
195200   PORT_DIPSETTING(    0x01, "3" )
196201   PORT_DIPSETTING(    0x00, "5" )
197   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
198   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
199   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
200   PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" )
202   PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:3" )         /* Manual says it's unused */
203   PORT_DIPNAME( 0x18, 0x10, "Bonus Energy" )         PORT_DIPLOCATION("SW2:4,5")
201204   PORT_DIPSETTING(    0x00, "1/2 for Stage Winner" )
202205   PORT_DIPSETTING(    0x08, "1/4 for Stage Winner" )
203206   PORT_DIPSETTING(    0x10, "1/4 for Cycle Winner" )
204207   PORT_DIPSETTING(    0x18, DEF_STR( None ) )
205   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
208   PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:6,7")
206209   PORT_DIPSETTING(    0x60, DEF_STR( Easy ) )
207210   PORT_DIPSETTING(    0x40, DEF_STR( Normal ) )
208211   PORT_DIPSETTING(    0x20, DEF_STR( Hard ) )
209212   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
210   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
213   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SW2:8")
211214   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
212215   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
213216
214217   PORT_START("DSW3")
215   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
218   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )   PORT_DIPLOCATION("SW3:1")
216219   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
217220   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
218   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
219   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
220   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
221   PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
222   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
223   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
224   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
221   PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" )         /* Manual says it's unused */
222   PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3" )
223   PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )         /* Manual says it's unused */
225224   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
226225   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
227226   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
src/mame/drivers/wolfpack.c
r4470r4471
164164   AM_RANGE(0x4006, 0x4006) AM_WRITE(wolfpack_torpedo_v_w)
165165   AM_RANGE(0x5000, 0x5fff) AM_WRITE(watchdog_reset_w)
166166   AM_RANGE(0x7000, 0x7fff) AM_ROM
167   AM_RANGE(0x9000, 0x9000) AM_READ(SMH_NOP) /* debugger ROM location? */
167   AM_RANGE(0x9000, 0x9000) AM_READNOP /* debugger ROM location? */
168168   AM_RANGE(0xf000, 0xffff) AM_ROM
169169ADDRESS_MAP_END
170170
src/mame/drivers/tankbatt.c
r4470r4471
170170   AM_RANGE(0x0c0d, 0x0c0d) AM_WRITE(tankbatt_sh_expl_w)
171171   AM_RANGE(0x0c0f, 0x0c0f) AM_WRITE(tankbatt_demo_interrupt_enable_w)
172172   AM_RANGE(0x0c18, 0x0c1f) AM_READ(tankbatt_dsw_r)
173   AM_RANGE(0x0c18, 0x0c18) AM_WRITE(SMH_NOP)   /* watchdog ?? */
173   AM_RANGE(0x0c18, 0x0c18) AM_WRITENOP   /* watchdog ?? */
174174   AM_RANGE(0x0200, 0x0bff) AM_READ(SMH_RAM)
175175   AM_RANGE(0x0200, 0x07ff) AM_WRITE(SMH_RAM)
176176   AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM)
src/mame/drivers/wrally.c
r4470r4471
102102
103103static UINT16 *wrally_shareram;
104104
105static ADDRESS_MAP_START( wrally_readmem, ADDRESS_SPACE_PROGRAM, 16 )
105static ADDRESS_MAP_START( wrally_map, ADDRESS_SPACE_PROGRAM, 16 )
106106   AM_RANGE(0x000000, 0x0fffff) AM_ROM                                             /* ROM */
107107   AM_RANGE(0x100000, 0x103fff) AM_READWRITE(SMH_RAM, wrally_vram_w) AM_BASE(&wrally_videoram)   /* encrypted Video RAM */
108108   AM_RANGE(0x108000, 0x108007) AM_RAM AM_BASE(&wrally_vregs)                           /* Video Registers */
109   AM_RANGE(0x10800c, 0x10800d) AM_WRITE(SMH_NOP)                                    /* CLR INT Video */
109   AM_RANGE(0x10800c, 0x10800d) AM_WRITENOP                                    /* CLR INT Video */
110110   AM_RANGE(0x200000, 0x203fff) AM_READWRITE(SMH_RAM, paletteram16_xxxxBBBBRRRRGGGG_word_w) AM_BASE(&paletteram16)   /* Palette */
111111   AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&wrally_spriteram)                        /* Sprite RAM */
112112   AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW")
r4470r4471
117117   AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_r, okim6295_w, 0x00ff)   /* OKI6295 status/data register */
118118   AM_RANGE(0x70000a, 0x70001b) AM_WRITE(wrally_coin_lockout_w)                        /* Coin lockouts */
119119   AM_RANGE(0x70002a, 0x70003b) AM_WRITE(wrally_coin_counter_w)                        /* Coin counters */
120   AM_RANGE(0x70004a, 0x70004b) AM_WRITE(SMH_NOP)                                    /* Sound muting */
120   AM_RANGE(0x70004a, 0x70004b) AM_WRITENOP                                    /* Sound muting */
121121   AM_RANGE(0x70005a, 0x70005b) AM_WRITE(wrally_flipscreen_w)                           /* Flip screen */
122   AM_RANGE(0x70006a, 0x70007b) AM_WRITE(SMH_NOP)                                    /* ??? */
122   AM_RANGE(0x70006a, 0x70007b) AM_WRITENOP                                    /* ??? */
123123   AM_RANGE(0xfec000, 0xfeffff) AM_RAM AM_BASE(&wrally_shareram)                              /* Work RAM (shared with DS5002FP) */
124124ADDRESS_MAP_END
125125
r4470r4471
248248static MACHINE_DRIVER_START( wrally )
249249   /* basic machine hardware */
250250   MDRV_CPU_ADD("maincpu", M68000,XTAL_24MHz/2)      /* verified on pcb */
251   MDRV_CPU_PROGRAM_MAP(wrally_readmem, 0)
251   MDRV_CPU_PROGRAM_MAP(wrally_map, 0)
252252   MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
253253
254254   MDRV_CPU_ADD("mcu", DS5002FP, XTAL_24MHz/2)   /* verified on pcb */
src/mame/drivers/mosaic.c
r4470r4471
129129
130130static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
131131   ADDRESS_MAP_GLOBAL_MASK(0xff)
132   AM_RANGE(0x00, 0x3f) AM_WRITE(SMH_NOP)   /* Z180 internal registers */
133   AM_RANGE(0x30, 0x30) AM_READ(SMH_NOP)   /* Z180 internal registers */
132   AM_RANGE(0x00, 0x3f) AM_WRITENOP   /* Z180 internal registers */
133   AM_RANGE(0x30, 0x30) AM_READNOP   /* Z180 internal registers */
134134   AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
135135   AM_RANGE(0x72, 0x72) AM_READWRITE(protection_r, protection_w)
136136   AM_RANGE(0x74, 0x74) AM_READ_PORT("P1")
r4470r4471
139139
140140static ADDRESS_MAP_START( gfire2_io_map, ADDRESS_SPACE_IO, 8 )
141141   ADDRESS_MAP_GLOBAL_MASK(0xff)
142   AM_RANGE(0x00, 0x3f) AM_WRITE(SMH_NOP)   /* Z180 internal registers */
143   AM_RANGE(0x30, 0x30) AM_READ(SMH_NOP)   /* Z180 internal registers */
142   AM_RANGE(0x00, 0x3f) AM_WRITENOP   /* Z180 internal registers */
143   AM_RANGE(0x30, 0x30) AM_READNOP   /* Z180 internal registers */
144144   AM_RANGE(0x70, 0x71) AM_DEVREADWRITE("ym", ym2203_r, ym2203_w)
145145   AM_RANGE(0x72, 0x72) AM_READWRITE(gfire2_protection_r, gfire2_protection_w)
146146   AM_RANGE(0x74, 0x74) AM_READ_PORT("P1")
src/mame/drivers/ltcasino.c
r4470r4471
7272
7373   AM_RANGE(0xec20, 0xec20) AM_DEVREAD("ay", ay8910_r)
7474   AM_RANGE(0xec21, 0xec21) AM_READ_PORT("BUTTONS") //ltcasino -> pc: F3F3 (A in service) and F3FD (B in service)
75   AM_RANGE(0xec3e, 0xec3e) AM_READ(SMH_NOP) //not used
75   AM_RANGE(0xec3e, 0xec3e) AM_READNOP //not used
7676
7777   AM_RANGE(0xf000, 0xffff) AM_READ(SMH_ROM)
7878ADDRESS_MAP_END
src/mame/drivers/crospang.c
r4470r4471
7676ADDRESS_MAP_END
7777
7878static ADDRESS_MAP_START( crospang_writemem, ADDRESS_SPACE_PROGRAM, 16 )
79   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_NOP) // writes to rom quite often
80   AM_RANGE(0x100000, 0x100001) AM_WRITE(SMH_NOP)
79   AM_RANGE(0x000000, 0x0fffff) AM_WRITENOP // writes to rom quite often
80   AM_RANGE(0x100000, 0x100001) AM_WRITENOP
8181   AM_RANGE(0x100002, 0x100003) AM_WRITE(crospang_fg_scrolly_w)
8282   AM_RANGE(0x100004, 0x100005) AM_WRITE(crospang_bg_scrollx_w)
8383   AM_RANGE(0x100006, 0x100007) AM_WRITE(crospang_bg_scrolly_w)
8484   AM_RANGE(0x100008, 0x100009) AM_WRITE(crospang_fg_scrollx_w)
85   AM_RANGE(0x10000e, 0x10000f) AM_WRITE(SMH_NOP)
85   AM_RANGE(0x10000e, 0x10000f) AM_WRITENOP
8686   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(crospang_fg_videoram_w) AM_BASE(&crospang_fg_videoram)
8787   AM_RANGE(0x122000, 0x1227ff) AM_WRITE(crospang_bg_videoram_w) AM_BASE(&crospang_bg_videoram)
8888   AM_RANGE(0x200000, 0x2005ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
r4470r4471
104104ADDRESS_MAP_END
105105
106106static ADDRESS_MAP_START( bestri_writemem, ADDRESS_SPACE_PROGRAM, 16 )
107   AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_NOP) // writes to rom quite often
107   AM_RANGE(0x000000, 0x0fffff) AM_WRITENOP // writes to rom quite often
108108
109109   AM_RANGE(0x100004, 0x100005) AM_WRITE(bestri_fg_scrollx_w)
110110   AM_RANGE(0x100006, 0x100007) AM_WRITE(bestri_fg_scrolly_w)
r4470r4471
117117   AM_RANGE(0x200000, 0x2005ff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16)
118118   AM_RANGE(0x210000, 0x2107ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
119119   AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w)
120   AM_RANGE(0x270004, 0x270005) AM_WRITE(SMH_NOP)
120   AM_RANGE(0x270004, 0x270005) AM_WRITENOP
121121
122122
123123
src/mame/drivers/meijinsn.c
r4470r4471
165165   AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay", ay8910_address_data_w)
166166   AM_RANGE(0x01, 0x01) AM_DEVREAD("ay", ay8910_r)
167167   AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_clear_w)
168   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)
168   AM_RANGE(0x06, 0x06) AM_WRITENOP
169169ADDRESS_MAP_END
170170
171171static INPUT_PORTS_START( meijinsn )
src/mame/drivers/royalmah.c
r4470r4471
576576   AM_RANGE( 0x0000, 0x3fff ) AM_ROM
577577   AM_RANGE( 0x4100, 0x413f ) AM_RAM
578578   AM_RANGE( 0x6000, 0x607f ) AM_RAM
579   AM_RANGE( 0x7000, 0x7000 ) AM_READ(SMH_NOP)
580   AM_RANGE( 0x7200, 0x7200 ) AM_WRITE(SMH_NOP)
579   AM_RANGE( 0x7000, 0x7000 ) AM_READNOP
580   AM_RANGE( 0x7200, 0x7200 ) AM_WRITENOP
581581   AM_RANGE( 0xf000, 0xffff ) AM_RAM AM_SHARE(1)
582582ADDRESS_MAP_END
583583
src/mame/drivers/ajax.c
r4470r4471
1818#include "sound/2151intf.h"
1919#include "sound/k007232.h"
2020#include "includes/ajax.h"
21#include "konamipt.h"
2122
2223static WRITE8_DEVICE_HANDLER( k007232_extvol_w );
2324static WRITE8_HANDLER( sound_bank_w );
r4470r4471
6162
6263static INPUT_PORTS_START( ajax )
6364   PORT_START("DSW1")
64   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
65   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
66   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
67   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
68   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
69   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
70   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
71   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
72   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
73   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
74   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
75   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
76   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
77   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
78   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
79   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
80   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
81   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
82   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
83   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
84   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
85   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
86   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
87   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
88   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
89   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
90   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
91   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
92   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
93   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
94   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
95   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
96   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
97//  PORT_DIPSETTING(    0x00, "Coin Slot 2 Invalid" )
65   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
66   /* "No Coin B" = coins produce sound, but no effect on coin counter */
9867
9968   PORT_START("DSW2")
10069   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) )      PORT_DIPLOCATION("SW2:1,2")
r4470r4471
143112   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
144113
145114   PORT_START("P1")
146   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
147   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
148   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
149   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
150   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
151   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
152   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
153   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
115   KONAMI8_B123_UNK(1)
154116
155117   PORT_START("P2")
156   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
157   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
158   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
159   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
160   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
161   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
162   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
163   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
118   KONAMI8_B123_UNK(2)
164119INPUT_PORTS_END
165120
166121
r4470r4471
435390}
436391
437392
438
439393GAME( 1987, ajax,    0,    ajax, ajax, ajax, ROT90, "Konami", "Ajax", GAME_SUPPORTS_SAVE )
440394GAME( 1987, typhoon, ajax, ajax, ajax, ajax, ROT90, "Konami", "Typhoon", GAME_SUPPORTS_SAVE )
441395GAME( 1987, ajaxj,   ajax, ajax, ajax, ajax, ROT90, "Konami", "Ajax (Japan)", GAME_SUPPORTS_SAVE )
src/mame/drivers/funybubl.c
r4470r4471
113113   AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(funybubl_cpurombank_w)      // rom bank?
114114   AM_RANGE(0x02, 0x02) AM_READ_PORT("P2")
115115   AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW") AM_WRITE(funybubl_soundcommand_w)
116   AM_RANGE(0x06, 0x06) AM_READ(SMH_NOP)      /* Nothing is done with the data read */
117   AM_RANGE(0x06, 0x06) AM_WRITE(SMH_NOP)      /* Written directly after IO port 0 */
118   AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP)      /* Reset something on startup - Sound CPU ?? */
116   AM_RANGE(0x06, 0x06) AM_READNOP      /* Nothing is done with the data read */
117   AM_RANGE(0x06, 0x06) AM_WRITENOP      /* Written directly after IO port 0 */
118   AM_RANGE(0x07, 0x07) AM_WRITENOP      /* Reset something on startup - Sound CPU ?? */
119119ADDRESS_MAP_END
120120
121121/* Sound CPU */
src/mame/drivers/tutankhm.c
r4470r4471
2424#include "tutankhm.h"
2525#include "cpu/m6809/m6809.h"
2626#include "audio/timeplt.h"
27#include "konamipt.h"
2728
28
29
3029static UINT8 irq_toggle;
3130static UINT8 irq_enable;
3231
3332
34
3533/*************************************
3634 *
3735 *  Interrupts
r4470r4471
159157   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
160158
161159   PORT_START("IN0")
162   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
163   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
164   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
165   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
166   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
167   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
168   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
169   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
160   KONAMI8_SYSTEM_UNK
170161
171162   PORT_START("IN1")
172   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
173   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
174   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
175   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
176   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
177   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
178   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
179   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
163   KONAMI8_MONO_4WAY_B123_UNK
180164
181165   PORT_START("IN2")
182   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
183   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
184   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
185   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
186   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
187   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
188   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL
189   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
166   KONAMI8_COCKTAIL_4WAY_B123_UNK
190167
191168   PORT_START("DSW1")
192   PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )      PORT_DIPLOCATION("SW1:1,2,3,4")
193   PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
194   PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
195   PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
196   PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
197   PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
198   PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
199   PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
200   PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
201   PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
202   PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
203   PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
204   PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
205   PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
206   PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
207   PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
208   PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
209   PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )      PORT_DIPLOCATION("SW1:5,6,7,8")
210   PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
211   PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
212   PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
213   PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
214   PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
215   PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
216   PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
217   PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
218   PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
219   PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
220   PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
221   PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
222   PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
223   PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
224   PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
225   PORT_DIPSETTING(    0x00, "Disabled" )
226/* 0x00 not commented out since the game makes the usual sound if you insert the coin */
169   KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
170   /* "No Coin B" = coins produce sound, but no effect on coin counter */
227171INPUT_PORTS_END
228172
229173
src/mame/drivers/nmk16.c
r4470r4471
335335
336336static ADDRESS_MAP_START( vandyke_writemem, ADDRESS_SPACE_PROGRAM, 16 )
337337   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
338   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   /* IRQ enable? */
338   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   /* IRQ enable? */
339339   AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
340340   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w)
341341   AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
r4470r4471
361361
362362static ADDRESS_MAP_START( manybloc_writemem, ADDRESS_SPACE_PROGRAM, 16 )
363363   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
364   AM_RANGE(0x080010, 0x080011) AM_WRITE(SMH_NOP)         /* See notes at the top of the driver */
365   AM_RANGE(0x080012, 0x080013) AM_WRITE(SMH_NOP)         /* See notes at the top of the driver */
364   AM_RANGE(0x080010, 0x080011) AM_WRITENOP         /* See notes at the top of the driver */
365   AM_RANGE(0x080012, 0x080013) AM_WRITENOP         /* See notes at the top of the driver */
366366   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
367   AM_RANGE(0x08001c, 0x08001d) AM_WRITE(SMH_NOP)         /* See notes at the top of the driver */
367   AM_RANGE(0x08001c, 0x08001d) AM_WRITENOP         /* See notes at the top of the driver */
368368   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w)
369369   AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
370370   AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
r4470r4471
412412static ADDRESS_MAP_START( tharrier_writemem, ADDRESS_SPACE_PROGRAM, 16 )
413413   AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
414414   AM_RANGE(0x080010, 0x080011) AM_WRITE(tharrier_mcu_control_w)
415   AM_RANGE(0x080012, 0x080013) AM_WRITE(SMH_NOP)
415   AM_RANGE(0x080012, 0x080013) AM_WRITENOP
416416//  AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
417417//  AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
418418   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(soundlatch_word_w)
419419   AM_RANGE(0x088000, 0x0883ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
420420//  AM_RANGE(0x08c000, 0x08c007) AM_WRITE(nmk_scroll_w)
421421   AM_RANGE(0x090000, 0x093fff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
422   AM_RANGE(0x09c000, 0x09c7ff) AM_WRITE(SMH_NOP) /* Unused txvideoram area? */
422   AM_RANGE(0x09c000, 0x09c7ff) AM_WRITENOP /* Unused txvideoram area? */
423423   AM_RANGE(0x09d000, 0x09d7ff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram)
424424ADDRESS_MAP_END
425425
r4470r4471
433433   AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
434434   AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(NMK004_r, SMH_NOP)
435435   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
436   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   // frame number?
436   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   // frame number?
437437   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w)
438438   AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
439439   AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
440   AM_RANGE(0x08c002, 0x08c087) AM_WRITE(SMH_NOP)   // ??
440   AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP   // ??
441441   AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
442442   AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram)
443443   AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram)
r4470r4471
450450   AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
451451   AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP)
452452   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
453   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   // frame number?
453   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   // frame number?
454454   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(seibu_main_mustb_w)
455455   AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
456456   AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
457   AM_RANGE(0x08c002, 0x08c087) AM_WRITE(SMH_NOP)   // ??
457   AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP   // ??
458458   AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
459459   AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram)
460460   AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram)
r4470r4471
468468   AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
469469   AM_RANGE(0x08000e, 0x08000f) AM_READWRITE(SMH_NOP, SMH_NOP)
470470   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
471   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   // frame number?
471   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   // frame number?
472472   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w)
473473   AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
474474   AM_RANGE(0x08c000, 0x08c001) AM_WRITE(mustang_scroll_w)
475   AM_RANGE(0x08c002, 0x08c087) AM_WRITE(SMH_NOP)   // ??
475   AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP   // ??
476476   AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
477477   AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram)
478478   AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(&nmk16_mainram)
r4470r4471
922922
923923static ADDRESS_MAP_START( tdragon_readmem, ADDRESS_SPACE_PROGRAM, 16 )
924924   AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
925   AM_RANGE(0x044022, 0x044023) AM_READ(SMH_NOP)  /* No Idea */
925   AM_RANGE(0x044022, 0x044023) AM_READNOP  /* No Idea */
926926//  AM_RANGE(0x0b0000, 0x0b7fff) AM_READ(SMH_RAM) /* Work RAM */
927927//  AM_RANGE(0x0b8000, 0x0b8fff) AM_READ(SMH_RAM) /* Sprite RAM */
928928//  AM_RANGE(0x0b9000, 0x0bdfff) AM_READ(SMH_RAM) /* Work RAM */
r4470r4471
10301030static ADDRESS_MAP_START( strahl_writemem, ADDRESS_SPACE_PROGRAM, 16 )
10311031   AM_RANGE(0x00000, 0x3ffff) AM_WRITE(SMH_ROM)
10321032   AM_RANGE(0x80014, 0x80015) AM_WRITE(nmk_flipscreen_w)
1033   AM_RANGE(0x80016, 0x80017) AM_WRITE(SMH_NOP)   /* IRQ enable? */
1033   AM_RANGE(0x80016, 0x80017) AM_WRITENOP   /* IRQ enable? */
10341034   AM_RANGE(0x8001e, 0x8001f) AM_WRITE(NMK004_w)
10351035   AM_RANGE(0x84000, 0x84007) AM_WRITE(nmk_scroll_w)
10361036   AM_RANGE(0x88000, 0x88007) AM_WRITE(nmk_scroll_2_w)
r4470r4471
10561056static ADDRESS_MAP_START( macross_writemem, ADDRESS_SPACE_PROGRAM, 16 )
10571057   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
10581058   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
1059   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   /* IRQ enable? */
1059   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   /* IRQ enable? */
10601060   AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
10611061   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w)
10621062   AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
r4470r4471
10731073   AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2")
10741074   AM_RANGE(0x08000e, 0x08000f) AM_READ(NMK004_r)
10751075   AM_RANGE(0x080014, 0x080015) AM_WRITE(nmk_flipscreen_w)
1076   AM_RANGE(0x080016, 0x080017) AM_WRITE(SMH_NOP)   /* IRQ enable? */
1076   AM_RANGE(0x080016, 0x080017) AM_WRITENOP   /* IRQ enable? */
10771077   AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
10781078   AM_RANGE(0x08001e, 0x08001f) AM_WRITE(NMK004_w)
10791079   AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
r4470r4471
11071107   AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w)   /* to Z80 */
11081108   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
11091109   AM_RANGE(0x130000, 0x130007) AM_WRITE(nmk_scroll_w)
1110   AM_RANGE(0x130008, 0x1307ff) AM_WRITE(SMH_NOP)   /* 0 only? */
1110   AM_RANGE(0x130008, 0x1307ff) AM_WRITENOP   /* 0 only? */
11111111   AM_RANGE(0x140000, 0x14ffff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
11121112   AM_RANGE(0x170000, 0x170fff) AM_WRITE(nmk_txvideoram_w) AM_BASE(&nmk_txvideoram)
11131113   AM_RANGE(0x171000, 0x171fff) AM_WRITE(nmk_txvideoram_w)   /* mirror */
r4470r4471
11161116static ADDRESS_MAP_START( raphero_writemem, ADDRESS_SPACE_PROGRAM, 16 )
11171117   AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
11181118   AM_RANGE(0x100014, 0x100015) AM_WRITE(nmk_flipscreen_w)
1119   AM_RANGE(0x100016, 0x100017) AM_WRITE(SMH_NOP)   /* IRQ eanble? */
1119   AM_RANGE(0x100016, 0x100017) AM_WRITENOP   /* IRQ eanble? */
11201120   AM_RANGE(0x100018, 0x100019) AM_WRITE(nmk_tilebank_w)
11211121   AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w)   /* to sound cpu */
11221122   AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
r4470r4471
11621162static ADDRESS_MAP_START( macross2_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
11631163   AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
11641164   AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK1)   /* banked ROM */
1165   AM_RANGE(0xa000, 0xa000) AM_READ(SMH_NOP)   /* IRQ ack? watchdog? */
1165   AM_RANGE(0xa000, 0xa000) AM_READNOP   /* IRQ ack? watchdog? */
11661166   AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
11671167   AM_RANGE(0xf000, 0xf000) AM_READ(soundlatch_r)   /* from 68000 */
11681168ADDRESS_MAP_END
r4470r4471
12031203   AM_RANGE(0x084020, 0x08402f) AM_WRITE(NMK112_okibank_lsb_w)
12041204   AM_RANGE(0x088000, 0x0887ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
12051205   AM_RANGE(0x094000, 0x094001) AM_WRITE(nmk_tilebank_w)
1206   AM_RANGE(0x094002, 0x094003) AM_WRITE(SMH_NOP)   /* IRQ enable? */
1206   AM_RANGE(0x094002, 0x094003) AM_WRITENOP   /* IRQ enable? */
12071207   AM_RANGE(0x09c000, 0x09cfff) AM_WRITE(nmk_bgvideoram_w) AM_BASE(&nmk_bgvideoram)
12081208   AM_RANGE(0x09d000, 0x09dfff) AM_WRITE(nmk_bgvideoram_w)   /* mirror */
12091209   AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(&nmk16_mainram)
r4470r4471
47964796}
47974797
47984798static ADDRESS_MAP_START( afega_sound_cpu, ADDRESS_SPACE_PROGRAM, 8 )
4799   AM_RANGE(0x0003, 0x0003) AM_WRITE(SMH_NOP) // bug in sound prg?
4800   AM_RANGE(0x0004, 0x0004) AM_WRITE(SMH_NOP) // bug in sound prg?
4799   AM_RANGE(0x0003, 0x0003) AM_WRITENOP // bug in sound prg?
4800   AM_RANGE(0x0004, 0x0004) AM_WRITENOP // bug in sound prg?
48014801   AM_RANGE(0x0000, 0xefff) AM_ROM
48024802   AM_RANGE(0xf000, 0xf7ff) AM_RAM                           // RAM
48034803   AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r)               // From Main CPU
src/osd/windows/video.c
r4470r4471
450450   strcpy(dest, ".png");
451451
452452   // load the file
453   effect_bitmap = render_load_png(NULL, tempstr, NULL, NULL);
453   effect_bitmap = render_load_png(OPTION_ARTPATH, NULL, tempstr, NULL, NULL);
454454   if (effect_bitmap == NULL)
455455   {
456456      mame_printf_error("Unable to load PNG file '%s'\n", tempstr);
src/osd/windows/drawd3d.c
r4470r4471
506506
507507   // experimental: load a PNG to use for vector rendering; it is treated
508508   // as a brightness map
509   d3d->vector_bitmap = render_load_png(NULL, "vector.png", NULL, NULL);
509   d3d->vector_bitmap = render_load_png(OPTION_ARTPATH, NULL, "vector.png", NULL, NULL);
510510   if (d3d->vector_bitmap != NULL)
511511   {
512512      bitmap_fill(d3d->vector_bitmap, NULL, MAKE_ARGB(0xff,0xff,0xff,0xff));
513      d3d->vector_bitmap = render_load_png(NULL, "vector.png", d3d->vector_bitmap, NULL);
513      d3d->vector_bitmap = render_load_png(OPTION_ARTPATH, NULL, "vector.png", d3d->vector_bitmap, NULL);
514514   }
515515
516516   // configure the adapter for the mode we want
src/emu/cpu/m68000/m68kmake.c
r4470r4471
12381238   int ophandler_body_read = 0;
12391239
12401240   printf("\n\tMusashi v%s 68000, 68008, 68010, 68EC020, 68020, 68040 emulator\n", g_version);
1241   printf("\tCopyright Karl Stenerud (karl@mame.net)\n\n");
1241   printf("\tCopyright Karl Stenerud\n\n");
12421242
12431243   /* Check if output path and source for the input file are given */
12441244    if(argc > 1)
src/emu/cpu/z80/z80.c
r4470r4471
120120typedef struct _z80_state z80_state;
121121struct _z80_state
122122{
123   PAIR   prvpc,pc,sp,af,bc,de,hl,ix,iy,memptr;
124   PAIR   af2,bc2,de2,hl2;
125   UINT8   r,r2,iff1,iff2,halt,im,i;
126   UINT8   nmi_state;         /* nmi line state */
127   UINT8   nmi_pending;      /* nmi pending */
128   UINT8   irq_state;         /* irq line state */
129   UINT8   after_ei;         /* are we in the EI shadow? */
130   UINT32   ea;
123   PAIR         prvpc,pc,sp,af,bc,de,hl,ix,iy,memptr;
124   PAIR         af2,bc2,de2,hl2;
125   UINT8         r,r2,iff1,iff2,halt,im,i;
126   UINT8         nmi_state;         /* nmi line state */
127   UINT8         nmi_pending;      /* nmi pending */
128   UINT8         irq_state;         /* irq line state */
129   UINT8         after_ei;         /* are we in the EI shadow? */
130   UINT32         ea;
131131   cpu_irq_callback irq_callback;
132132   const device_config *device;
133133   const address_space *program;
134134   const address_space *io;
135   int      icount;
135   int            icount;
136136   z80_daisy_state *daisy;
137137   cpu_state_table state;
138   UINT8 rtemp;
138   UINT8          rtemp;
139   const UINT8 *   cc_op;
140   const UINT8 *   cc_cb;
141   const UINT8 *   cc_ed;
142   const UINT8 *   cc_xy;
143   const UINT8 *   cc_xycb;
144   const UINT8 *   cc_ex;
139145};
140146
141147INLINE z80_state *get_safe_token(const device_config *device)
r4470r4471
376382 6, 0, 0, 0, 7, 0, 0, 2, 6, 0, 0, 0, 7, 0, 0, 2,
377383 6, 0, 0, 0, 7, 0, 0, 2, 6, 0, 0, 0, 7, 0, 0, 2};
378384
379static const UINT8 *cc[6];
380#define Z80_TABLE_dd   Z80_TABLE_xy
381#define Z80_TABLE_fd   Z80_TABLE_xy
385#define cc_dd   cc_xy
386#define cc_fd   cc_xy
382387
383388static void take_interrupt(z80_state *z80);
384389static CPU_BURN( z80 );
r4470r4471
513518/***************************************************************
514519 * adjust cycle count by n T-states
515520 ***************************************************************/
516#define CC(Z,prefix,opcode)   do { (Z)->icount -= cc[Z80_TABLE_##prefix][opcode]; } while (0)
521#define CC(Z,prefix,opcode)   do { (Z)->icount -= z80->cc_##prefix[opcode]; } while (0)
517522
518523/***************************************************************
519524 * execute an opcode
r4470r4471
32843289      RM16(z80, irq_vector, &z80->pc);
32853290      LOG(("Z80 '%s' IM2 [$%04x] = $%04x\n", z80->device->tag, irq_vector, z80->PCD));
32863291      /* CALL opcode timing */
3287      z80->icount -= cc[Z80_TABLE_op][0xcd];
3292      z80->icount -= z80->cc_op[0xcd];
32883293   }
32893294   else
32903295   /* Interrupt mode 1. RST 38h */
r4470r4471
32943299      PUSH(z80, pc);
32953300      z80->PCD = 0x0038;
32963301      /* RST $38 + 'interrupt latency' cycles */
3297      z80->icount -= cc[Z80_TABLE_op][0xff] + cc[Z80_TABLE_ex][0xff];
3302      z80->icount -= z80->cc_op[0xff] + cc_ex[0xff];
32983303   }
32993304   else
33003305   {
r4470r4471
33083313            PUSH(z80, pc);
33093314            z80->PCD = irq_vector & 0xffff;
33103315             /* CALL $xxxx + 'interrupt latency' cycles */
3311            z80->icount -= cc[Z80_TABLE_op][0xcd] + cc[Z80_TABLE_ex][0xff];
3316            z80->icount -= z80->cc_op[0xcd] + z80->cc_ex[0xff];
33123317            break;
33133318         case 0xc30000:   /* jump */
33143319            z80->PCD = irq_vector & 0xffff;
33153320            /* JP $xxxx + 2 cycles */
3316            z80->icount -= cc[Z80_TABLE_op][0xc3] + cc[Z80_TABLE_ex][0xff];
3321            z80->icount -= z80->cc_op[0xc3] + z80->cc_ex[0xff];
33173322            break;
33183323         default:      /* rst (or other opcodes?) */
33193324            PUSH(z80, pc);
33203325            z80->PCD = irq_vector & 0x0038;
33213326            /* RST $xx + 2 cycles */
3322            z80->icount -= cc[Z80_TABLE_op][z80->PCD] + cc[Z80_TABLE_ex][z80->PCD];
3327            z80->icount -= z80->cc_op[z80->PCD] + z80->cc_ex[z80->PCD];
33233328            break;
33243329      }
33253330   }
r4470r4471
33343339   z80_state *z80 = get_safe_token(device);
33353340   int i, p;
33363341
3337   /* setup cycle tables */
3338   cc[Z80_TABLE_op] = cc_op;
3339   cc[Z80_TABLE_cb] = cc_cb;
3340   cc[Z80_TABLE_ed] = cc_ed;
3341   cc[Z80_TABLE_xy] = cc_xy;
3342   cc[Z80_TABLE_xycb] = cc_xycb;
3343   cc[Z80_TABLE_ex] = cc_ex;
3344
33453342   if( !SZHVC_add || !SZHVC_sub )
33463343   {
33473344      int oldval, newval, val;
r4470r4471
34653462   z80->state = state_table_template;
34663463   z80->state.baseptr = z80;
34673464   z80->state.subtypemask = 1;
3465
3466   /* setup cycle tables */
3467   z80->cc_op = cc_op;
3468   z80->cc_cb = cc_cb;
3469   z80->cc_ed = cc_ed;
3470   z80->cc_xy = cc_xy;
3471   z80->cc_xycb = cc_xycb;
3472   z80->cc_ex = cc_ex;
34683473}
34693474
34703475/****************************************************************************
r4470r4471
36303635   {
36313636      /* --- the following bits of info are set as 64-bit signed integers --- */
36323637      case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI:      set_irq_line(z80, INPUT_LINE_NMI, info->i); break;
3633      case CPUINFO_INT_INPUT_STATE + 0:               set_irq_line(z80, 0, info->i);      break;
3634
3635      /* --- the following bits of info are set as pointers to data or functions --- */
3636      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_op:   cc[Z80_TABLE_op] = (const UINT8 *)info->p;         break;
3637      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_cb:   cc[Z80_TABLE_cb] = (const UINT8 *)info->p;         break;
3638      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ed:   cc[Z80_TABLE_ed] = (const UINT8 *)info->p;         break;
3639      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xy:   cc[Z80_TABLE_xy] = (const UINT8 *)info->p;         break;
3640      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xycb:   cc[Z80_TABLE_xycb] = (const UINT8 *)info->p;      break;
3641      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex:   cc[Z80_TABLE_ex] = (const UINT8 *)info->p;         break;
3638      case CPUINFO_INT_INPUT_STATE + 0:               set_irq_line(z80, 0, info->i);            break;
36423639   }
36433640}
36443641
3642void z80_set_cycle_tables(const device_config *device, const UINT8 *op, const UINT8 *cb, const UINT8 *ed, const UINT8 *xy, const UINT8 *xycb, const UINT8 *ex)
3643{
3644   z80_state *z80 = get_safe_token(device);
36453645
3646   z80->cc_op = (op != NULL) ? op : cc_op;
3647   z80->cc_cb = (cb != NULL) ? cb : cc_cb;
3648   z80->cc_ed = (ed != NULL) ? ed : cc_ed;
3649   z80->cc_xy = (xy != NULL) ? xy : cc_xy;
3650   z80->cc_xycb = (xycb != NULL) ? xycb : cc_xycb;
3651   z80->cc_ex = (ex != NULL) ? ex : cc_ex;
3652}
36463653
3654
36473655/**************************************************************************
36483656 * Generic get_info
36493657 **************************************************************************/
r4470r4471
36893697      case CPUINFO_PTR_INSTRUCTION_COUNTER:         info->icount = &z80->icount;         break;
36903698      case CPUINFO_PTR_STATE_TABLE:               info->state_table = &z80->state;      break;
36913699
3692      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_op:   info->p = (void *)cc[Z80_TABLE_op];      break;
3693      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_cb:   info->p = (void *)cc[Z80_TABLE_cb];      break;
3694      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ed:   info->p = (void *)cc[Z80_TABLE_ed];      break;
3695      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xy:   info->p = (void *)cc[Z80_TABLE_xy];      break;
3696      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_xycb:   info->p = (void *)cc[Z80_TABLE_xycb];    break;
3697      case CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex:   info->p = (void *)cc[Z80_TABLE_ex];      break;
3698
36993700      /* --- the following bits of info are returned as NULL-terminated strings --- */
37003701      case CPUINFO_STR_NAME:                     strcpy(info->s, "Z80");               break;
37013702      case CPUINFO_STR_CORE_FAMILY:               strcpy(info->s, "Zilog Z80");         break;
src/emu/cpu/z80/z80.h
r4470r4471
1919   Z80_GENPCBASE = REG_GENPCBASE
2020};
2121
22enum
23{
24   Z80_TABLE_op,
25   Z80_TABLE_cb,
26   Z80_TABLE_ed,
27   Z80_TABLE_xy,
28   Z80_TABLE_xycb,
29   Z80_TABLE_ex   /* cycles counts for taken jr/jp/call and interrupt latency (rst opcodes) */
30};
31
32enum
33{
34   CPUINFO_PTR_Z80_CYCLE_TABLE = CPUINFO_PTR_CPU_SPECIFIC,
35   CPUINFO_PTR_Z80_CYCLE_TABLE_LAST = CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex
36};
37
38extern CPU_GET_INFO( z80 );
22CPU_GET_INFO( z80 );
3923#define CPU_Z80 CPU_GET_INFO_NAME( z80 )
4024
41extern CPU_DISASSEMBLE( z80 );
25CPU_DISASSEMBLE( z80 );
4226
27void z80_set_cycle_tables(const device_config *device, const UINT8 *op, const UINT8 *cb, const UINT8 *ed, const UINT8 *xy, const UINT8 *xycb, const UINT8 *ex);
28
4329#endif /* __Z80_H__ */
src/emu/cpu/tms32025/tms32025.c
r4470r4471
19951995
19961996   /**** If idling, update timer and/or exit execution, but test for irqs first */
19971997   if (cpustate->idle && cpustate->IFR && cpustate->icount > 0)
1998      cpustate->icount += process_IRQs(cpustate);
1998      cpustate->icount -= process_IRQs(cpustate);
19991999
20002000   while (cpustate->idle && cpustate->icount > 0)
20012001      process_timer(cpustate, cpustate->icount);
r4470r4471
20052005
20062006   while (cpustate->icount > 0)
20072007   {
2008      cpustate->tms32025_dec_cycles = (1*CLK);
2008     cpustate->tms32025_dec_cycles = 0;
20092009
20102010      if (cpustate->IFR) {   /* Check IRQ Flag Register for pending IRQs */
20112011         cpustate->tms32025_dec_cycles += process_IRQs(cpustate);
src/emu/video/rgbutil.c
r0r4471
1/***************************************************************************
2
3    rgbutil.c
4
5    Utility definitions for RGB manipulation. Allows RGB handling to be
6    performed in an abstracted fashion and optimized with SIMD.
7
8    Copyright Nicola Salmoria and the MAME Team.
9    Visit http://mamedev.org for licensing and usage restrictions.
10
11***************************************************************************/
12
13#include "driver.h"
14#include "eminline.h"
15#include "rgbutil.h"
16
17
18/***************************************************************************
19    SSE TABLES
20***************************************************************************/
21
22#if (defined(__SSE2__) && defined(PTR64))
23const struct _rgbsse_statics rgbsse_statics =
24{
25   { 0 },
26   {   0,   0,   0,   0,   0,   0,   0,   0 },
27   { 255, 255, 255, 255, 255, 255, 255, 255 },
28   {
29      {   1, 256,   1, 256,   1, 256,   1, 256 }, {   2, 255,   2, 255,   2, 255,   2, 255 },
30      {   3, 254,   3, 254,   3, 254,   3, 254 }, {   4, 253,   4, 253,   4, 253,   4, 253 },
31      {   5, 252,   5, 252,   5, 252,   5, 252 }, {   6, 251,   6, 251,   6, 251,   6, 251 },
32      {   7, 250,   7, 250,   7, 250,   7, 250 }, {   8, 249,   8, 249,   8, 249,   8, 249 },
33      {   9, 248,   9, 248,   9, 248,   9, 248 }, {  10, 247,  10, 247,  10, 247,  10, 247 },
34      {  11, 246,  11, 246,  11, 246,  11, 246 }, {  12, 245,  12, 245,  12, 245,  12, 245 },
35      {  13, 244,  13, 244,  13, 244,  13, 244 }, {  14, 243,  14, 243,  14, 243,  14, 243 },
36      {  15, 242,  15, 242,  15, 242,  15, 242 }, {  16, 241,  16, 241,  16, 241,  16, 241 },
37      {  17, 240,  17, 240,  17, 240,  17, 240 }, {  18, 239,  18, 239,  18, 239,  18, 239 },
38      {  19, 238,  19, 238,  19, 238,  19, 238 }, {  20, 237,  20, 237,  20, 237,  20, 237 },
39      {  21, 236,  21, 236,  21, 236,  21, 236 }, {  22, 235,  22, 235,  22, 235,  22, 235 },
40      {  23, 234,  23, 234,  23, 234,  23, 234 }, {  24, 233,  24, 233,  24, 233,  24, 233 },
41      {  25, 232,  25, 232,  25, 232,  25, 232 }, {  26, 231,  26, 231,  26, 231,  26, 231 },
42      {  27, 230,  27, 230,  27, 230,  27, 230 }, {  28, 229,  28, 229,  28, 229,  28, 229 },
43      {  29, 228,  29, 228,  29, 228,  29, 228 }, {  30, 227,  30, 227,  30, 227,  30, 227 },
44      {  31, 226,  31, 226,  31, 226,  31, 226 }, {  32, 225,  32, 225,  32, 225,  32, 225 },
45      {  33, 224,  33, 224,  33, 224,  33, 224 }, {  34, 223,  34, 223,  34, 223,  34, 223 },
46      {  35, 222,  35, 222,  35, 222,  35, 222 }, {  36, 221,  36, 221,  36, 221,  36, 221 },
47      {  37, 220,  37, 220,  37, 220,  37, 220 }, {  38, 219,  38, 219,  38, 219,  38, 219 },
48      {  39, 218,  39, 218,  39, 218,  39, 218 }, {  40, 217,  40, 217,  40, 217,  40, 217 },
49      {  41, 216,  41, 216,  41, 216,  41, 216 }, {  42, 215,  42, 215,  42, 215,  42, 215 },
50      {  43, 214,  43, 214,  43, 214,  43, 214 }, {  44, 213,  44, 213,  44, 213,  44, 213 },
51      {  45, 212,  45, 212,  45, 212,  45, 212 }, {  46, 211,  46, 211,  46, 211,  46, 211 },
52      {  47, 210,  47, 210,  47, 210,  47, 210 }, {  48, 209,  48, 209,  48, 209,  48, 209 },
53      {  49, 208,  49, 208,  49, 208,  49, 208 }, {  50, 207,  50, 207,  50, 207,  50, 207 },
54      {  51, 206,  51, 206,  51, 206,  51, 206 }, {  52, 205,  52, 205,  52, 205,  52, 205 },
55      {  53, 204,  53, 204,  53, 204,  53, 204 }, {  54, 203,  54, 203,  54, 203,  54, 203 },
56      {  55, 202,  55, 202,  55, 202,  55, 202 }, {  56, 201,  56, 201,  56, 201,  56, 201 },
57      {  57, 200,  57, 200,  57, 200,  57, 200 }, {  58, 199,  58, 199,  58, 199,  58, 199 },
58      {  59, 198,  59, 198,  59, 198,  59, 198 }, {  60, 197,  60, 197,  60, 197,  60, 197 },
59      {  61, 196,  61, 196,  61, 196,  61, 196 }, {  62, 195,  62, 195,  62, 195,  62, 195 },
60      {  63, 194,  63, 194,  63, 194,  63, 194 }, {  64, 193,  64, 193,  64, 193,  64, 193 },
61      {  65, 192,  65, 192,  65, 192,  65, 192 }, {  66, 191,  66, 191,  66, 191,  66, 191 },
62      {  67, 190,  67, 190,  67, 190,  67, 190 }, {  68, 189,  68, 189,  68, 189,  68, 189 },
63      {  69, 188,  69, 188,  69, 188,  69, 188 }, {  70, 187,  70, 187,  70, 187,  70, 187 },
64      {  71, 186,  71, 186,  71, 186,  71, 186 }, {  72, 185,  72, 185,  72, 185,  72, 185 },
65      {  73, 184,  73, 184,  73, 184,  73, 184 }, {  74, 183,  74, 183,  74, 183,  74, 183 },
66      {  75, 182,  75, 182,  75, 182,  75, 182 }, {  76, 181,  76, 181,  76, 181,  76, 181 },
67      {  77, 180,  77, 180,  77, 180,  77, 180 }, {  78, 179,  78, 179,  78, 179,  78, 179 },
68      {  79, 178,  79, 178,  79, 178,  79, 178 }, {  80, 177,  80, 177,  80, 177,  80, 177 },
69      {  81, 176,  81, 176,  81, 176,  81, 176 }, {  82, 175,  82, 175,  82, 175,  82, 175 },
70      {  83, 174,  83, 174,  83, 174,  83, 174 }, {  84, 173,  84, 173,  84, 173,  84, 173 },
71      {  85, 172,  85, 172,  85, 172,  85, 172 }, {  86, 171,  86, 171,  86, 171,  86, 171 },
72      {  87, 170,  87, 170,  87, 170,  87, 170 }, {  88, 169,  88, 169,  88, 169,  88, 169 },
73      {  89, 168,  89, 168,  89, 168,  89, 168 }, {  90, 167,  90, 167,  90, 167,  90, 167 },
74      {  91, 166,  91, 166,  91, 166,  91, 166 }, {  92, 165,  92, 165,  92, 165,  92, 165 },
75      {  93, 164,  93, 164,  93, 164,  93, 164 }, {  94, 163,  94, 163,  94, 163,  94, 163 },
76      {  95, 162,  95, 162,  95, 162,  95, 162 }, {  96, 161,  96, 161,  96, 161,  96, 161 },
77      {  97, 160,  97, 160,  97, 160,  97, 160 }, {  98, 159,  98, 159,  98, 159,  98, 159 },
78      {  99, 158,  99, 158,  99, 158,  99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 },
79      { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 },
80      { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 },
81      { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 },
82      { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 },
83      { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 },
84      { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 },
85      { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 },
86      { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 },
87      { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 },
88      { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 },
89      { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 },
90      { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 },
91      { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 },
92      { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 },
93      { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 },
94      { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 },
95      { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 },
96      { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 },
97      { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 },
98      { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 },
99      { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 },
100      { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 },
101      { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 },
102      { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 },
103      { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 },
104      { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 },
105      { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 },
106      { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 },
107      { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158,  99, 158,  99, 158,  99, 158,  99 },
108      { 159,  98, 159,  98, 159,  98, 159,  98 }, { 160,  97, 160,  97, 160,  97, 160,  97 },
109      { 161,  96, 161,  96, 161,  96, 161,  96 }, { 162,  95, 162,  95, 162,  95, 162,  95 },
110      { 163,  94, 163,  94, 163,  94, 163,  94 }, { 164,  93, 164,  93, 164,  93, 164,  93 },
111      { 165,  92, 165,  92, 165,  92, 165,  92 }, { 166,  91, 166,  91, 166,  91, 166,  91 },
112      { 167,  90, 167,  90, 167,  90, 167,  90 }, { 168,  89, 168,  89, 168,  89, 168,  89 },
113      { 169,  88, 169,  88, 169,  88, 169,  88 }, { 170,  87, 170,  87, 170,  87, 170,  87 },
114      { 171,  86, 171,  86, 171,  86, 171,  86 }, { 172,  85, 172,  85, 172,  85, 172,  85 },
115      { 173,  84, 173,  84, 173,  84, 173,  84 }, { 174,  83, 174,  83, 174,  83, 174,  83 },
116      { 175,  82, 175,  82, 175,  82, 175,  82 }, { 176,  81, 176,  81, 176,  81, 176,  81 },
117      { 177,  80, 177,  80, 177,  80, 177,  80 }, { 178,  79, 178,  79, 178,  79, 178,  79 },
118      { 179,  78, 179,  78, 179,  78, 179,  78 }, { 180,  77, 180,  77, 180,  77, 180,  77 },
119      { 181,  76, 181,  76, 181,  76, 181,  76 }, { 182,  75, 182,  75, 182,  75, 182,  75 },
120      { 183,  74, 183,  74, 183,  74, 183,  74 }, { 184,  73, 184,  73, 184,  73, 184,  73 },
121      { 185,  72, 185,  72, 185,  72, 185,  72 }, { 186,  71, 186,  71, 186,  71, 186,  71 },
122      { 187,  70, 187,  70, 187,  70, 187,  70 }, { 188,  69, 188,  69, 188,  69, 188,  69 },
123      { 189,  68, 189,  68, 189,  68, 189,  68 }, { 190,  67, 190,  67, 190,  67, 190,  67 },
124      { 191,  66, 191,  66, 191,  66, 191,  66 }, { 192,  65, 192,  65, 192,  65, 192,  65 },
125      { 193,  64, 193,  64, 193,  64, 193,  64 }, { 194,  63, 194,  63, 194,  63, 194,  63 },
126      { 195,  62, 195,  62, 195,  62, 195,  62 }, { 196,  61, 196,  61, 196,  61, 196,  61 },
127      { 197,  60, 197,  60, 197,  60, 197,  60 }, { 198,  59, 198,  59, 198,  59, 198,  59 },
128      { 199,  58, 199,  58, 199,  58, 199,  58 }, { 200,  57, 200,  57, 200,  57, 200,  57 },
129      { 201,  56, 201,  56, 201,  56, 201,  56 }, { 202,  55, 202,  55, 202,  55, 202,  55 },
130      { 203,  54, 203,  54, 203,  54, 203,  54 }, { 204,  53, 204,  53, 204,  53, 204,  53 },
131      { 205,  52, 205,  52, 205,  52, 205,  52 }, { 206,  51, 206,  51, 206,  51, 206,  51 },
132      { 207,  50, 207,  50, 207,  50, 207,  50 }, { 208,  49, 208,  49, 208,  49, 208,  49 },
133      { 209,  48, 209,  48, 209,  48, 209,  48 }, { 210,  47, 210,  47, 210,  47, 210,  47 },
134      { 211,  46, 211,  46, 211,  46, 211,  46 }, { 212,  45, 212,  45, 212,  45, 212,  45 },
135      { 213,  44, 213,  44, 213,  44, 213,  44 }, { 214,  43, 214,  43, 214,  43, 214,  43 },
136      { 215,  42, 215,  42, 215,  42, 215,  42 }, { 216,  41, 216,  41, 216,  41, 216,  41 },
137      { 217,  40, 217,  40, 217,  40, 217,  40 }, { 218,  39, 218,  39, 218,  39, 218,  39 },
138      { 219,  38, 219,  38, 219,  38, 219,  38 }, { 220,  37, 220,  37, 220,  37, 220,  37 },
139      { 221,  36, 221,  36, 221,  36, 221,  36 }, { 222,  35, 222,  35, 222,  35, 222,  35 },
140      { 223,  34, 223,  34, 223,  34, 223,  34 }, { 224,  33, 224,  33, 224,  33, 224,  33 },
141      { 225,  32, 225,  32, 225,  32, 225,  32 }, { 226,  31, 226,  31, 226,  31, 226,  31 },
142      { 227,  30, 227,  30, 227,  30, 227,  30 }, { 228,  29, 228,  29, 228,  29, 228,  29 },
143      { 229,  28, 229,  28, 229,  28, 229,  28 }, { 230,  27, 230,  27, 230,  27, 230,  27 },
144      { 231,  26, 231,  26, 231,  26, 231,  26 }, { 232,  25, 232,  25, 232,  25, 232,  25 },
145      { 233,  24, 233,  24, 233,  24, 233,  24 }, { 234,  23, 234,  23, 234,  23, 234,  23 },
146      { 235,  22, 235,  22, 235,  22, 235,  22 }, { 236,  21, 236,  21, 236,  21, 236,  21 },
147      { 237,  20, 237,  20, 237,  20, 237,  20 }, { 238,  19, 238,  19, 238,  19, 238,  19 },
148      { 239,  18, 239,  18, 239,  18, 239,  18 }, { 240,  17, 240,  17, 240,  17, 240,  17 },
149      { 241,  16, 241,  16, 241,  16, 241,  16 }, { 242,  15, 242,  15, 242,  15, 242,  15 },
150      { 243,  14, 243,  14, 243,  14, 243,  14 }, { 244,  13, 244,  13, 244,  13, 244,  13 },
151      { 245,  12, 245,  12, 245,  12, 245,  12 }, { 246,  11, 246,  11, 246,  11, 246,  11 },
152      { 247,  10, 247,  10, 247,  10, 247,  10 }, { 248,   9, 248,   9, 248,   9, 248,   9 },
153      { 249,   8, 249,   8, 249,   8, 249,   8 }, { 250,   7, 250,   7, 250,   7, 250,   7 },
154      { 251,   6, 251,   6, 251,   6, 251,   6 }, { 252,   5, 252,   5, 252,   5, 252,   5 },
155      { 253,   4, 253,   4, 253,   4, 253,   4 }, { 254,   3, 254,   3, 254,   3, 254,   3 },
156      { 255,   2, 255,   2, 255,   2, 255,   2 }, { 256,   1, 256,   1, 256,   1, 256,   1 }
157   }
158};
159#endif // defined(__SSE2__)
160
161
162
163/***************************************************************************
164    VMX/ALTIVEC TABLES
165***************************************************************************/
166
167#if defined(__ALTIVEC__)
168const struct _rgbvmx_statics rgbvmx_statics =
169{
170   { 255, 255, 255, 255, 255, 255, 255, 255 },
171   {
172      {   1, 256,   1, 256,   1, 256,   1, 256 }, {   2, 255,   2, 255,   2, 255,   2, 255 },
173      {   3, 254,   3, 254,   3, 254,   3, 254 }, {   4, 253,   4, 253,   4, 253,   4, 253 },
174      {   5, 252,   5, 252,   5, 252,   5, 252 }, {   6, 251,   6, 251,   6, 251,   6, 251 },
175      {   7, 250,   7, 250,   7, 250,   7, 250 }, {   8, 249,   8, 249,   8, 249,   8, 249 },
176      {   9, 248,   9, 248,   9, 248,   9, 248 }, {  10, 247,  10, 247,  10, 247,  10, 247 },
177      {  11, 246,  11, 246,  11, 246,  11, 246 }, {  12, 245,  12, 245,  12, 245,  12, 245 },
178      {  13, 244,  13, 244,  13, 244,  13, 244 }, {  14, 243,  14, 243,  14, 243,  14, 243 },
179      {  15, 242,  15, 242,  15, 242,  15, 242 }, {  16, 241,  16, 241,  16, 241,  16, 241 },
180      {  17, 240,  17, 240,  17, 240,  17, 240 }, {  18, 239,  18, 239,  18, 239,  18, 239 },
181      {  19, 238,  19, 238,  19, 238,  19, 238 }, {  20, 237,  20, 237,  20, 237,  20, 237 },
182      {  21, 236,  21, 236,  21, 236,  21, 236 }, {  22, 235,  22, 235,  22, 235,  22, 235 },
183      {  23, 234,  23, 234,  23, 234,  23, 234 }, {  24, 233,  24, 233,  24, 233,  24, 233 },
184      {  25, 232,  25, 232,  25, 232,  25, 232 }, {  26, 231,  26, 231,  26, 231,  26, 231 },
185      {  27, 230,  27, 230,  27, 230,  27, 230 }, {  28, 229,  28, 229,  28, 229,  28, 229 },
186      {  29, 228,  29, 228,  29, 228,  29, 228 }, {  30, 227,  30, 227,  30, 227,  30, 227 },
187      {  31, 226,  31, 226,  31, 226,  31, 226 }, {  32, 225,  32, 225,  32, 225,  32, 225 },
188      {  33, 224,  33, 224,  33, 224,  33, 224 }, {  34, 223,  34, 223,  34, 223,  34, 223 },
189      {  35, 222,  35, 222,  35, 222,  35, 222 }, {  36, 221,  36, 221,  36, 221,  36, 221 },
190      {  37, 220,  37, 220,  37, 220,  37, 220 }, {  38, 219,  38, 219,  38, 219,  38, 219 },
191      {  39, 218,  39, 218,  39, 218,  39, 218 }, {  40, 217,  40, 217,  40, 217,  40, 217 },
192      {  41, 216,  41, 216,  41, 216,  41, 216 }, {  42, 215,  42, 215,  42, 215,  42, 215 },
193      {  43, 214,  43, 214,  43, 214,  43, 214 }, {  44, 213,  44, 213,  44, 213,  44, 213 },
194      {  45, 212,  45, 212,  45, 212,  45, 212 }, {  46, 211,  46, 211,  46, 211,  46, 211 },
195      {  47, 210,  47, 210,  47, 210,  47, 210 }, {  48, 209,  48, 209,  48, 209,  48, 209 },
196      {  49, 208,  49, 208,  49, 208,  49, 208 }, {  50, 207,  50, 207,  50, 207,  50, 207 },
197      {  51, 206,  51, 206,  51, 206,  51, 206 }, {  52, 205,  52, 205,  52, 205,  52, 205 },
198      {  53, 204,  53, 204,  53, 204,  53, 204 }, {  54, 203,  54, 203,  54, 203,  54, 203 },
199      {  55, 202,  55, 202,  55, 202,  55, 202 }, {  56, 201,  56, 201,  56, 201,  56, 201 },
200      {  57, 200,  57, 200,  57, 200,  57, 200 }, {  58, 199,  58, 199,  58, 199,  58, 199 },
201      {  59, 198,  59, 198,  59, 198,  59, 198 }, {  60, 197,  60, 197,  60, 197,  60, 197 },
202      {  61, 196,  61, 196,  61, 196,  61, 196 }, {  62, 195,  62, 195,  62, 195,  62, 195 },
203      {  63, 194,  63, 194,  63, 194,  63, 194 }, {  64, 193,  64, 193,  64, 193,  64, 193 },
204      {  65, 192,  65, 192,  65, 192,  65, 192 }, {  66, 191,  66, 191,  66, 191,  66, 191 },
205      {  67, 190,  67, 190,  67, 190,  67, 190 }, {  68, 189,  68, 189,  68, 189,  68, 189 },
206      {  69, 188,  69, 188,  69, 188,  69, 188 }, {  70, 187,  70, 187,  70, 187,  70, 187 },
207      {  71, 186,  71, 186,  71, 186,  71, 186 }, {  72, 185,  72, 185,  72, 185,  72, 185 },
208      {  73, 184,  73, 184,  73, 184,  73, 184 }, {  74, 183,  74, 183,  74, 183,  74, 183 },
209      {  75, 182,  75, 182,  75, 182,  75, 182 }, {  76, 181,  76, 181,  76, 181,  76, 181 },
210      {  77, 180,  77, 180,  77, 180,  77, 180 }, {  78, 179,  78, 179,  78, 179,  78, 179 },
211      {  79, 178,  79, 178,  79, 178,  79, 178 }, {  80, 177,  80, 177,  80, 177,  80, 177 },
212      {  81, 176,  81, 176,  81, 176,  81, 176 }, {  82, 175,  82, 175,  82, 175,  82, 175 },
213      {  83, 174,  83, 174,  83, 174,  83, 174 }, {  84, 173,  84, 173,  84, 173,  84, 173 },
214      {  85, 172,  85, 172,  85, 172,  85, 172 }, {  86, 171,  86, 171,  86, 171,  86, 171 },
215      {  87, 170,  87, 170,  87, 170,  87, 170 }, {  88, 169,  88, 169,  88, 169,  88, 169 },
216      {  89, 168,  89, 168,  89, 168,  89, 168 }, {  90, 167,  90, 167,  90, 167,  90, 167 },
217      {  91, 166,  91, 166,  91, 166,  91, 166 }, {  92, 165,  92, 165,  92, 165,  92, 165 },
218      {  93, 164,  93, 164,  93, 164,  93, 164 }, {  94, 163,  94, 163,  94, 163,  94, 163 },
219      {  95, 162,  95, 162,  95, 162,  95, 162 }, {  96, 161,  96, 161,  96, 161,  96, 161 },
220      {  97, 160,  97, 160,  97, 160,  97, 160 }, {  98, 159,  98, 159,  98, 159,  98, 159 },
221      {  99, 158,  99, 158,  99, 158,  99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 },
222      { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 },
223      { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 },
224      { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 },
225      { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 },
226      { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 },
227      { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 },
228      { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 },
229      { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 },
230      { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 },
231      { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 },
232      { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 },
233      { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 },
234      { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 },
235      { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 },
236      { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 },
237      { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 },
238      { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 },
239      { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 },
240      { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 },
241      { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 },
242      { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 },
243      { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 },
244      { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 },
245      { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 },
246      { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 },
247      { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 },
248      { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 },
249      { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 },
250      { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158,  99, 158,  99, 158,  99, 158,  99 },
251      { 159,  98, 159,  98, 159,  98, 159,  98 }, { 160,  97, 160,  97, 160,  97, 160,  97 },
252      { 161,  96, 161,  96, 161,  96, 161,  96 }, { 162,  95, 162,  95, 162,  95, 162,  95 },
253      { 163,  94, 163,  94, 163,  94, 163,  94 }, { 164,  93, 164,  93, 164,  93, 164,  93 },
254      { 165,  92, 165,  92, 165,  92, 165,  92 }, { 166,  91, 166,  91, 166,  91, 166,  91 },
255      { 167,  90, 167,  90, 167,  90, 167,  90 }, { 168,  89, 168,  89, 168,  89, 168,  89 },
256      { 169,  88, 169,  88, 169,  88, 169,  88 }, { 170,  87, 170,  87, 170,  87, 170,  87 },
257      { 171,  86, 171,  86, 171,  86, 171,  86 }, { 172,  85, 172,  85, 172,  85, 172,  85 },
258      { 173,  84, 173,  84, 173,  84, 173,  84 }, { 174,  83, 174,  83, 174,  83, 174,  83 },
259      { 175,  82, 175,  82, 175,  82, 175,  82 }, { 176,  81, 176,  81, 176,  81, 176,  81 },
260      { 177,  80, 177,  80, 177,  80, 177,  80 }, { 178,  79, 178,  79, 178,  79, 178,  79 },
261      { 179,  78, 179,  78, 179,  78, 179,  78 }, { 180,  77, 180,  77, 180,  77, 180,  77 },
262      { 181,  76, 181,  76, 181,  76, 181,  76 }, { 182,  75, 182,  75, 182,  75, 182,  75 },
263      { 183,  74, 183,  74, 183,  74, 183,  74 }, { 184,  73, 184,  73, 184,  73, 184,  73 },
264      { 185,  72, 185,  72, 185,  72, 185,  72 }, { 186,  71, 186,  71, 186,  71, 186,  71 },
265      { 187,  70, 187,  70, 187,  70, 187,  70 }, { 188,  69, 188,  69, 188,  69, 188,  69 },
266      { 189,  68, 189,  68, 189,  68, 189,  68 }, { 190,  67, 190,  67, 190,  67, 190,  67 },
267      { 191,  66, 191,  66, 191,  66, 191,  66 }, { 192,  65, 192,  65, 192,  65, 192,  65 },
268      { 193,  64, 193,  64, 193,  64, 193,  64 }, { 194,  63, 194,  63, 194,  63, 194,  63 },
269      { 195,  62, 195,  62, 195,  62, 195,  62 }, { 196,  61, 196,  61, 196,  61, 196,  61 },
270      { 197,  60, 197,  60, 197,  60, 197,  60 }, { 198,  59, 198,  59, 198,  59, 198,  59 },
271      { 199,  58, 199,  58, 199,  58, 199,  58 }, { 200,  57, 200,  57, 200,  57, 200,  57 },
272      { 201,  56, 201,  56, 201,  56, 201,  56 }, { 202,  55, 202,  55, 202,  55, 202,  55 },
273      { 203,  54, 203,  54, 203,  54, 203,  54 }, { 204,  53, 204,  53, 204,  53, 204,  53 },
274      { 205,  52, 205,  52, 205,  52, 205,  52 }, { 206,  51, 206,  51, 206,  51, 206,  51 },
275      { 207,  50, 207,  50, 207,  50, 207,  50 }, { 208,  49, 208,  49, 208,  49, 208,  49 },
276      { 209,  48, 209,  48, 209,  48, 209,  48 }, { 210,  47, 210,  47, 210,  47, 210,  47 },
277      { 211,  46, 211,  46, 211,  46, 211,  46 }, { 212,  45, 212,  45, 212,  45, 212,  45 },
278      { 213,  44, 213,  44, 213,  44, 213,  44 }, { 214,  43, 214,  43, 214,  43, 214,  43 },
279      { 215,  42, 215,  42, 215,  42, 215,  42 }, { 216,  41, 216,  41, 216,  41, 216,  41 },
280      { 217,  40, 217,  40, 217,  40, 217,  40 }, { 218,  39, 218,  39, 218,  39, 218,  39 },
281      { 219,  38, 219,  38, 219,  38, 219,  38 }, { 220,  37, 220,  37, 220,  37, 220,  37 },
282      { 221,  36, 221,  36, 221,  36, 221,  36 }, { 222,  35, 222,  35, 222,  35, 222,  35 },
283      { 223,  34, 223,  34, 223,  34, 223,  34 }, { 224,  33, 224,  33, 224,  33, 224,  33 },
284      { 225,  32, 225,  32, 225,  32, 225,  32 }, { 226,  31, 226,  31, 226,  31, 226,  31 },
285      { 227,  30, 227,  30, 227,  30, 227,  30 }, { 228,  29, 228,  29, 228,  29, 228,  29 },
286      { 229,  28, 229,  28, 229,  28, 229,  28 }, { 230,  27, 230,  27, 230,  27, 230,  27 },
287      { 231,  26, 231,  26, 231,  26, 231,  26 }, { 232,  25, 232,  25, 232,  25, 232,  25 },
288      { 233,  24, 233,  24, 233,  24, 233,  24 }, { 234,  23, 234,  23, 234,  23, 234,  23 },
289      { 235,  22, 235,  22, 235,  22, 235,  22 }, { 236,  21, 236,  21, 236,  21, 236,  21 },
290      { 237,  20, 237,  20, 237,  20, 237,  20 }, { 238,  19, 238,  19, 238,  19, 238,  19 },
291      { 239,  18, 239,  18, 239,  18, 239,  18 }, { 240,  17, 240,  17, 240,  17, 240,  17 },
292      { 241,  16, 241,  16, 241,  16, 241,  16 }, { 242,  15, 242,  15, 242,  15, 242,  15 },
293      { 243,  14, 243,  14, 243,  14, 243,  14 }, { 244,  13, 244,  13, 244,  13, 244,  13 },
294      { 245,  12, 245,  12, 245,  12, 245,  12 }, { 246,  11, 246,  11, 246,  11, 246,  11 },
295      { 247,  10, 247,  10, 247,  10, 247,  10 }, { 248,   9, 248,   9, 248,   9, 248,   9 },
296      { 249,   8, 249,   8, 249,   8, 249,   8 }, { 250,   7, 250,   7, 250,   7, 250,   7 },
297      { 251,   6, 251,   6, 251,   6, 251,   6 }, { 252,   5, 252,   5, 252,   5, 252,   5 },
298      { 253,   4, 253,   4, 253,   4, 253,   4 }, { 254,   3, 254,   3, 254,   3, 254,   3 },
299      { 255,   2, 255,   2, 255,   2, 255,   2 }, { 256,   1, 256,   1, 256,   1, 256,   1 }
300   }
301};
302#endif // defined(__ALTIVEC__)
src/emu/video/rgbvmx.h
r4470r4471
211211    TABLES
212212***************************************************************************/
213213
214static const struct
214extern const struct _rgbvmx_statics
215215{
216216   rgbaint   maxbyte;
217217   rgbaint   scale_table[256];
218} rgbvmx_statics =
219{
220   { 255, 255, 255, 255, 255, 255, 255, 255 },
221   {
222      {   1, 256,   1, 256,   1, 256,   1, 256 }, {   2, 255,   2, 255,   2, 255,   2, 255 },
223      {   3, 254,   3, 254,   3, 254,   3, 254 }, {   4, 253,   4, 253,   4, 253,   4, 253 },
224      {   5, 252,   5, 252,   5, 252,   5, 252 }, {   6, 251,   6, 251,   6, 251,   6, 251 },
225      {   7, 250,   7, 250,   7, 250,   7, 250 }, {   8, 249,   8, 249,   8, 249,   8, 249 },
226      {   9, 248,   9, 248,   9, 248,   9, 248 }, {  10, 247,  10, 247,  10, 247,  10, 247 },
227      {  11, 246,  11, 246,  11, 246,  11, 246 }, {  12, 245,  12, 245,  12, 245,  12, 245 },
228      {  13, 244,  13, 244,  13, 244,  13, 244 }, {  14, 243,  14, 243,  14, 243,  14, 243 },
229      {  15, 242,  15, 242,  15, 242,  15, 242 }, {  16, 241,  16, 241,  16, 241,  16, 241 },
230      {  17, 240,  17, 240,  17, 240,  17, 240 }, {  18, 239,  18, 239,  18, 239,  18, 239 },
231      {  19, 238,  19, 238,  19, 238,  19, 238 }, {  20, 237,  20, 237,  20, 237,  20, 237 },
232      {  21, 236,  21, 236,  21, 236,  21, 236 }, {  22, 235,  22, 235,  22, 235,  22, 235 },
233      {  23, 234,  23, 234,  23, 234,  23, 234 }, {  24, 233,  24, 233,  24, 233,  24, 233 },
234      {  25, 232,  25, 232,  25, 232,  25, 232 }, {  26, 231,  26, 231,  26, 231,  26, 231 },
235      {  27, 230,  27, 230,  27, 230,  27, 230 }, {  28, 229,  28, 229,  28, 229,  28, 229 },
236      {  29, 228,  29, 228,  29, 228,  29, 228 }, {  30, 227,  30, 227,  30, 227,  30, 227 },
237      {  31, 226,  31, 226,  31, 226,  31, 226 }, {  32, 225,  32, 225,  32, 225,  32, 225 },
238      {  33, 224,  33, 224,  33, 224,  33, 224 }, {  34, 223,  34, 223,  34, 223,  34, 223 },
239      {  35, 222,  35, 222,  35, 222,  35, 222 }, {  36, 221,  36, 221,  36, 221,  36, 221 },
240      {  37, 220,  37, 220,  37, 220,  37, 220 }, {  38, 219,  38, 219,  38, 219,  38, 219 },
241      {  39, 218,  39, 218,  39, 218,  39, 218 }, {  40, 217,  40, 217,  40, 217,  40, 217 },
242      {  41, 216,  41, 216,  41, 216,  41, 216 }, {  42, 215,  42, 215,  42, 215,  42, 215 },
243      {  43, 214,  43, 214,  43, 214,  43, 214 }, {  44, 213,  44, 213,  44, 213,  44, 213 },
244      {  45, 212,  45, 212,  45, 212,  45, 212 }, {  46, 211,  46, 211,  46, 211,  46, 211 },
245      {  47, 210,  47, 210,  47, 210,  47, 210 }, {  48, 209,  48, 209,  48, 209,  48, 209 },
246      {  49, 208,  49, 208,  49, 208,  49, 208 }, {  50, 207,  50, 207,  50, 207,  50, 207 },
247      {  51, 206,  51, 206,  51, 206,  51, 206 }, {  52, 205,  52, 205,  52, 205,  52, 205 },
248      {  53, 204,  53, 204,  53, 204,  53, 204 }, {  54, 203,  54, 203,  54, 203,  54, 203 },
249      {  55, 202,  55, 202,  55, 202,  55, 202 }, {  56, 201,  56, 201,  56, 201,  56, 201 },
250      {  57, 200,  57, 200,  57, 200,  57, 200 }, {  58, 199,  58, 199,  58, 199,  58, 199 },
251      {  59, 198,  59, 198,  59, 198,  59, 198 }, {  60, 197,  60, 197,  60, 197,  60, 197 },
252      {  61, 196,  61, 196,  61, 196,  61, 196 }, {  62, 195,  62, 195,  62, 195,  62, 195 },
253      {  63, 194,  63, 194,  63, 194,  63, 194 }, {  64, 193,  64, 193,  64, 193,  64, 193 },
254      {  65, 192,  65, 192,  65, 192,  65, 192 }, {  66, 191,  66, 191,  66, 191,  66, 191 },
255      {  67, 190,  67, 190,  67, 190,  67, 190 }, {  68, 189,  68, 189,  68, 189,  68, 189 },
256      {  69, 188,  69, 188,  69, 188,  69, 188 }, {  70, 187,  70, 187,  70, 187,  70, 187 },
257      {  71, 186,  71, 186,  71, 186,  71, 186 }, {  72, 185,  72, 185,  72, 185,  72, 185 },
258      {  73, 184,  73, 184,  73, 184,  73, 184 }, {  74, 183,  74, 183,  74, 183,  74, 183 },
259      {  75, 182,  75, 182,  75, 182,  75, 182 }, {  76, 181,  76, 181,  76, 181,  76, 181 },
260      {  77, 180,  77, 180,  77, 180,  77, 180 }, {  78, 179,  78, 179,  78, 179,  78, 179 },
261      {  79, 178,  79, 178,  79, 178,  79, 178 }, {  80, 177,  80, 177,  80, 177,  80, 177 },
262      {  81, 176,  81, 176,  81, 176,  81, 176 }, {  82, 175,  82, 175,  82, 175,  82, 175 },
263      {  83, 174,  83, 174,  83, 174,  83, 174 }, {  84, 173,  84, 173,  84, 173,  84, 173 },
264      {  85, 172,  85, 172,  85, 172,  85, 172 }, {  86, 171,  86, 171,  86, 171,  86, 171 },
265      {  87, 170,  87, 170,  87, 170,  87, 170 }, {  88, 169,  88, 169,  88, 169,  88, 169 },
266      {  89, 168,  89, 168,  89, 168,  89, 168 }, {  90, 167,  90, 167,  90, 167,  90, 167 },
267      {  91, 166,  91, 166,  91, 166,  91, 166 }, {  92, 165,  92, 165,  92, 165,  92, 165 },
268      {  93, 164,  93, 164,  93, 164,  93, 164 }, {  94, 163,  94, 163,  94, 163,  94, 163 },
269      {  95, 162,  95, 162,  95, 162,  95, 162 }, {  96, 161,  96, 161,  96, 161,  96, 161 },
270      {  97, 160,  97, 160,  97, 160,  97, 160 }, {  98, 159,  98, 159,  98, 159,  98, 159 },
271      {  99, 158,  99, 158,  99, 158,  99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 },
272      { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 },
273      { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 },
274      { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 },
275      { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 },
276      { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 },
277      { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 },
278      { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 },
279      { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 },
280      { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 },
281      { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 },
282      { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 },
283      { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 },
284      { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 },
285      { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 },
286      { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 },
287      { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 },
288      { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 },
289      { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 },
290      { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 },
291      { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 },
292      { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 },
293      { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 },
294      { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 },
295      { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 },
296      { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 },
297      { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 },
298      { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 },
299      { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 },
300      { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158,  99, 158,  99, 158,  99, 158,  99 },
301      { 159,  98, 159,  98, 159,  98, 159,  98 }, { 160,  97, 160,  97, 160,  97, 160,  97 },
302      { 161,  96, 161,  96, 161,  96, 161,  96 }, { 162,  95, 162,  95, 162,  95, 162,  95 },
303      { 163,  94, 163,  94, 163,  94, 163,  94 }, { 164,  93, 164,  93, 164,  93, 164,  93 },
304      { 165,  92, 165,  92, 165,  92, 165,  92 }, { 166,  91, 166,  91, 166,  91, 166,  91 },
305      { 167,  90, 167,  90, 167,  90, 167,  90 }, { 168,  89, 168,  89, 168,  89, 168,  89 },
306      { 169,  88, 169,  88, 169,  88, 169,  88 }, { 170,  87, 170,  87, 170,  87, 170,  87 },
307      { 171,  86, 171,  86, 171,  86, 171,  86 }, { 172,  85, 172,  85, 172,  85, 172,  85 },
308      { 173,  84, 173,  84, 173,  84, 173,  84 }, { 174,  83, 174,  83, 174,  83, 174,  83 },
309      { 175,  82, 175,  82, 175,  82, 175,  82 }, { 176,  81, 176,  81, 176,  81, 176,  81 },
310      { 177,  80, 177,  80, 177,  80, 177,  80 }, { 178,  79, 178,  79, 178,  79, 178,  79 },
311      { 179,  78, 179,  78, 179,  78, 179,  78 }, { 180,  77, 180,  77, 180,  77, 180,  77 },
312      { 181,  76, 181,  76, 181,  76, 181,  76 }, { 182,  75, 182,  75, 182,  75, 182,  75 },
313      { 183,  74, 183,  74, 183,  74, 183,  74 }, { 184,  73, 184,  73, 184,  73, 184,  73 },
314      { 185,  72, 185,  72, 185,  72, 185,  72 }, { 186,  71, 186,  71, 186,  71, 186,  71 },
315      { 187,  70, 187,  70, 187,  70, 187,  70 }, { 188,  69, 188,  69, 188,  69, 188,  69 },
316      { 189,  68, 189,  68, 189,  68, 189,  68 }, { 190,  67, 190,  67, 190,  67, 190,  67 },
317      { 191,  66, 191,  66, 191,  66, 191,  66 }, { 192,  65, 192,  65, 192,  65, 192,  65 },
318      { 193,  64, 193,  64, 193,  64, 193,  64 }, { 194,  63, 194,  63, 194,  63, 194,  63 },
319      { 195,  62, 195,  62, 195,  62, 195,  62 }, { 196,  61, 196,  61, 196,  61, 196,  61 },
320      { 197,  60, 197,  60, 197,  60, 197,  60 }, { 198,  59, 198,  59, 198,  59, 198,  59 },
321      { 199,  58, 199,  58, 199,  58, 199,  58 }, { 200,  57, 200,  57, 200,  57, 200,  57 },
322      { 201,  56, 201,  56, 201,  56, 201,  56 }, { 202,  55, 202,  55, 202,  55, 202,  55 },
323      { 203,  54, 203,  54, 203,  54, 203,  54 }, { 204,  53, 204,  53, 204,  53, 204,  53 },
324      { 205,  52, 205,  52, 205,  52, 205,  52 }, { 206,  51, 206,  51, 206,  51, 206,  51 },
325      { 207,  50, 207,  50, 207,  50, 207,  50 }, { 208,  49, 208,  49, 208,  49, 208,  49 },
326      { 209,  48, 209,  48, 209,  48, 209,  48 }, { 210,  47, 210,  47, 210,  47, 210,  47 },
327      { 211,  46, 211,  46, 211,  46, 211,  46 }, { 212,  45, 212,  45, 212,  45, 212,  45 },
328      { 213,  44, 213,  44, 213,  44, 213,  44 }, { 214,  43, 214,  43, 214,  43, 214,  43 },
329      { 215,  42, 215,  42, 215,  42, 215,  42 }, { 216,  41, 216,  41, 216,  41, 216,  41 },
330      { 217,  40, 217,  40, 217,  40, 217,  40 }, { 218,  39, 218,  39, 218,  39, 218,  39 },
331      { 219,  38, 219,  38, 219,  38, 219,  38 }, { 220,  37, 220,  37, 220,  37, 220,  37 },
332      { 221,  36, 221,  36, 221,  36, 221,  36 }, { 222,  35, 222,  35, 222,  35, 222,  35 },
333      { 223,  34, 223,  34, 223,  34, 223,  34 }, { 224,  33, 224,  33, 224,  33, 224,  33 },
334      { 225,  32, 225,  32, 225,  32, 225,  32 }, { 226,  31, 226,  31, 226,  31, 226,  31 },
335      { 227,  30, 227,  30, 227,  30, 227,  30 }, { 228,  29, 228,  29, 228,  29, 228,  29 },
336      { 229,  28, 229,  28, 229,  28, 229,  28 }, { 230,  27, 230,  27, 230,  27, 230,  27 },
337      { 231,  26, 231,  26, 231,  26, 231,  26 }, { 232,  25, 232,  25, 232,  25, 232,  25 },
338      { 233,  24, 233,  24, 233,  24, 233,  24 }, { 234,  23, 234,  23, 234,  23, 234,  23 },
339      { 235,  22, 235,  22, 235,  22, 235,  22 }, { 236,  21, 236,  21, 236,  21, 236,  21 },
340      { 237,  20, 237,  20, 237,  20, 237,  20 }, { 238,  19, 238,  19, 238,  19, 238,  19 },
341      { 239,  18, 239,  18, 239,  18, 239,  18 }, { 240,  17, 240,  17, 240,  17, 240,  17 },
342      { 241,  16, 241,  16, 241,  16, 241,  16 }, { 242,  15, 242,  15, 242,  15, 242,  15 },
343      { 243,  14, 243,  14, 243,  14, 243,  14 }, { 244,  13, 244,  13, 244,  13, 244,  13 },
344      { 245,  12, 245,  12, 245,  12, 245,  12 }, { 246,  11, 246,  11, 246,  11, 246,  11 },
345      { 247,  10, 247,  10, 247,  10, 247,  10 }, { 248,   9, 248,   9, 248,   9, 248,   9 },
346      { 249,   8, 249,   8, 249,   8, 249,   8 }, { 250,   7, 250,   7, 250,   7, 250,   7 },
347      { 251,   6, 251,   6, 251,   6, 251,   6 }, { 252,   5, 252,   5, 252,   5, 252,   5 },
348      { 253,   4, 253,   4, 253,   4, 253,   4 }, { 254,   3, 254,   3, 254,   3, 254,   3 },
349      { 255,   2, 255,   2, 255,   2, 255,   2 }, { 256,   1, 256,   1, 256,   1, 256,   1 }
350   }
351};
218} rgbvmx_statics;
352219
353220
354221
src/emu/video/rgbsse.h
r4470r4471
199199    TABLES
200200***************************************************************************/
201201
202static const struct
202extern const struct _rgbsse_statics
203203{
204204   __m128   dummy_for_alignment;
205205   INT16   zero[8];
206206   INT16   maxbyte[8];
207207   INT16   scale_table[256][8];
208} rgbsse_statics =
209{
210   { 0 },
211   {   0,   0,   0,   0,   0,   0,   0,   0 },
212   { 255, 255, 255, 255, 255, 255, 255, 255 },
213   {
214      {   1, 256,   1, 256,   1, 256,   1, 256 }, {   2, 255,   2, 255,   2, 255,   2, 255 },
215      {   3, 254,   3, 254,   3, 254,   3, 254 }, {   4, 253,   4, 253,   4, 253,   4, 253 },
216      {   5, 252,   5, 252,   5, 252,   5, 252 }, {   6, 251,   6, 251,   6, 251,   6, 251 },
217      {   7, 250,   7, 250,   7, 250,   7, 250 }, {   8, 249,   8, 249,   8, 249,   8, 249 },
218      {   9, 248,   9, 248,   9, 248,   9, 248 }, {  10, 247,  10, 247,  10, 247,  10, 247 },
219      {  11, 246,  11, 246,  11, 246,  11, 246 }, {  12, 245,  12, 245,  12, 245,  12, 245 },
220      {  13, 244,  13, 244,  13, 244,  13, 244 }, {  14, 243,  14, 243,  14, 243,  14, 243 },
221      {  15, 242,  15, 242,  15, 242,  15, 242 }, {  16, 241,  16, 241,  16, 241,  16, 241 },
222      {  17, 240,  17, 240,  17, 240,  17, 240 }, {  18, 239,  18, 239,  18, 239,  18, 239 },
223      {  19, 238,  19, 238,  19, 238,  19, 238 }, {  20, 237,  20, 237,  20, 237,  20, 237 },
224      {  21, 236,  21, 236,  21, 236,  21, 236 }, {  22, 235,  22, 235,  22, 235,  22, 235 },
225      {  23, 234,  23, 234,  23, 234,  23, 234 }, {  24, 233,  24, 233,  24, 233,  24, 233 },
226      {  25, 232,  25, 232,  25, 232,  25, 232 }, {  26, 231,  26, 231,  26, 231,  26, 231 },
227      {  27, 230,  27, 230,  27, 230,  27, 230 }, {  28, 229,  28, 229,  28, 229,  28, 229 },
228      {  29, 228,  29, 228,  29, 228,  29, 228 }, {  30, 227,  30, 227,  30, 227,  30, 227 },
229      {  31, 226,  31, 226,  31, 226,  31, 226 }, {  32, 225,  32, 225,  32, 225,  32, 225 },
230      {  33, 224,  33, 224,  33, 224,  33, 224 }, {  34, 223,  34, 223,  34, 223,  34, 223 },
231      {  35, 222,  35, 222,  35, 222,  35, 222 }, {  36, 221,  36, 221,  36, 221,  36, 221 },
232      {  37, 220,  37, 220,  37, 220,  37, 220 }, {  38, 219,  38, 219,  38, 219,  38, 219 },
233      {  39, 218,  39, 218,  39, 218,  39, 218 }, {  40, 217,  40, 217,  40, 217,  40, 217 },
234      {  41, 216,  41, 216,  41, 216,  41, 216 }, {  42, 215,  42, 215,  42, 215,  42, 215 },
235      {  43, 214,  43, 214,  43, 214,  43, 214 }, {  44, 213,  44, 213,  44, 213,  44, 213 },
236      {  45, 212,  45, 212,  45, 212,  45, 212 }, {  46, 211,  46, 211,  46, 211,  46, 211 },
237      {  47, 210,  47, 210,  47, 210,  47, 210 }, {  48, 209,  48, 209,  48, 209,  48, 209 },
238      {  49, 208,  49, 208,  49, 208,  49, 208 }, {  50, 207,  50, 207,  50, 207,  50, 207 },
239      {  51, 206,  51, 206,  51, 206,  51, 206 }, {  52, 205,  52, 205,  52, 205,  52, 205 },
240      {  53, 204,  53, 204,  53, 204,  53, 204 }, {  54, 203,  54, 203,  54, 203,  54, 203 },
241      {  55, 202,  55, 202,  55, 202,  55, 202 }, {  56, 201,  56, 201,  56, 201,  56, 201 },
242      {  57, 200,  57, 200,  57, 200,  57, 200 }, {  58, 199,  58, 199,  58, 199,  58, 199 },
243      {  59, 198,  59, 198,  59, 198,  59, 198 }, {  60, 197,  60, 197,  60, 197,  60, 197 },
244      {  61, 196,  61, 196,  61, 196,  61, 196 }, {  62, 195,  62, 195,  62, 195,  62, 195 },
245      {  63, 194,  63, 194,  63, 194,  63, 194 }, {  64, 193,  64, 193,  64, 193,  64, 193 },
246      {  65, 192,  65, 192,  65, 192,  65, 192 }, {  66, 191,  66, 191,  66, 191,  66, 191 },
247      {  67, 190,  67, 190,  67, 190,  67, 190 }, {  68, 189,  68, 189,  68, 189,  68, 189 },
248      {  69, 188,  69, 188,  69, 188,  69, 188 }, {  70, 187,  70, 187,  70, 187,  70, 187 },
249      {  71, 186,  71, 186,  71, 186,  71, 186 }, {  72, 185,  72, 185,  72, 185,  72, 185 },
250      {  73, 184,  73, 184,  73, 184,  73, 184 }, {  74, 183,  74, 183,  74, 183,  74, 183 },
251      {  75, 182,  75, 182,  75, 182,  75, 182 }, {  76, 181,  76, 181,  76, 181,  76, 181 },
252      {  77, 180,  77, 180,  77, 180,  77, 180 }, {  78, 179,  78, 179,  78, 179,  78, 179 },
253      {  79, 178,  79, 178,  79, 178,  79, 178 }, {  80, 177,  80, 177,  80, 177,  80, 177 },
254      {  81, 176,  81, 176,  81, 176,  81, 176 }, {  82, 175,  82, 175,  82, 175,  82, 175 },
255      {  83, 174,  83, 174,  83, 174,  83, 174 }, {  84, 173,  84, 173,  84, 173,  84, 173 },
256      {  85, 172,  85, 172,  85, 172,  85, 172 }, {  86, 171,  86, 171,  86, 171,  86, 171 },
257      {  87, 170,  87, 170,  87, 170,  87, 170 }, {  88, 169,  88, 169,  88, 169,  88, 169 },
258      {  89, 168,  89, 168,  89, 168,  89, 168 }, {  90, 167,  90, 167,  90, 167,  90, 167 },
259      {  91, 166,  91, 166,  91, 166,  91, 166 }, {  92, 165,  92, 165,  92, 165,  92, 165 },
260      {  93, 164,  93, 164,  93, 164,  93, 164 }, {  94, 163,  94, 163,  94, 163,  94, 163 },
261      {  95, 162,  95, 162,  95, 162,  95, 162 }, {  96, 161,  96, 161,  96, 161,  96, 161 },
262      {  97, 160,  97, 160,  97, 160,  97, 160 }, {  98, 159,  98, 159,  98, 159,  98, 159 },
263      {  99, 158,  99, 158,  99, 158,  99, 158 }, { 100, 157, 100, 157, 100, 157, 100, 157 },
264      { 101, 156, 101, 156, 101, 156, 101, 156 }, { 102, 155, 102, 155, 102, 155, 102, 155 },
265      { 103, 154, 103, 154, 103, 154, 103, 154 }, { 104, 153, 104, 153, 104, 153, 104, 153 },
266      { 105, 152, 105, 152, 105, 152, 105, 152 }, { 106, 151, 106, 151, 106, 151, 106, 151 },
267      { 107, 150, 107, 150, 107, 150, 107, 150 }, { 108, 149, 108, 149, 108, 149, 108, 149 },
268      { 109, 148, 109, 148, 109, 148, 109, 148 }, { 110, 147, 110, 147, 110, 147, 110, 147 },
269      { 111, 146, 111, 146, 111, 146, 111, 146 }, { 112, 145, 112, 145, 112, 145, 112, 145 },
270      { 113, 144, 113, 144, 113, 144, 113, 144 }, { 114, 143, 114, 143, 114, 143, 114, 143 },
271      { 115, 142, 115, 142, 115, 142, 115, 142 }, { 116, 141, 116, 141, 116, 141, 116, 141 },
272      { 117, 140, 117, 140, 117, 140, 117, 140 }, { 118, 139, 118, 139, 118, 139, 118, 139 },
273      { 119, 138, 119, 138, 119, 138, 119, 138 }, { 120, 137, 120, 137, 120, 137, 120, 137 },
274      { 121, 136, 121, 136, 121, 136, 121, 136 }, { 122, 135, 122, 135, 122, 135, 122, 135 },
275      { 123, 134, 123, 134, 123, 134, 123, 134 }, { 124, 133, 124, 133, 124, 133, 124, 133 },
276      { 125, 132, 125, 132, 125, 132, 125, 132 }, { 126, 131, 126, 131, 126, 131, 126, 131 },
277      { 127, 130, 127, 130, 127, 130, 127, 130 }, { 128, 129, 128, 129, 128, 129, 128, 129 },
278      { 129, 128, 129, 128, 129, 128, 129, 128 }, { 130, 127, 130, 127, 130, 127, 130, 127 },
279      { 131, 126, 131, 126, 131, 126, 131, 126 }, { 132, 125, 132, 125, 132, 125, 132, 125 },
280      { 133, 124, 133, 124, 133, 124, 133, 124 }, { 134, 123, 134, 123, 134, 123, 134, 123 },
281      { 135, 122, 135, 122, 135, 122, 135, 122 }, { 136, 121, 136, 121, 136, 121, 136, 121 },
282      { 137, 120, 137, 120, 137, 120, 137, 120 }, { 138, 119, 138, 119, 138, 119, 138, 119 },
283      { 139, 118, 139, 118, 139, 118, 139, 118 }, { 140, 117, 140, 117, 140, 117, 140, 117 },
284      { 141, 116, 141, 116, 141, 116, 141, 116 }, { 142, 115, 142, 115, 142, 115, 142, 115 },
285      { 143, 114, 143, 114, 143, 114, 143, 114 }, { 144, 113, 144, 113, 144, 113, 144, 113 },
286      { 145, 112, 145, 112, 145, 112, 145, 112 }, { 146, 111, 146, 111, 146, 111, 146, 111 },
287      { 147, 110, 147, 110, 147, 110, 147, 110 }, { 148, 109, 148, 109, 148, 109, 148, 109 },
288      { 149, 108, 149, 108, 149, 108, 149, 108 }, { 150, 107, 150, 107, 150, 107, 150, 107 },
289      { 151, 106, 151, 106, 151, 106, 151, 106 }, { 152, 105, 152, 105, 152, 105, 152, 105 },
290      { 153, 104, 153, 104, 153, 104, 153, 104 }, { 154, 103, 154, 103, 154, 103, 154, 103 },
291      { 155, 102, 155, 102, 155, 102, 155, 102 }, { 156, 101, 156, 101, 156, 101, 156, 101 },
292      { 157, 100, 157, 100, 157, 100, 157, 100 }, { 158,  99, 158,  99, 158,  99, 158,  99 },
293      { 159,  98, 159,  98, 159,  98, 159,  98 }, { 160,  97, 160,  97, 160,  97, 160,  97 },
294      { 161,  96, 161,  96, 161,  96, 161,  96 }, { 162,  95, 162,  95, 162,  95, 162,  95 },
295      { 163,  94, 163,  94, 163,  94, 163,  94 }, { 164,  93, 164,  93, 164,  93, 164,  93 },
296      { 165,  92, 165,  92, 165,  92, 165,  92 }, { 166,  91, 166,  91, 166,  91, 166,  91 },
297      { 167,  90, 167,  90, 167,  90, 167,  90 }, { 168,  89, 168,  89, 168,  89, 168,  89 },
298      { 169,  88, 169,  88, 169,  88, 169,  88 }, { 170,  87, 170,  87, 170,  87, 170,  87 },
299      { 171,  86, 171,  86, 171,  86, 171,  86 }, { 172,  85, 172,  85, 172,  85, 172,  85 },
300      { 173,  84, 173,  84, 173,  84, 173,  84 }, { 174,  83, 174,  83, 174,  83, 174,  83 },
301      { 175,  82, 175,  82, 175,  82, 175,  82 }, { 176,  81, 176,  81, 176,  81, 176,  81 },
302      { 177,  80, 177,  80, 177,  80, 177,  80 }, { 178,  79, 178,  79, 178,  79, 178,  79 },
303      { 179,  78, 179,  78, 179,  78, 179,  78 }, { 180,  77, 180,  77, 180,  77, 180,  77 },
304      { 181,  76, 181,  76, 181,  76, 181,  76 }, { 182,  75, 182,  75, 182,  75, 182,  75 },
305      { 183,  74, 183,  74, 183,  74, 183,  74 }, { 184,  73, 184,  73, 184,  73, 184,  73 },
306      { 185,  72, 185,  72, 185,  72, 185,  72 }, { 186,  71, 186,  71, 186,  71, 186,  71 },
307      { 187,  70, 187,  70, 187,  70, 187,  70 }, { 188,  69, 188,  69, 188,  69, 188,  69 },
308      { 189,  68, 189,  68, 189,  68, 189,  68 }, { 190,  67, 190,  67, 190,  67, 190,  67 },
309      { 191,  66, 191,  66, 191,  66, 191,  66 }, { 192,  65, 192,  65, 192,  65, 192,  65 },
310      { 193,  64, 193,  64, 193,  64, 193,  64 }, { 194,  63, 194,  63, 194,  63, 194,  63 },
311      { 195,  62, 195,  62, 195,  62, 195,  62 }, { 196,  61, 196,  61, 196,  61, 196,  61 },
312      { 197,  60, 197,  60, 197,  60, 197,  60 }, { 198,  59, 198,  59, 198,  59, 198,  59 },
313      { 199,  58, 199,  58, 199,  58, 199,  58 }, { 200,  57, 200,  57, 200,  57, 200,  57 },
314      { 201,  56, 201,  56, 201,  56, 201,  56 }, { 202,  55, 202,  55, 202,  55, 202,  55 },
315      { 203,  54, 203,  54, 203,  54, 203,  54 }, { 204,  53, 204,  53, 204,  53, 204,  53 },
316      { 205,  52, 205,  52, 205,  52, 205,  52 }, { 206,  51, 206,  51, 206,  51, 206,  51 },
317      { 207,  50, 207,  50, 207,  50, 207,  50 }, { 208,  49, 208,  49, 208,  49, 208,  49 },
318      { 209,  48, 209,  48, 209,  48, 209,  48 }, { 210,  47, 210,  47, 210,  47, 210,  47 },
319      { 211,  46, 211,  46, 211,  46, 211,  46 }, { 212,  45, 212,  45, 212,  45, 212,  45 },
320      { 213,  44, 213,  44, 213,  44, 213,  44 }, { 214,  43, 214,  43, 214,  43, 214,  43 },
321      { 215,  42, 215,  42, 215,  42, 215,  42 }, { 216,  41, 216,  41, 216,  41, 216,  41 },
322      { 217,  40, 217,  40, 217,  40, 217,  40 }, { 218,  39, 218,  39, 218,  39, 218,  39 },
323      { 219,  38, 219,  38, 219,  38, 219,  38 }, { 220,  37, 220,  37, 220,  37, 220,  37 },
324      { 221,  36, 221,  36, 221,  36, 221,  36 }, { 222,  35, 222,  35, 222,  35, 222,  35 },
325      { 223,  34, 223,  34, 223,  34, 223,  34 }, { 224,  33, 224,  33, 224,  33, 224,  33 },
326      { 225,  32, 225,  32, 225,  32, 225,  32 }, { 226,  31, 226,  31, 226,  31, 226,  31 },
327      { 227,  30, 227,  30, 227,  30, 227,  30 }, { 228,  29, 228,  29, 228,  29, 228,  29 },
328      { 229,  28, 229,  28, 229,  28, 229,  28 }, { 230,  27, 230,  27, 230,  27, 230,  27 },
329      { 231,  26, 231,  26, 231,  26, 231,  26 }, { 232,  25, 232,  25, 232,  25, 232,  25 },
330      { 233,  24, 233,  24, 233,  24, 233,  24 }, { 234,  23, 234,  23, 234,  23, 234,  23 },
331      { 235,  22, 235,  22, 235,  22, 235,  22 }, { 236,  21, 236,  21, 236,  21, 236,  21 },
332      { 237,  20, 237,  20, 237,  20, 237,  20 }, { 238,  19, 238,  19, 238,  19, 238,  19 },
333      { 239,  18, 239,  18, 239,  18, 239,  18 }, { 240,  17, 240,  17, 240,  17, 240,  17 },
334      { 241,  16, 241,  16, 241,  16, 241,  16 }, { 242,  15, 242,  15, 242,  15, 242,  15 },
335      { 243,  14, 243,  14, 243,  14, 243,  14 }, { 244,  13, 244,  13, 244,  13, 244,  13 },
336      { 245,  12, 245,  12, 245,  12, 245,  12 }, { 246,  11, 246,  11, 246,  11, 246,  11 },
337      { 247,  10, 247,  10, 247,  10, 247,  10 }, { 248,   9, 248,   9, 248,   9, 248,   9 },
338      { 249,   8, 249,   8, 249,   8, 249,   8 }, { 250,   7, 250,   7, 250,   7, 250,   7 },
339      { 251,   6, 251,   6, 251,   6, 251,   6 }, { 252,   5, 252,   5, 252,   5, 252,   5 },
340      { 253,   4, 253,   4, 253,   4, 253,   4 }, { 254,   3, 254,   3, 254,   3, 254,   3 },
341      { 255,   2, 255,   2, 255,   2, 255,   2 }, { 256,   1, 256,   1, 256,   1, 256,   1 }
342   }
343};
208} rgbsse_statics;
344209
345210
346211
src/emu/emuopts.c
r4470r4471
4343   { "inipath",                     ".;ini",     0,                 "path to ini files" },
4444   { "fontpath",                    ".",         0,                 "path to font files" },
4545   { "cheatpath",                   "cheat",     0,                 "path to cheat files" },
46   { "crsshairpath",                "crsshair",  0,                 "path to crosshair files" },
4647
4748   /* output directory options */
4849   { NULL,                          NULL,        OPTION_HEADER,     "CORE OUTPUT DIRECTORY OPTIONS" },
src/emu/emuopts.h
r4470r4471
4545#define OPTION_INIPATH            "inipath"
4646#define OPTION_FONTPATH            "fontpath"
4747#define OPTION_CHEATPATH         "cheatpath"
48#define OPTION_CRSSHAIRPATH         "crsshairpath"
4849
4950/* core directory options */
5051#define OPTION_CFG_DIRECTORY      "cfg_directory"
src/emu/uimenu.c
r4470r4471
8585   VIDEO_ITEM_VIEW
8686};
8787
88enum
89{
90   CROSSHAIR_ITEM_VIS = 0,
91   CROSSHAIR_ITEM_PIC,
92   CROSSHAIR_ITEM_AUTO_TIME
93};
8894
8995
9096/***************************************************************************
r4470r4471
203209};
204210
205211
212/* internal crosshair menu item data */
213typedef struct _crosshair_item_data crosshair_item_data;
214struct _crosshair_item_data
215{
216   UINT8            type;
217   UINT8            player;
218   UINT8            min, max;
219   UINT8            cur;
220   UINT8            defvalue;
221   char            last_name[CROSSHAIR_PIC_NAME_LENGTH + 1];
222   char            next_name[CROSSHAIR_PIC_NAME_LENGTH + 1];
223};
206224
225
226
207227/***************************************************************************
208228    GLOBAL VARIABLES
209229***************************************************************************/
r4470r4471
281301static void menu_video_targets_populate(running_machine *machine, ui_menu *menu);
282302static void menu_video_options(running_machine *machine, ui_menu *menu, void *parameter, void *state);
283303static void menu_video_options_populate(running_machine *machine, ui_menu *menu, render_target *target);
304static void menu_crosshair(running_machine *machine, ui_menu *menu, void *parameter, void *state);
305static void menu_crosshair_populate(running_machine *machine, ui_menu *menu);
284306static void menu_quit_game(running_machine *machine, ui_menu *menu, void *parameter, void *state);
285307static void menu_select_game(running_machine *machine, ui_menu *menu, void *parameter, void *state);
286308static void menu_select_game_populate(running_machine *machine, ui_menu *menu, select_game_state *menustate);
r4470r4471
14891511   /* add video options menu */
14901512   ui_menu_item_append(menu, "Video Options", NULL, 0, (render_target_get_indexed(1) != NULL) ? (void *)menu_video_targets : (void *)menu_video_options);
14911513
1514   /* add crosshair options menu */
1515   if (crosshair_get_usage(machine))
1516      ui_menu_item_append(menu, "Crosshair Options", NULL, 0, menu_crosshair);
1517
14921518   /* add cheat menu */
14931519   if (options_get_bool(mame_options(), OPTION_CHEAT) && cheat_get_next_menu_entry(machine, NULL, NULL, NULL, NULL) != NULL)
14941520      ui_menu_item_append(menu, "Cheat", NULL, 0, (void *)menu_cheat);
r4470r4471
30303056
30313057
30323058/*-------------------------------------------------
3059    menu_crosshair - handle the crosshair settings
3060    menu
3061-------------------------------------------------*/
3062
3063static void menu_crosshair(running_machine *machine, ui_menu *menu, void *parameter, void *state)
3064{
3065   const ui_menu_event *event;
3066
3067   /* if the menu isn't built, populate now */
3068   if (!ui_menu_populated(menu))
3069      menu_crosshair_populate(machine, menu);
3070
3071   /* process the menu */
3072   event = ui_menu_process(machine, menu, UI_MENU_PROCESS_LR_REPEAT);
3073
3074   /* handle events */
3075   if (event != NULL && event->itemref != NULL)
3076   {
3077      crosshair_user_settings settings;
3078      crosshair_item_data *data = event->itemref;
3079      int changed = FALSE;
3080      int set_def = FALSE;
3081      int newval = data->cur;
3082
3083      /* retreive the user settings */
3084      crosshair_get_user_settings(machine, data->player, &settings);
3085
3086      switch (event->iptkey)
3087      {
3088         /* if selected, reset to default value */
3089         case IPT_UI_SELECT:
3090            newval = data->defvalue;
3091            set_def = TRUE;
3092            break;
3093
3094         /* left decrements */
3095         case IPT_UI_LEFT:
3096            newval -= input_code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
3097            break;
3098
3099         /* right increments */
3100         case IPT_UI_RIGHT:
3101            newval += input_code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
3102            break;
3103      }
3104
3105      /* clamp to range */
3106      if (newval < data->min)
3107         newval = data->min;
3108      if (newval > data->max)
3109         newval = data->max;
3110
3111      /* if things changed, update */
3112      if (newval != data->cur)
3113      {
3114         switch (data->type)
3115         {
3116            /* visibility state */
3117            case CROSSHAIR_ITEM_VIS:
3118               settings.mode = newval;
3119               changed = TRUE;
3120               break;
3121
3122            /* auto time */
3123            case CROSSHAIR_ITEM_AUTO_TIME:
3124               settings.auto_time = newval;
3125               changed = TRUE;
3126               break;
3127         }
3128      }
3129
3130      /* crosshair graphic name */
3131      if (data->type == CROSSHAIR_ITEM_PIC)
3132      {
3133         if (event->iptkey == IPT_UI_SELECT)
3134         {
3135            /* clear the name string to reset to default crosshair */
3136            settings.name[0] = 0;
3137            changed = TRUE;
3138         }
3139         else if (event->iptkey == IPT_UI_LEFT)
3140         {
3141            strcpy(settings.name, data->last_name);
3142            changed = TRUE;
3143         }
3144         else if (event->iptkey == IPT_UI_RIGHT)
3145         {
3146            strcpy(settings.name, data->next_name);
3147            changed = TRUE;
3148         }
3149      }
3150
3151      if (changed)
3152      {
3153         /* save the user settings */
3154         crosshair_set_user_settings(machine, data->player, &settings);
3155
3156         /* rebuild the menu */
3157         ui_menu_reset(menu, UI_MENU_RESET_REMEMBER_POSITION);
3158      }
3159   }
3160}
3161
3162
3163/*-------------------------------------------------
3164    menu_crosshair_populate - populate the
3165    crosshair settings menu
3166-------------------------------------------------*/
3167
3168static void menu_crosshair_populate(running_machine *machine, ui_menu *menu)
3169{
3170   crosshair_user_settings settings;
3171   crosshair_item_data *data;
3172   char temp_text[16];
3173   int player;
3174   UINT8 use_auto = FALSE;
3175   UINT32 flags = 0;
3176   mame_path *path;
3177
3178   /* loop over player and add the manual items */
3179   for (player = 0; player < MAX_PLAYERS; player++)
3180   {
3181      /* get the user settings */
3182      crosshair_get_user_settings(machine, player, &settings);
3183
3184      /* add menu items for usable crosshairs */
3185      if (settings.used)
3186      {
3187         /* Make sure to keep these matched to the CROSSHAIR_VISIBILITY_xxx types */
3188         static const char *const vis_text[] = { "Off", "On", "Auto" };
3189
3190         /* track if we need the auto time menu */
3191         if (settings.mode == CROSSHAIR_VISIBILITY_AUTO) use_auto = TRUE;
3192
3193         /* CROSSHAIR_ITEM_VIS - allocate a data item and fill it */
3194         data = ui_menu_pool_alloc(menu, sizeof(*data));
3195         data->type = CROSSHAIR_ITEM_VIS;
3196         data->player = player;
3197         data->min = CROSSHAIR_VISIBILITY_OFF;
3198         data->max = CROSSHAIR_VISIBILITY_AUTO;
3199         data->defvalue = CROSSHAIR_VISIBILITY_DEFAULT;
3200         data->cur = settings.mode;
3201
3202         /* put on arrows */
3203         if (data->cur > data->min)
3204            flags |= MENU_FLAG_LEFT_ARROW;
3205         if (data->cur < data->max)
3206            flags |= MENU_FLAG_RIGHT_ARROW;
3207
3208         /* add CROSSHAIR_ITEM_VIS menu */
3209         sprintf(temp_text, "P%d Visibility", player + 1);
3210         ui_menu_item_append(menu, temp_text, vis_text[settings.mode], flags, data);
3211
3212         /* CROSSHAIR_ITEM_PIC - allocate a data item and fill it */
3213         data = ui_menu_pool_alloc(menu, sizeof(*data));
3214         data->type = CROSSHAIR_ITEM_PIC;
3215         data->player = player;
3216         data->last_name[0] = 0;
3217         /* other data item not used by this menu */
3218
3219         /* search for crosshair graphics */
3220
3221         /* open a path to the crosshairs */
3222         path = mame_openpath(mame_options(), OPTION_CRSSHAIRPATH);
3223         if (path != NULL)
3224         {
3225            const osd_directory_entry *dir;
3226
3227            /* reset search flags */
3228            int using_default = FALSE;
3229            int finished = FALSE;
3230            int found = FALSE;
3231
3232            /* if we are using the default, then we just need to find the first in the list */
3233            if (strlen(settings.name) == 0)
3234               using_default = TRUE;
3235
3236            /* look for the current name, then remember the name before */
3237            /* and find the next name */
3238            while (((dir = mame_readpath(path)) != NULL) && !finished)
3239            {
3240               int length = strlen(dir->name);
3241
3242               /* look for files ending in .png with a name not larger then 9 chars*/
3243               if ((length > 4) && (length <= CROSSHAIR_PIC_NAME_LENGTH + 4) &&
3244                  tolower(dir->name[length - 4] == '.') &&
3245                  tolower(dir->name[length - 3] == 'p') &&
3246                  tolower(dir->name[length - 2] == 'n') &&
3247                  tolower(dir->name[length - 1] == 'g'))
3248
3249               {
3250                  /* remove .png from length */
3251                  length -= 4;
3252
3253                  if (found || using_default)
3254                  {
3255                     /* get the next name */
3256                     strncpy(data->next_name, dir->name, length);
3257                     data->next_name[length] = 0;
3258                     finished = TRUE;
3259                  }
3260                  else if (!strncmp(dir->name, settings.name, length))
3261                  {
3262                     /* we found the current name */
3263                     /* so loop once more to find the next name */
3264                     found = TRUE;
3265                  }
3266                  else
3267                     /* remember last name */
3268                     /* we will do it here in case files get added to the directory */
3269                  {
3270                     strncpy(data->last_name, dir->name, length);
3271                     data->last_name[length] = 0;
3272                  }
3273               }
3274            }
3275            /* if name not found then next item is DEFAULT */
3276            if (!found && !using_default)
3277            {
3278               data->next_name[0] = 0;
3279               finished = TRUE;
3280            }
3281            /* setup the selection flags */
3282            flags = 0;
3283            if (finished)
3284               flags |= MENU_FLAG_RIGHT_ARROW;
3285            if (found)
3286               flags |= MENU_FLAG_LEFT_ARROW;
3287
3288            /* add CROSSHAIR_ITEM_PIC menu */
3289            sprintf(temp_text, "P%d Crosshair", player + 1);
3290            ui_menu_item_append(menu, temp_text, using_default ? "DEFAULT" : settings.name, flags, data);
3291         }
3292      }
3293   }
3294   if (use_auto)
3295   {
3296      /* any player can be used to get the autotime */
3297      crosshair_get_user_settings(machine, 0, &settings);
3298
3299      /* CROSSHAIR_ITEM_AUTO_TIME - allocate a data item and fill it */
3300      data = ui_menu_pool_alloc(menu, sizeof(*data));
3301      data->type = CROSSHAIR_ITEM_AUTO_TIME;
3302      data->min = CROSSHAIR_VISIBILITY_AUTOTIME_MIN;
3303      data->max = CROSSHAIR_VISIBILITY_AUTOTIME_MAX;
3304      data->defvalue = CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT;
3305      data->cur = settings.auto_time;
3306
3307      /* put on arrows in visible menu */
3308      if (data->cur > data->min)
3309         flags |= MENU_FLAG_LEFT_ARROW;
3310      if (data->cur < data->max)
3311         flags |= MENU_FLAG_RIGHT_ARROW;
3312
3313      /* add CROSSHAIR_ITEM_AUTO_TIME menu */
3314      sprintf(temp_text, "%d", settings.auto_time);
3315      ui_menu_item_append(menu, "Visible Delay", temp_text, flags, data);
3316   }
3317//  else
3318//      /* leave a blank filler line when not in auto time so size does not rescale */
3319//      ui_menu_item_append(menu, "", "", NULL, NULL);
3320}
3321
3322
3323/*-------------------------------------------------
30333324    menu_quit_game - handle the "menu" for
30343325    quitting the game
30353326-------------------------------------------------*/
src/emu/emu.mak
r4470r4471
132132   $(EMUMACHINE)/ds2401.o \
133133   $(EMUMACHINE)/ds2404.o \
134134   $(EMUMACHINE)/eeprom.o \
135   $(EMUMACHINE)/eepromdev.o \
135136   $(EMUMACHINE)/f3853.o \
136137   $(EMUMACHINE)/generic.o \
137138   $(EMUMACHINE)/i8243.o \
138139   $(EMUMACHINE)/i2cmem.o \
140   $(EMUMACHINE)/i2cmemdev.o \
139141    $(EMUMACHINE)/idectrl.o \
140142    $(EMUMACHINE)/intelfsh.o \
141143   $(EMUMACHINE)/latch8.o \
r4470r4471
179181    $(EMUVIDEO)/mc6845.o \
180182   $(EMUVIDEO)/poly.o \
181183   $(EMUVIDEO)/resnet.o \
184   $(EMUVIDEO)/rgbutil.o \
182185   $(EMUVIDEO)/s2636.o \
183186   $(EMUVIDEO)/tlc34076.o \
184187   $(EMUVIDEO)/tms34061.o \
src/emu/inpttype.h
r4470r4471
563563   INPUT_PORT_DIGITAL_TYPE( 0, UI,      UI_TOGGLE_DEBUG,     "Toggle Debugger",        SEQ_DEF_1(KEYCODE_F5) )
564564   INPUT_PORT_DIGITAL_TYPE( 0, UI,      UI_SAVE_STATE,       "Save State",             SEQ_DEF_2(KEYCODE_F7, KEYCODE_LSHIFT) )
565565   INPUT_PORT_DIGITAL_TYPE( 0, UI,      UI_LOAD_STATE,       "Load State",             SEQ_DEF_3(KEYCODE_F7, SEQCODE_NOT, KEYCODE_LSHIFT) )
566   INPUT_PORT_DIGITAL_TYPE( 0, UI,      UI_TOGGLE_CROSSHAIR, "Toggle Crosshair",       SEQ_DEF_1(KEYCODE_F1) )
567566
568567   INPUT_PORT_DIGITAL_TYPE( 0, UI,      OSD_1,               NULL,                     SEQ_DEF_0 )
569568   INPUT_PORT_DIGITAL_TYPE( 0, UI,      OSD_2,               NULL,                     SEQ_DEF_0 )
src/emu/machine/z80pio.c
r4470r4471
5656struct _z80pio
5757{
5858   UINT8 vector[2];                      /* interrupt vector               */
59   void (*intr)(const device_config *, int which);            /* interrupt callbacks            */
60   void (*rdyr[2])(const device_config *, int data);          /* RDY active callback            */
61   read8_device_func  port_read[2];     /* port read callbacks            */
62   write8_device_func port_write[2];    /* port write callbacks           */
59   devcb_resolved_write_line intr;       /* interrupt callbacks            */
60   devcb_resolved_write_line rdyr[2];    /* RDY active callback            */
61   devcb_resolved_read8  port_read[2];   /* port read callbacks            */
62   devcb_resolved_write8 port_write[2];  /* port write callbacks           */
6363   UINT8 mode[2];                        /* mode 00=in,01=out,02=i/o,03=bit*/
6464   UINT8 enable[2];                      /* interrupt enable               */
6565   UINT8 mask[2];                        /* mask folowers                  */
r4470r4471
107107   z80pio->rdy[ch] = state;
108108
109109   /* call callback with state */
110   if (z80pio->rdyr[ch])
111      z80pio->rdyr[ch](device, z80pio->rdy[ch]);
110   devcb_call_write_line(&z80pio->rdyr[ch], z80pio->rdy[ch]);
112111}
113112
114113
r4470r4471
117116   z80pio_t *z80pio = get_safe_token( device );
118117
119118   /* if we have a callback, update it with the current state */
120   if (z80pio->intr)
121      z80pio->intr(device, (z80pio_irq_state(device) & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE);
119   devcb_call_write_line(&z80pio->intr, (z80pio_irq_state(device) & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE);
122120}
123121
124122
r4470r4471
269267   offset &= 0x01;
270268
271269   z80pio->out[offset] = data;   /* latch out data */
272   if(z80pio->port_write[offset])
273   {
274      if (z80pio->mode[offset] == PIO_MODE3)
275         z80pio->port_write[offset](device, 0, data & ~z80pio->dir[offset]);
276      else
277         z80pio->port_write[offset](device, 0, data);
278   }
270   if (z80pio->mode[offset] == PIO_MODE3)
271      devcb_call_write8(&z80pio->port_write[offset], 0, data & ~z80pio->dir[offset]);
272   else
273      devcb_call_write8(&z80pio->port_write[offset], 0, data);
279274
280275   switch (z80pio->mode[offset])
281276   {
r4470r4471
309304
310305      case PIO_MODE1:         /* mode 1 input */
311306         set_rdy(device, offset, 1);   /* ready = H */
312         if(z80pio->port_read[offset])
313            z80pio->in[offset] = z80pio->port_read[offset](device, 0);
307         if(z80pio->port_read[offset].read != NULL)
308            z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0);
314309         update_irq_state(device, offset);
315310         return z80pio->in[offset];
316311
317312      case PIO_MODE2:         /* mode 2 i/o */
318313         if (offset) VPRINTF(("PIO-B mode 2 \n"));
319314         set_rdy(device, 1, 1); /* brdy = H */
320         if(z80pio->port_read[offset])
321            z80pio->in[offset] = z80pio->port_read[offset](device, 0);
315         if(z80pio->port_read[offset].read != NULL)
316            z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0);
322317         update_irq_state(device, offset);
323318         return z80pio->in[offset];
324319
325320      case PIO_MODE3:         /* mode 3 bit */
326         if(z80pio->port_read[offset])
327            z80pio->in[offset] = z80pio->port_read[offset](device, 0);
321         if(z80pio->port_read[offset].read != NULL)
322            z80pio->in[offset] = devcb_call_read8(&z80pio->port_read[offset], 0);
328323         return (z80pio->in[offset] & z80pio->dir[offset]) | (z80pio->out[offset] & ~z80pio->dir[offset]);
329324   }
330325   VPRINTF(("PIO-%c data read,bad mode\n",'A'+offset ));
r4470r4471
543538   const z80pio_interface *intf = (const z80pio_interface *)device->static_config;
544539   z80pio_t *z80pio = get_safe_token( device );
545540
546   z80pio->intr = intf->intr;
547   z80pio->port_read[0] = intf->portAread;
548   z80pio->port_read[1] = intf->portBread;
549   z80pio->port_write[0] = intf->portAwrite;
550   z80pio->port_write[1] = intf->portBwrite;
551   z80pio->rdyr[0] = intf->rdyA;
552   z80pio->rdyr[1] = intf->rdyB;
541   devcb_resolve_write_line(&z80pio->intr, &intf->intr, device);
542   devcb_resolve_read8(&z80pio->port_read[0], &intf->portAread, device);
543   devcb_resolve_read8(&z80pio->port_read[1], &intf->portBread, device);
544   devcb_resolve_write8(&z80pio->port_write[0], &intf->portAwrite, device);
545   devcb_resolve_write8(&z80pio->port_write[1], &intf->portBwrite, device);
546   devcb_resolve_write_line(&z80pio->rdyr[0], &intf->rdyA, device);
547   devcb_resolve_write_line(&z80pio->rdyr[1], &intf->rdyB, device);
553548
554549   /* register for save states */
555550   state_save_register_device_item_array(device, 0, z80pio->vector);
src/emu/machine/z80pio.h
r4470r4471
3333#ifndef __Z80PIO_H__
3434#define __Z80PIO_H__
3535
36#include "devcb.h"
3637
38
3739/***************************************************************************
3840    TYPE DEFINITIONS
3941***************************************************************************/
r4470r4471
4143typedef struct _z80pio_interface z80pio_interface;
4244struct _z80pio_interface
4345{
44   void (*intr)(const device_config *device, int which);    /* callback when change interrupt status */
45   read8_device_func portAread;    /* port A read callback */
46   read8_device_func portBread;    /* port B read callback */
47   write8_device_func portAwrite;  /* port A write callback */
48   write8_device_func portBwrite;  /* port B write callback */
49   void (*rdyA)(const device_config *device, int data);     /* portA ready active callback (do not support yet)*/
50   void (*rdyB)(const device_config *device, int data);     /* portB ready active callback (do not support yet)*/
46   devcb_write_line intr;    /* callback when change interrupt status */
47   devcb_read8 portAread;    /* port A read callback */
48   devcb_read8 portBread;    /* port B read callback */
49   devcb_write8 portAwrite;  /* port A write callback */
50   devcb_write8 portBwrite;  /* port B write callback */
51   devcb_write_line rdyA;    /* portA ready active callback */
52   devcb_write_line rdyB;    /* portB ready active callback */
5153};
5254
5355
src/emu/machine/eepromdev.c
r0r4471
1/*
2 * Serial eeproms
3 *
4 */
5
6#include "driver.h"
7#include "machine/eepromdev.h"
8
9#define VERBOSE 0
10#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
11
12#define SERIAL_BUFFER_LENGTH 40
13#define MEMORY_SIZE 1024
14
15typedef struct _eeprom_state eeprom_state;
16struct _eeprom_state
17{
18   const eeprom_interface *intf;
19   int serial_count;
20   UINT8 serial_buffer[SERIAL_BUFFER_LENGTH];
21   UINT8 eeprom_data[MEMORY_SIZE];
22   int eeprom_data_bits;
23   int eeprom_read_address;
24   int eeprom_clock_count;
25   int latch,reset_line,clock_line,sending;
26   int locked;
27   int reset_delay;
28};
29
30/*-------------------------------------------------
31    get_safe_token - makes sure that the passed
32    in device is, in fact, an I2C memory
33-------------------------------------------------*/
34
35INLINE eeprom_state *get_safe_token(const device_config *device)
36{
37   assert( device != NULL );
38   assert( device->token != NULL );
39   assert( device->type == EEPROM );
40
41   return (eeprom_state *)device->token;
42}
43
44/*
45    eeprom_command_match:
46
47    Try to match the first (len) digits in the EEPROM serial buffer
48    string (*buf) with  an EEPROM command string (*cmd).
49    Return non zero if a match was found.
50
51    The serial buffer only contains '0' or '1' (e.g. "1001").
52    The command can contain: '0' or '1' or these wildcards:
53
54    'x' :   match both '0' and '1'
55    "*1":   match "1", "01", "001", "0001" etc.
56    "*0":   match "0", "10", "110", "1110" etc.
57
58    Note: (cmd) may be NULL. Return 0 (no match) in this case.
59*/
60static int eeprom_command_match(const char *buf, const char *cmd, int len)
61{
62   if ( cmd == 0 )   return 0;
63   if ( len == 0 )   return 0;
64
65   for (;len>0;)
66   {
67      char b = *buf;
68      char c = *cmd;
69
70      if ((b==0) || (c==0))
71         return (b==c);
72
73      switch ( c )
74      {
75         case '0':
76         case '1':
77            if (b != c)   return 0;
78         case 'X':
79         case 'x':
80            buf++;
81            len--;
82            cmd++;
83            break;
84
85         case '*':
86            c = cmd[1];
87            switch( c )
88            {
89               case '0':
90               case '1':
91                    if (b == c)   {   cmd++;         }
92                  else      {   buf++;   len--;   }
93                  break;
94               default:   return 0;
95            }
96      }
97   }
98   return (*cmd==0);
99}
100
101
102const eeprom_interface eepromdev_interface_93C46 =
103{
104   6,            // address bits 6
105   16,            // data bits    16
106   "*110",         // read         1 10 aaaaaa
107   "*101",         // write        1 01 aaaaaa dddddddddddddddd
108   "*111",         // erase        1 11 aaaaaa
109   "*10000xxxx",   // lock         1 00 00xxxx
110   "*10011xxxx",   // unlock       1 00 11xxxx
111   1,
112//  "*10001xxxx"    // write all    1 00 01xxxx dddddddddddddddd
113//  "*10010xxxx"    // erase all    1 00 10xxxx
114};
115
116const eeprom_interface eepromdev_interface_93C66B =
117{
118   8,            /* address bits */
119   16,            /* data bits */
120   "*110",         /* read command */
121   "*101",         /* write command */
122   "*111",         /* erase command */
123   "*10000xxxxxx",   /* lock command */
124   "*10011xxxxxx", /* unlock command */
125   1,
126//  "*10001xxxxxx", /* write all */
127//  "*10010xxxxxx", /* erase all */
128};
129
130static void eeprom_write(eeprom_state *c, int bit)
131{
132   LOG(("EEPROM write bit %d\n",bit));
133
134   if (c->serial_count >= SERIAL_BUFFER_LENGTH-1)
135   {
136      logerror("error: EEPROM serial buffer overflow\n");
137      return;
138   }
139
140   c->serial_buffer[c->serial_count++] = (bit ? '1' : '0');
141   c->serial_buffer[c->serial_count] = 0;   /* nul terminate so we can treat it as a string */
142
143   if ( (c->serial_count > c->intf->address_bits) &&
144         eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_read,strlen((char*)(c->serial_buffer))-c->intf->address_bits) )
145   {
146      int i,address;
147
148      address = 0;
149      for (i = c->serial_count-c->intf->address_bits;i < c->serial_count;i++)
150      {
151         address <<= 1;
152         if (c->serial_buffer[i] == '1') address |= 1;
153      }
154      if (c->intf->data_bits == 16)
155         c->eeprom_data_bits = (c->eeprom_data[2*address+0] << 8) + c->eeprom_data[2*address+1];
156      else
157         c->eeprom_data_bits = c->eeprom_data[address];
158      c->eeprom_read_address = address;
159      c->eeprom_clock_count = 0;
160      c->sending = 1;
161      c->serial_count = 0;
162logerror("EEPROM read %04x from address %02x\n",c->eeprom_data_bits,address);
163   }
164   else if ( (c->serial_count > c->intf->address_bits) &&
165              eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_erase,strlen((char*)(c->serial_buffer))-c->intf->address_bits) )
166   {
167      int i,address;
168
169      address = 0;
170      for (i = c->serial_count-c->intf->address_bits;i < c->serial_count;i++)
171      {
172         address <<= 1;
173         if (c->serial_buffer[i] == '1') address |= 1;
174      }
175logerror("EEPROM erase address %02x\n",address);
176      if (c->locked == 0)
177      {
178         if (c->intf->data_bits == 16)
179         {
180            c->eeprom_data[2*address+0] = 0x00;
181            c->eeprom_data[2*address+1] = 0x00;
182         }
183         else
184            c->eeprom_data[address] = 0x00;
185      }
186      else
187logerror("Error: EEPROM is locked\n");
188      c->serial_count = 0;
189   }
190   else if ( (c->serial_count > (c->intf->address_bits + c->intf->data_bits)) &&
191              eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_write,strlen((char*)(c->serial_buffer))-(c->intf->address_bits + c->intf->data_bits)) )
192   {
193      int i,address,data;
194
195      address = 0;
196      for (i = c->serial_count-c->intf->data_bits-c->intf->address_bits;i < (c->serial_count-c->intf->data_bits);i++)
197      {
198         address <<= 1;
199         if (c->serial_buffer[i] == '1') address |= 1;
200      }
201      data = 0;
202      for (i = c->serial_count-c->intf->data_bits;i < c->serial_count;i++)
203      {
204         data <<= 1;
205         if (c->serial_buffer[i] == '1') data |= 1;
206      }
207logerror("EEPROM write %04x to address %02x\n",data,address);
208      if (c->locked == 0)
209      {
210         if (c->intf->data_bits == 16)
211         {
212            c->eeprom_data[2*address+0] = data >> 8;
213            c->eeprom_data[2*address+1] = data & 0xff;
214         }
215         else
216            c->eeprom_data[address] = data;
217      }
218      else
219logerror("Error: EEPROM is locked\n");
220      c->serial_count = 0;
221   }
222   else if ( eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_lock,strlen((char*)(c->serial_buffer))) )
223   {
224logerror("EEPROM lock\n");
225      c->locked = 1;
226      c->serial_count = 0;
227   }
228   else if ( eeprom_command_match((char*)(c->serial_buffer),c->intf->cmd_unlock,strlen((char*)(c->serial_buffer))) )
229   {
230logerror("EEPROM unlock\n");
231      c->locked = 0;
232      c->serial_count = 0;
233   }
234}
235
236static void eeprom_reset(eeprom_state *c)
237{
238   if (c->serial_count)
239      logerror("EEPROM reset, buffer = %s\n",c->serial_buffer);
240
241   c->serial_count = 0;
242   c->sending = 0;
243   c->reset_delay = c->intf->reset_delay;   /* delay a little before returning setting data to 1 (needed by wbeachvl) */
244}
245
246
247void eepromdev_write_bit(const device_config *device, int bit)
248{
249   eeprom_state *c = get_safe_token(device);
250
251   LOG(("write bit %d\n",bit));
252   c->latch = bit;
253}
254
255int eepromdev_read_bit(const device_config *device)
256{
257   eeprom_state *c = get_safe_token(device);
258   int res;
259
260   if (c->sending)
261      res = (c->eeprom_data_bits >> c->intf->data_bits) & 1;
262   else
263   {
264      if (c->reset_delay > 0)
265      {
266         /* this is needed by wbeachvl */
267         c->reset_delay--;
268         res = 0;
269      }
270      else
271         res = 1;
272   }
273
274   LOG(("read bit %d\n",res));
275
276   return res;
277}
278
279/*CUSTOM_INPUT( eeprom_bit_r )
280{
281    return eeprom_read_bit();
282}*/
283
284void eepromdev_set_cs_line(const device_config *device, int state)
285{
286   eeprom_state *c = get_safe_token(device);
287
288   LOG(("set reset line %d\n",state));
289   c->reset_line = state;
290
291   if (c->reset_line != CLEAR_LINE)
292      eeprom_reset(c);
293}
294
295void eepromdev_set_clock_line(const device_config *device, int state)
296{
297   eeprom_state *c = get_safe_token(device);
298
299   LOG(("set clock line %d\n",state));
300   if (state == PULSE_LINE || (c->clock_line == CLEAR_LINE && state != CLEAR_LINE))
301   {
302      if (c->reset_line == CLEAR_LINE)
303      {
304         if (c->sending)
305         {
306            if (c->eeprom_clock_count == c->intf->data_bits && c->intf->enable_multi_read)
307            {
308               c->eeprom_read_address = (c->eeprom_read_address + 1) & ((1 << c->intf->address_bits) - 1);
309               if (c->intf->data_bits == 16)
310                  c->eeprom_data_bits = (c->eeprom_data[2*c->eeprom_read_address+0] << 8) + c->eeprom_data[2*c->eeprom_read_address+1];
311               else
312                  c->eeprom_data_bits = c->eeprom_data[c->eeprom_read_address];
313               c->eeprom_clock_count = 0;
314logerror("EEPROM read %04x from address %02x\n",c->eeprom_data_bits,c->eeprom_read_address);
315            }
316            c->eeprom_data_bits = (c->eeprom_data_bits << 1) | 1;
317            c->eeprom_clock_count++;
318         }
319         else
320            eeprom_write(c,c->latch);
321      }
322   }
323
324   c->clock_line = state;
325}
326
327
328void eepromdev_load(const device_config *device, mame_file *f)
329{
330   eeprom_state *c = get_safe_token(device);
331
332   mame_fread(f, c->eeprom_data, (1 << c->intf->address_bits) * c->intf->data_bits / 8);
333}
334
335void eepromdev_save(const device_config *device, mame_file *f)
336{
337   eeprom_state *c = get_safe_token(device);
338
339   mame_fwrite(f, c->eeprom_data, (1 << c->intf->address_bits) * c->intf->data_bits / 8);
340}
341
342void eepromdev_set_data(const device_config *device, const UINT8 *data, int length)
343{
344   eeprom_state *c = get_safe_token(device);
345
346   assert(length <= ((1 << c->intf->address_bits) * c->intf->data_bits / 8));
347   memcpy(c->eeprom_data, data, length);
348}
349
350void *eepromdev_get_data_pointer(const device_config *device, UINT32 *length, UINT32 *size)
351{
352   eeprom_state *c = get_safe_token(device);
353
354   if (length != NULL && c->intf != NULL)
355      *length = 1 << c->intf->address_bits;
356   if (size != NULL && c->intf != NULL)
357      *size = c->intf->data_bits / 8;
358
359   return c->eeprom_data;
360}
361
362static DEVICE_NVRAM( eeprom )
363{
364   const eeprom_config *config = device->inline_config;
365
366   if (read_or_write)
367      eepromdev_save(device, file);
368   else
369      if (file)
370         eepromdev_load(device, file);
371      else
372         if ((config->default_data != NULL) && (config->default_data_size != 0))
373            eepromdev_set_data(device, config->default_data, config->default_data_size);
374}
375
376static DEVICE_START(eeprom)
377{
378   eeprom_state *c = get_safe_token(device);
379   const eeprom_config *config;
380
381   /* validate some basic stuff */
382   assert(device != NULL);
383   assert(device->inline_config != NULL);
384   assert(device->machine != NULL);
385   assert(device->machine->config != NULL);
386
387   config = device->inline_config;
388
389   c->intf = config->pinterface;
390
391   if ((1 << c->intf->address_bits) * c->intf->data_bits / 8 > MEMORY_SIZE)
392   {
393      fatalerror("EEPROM larger than eepromdev.c allows");
394   }
395
396   memset(c->eeprom_data, 0xff, (1 << c->intf->address_bits) * c->intf->data_bits / 8);
397   if ((config->default_data != NULL) && (config->default_data_size != 0))
398      eepromdev_set_data(device, config->default_data, config->default_data_size);
399   c->serial_count = 0;
400   c->latch = 0;
401   c->reset_line = ASSERT_LINE;
402   c->clock_line = ASSERT_LINE;
403   c->eeprom_read_address = 0;
404   c->sending = 0;
405   if (c->intf->cmd_unlock) c->locked = 1;
406   else c->locked = 0;
407
408   state_save_register_device_item_pointer( device, 0, c->eeprom_data, MEMORY_SIZE);
409   state_save_register_device_item_pointer( device, 0, c->serial_buffer, SERIAL_BUFFER_LENGTH);
410   state_save_register_device_item( device, 0, c->clock_line);
411   state_save_register_device_item( device, 0, c->reset_line);
412   state_save_register_device_item( device, 0, c->locked);
413   state_save_register_device_item( device, 0, c->serial_count);
414   state_save_register_device_item( device, 0, c->latch);
415   state_save_register_device_item( device, 0, c->reset_delay);
416   state_save_register_device_item( device, 0, c->eeprom_clock_count);
417   state_save_register_device_item( device, 0, c->eeprom_data_bits);
418   state_save_register_device_item( device, 0, c->eeprom_read_address);
419}
420
421static DEVICE_RESET(eeprom)
422{
423}
424
425static DEVICE_SET_INFO(eeprom)
426{
427   switch (state)
428   {
429      /* no parameters to set */
430   }
431}
432
433DEVICE_GET_INFO(eeprom)
434{
435   switch (state)
436   {
437      /* --- the following bits of info are returned as 64-bit signed integers --- */
438      case DEVINFO_INT_TOKEN_BYTES:         info->i = sizeof(eeprom_state); break;
439      case DEVINFO_INT_INLINE_CONFIG_BYTES:   info->i = sizeof(eeprom_config); break;
440      case DEVINFO_INT_CLASS:               info->i = DEVICE_CLASS_PERIPHERAL; break;
441
442      /* --- the following bits of info are returned as pointers to data or functions --- */
443      case DEVINFO_FCT_SET_INFO:            info->set_info = DEVICE_SET_INFO_NAME(eeprom); break;
444      case DEVINFO_FCT_START:               info->start = DEVICE_START_NAME(eeprom); break;
445      case DEVINFO_FCT_STOP:               /* nothing */ break;
446      case DEVINFO_FCT_RESET:               info->reset = DEVICE_RESET_NAME(eeprom); break;
447      case DEVINFO_FCT_NVRAM:               info->nvram = DEVICE_NVRAM_NAME(eeprom); break;
448
449      /* --- the following bits of info are returned as NULL-terminated strings --- */
450      case DEVINFO_STR_NAME:               strcpy(info->s, "EEPROM"); break;
451      case DEVINFO_STR_FAMILY:            strcpy(info->s, "EEPROM"); break;
452      case DEVINFO_STR_VERSION:            strcpy(info->s, "1.0"); break;
453      case DEVINFO_STR_SOURCE_FILE:         strcpy(info->s, __FILE__); break;
454      case DEVINFO_STR_CREDITS:            strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
455   }
456}
src/emu/machine/eepromdev.h
r0r4471
1/*
2 * Serial eeproms
3 *
4 */
5
6#if !defined( EEPROMDEV_H )
7#define EEPROMDEV_H ( 1 )
8
9typedef struct _eeprom_interface eeprom_interface;
10struct _eeprom_interface
11{
12   int address_bits;      /* EEPROM has 2^address_bits cells */
13   int data_bits;         /* every cell has this many bits (8 or 16) */
14   const char *cmd_read;   /*   read command string, e.g. "0110" */
15   const char *cmd_write;   /*  write command string, e.g. "0111" */
16   const char *cmd_erase;   /*  erase command string, or 0 if n/a */
17   const char *cmd_lock;   /*   lock command string, or 0 if n/a */
18   const char *cmd_unlock;   /* unlock command string, or 0 if n/a */
19   int enable_multi_read;   /* set to 1 to enable multiple values to be read from one read command */
20   int reset_delay;      /* number of times eeprom_read_bit() should return 0 after a reset, */
21                     /* before starting to return 1. */
22};
23
24typedef struct _eeprom_config eeprom_config;
25struct _eeprom_config
26{
27   eeprom_interface *pinterface;
28   UINT8 *default_data;
29   int default_data_size;
30};
31
32/* 93C46 */
33extern const eeprom_interface eepromdev_interface_93C46;
34
35/* 93C66B */
36extern const eeprom_interface eepromdev_interface_93C66B;
37
38#define EEPROM DEVICE_GET_INFO_NAME(eeprom)
39DEVICE_GET_INFO(eeprom);
40
41#define MDRV_EEPROM_ADD(_tag, _interface, _data_size, _data) \
42   MDRV_DEVICE_ADD(_tag, EEPROM, 0) \
43   MDRV_DEVICE_CONFIG_DATAPTR(eeprom_config, pinterface, &_interface) \
44   MDRV_EEPROM_DATA(_data, _data_size)
45
46#define MDRV_EEPROM_93C46_ADD(_tag, _data_size, _data) \
47   MDRV_EEPROM_ADD(_tag, eepromdev_interface_93C46, _data_size, _data)
48
49#define MDRV_EEPROM_93C66B_ADD(_tag, _data_size, _data) \
50   MDRV_EEPROM_ADD(_tag, eepromdev_interface_93C66B, _data_size, _data)
51
52#define MDRV_EEPROM_DATA(_data, _size) \
53   MDRV_DEVICE_CONFIG_DATAPTR(eeprom_config, default_data, &_data) \
54   MDRV_DEVICE_CONFIG_DATA32(eeprom_config, default_data_size, _size)
55
56#define MDRV_EEPROM_REMOVE(_tag) \
57   MDRV_DEVICE_REMOVE(_tag, EEPROM)
58
59
60void eepromdev_write_bit( const device_config *device, int bit );
61int eepromdev_read_bit( const device_config *device );
62//CUSTOM_INPUT( eeprom_bit_r );
63void eepromdev_set_cs_line( const device_config *device, int state );
64void eepromdev_set_clock_line( const device_config *device, int state );
65
66void eepromdev_load( const device_config *device, mame_file *file );
67void eepromdev_save( const device_config *device, mame_file *file );
68
69void eepromdev_set_data( const device_config *device, const UINT8 *data, int length );
70void *eepromdev_get_data_pointer( const device_config *device, UINT32 *length, UINT32 *size );
71
72#endif
src/emu/machine/i2cmemdev.c
r0r4471
1/*
2   I2C Memory
3
4Generic ram/rom/eeprom/flash on an i2c bus. Supports specifying the slave address,
5the data size & the page size for writing.
6
7inputs:
8 e0,e1,e2  lower 3 bits of the slave address
9 sda       serial data
10 scl       serial clock
11 wc        write protect
12
13outputs:
14 sda       serial data
15
16The memory address is only 8 bits, devices larger than this have multiple slave addresses.
17The top five address bits are set at manufacture time, two values are standard.
18Up to 4096 bytes can be addressed.
19
20*/
21
22#include "driver.h"
23#include "machine/i2cmemdev.h"
24
25#define VERBOSE_LEVEL ( 0 )
26
27INLINE void ATTR_PRINTF(3,4) verboselog( running_machine *machine, int n_level, const char *s_fmt, ... )
28{
29   if( VERBOSE_LEVEL >= n_level )
30   {
31      va_list v;
32      char buf[ 32768 ];
33      va_start( v, s_fmt );
34      vsprintf( buf, s_fmt, v );
35      va_end( v );
36      logerror( "%s: %s", cpuexec_describe_context(machine), buf );
37   }
38}
39
40#define STATE_IDLE ( 0 )
41#define STATE_DEVSEL ( 1 )
42#define STATE_BYTEADDR ( 2 )
43#define STATE_DATAIN ( 3 )
44#define STATE_DATAOUT ( 4 )
45
46#define DEVSEL_RW ( 1 )
47#define DEVSEL_ADDRESS ( 0xfe )
48
49typedef struct _i2cmem_state i2cmem_state;
50struct _i2cmem_state
51{
52   int slave_address;
53   int scl;
54   int sdaw;
55   int e0;
56   int e1;
57   int e2;
58   int wc;
59   int sdar;
60   int state;
61   int bits;
62   int shift;
63   int devsel;
64   int byteaddr;
65   unsigned char *data;
66   int data_size;
67   unsigned char *page;
68   int page_offset;
69   int page_size;
70   int readmode;
71};
72
73/*-------------------------------------------------
74    get_safe_token - makes sure that the passed
75    in device is, in fact, an I2C memory
76-------------------------------------------------*/
77
78INLINE i2cmem_state *get_safe_token( const device_config *device )
79{
80   assert( device != NULL );
81   assert( device->token != NULL );
82   assert( device->type == I2CMEM );
83
84   return (i2cmem_state *)device->token;
85}
86
87static int select_device( i2cmem_state *c )
88{
89   int device = ( c->slave_address & 0xf0 ) | ( c->e2 << 3 ) | ( c->e1 << 2 ) | ( c->e0 << 1 );
90   int mask = DEVSEL_ADDRESS & ~( ( c->data_size - 1 ) >> 7 );
91
92   if( ( c->devsel & mask ) == ( device & mask ) )
93   {
94      return 1;
95   }
96
97   return 0;
98}
99
100static int data_offset( i2cmem_state *c )
101{
102   return ( ( ( c->devsel << 7 ) & 0xff00 ) | ( c->byteaddr & 0xff ) ) & ( c->data_size - 1 );
103}
104
105void i2cmemdev_write( const device_config *device, int line, int data )
106{
107   i2cmem_state *c = get_safe_token( device );
108
109   switch( line )
110   {
111   case I2CMEM_E0:
112      if( c->e0 != data )
113      {
114         c->e0 = data;
115         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E0, %d )\n", c->e0 );
116      }
117      break;
118
119   case I2CMEM_E1:
120      if( c->e1 != data )
121      {
122         c->e1 = data;
123         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E1, %d )\n", c->e1 );
124      }
125      break;
126
127   case I2CMEM_E2:
128      if( c->e2 != data )
129      {
130         c->e2 = data;
131         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_E2, %d )\n", c->e2 );
132      }
133      break;
134
135   case I2CMEM_SDA:
136      if( c->sdaw != data )
137      {
138         c->sdaw = data;
139         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_SDA, %d )\n", c->sdaw );
140
141         if( c->scl )
142         {
143            if( c->sdaw )
144            {
145               verboselog( device->machine, 1, "i2cmem stop\n");
146               c->state = STATE_IDLE;
147               c->byteaddr = 0;
148            }
149            else
150            {
151               verboselog( device->machine, 2, "i2cmem start\n");
152               c->state = STATE_DEVSEL;
153               c->bits = 0;
154            }
155
156            c->sdar = 1;
157         }
158      }
159      break;
160
161   case I2CMEM_SCL:
162      if( c->scl != data )
163      {
164         c->scl = data;
165         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_SCL, %d )\n", c->scl );
166
167         switch( c->state )
168         {
169         case STATE_DEVSEL:
170         case STATE_BYTEADDR:
171         case STATE_DATAIN:
172            if( c->bits < 8 )
173            {
174               if( c->scl )
175               {
176                  c->shift = ( ( c->shift << 1 ) | c->sdaw ) & 0xff;
177                  c->bits++;
178               }
179            }
180            else
181            {
182               if( c->scl )
183               {
184                  switch( c->state )
185                  {
186                  case STATE_DEVSEL:
187                     c->devsel = c->shift;
188
189                     if( !select_device( c ) )
190                     {
191                        verboselog( device->machine, 1, "i2cmem devsel %02x: not this device\n", c->devsel );
192                        c->state = STATE_IDLE;
193                     }
194                     else if( ( c->devsel & DEVSEL_RW ) == 0 )
195                     {
196                        verboselog( device->machine, 1, "i2cmem devsel %02x: write\n", c->devsel );
197                        c->state = STATE_BYTEADDR;
198                     }
199                     else
200                     {
201                        verboselog( device->machine, 1, "i2cmem devsel %02x: read\n", c->devsel );
202                        c->state = STATE_DATAOUT;
203                     }
204                     break;
205
206                  case STATE_BYTEADDR:
207                     c->byteaddr = c->shift;
208                     c->page_offset = 0;
209
210                     verboselog( device->machine, 1, "i2cmem byteaddr %02x\n", c->byteaddr );
211
212                     c->state = STATE_DATAIN;
213                     break;
214
215                  case STATE_DATAIN:
216                     if( c->wc )
217                     {
218                        verboselog( device->machine, 0, "i2cmem write not enabled\n");
219                        c->state = STATE_IDLE;
220                     }
221                     else if( c->page_size > 0 )
222                     {
223                        c->page[ c->page_offset ] = c->shift;
224                        verboselog( device->machine, 1, "i2cmem page[ %04x ] <- %02x\n", c->page_offset, c->page[ c->page_offset ] );
225
226                        c->page_offset++;
227                        if( c->page_offset == c->page_size )
228                        {
229                           int offset = data_offset( c ) & ~( c->page_size - 1 );
230
231                           memcpy( &c->data[ offset ], c->page, c->page_size );
232                           verboselog( device->machine, 1, "i2cmem data[ %04x to %04x ] = page\n", offset, offset + c->page_size - 1 );
233
234                           c->page_offset = 0;
235                        }
236                     }
237                     else
238                     {
239                        int offset = data_offset( c );
240
241                        c->data[ offset ] = c->shift;
242                        verboselog( device->machine, 1, "i2cmem data[ %04x ] <- %02x\n", offset, c->data[ offset ] );
243
244                        c->byteaddr++;
245                     }
246                     break;
247                  }
248
249                  c->bits++;
250               }
251               else
252               {
253                  if( c->bits == 8 )
254                  {
255                     c->sdar = 0;
256                  }
257                  else
258                  {
259                     c->bits = 0;
260                     c->sdar = 1;
261                  }
262               }
263            }
264            break;
265
266         case STATE_DATAOUT:
267            if( c->bits < 8 )
268            {
269               if( c->scl )
270               {
271                  if( c->bits == 0 )
272                  {
273                     int offset = data_offset( c );
274
275                     c->shift = c->data[ offset ];
276                     verboselog( device->machine, 1, "i2cmem data[ %04x ] -> %02x\n", offset, c->data[ offset ] );
277                     c->byteaddr++;
278                  }
279
280                  c->sdar = ( c->shift >> 7 ) & 1;
281
282                  c->shift = ( c->shift << 1 ) & 0xff;
283                  c->bits++;
284               }
285            }
286            else
287            {
288               if( c->scl )
289               {
290                  if( c->sdaw )
291                  {
292                     verboselog( device->machine, 1, "i2cmem sleep\n");
293                     c->state = STATE_IDLE;
294                  }
295
296                  c->bits++;
297               }
298               else
299               {
300                  if( c->bits == 8 )
301                  {
302                     c->sdar = 1;
303                  }
304                  else
305                  {
306                     c->bits = 0;
307                  }
308               }
309            }
310            break;
311         }
312      }
313      break;
314
315   case I2CMEM_WC:
316      if( c->wc != data )
317      {
318         c->wc = data;
319         verboselog( device->machine, 2, "i2cmem_write( I2CMEM_WC, %d )\n", c->wc );
320      }
321      break;
322
323   default:
324      verboselog( device->machine, 0, "i2cmem_write( %d, %d ) invalid line\n", line, data );
325      break;
326   }
327}
328
329int i2cmemdev_read( const device_config *device, int line )
330{
331   i2cmem_state *c = get_safe_token( device );
332
333   switch( line )
334   {
335   case I2CMEM_SDA:
336      if (c->readmode == 0)
337      {
338         verboselog( device->machine, 2, "i2cmem_read( I2CMEM_SDA ) %d\n", c->sdar & c->sdaw );
339         return c->sdar & c->sdaw;
340      }
341      else
342      {
343         verboselog( device->machine, 2, "i2cmem_read( I2CMEM_SDA ) %d\n", c->sdar );
344         return c->sdar;
345      }
346
347   default:
348      verboselog( device->machine, 0, "i2cmem_read( %d ) invalid line\n", line );
349      break;
350   }
351
352   return 0;
353}
354
355void i2cmemdev_set_read_mode( const device_config *device, int mode )
356{
357   i2cmem_state *c = get_safe_token( device );
358
359   c->readmode = mode;
360}
361
362/*-------------------------------------------------
363    device start callback
364-------------------------------------------------*/
365
366static DEVICE_START( i2cmem )
367{
368   i2cmem_state *c = get_safe_token( device );
369   const i2cmem_config *config;
370   unsigned char *page = NULL;
371
372   /* validate some basic stuff */
373   assert( device != NULL );
374   assert( device->inline_config != NULL );
375   assert( device->machine != NULL );
376   assert( device->machine->config != NULL );
377
378   config = device->inline_config;
379
380   c->scl = 0;
381   c->sdaw = 0;
382   c->e0 = 0;
383   c->e1 = 0;
384   c->e2 = 0;
385   c->wc = 0;
386   c->sdar = 1;
387   c->state = STATE_IDLE;
388   c->bits = 0;
389   c->shift = 0;
390   c->devsel = 0;
391   c->byteaddr = 0;
392   c->readmode = 0;
393
394   if( config != NULL )
395   {
396      c->data = auto_malloc( config->data_size );
397      if( config->data != NULL )
398         memcpy(c->data, config->data, config->data_size);
399
400      if( config->page_size > 0 )
401         page = auto_malloc( config->page_size );
402
403      c->slave_address = config->slave_address;
404      c->data_size = config->data_size;
405      c->page_size = config->page_size;
406      c->page = page;
407   }
408
409   state_save_register_device_item( device, 0, c->scl );
410   state_save_register_device_item( device, 0, c->sdaw );
411   state_save_register_device_item( device, 0, c->e0 );
412   state_save_register_device_item( device, 0, c->e1 );
413   state_save_register_device_item( device, 0, c->e2 );
414   state_save_register_device_item( device, 0, c->wc );
415   state_save_register_device_item( device, 0, c->sdar );
416   state_save_register_device_item( device, 0, c->state );
417   state_save_register_device_item( device, 0, c->bits );
418   state_save_register_device_item( device, 0, c->shift );
419   state_save_register_device_item( device, 0, c->devsel );
420   state_save_register_device_item( device, 0, c->byteaddr );
421   state_save_register_device_item_pointer( device, 0, c->data, c->data_size );
422   state_save_register_device_item( device, 0, c->readmode );
423}
424
425/*-------------------------------------------------
426    device reset callback
427-------------------------------------------------*/
428
429static DEVICE_RESET( i2cmem )
430{
431}
432
433static DEVICE_NVRAM( i2cmem )
434{
435   const i2cmem_config *config = device->inline_config;
436   i2cmem_state *c = get_safe_token( device );
437
438   if( read_or_write )
439   {
440      mame_fwrite( file, c->data, c->data_size );
441   }
442   else if( file )
443   {
444      mame_fread( file, c->data, c->data_size );
445   }
446   else
447   {
448      if( config->data != NULL )
449         memcpy( c->data, config->data, config->data_size );
450   }
451}
452
453/*-------------------------------------------------
454    device set info callback
455-------------------------------------------------*/
456
457static DEVICE_SET_INFO( i2cmem )
458{
459   switch ( state )
460   {
461      /* no parameters to set */
462   }
463}
464
465/*-------------------------------------------------
466    device get info callback
467-------------------------------------------------*/
468
469DEVICE_GET_INFO( i2cmem )
470{
471   switch ( state )
472   {
473      /* --- the following bits of info are returned as 64-bit signed integers --- */
474      case DEVINFO_INT_TOKEN_BYTES:         info->i = sizeof( i2cmem_state ); break;
475      case DEVINFO_INT_INLINE_CONFIG_BYTES:   info->i = sizeof( i2cmem_config ); break;
476      case DEVINFO_INT_CLASS:               info->i = DEVICE_CLASS_PERIPHERAL; break;
477
478      /* --- the following bits of info are returned as pointers to data or functions --- */
479      case DEVINFO_FCT_SET_INFO:            info->set_info = DEVICE_SET_INFO_NAME( i2cmem ); break;
480      case DEVINFO_FCT_START:               info->start = DEVICE_START_NAME( i2cmem ); break;
481      case DEVINFO_FCT_STOP:               /* nothing */ break;
482      case DEVINFO_FCT_RESET:               info->reset = DEVICE_RESET_NAME( i2cmem ); break;
483      case DEVINFO_FCT_NVRAM:               info->nvram = DEVICE_NVRAM_NAME( i2cmem ); break;
484
485      /* --- the following bits of info are returned as NULL-terminated strings --- */
486      case DEVINFO_STR_NAME:               strcpy( info->s, "I2CMEM" ); break;
487      case DEVINFO_STR_FAMILY:            strcpy( info->s, "EEPROM" ); break;
488      case DEVINFO_STR_VERSION:            strcpy( info->s, "1.0" ); break;
489      case DEVINFO_STR_SOURCE_FILE:         strcpy( info->s, __FILE__ ); break;
490      case DEVINFO_STR_CREDITS:            strcpy( info->s, "Copyright Nicola Salmoria and the MAME Team" ); break;
491   }
492}
src/emu/machine/i2cmemdev.h
r0r4471
1/*
2 * I2C Memory
3 *
4 */
5
6#if !defined( I2CMEMDEV_H )
7#define I2CMEMDEV_H ( 1 )
8
9#define I2CMEM_E0 ( 1 )
10#define I2CMEM_E1 ( 2 )
11#define I2CMEM_E2 ( 3 )
12#define I2CMEM_SDA ( 5 )
13#define I2CMEM_SCL ( 6 )
14#define I2CMEM_WC ( 7 )
15
16#define I2CMEM_SLAVE_ADDRESS ( 0xa0 )
17#define I2CMEM_SLAVE_ADDRESS_ALT ( 0xb0 )
18
19typedef struct _i2cmem_config i2cmem_config;
20struct _i2cmem_config
21{
22   const int slave_address;
23   const int page_size;
24   const int data_size;
25   const char *data;
26};
27
28#define I2CMEM DEVICE_GET_INFO_NAME(i2cmem)
29DEVICE_GET_INFO(i2cmem);
30
31#define MDRV_I2CMEM_ADD(_tag, _slave_address, _page_size, _data_size, _data) \
32   MDRV_DEVICE_ADD(_tag, I2CMEM, 0) \
33   MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, slave_address, _slave_address) \
34   MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, page_size, _page_size) \
35   MDRV_DEVICE_CONFIG_DATA32(i2cmem_config, data_size, _data_size) \
36   MDRV_DEVICE_CONFIG_DATAPTR(i2cmem_config, data, _data)
37
38#define MDRV_I2CMEM_REMOVE(_tag) \
39   MDRV_DEVICE_REMOVE(_tag, I2CMEM)
40
41
42void i2cmemdev_write( const device_config *device, int line, int data );
43int i2cmemdev_read( const device_config *device, int line );
44void i2cmemdev_set_read_mode( const device_config *device, int mode );
45
46#endif
src/emu/inptport.h
r4470r4471
287287   IPT_UI_PASTE,
288288   IPT_UI_SAVE_STATE,
289289   IPT_UI_LOAD_STATE,
290   IPT_UI_TOGGLE_CROSSHAIR,
291290
292291   /* additional OSD-specified UI port types (up to 16) */
293292   IPT_OSD_1,
src/emu/rendutil.c
r4470r4471
559559    bitmap_t
560560-------------------------------------------------*/
561561
562bitmap_t *render_load_png(const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha)
562bitmap_t *render_load_png(const char *path, const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha)
563563{
564564   bitmap_t *bitmap = NULL;
565565   file_error filerr;
r4470r4471
573573      fname = astring_dupc(filename);
574574   else
575575      fname = astring_assemble_3(astring_alloc(), dirname, PATH_SEPARATOR, filename);
576   filerr = mame_fopen(SEARCHPATH_ARTWORK, astring_c(fname), OPEN_FLAG_READ, &file);
576   filerr = mame_fopen(path, astring_c(fname), OPEN_FLAG_READ, &file);
577577   astring_free(fname);
578578   if (filerr != FILERR_NONE)
579579      return NULL;
src/emu/rendutil.h
r4470r4471
2929int render_clip_line(render_bounds *bounds, const render_bounds *clip);
3030int render_clip_quad(render_bounds *bounds, const render_bounds *clip, render_quad_texuv *texcoords);
3131void render_line_to_quad(const render_bounds *bounds, float width, render_bounds *bounds0, render_bounds *bounds1);
32bitmap_t *render_load_png(const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha);
32bitmap_t *render_load_png(const char *path, const char *dirname, const char *filename, bitmap_t *alphadest, int *hasalpha);
3333
3434
3535
src/emu/rendlay.c
r4470r4471
18821882   bitmap_t *bitmap;
18831883
18841884   /* load the basic bitmap */
1885   bitmap = render_load_png(dirname, file, NULL, hasalpha);
1885   bitmap = render_load_png(OPTION_ARTPATH, dirname, file, NULL, hasalpha);
18861886   if (bitmap != NULL && alphafile != NULL)
18871887
18881888      /* load the alpha bitmap if specified */
1889      if (render_load_png(dirname, alphafile, bitmap, hasalpha) == NULL)
1889      if (render_load_png(OPTION_ARTPATH, dirname, alphafile, bitmap, hasalpha) == NULL)
18901890      {
18911891         bitmap_free(bitmap);
18921892         bitmap = NULL;
src/emu/sound/psx.c
r4470r4471
6565   UINT16 m_p_n_volumeright[ MAX_CHANNEL ];
6666   UINT16 m_p_n_pitch[ MAX_CHANNEL ];
6767   UINT16 m_p_n_address[ MAX_CHANNEL ];
68   UINT16 m_p_n_envelopestate[ MAX_CHANNEL ];
69   enum envstate { e_attack = 0, e_decay, e_sustain, e_sustainEnd, e_release, e_releaseend } m_envstate;
6870   UINT16 m_p_n_attackdecaysustain[ MAX_CHANNEL ];
6971   UINT16 m_p_n_sustainrelease[ MAX_CHANNEL ];
7072   UINT16 m_p_n_adsrvolume[ MAX_CHANNEL ];
r4470r4471
152154
153155   for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ )
154156   {
155      voll = volume( chip->m_p_n_volumeleft[ n_channel ] );
156      volr = volume( chip->m_p_n_volumeright[ n_channel ] );
157      // hack, if the envelope is in release state, silence it
158      // - the envelopes aren't currently emulated!
159      // - and this prevents audiable sounds looping forever
160      if (chip->m_p_n_envelopestate[ n_channel ] == e_release )
161      {
162         voll = 0;
163         volr = 0;
164      }
165      else
166      {
167         voll = volume( chip->m_p_n_volumeleft[ n_channel ] );
168         volr = volume( chip->m_p_n_volumeright[ n_channel ] );
169      }
157170
158171      for( n_sample = 0; n_sample < samples; n_sample++ )
159172      {
r4470r4471
342355   state_save_register_device_item_array( device, 0, chip->m_p_n_volumeright );
343356   state_save_register_device_item_array( device, 0, chip->m_p_n_pitch );
344357   state_save_register_device_item_array( device, 0, chip->m_p_n_address );
358   state_save_register_device_item_array( device, 0, chip->m_p_n_envelopestate );
345359   state_save_register_device_item_array( device, 0, chip->m_p_n_attackdecaysustain );
346360   state_save_register_device_item_array( device, 0, chip->m_p_n_sustainrelease );
347361   state_save_register_device_item_array( device, 0, chip->m_p_n_adsrvolume );
r4470r4471
550564         chip->m_n_voiceon = 0;
551565         COMBINE_DATA( &chip->m_n_voiceon );
552566         verboselog( machine, 1, "psx_spu_w() voice on = %08x\n", chip->m_n_voiceon );
553         for( n_channel = 0; n_channel < 32; n_channel++ )
567         for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ )
554568         {
555569            if( ( chip->m_n_voiceon & ( 1 << n_channel ) ) != 0 )
556570            {
r4470r4471
559573               chip->m_p_n_s1[ n_channel ] = 0;
560574               chip->m_p_n_s2[ n_channel ] = 0;
561575               chip->m_p_n_blockstatus[ n_channel ] = 1;
576
577               chip->m_p_n_envelopestate[ n_channel ] = e_attack;
562578            }
563579         }
564580         break;
r4470r4471
566582         chip->m_n_voiceoff = 0;
567583         COMBINE_DATA( &chip->m_n_voiceoff );
568584         verboselog( machine, 1, "psx_spu_w() voice off = %08x\n", chip->m_n_voiceoff );
585
586         for( n_channel = 0; n_channel < MAX_CHANNEL; n_channel++ )
587         {
588            if( ( chip->m_n_voiceoff & ( 1 << n_channel ) ) != 0 )
589            {
590               // keyoff advances the envelope to release state
591               if (chip->m_p_n_envelopestate[ n_channel ] < e_release)
592                  chip->m_p_n_envelopestate[ n_channel ] = e_release;
593            }
594         }
595
569596         break;
570597      case SPU_REG( 0xd90 ):
571598         COMBINE_DATA( &chip->m_n_modulationmode );
src/emu/ui.c
r4470r4471
3939
4040enum
4141{
42   INPUT_TYPE_DIGITAL = 0,
43   INPUT_TYPE_ANALOG = 1,
44   INPUT_TYPE_ANALOG_DEC = 2,
45   INPUT_TYPE_ANALOG_INC = 3
46};
47
48enum
49{
50   ANALOG_ITEM_KEYSPEED = 0,
51   ANALOG_ITEM_CENTERSPEED,
52   ANALOG_ITEM_REVERSE,
53   ANALOG_ITEM_SENSITIVITY,
54   ANALOG_ITEM_COUNT
55};
56
57enum
58{
5942   LOADSAVE_NONE,
6043   LOADSAVE_LOAD,
6144   LOADSAVE_SAVE
r4470r4471
10661049
10671050      for (screen = video_screen_first(machine->config); screen != NULL; screen = video_screen_next(screen))
10681051      {
1069         const screen_config *scrconfig = screen->inline_config;
1052         const screen_config *scrconfig = (const screen_config *)screen->inline_config;
10701053
10711054         if (scrcount > 1)
10721055         {
r4470r4471
12831266   if (ui_input_pressed(machine, IPT_UI_SHOW_FPS))
12841267      ui_set_show_fps(!ui_get_show_fps());
12851268
1286   /* toggle crosshair display */
1287   if (ui_input_pressed(machine, IPT_UI_TOGGLE_CROSSHAIR))
1288      crosshair_toggle(machine);
1289
12901269   /* increment frameskip? */
12911270   if (ui_input_pressed(machine, IPT_UI_FRAMESKIP_INC))
12921271   {
r4470r4471
14211400static slider_state *slider_alloc(const char *title, INT32 minval, INT32 defval, INT32 maxval, INT32 incval, slider_update update, void *arg)
14221401{
14231402   int size = sizeof(slider_state) + strlen(title);
1424   slider_state *state = auto_malloc(size);
1403   slider_state *state = (slider_state *)auto_malloc(size);
14251404   memset(state, 0, size);
14261405
14271406   state->minval = minval;
r4470r4471
14951474   /* add screen parameters */
14961475   for (device = video_screen_first(machine->config); device != NULL; device = video_screen_next(device))
14971476   {
1498      const screen_config *scrconfig = device->inline_config;
1477      const screen_config *scrconfig = (const screen_config *)device->inline_config;
14991478      int defxscale = floor(scrconfig->xscale * 1000.0f + 0.5f);
15001479      int defyscale = floor(scrconfig->yscale * 1000.0f + 0.5f);
15011480      int defxoffset = floor(scrconfig->xoffset * 1000.0f + 0.5f);
r4470r4471
15381517
15391518   for (device = device_list_first(machine->config->devicelist, LASERDISC); device != NULL; device = device_list_next(device, LASERDISC))
15401519   {
1541      const laserdisc_config *config = device->inline_config;
1520      const laserdisc_config *config = (const laserdisc_config *)device->inline_config;
15421521      if (config->overupdate != NULL)
15431522      {
15441523         int defxscale = floor(config->overscalex * 1000.0f + 0.5f);
r4470r4471
15651544
15661545   for (device = video_screen_first(machine->config); device != NULL; device = video_screen_next(device))
15671546   {
1568      const screen_config *scrconfig = device->inline_config;
1547      const screen_config *scrconfig = (const screen_config *)device->inline_config;
15691548      if (scrconfig->type == SCREEN_TYPE_VECTOR)
15701549      {
15711550         /* add flicker control */
r4470r4471
16351614
16361615static INT32 slider_adjuster(running_machine *machine, void *arg, astring *string, INT32 newval)
16371616{
1638   const input_field_config *field = arg;
1617   const input_field_config *field = (const input_field_config *)arg;
16391618   input_field_user_settings settings;
16401619
16411620   input_field_get_user_settings(field, &settings);
r4470r4471
16721651
16731652static INT32 slider_refresh(running_machine *machine, void *arg, astring *string, INT32 newval)
16741653{
1675   const device_config *screen = arg;
1676   const screen_config *scrconfig = screen->inline_config;
1654   const device_config *screen = (const device_config *)arg;
1655   const screen_config *scrconfig = (const screen_config *)screen->inline_config;
16771656   double defrefresh = ATTOSECONDS_TO_HZ(scrconfig->refresh);
16781657   double refresh;
16791658
r4470r4471
16991678
17001679static INT32 slider_brightness(running_machine *machine, void *arg, astring *string, INT32 newval)
17011680{
1702   const device_config *screen = arg;
1681   const device_config *screen = (const device_config *)arg;
17031682   render_container *container = render_container_get_screen(screen);
17041683   render_container_user_settings settings;
17051684
r4470r4471
17221701
17231702static INT32 slider_contrast(running_machine *machine, void *arg, astring *string, INT32 newval)
17241703{
1725   const device_config *screen = arg;
1704   const device_config *screen = (const device_config *)arg;
17261705   render_container *container = render_container_get_screen(screen);
17271706   render_container_user_settings settings;
17281707
r4470r4471
17441723
17451724static INT32 slider_gamma(running_machine *machine, void *arg, astring *string, INT32 newval)
17461725{
1747   const device_config *screen = arg;
1726   const device_config *screen = (const device_config *)arg;
17481727   render_container *container = render_container_get_screen(screen);
17491728   render_container_user_settings settings;
17501729
r4470r4471
17671746
17681747static INT32 slider_xscale(running_machine *machine, void *arg, astring *string, INT32 newval)
17691748{
1770   const device_config *screen = arg;
1749   const device_config *screen = (const device_config *)arg;
17711750   render_container *container = render_container_get_screen(screen);
17721751   render_container_user_settings settings;
17731752
r4470r4471
17901769
17911770static INT32 slider_yscale(running_machine *machine, void *arg, astring *string, INT32 newval)
17921771{
1793   const device_config *screen = arg;
1772   const device_config *screen = (const device_config *)arg;
17941773   render_container *container = render_container_get_screen(screen);
17951774   render_container_user_settings settings;
17961775
r4470r4471
18131792
18141793static INT32 slider_xoffset(running_machine *machine, void *arg, astring *string, INT32 newval)
18151794{
1816   const device_config *screen = arg;
1795   const device_config *screen = (const device_config *)arg;
18171796   render_container *container = render_container_get_screen(screen);
18181797   render_container_user_settings settings;
18191798
r4470r4471
18361815
18371816static INT32 slider_yoffset(running_machine *machine, void *arg, astring *string, INT32 newval)
18381817{
1839   const device_config *screen = arg;
1818   const device_config *screen = (const device_config *)arg;
18401819   render_container *container = render_container_get_screen(screen);
18411820   render_container_user_settings settings;
18421821
r4470r4471
18591838
18601839static INT32 slider_overxscale(running_machine *machine, void *arg, astring *string, INT32 newval)
18611840{
1862   const device_config *laserdisc = arg;
1841   const device_config *laserdisc = (const device_config *)arg;
18631842   laserdisc_config settings;
18641843
18651844   laserdisc_get_config(laserdisc, &settings);
r4470r4471
18811860
18821861static INT32 slider_overyscale(running_machine *machine, void *arg, astring *string, INT32 newval)
18831862{
1884   const device_config *laserdisc = arg;
1863   const device_config *laserdisc = (const device_config *)arg;
18851864   laserdisc_config settings;
18861865
18871866   laserdisc_get_config(laserdisc, &settings);
r4470r4471
19031882
19041883static INT32 slider_overxoffset(running_machine *machine, void *arg, astring *string, INT32 newval)
19051884{
1906   const device_config *laserdisc = arg;
1885   const device_config *laserdisc = (const device_config *)arg;
19071886   laserdisc_config settings;
19081887
19091888   laserdisc_get_config(laserdisc, &settings);
r4470r4471
19251904
19261905static INT32 slider_overyoffset(running_machine *machine, void *arg, astring *string, INT32 newval)
19271906{
1928   const device_config *laserdisc = arg;
1907   const device_config *laserdisc = (const device_config *)arg;
19291908   laserdisc_config settings;
19301909
19311910   laserdisc_get_config(laserdisc, &settings);
src/emu/crsshair.c
r4470r4471
1111
1212#include "driver.h"
1313#include "rendutil.h"
14#include "config.h"
15#include "xmlfile.h"
1416
1517
1618
r4470r4471
2931typedef struct _crosshair_global crosshair_global;
3032struct _crosshair_global
3133{
34   UINT8            usage;               /* true if any crosshairs are used */
3235   UINT8             used[MAX_PLAYERS];      /* usage per player */
36   UINT8             mode[MAX_PLAYERS];      /* visibility mode per player */
3337   UINT8             visible[MAX_PLAYERS];   /* visibility per player */
3438   bitmap_t *         bitmap[MAX_PLAYERS];   /* bitmap per player */
3539   render_texture *   texture[MAX_PLAYERS];   /* texture per player */
3640   const device_config *screen[MAX_PLAYERS];   /* the screen on which this player's crosshair is drawn */
3741   float             x[MAX_PLAYERS];         /* current X position */
3842   float            y[MAX_PLAYERS];         /* current Y position */
43   float             last_x[MAX_PLAYERS];   /* last X position */
44   float            last_y[MAX_PLAYERS];   /* last Y position */
3945   UINT8            fade;               /* color fading factor */
4046   UINT8             animation_counter;      /* animation frame index */
47   UINT16            auto_time;            /* time in seconds to turn invisible */
48   UINT16            time[MAX_PLAYERS];      /* time since last movement */
49   char            name[MAX_PLAYERS][CROSSHAIR_PIC_NAME_LENGTH + 1];   /* name of crosshair png file */
4150};
4251
4352
r4470r4471
121130***************************************************************************/
122131
123132static void crosshair_exit(running_machine *machine);
133static void crosshair_load(running_machine *machine, int config_type, xml_data_node *parentnode);
134static void crosshair_save(running_machine *machine, int config_type, xml_data_node *parentnode);
135
124136static void animate(const device_config *device, void *param, int vblank_state);
125137
126138
r4470r4471
134146    structures for the given player
135147-------------------------------------------------*/
136148
137static void create_bitmap(int player)
149static void create_bitmap(running_machine *machine, int player)
138150{
139   /* if we don't have a bitmap for this player yet */
151   int x, y;
152   char filename[20];
153   rgb_t color = crosshair_colors[player];
154
155   /* if we have a bitmap for this player, kill it */
156   if (global.bitmap[player] != NULL)
157      free(global.bitmap[player]);
158
159   if (global.name[player][0] != 0)
160   {
161      /* look for user specified file */
162      sprintf(filename, "%s.png", global.name[player]);
163      global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, NULL, filename, NULL, NULL);
164   }
165   else
166   {
167      /* look for default cross?.png in crsshair\game dir */
168      sprintf(filename, "cross%d.png", player + 1);
169      global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, machine->gamedrv->name, filename, NULL, NULL);
170
171      /* look for default cross?.png in crsshair dir */
172      if (global.bitmap[player] == NULL)
173         global.bitmap[player] = render_load_png(OPTION_CRSSHAIRPATH, NULL, filename, NULL, NULL);
174   }
175
176   /* if that didn't work, use the built-in one */
140177   if (global.bitmap[player] == NULL)
141178   {
142      int x, y;
143      char filename[20];
144      rgb_t color = crosshair_colors[player];
179      /* allocate a blank bitmap to start with */
180      global.bitmap[player] = bitmap_alloc(CROSSHAIR_RAW_SIZE, CROSSHAIR_RAW_SIZE, BITMAP_FORMAT_ARGB32);
181      bitmap_fill(global.bitmap[player], NULL, MAKE_ARGB(0x00,0xff,0xff,0xff));
145182
146      /* first try to load a bitmap for the crosshair */
147      sprintf(filename, "cross%d.png", player);
148      global.bitmap[player] = render_load_png(NULL, filename, NULL, NULL);
149
150      /* if that didn't work, use the built-in one */
151      if (global.bitmap[player] == NULL)
183      /* extract the raw source data to it */
184      for (y = 0; y < CROSSHAIR_RAW_SIZE / 2; y++)
152185      {
153         /* allocate a blank bitmap to start with */
154         global.bitmap[player] = bitmap_alloc(CROSSHAIR_RAW_SIZE, CROSSHAIR_RAW_SIZE, BITMAP_FORMAT_ARGB32);
155         bitmap_fill(global.bitmap[player], NULL, MAKE_ARGB(0x00,0xff,0xff,0xff));
186         /* assume it is mirrored vertically */
187         UINT32 *dest0 = BITMAP_ADDR32(global.bitmap[player], y, 0);
188         UINT32 *dest1 = BITMAP_ADDR32(global.bitmap[player], CROSSHAIR_RAW_SIZE - 1 - y, 0);
156189
157         /* extract the raw source data to it */
158         for (y = 0; y < CROSSHAIR_RAW_SIZE / 2; y++)
159         {
160            /* assume it is mirrored vertically */
161            UINT32 *dest0 = BITMAP_ADDR32(global.bitmap[player], y, 0);
162            UINT32 *dest1 = BITMAP_ADDR32(global.bitmap[player], CROSSHAIR_RAW_SIZE - 1 - y, 0);
163
164            /* extract to two rows simultaneously */
165            for (x = 0; x < CROSSHAIR_RAW_SIZE; x++)
166               if ((crosshair_raw_top[y * CROSSHAIR_RAW_ROWBYTES + x / 8] << (x % 8)) & 0x80)
167                  dest0[x] = dest1[x] = MAKE_ARGB(0xff,0x00,0x00,0x00) | color;
168         }
190         /* extract to two rows simultaneously */
191         for (x = 0; x < CROSSHAIR_RAW_SIZE; x++)
192            if ((crosshair_raw_top[y * CROSSHAIR_RAW_ROWBYTES + x / 8] << (x % 8)) & 0x80)
193               dest0[x] = dest1[x] = MAKE_ARGB(0xff,0x00,0x00,0x00) | color;
169194      }
195   }
170196
171      /* create a texture to reference the bitmap */
172      global.texture[player] = render_texture_alloc(render_texture_hq_scale, NULL);
173      render_texture_set_bitmap(global.texture[player], global.bitmap[player], NULL, TEXFORMAT_ARGB32, NULL);
174   }
197   /* create a texture to reference the bitmap */
198   global.texture[player] = render_texture_alloc(render_texture_hq_scale, NULL);
199   render_texture_set_bitmap(global.texture[player], global.bitmap[player], NULL, TEXFORMAT_ARGB32, NULL);
175200}
176201
177202
r4470r4471
191216   /* clear all the globals */
192217   memset(&global, 0, sizeof(global));
193218
219   /* setup the default auto visibility time */
220   global.auto_time = CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT;
221
194222   /* determine who needs crosshairs */
195223   for (port = machine->portconfig; port != NULL; port = port->next)
196224      for (field = port->fieldlist; field != NULL; field = field->next)
r4470r4471
200228
201229            assert(player < MAX_PLAYERS);
202230
203            /* mark as used and visible */
231            /* mark as used and set the default visibility and mode */
232            global.usage = TRUE;
204233            global.used[player] = TRUE;
205            global.visible[player] = TRUE;
234            global.mode[player] = CROSSHAIR_VISIBILITY_DEFAULT;
235            global.visible[player] = (CROSSHAIR_VISIBILITY_DEFAULT == CROSSHAIR_VISIBILITY_OFF) ? FALSE : TRUE;
206236
207237            /* for now, use the main screen */
208238            global.screen[player] = machine->primary_screen;
209239
210            create_bitmap(player);
240            create_bitmap(machine, player);
211241         }
212242
243   /* register callbacks for when we load/save configurations */
244   if (global.usage)
245      config_register(machine, "crosshairs", crosshair_load, crosshair_save);
246
213247   /* register the animation callback */
214248   if (machine->primary_screen != NULL)
215249      video_screen_register_vblank_callback(machine->primary_screen, animate, NULL);
r4470r4471
240274
241275
242276/*-------------------------------------------------
243    crosshair_toggle - toggle crosshair
244    visibility
277    crosshair_get_usage - return TRUE
278    if any crosshairs are used
245279-------------------------------------------------*/
246280
247void crosshair_toggle(running_machine *machine)
281int crosshair_get_usage(running_machine *machine)
248282{
249   int player;
250   int first_hidden_player = -1;
283   return global.usage;
284}
251285
252   /* find the first invisible crosshair */
253   for (player = 0; player < MAX_PLAYERS; player++)
254      if (global.used[player] && !global.visible[player])
255      {
256         first_hidden_player = player;
257         break;
258      }
259286
260   /* if all visible, turn all off */
261   if (first_hidden_player == -1)
262      for (player = 0; player < MAX_PLAYERS; player++)
263         global.visible[player] = FALSE;
287/*-------------------------------------------------
288    crosshair_get_user_settings - return the
289    current crosshair settings for a player
290    Note: auto_time is common for all players
291-------------------------------------------------*/
264292
265   /* otherwise, turn on the first one that isn't currently on */
266   else
267      global.visible[first_hidden_player] = TRUE;
293void crosshair_get_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings)
294{
295   settings->auto_time = global.auto_time;
296   settings->used = global.used[player];
297   settings->mode = global.mode[player];
298   strcpy(settings->name, global.name[player]);
268299}
269300
270301
271302/*-------------------------------------------------
303    crosshair_set_user_settings - modify the
304    current crosshair settings for a player
305    Note: auto_time is common for all players
306-------------------------------------------------*/
307
308void crosshair_set_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings)
309{
310   int changed = FALSE;
311
312   global.auto_time = settings->auto_time;
313   global.used[player] = settings->used;
314   global.mode[player] = settings->mode;
315
316   /* set visibility as specified by mode */
317   /* auto mode starts with visibility off */
318   global.visible[player] = (settings->mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE;
319
320   /* update bitmap if name has changed */
321   changed = strcmp(settings->name, global.name[player]);
322   strcpy(global.name[player], settings->name);
323   if (changed)
324      create_bitmap(machine, player);
325}
326
327
328/*-------------------------------------------------
272329    animate - animates the crosshair once a frame
273330-------------------------------------------------*/
274331
r4470r4471
285342   else
286343      global.fade = 0xa0 + (0x60 * (~global.animation_counter & 0x7f) / 0x80);
287344
288   /* read all the lightgun values */
289345   for (player = 0; player < MAX_PLAYERS; player++)
346   {
347      /* read all the lightgun values */
290348      if (global.used[player])
291349         input_port_get_crosshair_position(device->machine, player, &global.x[player], &global.y[player]);
350
351      /* auto visibility */
352      if (global.mode[player] == CROSSHAIR_VISIBILITY_AUTO)
353      {
354         if ((global.x[player] != global.last_x[player]) || (global.y[player] != global.last_y[player]))
355         {
356            /* crosshair has moved, keep crosshair visible */
357            global.visible[player] = TRUE;
358            global.last_x[player] = global.x[player];
359            global.last_y[player] = global.y[player];
360            global.time[player] = 0;
361         }
362         else
363         {
364            /* see if the player has been motionless for time specified */
365            /* note that the animate() routine is called twice per frame */
366            /* slightly confusing formula, but the effect is: */
367            /* auto_time = 0 makes the crosshair barely visible while moved */
368            /* every increment in auto_time is about .2s at 60Hz */
369            if (global.time[player] > global.auto_time * 24 + 4)
370               /* time exceeded so turn crosshair invisible */
371               global.visible[player] = FALSE;
372
373            /* increment player visibility time */
374            global.time[player]++;
375         }
376      }
377   }
292378}
293379
294380
r4470r4471
325411{
326412   global.screen[player] = screen;
327413}
414
415
416/*-------------------------------------------------
417    crosshair_load - read and apply data from the
418    configuration file
419-------------------------------------------------*/
420
421static void crosshair_load(running_machine *machine, int config_type, xml_data_node *parentnode)
422{
423   /* Note: crosshair_load() is only registered if croshairs are used */
424
425   xml_data_node *crosshairnode;
426   int auto_time;
427
428   /* we only care about game files */
429   if (config_type != CONFIG_TYPE_GAME)
430      return;
431
432   /* might not have any data */
433   if (parentnode == NULL)
434      return;
435
436   /* loop and get player crosshair info */
437   for (crosshairnode = xml_get_sibling(parentnode->child, "crosshair"); crosshairnode; crosshairnode = xml_get_sibling(crosshairnode->next, "crosshair"))
438   {
439      int  player, mode;
440
441      player = xml_get_attribute_int(crosshairnode, "player", -1);
442
443      /* check to make sure we have a valid player */
444      /* also check if the player really uses a crosshair */
445      if (player >=0 && player < MAX_PLAYERS && global.used[player])
446      {
447         /* get, check, and store visibility mode */
448         mode = xml_get_attribute_int(crosshairnode, "mode", CROSSHAIR_VISIBILITY_DEFAULT);
449         if (mode >= CROSSHAIR_VISIBILITY_OFF && mode <= CROSSHAIR_VISIBILITY_AUTO)
450         {
451            global.mode[player] = (UINT8)mode;
452            /* set visibility as specified by mode */
453            /* auto mode starts with visibility off */
454            global.visible[player] = (mode == CROSSHAIR_VISIBILITY_ON) ? TRUE : FALSE;
455         }
456
457         /* get and store crosshair pic name, truncate name to max length */
458         strncpy(global.name[player], xml_get_attribute_string(crosshairnode, "pic", ""), CROSSHAIR_PIC_NAME_LENGTH);
459         /* update bitmap */
460         create_bitmap(machine, player);
461      }
462   }
463
464   /* get, check, and store auto visibility time */
465   crosshairnode = xml_get_sibling(parentnode->child, "autotime");
466   if (crosshairnode != NULL)
467   {
468      auto_time = xml_get_attribute_int(crosshairnode, "val", CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT);
469      if ((auto_time >= CROSSHAIR_VISIBILITY_AUTOTIME_MIN) && (auto_time <= CROSSHAIR_VISIBILITY_AUTOTIME_MAX))
470            global.auto_time = (UINT8)auto_time;
471   }
472}
473
474
475/*-------------------------------------------------
476    crosshair_save -  save data to the
477    configuration file
478-------------------------------------------------*/
479
480static void crosshair_save(running_machine *machine, int config_type, xml_data_node *parentnode)
481{
482   /* Note: crosshair_save() is only registered if crosshairs are used */
483
484   xml_data_node *crosshairnode;
485   int player;
486
487   /* we only care about game files */
488   if (config_type != CONFIG_TYPE_GAME)
489      return;
490
491   for (player = 0; player < MAX_PLAYERS; player++)
492   {
493      if (global.used[player])
494      {
495         /* create a node */
496         crosshairnode = xml_add_child(parentnode, "crosshair", NULL);
497
498         if (crosshairnode != NULL)
499         {
500            int changed = FALSE;
501
502            xml_set_attribute_int(crosshairnode, "player", player);
503
504            if (global.visible[player] != CROSSHAIR_VISIBILITY_DEFAULT)
505            {
506               xml_set_attribute_int(crosshairnode, "mode", global.mode[player]);
507               changed = TRUE;
508            }
509
510            /* the default graphic name is "", so only save if not */
511            if (strlen(global.name[player]) > 0)
512            {
513               xml_set_attribute(crosshairnode, "pic", global.name[player]);
514               changed = TRUE;
515            }
516
517            /* if nothing changed, kill the node */
518            if (!changed)
519               xml_delete_node(crosshairnode);
520         }
521      }
522   }
523
524   /* always store autotime so that it stays at the user value if it is needed */
525   if (global.auto_time != CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT)
526   {
527      /* create a node */
528      crosshairnode = xml_add_child(parentnode, "autotime", NULL);
529
530      if (crosshairnode != NULL)
531         xml_set_attribute_int(crosshairnode, "val", global.auto_time);
532   }
533
534}
src/emu/crsshair.h
r4470r4471
2222#define CROSSHAIR_SCREEN_NONE   ((const device_config *) 0)
2323#define CROSSHAIR_SCREEN_ALL   ((const device_config *) ~0)
2424
25/* user settings for visibility mode */
26#define CROSSHAIR_VISIBILITY_OFF            0
27#define CROSSHAIR_VISIBILITY_ON               1
28#define CROSSHAIR_VISIBILITY_AUTO            2
29#define CROSSHAIR_VISIBILITY_DEFAULT         CROSSHAIR_VISIBILITY_AUTO
2530
31/* range allowed for auto visibility */
32#define CROSSHAIR_VISIBILITY_AUTOTIME_MIN         0
33#define CROSSHAIR_VISIBILITY_AUTOTIME_MAX         50
34#define CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT      15
2635
36/* maximum crosshair pic filename size */
37#define CROSSHAIR_PIC_NAME_LENGTH            12
38
39
40
2741/***************************************************************************
42    TYPE DEFINITIONS
43***************************************************************************/
44
45/* user-controllable settings for a player */
46typedef struct _crosshair_user_settings crosshair_user_settings;
47struct _crosshair_user_settings
48{
49   UINT8          used;      /* is used */
50   UINT8          mode;      /* visibility mode */
51   UINT8         auto_time;   /* time in seconds to blank crosshair if no movement */
52   char         name[CROSSHAIR_PIC_NAME_LENGTH + 1];      /* bitmap name */
53};
54
55
56
57/***************************************************************************
2858    FUNCTION PROTOTYPES
2959***************************************************************************/
3060
r4470r4471
4070/* sets the screen(s) for a given player's crosshair */
4171void crosshair_set_screen(running_machine *machine, int player, const device_config *screen);
4272
73/* return TRUE if any crosshairs are used */
74int crosshair_get_usage(running_machine *machine);
4375
76/* return the current crosshair settings for the given player */
77void crosshair_get_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings);
4478
79/* modify the current crosshair settings for the given player */
80void crosshair_set_user_settings(running_machine *machine, UINT8 player, crosshair_user_settings *settings);
81
82
4583#endif   /* __CRSSHAIR_H__ */
src/emu/fileio.h
r4470r4471
4545#define SEARCHPATH_INI         OPTION_INIPATH
4646#define SEARCHPATH_FONT         OPTION_FONTPATH
4747#define SEARCHPATH_CHEAT      OPTION_CHEATPATH
48#define SEARCHPATH_CRSSHAIRPATH   OPTION_CRSSHAIRPATH
4849
4950#define SEARCHPATH_IMAGE_DIFF   OPTION_DIFF_DIRECTORY
5051#define SEARCHPATH_NVRAM      OPTION_NVRAM_DIRECTORY
src/mess/video/vectrex.c
r4470r4471
313313
314314   lp_t = timer_alloc(machine, lightpen_trigger, NULL);
315315
316   /* Switch off crosshairs since most games don't use lightpen */
317   crosshair_toggle(machine);
318
319316   refresh = timer_alloc(machine, vectrex_refresh, NULL);
320317
321318   VIDEO_START_CALL(vector);
src/mess/messdriv.c
r4470r4471
221221   DRIVER( z88 )      /*                                       */
222222
223223   /* AMSTRAD */
224   DRIVER( cpc464 )   /* Amstrad (Schneider in Germany) 1984            */
225   DRIVER( cpc664 )   /* Amstrad (Schneider in Germany) 1985            */
226   DRIVER( cpc6128 )   /* Amstrad (Schneider in Germany) 1985            */
227   DRIVER( cpc6128s )   /* Amstrad (Schneider in Germany) 1985            */
228   DRIVER( cpc6128f )   /* Amstrad (Schneider in Germany) 1985 (AZERTY)      */
229   DRIVER( cpc464p )   /* Amstrad CPC464  Plus - 1990                  */
230   DRIVER( cpc6128p )   /* Amstrad CPC6128 Plus - 1990                  */
231   DRIVER( gx4000 )   /* Amstrad GX4000 - 1990                     */
232   DRIVER( kccomp )   /* VEB KC compact                           */
233   DRIVER( al520ex )   /* Patisonic Aleste 520EX (1993)               */
234   DRIVER( pcw8256 )   /* 198? PCW8256                              */
235   DRIVER( pcw8512 )   /* 198? PCW8512                              */
236   DRIVER( pcw9256 )   /* 198? PCW9256                              */
237   DRIVER( pcw9512 )   /* 198? PCW9512 (+)                           */
238   DRIVER( pcw10 )    /* 198? PCW10                              */
239   DRIVER( pcw16 )      /* 1995 PCW16                              */
240   DRIVER( nc100 )      /* 19?? NC100                              */
241   DRIVER( nc200 )      /* 19?? NC200                              */
224//0130u3   DRIVER( cpc464 )   /* Amstrad (Schneider in Germany) 1984            */
225//0130u3   DRIVER( cpc664 )   /* Amstrad (Schneider in Germany) 1985            */
226//0130u3   DRIVER( cpc6128 )   /* Amstrad (Schneider in Germany) 1985            */
227//0130u3   DRIVER( cpc6128s )   /* Amstrad (Schneider in Germany) 1985            */
228//0130u3   DRIVER( cpc6128f )   /* Amstrad (Schneider in Germany) 1985 (AZERTY)      */
229//0130u3   DRIVER( cpc464p )   /* Amstrad CPC464  Plus - 1990                  */
230//0130u3   DRIVER( cpc6128p )   /* Amstrad CPC6128 Plus - 1990                  */
231//0130u3   DRIVER( gx4000 )   /* Amstrad GX4000 - 1990                     */
232//0130u3   DRIVER( kccomp )   /* VEB KC compact                           */
233//0130u3   DRIVER( al520ex )   /* Patisonic Aleste 520EX (1993)               */
234//0130u3   DRIVER( pcw8256 )   /* 198? PCW8256                              */
235//0130u3   DRIVER( pcw8512 )   /* 198? PCW8512                              */
236//0130u3   DRIVER( pcw9256 )   /* 198? PCW9256                              */
237//0130u3   DRIVER( pcw9512 )   /* 198? PCW9512 (+)                           */
238//0130u3   DRIVER( pcw10 )    /* 198? PCW10                              */
239//0130u3   DRIVER( pcw16 )      /* 1995 PCW16                              */
240//0130u3   DRIVER( nc100 )      /* 19?? NC100                              */
241//0130u3   DRIVER( nc200 )      /* 19?? NC200                              */
242242
243243   /* APPLE */
244244   DRIVER( apple1 )   /* Jul 1976 Apple 1                           */
r4470r4471
687687   DRIVER( c1pmf )
688688
689689   /* ASCII & MICROSOFT */
690   DRIVER( msx )      /* 1983 MSX                               */
691   DRIVER( ax170 )
692   DRIVER( canonv10 )
693   DRIVER( canonv20 )
694   DRIVER( dpc100 )   /* 1984 MSX Korea                           */
695   DRIVER( dpc180 )   /* 1984 MSX Korea                           */
696   DRIVER( dpc200 )   /* 1984 MSX Korea                           */
697   DRIVER( gsfc200 )
698   DRIVER( expert10 )   /* 1983 MSX Brazil                           */
699   DRIVER( expert11 )   /* 1984 MSX Brazil                           */
700   DRIVER( expert13 )   /* 1984 MSX Brazil                           */
701   DRIVER( expertdp )   /* 1985 MSX Brazil                           */
702   DRIVER( expertpl )   /* 1984 MSX Brazil                           */
703   DRIVER( jvchc7gb )
704   DRIVER( mlf80 )
705   DRIVER( mlfx1 )
706   DRIVER( cf1200 )   /* 1984 MSX Japan                           */
707   DRIVER( cf2000 )   /* 1983 MSX Japan                           */
708   DRIVER( cf2700 )   /* 1984 MSX Japan                           */
709   DRIVER( cf3000 )   /* 1984 MSX Japan                           */
710   DRIVER( cf3300 )   /* 1985 MSX Japan                           */
711   DRIVER( fs1300 )   /* 1985 MSX Japan                           */
712   DRIVER( fs4000 )   /* 1985 MSX Japan                           */
713   DRIVER( nms801 )
714   DRIVER( vg802000 )
715   DRIVER( vg802020 )   /* 1985 MSX                                 */
716   DRIVER( piopx7 )
717   DRIVER( mpc100 )
718   DRIVER( hotbit11 )   /* 1985 MSX Brazil                           */
719   DRIVER( hotbit12 )   /* 1985 MSX   Brazil                           */
720   DRIVER( hotbi13b )   /* 1985 MSX   Brazil                           */
721   DRIVER( hotbi13p )   /* 1985 MSX   Brazil                           */
722   DRIVER( hotbit20 )   /* 1986 MSX2 Brazil                           */
723   DRIVER( hb10p )
724   DRIVER( hb20p )
725   DRIVER( hb201 )      /* 1985 MSX Japan                           */
726   DRIVER( hb201p )   /* 1985 MSX                                 */
727   DRIVER( hb501p )   /* 1984 MSX                                 */
728   DRIVER( hb55d )      /* 1983 MSX Germany                           */
729   DRIVER( hb55p )      /* 1983 MSX                                 */
730   DRIVER( hb75d )      /* 1983 MSX Germany                           */
731   DRIVER( hb75p )      /* 1983 MSX                                 */
732   DRIVER( svi728 )   /* 1985 MSX                                 */
733   DRIVER( svi738 )   /* 1985 MSX                                 */
734   DRIVER( svi738sw )   /* 1985 MSX                                 */
735   DRIVER( tadpc200 )
736   DRIVER( tadpc20a )
737   DRIVER( hx10 )      /* 1984 MSX                                 */
738   DRIVER( hx10s )      /* 1984 MSX                                 */
739   DRIVER( hx20 )      /* 1984 MSX                                 */
740   DRIVER( cx5m )
741   DRIVER( cx5m128 )
742   DRIVER( cx5m2 )
743   DRIVER( yis303 )
744   DRIVER( yis503 )
745   DRIVER( yis503ii )
746   DRIVER( y503iir )
747   DRIVER( y503iir2 )
748   DRIVER( yis503m )
749   DRIVER( yc64 )
690//0130u3   DRIVER( msx )      /* 1983 MSX                               */
691//0130u3   DRIVER( ax170 )
692//0130u3   DRIVER( canonv10 )
693//0130u3   DRIVER( canonv20 )
694//0130u3   DRIVER( dpc100 )   /* 1984 MSX Korea                           */
695//0130u3   DRIVER( dpc180 )   /* 1984 MSX Korea                           */
696//0130u3   DRIVER( dpc200 )   /* 1984 MSX Korea                           */
697//0130u3   DRIVER( gsfc200 )
698//0130u3   DRIVER( expert10 )   /* 1983 MSX Brazil                           */
699//0130u3   DRIVER( expert11 )   /* 1984 MSX Brazil                           */
700//0130u3   DRIVER( expert13 )   /* 1984 MSX Brazil                           */
701//0130u3   DRIVER( expertdp )   /* 1985 MSX Brazil                           */
702//0130u3   DRIVER( expertpl )   /* 1984 MSX Brazil                           */
703//0130u3   DRIVER( jvchc7gb )
704//0130u3   DRIVER( mlf80 )
705//0130u3   DRIVER( mlfx1 )
706//0130u3   DRIVER( cf1200 )   /* 1984 MSX Japan                           */
707//0130u3   DRIVER( cf2000 )   /* 1983 MSX Japan                           */
708//0130u3   DRIVER( cf2700 )   /* 1984 MSX Japan                           */
709//0130u3   DRIVER( cf3000 )   /* 1984 MSX Japan                           */
710//0130u3   DRIVER( cf3300 )   /* 1985 MSX Japan                           */
711//0130u3   DRIVER( fs1300 )   /* 1985 MSX Japan                           */
712//0130u3   DRIVER( fs4000 )   /* 1985 MSX Japan                           */
713//0130u3   DRIVER( nms801 )
714//0130u3   DRIVER( vg802000 )
715//0130u3   DRIVER( vg802020 )   /* 1985 MSX                                 */
716//0130u3   DRIVER( piopx7 )
717//0130u3   DRIVER( mpc100 )
718//0130u3   DRIVER( hotbit11 )   /* 1985 MSX Brazil                           */
719//0130u3   DRIVER( hotbit12 )   /* 1985 MSX   Brazil                           */
720//0130u3   DRIVER( hotbi13b )   /* 1985 MSX   Brazil                           */
721//0130u3   DRIVER( hotbi13p )   /* 1985 MSX   Brazil                           */
722//0130u3   DRIVER( hotbit20 )   /* 1986 MSX2 Brazil                           */
723//0130u3   DRIVER( hb10p )
724//0130u3   DRIVER( hb20p )
725//0130u3   DRIVER( hb201 )      /* 1985 MSX Japan                           */
726//0130u3   DRIVER( hb201p )   /* 1985 MSX                                 */
727//0130u3   DRIVER( hb501p )   /* 1984 MSX                                 */
728//0130u3   DRIVER( hb55d )      /* 1983 MSX Germany                           */
729//0130u3   DRIVER( hb55p )      /* 1983 MSX                                 */
730//0130u3   DRIVER( hb75d )      /* 1983 MSX Germany                           */
731//0130u3   DRIVER( hb75p )      /* 1983 MSX                                 */
732//0130u3   DRIVER( svi728 )   /* 1985 MSX                                 */
733//0130u3   DRIVER( svi738 )   /* 1985 MSX                                 */
734//0130u3   DRIVER( svi738sw )   /* 1985 MSX                                 */
735//0130u3   DRIVER( tadpc200 )
736//0130u3   DRIVER( tadpc20a )
737//0130u3   DRIVER( hx10 )      /* 1984 MSX                                 */
738//0130u3   DRIVER( hx10s )      /* 1984 MSX                                 */
739//0130u3   DRIVER( hx20 )      /* 1984 MSX                                 */
740//0130u3   DRIVER( cx5m )
741//0130u3   DRIVER( cx5m128 )
742//0130u3   DRIVER( cx5m2 )
743//0130u3   DRIVER( yis303 )
744//0130u3   DRIVER( yis503 )
745//0130u3   DRIVER( yis503ii )
746//0130u3   DRIVER( y503iir )
747//0130u3   DRIVER( y503iir2 )
748//0130u3   DRIVER( yis503m )
749//0130u3   DRIVER( yc64 )
750750
751751
752   DRIVER( msx2 )      /* 1985 MSX2                              */
753   DRIVER( ax350 )
754   DRIVER( ax370 )
755   DRIVER( hbf9p )      /* 1985 MSX2                              */
756   DRIVER( hbf9s )      /* 1985 MSX2                              */
757   DRIVER( hbf500p )   /* 1985 MSX2                              */
758   DRIVER( hbf700d )   /* 1985 MSX2 Germany                        */
759   DRIVER( hbf700f )   /* 1985 MSX2                   */
760   DRIVER( hbf700p )   /* 1985 MSX2                              */
761   DRIVER( hbf700s )   /* 1985 MSX2 Spain                           */
762   DRIVER( hbg900ap )   /* 1986 MSX2                              */
763   DRIVER( hbg900p )   /* 1986 MSX2                              */
764   DRIVER( nms8220 )   /* 1986 MSX2                              */
765   DRIVER( nms8220a )   /* 1986 MSX2                              */
766   DRIVER( vg8230 )   /* 1986 MSX2                              */
767   DRIVER( vg8235 )   /* 1986 MSX2                              */
768   DRIVER( vg8235f)   /* 1986 MSX2                              */
769   DRIVER( vg8240)   /* 1986 MSX2                              */
770   DRIVER( nms8245 )   /* 1986 MSX2                              */
771   DRIVER( nms8245f)   /* 1986 MSX2                              */
772   DRIVER( nms8250 )   /* 1986 MSX2                              */
773   DRIVER( nms8255 )   /* 1986 MSX2                              */
774   DRIVER( nms8280 )   /* 1986 MSX2                              */
775   DRIVER( nms8280g)   /* 1986 MSX2                              */
776   DRIVER( tpc310)     /* 1986 MSX2                              */
777   DRIVER( hx23)       /* 1986 MSX2                              */
778   DRIVER( hx23f)     /* 1986 MSX2                              */
779   DRIVER( cx7m)       /* 1986 MSX2                              */
780   DRIVER( cx7m128)   /* 1986 MSX2                              */
781   DRIVER( fs5500 )   /* 1985 MSX2 Japan                           */
782   DRIVER( fs4500 )   /* 1986 MSX2 Japan                           */
783   DRIVER( fs4700 )   /* 1986 MSX2 Japan                           */
784   DRIVER( fs5000 )   /* 1986 MSX2 Japan                           */
785   DRIVER( fs4600 )   /* 1986 MSX2 Japan                           */
786   DRIVER( fsa1 )      /* 1986 MSX2 Japan                           */
787   DRIVER( fsa1a )      /* 1986 MSX2 Japan                           */
788   DRIVER( fsa1mk2 )   /* 1987 MSX2 Japan                           */
789   DRIVER( fsa1f )      /* 1987 MSX2 Japan                           */
790   DRIVER( fsa1fm )   /* 1988 MSX2 Japan                           */
791   DRIVER( hbf500 )   /* 1986 MSX2 Japan                           */
792   DRIVER( hbf900 )   /* 1986 MSX2 Japan                           */
793   DRIVER( hbf900a )   /* 1986 MSX2 Japan                           */
794   DRIVER( hbf1 )      /* 1986 MSX2 Japan                           */
795   DRIVER( hbf12 )      /* 1987 MSX2 Japan                           */
796   DRIVER( hbf1xd )   /* 1987 MSX2 Japan                           */
797   DRIVER( hbf1xdm2 )   /* 1988 MSX2 Japan                           */
798   DRIVER( phc23 )      /* 1986 MSX2 Japan                           */
799   DRIVER( cpc300 )   /* 1986 MSX2 Korea                           */
800   DRIVER( cpc300e )   /* 1986 MSX2 Korea                           */
801   DRIVER( cpc400 )   /* 1986 MSX2 Korea                           */
802   DRIVER( cpc400s )   /* 1986 MSX2 Korea                           */
803   DRIVER( expert20 )/* 1986 MSX2 Korea                           */
752//0130u3   DRIVER( msx2 )      /* 1985 MSX2                              */
753//0130u3   DRIVER( ax350 )
754//0130u3   DRIVER( ax370 )
755//0130u3   DRIVER( hbf9p )      /* 1985 MSX2                              */
756//0130u3   DRIVER( hbf9s )      /* 1985 MSX2                              */
757//0130u3   DRIVER( hbf500p )   /* 1985 MSX2                              */
758//0130u3   DRIVER( hbf700d )   /* 1985 MSX2 Germany                        */
759//0130u3   DRIVER( hbf700f )   /* 1985 MSX2                   */
760//0130u3   DRIVER( hbf700p )   /* 1985 MSX2                              */
761//0130u3   DRIVER( hbf700s )   /* 1985 MSX2 Spain                           */
762//0130u3   DRIVER( hbg900ap )   /* 1986 MSX2                              */
763//0130u3   DRIVER( hbg900p )   /* 1986 MSX2                              */
764//0130u3   DRIVER( nms8220 )   /* 1986 MSX2                              */
765//0130u3   DRIVER( nms8220a )   /* 1986 MSX2                              */
766//0130u3   DRIVER( vg8230 )   /* 1986 MSX2                              */
767//0130u3   DRIVER( vg8235 )   /* 1986 MSX2                              */
768//0130u3   DRIVER( vg8235f)   /* 1986 MSX2                              */
769//0130u3   DRIVER( vg8240)   /* 1986 MSX2                              */
770//0130u3   DRIVER( nms8245 )   /* 1986 MSX2                              */
771//0130u3   DRIVER( nms8245f)   /* 1986 MSX2                              */
772//0130u3   DRIVER( nms8250 )   /* 1986 MSX2                              */
773//0130u3   DRIVER( nms8255 )   /* 1986 MSX2                              */
774//0130u3   DRIVER( nms8280 )   /* 1986 MSX2                              */
775//0130u3   DRIVER( nms8280g)   /* 1986 MSX2                              */
776//0130u3   DRIVER( tpc310)     /* 1986 MSX2                              */
777//0130u3   DRIVER( hx23)       /* 1986 MSX2                              */
778//0130u3   DRIVER( hx23f)     /* 1986 MSX2                              */
779//0130u3   DRIVER( cx7m)       /* 1986 MSX2                              */
780//0130u3   DRIVER( cx7m128)   /* 1986 MSX2                              */
781//0130u3   DRIVER( fs5500 )   /* 1985 MSX2 Japan                           */
782//0130u3   DRIVER( fs4500 )   /* 1986 MSX2 Japan                           */
783//0130u3   DRIVER( fs4700 )   /* 1986 MSX2 Japan                           */
784//0130u3   DRIVER( fs5000 )   /* 1986 MSX2 Japan                           */
785//0130u3   DRIVER( fs4600 )   /* 1986 MSX2 Japan                           */
786//0130u3   DRIVER( fsa1 )      /* 1986 MSX2 Japan                           */
787//0130u3   DRIVER( fsa1a )      /* 1986 MSX2 Japan                           */
788//0130u3   DRIVER( fsa1mk2 )   /* 1987 MSX2 Japan                           */
789//0130u3   DRIVER( fsa1f )      /* 1987 MSX2 Japan                           */
790//0130u3   DRIVER( fsa1fm )   /* 1988 MSX2 Japan                           */
791//0130u3   DRIVER( hbf500 )   /* 1986 MSX2 Japan                           */
792//0130u3   DRIVER( hbf900 )   /* 1986 MSX2 Japan                           */
793//0130u3   DRIVER( hbf900a )   /* 1986 MSX2 Japan                           */
794//0130u3   DRIVER( hbf1 )      /* 1986 MSX2 Japan                           */
795//0130u3   DRIVER( hbf12 )      /* 1987 MSX2 Japan                           */
796//0130u3   DRIVER( hbf1xd )   /* 1987 MSX2 Japan                           */
797//0130u3   DRIVER( hbf1xdm2 )   /* 1988 MSX2 Japan                           */
798//0130u3   DRIVER( phc23 )      /* 1986 MSX2 Japan                           */
799//0130u3   DRIVER( cpc300 )   /* 1986 MSX2 Korea                           */
800//0130u3   DRIVER( cpc300e )   /* 1986 MSX2 Korea                           */
801//0130u3   DRIVER( cpc400 )   /* 1986 MSX2 Korea                           */
802//0130u3   DRIVER( cpc400s )   /* 1986 MSX2 Korea                           */
803//0130u3   DRIVER( expert20 )/* 1986 MSX2 Korea                           */
804804
805   DRIVER( msx2p )      /* 1988 MSX2+ Japan                           */
806   DRIVER( fsa1fx )   /* 1988 MSX2+ Japan                           */
807   DRIVER( fsa1wx )   /* 1988 MSX2+ Japan                           */
808   DRIVER( fsa1wxa )   /* 1988 MSX2+ Japan                           */
809   DRIVER( fsa1wsx )   /* 1989 MSX2+ Japan                           */
810   DRIVER( hbf1xdj )   /* 1988 MSX2+ Japan                           */
811   DRIVER( hbf1xv )   /* 1989 MSX2+ Japan                           */
812   DRIVER( phc70fd )   /* 1988 MSX2+ Japan                           */
813   DRIVER( phc70fd2 )   /* 1988 MSX2+ Japan                           */
814   DRIVER( phc35j )   /* 1989 MSX2+ Japan                           */
805//0130u3   DRIVER( msx2p )      /* 1988 MSX2+ Japan                           */
806//0130u3   DRIVER( fsa1fx )   /* 1988 MSX2+ Japan                           */
807//0130u3   DRIVER( fsa1wx )   /* 1988 MSX2+ Japan                           */
808//0130u3   DRIVER( fsa1wxa )   /* 1988 MSX2+ Japan                           */
809//0130u3   DRIVER( fsa1wsx )   /* 1989 MSX2+ Japan                           */
810//0130u3   DRIVER( hbf1xdj )   /* 1988 MSX2+ Japan                           */
811//0130u3   DRIVER( hbf1xv )   /* 1989 MSX2+ Japan                           */
812//0130u3   DRIVER( phc70fd )   /* 1988 MSX2+ Japan                           */
813//0130u3   DRIVER( phc70fd2 )   /* 1988 MSX2+ Japan                           */
814//0130u3   DRIVER( phc35j )   /* 1989 MSX2+ Japan                           */
815815
816816
817817   /* NASCOM MICROCOMPUTERS */
r4470r4471
886886   DRIVER( hp48gp )        /* HP 48G+ */
887887
888888   /* SpectraVideo */
889   DRIVER( svi318 )   /* SVI-318 (PAL)                           */
890   DRIVER( svi318n )   /* SVI-318 (NTSC)                           */
891   DRIVER( svi328 )   /* SVI-328 (PAL)                           */
892   DRIVER( svi328n )   /* SVI-328 (NTSC)                           */
893   DRIVER( sv328p80 )   /* SVI-328 (PAL) + SVI-806 80 column card         */
894   DRIVER( sv328n80 )   /* SVI-328 (NTSC) + SVI-806 80 column card         */
889//0130u3   DRIVER( svi318 )   /* SVI-318 (PAL)                           */
890//0130u3   DRIVER( svi318n )   /* SVI-318 (NTSC)                           */
891//0130u3   DRIVER( svi328 )   /* SVI-328 (PAL)                           */
892//0130u3   DRIVER( svi328n )   /* SVI-328 (NTSC)                           */
893//0130u3   DRIVER( sv328p80 )   /* SVI-328 (PAL) + SVI-806 80 column card         */
894//0130u3   DRIVER( sv328n80 )   /* SVI-328 (NTSC) + SVI-806 80 column card         */
895895
896896   /* Andrew Donald Booth (this is the name of the designer, not a company) */
897897//   DRIVER( apexc53 )   /* 1951(?) APEXC: All-Purpose Electronic X-ray Computer */
src/mess/machine/conkort.c
r4470r4471
583583
584584static const z80pio_interface conkort_pio_intf =
585585{
586   conkort_pio_interrupt,            /* interrupt callback */
587   conkort_pio_port_a_r,            /* port A read callback */
588   conkort_pio_port_b_r,            /* port B read callback */
589   conkort_pio_port_a_w,            /* port A write callback */
590   conkort_pio_port_b_w,            /* port B write callback */
591   conkort_pio_ardy_w,               /* port A ready callback */
592   NULL                  /* port B ready callback */
586   DEVCB_LINE(conkort_pio_interrupt),            /* interrupt callback */
587   DEVCB_HANDLER(conkort_pio_port_a_r),            /* port A read callback */
588   DEVCB_HANDLER(conkort_pio_port_b_r),            /* port B read callback */
589   DEVCB_HANDLER(conkort_pio_port_a_w),            /* port A write callback */
590   DEVCB_HANDLER(conkort_pio_port_b_w),            /* port B write callback */
591   DEVCB_LINE(conkort_pio_ardy_w),               /* port A ready callback */
592   DEVCB_NULL                  /* port B ready callback */
593593};
594594
595595static const z80_daisy_chain slow_daisy_chain[] =
src/mess/machine/kramermc.c
r4470r4471
3232
3333const z80pio_interface kramermc_z80pio_intf =
3434{
35   NULL,   /* callback when change interrupt status */
36   kramermc_port_a_r,
37   kramermc_port_b_r,
38   kramermc_port_a_w,
39   NULL,
40   NULL,
41   NULL
35   DEVCB_NULL,   /* callback when change interrupt status */
36   DEVCB_HANDLER(kramermc_port_a_r),
37   DEVCB_HANDLER(kramermc_port_b_r),
38   DEVCB_HANDLER(kramermc_port_a_w),
39   DEVCB_NULL,
40   DEVCB_NULL,
41   DEVCB_NULL
4242};
4343
4444/* Driver initialization */
src/mess/machine/amstrad.c
r4470r4471
32673267
32683268   /* Using the cool code Juergen has provided, I will override
32693269    the timing tables with the values for the amstrad */
3270   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_op, (void*)amstrad_cycle_table_op);
3271   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_cb, (void*)amstrad_cycle_table_cb);
3272   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ed, (void*)amstrad_cycle_table_ed);
3273   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xy, (void*)amstrad_cycle_table_xy);
3274   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_xycb, (void*)amstrad_cycle_table_xycb);
3275   device_set_info_ptr(machine->cpu[0],CPUINFO_PTR_Z80_CYCLE_TABLE+Z80_TABLE_ex, (void*)amstrad_cycle_table_ex);
3270   z80_set_cycle_tables(machine->cpu[0],
3271      (void*)amstrad_cycle_table_op,
3272      (void*)amstrad_cycle_table_cb,
3273      (void*)amstrad_cycle_table_ed,
3274      (void*)amstrad_cycle_table_xy,
3275      (void*)amstrad_cycle_table_xycb,
3276      (void*)amstrad_cycle_table_ex);
32763277
32773278   /* Juergen is a cool dude! */
32783279   cpu_set_irq_callback(machine->cpu[0], amstrad_cpu_acknowledge_int);
src/mess/machine/ac1.c
r4470r4471
7777
7878const z80pio_interface ac1_z80pio_intf =
7979{
80   NULL,   /* callback when change interrupt status */
81   ac1_port_a_r,
82   ac1_port_b_r,
83   ac1_port_a_w,
84   ac1_port_b_w,
85   NULL,
86   NULL
80   DEVCB_NULL,   /* callback when change interrupt status */
81   DEVCB_HANDLER(ac1_port_a_r),
82   DEVCB_HANDLER(ac1_port_b_r),
83   DEVCB_HANDLER(ac1_port_a_w),
84   DEVCB_HANDLER(ac1_port_b_w),
85   DEVCB_NULL,
86   DEVCB_NULL
8787};
8888
8989/* Driver initialization */
src/mess/machine/mz700.c
r4470r4471
584584
585585const z80pio_interface mz800_z80pio_config =
586586{
587   mz800_z80pio_irq,
588   mz800_z80pio_port_a_r,
589   NULL,
590   mz800_z80pio_port_a_w,
591   mz800_printer_data_w,
592   NULL,
593   NULL,
587   DEVCB_LINE(mz800_z80pio_irq),
588   DEVCB_HANDLER(mz800_z80pio_port_a_r),
589   DEVCB_NULL,
590   DEVCB_HANDLER(mz800_z80pio_port_a_w),
591   DEVCB_HANDLER(mz800_printer_data_w),
592   DEVCB_NULL,
593   DEVCB_NULL,
594594};
595595
596596
src/mess/machine/kc.c
r4470r4471
17721772
17731773const z80pio_interface kc85_pio_intf =
17741774{
1775   kc85_pio_interrupt,      /* callback when change interrupt status */
1776   NULL,
1777   NULL,
1778   NULL,
1779   NULL,
1780   kc85_pio_ardy_callback,   /* portA ready active callback */
1781   kc85_pio_brdy_callback   /* portB ready active callback */
1775   DEVCB_LINE(kc85_pio_interrupt),      /* callback when change interrupt status */
1776   DEVCB_NULL,
1777   DEVCB_NULL,
1778   DEVCB_NULL,
1779   DEVCB_NULL,
1780   DEVCB_LINE(kc85_pio_ardy_callback),   /* portA ready active callback */
1781   DEVCB_LINE(kc85_pio_brdy_callback)   /* portB ready active callback */
17821782};
17831783
17841784
src/mess/mess.mak
r4470r4471
238238   $(MESSOBJ)/acorn.a \
239239   $(MESSOBJ)/advision.a \
240240   $(MESSOBJ)/amiga.a \
241   $(MESSOBJ)/amstrad.a \
242241   $(MESSOBJ)/apexc.a \
243242   $(MESSOBJ)/apf.a \
244243   $(MESSOBJ)/apple.a \
245244   $(MESSOBJ)/aquarius.a \
246245   $(MESSOBJ)/arcadia.a \
247   $(MESSOBJ)/ascii.a \
248246   $(MESSOBJ)/at.a \
249247   $(MESSOBJ)/atari.a \
250248   $(MESSOBJ)/avigo.a \
r4470r4471
334332   $(MESSOBJ)/special.a \
335333   $(MESSOBJ)/ssystem3.a \
336334   $(MESSOBJ)/super80.a \
337   $(MESSOBJ)/svi.a \
338335   $(MESSOBJ)/svision.a \
339336   $(MESSOBJ)/synertec.a \
340337   $(MESSOBJ)/tangerin.a \
r4470r4471
354351   $(MESSOBJ)/vector06.a \
355352   $(MESSOBJ)/votrax.a \
356353   $(MESSOBJ)/vtech.a \
354   $(MESSOBJ)/z80ne.a \
357355   $(MESSOBJ)/shared.a \
358   $(MESSOBJ)/z80ne.a \
359356
357#   $(MESSOBJ)/amstrad.a \
358#   $(MESSOBJ)/ascii.a \
359#   $(MESSOBJ)/svi.a \
360360
361361
362
362363#-------------------------------------------------
363364# the following files are general components and
364365# shared across a number of drivers
src/mess/drivers/mbee.c
r4470r4471
344344
345345static const z80pio_interface mbee_z80pio_intf =
346346{
347   mbee_pio_interrupt,   /* callback when change interrupt status */
348   NULL,
349   pio_port_b_r,
350   NULL,
351   pio_port_b_w,
352   NULL,
353   NULL
347   DEVCB_LINE(mbee_pio_interrupt),   /* callback when change interrupt status */
348   DEVCB_NULL,
349   DEVCB_HANDLER(pio_port_b_r),
350   DEVCB_NULL,
351   DEVCB_HANDLER(pio_port_b_w),
352   DEVCB_NULL,
353   DEVCB_NULL
354354};
355355
356356static const z80_daisy_chain mbee_daisy_chain[] =
src/mess/drivers/abc80.c
r4470r4471
457457
458458static const z80pio_interface abc80_pio_intf =
459459{
460   abc80_pio_interrupt,      /* callback when change interrupt status */
461   abc80_pio_port_a_r,         /* port A read callback */
462   abc80_pio_port_b_r,         /* port B read callback */
463   NULL,                  /* port A write callback */
464   abc80_pio_port_b_w,         /* port B write callback */
465   NULL,                  /* portA ready active callback */
466   NULL                  /* portB ready active callback */
460   DEVCB_LINE(abc80_pio_interrupt),      /* callback when change interrupt status */
461   DEVCB_HANDLER(abc80_pio_port_a_r),         /* port A read callback */
462   DEVCB_HANDLER(abc80_pio_port_b_r),         /* port B read callback */
463   DEVCB_NULL,                  /* port A write callback */
464   DEVCB_HANDLER(abc80_pio_port_b_w),         /* port B write callback */
465   DEVCB_NULL,                  /* portA ready active callback */
466   DEVCB_NULL                  /* portB ready active callback */
467467};
468468
469469static const z80_daisy_chain abc80_daisy_chain[] =
src/mess/drivers/mpf1.c
r4470r4471
284284
285285static const z80pio_interface mpf1_pio_intf =
286286{
287   mpf1_pio_interrupt,
288   NULL,
289   NULL,
290   NULL,
291   NULL,
292   NULL,
293   NULL
287   DEVCB_LINE(mpf1_pio_interrupt),
288   DEVCB_NULL,
289   DEVCB_NULL,
290   DEVCB_NULL,
291   DEVCB_NULL,
292   DEVCB_NULL,
293   DEVCB_NULL
294294};
295295
296296/* Z80 CTC Interface */
src/mess/drivers/super80.c
r4470r4471
7171
7272static const z80pio_interface super80_pio_intf =
7373{
74   super80_pio_interrupt,      /* callback when change interrupt status */
75   NULL,
76   pio_port_b_r,
77   pio_port_a_w,
78   NULL,
79   NULL,         /* portA ready active callback (not used in super80) */
80   NULL         /* portB ready active callback (not used in super80) */
74   DEVCB_LINE(super80_pio_interrupt),      /* callback when change interrupt status */
75   DEVCB_NULL,
76   DEVCB_HANDLER(pio_port_b_r),
77   DEVCB_HANDLER(pio_port_a_w),
78   DEVCB_NULL,
79   DEVCB_NULL,         /* portA ready active callback (not used in super80) */
80   DEVCB_NULL         /* portB ready active callback (not used in super80) */
8181};
8282
8383
src/mess/drivers/nascom1.c
r4470r4471
264264
265265static const z80pio_interface nascom1_z80pio_intf =
266266{
267   NULL,
268   NULL,
269   NULL,
270   NULL,
271   NULL,
272   NULL,
273   NULL
267   DEVCB_NULL,
268   DEVCB_NULL,
269   DEVCB_NULL,
270   DEVCB_NULL,
271   DEVCB_NULL,
272   DEVCB_NULL,
273   DEVCB_NULL
274274};
275275
276276
src/mess/drivers/einstein.c
r4470r4471
453453
454454static const z80pio_interface einstein_pio_intf =
455455{
456   einstein_pio_interrupt,
457   NULL,
458   NULL,
459   einstein_pio_port_a_w,
460   NULL,
461   einstein_pio_ardy,
462   NULL
456   DEVCB_LINE(einstein_pio_interrupt),
457   DEVCB_NULL,
458   DEVCB_NULL,
459   DEVCB_HANDLER(einstein_pio_port_a_w),
460   DEVCB_NULL,
461   DEVCB_LINE(einstein_pio_ardy),
462   DEVCB_NULL
463463};
464464
465465
src/mess/drivers/bbcbc.c
r4470r4471
106106/* TODO */
107107static const z80pio_interface bbcbc_z80pio_intf =
108108{
109   NULL,   /* int callback */
110   NULL,   /* port a read */
111   NULL,   /* port b read */
112   NULL,   /* port a write */
113   NULL,   /* port b write */
114   NULL,   /* ready a */
115   NULL   /* ready b */
109   DEVCB_NULL,   /* int callback */
110   DEVCB_NULL,   /* port a read */
111   DEVCB_NULL,   /* port b read */
112   DEVCB_NULL,   /* port a write */
113   DEVCB_NULL,   /* port b write */
114   DEVCB_NULL,   /* ready a */
115   DEVCB_NULL   /* ready b */
116116};
117117
118118static const z80_daisy_chain bbcbc_daisy_chain[] =
docs/messnew.txt
r4470r4471
4242
4343Source Changes:
4444----------------
45- The core is based on MAME 0.130u2.  This incorporates all features of the
45- The core is based on MAME 0.130u3.  This incorporates all features of the
4646  update to this core.  [MAME team]
4747
4848- New tool added (castool) for cassette to wav conversion [Miodrag Milanovic]

Previous 15994 Revisions Next


© 1998-2018 The MESS Team