RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.66k stars 1.93k forks source link

OGL: Hatsune Miku: Project Diva F [BLJM-60527]: broken graphics #1837

Closed magiruuvelvet closed 8 years ago

magiruuvelvet commented 8 years ago

RPCS3 Version: v0.0.1-4510- 028277b Game: Hatsune Miku: Project Diva F [BLJM-60527] PPU: Interpreter (precise) SPU: ASMJIT; Interpreter is even slower and crashes Logs, Screenshots and Audio Capture: https://mega.nz/#F!3xBmVKrA!ImAhWLgApLnUCE-oQoodqQ


The latest commit fixed the freeze in the loading screen, but there are a lot of other problems now:

An audio capture file in WAV format can be found in the MEGA folder.


Here one screenshot of the main menu, more screenshots in the MEGA folder screenshot_20160627_141449

Nezarn commented 8 years ago

@GhettoGirl SPU emulation isn't slow (with asmjit and with at least with this game), OGL renderer itself is what slow. (and openal can't make sound run at 100% speed while ingame fps isn't 100%) Source: I can run the game fullspeed (30fps) in windows with DX12 and Vulkan, OGL can't reach full speed. (but with xaudio2 sound works fine.)

Also those graphics regressions are from the new ogl renderer with cache.

Fun fact: in windows on my GTX970, 3D models in menus (for example Miku on your screenshot) is invisible. (in OGL and DX12)

You should try using an older rpcs3 build that doesn't have the new OGL renderer merged, since the current OGL renderer is WIP, has missing features, bugs, etc. (i think this is the last before the new ogl renderer: https://github.com/RPCS3/rpcs3/commit/251fb86ab0f16633a021479085c41719ea5d041b (and that only fixes graphical issues, you won't be able to reach fullspeed))

Video about the sound difference (please ignore windows sounds, win10 started derping that my AV is turned off when its not -.-)

https://www.youtube.com/watch?v=TV6VRi1lLEo

magiruuvelvet commented 8 years ago

SPU emulation isn't slow (with asmjit and with at least with this game), OGL renderer itself is what slow. (and openal can't make sound run at 100% speed while ingame fps isn't 100%) Source: I can run the game fullspeed (30fps) in windows with DX12 and Vulkan, OGL can't reach full speed. (but with xaudio2 sound works fine.)

Ok thanks for the info, didn't know about that one :P I know in older build this game works better. I still hope the logs are of any use.

Btw, I'm not interested in playing games in this emulator at this stage. I'm just playing around with it and see what works and what doesn't. :grin:

At least the game enters main menu again after the latest commit.

Regards

magiruuvelvet commented 8 years ago

251fb86

At least on Linux I guess, this commit is unable to boot in game and freezes with a fs::null message.

Nekotekina commented 8 years ago

fs::null error is likely caused by lacking of shader cache directory in config directory. Regarding OpenAL, it's dead parrot and I'm not sure what to do with it.

Nezarn commented 8 years ago

IDK if this error is because i use my iGPU (HD4600), but i get this now with OGL (DX12 works fine aside from graphical bugs)

·F {rsx::thread} class gl::glsl::link_exception thrown: linkage failed: 'The fragment shader uses varying tex9, but previous shader does not write to it. Out of resource error.

kd-11 commented 8 years ago

@Nezarn Could you upload the shaderlogs? Remember to delete previous contents of the folder before running to reduce clutter.

Nezarn commented 8 years ago

@kd-11 yeah sure https://www.dropbox.com/s/z1t3unewkzaq0qy/OGL_HMPDF.zip?dl=0

dbz400 commented 8 years ago

i think should be fixed . Closed

magiruuvelvet commented 8 years ago

the new builds all die with F {rsx::thread} St11logic_error thrown: fs::file is null for this game :confused:

kd-11 commented 8 years ago

rsx_decompiler needs to be updated. It plays fine with current head.

magiruuvelvet commented 8 years ago

i tested the latest master branch of rsx_program_decompiler and RPCS3/rsx_program_decompiler@05d1fc4 (this is what git submodule update gave me)

both failed with this error message

kd-11 commented 8 years ago

@GhettoGirl Linux?

kd-11 commented 8 years ago

If it's a gl error, then first disable __glcheck in gl_helpers.h by setting the macro to ifdef _DEBUG. Then run the game with debug reporting enabled and the game should write opengl errors to log instead of throwing an exception

magiruuvelvet commented 8 years ago

Still not working. Also I didn't noticed an OpenGL error Logs: https://mega.nz/#F!XkBnkQTY!6_rnNA15eRqdl5cn6sKaIw

There are also only 2 shaders in the cache.

RPCS3 v0.0.1-4606-09ae45c Pre-Alpha
U {PPU[0x1] Thread (main_thread) [0x009c80f0]} sysPrxForUser TODO: _sys_process_atexitspawn()
U {PPU[0x1] Thread (main_thread) [0x009c8210]} sysPrxForUser TODO: _sys_process_at_Exitspawn
U {PPU[0x1] Thread (main_thread) [0x005728b4]} HLE TODO: Unimplemented syscall sys_ss_get_open_psid -> CELL_OK
E {PPU[0x1] Thread (main_thread) [0x009c7510]} PPU: 'cellGameContentPermit' failed with 0x8002cb22 : CELL_GAME_ERROR_FAILURE
U {PPU[0x1] Thread (main_thread) [0x009c7fb0]} cellScreenshot TODO: cellScreenShotSetParameter
U {PPU[0x1] Thread (main_thread) [0x009c7f70]} cellScreenshot TODO: cellScreenShotSetOverlayImage
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (10)
U {PPU[0x1] Thread (main_thread) [0x009c6cf0]} cellGcmSys TODO: cellGcmSetQueueHandler
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
E {PPU[0x1] Thread (main_thread) [0x009c6e70]} cellGcmSys: cellGcmSetTileInfo: bad compression mode! (7)
U {PPU[0x1] Thread (main_thread) [0x009c6610]} cellUsbd TODO: cellUsbdRegisterExtraLdd
E {PPU[0x1] Thread (main_thread) [0x006c736c]} sys_fs: sys_fs_open('./dev_ram/user.properties') failed: device not mounted
E {PPU[0x1] Thread (main_thread) [0x006c736c]} PPU: 'sys_fs_open' failed with 0x8001003a : CELL_ENOTMOUNTED
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: SPU Database initialized...
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x000f0-0x00178] (size=0x88)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: SPU Recompiler (ASMJIT) created...
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x00090-0x000e0] (size=0x50)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06e20-0x06e30] (size=0x10)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06d28-0x06e10] (size=0xe8)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06580-0x06644] (size=0xc4)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x05e68-0x05fa8] (size=0x140)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x00ab0-0x00b5c] (size=0xac)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x017b8-0x017ec] (size=0x34)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x015f0-0x0164c] (size=0x5c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x01660-0x01704] (size=0xa4)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x04c70-0x04e90] (size=0x220)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x02e78-0x02eb0] (size=0x38)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06988-0x069c4] (size=0x3c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06a18-0x06a30] (size=0x18)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x089e0-0x08c20] (size=0x240)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x069e8-0x069fc] (size=0x14)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06a78-0x06ab4] (size=0x3c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x092f0-0x09368] (size=0x78)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06b20-0x06ba0] (size=0x80)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06a38-0x06a78] (size=0x40)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x09298-0x092f0] (size=0x58)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x072c8-0x089e0] (size=0x1718)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06e30-0x07038] (size=0x208)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x05b98-0x05c3c] (size=0xa4)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x022b0-0x023fc] (size=0x14c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x002e8-0x00318] (size=0x30)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x05788-0x058cc] (size=0x144)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x07038-0x072c4] (size=0x28c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06710-0x06944] (size=0x234)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x060e8-0x0633c] (size=0x254)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x01d28-0x022b0] (size=0x588)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x00d00-0x0158c] (size=0x88c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x024b8-0x02e78] (size=0x9c0)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x05958-0x05988] (size=0x30)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x00348-0x00380] (size=0x38)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x01720-0x01768] (size=0x48)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06ce8-0x06d24] (size=0x3c)
S {SPU[0x11d] Thread (_synth2 Thread)} SPU: Function detected [0x06c78-0x06ce4] (size=0x6c)
U {PPU[0x1] Thread (main_thread) [0x009c6e90]} cellGcmSys TODO: cellGcmSetZcull(index=0, offset=0x4480000, width=2048, height=1152, cullStart=0x0, zFormat=0x2, aaFormat=0x0, zCullDir=0x0, zCullFormat=0x1, sFunc=0x207, sRef=0x0, sMask=0xff)
U {PPU[0x1] Thread (main_thread) [0x009c8050]} cellRtc TODO: cellRtcGetCurrentTick(pTick=*0xd0057a80)
U {PPU[0x1] Thread (main_thread) [0x009c8050]} cellRtc TODO: cellRtcGetCurrentTick(pTick=*0xd0057a80)
U {PPU[0x1] Thread (main_thread) [0x009c8050]} cellRtc TODO: cellRtcGetCurrentTick(pTick=*0xd0057a80)
F {rsx::thread} St11logic_error thrown: fs::file is null
kd-11 commented 8 years ago

Well, if __glcheck is disabled, then it is likely not a GL error. Does this happen with any other game?

magiruuvelvet commented 8 years ago

I tested 5 other games, same error.

Project Diva F 2nd (JP) just freezes and never boots up without the fs:file error.

Sounds like a regression somewhere which only seems to affect Linux and probably Mac too.

kd-11 commented 8 years ago

Well, from the description it sounds like a HLE bug on linux. You should open an issue for it. If it happens during the loading screen, it may be related to loading save data. Maybe try using rpcs3 from a partition with case insensitive filenames to see if it is affected.

magiruuvelvet commented 8 years ago

I created a FAT32 disk image using dd and started RPCS3 from there. I can confirm somehow that this may be case-sensitivity related. Now I get an OpenGL error F {rsx::thread} St13runtime_error thrown: OpenGL error: invalid enum. file '/build/emulators/rpcs3/rpcs3/Emu/RSX/GL/GLGSRender.cpp' function 'set_viewport' line 550 I will open new issue for that.

magiruuvelvet commented 8 years ago

@kd-11 Can you please take a look at #1985 and #1986. I just found out whats wrong using strace and the help of @Nezarn :smile:

btw, graphic is still broken in OpenGL