0 users browsing Emulation. | 1 guest | 1 bot  
    Main » Emulation » SNES DSP initialization and Magical Drop
    Pages: 1
    Posted on 19-04-01, 12:55
    Burned-out Genius Developer
    Post: #20 of 51
    Since: 10-30-18

    Last post: 16 days
    Last view: 16 days
    About 18 months ago, Jonas Quinn found the cause of Magical Drop hanging after a game over.

    It was determined that the game reads from DSP registers that it hasn't yet initialized, and if the values are zero, it will hang.

    This was the original attempt at a fix:
    https://gitlab.com/higan/higan/commit/1ca4609079bf8a8ec21171238da344048daf0de1

    This caused various regressions because it turns out that the underlying 128 bytes of DSP memory isn't directly used for the internal registers. So while the internal registers *do* get initialized, the memory does not.

    We ended up having to back the change out due to the design of blargg's DSP that links the registers and memory as one and the same. And due to the loss of the spc_dsp6 test ROM, that had to go on hold.

    Recently, spc_dsp6 was found, and today, I finally got around to working on this. I've now updated higan's DSP core to separate the two concepts completely. No internal register is directly referenced through the RAM anymore, but the cases where the internal processing updates registers will fall through and also update the underlying RAM for read-out as well.

    spc_dsp6 ended up being absolutely essential. Saved us from four extremely difficult regressions.

    ...

    So now on to the main point: unfortunately I didn't keep a copy of the old board myself, and the development forum posts weren't made public. So, does anyone have a copy of the dev forum post about this issue? And if not, then ... any chance Jonas Quinn is around and still remembers this after 18 months? Heheh ^^;

    I want to know which game regressed with the old register randomization, and the technical details of which registers we found to assuredly be internally initialized.
    Posted on 19-04-01, 22:48
    Post: #1 of 4
    Since: 10-29-18

    Last post: 646 days
    Last view: 2 days
    I have everything :)
    I remember Prince of Persia and it needs KON/KOFF set to 0
    Fitzroy: Not sure if you want regression reports yet on the SFC stuff,
    but King of Dragons is missing a lot of sound effects now.

    A public thread:
    http://helmet.kafuka.org/byuubackup2/viewtopic.php@f=4&t=1668&start=10.html
    Pages: 1
      Main » Emulation » SNES DSP initialization and Magical Drop
      Kawa's Github