hrydgard/ppsspp — pull request #3867 by unknownbrackets (2013-09-21 22:14:06+00:00)
Title: Improve GE list ids, fix a rare bug in sceGeListUpdateStallAddr, better errors

List ids should go round robin, but we were returning the same id (e.g. 0) over and over. A buggy game could have problems with our implementation and be fine on the PSP, so this is safer.

Also, ids always have some high bits set, so I figured replicating the basic range was a good idea.

I happened to run into CoreTiming::Advance() thread switching within sceGeListUpdateStallAddr(), which is probably not a common thing, but this causes the return value to be messed up. So I made it just force the cpu to run Advance() after the return, which should be safer. The FF Type-0 demo still seems okay.

This makes the test in hrydgard/pspautotests#111 pass.

-[Unknown]