diff options
author | hap <happppp@users.noreply.github.com> | 2018-09-21 23:08:10 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2018-09-21 23:08:10 +0200 |
commit | 5deb24851aea74859cf10533ad88800f2c1ce2ca (patch) | |
tree | 4e3ce9b9a26ae5fba32314b845681ba6bfca32e4 | |
parent | 3ec308871d74f7c0e08a89a12c88053209a1099f (diff) |
namcos22: fix ss22 text layer alpha blending (eg. alpinerd highscore table, airco22b radar). Added limits to airco22b analog controls, also let's just mark the game as working (nw)
-rw-r--r-- | src/mame/drivers/namcos22.cpp | 58 | ||||
-rw-r--r-- | src/mame/video/namcos22.cpp | 6 |
2 files changed, 32 insertions, 32 deletions
diff --git a/src/mame/drivers/namcos22.cpp b/src/mame/drivers/namcos22.cpp index a2aeb4bbdbd..086571cdda7 100644 --- a/src/mame/drivers/namcos22.cpp +++ b/src/mame/drivers/namcos22.cpp @@ -3393,13 +3393,13 @@ static INPUT_PORTS_START( airco22 ) PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_START("ADC.0") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) + PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x40, 0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_START("ADC.1") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) + PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40, 0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_START("ADC.2") - PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE + PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x40, 0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) INPUT_PORTS_END static INPUT_PORTS_START( cybrcycc ) @@ -5685,33 +5685,33 @@ void namcos22_state::init_dirtdash() /* YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MNTR, COMPANY, FULLNAME, FLAGS */ /* System22 games */ -GAME( 1993, ridgerac, 0, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR3, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 1994-01-17 +GAME( 1993, ridgerac, 0, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR3, World)", MACHINE_IMPERFECT_GRAPHICS ) // 1994-01-17 GAME( 1993, ridgerac3, ridgerac, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2 Ver.B, World, 3-screen?)", MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-28, no indication that this really is a 3-screen version. -GAME( 1993, ridgeracb, ridgerac, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07 -GAME( 1993, ridgeracj, ridgerac, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR1, Japan)" , MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07 -GAME( 1993, ridgeracf, ridgerac, namcos22, ridgeracf, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer Full Scale (World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 1993-12-13, very different version, incomplete dump. -GAME( 1994, ridgera2, 0, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS2, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-21 -GAME( 1994, ridgera2j, ridgera2, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1 Ver.B, Japan)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-21 -GAME( 1994, ridgera2ja,ridgera2, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1, Japan)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-13 -GAME( 1994, cybrcomm, 0, cybrcomm, cybrcomm, namcos22_state, init_cybrcomm, ROT0, "Namco", "Cyber Commando (Rev. CY1, Japan)" , MACHINE_IMPERFECT_GRAPHICS ) // 10/14/94 -GAME( 1995, raveracw, 0, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV2, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 07/16/95 -GAME( 1995, raveracj, raveracw, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1 Ver.B, Japan)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 07/16/95 -GAME( 1995, raveracja, raveracw, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1, Japan)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 06/29/95 +GAME( 1993, ridgeracb, ridgerac, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2, World)", MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07 +GAME( 1993, ridgeracj, ridgerac, namcos22, ridgera, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR1, Japan)", MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07 +GAME( 1993, ridgeracf, ridgerac, namcos22, ridgeracf, namcos22_state, init_ridgeraj, ROT0, "Namco", "Ridge Racer Full Scale (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 1993-12-13, very different version, incomplete dump. +GAME( 1994, ridgera2, 0, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS2, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-21 +GAME( 1994, ridgera2j, ridgera2, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1 Ver.B, Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-21 +GAME( 1994, ridgera2ja,ridgera2, namcos22, ridgera2, namcos22_state, init_ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1, Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 1994-06-13 +GAME( 1994, cybrcomm, 0, cybrcomm, cybrcomm, namcos22_state, init_cybrcomm, ROT0, "Namco", "Cyber Commando (Rev. CY1, Japan)", MACHINE_IMPERFECT_GRAPHICS ) // 10/14/94 +GAME( 1995, raveracw, 0, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV2, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 07/16/95 +GAME( 1995, raveracj, raveracw, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1 Ver.B, Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 07/16/95 +GAME( 1995, raveracja, raveracw, namcos22, raveracw, namcos22_state, init_raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1, Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 06/29/95 GAME( 1994, acedrvrw, 0, namcos22, acedrvr, namcos22_state, init_acedrvr, ROT0, "Namco", "Ace Driver: Racing Evolution (Rev. AD2, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 94/10/20 16:22:25 -GAME( 1996, victlapw, 0, namcos22, victlap, namcos22_state, init_victlap, ROT0, "Namco", "Ace Driver: Victory Lap (Rev. ADV2, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 96/02/13 17:50:06 +GAME( 1996, victlapw, 0, namcos22, victlap, namcos22_state, init_victlap, ROT0, "Namco", "Ace Driver: Victory Lap (Rev. ADV2, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 96/02/13 17:50:06 /* Super System22 games */ -GAME( 1994, alpinerd, 0, alpine, alpiner, namcos22_state, init_alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D, World)" , MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, alpinerc, alpinerd, alpine, alpiner, namcos22_state, init_alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C, World)" , MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, airco22b, 0, airco22b, airco22, namcos22_state, init_airco22, ROT0, "Namco", "Air Combat 22 (Rev. ACS1 Ver.B, Japan)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // various problems -GAME( 1995, cybrcycc, 0, cybrcycc, cybrcycc, namcos22_state, init_cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 95/04/04 -GAME( 1995, dirtdash, 0, dirtdash, dirtdash, namcos22_state, init_dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 95/12/20 20:01:56 -GAME( 1995, timecris, 0, timecris, timecris, namcos22_state, init_timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 96/04/02 18:48:00 -GAME( 1995, timecrisa,timecris, timecris, timecris, namcos22_state, init_timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 96/01/08 18:56:09 -GAME( 1996, propcycl, 0, propcycl, propcycl, namcos22_state, init_propcycl, ROT0, "Namco", "Prop Cycle (Rev. PR2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 96/06/18 21:22:13 -GAME( 1996, alpinesa, 0, alpinesa, alpiner, namcos22_state, init_alpinesa, ROT0, "Namco", "Alpine Surfer (Rev. AF2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 96/07/01 15:19:23. major gfx problems, slave dsp? -GAME( 1996, tokyowar, 0, tokyowar, tokyowar, namcos22_state, init_tokyowar, ROT0, "Namco", "Tokyo Wars (Rev. TW2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_NOT_WORKING ) // 96/09/03 14:08:47. near-invincible tanks, maybe related to timecris helicopter bug? -GAME( 1996, aquajet, 0, cybrcycc, aquajet, namcos22_state, init_aquajet, ROT0, "Namco", "Aqua Jet (Rev. AJ2 Ver.B, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 96/09/20 14:28:30 -GAME( 1996, alpinr2b, 0, alpine, alpiner, namcos22_state, init_alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 97/01/10 17:10:59 -GAME( 1996, alpinr2a, alpinr2b, alpine, alpiner, namcos22_state, init_alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.A, World)" , MACHINE_IMPERFECT_GRAPHICS ) // 96/12/06 13:45:05 -GAME( 1996, adillor, 0, adillor, adillor, namcos22_state, init_adillor, ROT0, "Namco", "Armadillo Racing (Rev. AM1 Ver.A, Japan)" , MACHINE_IMPERFECT_GRAPHICS ) // 97/04/07 19:19:41 +GAME( 1994, alpinerd, 0, alpine, alpiner, namcos22_state, init_alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D, World)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, alpinerc, alpinerd, alpine, alpiner, namcos22_state, init_alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C, World)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, airco22b, 0, airco22b, airco22, namcos22_state, init_airco22, ROT0, "Namco", "Air Combat 22 (Rev. ACS1 Ver.B, Japan)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, cybrcycc, 0, cybrcycc, cybrcycc, namcos22_state, init_cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN ) // 95/04/04 +GAME( 1995, dirtdash, 0, dirtdash, dirtdash, namcos22_state, init_dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS ) // 95/12/20 20:01:56 +GAME( 1995, timecris, 0, timecris, timecris, namcos22_state, init_timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B, World)", MACHINE_IMPERFECT_GRAPHICS ) // 96/04/02 18:48:00 +GAME( 1995, timecrisa,timecris, timecris, timecris, namcos22_state, init_timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS ) // 96/01/08 18:56:09 +GAME( 1996, propcycl, 0, propcycl, propcycl, namcos22_state, init_propcycl, ROT0, "Namco", "Prop Cycle (Rev. PR2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS ) // 96/06/18 21:22:13 +GAME( 1996, alpinesa, 0, alpinesa, alpiner, namcos22_state, init_alpinesa, ROT0, "Namco", "Alpine Surfer (Rev. AF2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 96/07/01 15:19:23. major gfx problems, slave dsp? +GAME( 1996, tokyowar, 0, tokyowar, tokyowar, namcos22_state, init_tokyowar, ROT0, "Namco", "Tokyo Wars (Rev. TW2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NODEVICE_LAN | MACHINE_NOT_WORKING ) // 96/09/03 14:08:47. near-invincible tanks, maybe related to timecris helicopter bug? +GAME( 1996, aquajet, 0, cybrcycc, aquajet, namcos22_state, init_aquajet, ROT0, "Namco", "Aqua Jet (Rev. AJ2 Ver.B, World)", MACHINE_IMPERFECT_GRAPHICS ) // 96/09/20 14:28:30 +GAME( 1996, alpinr2b, 0, alpine, alpiner, namcos22_state, init_alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B, World)", MACHINE_IMPERFECT_GRAPHICS ) // 97/01/10 17:10:59 +GAME( 1996, alpinr2a, alpinr2b, alpine, alpiner, namcos22_state, init_alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.A, World)", MACHINE_IMPERFECT_GRAPHICS ) // 96/12/06 13:45:05 +GAME( 1997, adillor, 0, adillor, adillor, namcos22_state, init_adillor, ROT0, "Namco", "Armadillo Racing (Rev. AM1 Ver.A, Japan)", MACHINE_IMPERFECT_GRAPHICS ) // 97/04/07 19:19:41 diff --git a/src/mame/video/namcos22.cpp b/src/mame/video/namcos22.cpp index f5765af21d6..e12254a611d 100644 --- a/src/mame/video/namcos22.cpp +++ b/src/mame/video/namcos22.cpp @@ -9,7 +9,7 @@ * - texture u/v mapping is often 1 pixel off, resulting in many glitch lines/gaps between textures. The glitch may be in MAME core: * it used to be much worse with the legacy_poly_manager * - tokyowar tanks are not shootable, same for timecris helicopter, there's still a very small hitbox but almost impossible to hit. - * airco22b may have a similar problem. (is this related to dsp? or cpu?) + * is this related to dsp? or cpu? * - find out how/where vics num_sprites is determined exactly, currently a workaround is needed for airco22b and dirtdash * - improve ss22 fogging: * + scene changes too rapidly sometimes, eg. dirtdash snow level finish (see attract), or aquajet going down the waterfall @@ -1880,7 +1880,7 @@ void namcos22_state::namcos22s_mix_text_layer(screen_device &screen, bitmap_rgb3 // prepare alpha uint8_t alpha_check12 = nthbyte(m_mixer, 0x12); uint8_t alpha_check13 = nthbyte(m_mixer, 0x13); - uint8_t alpha_mask = nthbyte(m_mixer, 0x14); + uint8_t alpha_mask = nthbyte(m_mixer, 0x14) & 0xf; uint8_t alpha_factor = nthbyte(m_mixer, 0x15); // prepare spot @@ -1910,7 +1910,7 @@ void namcos22_state::namcos22s_mix_text_layer(screen_device &screen, bitmap_rgb3 if (alpha_factor) { uint8_t pen = src[x] & 0xff; - if ((pen & 0xf) == alpha_mask || pen == alpha_check12 || pen == alpha_check13) + if ((pen & 0xf) == alpha_mask || (pen >= alpha_check12 && pen <= alpha_check13)) { rgb.blend(rgbaint_t(dest[x]), 0xff - alpha_factor); } |