12-25-2014, 04:07 PM -
(12-25-2014, 02:01 PM)derpf Wrote:(12-25-2014, 12:52 AM)ssshadow Wrote: This works pretty much fine now. Everything is good, speed is even (mostly) in the right order of magnitude on the interpreter. Game is pretty playable regardless though, sound is perfect, graphics are almost perfect, just some tiny glitches here and there. The only thing is that saving and loading doesn't work, and after some amount of time the RSX thread will seemingly randomly die with a "bad flip!" message. Homebrew Doom and Heretic do the same thing it seems.
Also, I decided to try LAN multiplayer, and I think hosting a game works, but searching for servers crashes with something I have never seen before:
Code:HLE: W {PPU[2568] Thread (ListGamesSystemLink)[0x00504064]} sys_net warning: sendto(s=-1, buf_addr=0xd00debf0, len=11, flags=0x0, addr=0xd00dea80, addrlen=16)
HLE: W {PPU[2568] Thread (ListGamesSystemLink)[0x00504034]} sys_net warning: _sys_net_errno_loc()
PPU: E {PPU[2568] Thread (ListGamesSystemLink)[0x001e4574]} PPUInterpreter::LWZ(): invalid address (0xffffffff30016000)
Huh, cool. I don't think I got around to checking sendto, I've been waiting on it to run at a somewhat decent speed to test it. Does it work with the PPU JIT? Is it any faster?
The LWZ failure I think means the address cannot fit into 32 bits (because of the leading 0xffffffff). I thought the high 32 bits didn't matter with addresses. Someone should check that out.
The recompiler segfaults after the initial logo screens, but it isn't significantly faster before that either. If you have a 8 core/thread CPU like an i7 you can easily run two instances of the game simultaneously now on the interpreter with acceptable performance. It only takes about a minute or two to get to the menu, create a character (remember, saving doesn't work) and select LAN multiplayer.