Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06946 Misc. Minor Always Apr 20, 2018, 05:32 Nov 25, 2019, 08:14
Tester Fortuna View Status Public Platform MAME (Official Binary)
Assigned To sasuke Resolution Fixed OS Windows 10 (64-bit)
Status [?] Resolved Driver
Version 0.196 Fixed in Version 0.217 Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 06946: dangar, dangara, dangarb, dangarbt, dangarj: missing black screen between areas (black hole warp)
Description When you move a warp (black hole like), this screen turns black and with stars next of the next zone (hidden like map), and when end the zone (defeat the big ship in this place)

Proof in thi video (record in a pcb)

Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems dangar, dangara, dangarb, dangarbt, dangarj
Attached Files
mp4 file icon Compare.mp4 (3,802,902 bytes) Nov 20, 2019, 05:22 Uploaded by sasuke
Compare each
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.14971
Kale
Developer
Apr 21, 2018, 03:58
edited on: Apr 21, 2018, 03:59
Culprit is galivan_scrollx_w(), it's supposed to disable the background layer but it doesn't (probably because the "exotic" hookup quite doesn't work here)
User avatar
No.17180
sasuke
Tester
Nov 19, 2019, 17:39
edited on: Nov 20, 2019, 07:05
I think correct bit assignments is below.

m_galivan_scrollx[1]
bit 7 (0x80) ... hide text layer
bit 6 (0x40) ... hide background layer
bit 5 (0x20) ... sprites priority

Probably m_write_layers is not needed.
Remove this and m_layers from WRITE8_MEMBER(galivan_state :: galivan_scrollx_w) and class member.

I fixed this problem with the following changes in video/galivan.cpp.
by this, blackout during screen update at respawn is now same as PCB, too. (Dangar and Galivan)

/* Written through port 41-42 */
WRITE8_MEMBER(galivan_state::galivan_scrollx_w)
{
    m_galivan_scrollx[offset] = data;
}

uint32_t galivan_state::screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
    m_bg_tilemap->set_scrollx(0, m_galivan_scrollx[0] + 256 * (m_galivan_scrollx[1] & 0x07));
    m_bg_tilemap->set_scrolly(0, m_galivan_scrolly[0] + 256 * (m_galivan_scrolly[1] & 0x07));

    if (m_galivan_scrollx[1] & 0x40)
        bitmap.fill(0, cliprect);
    else
        m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);

    if (m_galivan_scrollx[1] & 0x20)
    {
        if ((m_galivan_scrollx[1] & 0x80) == 0)
        {
            m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0);
            m_tx_tilemap->draw(screen, bitmap, cliprect, 1, 0);
        }
        draw_sprites(bitmap, cliprect);
    }
    else
    {
        draw_sprites(bitmap, cliprect);
        if ((m_galivan_scrollx[1] & 0x80) == 0)
        {
            m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0);
            m_tx_tilemap->draw(screen, bitmap, cliprect, 1, 0);
        }
    }

    return 0;
}
User avatar
No.17201
sasuke
Tester
Nov 24, 2019, 05:07
I attached the modified sources.
https://mametesters.org/view.php?id=7493
User avatar
No.17203
sasuke
Tester
Nov 24, 2019, 09:00
I submitted a pull request.
https://github.com/mamedev/mame/pull/5957