Make 'Ys I & II Eternal Story' playable.
Posted on 2006-01-24 00:00:00
Added support for reading the IPU_TOP register.

Fixed a little code generation bug for PSUBW on the SSE target.

Implemented instructions PMINH, PMAXH, PPACB.

PPACB was a bit annoying to implement since there's no direct equivalent on the x86. The instruction closest to it is PACKUSWB which does the same except that it clamps the word in a [0, 255] range instead of taking the 8 least significant bits. It was also a bit annoying to get it work on the SSE target because of the 64-bits size of the operands.

These instructions were used in a routine that clamps the IDCT output in a [0, 255] range which it executes after 2 macroblocks are decoded.

If I leave it running, it'll ask the IPU to decode a variable length code for the macroblock type for a different picture type than I. I'll be checking this tomorrow.