Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dead or Alive 2 fix (PAL) #1336

Merged
merged 1 commit into from
Jan 15, 2024
Merged

Dead or Alive 2 fix (PAL) #1336

merged 1 commit into from
Jan 15, 2024

Conversation

bigianb
Copy link
Contributor

@bigianb bigianb commented Dec 22, 2023

US version may need a different patch. I only have the EU version.

The first change is that DisableIntrLine should return the status. This is later passed to ResumeInterrupts and without the fix the interrupt is never resumed. You're not really meant to use the functions this way (mixing the Line functions with the non-line functions but the game does).

Second is that the game hangs loading files at the start. Not sure why this is (PCSX2 also needs this fix). Changing the RPC call from async to sync fixes it.

We now get in-game with some graphics issues.

Screenshot 2023-12-22 at 13 58 17

@Goatman13
Copy link

You may want to read 2 articles linked in this pr: PCSX2/pcsx2#8814

Because without implementing of what is in first article you may came up with really wrong behavior on hle side. Doa is affected by the same sif interrupts quirk as KK2001.

@bigianb
Copy link
Contributor Author

bigianb commented Jan 10, 2024

You may want to read 2 articles linked in this pr: PCSX2/pcsx2#8814

Because without implementing of what is in first article you may came up with really wrong behavior on hle side. Doa is affected by the same sif interrupts quirk as KK2001.

Interesting - I remember reading those a while ago but forgot. It explains the patch and I think that's the best way it can be done. Regarding the interrupt handling ... that's talking about how the hardware interprets changes to the registers isn't it and not the BIOS behaviour. That wouldn't be something to worry about in the bios code but something to implement in the hardware virtualisation layer (if it is not already).

patches.xml Outdated
<Executable Name="SCES_500.03;1" Title="Dead or Alive 2" Region="EU">
<Patch Address="0x002b4c44" Value="0x24060000" Description="Make the file reading RPC call synchronous. Boot hangs without this." />
</Executable>
<Executable Name="SLPS_250.02;1" Title="Dead or Alive 2" Region="JP">
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SLPS one is a guess as I don't have that version. Strelok confirmed it worked though ... just not sure if the region is correct or if it even matters.

@bigianb bigianb force-pushed the doa2 branch 2 times, most recently from b006d94 to 2edab83 Compare January 12, 2024 17:36
@jpd002 jpd002 merged commit d12a1bc into jpd002:master Jan 15, 2024
13 checks passed
@jpd002
Copy link
Owner

jpd002 commented Jan 15, 2024

Nice work! Thanks a lot for this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants