From a7622d43130ed1ec1301c0451ab60effc43620a9 Mon Sep 17 00:00:00 2001 From: hap Date: Tue, 22 Nov 2022 00:19:15 +0100 Subject: New working machines -------------------- Bottom of the Ninth (handheld) [hap, Sean Riddle, Mr. Do] --- src/mame/handheld/hh_sm510.cpp | 210 +++++++++++++++++++++++++++-------------- src/mame/mame.lst | 1 + src/mame/namco/namcos22.cpp | 5 +- src/mame/namco/namcos22_v.cpp | 12 +-- 4 files changed, 152 insertions(+), 76 deletions(-) diff --git a/src/mame/handheld/hh_sm510.cpp b/src/mame/handheld/hh_sm510.cpp index 2b01ac5602e..177c1f7edff 100644 --- a/src/mame/handheld/hh_sm510.cpp +++ b/src/mame/handheld/hh_sm510.cpp @@ -4618,7 +4618,7 @@ ROM_END /*************************************************************************** - Konami Double Dribble + Konami Double Dribble (model BH001) * Sharp SM510 under epoxy (die label CMS54C, KMS584) * lcd screen with custom segments, 1-bit sound @@ -4684,7 +4684,76 @@ ROM_END /*************************************************************************** - Konami Top Gun + Konami Contra (model BH002) + * PCB label: BH002 + * Sharp SM511 under epoxy (die label KMS73B, 773) + * lcd screen with custom segments, 1-bit sound + + Contra handheld is titled simply "C" in the USA. + +***************************************************************************/ + +class kcontra_state : public hh_sm510_state +{ +public: + kcontra_state(const machine_config &mconfig, device_type type, const char *tag) : + hh_sm510_state(mconfig, type, tag) + { + // increase lcd decay: score digit flickers + m_decay_len = 20; + } + + void kcontra(machine_config &config); +}; + +// config + +static INPUT_PORTS_START( kcontra ) + PORT_START("IN.0") // S1 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) + + PORT_START("IN.1") // S2 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) + + PORT_START("IN.2") // S3 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start") + PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") +INPUT_PORTS_END + +void kcontra_state::kcontra(machine_config &config) +{ + sm511_common(config, 1505, 1080); +} + +// roms + +ROM_START( kcontra ) // except for filler/unused bytes, ROM listing in patent US5120057 "BH002 C (Contra)" program/melody is same + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "773.program", 0x0000, 0x1000, CRC(bf834877) SHA1(055dd56ec16d63afba61ab866481fd9c029fb54d) ) + + ROM_REGION( 0x100, "maincpu:melody", 0 ) + ROM_LOAD( "773.melody", 0x000, 0x100, CRC(23d02b99) SHA1(703938e496db0eeacd14fe7605d4b5c39e0a5bc8) ) + + ROM_REGION( 721055, "screen", 0) + ROM_LOAD( "kcontra.svg", 0, 721055, CRC(f1ce8d19) SHA1(7d8f2fac40605a3fd6f1386c945a53412b2f2b15) ) +ROM_END + + + + + +/*************************************************************************** + + Konami Top Gun (model BH003) * PCB label: BH003 * Sharp SM510 under epoxy (die label CMS54C, KMS598) * lcd screen with custom segments, 1-bit sound @@ -4745,67 +4814,62 @@ ROM_END /*************************************************************************** - Konami Contra - * PCB label: BH002 - * Sharp SM511 under epoxy (die label KMS73B, KMS773) + Konami Gradius (model BH004) + * PCB label: BH004 + * Sharp SM511 under epoxy (die label KMS73B, 771) * lcd screen with custom segments, 1-bit sound - Contra handheld is titled simply "C" in the USA. + known releases: + - World: Gradius + - Japan: Nemesis ***************************************************************************/ -class kcontra_state : public hh_sm510_state +class kgradius_state : public hh_sm510_state { public: - kcontra_state(const machine_config &mconfig, device_type type, const char *tag) : + kgradius_state(const machine_config &mconfig, device_type type, const char *tag) : hh_sm510_state(mconfig, type, tag) - { - // increase lcd decay: score digit flickers - m_decay_len = 20; - } + { } - void kcontra(machine_config &config); + void kgradius(machine_config &config); }; // config -static INPUT_PORTS_START( kcontra ) +static INPUT_PORTS_START( kgradius ) PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) - - PORT_START("IN.2") // S3 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start") - PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") INPUT_PORTS_END -void kcontra_state::kcontra(machine_config &config) +void kgradius_state::kgradius(machine_config &config) { - sm511_common(config, 1505, 1080); + sm511_common(config, 1420, 1080); } // roms -ROM_START( kcontra ) // except for filler/unused bytes, ROM listing in patent US5120057 "BH002 C (Contra)" program/melody is same +ROM_START( kgradius ) ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "773.program", 0x0000, 0x1000, CRC(bf834877) SHA1(055dd56ec16d63afba61ab866481fd9c029fb54d) ) + ROM_LOAD( "771.program", 0x0000, 0x1000, CRC(830c2afc) SHA1(bb9ebd4e52831cc02cd92dd4b37675f34cf37b8c) ) ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "773.melody", 0x000, 0x100, CRC(23d02b99) SHA1(703938e496db0eeacd14fe7605d4b5c39e0a5bc8) ) + ROM_LOAD( "771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) ) - ROM_REGION( 721055, "screen", 0) - ROM_LOAD( "kcontra.svg", 0, 721055, CRC(f1ce8d19) SHA1(7d8f2fac40605a3fd6f1386c945a53412b2f2b15) ) + ROM_REGION( 638136, "screen", 0) + ROM_LOAD( "kgradius.svg", 0, 638136, CRC(85dd296e) SHA1(bd75d0c08387a69bbcf4fd100252846499a261b3) ) ROM_END @@ -4814,9 +4878,9 @@ ROM_END /*************************************************************************** - Konami Teenage Mutant Ninja Turtles + Konami Teenage Mutant Ninja Turtles (model BH005) * PCB label: BH005 - * Sharp SM511 under epoxy (die label KMS73B, KMS774) + * Sharp SM511 under epoxy (die label KMS73B, 774) * lcd screen with custom segments, 1-bit sound ***************************************************************************/ @@ -4849,7 +4913,7 @@ static INPUT_PORTS_START( ktmnt ) PORT_START("IN.2") // S3 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") @@ -4879,60 +4943,67 @@ ROM_END /*************************************************************************** - Konami Gradius - * PCB label: BH004 - * Sharp SM511 under epoxy (die label KMS73B, KMS774) + Konami Bottom of the Ninth (model BH008) + * PCB label: BH008 + * Sharp SM511 under epoxy (die label KMS73B, 779) * lcd screen with custom segments, 1-bit sound - Known in Japan as Nemesis. + known releases: + - World: Bottom of the Ninth + - USA: Major League Baseball + - Japan: がんばれ ベースボール (Ganbare Baseball) ***************************************************************************/ -class kgradius_state : public hh_sm510_state +class kbottom9_state : public hh_sm510_state { public: - kgradius_state(const machine_config &mconfig, device_type type, const char *tag) : + kbottom9_state(const machine_config &mconfig, device_type type, const char *tag) : hh_sm510_state(mconfig, type, tag) { } - void kgradius(machine_config &config); + void kbottom9(machine_config &config); }; // config -static INPUT_PORTS_START( kgradius ) +static INPUT_PORTS_START( kbottom9 ) PORT_START("IN.0") // S1 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_START("IN.1") // S2 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_CB(input_changed) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_CB(input_changed) PORT_NAME("Sound") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Level/Time") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_CB(input_changed) PORT_NAME("Power On/Start") + + PORT_START("IN.2") // S3 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) + PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_START("ACL") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("All Clear") INPUT_PORTS_END -void kgradius_state::kgradius(machine_config &config) +void kbottom9_state::kbottom9(machine_config &config) { - sm511_common(config, 1420, 1080); + sm511_common(config, 1480, 1080); } // roms -ROM_START( kgradius ) +ROM_START( kbottom9 ) ROM_REGION( 0x1000, "maincpu", 0 ) - ROM_LOAD( "771.program", 0x0000, 0x1000, CRC(830c2afc) SHA1(bb9ebd4e52831cc02cd92dd4b37675f34cf37b8c) ) + ROM_LOAD( "779.program", 0x0000, 0x1000, CRC(2f566534) SHA1(01f67fad87648e00278a5aa707a3cd827e6d68cf) ) ROM_REGION( 0x100, "maincpu:melody", 0 ) - ROM_LOAD( "771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) ) + ROM_LOAD( "779.melody", 0x000, 0x100, CRC(eaa2aa04) SHA1(24f1d9b381c3f6a3f9ee1b336593d0ca46744978) ) - ROM_REGION( 638136, "screen", 0) - ROM_LOAD( "kgradius.svg", 0, 638136, CRC(85dd296e) SHA1(bd75d0c08387a69bbcf4fd100252846499a261b3) ) + ROM_REGION( 411107, "screen", 0) + ROM_LOAD( "kbottom9.svg", 0, 411107, CRC(04a50349) SHA1(eba3bee0dba7c2d37405fea6156adc0e2fe6cb07) ) ROM_END @@ -4943,7 +5014,7 @@ ROM_END Konami Lone Ranger * PCB label: BH009 - * Sharp SM511 under epoxy (die label KMS73B, KMS781) + * Sharp SM511 under epoxy (die label KMS73B, 781) * lcd screen with custom segments, 1-bit sound ***************************************************************************/ @@ -5001,9 +5072,9 @@ ROM_END /*************************************************************************** - Konami Blades of Steel + Konami Blades of Steel (model 13011) * PCB label: BH011 - * Sharp SM511 under epoxy (die label KMS73B, KMS782) + * Sharp SM511 under epoxy (die label KMS73B, 782) * lcd screen with custom segments, 1-bit sound ***************************************************************************/ @@ -5069,7 +5140,7 @@ ROM_END /*************************************************************************** Konami NFL Football - * Sharp SM511 under epoxy (die label KMS73B, KMS786) + * Sharp SM511 under epoxy (die label KMS73B, 786) * lcd screen with custom segments, 1-bit sound This is the 1989 version. It was rereleased in 1992, assumed to be the same @@ -5138,7 +5209,7 @@ ROM_END /*************************************************************************** Konami The Adventures of Bayou Billy - * Sharp SM511 under epoxy (die label KMS73B, KMS788) + * Sharp SM511 under epoxy (die label KMS73B, 788) * lcd screen with custom segments, 1-bit sound ***************************************************************************/ @@ -10307,14 +10378,15 @@ CONS( 1990, auslalom, 0, 0, auslalom, auslalom, auslalom_s // Konami CONS( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, empty_init, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, empty_init, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, empty_init, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, empty_init, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, empty_init, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, empty_init, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, kblades, 0, 0, kblades, kblades, kblades_state, empty_init, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, knfl, 0, 0, knfl, knfl, knfl_state, empty_init, "Konami", "NFL Football (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) -CONS( 1989, kbilly, 0, 0, kbilly, kbilly, kbilly_state, empty_init, "Konami", "The Adventures of Bayou Billy (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, empty_init, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1990, kbottom9, 0, 0, kbottom9, kbottom9, kbottom9_state, empty_init, "Konami", "Bottom of the Ninth (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1990, kloneran, 0, 0, kloneran, kloneran, kloneran_state, empty_init, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1990, kblades, 0, 0, kblades, kblades, kblades_state, empty_init, "Konami", "Blades of Steel (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1990, knfl, 0, 0, knfl, knfl, knfl_state, empty_init, "Konami", "NFL Football (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) +CONS( 1990, kbilly, 0, 0, kbilly, kbilly, kbilly_state, empty_init, "Konami", "The Adventures of Bayou Billy (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, empty_init, "Konami", "Bucky O'Hare (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 014d6bd59a1..825c137c106 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -16748,6 +16748,7 @@ gnw_vermin // Nintendo gnw_zelda // Nintendo kbilly // Konami kblades // Konami +kbottom9 // Konami kbucky // Konami kcontra // Konami kdribble // Konami diff --git a/src/mame/namco/namcos22.cpp b/src/mame/namco/namcos22.cpp index cb21c7ffd6d..21addc0414c 100644 --- a/src/mame/namco/namcos22.cpp +++ b/src/mame/namco/namcos22.cpp @@ -25,7 +25,10 @@ TODO: the MOTHER PCB at J2 Pin 7 /TXD - 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 -- global offset is wrong in non-super22 servicemode video test, and above that, it flickers in acedrive, victlap +- tokyowar garbage tile at right edge in attract mode. It's part of the cabinet link message, maybe BTANB? +- global offset is wrong in non-super22 testmode video test, and above that, it flickers in acedrive, victlap +- ss22 testmode video test screen#04 translucent polygon should be higher priority than sprite +- ss22 testmode video test screen#13 geometry should not be lopsided (uses draw_direct_poly) - find out how/where vics num_sprites is determined exactly, currently a workaround is needed for airco22b and dirtdash - there's a sprite limit per scanline, eg. timecris submarine explosion smoke partially erases sprites on real hardware - propcycl attract mode, when the altar button is pressed, global fade should affect the background sprite diff --git a/src/mame/namco/namcos22_v.cpp b/src/mame/namco/namcos22_v.cpp index 24b26c84499..7f90299defd 100644 --- a/src/mame/namco/namcos22_v.cpp +++ b/src/mame/namco/namcos22_v.cpp @@ -698,8 +698,8 @@ void namcos22_renderer::render_scene(screen_device &screen, bitmap_rgb32 &bitmap float namcos22_state::dspfloat_to_nativefloat(u32 val) { s16 mantissa = (s16)val; - float result = mantissa;//?((float)mantissa):((float)0x10000); - int exponent = (val >> 16) & 0xff; + float result = (float)mantissa; + int exponent = (val >> 16) & 0x3f; while (exponent < 0x2e) { result /= 2.0f; @@ -865,7 +865,7 @@ void namcos22_state::draw_direct_poly(const u16 *src) int mantissa = (s16)src[5]; float zf = (float)mantissa; - int exponent = (src[4]) & 0xff; + int exponent = (src[4]) & 0x3f; if (mantissa) { while (exponent < 0x2e) @@ -1352,9 +1352,9 @@ void namcos22_state::slavesim_handle_200002(const s32 *src, int code) m[1][2] = dspfixed_to_nativefloat(src[0x8]); m[2][2] = dspfixed_to_nativefloat(src[0x9]); - m[3][0] = src[0xa]; // xpos - m[3][1] = src[0xb]; // ypos - m[3][2] = src[0xc]; // zpos + m[3][0] = signed24(src[0xa]); // xpos + m[3][1] = signed24(src[0xb]); // ypos + m[3][2] = signed24(src[0xc]); // zpos matrix3d_multiply(m, m_viewmatrix); blit_polyobject(code, m); -- cgit v1.2.3