diff options
| author | 2025-07-08 18:42:24 +0200 | |
|---|---|---|
| committer | 2025-07-08 18:42:24 +0200 | |
| commit | 1a580f3e71c3812bf636a3797623bef93ee41564 (patch) | |
| tree | 46957009cca0702ba94cb4dacd7451880a78de3d | |
| parent | d1aeddf321145bb7fcbd183c701604e47530aeb7 (diff) | |
New working clones
------------------
Butterfly Video Game (version U863M) [Mr.Fu]
- seibu/banprestomsz80.cpp: added sprites, some dip descriptions
| -rw-r--r-- | src/mame/bordun/skylncr.cpp | 49 | ||||
| -rw-r--r-- | src/mame/mame.lst | 1 | ||||
| -rw-r--r-- | src/mame/seibu/banprestomsz80.cpp | 165 | ||||
| -rw-r--r-- | src/mame/seta/speedatk.cpp | 2 |
4 files changed, 133 insertions, 84 deletions
diff --git a/src/mame/bordun/skylncr.cpp b/src/mame/bordun/skylncr.cpp index d4e2bffd100..5e5ca7377e2 100644 --- a/src/mame/bordun/skylncr.cpp +++ b/src/mame/bordun/skylncr.cpp @@ -1795,7 +1795,7 @@ Notes: */ ROM_START( skylncr ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "27512.u35", 0x00000, 0x10000, CRC(98b1c9fe) SHA1(9ca1706d25038a078fb07ba5c2e6681ed468bc88) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1806,7 +1806,7 @@ ROM_START( skylncr ) ROM_END ROM_START( butrfly ) // this has original Bordun copyright in ROMs and test mode in Chinese - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "sub-pcb.bin", 0x00000, 0x10000, CRC(f5618f8e) SHA1(390b238821b195f444e69c45786617524e6f5394) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1822,8 +1822,26 @@ ROM_START( butrfly ) // this has original Bordun copyright in ROMs and test mode ROM_LOAD16_BYTE( "u58", 0x40001, 0x20000, CRC(a69b5994) SHA1(f7f849c752740089a49dc6693822466d73010ea0) ) ROM_END +ROM_START( butrflya ) // this was on an original Bordun PCB, with Bordun copyright in ROMs and title screen, test mode in Chinese + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD( "u15.u15", 0x00000, 0x08000, CRC(31f7dca8) SHA1(c433b3a4f5c7f504dfc89f499fa244e59235bc89) ) // 27256 + ROM_LOAD( "u48", 0x0c000, 0x04000, CRC(39c391c5) SHA1(326f4d72d546bc902542e628a6e87dc941ef0ef4) ) // 27128, no label + + ROM_REGION( 0x80000, "gfx1", 0 ) // all 27010 + ROM_LOAD16_BYTE( "100.u20", 0x00000, 0x20000, CRC(2ff775ea) SHA1(2219c75cbac2969485607446ab116587bdee7278) ) + ROM_LOAD16_BYTE( "102.u21", 0x00001, 0x20000, CRC(029d2214) SHA1(cf8256157db0b297ed457b3da6b6517907128843) ) + ROM_LOAD16_BYTE( "103.u22", 0x40000, 0x20000, CRC(37bad677) SHA1(c077f0c07b097b376a01e5637446e4c4f82d9e28) ) + ROM_LOAD16_BYTE( "104.u23", 0x40001, 0x20000, CRC(d14c7713) SHA1(c229ef64f3b0a04ff8e27bc56cff6a55ca34b80c) ) + + ROM_REGION( 0x80000, "gfx2", 0 ) // all 27010 + ROM_LOAD16_BYTE( "105.u22", 0x00000, 0x20000, CRC(15051537) SHA1(086c38c05c605f297a7bc470eb51763a7648e72c) ) + ROM_LOAD16_BYTE( "106.u21", 0x00001, 0x20000, CRC(8e34d029) SHA1(ae316f2f34768938a07d62db110ce59d2751abaa) ) + ROM_LOAD16_BYTE( "107.u20", 0x40000, 0x20000, CRC(226cb483) SHA1(89efa0e11700bcab0024a6058a5f1ee6b4a09953) ) + ROM_LOAD16_BYTE( "108.u19", 0x40001, 0x20000, CRC(a69b5994) SHA1(f7f849c752740089a49dc6693822466d73010ea0) ) +ROM_END + ROM_START( butrflybl ) // this has Bordun copyright removed and test mode in English - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "butterfly.prg", 0x00000, 0x10000, CRC(b35b289c) SHA1(5a02bfb6e1fb608099b9f491c10795ef888a3b36) ) // Mata Electronic / Sen Xing Trading copyright instead of Bordun ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1840,7 +1858,7 @@ ROM_START( butrflybl ) // this has Bordun copyright removed and test mode in Eng ROM_END ROM_START( mbutrfly ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "magical_butterfy_x4_cleco.bin", 0x00000, 0x10000, CRC(2391778f) SHA1(f82ee9fb571547fda70867e091317779e2fe6e80) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1857,7 +1875,7 @@ ROM_START( mbutrfly ) ROM_END ROM_START( gallag50 ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "27512.u9", 0x00000, 0x10000, CRC(355f8c3b) SHA1(d419fcb96bf936eaf7afb1a4b38a9e1d2a191686) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1904,7 +1922,7 @@ Notes: */ ROM_START( madzoo ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "27512.u9", 0x00000, 0x10000, CRC(98b1c9fe) SHA1(9ca1706d25038a078fb07ba5c2e6681ed468bc88) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1921,7 +1939,7 @@ ROM_START( madzoo ) ROM_END ROM_START( leader ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "leader.prg", 0x00000, 0x10000, CRC(1a6e1129) SHA1(639f687e7720bab89628b377dca0475f17a35041) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1938,7 +1956,7 @@ ROM_START( leader ) ROM_END ROM_START( leadera ) // this has the same GFX ROMs as butrfly, with different program - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "leader 2ka.bin", 0x00000, 0x10000, CRC(2664db55) SHA1(de4c07a8ba8fab772441395b6d05272ee54d9614) ) // on sub board with Altera EPM7032 ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1962,7 +1980,7 @@ ROM_END Maybe it's a leftover, or it's a sort of stealth game. */ ROM_START( neraidou ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "aepi.prg", 0x00000, 0x10000, CRC(7ac74830) SHA1(1e3322341711e329b40d94ac6ec25fbafb1d4d62) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -1986,7 +2004,7 @@ ROM_END But is not the real title. */ ROM_START( miaction ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "27c512_sub_board_miaction.bin", 0x00000, 0x10000, CRC(4865a6de) SHA1(cfa23eef004f9a29d462676d9b9b94a1e84064d6) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -2011,7 +2029,7 @@ ROM_END */ ROM_START( tigerslt ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "27c512_sub_board_tiger.bin", 0x00000, 0x10000, CRC(3c4181bf) SHA1(afc4fcd7ec9a48406242fe7e01a32e1a20216330) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -2236,7 +2254,7 @@ ROM_END Program ROM is encrypted. */ ROM_START( sonikfig ) - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "subboard_27c512.bin", 0x00000, 0x10000, CRC(f9b5b03e) SHA1(3832a7d70b41052f9dca46faa6f311ccc5a817b7) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -2369,7 +2387,7 @@ ROM_START( speedwaya ) // runs on a Rolla PCB with small sub board with main CPU ROM_END ROM_START( seadevil ) // on a POCKBOY REV.0 PCB - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "v42 scr scm.u13", 0x00000, 0x10000, CRC(23b6eb48) SHA1(469d9f766ce96d2c850d611cd9a8b48545c71aaf) ) // on sub PCB, M27C512 ROM_REGION( 0x80000, "gfx1", 0 ) // all AM27C010 @@ -2386,7 +2404,7 @@ ROM_START( seadevil ) // on a POCKBOY REV.0 PCB ROM_END ROM_START( spcliner ) // on a ROLLA PCB, might actually be another title, won't know until palette is fixed. GFX ROM loading is wrong. - ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "9.sub", 0x00000, 0x10000, CRC(80f65def) SHA1(a0716d57ae4935a79d32971d0bcb9f40dd9f1d54) ) // on sub PCB ROM_REGION( 0x80000, "gfx1", 0 ) @@ -2403,7 +2421,7 @@ ROM_START( spcliner ) // on a ROLLA PCB, might actually be another title, won't ROM_END ROM_START( blshark ) - ROM_REGION( 0x80000, "maincpu", 0 ) // on sub PCB + ROM_REGION( 0x10000, "maincpu", 0 ) // on sub PCB ROM_LOAD( "sub", 0x00000, 0x10000, CRC(ed005267) SHA1(b20c62d76d4d49ee42e1f2f922015bec3cbbd25d) ) ROM_REGION( 0x80000, "gfx1", 0 ) @@ -2637,6 +2655,7 @@ void skylncr_state::init_blshark() // done by comparing code to skylancr, may be // YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", MACHINE_SUPPORTS_SAVE ) GAME( 1995, butrfly, 0, skylncr, skylncr, skylncr_state, init_butrfly, ROT0, "Bordun International", "Butterfly Video Game (version A00)", MACHINE_SUPPORTS_SAVE ) +GAME( 2006, butrflya, butrfly, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Butterfly Video Game (version U863M)", MACHINE_SUPPORTS_SAVE ) GAME( 1995, butrflybl, butrfly, skylncr, skylncr, skylncr_state, empty_init, ROT0, "bootleg", "Butterfly Video Game (version U350C)", MACHINE_SUPPORTS_SAVE ) GAME( 1999, mbutrfly, 0, mbutrfly, mbutrfly, skylncr_state, init_mbutrfly, ROT0, "Bordun International", "Magical Butterfly (version U350C, protected)", MACHINE_SUPPORTS_SAVE ) GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr_state, empty_init, ROT0, "Bordun International", "Mad Zoo (version U450C)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4dd72fbb7f7..6de9daa1010 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15214,6 +15214,7 @@ lianhp3 bdream97 blshark butrfly +butrflya butrflybl dbsha gallag50 diff --git a/src/mame/seibu/banprestomsz80.cpp b/src/mame/seibu/banprestomsz80.cpp index 620eee57963..85bac4ffe3c 100644 --- a/src/mame/seibu/banprestomsz80.cpp +++ b/src/mame/seibu/banprestomsz80.cpp @@ -21,10 +21,11 @@ Main components: - OKI M6295 TODO: -- sprites -- visible area -- hopper -- more tilemaps? +- hopper (stops the game from working) +- sprites' priority +- check visible area +- 2 more tilemaps (don't seem used by the dumped game) +- enable NVRAM support once it works */ #include "emu.h" @@ -42,7 +43,7 @@ TODO: #include "tilemap.h" -//namespace { +namespace { class banprestomsz80_state : public driver_device { @@ -55,8 +56,8 @@ public: m_palette(*this, "palette"), m_hopper(*this, "hopper"), m_charram(*this, "charram"), - m_bgram(*this, "bgram") - //m_spriteram(*this, "sprite_ram") + m_bgram(*this, "bgram"), + m_spriteram(*this, "sprite_ram") { } void banprestomsz80(machine_config &config) ATTR_COLD; @@ -73,12 +74,14 @@ private: required_shared_ptr<uint8_t> m_charram; required_shared_ptr<uint8_t> m_bgram; - //required_shared_ptr<uint8_t> m_spriteram; + required_shared_ptr<uint8_t> m_spriteram; tilemap_t *m_char_tilemap = nullptr; tilemap_t *m_bg_tilemap = nullptr; uint8_t m_crtc_upper_data = 0; + uint16_t m_layer_en = 0; + uint16_t m_scrollram[6] {}; void output_w(uint8_t data); void output2_w(uint8_t data); @@ -90,6 +93,8 @@ private: void crtc_upper_data_w(uint8_t data); void crtc_w(offs_t offset, uint8_t data); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); + TILE_GET_INFO_MEMBER(get_char_tile_info); TILE_GET_INFO_MEMBER(get_bg_tile_info); @@ -109,9 +114,10 @@ void banprestomsz80_state::video_start() m_bg_tilemap->set_transparent_pen(0x0f); save_item(NAME(m_crtc_upper_data)); + save_item(NAME(m_layer_en)); + save_item(NAME(m_scrollram)); } - void banprestomsz80_state::charram_w(offs_t offset, uint8_t data) { m_charram[offset] = data; @@ -129,7 +135,7 @@ TILE_GET_INFO_MEMBER(banprestomsz80_state::get_char_tile_info) int const tile = m_charram[2 * tile_index] | ((m_charram[2 * tile_index + 1] & 0x07) << 8); int const color = m_charram[2 * tile_index + 1] >> 4; - tileinfo.set(2, tile, color, 0); + tileinfo.set(0, tile, color, 0); } TILE_GET_INFO_MEMBER(banprestomsz80_state::get_bg_tile_info) @@ -140,10 +146,33 @@ TILE_GET_INFO_MEMBER(banprestomsz80_state::get_bg_tile_info) tileinfo.set(1, tile, color, 0); } +void banprestomsz80_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) +{ + for (int i = 0x200 - 4; i > -1; i -= 4) + { + int const tile = m_spriteram[i] | ((m_spriteram[i + 1] & 0x70) << 4); + int const color = m_spriteram[i + 1] & 0x0f; + int const y = m_spriteram[i + 2]; + int const x = m_spriteram[i + 3]; + + m_gfxdecode->gfx(2)->transpen(bitmap, cliprect, tile, color, 0, 0, x, y, 0xf); + } +} + uint32_t banprestomsz80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { - m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); - m_char_tilemap->draw(screen, bitmap, cliprect, 0, 0); + screen.priority().fill(0, cliprect); + + m_bg_tilemap->set_scrollx(0, m_scrollram[4]); + m_bg_tilemap->set_scrolly(0, m_scrollram[5]); + + // are these two tilemaps used? doesn't seem so + //if (BIT(~m_layer_en, 0)) { tilemap0->draw(screen, bitmap, cliprect, 0, 1); } + //if (BIT(~m_layer_en, 1)) { tilemap1->draw(screen, bitmap, cliprect, 0, 2); } + + if (BIT(~m_layer_en, 2)) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 4); } + if (BIT(~m_layer_en, 3)) { m_char_tilemap->draw(screen, bitmap, cliprect, 0, 8); } + if (BIT(~m_layer_en, 4)) { draw_sprites(bitmap, cliprect); } return 0; } @@ -196,7 +225,8 @@ void banprestomsz80_state::program_map(address_map &map) map(0xe000, 0xe7ff).ram(); map(0xe800, 0xefff).ram().w(FUNC(banprestomsz80_state::charram_w)).share(m_charram); map(0xf000, 0xf7ff).ram().w(FUNC(banprestomsz80_state::bgram_w)).share(m_bgram); - map(0xf800, 0xffff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); + map(0xf800, 0xfdff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette"); + map(0xfe00, 0xffff).ram().share(m_spriteram); } // TODO: various writes @@ -241,70 +271,67 @@ static INPUT_PORTS_START( dnjsenso ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME( "Bet 1" ) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME( "Bet 2" ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME( "Bet 3" ) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) PORT_NAME( "Bet 4" ) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(4) PORT_NAME( "Bet 5" ) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(4) PORT_NAME( "Bet 6" ) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(4) PORT_NAME( "Bet 7" ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // No effect in test mode + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4) PORT_NAME("Bet 1") + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4) PORT_NAME("Bet 2") + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4) PORT_NAME("Bet 3") + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4) PORT_NAME("Bet 4") + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(4) PORT_NAME("Bet 5") + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(4) PORT_NAME("Bet 6") + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_PLAYER(4) PORT_NAME("Bet 7") + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + // Switch effects taken from test mode. No medal in rate shown, so possibly a couple of the unknown ones are that PORT_START("DSW1") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("DSW1:1,2") // 100 Yen + PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) + PORT_DIPSETTING( 0x02, DEF_STR( 1C_6C ) ) + PORT_DIPSETTING( 0x01, DEF_STR( 1C_10C ) ) + PORT_DIPSETTING( 0x03, "1 Coin/11 Credits" ) + PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:3") // no effect in test mode PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4") // no effect in test mode PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:5") // no effect in test mode PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, "Voice" ) PORT_DIPLOCATION("DSW1:6") + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x20, DEF_STR( On ) ) + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("DSW1:7,8") // 10 Yen + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) + PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) ) + PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) + PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) ) PORT_START("DSW2") - PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x07, 0x07, "Payout Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") + PORT_DIPSETTING( 0x07, "50%" ) + PORT_DIPSETTING( 0x03, "60%" ) + PORT_DIPSETTING( 0x05, "65%" ) + PORT_DIPSETTING( 0x01, "70%" ) + PORT_DIPSETTING( 0x06, "75%" ) + PORT_DIPSETTING( 0x02, "80%" ) + PORT_DIPSETTING( 0x04, "85%" ) + PORT_DIPSETTING( 0x00, "90%" ) + PORT_DIPNAME( 0x08, 0x08, "Winwave" ) PORT_DIPLOCATION("DSW2:4") // ?? + PORT_DIPSETTING( 0x08, "Small" ) + PORT_DIPSETTING( 0x00, "Big" ) + PORT_DIPNAME( 0x30, 0x30, "G Medal Rate" ) PORT_DIPLOCATION("DSW2:5,6") + PORT_DIPSETTING( 0x30, "03%" ) + PORT_DIPSETTING( 0x10, "05%" ) + PORT_DIPSETTING( 0x20, "07%" ) + PORT_DIPSETTING( 0x00, "10%" ) + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:7") // no effect shown in test mode PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:8") // no effect shown in test mode PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -// TODO: maybe not 100% correct static const gfx_layout charlayout = { 8,8, @@ -331,7 +358,7 @@ static const gfx_layout tilelayout = static GFXDECODE_START( gfx ) GFXDECODE_ENTRY( "tiles", 0, charlayout, 0x200, 16 ) GFXDECODE_ENTRY( "tiles", 0, tilelayout, 0, 16 ) - GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0x300, 16 ) + GFXDECODE_ENTRY( "sprites", 0, tilelayout, 0x100, 16 ) GFXDECODE_END @@ -352,14 +379,16 @@ void banprestomsz80_state::banprestomsz80(machine_config &config) screen.set_refresh_hz(60); screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); screen.set_size(32*8, 32*8); - screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_visarea(0, 32*8-1, 0, 28*8-1); screen.set_screen_update(FUNC(banprestomsz80_state::screen_update)); screen.set_palette(m_palette); SEIBU_CRTC(config, m_crtc, 0); + m_crtc->layer_en_callback().set([this] (uint16_t data) { m_layer_en = data; }); + m_crtc->layer_scroll_callback().set([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_scrollram[offset]); }); GFXDECODE(config, m_gfxdecode, m_palette, gfx); - PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x400); + PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x300); // sound hardware SPEAKER(config, "mono").front_center(); @@ -368,14 +397,14 @@ void banprestomsz80_state::banprestomsz80(machine_config &config) } -// ウルトラマン超闘士激戦 - 大日本重弾戦争 (Ultraman Chō Tōshi Gekisen - Dai Nippon Jūdan Sensō) +// ウルトラマン倶楽部 大地防衛戦 (Club Ultraman - Daichikyū Bōeisen) ROM_START( dnjsenso ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "s83-c01.u0129", 0x00000, 0x10000, CRC(b9cb8a41) SHA1(4ca9c6dd44691e90ac8373fc7e1e6c704cb2f64c) ) ROM_REGION( 0x40000, "sprites", 0 ) - ROM_LOAD16_BYTE( "s83-a05.u052", 0x00000, 0x20000, CRC(e7fdc950) SHA1(3fe2839a8a8402aa3ee1e867d249b53a4f5bf7a1) ) - ROM_LOAD16_BYTE( "s83-a06.u0510", 0x00001, 0x20000, CRC(d2221ab9) SHA1(168ca7cca0d759e7de9d20f838ed9a303ce7bfa8) ) + ROM_LOAD16_BYTE( "s83-a06.u0510", 0x00000, 0x20000, CRC(d2221ab9) SHA1(168ca7cca0d759e7de9d20f838ed9a303ce7bfa8) ) + ROM_LOAD16_BYTE( "s83-a05.u052", 0x00001, 0x20000, CRC(e7fdc950) SHA1(3fe2839a8a8402aa3ee1e867d249b53a4f5bf7a1) ) ROM_REGION( 0x40000, "tiles", 0 ) ROM_LOAD16_BYTE( "s83-a03.u049", 0x00000, 0x20000, CRC(dced1091) SHA1(03cb87330bed98b96c3ef790bc4dafb744e2f3c9) ) @@ -389,7 +418,7 @@ ROM_START( dnjsenso ) ROM_LOAD( "scz02.u061", 0x200, 0x155, NO_DUMP ) // 18CV8-PC25 ROM_END -//} // anonymous namespace +} // anonymous namespace -GAME( 1992, dnjsenso, 0, banprestomsz80, dnjsenso, banprestomsz80_state, empty_init, ROT0, "Banpresto", "Ultraman Cho Toshi Gekisen - Dai Nippon Judan Senso", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) +GAME( 1992, dnjsenso, 0, banprestomsz80, dnjsenso, banprestomsz80_state, empty_init, ROT0, "Banpresto", "Club Ultraman - Daichikyu Boeisen", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/seta/speedatk.cpp b/src/mame/seta/speedatk.cpp index b50a0de143a..0fe09a66038 100644 --- a/src/mame/seta/speedatk.cpp +++ b/src/mame/seta/speedatk.cpp @@ -792,4 +792,4 @@ GAME( 1983, daifugo, 0, daifugo, daifugo, speedatk_state, empty_init, ROT90, GAME( 1984, speedatk, 0, speedatk, speedatk, speedatk_state, empty_init, ROT0, "Seta Kikaku", "Speed Attack! (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, hanaren2, 0, harashi, speedatk, speedatk_state, empty_init, ROT0, "K & K Electron", "Hana no Ren-Chan II (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) GAME( 1993, harashi, 0, harashi, speedatk, speedatk_state, empty_init, ROT0, "Asahi Bussan", "Hana Arashi (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 1982, unkalba, 0, harashi, speedatk, speedatk_state, empty_init, ROT90, "Alba", "unknown Alba game", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1982, unkalba, 0, harashi, speedatk, speedatk_state, empty_init, ROT90, "Alba", "unknown Alba game", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) |
