Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

haynor666

Premium Members
  • Content Count

    121
  • Joined

  • Last visited

  • Days Won

    1

haynor666 last won the day on June 13 2017

haynor666 had the most liked content!

Community Reputation

2 Neutral

About haynor666

  • Rank
    Proud Fan
  • Birthday 01/07/1979

Profile Information

  • Gender
    Male
  • Location
    Tarnobrzeg, Poland
  1. haynor666

    ARCADE 0.206

    What this sengoku2 check should do? Right now I can see that title is zooming incorrectly.
  2. haynor666

    ARCADE 0.206

    Because some MameSick hacks are intended to improve games not matter it's real behaviour or not.
  3. haynor666

    ARCADE 0.206

    Please ask MameSick, I don't know but entire sprite hack should fix this - https://mametesters.org/view.php?id=2659 Some part of code changes sengoku2 code. As for cidelsa driver I've re-uploaded in my previous post new one - looks like some parameters cannot be commented.
  4. haynor666

    ARCADE 0.206

    diff -Nru src/mame/video/neogeo_spr.cpp src-fx/mame/video/neogeo_spr.cpp --- src/mame/video/neogeo_spr.cpp Tue Dec 25 18:33:36 2018 +++ src-fx/mame/video/neogeo_spr.cpp Sat Dec 29 18:25:03 2018 @@ -41,6 +41,7 @@ m_auto_animation_disabled = 0; m_auto_animation_counter = 0; m_auto_animation_frame_counter = 0; + m_neogeo_raster_hack = 0; /* register for state saving */ save_pointer(NAME(m_videoram), 0x8000 + 0x800); @@ -53,6 +54,7 @@ save_item(NAME(m_auto_animation_disabled)); save_item(NAME(m_auto_animation_counter)); save_item(NAME(m_auto_animation_frame_counter)); + save_item(NAME(m_neogeo_raster_hack)); m_region_zoomy = memregion(":zoomy")->base(); @@ -270,7 +272,7 @@ *************************************/ #define MAX_SPRITES_PER_SCREEN (381) -#define MAX_SPRITES_PER_LINE (96) +#define MAX_SPRITES_PER_LINE (192) /* horizontal zoom table - verified on real hardware */ @@ -549,12 +551,14 @@ { int scanline = param; - /* we are at the beginning of a scanline - - we need to draw the previous scanline and parse the sprites on the current one */ - if (scanline != 0) - m_screen->update_partial(scanline - 1); - - parse_sprites(scanline); + /* we are at the beginning of a scanline */ + if (m_neogeo_raster_hack & 0x10) /* raster interrupt enabled */ + { + if (strcmp(machine().system().name, "sengoku2") == 0) + m_screen->update_partial(scanline - 1); + else + m_screen->update_partial(scanline + 1); + } /* let's come back at the beginning of the next line */ scanline = (scanline + 1) % NEOGEO_VTOTAL; Is missing ?
  5. haynor666

    ARCADE 0.206

    Fixed cidelsa video driver cidelsa.cpp.txt
  6. haynor666

    ARCADE 0.205

    <p>Bad news - entire neo-geo patch including raster hack needs fixing :/</p> <p>cidelsa driver also needs manual fixing but this will be fast and easy.</p>
  7. haynor666

    ARCADE 0.205

    I'm not programmer, I've just learn to modified some part of mame code to suit my needs. If I'll find some broken stuff that I can repair and I'm using in my custom build then I'll try to fix it.
  8. haynor666

    ARCADE 0.205

    Small diff for ssv (Only two games I fixed - Chanded Air Blade and Dyna Gear): diff -Nru src/mame/drivers/ssv.cpp src-fx/mame/drivers/ssv.cpp --- src/mame/drivers/ssv.cpp Tue Dec 25 18:33:11 2018 +++ src-fx/mame/drivers/ssv.cpp Tue Jan 1 20:15:19 2019 @@ -2825,7 +2825,7 @@ survarts(config); /* video hardware */ - m_screen->set_visarea(0, (0xd4-0x2c)*2-1, 0, (0x102 - 0x12)-1); + m_screen->set_visarea(8, (336--1, 0, 240-1); } void ssv_state::eaglshot(machine_config &config) @@ -2894,7 +2894,7 @@ WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - m_screen->set_visarea(0, (0xcb - 0x22)*2-1, 0, (0xfe - 0x0e)-1); + m_screen->set_visarea(0, 336-1, 0, 240-1); } void ssv_state::twineag2(machine_config &config)
  9. haynor666

    ARCADE 0.205

    Diff for nemesis: diff -Nru src/mame/drivers/nemesis.cpp src-fx/mame/drivers/nemesis.cpp --- src/mame/drivers/nemesis.cpp Tue Dec 25 18:33:07 2018 +++ src-fx/mame/drivers/nemesis.cpp Tue Jan 1 19:45:43 2019 @@ -1499,16 +1499,14 @@ GENERIC_LATCH_8(config, "soundlatch"); ay8910_device &ay1(AY8910(config, "ay1", 14318180/8)); - ay1.set_flags(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT); + ay1.set_flags(AY8910_LEGACY_OUTPUT); ay1.port_a_read_callback().set(FUNC(nemesis_state::nemesis_portA_r)); - ay1.add_route(ALL_OUTPUTS, "filter1", 0.20); + ay1.add_route(ALL_OUTPUTS, "mono", 0.20); ay8910_device &ay2(AY8910(config, "ay2", 14318180/8)); ay2.port_a_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_A_w)); ay2.port_b_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_B_w)); - ay2.add_route(0, "filter2", 1.00); - ay2.add_route(1, "filter3", 1.00); - ay2.add_route(2, "filter4", 1.00); + ay2.add_route(ALL_OUTPUTS, "mono", 1.00); FILTER_RC(config, m_filter1); m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0); @@ -1566,16 +1564,14 @@ GENERIC_LATCH_8(config, "soundlatch"); ay8910_device &ay1(AY8910(config, "ay1", 14318180/8)); - ay1.set_flags(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT); + ay1.set_flags(AY8910_LEGACY_OUTPUT); ay1.port_a_read_callback().set(FUNC(nemesis_state::nemesis_portA_r)); - ay1.add_route(ALL_OUTPUTS, "filter1", 0.20); + ay1.add_route(ALL_OUTPUTS, "mono", 0.20); ay8910_device &ay2(AY8910(config, "ay2", 14318180/8)); ay2.port_a_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_A_w)); ay2.port_b_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_B_w)); - ay2.add_route(0, "filter2", 1.00); - ay2.add_route(1, "filter3", 1.00); - ay2.add_route(2, "filter4", 1.00); + ay2.add_route(ALL_OUTPUTS, "mono", 1.00); FILTER_RC(config, m_filter1); m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0); As for sliders - yes, mame should remember audio volume for each game, stored in cfg files.
  10. haynor666

    ARCADE 0.205

    Restored patch for nemesis.cpp void nemesis_state::nemesis(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 18432000/2); /* 9.216 MHz? */ // 14318180/2, /* From schematics, should be accurate */ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::nemesis_map); Z80(config, m_audiocpu, 14318180/4); /* From schematics, should be accurate */ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::sound_map); /* fixed */ ls259_device &outlatch(LS259(config, "outlatch")); // 13J outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w)); outlatch.q_out_cb<0>().append(FUNC(nemesis_state::coin2_lockout_w)); outlatch.q_out_cb<2>().set(FUNC(nemesis_state::sound_irq_w)); ls259_device &intlatch(LS259(config, "intlatch")); // 11K intlatch.q_out_cb<0>().set(FUNC(nemesis_state::irq_enable_w)); intlatch.q_out_cb<2>().set(FUNC(nemesis_state::gfx_flipx_w)); intlatch.q_out_cb<3>().set(FUNC(nemesis_state::gfx_flipy_w)); WATCHDOG_TIMER(config, "watchdog", 0); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* ??? */ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_size(32*8, 32*; m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set(FUNC(nemesis_state::nemesis_vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis); PALETTE(config, m_palette, 2048); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); ay8910_device &ay1(AY8910(config, "ay1", 14318180/8)); ay1.set_flags(AY8910_LEGACY_OUTPUT); ay1.port_a_read_callback().set(FUNC(nemesis_state::nemesis_portA_r)); ay1.add_route(ALL_OUTPUTS, "mono", 0.20); ay8910_device &ay2(AY8910(config, "ay2", 14318180/8)); ay2.port_a_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_A_w)); ay2.port_b_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_B_w)); ay2.add_route(ALL_OUTPUTS, "mono", 1.00); FILTER_RC(config, m_filter1); m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter2); m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter3); m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter4); m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0); K005289(config, m_k005289, 3579545); m_k005289->add_route(ALL_OUTPUTS, "mono", 0.35); } void nemesis_state::gx400(machine_config &config) { /* basic machine hardware */ M68000(config, m_maincpu, 18432000/2); /* 9.216MHz */ m_maincpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_map); TIMER(config, "scantimer").configure_scanline(FUNC(nemesis_state::gx400_interrupt), "screen", 0, 1); Z80(config, m_audiocpu, 14318180/4); /* 3.579545 MHz */ m_audiocpu->set_addrmap(AS_PROGRAM, &nemesis_state::gx400_sound_map); ls259_device &outlatch(LS259(config, "outlatch")); outlatch.q_out_cb<0>().set(FUNC(nemesis_state::coin1_lockout_w));; outlatch.q_out_cb<1>().set(FUNC(nemesis_state::coin2_lockout_w)); outlatch.q_out_cb<2>().set(FUNC(nemesis_state::sound_irq_w)); outlatch.q_out_cb<7>().set(FUNC(nemesis_state::irq4_enable_w)); // ?? ls259_device &intlatch(LS259(config, "intlatch")); intlatch.q_out_cb<0>().set(FUNC(nemesis_state::irq2_enable_w)); intlatch.q_out_cb<1>().set(FUNC(nemesis_state::irq1_enable_w)); intlatch.q_out_cb<2>().set(FUNC(nemesis_state::gfx_flipx_w)); intlatch.q_out_cb<3>().set(FUNC(nemesis_state::gfx_flipy_w)); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_refresh_hz((18432000.0/4)/(288*264)); /* 60.606060 Hz */ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ m_screen->set_size(32*8, 32*; m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); m_screen->set_screen_update(FUNC(nemesis_state::screen_update_nemesis)); m_screen->set_palette(m_palette); m_screen->screen_vblank().set_inputline("audiocpu", INPUT_LINE_NMI); GFXDECODE(config, m_gfxdecode, m_palette, gfx_nemesis); PALETTE(config, m_palette, 2048); /* sound hardware */ SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, "soundlatch"); ay8910_device &ay1(AY8910(config, "ay1", 14318180/8)); ay1.set_flags(AY8910_LEGACY_OUTPUT); ay1.port_a_read_callback().set(FUNC(nemesis_state::nemesis_portA_r)); ay1.add_route(ALL_OUTPUTS, "mono", 0.20); ay8910_device &ay2(AY8910(config, "ay2", 14318180/8)); ay2.port_a_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_A_w)); ay2.port_b_write_callback().set(m_k005289, FUNC(k005289_device::k005289_control_B_w)); ay2.add_route(ALL_OUTPUTS, "mono", 1.00); FILTER_RC(config, m_filter1); m_filter1->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter2); m_filter2->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter3); m_filter3->add_route(ALL_OUTPUTS, "mono", 1.0); FILTER_RC(config, m_filter4); m_filter4->add_route(ALL_OUTPUTS, "mono", 1.0); K005289(config, m_k005289, 3579545); m_k005289->add_route(ALL_OUTPUTS, "mono", 0.35); VLM5030(config, m_vlm, 3579545); m_vlm->set_addrmap(0, &nemesis_state::gx400_vlm_map); m_vlm->add_route(ALL_OUTPUTS, "mono", 0.70); } Still sound in gwarrior is not too good. Nemesis/Gradius seems to be ok.
  11. And that did the trick in both cases. So, I can directly screen from it's defined device. I'll again convince Robbert to implement patches for Thunder Cross and Gang Busters. Those black borders are really annoying :/ Many thanks MameSick for help and Happy New Year to You )
  12. I'm trying to change some resolutions (Gang Buster, Thunder Cross, Gladiator, MadCrash) in thunderx.cpp and snk.cpp but so far I really don't know how this can be done with all these recent changes. From what I can see I cannot use MCFG_ anymore. Any advise, please? Seems I don't fully understand how to use m_screen and screen parameters. I didn't have any problems with system1.
  13. haynor666

    ARCADE 0.205

    ssv driver is probably not modified Gradius/Nemesis audio is also not fixed
  14. haynor666

    ARCADE 0.205

    There is new functionality written by Calamity originally for groovymame. It basically saves sliders states for audio levels cpus overclock and picture adjustments. Would be great to have this also in ARCADE32/64. I ask about long time ago - http://www.1emulation.com/forums/topic/35683-feature-sound-boost-with-save/ and now this functionality is ready diff -Nru src/frontend/mame/ui/ui.cpp src/frontend/mame/ui/ui.cpp--- src/frontend/mame/ui/ui.cpp 2018-11-28 07:07:25.000000000 +0100+++ src/frontend/mame/ui/ui.cpp 2018-12-22 11:37:18.000000000 +0100@@ -30,6 +30,7 @@ #include "ui/state.h" #include "ui/viewgfx.h" #include "imagedev/cassette.h"+#include "config.h" /***************************************************************************@@ -208,6 +209,9 @@ // request a callback upon exiting machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&mame_ui_manager::exit, this)); + // register callbacks+ machine().configuration().config_register("sliders", config_load_delegate(&mame_ui_manager::config_load, this), config_save_delegate(&mame_ui_manager::config_save, this));+ // create mouse bitmap uint32_t *dst = &m_mouse_bitmap.pix32(0); memcpy(dst,mouse_bitmap,32*32*sizeof(uint32_t));@@ -1517,6 +1521,8 @@ } #endif + config_apply();+ std::vector<ui::menu_item> items; for (auto &slider : m_sliders) {@@ -2234,3 +2240,80 @@ { ui::menu::stack_reset(machine()); }++//-------------------------------------------------+// config_load - read data from the+// configuration file+//-------------------------------------------------++void mame_ui_manager::config_load(config_type cfg_type, util::xml::data_node const *parentnode)+{+ // we only care about game files+ if (cfg_type != config_type::GAME)+ return;++ // might not have any data+ if (parentnode == nullptr)+ return;++ // iterate over slider nodes+ for (util::xml::data_node const *slider_node = parentnode->get_child("slider"); slider_node; slider_node = slider_node->get_next_sibling("slider"))+ {+ const char *desc = slider_node->get_attribute_string("desc", "");+ int32_t saved_val = slider_node->get_attribute_int("value", 0);++ // create a dummy slider to store the saved value+ m_sliders_saved.push_back(slider_alloc(0, desc, 0, saved_val, 0, 0, 0));+ }+}+++//-------------------------------------------------+// config_appy - apply data from the conf. file+// This currently needs to be done on a separate+// step because sliders are not created yet when+// configuration file is loaded+//-------------------------------------------------++void mame_ui_manager::config_apply(void)+{+ // iterate over sliders and restore saved values+ for (auto &slider : m_sliders)+ {+ for (auto &slider_saved : m_sliders_saved)+ {+ if (!strcmp(slider->description.c_str(), slider_saved->description.c_str()))+ {+ std::string tempstring;+ slider->update(machine(), slider->arg, slider->id, &tempstring, slider_saved->defval);+ break;++ }+ }+ }+}+++//-------------------------------------------------+// config_save - save data to the configuration+// file+//-------------------------------------------------++void mame_ui_manager::config_save(config_type cfg_type, util::xml::data_node *parentnode)+{+ // we only care about game files+ if (cfg_type != config_type::GAME)+ return;++ std::string tempstring;+ util::xml::data_node *slider_node;++ // save UI sliders+ for (auto &slider : m_sliders)+ {+ int32_t curval = slider->update(machine(), slider->arg, slider->id, &tempstring, SLIDER_NOCHANGE); + slider_node = parentnode->add_child("slider", nullptr);+ slider_node->set_attribute("desc", slider->description.c_str());+ slider_node->set_attribute_int("value", curval);+ }+}diff -Nru src/frontend/mame/ui/ui.h src/frontend/mame/ui/ui.h--- src/frontend/mame/ui/ui.h 2018-11-28 07:07:25.000000000 +0100+++ src/frontend/mame/ui/ui.h 2018-12-22 10:56:04.000000000 +0100@@ -215,6 +215,11 @@ void start_save_state(); void start_load_state(); + // config callbacks+ void config_load(config_type cfg_type, util::xml::data_node const *parentnode);+ void config_save(config_type cfg_type, util::xml::data_node *parentnode);+ void config_apply(void);+ // slider controls std::vector<ui::menu_item>& get_slider_list(void); @@ -299,6 +304,7 @@ #endif std::vector<std::unique_ptr<slider_state>> m_sliders;+ std::vector<std::unique_ptr<slider_state>> m_sliders_saved; };
  15. haynor666

    ARCADE 0.204

    It is not need I think - I didn't have any compile errors and games using h6280 are ok. It means of course that Dark Seal And Vapor Trail have sound ok. Almost all other Data East games has been tested as well: Act Fancer Caveman Ninja Boggie Wing Battle Rangers Crude Buster Diet to Go Funky Jet Mad Motor Rohga Thunder Zone some games in dec0 and dec32 drivers (not all are using h6280) I didn't tested PC Engine Link to groovymame 64 with this modification - https://mega.nz/#!o5FBVaiJ!T0Fs7sUIe617UqHalmpiTFvW_NAY5q2PZgQjLg8mmns
×
×
  • Create New...