jpd002 / Play-

Play! - PlayStation2 Emulator
http://purei.org
Other
2.14k stars 259 forks source link

Timesplitters doesn't boot #6

Closed LasagnaPie closed 9 years ago

LasagnaPie commented 10 years ago

Timesplitters does not boot. SLES 50078 [PAL] Original Disk.

jpd002 commented 10 years ago

Made a change to fix the emulator not being able to read the ELF file at all. ac04ad025526827c0c616c80f58e2062ac032827

Also added support for strrchr in SYSCLIB because it needed it. c582857387a5638f724d35a360699ceef0fa8748

Still doesn't go very far though, it crashes because it tries to write to the TLB.

bigianb commented 9 years ago

I think we can ignore the TLB write on this game. It maps a single 16k page Virtual 0x00030000 -> physical 0x00774000. I'm not sure why it does that - the physical address just seems to contain string table data. I added that mapping by hand and it give the same result as if you just ignore the TLBWI instruction (it hangs waiting an a semaphore).

bigianb commented 9 years ago

BTW: I have a branch called 'timesplitters' in my fork that logs what TLBWI would do and then ignores it.

jpd002 commented 9 years ago

Thanks to the changes from @bigianb and some other minor fixes I did, the game can now display the introduction movies:

ts_01 ts_02

But unfortunately, it crashes right after the movies are done playing. I'm investigating the problem right now, but you can look at the changes I did in the timesplitters branch I've just pushed.

jpd002 commented 9 years ago

In the latest weekly build (2015-03-29), the game can go a bit further:

ts_03 ts_04 ts_05

It crashes after the mission intro movie, so there's still some work required to make this fully playable.

jpd002 commented 9 years ago

Closing this as game boots now. I will come back to this game later to make it playable.