Previous 199869 Revisions Next

r26326 Thursday 21st November, 2013 at 04:14:11 UTC by David Haywood
palette format is also different (nw)
[src/mame/drivers]mcr3.c
[src/mame/includes]mcr3.h
[src/mame/video]mcr3.c

trunk/src/mame/video/mcr3.c
r26325r26326
7171
7272PALETTE_INIT_MEMBER(mcr3_state,spyhunt)
7373{
74   int i;
75
76   for (i = 0; i < machine().total_colors(); i++)
77   {
78      palette_set_color(machine(),i,RGB_BLACK); /* black */
79   }
80
7481   /* alpha colors are hard-coded */
7582   palette_set_color(machine(),4*16+0,MAKE_RGB(0x00,0x00,0x00));
7683   palette_set_color(machine(),4*16+1,MAKE_RGB(0x00,0xff,0x00));
r26325r26326
150157   palette_set_color_rgb(machine(), offset / 2, pal3bit(((offset & 1) << 2) + (data >> 6)), pal3bit(data >> 0), pal3bit(data >> 3));
151158}
152159
160WRITE8_MEMBER(mcr3_state::spyhuntpr_paletteram_w)
161{
162   m_generic_paletteram_8[offset] = data;
163   offset = (offset & 0x0f) | (offset & 0x60) >> 1;
153164
165   int r = (data & 0x07) >> 0;
166   int g = (data & 0x38) >> 3;
167   int b = (data & 0xc0) >> 6;
154168
169   palette_set_color(machine(), offset, MAKE_RGB(r<<5,g<<5,b<<6));
170}
171
172
155173/*************************************
156174 *
157175 *  Video RAM writes
trunk/src/mame/includes/mcr3.h
r26325r26326
2323   tilemap_t *m_bg_tilemap;
2424   tilemap_t *m_alpha_tilemap;
2525   DECLARE_WRITE8_MEMBER(mcr3_paletteram_w);
26   DECLARE_WRITE8_MEMBER(spyhuntpr_paletteram_w);
2627   DECLARE_WRITE8_MEMBER(mcr3_videoram_w);
2728   DECLARE_WRITE8_MEMBER(spyhunt_videoram_w);
2829   DECLARE_WRITE8_MEMBER(spyhunt_alpharam_w);
trunk/src/mame/drivers/mcr3.c
r26325r26326
534534   AM_RANGE(0xf0, 0xf3) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
535535ADDRESS_MAP_END
536536
537
538static ADDRESS_MAP_START( spyhuntpr_map, AS_PROGRAM, 8, mcr3_state )
539   ADDRESS_MAP_UNMAP_HIGH
540   AM_RANGE(0x0000, 0xdfff) AM_ROM
541   AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(spyhunt_videoram_w) AM_SHARE("videoram")
542   AM_RANGE(0xe800, 0xebff) AM_MIRROR(0x0400) AM_RAM_WRITE(spyhunt_alpharam_w) AM_SHARE("spyhunt_alpha")
543   AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
544   AM_RANGE(0xf800, 0xf9ff) AM_RAM AM_SHARE("spriteram")
545   AM_RANGE(0xfb80, 0xfbff) AM_RAM AM_WRITE(spyhuntpr_paletteram_w) AM_SHARE("paletteram")
546   
547   AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("IN0")
548   AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("IN1")
549   AM_RANGE(0xfc02, 0xfc02) AM_READ_PORT("IN2")
550   AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("IN3")
551//   AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("IN3")
552   
553//   AM_RANGE(0xfa80, 0xfdff) AM_RAM
554
555
556
557   AM_RANGE(0xfe00, 0xffff) AM_RAM // a modified copy of spriteram for this hw??
558ADDRESS_MAP_END
559
537560static ADDRESS_MAP_START( spyhuntpr_portmap, AS_IO, 8, mcr3_state )
538561   ADDRESS_MAP_UNMAP_HIGH
539562   ADDRESS_MAP_GLOBAL_MASK(0xff)
r26325r26326
942965   PORT_BIT( 0xff, 0x74, IPT_PADDLE ) PORT_MINMAX(0x34,0xb4) PORT_SENSITIVITY(40) PORT_KEYDELTA(10)
943966INPUT_PORTS_END
944967
968static INPUT_PORTS_START( spyhuntpr )
969   PORT_START("IN0")
970   PORT_DIPNAME( 0x0001, 0x0001, "0" )
971   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
972   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
973   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
974   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
975   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
976   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
977   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
978   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
979   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
980   PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
981   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
982   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
983   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
984   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
985   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
986   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
987   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
988   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
989   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
990   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
991   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
992   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
993   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
945994
995   PORT_START("IN1")
996   PORT_DIPNAME( 0x0001, 0x0001, "1" )
997   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
998   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
999   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1000   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1001   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1002   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1003   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1004   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1005   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1006   PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1007   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1008   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1009   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1010   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1011   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1012   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1013   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1014   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1015   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1016   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1017   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1018   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1019   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1020
1021   PORT_START("IN2")
1022   PORT_DIPNAME( 0x0001, 0x0001, "2" )
1023   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1024   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1025   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1026   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1027   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1028   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1029   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1030   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1031   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1032   PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1033   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1034   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1035   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1036   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1037   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1038   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1039   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1040   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1041   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1042   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1043   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1044   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1045   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1046
1047   PORT_START("IN3")
1048   PORT_DIPNAME( 0x0001, 0x0001, "3" )
1049   PORT_DIPSETTING(      0x0001, DEF_STR( Off ) )
1050   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1051   PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
1052   PORT_DIPSETTING(      0x0002, DEF_STR( Off ) )
1053   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1054   PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
1055   PORT_DIPSETTING(      0x0004, DEF_STR( Off ) )
1056   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1057   PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
1058   PORT_DIPSETTING(      0x0008, DEF_STR( Off ) )
1059   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1060   PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
1061   PORT_DIPSETTING(      0x0010, DEF_STR( Off ) )
1062   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1063   PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
1064   PORT_DIPSETTING(      0x0020, DEF_STR( Off ) )
1065   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1066   PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
1067   PORT_DIPSETTING(      0x0040, DEF_STR( Off ) )
1068   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1069   PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
1070   PORT_DIPSETTING(      0x0080, DEF_STR( Off ) )
1071   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
1072INPUT_PORTS_END
1073
9461074/* not verified, no manual found */
9471075static INPUT_PORTS_START( crater )
9481076   PORT_START("ssio:IP0")  /* J4 1-8 */
r26325r26326
11061234   64,16,
11071235   RGN_FRAC(1,8),
11081236   4,
1109   { 0, 2*8, 0x4000*8 + 0, 0x4000*8 + 2*8},
1237   {  0*8, 0x4000*8 + 2*8, 0x4000*8 + 0*8, 2*8  },
11101238   EXTENDED_XOFFS,
11111239   { 0*8,  4*8,  8*8,  12*8,    16*8,  20*8,  24*8,  28*8,     1*8,  5*8, 9*8, 13*8,    17*8,  21*8,  25*8,  29*8    },
11121240   32*8,
r26325r26326
12591387
12601388   /* basic machine hardware */
12611389   MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/4)
1262   MCFG_CPU_PROGRAM_MAP(spyhunt_map)
1390   MCFG_CPU_PROGRAM_MAP(spyhuntpr_map)
12631391   MCFG_CPU_IO_MAP(spyhuntpr_portmap)
12641392   MCFG_CPU_CONFIG(mcr_daisy_chain)
12651393   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mcr3_state, mcr_interrupt, "screen", 0, 1)
r26325r26326
15871715   ROM_LOAD( "5.bin",   0x0000, 0x2000, CRC(33fe2829) SHA1(e6950dbf681242bf23542ca6604e62eacb431101) )
15881716
15891717
1590   ROM_REGION( 0x08000, "gfx1", 0 )
1718   ROM_REGION( 0x08000, "gfx1", ROMREGION_INVERT )
15911719   ROM_LOAD32_BYTE( "6.bin",   0x0000, 0x200, CRC(6b76f46a) SHA1(4b398084c42a60fcfa4a9bf14f844e36a3f42723) )
15921720   ROM_CONTINUE(0x0001, 0x200)
15931721   ROM_CONTINUE(0x0800, 0x200)
r26325r26326
18802008/* MCR scrolling games */
18812009GAMEL(1983, spyhunt,  0,        mcrsc_csd, spyhunt,  mcr3_state,  spyhunt,  ROT90, "Bally Midway", "Spy Hunter", GAME_SUPPORTS_SAVE, layout_spyhunt )
18822010GAMEL(1983, spyhuntp, spyhunt,  mcrsc_csd, spyhunt,  mcr3_state,  spyhunt,  ROT90, "Bally Midway (Playtronic license)", "Spy Hunter (Playtronic license)", GAME_SUPPORTS_SAVE, layout_spyhunt )
1883GAME (1983, spyhuntpr, spyhunt,  spyhuntpr, spyhunt,  mcr3_state,  spyhuntpr,  ROT90, "Bally Midway", "Spy Hunter (prototype)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // or bootleg??
2011GAME (1983, spyhuntpr,spyhunt,  spyhuntpr, spyhuntpr,mcr3_state,  spyhuntpr,ROT90, "Bally Midway", "Spy Hunter (bootleg / prototype of low cost PCB?)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // PCB made in Valencia Spain? has Bally Midway logo, but board is dated '85' and it seems very 'unofficial'
18842012GAME( 1984, crater,   0,        mcrscroll, crater,   mcr3_state, crater,   ORIENTATION_FLIP_X, "Bally Midway", "Crater Raider", GAME_SUPPORTS_SAVE )
18852013GAMEL(1985, turbotag, 0,        mcrsc_csd, turbotag, mcr3_state, turbotag, ROT90, "Bally Midway", "Turbo Tag (prototype)", GAME_SUPPORTS_SAVE, layout_turbotag )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team