From ad7fc8b00ddb7359257815d50e8527042060fc1a Mon Sep 17 00:00:00 2001 From: Robbbert Date: Thu, 30 Jan 2025 03:48:17 +1100 Subject: [PATCH] Added doubled1. Removed jumpbugz. galasian h/w: fixed sprites --- docs/release/docs/hbnew.txt | 4 +++- src/hbmame/drivers/galaxian.cpp | 28 ---------------------------- src/hbmame/drivers/neogeohb.cpp | 21 ++++++++++++++++++++- src/hbmame/hbmame.lst | 2 +- src/hbmame/includes/galaxian.h | 2 -- src/mame/video/galaxian.cpp | 9 +++++---- 6 files changed, 29 insertions(+), 37 deletions(-) diff --git a/docs/release/docs/hbnew.txt b/docs/release/docs/hbnew.txt index 64a42feb9e5..99df94f0fbc 100644 --- a/docs/release/docs/hbnew.txt +++ b/docs/release/docs/hbnew.txt @@ -4,11 +4,13 @@ 2025-xx-xx 0.245.22 - NAM-1975: Enabled the demo in the attract mode +- Galaxian hardware: fixed bugs in sprite drawing cocktail mode New Games --------------------------------- - [cbarrel] Captain Barrel -- [doubled] Double Dragon One demo +- [doubled] Double Dragon One demo (2025-01-23) +- [doubled1] Double Dragon One demo (2025-01-03) - [galaxiann2] Galaxians (beta 2, 2023-06-23) (Neo-Geo port) - [pakupaku] Paku Paku (v0.01) - [pakupaku2] Paku Paku (v0.02) diff --git a/src/hbmame/drivers/galaxian.cpp b/src/hbmame/drivers/galaxian.cpp index 57efb47a9a8..b62161127e1 100644 --- a/src/hbmame/drivers/galaxian.cpp +++ b/src/hbmame/drivers/galaxian.cpp @@ -25,29 +25,6 @@ static INPUT_PORTS_START( galaxiab ) INPUT_PORTS_END - -/*********************************************************** - * - * Jump Bug (with extra sounds via Galaxian sound board) - * - ***********************************************************/ - -void galaxian_hbmame::jumpbugx_map(address_map &map) -{ - jumpbug_map(map); -/* HBMAME - added next lines */ - map(0x6800,0x6807).mirror(0x07f8).w("cust",FUNC(galaxian_sound_device::sound_w)); - map(0x7800,0x7800).mirror(0x07ff).w("cust",FUNC(galaxian_sound_device::pitch_w)); -} - -void galaxian_hbmame::jumpbugx(machine_config &config) -{ - jumpbug(config); - m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_hbmame::jumpbugx_map); - GALAXIAN_SOUND(config, "cust", 0); -} - - /************************************* * * Mr. Do Nightmare @@ -641,10 +618,6 @@ ROM_START( amidars01 ) ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) ) ROM_END - -#define rom_jumpbugx rom_jumpbug - - ROM_START( kazzy ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) ) @@ -903,7 +876,6 @@ GAME( 2017, moontest, mooncrst, mooncrst, mooncrst, galaxian_hbmame, init_moon // Other -GAME( 1981, jumpbugx, 0, jumpbugx, jumpbug, galaxian_hbmame, init_jumpbug, ROT90, "Rock-ola", "Jump Bug (Extra Sounds)", MACHINE_SUPPORTS_SAVE ) GAME( 1980, kingball01, kingball, kingball, kingball, kingball_state, init_galaxian, ROT90, "bootleg", "King & Balloon (bootleg)", MACHINE_SUPPORTS_SAVE ) GAME( 1979, cosmicw, uniwars, pisces, spacbatt, pisces_state, init_pisces, ROT90, "B.G.Video Ltd", "Cosmic Wars", MACHINE_SUPPORTS_SAVE ) GAME( 19??, starfgh2, pisces, pisces, piscesb, pisces_state, init_pisces, ROT90, "bootleg", "Starfighter II", MACHINE_SUPPORTS_SAVE ) diff --git a/src/hbmame/drivers/neogeohb.cpp b/src/hbmame/drivers/neogeohb.cpp index 8c573f6f3d4..da58cd4e496 100644 --- a/src/hbmame/drivers/neogeohb.cpp +++ b/src/hbmame/drivers/neogeohb.cpp @@ -2161,6 +2161,24 @@ ROM_START( doubled ) // demo, game# 14A3 ROM_LOAD16_BYTE( "505.c2", 0x0000001, 0x1000000, CRC(340f0428) SHA1(e35c8dbd3cbdc39d63630e7bffcf14ca5238a265) ) ROM_END +ROM_START( doubled1 ) // earlier + ROM_REGION( 0x500000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "505a.p1", 0x000000, 0x100000, CRC(518ac649) SHA1(e0052477cec58eef6506ea7c2d1ec5000a39ffdd) ) + ROM_LOAD16_WORD_SWAP( "505a.p2", 0x100000, 0x400000, CRC(87cf345c) SHA1(6c6997fc092fe8f8a45690344318be59955daa89) ) + + NEO_SFIX_128K( "505a.s1", CRC(9886a683) SHA1(f079a61942321a0abdf6acd451e9ac7d84cb252b) ) + + NEO_BIOS_AUDIO_64K( "505.m1", CRC(d20925ae) SHA1(c0deac17eb9ef93896e93e7b2cbacb5214f0da1b) ) + + ROM_REGION( 0x1000000, "ymsnd:adpcma", 0 ) + ROM_LOAD( "505.v1", 0x000000, 0x800000, CRC(197b6305) SHA1(8ab6c573c5116fd7dedf9157c308dac4d45b2599) ) + ROM_LOAD( "502.v2", 0x800000, 0x800000, CRC(8135d5a8) SHA1(186a516ed0fbc1d39f96385513de2ad662511559) ) // same as in Cyborg Force + + ROM_REGION( 0x2000000, "sprites", 0 ) + ROM_LOAD16_BYTE( "505a.c1", 0x0000000, 0x1000000, CRC(905b6f78) SHA1(48caa05ee9aafc2c93c96c628e84f1feeaa52c98) ) + ROM_LOAD16_BYTE( "505a.c2", 0x0000001, 0x1000000, CRC(c677a62f) SHA1(298d98391ffe5b66e95a6ee5c7e54731b10d6827) ) +ROM_END + // 539: Shadow Gangs demo by Shadow Gangs // bugs: screen goes black, sound stops after a few seconds @@ -3569,7 +3587,8 @@ GAME( 2023, cyborg1, cyborg, neogeo_noslot, neogeo, neogeo_state, init GAME( 2018, ddsprdmo, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Vasily Familiya", "Double Dragon SpritePool demo", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) GAME( 2018, ddsprdmo1, ddsprdmo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Vasily Familiya", "Double Dragon SpritePool demo (newer)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE ) GAME( 2016, didemo, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "Mega Shocked", "DatImage demo", MACHINE_SUPPORTS_SAVE ) -GAME( 2025, doubled, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "neocvera", "Double Dragon One demo", MACHINE_SUPPORTS_SAVE ) +GAME( 2025, doubled, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "neocvera", "Double Dragon One demo (2025-01-23)", MACHINE_SUPPORTS_SAVE ) +GAME( 2025, doubled1, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "neocvera", "Double Dragon One demo (2025-01-03)", MACHINE_SUPPORTS_SAVE ) GAME( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "[Raregame]", "Duck Tales (Intro demo v1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 2009, dtia, dti, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "[Raregame]", "Duck Tales (Intro demo v2)", MACHINE_SUPPORTS_SAVE ) GAME( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, init_neogeo, ROT0, "[Raregame]", "DarkWing Duck (Intro demo v1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/hbmame/hbmame.lst b/src/hbmame/hbmame.lst index 250ea091366..22f799d9959 100644 --- a/src/hbmame/hbmame.lst +++ b/src/hbmame/hbmame.lst @@ -1956,7 +1956,6 @@ galinvad /* T-Bone hack of Galaxian */ galxtest1 galxtest2 gaylaxn /* The Dog hack of Galaxian Part X */ -jumpbugx // extra sounds vectrgal /* T-Bone hack of Galaxian */ fourplay videight /* 8in1 multigame */ @@ -6128,6 +6127,7 @@ ddsprdmo ddsprdmo1 didemo doubled +doubled1 dti // Duck Tales Intro dtia // Duck Tales Intro dwi /* DarkWing Duck Intro */ diff --git a/src/hbmame/includes/galaxian.h b/src/hbmame/includes/galaxian.h index 0dc22c8333b..6fc1ab0dce7 100644 --- a/src/hbmame/includes/galaxian.h +++ b/src/hbmame/includes/galaxian.h @@ -9,11 +9,9 @@ class galaxian_hbmame : public galaxian_state : galaxian_state(mconfig, type, tag) { } - void jumpbugx(machine_config &config); void tst_frog(machine_config &config); void init_trukker(); private: - void jumpbugx_map(address_map &map); void tst_frog_map(address_map &map); }; diff --git a/src/mame/video/galaxian.cpp b/src/mame/video/galaxian.cpp index e94bd6f28f7..a2eb84095b9 100644 --- a/src/mame/video/galaxian.cpp +++ b/src/mame/video/galaxian.cpp @@ -563,8 +563,8 @@ void galaxian_state::sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprec /* 16 of the 256 pixels of the sprites are hard-clipped at the line buffer */ /* according to the schematics, it should be the first 16 pixels */ - clip.min_x = std::max(clip.min_x, (!m_flipscreen_x) * (m_leftspriteclip + hoffset) * m_x_scale); - clip.max_x = std::min(clip.max_x, (256 - m_flipscreen_x * (16 + hoffset)) * m_x_scale - 1); + clip.max_x = (256 - (m_flipscreen_x ? m_leftspriteclip : 0)) * m_x_scale - 1; + clip.min_x = (m_flipscreen_x ? 0 : m_leftspriteclip) * m_x_scale; /* The line buffer is only written if it contains a '0' currently; */ /* it is cleared during the visible area, and populated during HBLANK */ @@ -585,6 +585,7 @@ void galaxian_state::sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprec uint8_t flipy = base[1] & 0x80; uint8_t color = base[2] & 7; uint8_t sx = base[3] + hoffset; + int sx1 = base[3] + hoffset; /* extend the sprite information */ m_extend_sprite_info_ptr(base, &sx, &sy, &flipx, &flipy, &code, &color); @@ -592,7 +593,7 @@ void galaxian_state::sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprec /* apply flipscreen in X direction */ if (m_flipscreen_x) { - sx = 240 - sx; + sx1 = 240 - sx1; flipx = !flipx; } @@ -607,7 +608,7 @@ void galaxian_state::sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprec m_gfxdecode->gfx(1)->transpen(bitmap,clip, code, color, flipx, flipy, - m_h0_start + m_x_scale * sx, sy, 0); + m_h0_start + m_x_scale * sx1, sy, 0); } }