![]() |
![]() |
![]() |
![]() |
![]() |
What is Play! ? |
Play! is a PlayStation2 emulator for Windows, macOS, UNIX, Android, iOS & web browser platforms. For more information about this project please visit the "About" section of this site. |
Compatibility Status |
Fetching compatibility status...
|
Development Log |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-28 00:00:00 |
Found nothing of importance yet... Hopefully, I'll have found something tomorrow. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-27 00:00:00 |
Added basic support for the timers and the related interrupts. It doesn't seem to help much though : the game still crashes at the same place.
I'll study the sector read mechanism a little bit more and try to figure out why the sectors needed aren't available to the routine that makes the game crash. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-26 00:00:00 |
This NULL pointer problem is the same one as the previous one. I don't know why it's occuring again yet, but it probably has something to do with the "high-level" BIOS. The game also uses one of the timers which I haven't bothered implementing. So I think I'd be better implementing that and see what happens after.
I've already started working on that a little bit... The game was using an odd mechanism to be able to write to the timer registers that was involving setting the COP0 in "error exception" mode and returning to the calling function by using ERET. While this mode wasn't supported, it didn't make the emulator crash... I made the necessary changes to ERET to make this kind of "hack" work properly. Next, I gotta add an actual timer module and save the values written to the registers. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-25 00:00:00 |
The crash from yesterday was due to some problems with thread scheduling. I changed some things and it seems to work alright for now.
Fixed a little bug with the handling of the DIRECT VIF command. Added support for writing to the DISPLAY1 register. We're starting to get interesting output in the GS, but there's nothing interesting yet to show. But for the moment, there's still another problem with some NULL pointers that I'll be checking next. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-23 00:00:00 |
Got the program to read from the DVD successfully, and as I thought, this fixed the NULL pointer problems I was having.
It seems to go a bit further now, but it still crashes because of something else. I'll continue my investigation tomorrow. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-23 00:00:00 |
I made some changes to how the order of execution of thread because I found suspicious that two threads were left doing nothing. Those two threads are responsible for controlling the CDVD stuff. There was more CDVDFSV methods that were missing and there's still a bit more. Also, there's chances that this routine I was talking about yesterday is used for reading stuff off the DVD, but I'm not sure... So I'll complete the missing methods tomorrow, but I have no clue if that's going to fix the problem... |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-22 00:00:00 |
The underlaying problem seems to be that a pointer table isn't initialized correctly. It's cleared to zero at the beginning of the program execution, but it's never set to valid values afterwards. I don't know yet what's supposed to fill this table, but the function called to get one of those pointers seems to be called by a lot of different things. Also, this fonction is, most of the time, called with a single constant argument, which is ANDed with 0x7F and XORed over and over. Could be some protection scheme... Well, I'll keep investigating on this. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-21 00:00:00 |
I didn't find anything significant today... I'll keep investigating tomorrow. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-19 00:00:00 |
One of the threads is apparently responsible for maintaining a DMA buffers linked list and the way it knew a transfer was complete and that a buffer was available was through a DMAC handler installed the VIF1 and GIF channels. But my "homemade" kernel didn't supply a valid 1st parameter when calling this DMAC handler, so it wouldn't end up relaying the good messages. I fixed that and the mecanism seems to work alright now.
Now, there's another problem involving writing to a NULL address which screws up things a little bit. I'll try to fix this one tomorrow. |
Make 'Castlevania: Yami no Juin' work up to the title screen.
Posted on 2006-06-18 00:00:00 |
There was a problem with the starting of the newly created threads due to ReferThreadStatus not being implemented. I implemented this system call and tidied some of the threading stuff.
Now, there seem to be some sort of communication between 2 threads, but it still doesn't goes any further. I'll see what this communication is supposed to be about tomorrow. |
<< Older Log Entries | Newer Log Entries >> |