hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.18k stars 2.17k forks source link

Dead or Alive Paradise (ULUS10521):- Current state of affairs (Updated) #3128

Open solarmystic opened 11 years ago

solarmystic commented 11 years ago

See https://github.com/hrydgard/ppsspp/issues/3128#issuecomment-26065253

UPDATE:- With the source file change proposed by @unknownbrackets https://github.com/hrydgard/ppsspp/issues/3126#issuecomment-22468746, the game goes further ingame, and doesn't crash after choosing the New game options in the main menu. It now has 4 major unresolved issues left.https://github.com/hrydgard/ppsspp/issues/3128#issuecomment-22983569

Thanks to @unknownbrackets https://github.com/hrydgard/ppsspp/pull/3126 pull request that got merged into master https://github.com/hrydgard/ppsspp/commit/66569b8e59db3857ea76f4735e4fb24daa8f304b, this game, which has never booted up successfully on any previous build of PPSSPP now starts right up, generates an autosave successfully and plays back the rather "fun" opening FMV beautifully:-

(This is one of the most inoffensive SFW screenshots I could get from the FMV)

capture

Which then progresses to the title screen:-

capture

Pressing start then brings us to this main menu:-

doap4

Unfortunately, selecting any option in the aforementioned menu just leads to an infinite, non-progressive "Now Loading" screen or just a black screen, effectively hanging the game:-

capture

Logfile up to the point it hangs:-

https://gist.github.com/solarmystic/6207386

Logfile from a debug build of the same revision (35 MB, in a 7z file):-

http://www.mediafire.com/?aj9ydcac9lsz9cl

No stacktrace is obtainable since the game doesn't actually crash the emulator at any point, and you can safely exit back to the main PPSSPP main menu screen even when the game hangs.

VIRGINKLM commented 11 years ago

What I think is happening is that the game tries to assign all (?) threads for some reason (HLE bug/timming issue/oddity in the game's code?) on the same entrypoint as an other and it overlaps it. Like it lags for a tiny period of time or fails to get on which entrypoint it will assign the next thread and it registers it on the same. Surprising this doesn't lead to a BREAK, like the game waits forever for something to happen. What happens when you saperate the threads is possibly that it has the time to correct that by assigning the problematic threads to a different thread on the CPU (so they won't collide) until this problem gets fixed by itself or something. (I hope it made atleast half sense @unknownbrackets)

unknownbrackets commented 11 years ago

Well all the game's threads still run on the same thread. Just talking to the Windows/etc. operating system to do the disc read is on a separate thread. The difference for the game is that after calling sceIoReadAsync, the buffer is no longer incorrectly updated immediately (but sometimes it may still be, the timing is non-determisistic.)

-[Unknown]

VIRGINKLM commented 11 years ago

Could you input a slight wait/latency until it updates the buffer or it would affect negatively other games?

solarmystic commented 11 years ago

Back again, folks. (For a little while, I'm supposed to be on "vacation" with the S.O., she'll have my head if she knew I was on github posting on my laptop.)

@unknownbrackets

It seems like the source change you suggested here https://github.com/hrydgard/ppsspp/pull/3126#issuecomment-22468746 did wonders for the game! I've no idea why I didn't change it earlier on like you suggested.

It now goes properly ingame when coupled with Multithreaded I/O, and is semi playable with 4 major issues left to tackle:-

(I apologize for the slightly NSFW screenshots, but they're the only way to show the issues)

a. The character models have that wireframe effect on them. And no, I do not have the Wireframe option on, and it's been depreciated a long time ago anyway.

screen00011

b. The internal FPS drops to 20 when playing a beach volleyball match with 4 characters on screen, making everything seem like it's running in slow motion. (I'm sure this wasn't the intention of the developers.)

screen00010

c. Going into photo mode (precious memories) hangs the game, but doesn't crash the emulator. It just gets stuck on this scene, but can be resetted like a normally running game:-

screen00009

d. The music playback in the game is rather stuttery and wonky. I suspect that's due to the lacking MP3 support that PPSSPP has.

Updated logfile when going in game and fooling around:- https://gist.github.com/solarmystic/6288370

Logfile when game gets stuck when accessing Precious Memories:- https://gist.github.com/solarmystic/6288386

Thanks again @unknownbrackets

bonquacks commented 11 years ago

@solarmystic

I can chip in a bit to the discussion, when the game hangs after selecting Photo Mode (a.k.a Precious Memories), the following is being spammed into the Debug Log Console:-

capture

unknownbrackets commented 11 years ago

We don't support the screenshot API yet, other games hang there too, like Senjou no Valkyira 3 and ClaDun.

-[Unknown]

bonquacks commented 11 years ago

I've just finished a few "vacations" with two girls, so to speak. The game is definitely playable now, sans the photo mode (Precious Memories).

If that "wireframe" effect on the girls (which is definitely jarring at times), the frame rate drop and the staticky music playback can be cleared up, it'd be close to perfect.

The game is just gorgeous, I've no idea how the PSP managed to pull off those visuals.

bonquacks commented 11 years ago

Just reporting that problem 2 (the internal FPS drop when playing the beach volleyball game), can be resolved temporarily by employing the good ol' Change CPU Clock method. I changed it to 666 MHz and I don't get anymore slowdown.

The wireframe issue can also be somewhat mitigated by using AntiAliasing (I don't know why, but it clears it up a little).

VIRGINKLM commented 11 years ago

The wireframe is not fixed with AA, it's just that the renderer takes 4 more samples to render one pixel which makes it less sharp visualy.

hrydgard commented 11 years ago

I think I know what the wireframe is. The PSP has the rather weird ability to render "AA lines" to smooth out edges, and I guess that's what this game is doing.

It would probably work to turn off line drawing entirely if (gstate.antiAliasEnable & 1) == 0

Try that. For example on line 452 of GLES_GPU.cpp:

if ((type == GE_PRIM_LINE_STRIP || type == GE_PRIM_LINES) && (gstate.antiAliasEnable & 1) == 1)
    break;
hrydgard commented 11 years ago

Haven't tested it but I'm sure enough of the fix that I just committed it. Have fun.

bonquacks commented 11 years ago

@hrydgard

Yep. This https://github.com/hrydgard/ppsspp/commit/3cd80e1c51713044d39bbb5c8a8a3a7fd9ce8e40 totally fixes the wireframe look on the character models in DOA. So much better, they almost look as good as the XBOX 1 DOA character models now.

Thanks so much for the AA line fix!

screen00031

That leaves the music and the Precious memories issues for the game, which require proper MP3 and Screenshot API support to be added into the emulator.

internetakias commented 11 years ago

Looks like the AA line fix also took care of the outlines of certain 2d objects in P3P

VIRGINKLM commented 11 years ago

MP3 can't be done via linking to Android's native decoders/filters?

thedax commented 11 years ago

To supplement this issue thread, DOA:P has a demo available here(it's in Japanese, but so much stuff is grayed out/disabled that it's easy to navigate):

http://www.pspdemocenter.com/page.php?id=3102

dbz400 commented 11 years ago

I think only outstanding issue for this game is strange shadow only

screen00008

solarmystic commented 11 years ago

Back again folks!

I've just had another quick look at the game, and the status is pretty much the same, but I'd like to add another issue to the game. (@hrydgard very nice work with removing the wireframe lines, it was the first thing I noticed upon booting up the game again)

The game will have a tendency to hang with 60-70% CPU utlization on my Core 2 Duo machine when you access the "View The Contents of the Closet" option in the Hotel of your choosing when the day is over. Has a higher chance if you've just dumped a lot of items from your person into the closet. E.g. Loads of swimsuits and other items.

Repro method:-

  1. Load up the game. Any build that supports the game will do. (0.9.1-3 and above)
  2. Start a character vacation. Any girl will suffice, it can happen on any of them
  3. Do your typical three activities a day and get back to your hotel.
  4. (Optional) If you have a lot of items on your character, put them all away into the closet.
  5. Select the "View the contents of the closet" option, and start scrolling down.
  6. Sooner or later as your cursor hits an item that is stored in the closet, the game will hang. If in fullscreen mode, the only way to exit is Ctrl-Alt-Del. The whole emulator becomes unresponsive. It doesn't crash and produce a Windows Crash Report though.
solarmystic commented 11 years ago

Another update to the state of the game, the abnormal shadowing has been fixed thanks to this @raven02 pull request https://github.com/hrydgard/ppsspp/pull/4105 that got merged to master in v0.9.1-1667-g0fcba4e https://github.com/hrydgard/ppsspp/commit/0fcba4e60267c66f9204d34923c0133f5d247b5c

screen00097

Only persistent issues remaining are the horrible mp3 BGM playback (coupled with the endless debug log spam)and the inability to access the "Precious Memories" (Photo Mode) section (accessing it results in a hang)

hrydgard commented 11 years ago

Are the shadows instead missing entirely now? I don't see any in the screenshot...

solarmystic commented 11 years ago

@hrydgard

They're still there, it's just the angle and composition of the screenshot taken that made it "missing" so to speak. Here's another screenshot from a different scene that had shadows, notice that they no longer protrude from the characters heads anymore:-

screen00101

Compare the fixed shadows to what it looked like previously before the pull request got merged (taken from the same position, roughly):-

screen00103

internetakias commented 11 years ago

So all that's left now is to fix the mp3 support, right?

hrydgard commented 11 years ago

I don't play this game, but the lighting looks really dull in the screen shots, so there's probably something more left to fix there.

solarmystic commented 11 years ago

@internetakias

Mp3 support, and ingame screenshot functionality (for Precious Memories photo mode) to be implemented, that's pretty much it.

@hrydgard

I don't think the game had any form of advanced dynamic lighting/bloom, even on the actual PSP. Even the shadows are rather rudimentary. I maybe wrong on this though.

VIRGINKLM commented 11 years ago

The mp3 issue sounds like the buffer is too small for some reason and there's big latency.

dbz400 commented 11 years ago

@VIRGINKLM , just curious Mp3 playback okay for this game? ( i didn't try hear it indeed)

VIRGINKLM commented 11 years ago

No it stutters constantly, same effect as when the bug I described above happens.

internetakias commented 11 years ago

@hrydgard Nah, pretty sure the lighting is the same on a real PSP: http://youtu.be/rpe-0018ZmU?t=3m21s

dbz400 commented 11 years ago

I see. Thanks @VIRGINKLM

VIRGINKLM commented 10 years ago

Any luck with fixing mp3 audio? It still stutters.

dbz400 commented 10 years ago

Finally get fixed here though with hack.

solarmystic commented 10 years ago

The only issue remaining with this game (after the mp3 fixes from @kaienfr), is the hang after selecting the "Precious Memories" option in the main menu caused by the Screenshot API.

Log console spams the following in the latest master:- .capture

internetakias commented 10 years ago

I'm not sure why, but trying to change songs while another is still playing seems to break music output entirely.

livisor commented 7 years ago

I tested this with latest version of ppsspp and precious memories spams this when clicked https://gist.github.com/livisor/9115ec75824abdb5c307932e462264cc

ppmeis commented 3 years ago

Tested with latest Windows build. Precious Memories menu spams this after enter in it:

57:50:208 hle\scenet.cpp:210 N[SCENET]: LocalHost IP will be 127.0.0.1 [e8:85:32:a9:f9:5a] 57:50:328 root N[BOOT]: ui\emuscreen.cpp:302 Loading E:/Roms/Sony/PSP/UMD/EU/D - E/Dead or Alive Paradise [ULES-01416]/Dead or Alive Paradise [ULES-01416].PBP... 57:50:801 user_main E[SCEKERNEL]: hle\scekernelthread.cpp:2682 sceKernelWaitThreadEnd - bad thread 298 57:51:867 MTC_TASK E[SCEKERNEL]: hle\scekernelthread.cpp:2682 sceKernelWaitThreadEnd - bad thread 307 57:53:734 MTC_TASK E[SCEUTIL]: hle\sceutility.cpp:309 80111102=sceUtilityLoadModule(00000300): already loaded 57:54:818 MTC_TASK E[ME]: hle\scepsmf.cpp:1166 80616001=scePsmfPlayerStop(09151310): not yet playing 57:56:064 user_main E[SCEKERNEL]: hle\scekernelthread.cpp:1243 __KernelGetWaitID ERROR: thread 308

ppmeis commented 1 year ago

Tested in latest build. Same issue.

Frostchill commented 5 months ago

When I play this game on the emulator on PC it's super laggy. How do I fix this?