This game was tested with revision 052aefd. The opening video has some stuttering in terms of the display while the audio is fine. The External Software Renderer works with this game while OpenGL has major issues.
When using OpenGL, these issues appear in Story Mode:
1) If the user chooses to let the first cutscene fully play without skipping anything, the emulator will crash as the game attempts to load the next cutscene. The following appears in the log:
Code:
08:37:51 WARN ge - GUI - Unknown/unimplemented video command [unk 0xfe](hex=00000008,int=8,float=0.000000) at 0x0998F420
08:37:51 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:51 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:51 INFO hle.scePower - stream thread - scePowerRegisterCallback slot=0x2, uid=0x6F
08:37:51 INFO hle.scePower - stream thread - scePowerRegisterCallback returning 0x0
08:37:51 INFO stdout - user_main - ******* Read time = 0.118 (total 0.770 seconds, 24192k)
08:37:51 INFO stdout - user_main - (predicted load time 176.045 seconds = 173.427 thinking + 0.000 seeking + 2.618 reading)
08:37:51 INFO stdout - user_main - DVD TOTAL LOAD TIME = 376.359 seconds = 375.589 think + 0.770 seek/read (24192k)
08:37:51 INFO stdout - user_main - PREDICTED UMD LOAD TIME = 402.723 seconds = 375.589 think + 6.974 seek + 20.160 read (24192k)
08:37:52 INFO stdout - user_main - Score::RESET ...............
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:52 WARN ge - GUI - Unknown/unimplemented video command [unk 0xfd](hex=00BFFFFF,int=12582911,float=-1.999969) at 0x041A3C7C
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:52 WARN ge - GUI - PRIM type=7 cannot continue previous strip/fan (4)
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:52 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:53 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:53 WARN ge - GUI - Invalid texture address 0x1A987640 for texture level 0
08:37:53 ERROR memory - GUI - getBuffer - Invalid memory address: 0x09F96A04 PC=0x88000000
2) If the user chooses to skip the first cutscene, the emulator will still crash but the audio of the second cutscene will play in the background (display is frozen on the first cutscene). The following appears in the log:
Code:
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DC20
09:04:26 INFO stdout - user_main - (predicted load time 13.378 seconds = 10.759 thinking + 0.000 seeking + 2.618 reading)
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DC44
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DC68
09:04:26 INFO stdout - user_main - DVD TOTAL LOAD TIME = 68.095 seconds = 67.549 think + 0.546 seek/read (24192k)
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DC8C
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DCB0
09:04:26 WARN ge - GUI - Unknown light mode sceGuLightMode(0000A9)
09:04:26 INFO stdout - user_main - PREDICTED UMD LOAD TIME = 94.683 seconds = 67.549 think + 6.974 seek + 20.160 read (24192k)
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DCD4
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DCF8
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DD1C
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DD40
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DD64
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DD88
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x4f](hex=00FFCD13,int=16764179,float=NaN) at 0x0995DDAC
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x52](hex=0000001C,int=28,float=0.000000) at 0x0995DDF0
09:04:26 WARN ge - GUI - Unknown light mode sceGuLightMode(00001E)
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x39](hex=00138000,int=1277952,float=0.000000) at 0x0995DE4C
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x1A) unknown behavior at 0x0995DE80
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x50) unknown behavior at 0x0995DEA4
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x7E) unknown behavior at 0x0995DEC8
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x7E) unknown behavior at 0x0995DEEC
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x7E) unknown behavior at 0x0995DF10
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x11](hex=00FFC200,int=16761344,float=NaN) at 0x0995DF28
09:04:26 WARN ge - GUI - signal (behavior=0, signal=0x11) unknown behavior at 0x0995DF34
09:04:26 WARN ge - GUI - Unimplemented VTCQ: coordQ=2.1204581E-27
09:04:26 WARN ge - GUI - Unknown/unimplemented video command [unk 0x3](hex=00FF4AFF,int=16730879,float=-269828090847479400000000000000000000000.000000) at 0x0995DF4C
09:04:26 WARN ge - GUI - Unimplemented VCV: colorR=0, colorG=52, colorB=19
The errors that are displayed in the ConsoleOut.txt are different for each issue. The first cutscene appeared to be slow to me performance wise so I captured about 20 seconds of data for the profiler (using the option Reset Profiler Information) and placed the text file in the First Cutscene Played.zip.
(05-16-2017, 01:40 PM)DragonNeos Wrote: The first cutscene appeared to be slow to me performance wise so I captured about 20 seconds of data for the profiler (using the option Reset Profiler Information) and placed the text file in the First Cutscene Played.zip.
Maybe the issues are coming from the poor performance as raziel1000 is having different results depending on the hardware.
I found the following information from LunaMoo stating that this game has self modifying code:
The code at 0x886554C has been recompiled at least 36 times... This could explain the poor performance.
Could you please create an INFO log with only the compiler at the DEBUG level, in LogSettings.xml:
05-17-2017, 03:30 PM (This post was last modified: 05-17-2017, 03:40 PM by DragonNeos.)
As you requested, here is a log file with only the Compiler set to DEBUG on revision c32400a. I didn't enable the option "Output profiler info to profiler.txt (only for compiler)" as the file size for the compressed archive was going to pass 2 MB. One thing I found unusual was that the second cutscene will actually load with the Compiler set to DEBUG.
There doesn't seem to be any improvement when I tested the game with revision 9de5f87. When I go through the first cutscene using OpenGL, the game runs at 2-3 FPS (External Software Renderer runs at about 7-9 FPS). In a playable stage on OpenGL, the game runs at 3-5 FPS (External Software Renderer runs at about 9-10 FPS).
On OpenGL at the first cutscene, the game will still crash and occasionally show this in the log:
Code:
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5001) at 0x04078E24, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x04078E24, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5002) at 0x04078E28, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x04078E28, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5003) at 0x04078E2C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x04078E2C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5004) at 0x04078E30, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x04078E30, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5005) at 0x04078E34, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x04078E34, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5006) at 0x099AD904, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099AD904, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 WARN ge - GUI - Unknown/unimplemented video command [unk 0xfe](hex=00000009,int=9,float=0.000000) at 0x099AD90C
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5007) at 0x097F4008, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x097F4008, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 WARN ge - GUI - Unsupported bezier parameters ucount=9 vcount=0
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5008) at 0x09FBD274, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x09FBD274, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5009) at 0x09FBD274, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x09FBD274, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5010) at 0x099ADA0C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADA0C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5011) at 0x099ADA0C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADA0C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5012) at 0x099ADA7C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADA7C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5013) at 0x09874004, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x09874004, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5014) at 0x099ADB08, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADB08, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5015) at 0x099ADB0C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADB0C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
05:31:00 ERROR ge - GUI - Too many NOP instructions executed (5016) at 0x099ADB9C, list PspGeList[id=0x3E, status=PSP_GE_LIST_DRAWING, list=0x0917D100, pc=0x099ADB9C, stall=0x00000000, cbid=0x0, ended=false, finished=false, paused=false, restarted=false, reset=false]
JPCSP will still crash even if you skip the cutscene on OpenGL (occasionally crashes on External Software Renderer if you skip the cutscene). The cutscene and audio are not in sync as the audio still plays in the background even though the emulator has crashed (audio is playing from the second cutscene while onscreen the first cutscene just ended).
I'm not sure if the Compiler reacts differently with regards to the graphics renderer so I provided a log for each. I conducted another profiler test in the first cutscene and tried to test in a playable stage as well.
Hmm, the change that I implemented seems to work as expected, the code is no longer recompiled. I still do not understand why you get so poor performance. Can anyone else try this game as well?
Is this option really needed? If not, try to disable it as it has a negative performance impact:
Code:
[X] Enable the shader implementation for the "Stencil Test" (more accurate but slower)
Always include a complete log file at INFO level in your reports. Thanks! How to post a log
I use the option "Enable the shader implementation for the "Stencil Test" (more accurate but slower)" because the game has parts (such as Menus and text) that would appear transparent if it isn't used (black borders don't appear dark enough in cutscenes). Even if I don't use this option, the game is still slow, performing at 3-4 FPS. During the first cutscene (subsequent cutscenes and in-game action as well), this would appear if the option is not used:
Code:
13:35:14 WARN ge - GUI - UNSUPPORTED: Both different SFIX (0x323232) and DFIX (0xDFDFDF) are not supported (blend equation=2), approximating with 0x323232/0xCDCDCD
It might be a possibility that this game doesn't work well with older AMD/ATI integrated graphics cards (ATI Radeon HD 4200). In an attempt in trying to find the best settings for OpenGL, I find that not enabling any options gives the game a slight boost and has similar performance to the External Software Renderer (7-9 FPS). The game can get to the second cutscene in Story Mode without crashing (can also skip cutscenes without any issue).
Is it possible that audio is tied to the performance of the game? As I mentioned in my earlier post, the cutscenes and audio are not in sync (audio is faster than what is being displayed onscreen).
(05-19-2017, 07:51 PM)DragonNeos Wrote: Is it possible that audio is tied to the performance of the game? As I mentioned in my earlier post, the cutscenes and audio are not in sync (audio is faster than what is being displayed onscreen).
It could be that the game is just expecting that the rendering is happening at 30FPS and is not taking care of synching the audio with the video like is usually the case in MPEG video.
Always include a complete log file at INFO level in your reports. Thanks! How to post a log