Fix previously working programs
Posted on 2006-08-07 00:00:00
The "SetVSyncFlag" system call implementation seems to be what was causing the problems with Ys I & II hanging just before starting playing the DigiCube movie. I changed the implementation of this system call for Castlevania to return 0x2000 instead of 0 but Ys was waiting for this 13th bit to be cleared before proceeding. I think this bit represents whether we're on the odd or even field, so I made this value the same as the one kept in the GS handler. It seems to be enough to make Ys go further without breaking Castlevania.

Ys is still a bit screwy though : the MPEG decoding stuff doesn't work really great and the screen always moves up and down even though the interlaced compensation thing is supposed to be working. I'll have to work on these tomorrow.

As for Atelier Iris, it still hangs at the same place, but it can randomly go through the place it hangs and continue normally with the game. If it goes through, the game works as it was working before.

If it's random, then the thread scheduler might be in cause because it randomly selects a ready thread, which isn't a good thing. So, that'll have to be reworked too.

Here's some things I'd also like to finish in the context of this development : this, this, this and this.