From 221566b9d31a66b7595188ab925757a57b0ca4f6 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 1 Oct 2022 01:44:54 +0200 Subject: suprgolf: readd that rompatch --- src/mame/nasco/suprgolf.cpp | 47 +++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/src/mame/nasco/suprgolf.cpp b/src/mame/nasco/suprgolf.cpp index 7cf3a5d720c..1dca42ec66c 100644 --- a/src/mame/nasco/suprgolf.cpp +++ b/src/mame/nasco/suprgolf.cpp @@ -7,7 +7,9 @@ driver by Tomasz Slanina & Angelo Salese TODO: - - understand what needs to be modified for the gfxs; + - remove the rom patch and understand what needs to be modified for the gfxs, + it reads from 0x06(PPI1 port C) and then fails to fill bg vram correctly. + PPI1 ports configuration is very standard, so it's not a 8255 device bug; - Some weird framebuffer vertical gaps with some object, namely the green and the trees (zooming?) - not sure if the analog inputs are handled correctly; @@ -48,6 +50,9 @@ public: void suprgolf(machine_config &config); + void init_suprgolf(); + void init_suprgolfj(); + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -66,7 +71,6 @@ private: std::unique_ptr m_bg_vram; std::unique_ptr m_bg_fb; std::unique_ptr m_fg_fb; - uint8_t m_rom_bank = 0; uint8_t m_bg_bank = 0; uint8_t m_msm5205next = 0; uint8_t m_msm_nmi_mask = 0; @@ -82,7 +86,6 @@ private: void adpcm_data_w(uint8_t data); void rom2_bank_select_w(uint8_t data); void vregs_w(uint8_t data); - uint8_t rom_bank_select_r(); void rom_bank_select_w(uint8_t data); uint8_t pedal_extra_bits_r(); uint8_t p1_r(); @@ -264,7 +267,6 @@ void suprgolf_state::machine_start() membank("bank1")->configure_entries(0, 16, memregion("user2")->base(), 0x4000); membank("bank2")->configure_entries(0, 64, memregion("user1")->base(), 0x4000); - save_item(NAME(m_rom_bank)); save_item(NAME(m_msm5205next)); save_item(NAME(m_msm_nmi_mask)); save_item(NAME(m_toggle)); @@ -280,15 +282,8 @@ void suprgolf_state::adpcm_data_w(uint8_t data) m_msm5205next = data; } -uint8_t suprgolf_state::rom_bank_select_r() -{ - return m_rom_bank; -} - void suprgolf_state::rom_bank_select_w(uint8_t data) { - m_rom_bank = data; - //popmessage("%08x %02x",((data & 0x3f) * 0x4000),data); //osd_printf_debug("ROM_BANK 0x8000 - %X @%X\n",data,m_maincpu->pcbase()); membank("bank2")->set_entry(data & 0x3f); @@ -302,8 +297,8 @@ void suprgolf_state::rom2_bank_select_w(uint8_t data) //osd_printf_debug("ROM_BANK 0x4000 - %X @%X\n",data,m_maincpu->pcbase()); membank("bank1")->set_entry(data & 0x0f); - if(data & 0xf0) - printf("Rom bank select 2 with data %02x activated\n",data); + //if(data & 0xf0) + // printf("Rom bank select 2 with data %02x activated\n",data); } uint8_t suprgolf_state::pedal_extra_bits_r() @@ -483,7 +478,6 @@ void suprgolf_state::suprgolf(machine_config &config) i8255_device &ppi1(I8255A(config, "ppi8255_1")); ppi1.in_pa_callback().set_ioport("SYSTEM"); - ppi1.in_pb_callback().set(FUNC(suprgolf_state::rom_bank_select_r)); ppi1.out_pb_callback().set(FUNC(suprgolf_state::rom_bank_select_w)); ppi1.out_pc_callback().set(FUNC(suprgolf_state::vregs_w)); @@ -645,9 +639,28 @@ ROM_START( albatross ) ROM_LOAD( "chr4.3d", 0x030000, 0x010000, CRC(0fb88270) SHA1(d85a7f1bc5b3c4b13bbd887cea4c055541cbb737) ) ROM_END + +void suprgolf_state::init_suprgolf() +{ + uint8_t *ROM = memregion("user2")->base(); + + ROM[0x74f4-0x4000] = 0x00; + ROM[0x74f5-0x4000] = 0x00; + ROM[0x74fa+(0x4000*3)-0x4000] = 0x20; // patch ROM check +} + +void suprgolf_state::init_suprgolfj() +{ + uint8_t *ROM = memregion("user2")->base(); + + ROM[0x74f4-0x4000] = 0x00; + ROM[0x74f5-0x4000] = 0x00; + ROM[0x6d72+(0x4000*3)-0x4000] = 0x20; // patch ROM check +} + } // Anonymous namespace -GAME( 1989, suprgolf, 0, suprgolf, suprgolf, suprgolf_state, empty_init, ROT0, "Nasco", "Super Crowns Golf (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, suprgolfj, suprgolf, suprgolf, suprgolf, suprgolf_state, empty_init, ROT0, "Nasco", "Super Crowns Golf (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) -GAME( 1989, albatross, suprgolf, suprgolf, suprgolf, suprgolf_state, empty_init, ROT0, "Nasco", "Albatross (US Prototype?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL| MACHINE_SUPPORTS_SAVE ) +GAME( 1989, suprgolf, 0, suprgolf, suprgolf, suprgolf_state, init_suprgolf, ROT0, "Nasco", "Super Crowns Golf (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, suprgolfj, suprgolf, suprgolf, suprgolf, suprgolf_state, init_suprgolfj, ROT0, "Nasco", "Super Crowns Golf (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) +GAME( 1989, albatross, suprgolf, suprgolf, suprgolf, suprgolf_state, init_suprgolf, ROT0, "Nasco (Technos license)", "Albatross (US prototype?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL| MACHINE_SUPPORTS_SAVE ) -- cgit v1.2.3