Closed GoogleCodeExporter closed 8 years ago
[deleted comment]
Woah you're right. Disgaea is usually one of my 1st test games, but I've been
so
busy working with FFXII that I didn't realize it had stopped working.
Apparently
that counters fix from a few revisions ago isn't doing what I thought it was
doing. :/
Original comment by Jake.Stine
on 5 Nov 2008 at 12:04
eliotfur:
I deleted your comment, since i *thought* you said you downloaded something.
I'm sure you meant you bought something, right?!
Original comment by ramapcsx2
on 5 Nov 2008 at 12:06
Aaah, yes, you're right... :-)
Original comment by eliotfur
on 5 Nov 2008 at 12:18
Should be fixed now.
Along with god knows what else. I was timing the IOP counters to the EE cycle
rate.
Bad. Very bad. :P
Original comment by Jake.Stine
on 5 Nov 2008 at 12:26
Nope still hangs.
Jake:
Please test your changes with hacks off since thats what we need to have
working ><
Original comment by ramapcsx2
on 5 Nov 2008 at 12:57
Original comment by ramapcsx2
on 5 Nov 2008 at 12:58
Ok, EE seems to miss an important update.
Using the old EE_WAIT_CYCLE 512 fixes disgaea.
Original comment by ramapcsx2
on 5 Nov 2008 at 1:03
I did test it with hacks turned off. It didn't work, I found the bug, and then
it
worked. :/
Original comment by Jake.Stine
on 5 Nov 2008 at 1:10
Ok, the riddle is that it only hangs the NTSC version. The PAL version is
working
fine as of r299. Grr. Well I'll play around with several recent changes and
see
which one breaks the NTSC version.
Original comment by Jake.Stine
on 5 Nov 2008 at 1:18
Ah, I see ><
Well a good starting point is the EE_WAIT_CYCLE.
As I said, it works when this is reduced to 512 again.
You mentioned that this number could be obolete since the branches should
happen in
any important case anyway.
Well, i guess there's a few cases left where it doesn't update then :p
Original comment by ramapcsx2
on 5 Nov 2008 at 1:20
It has something to do with SYSCALL actually, which is also related to exception
handling somehow (which might be the problem since the recompiler doesn't really
support it). If I tweak the block cycle count at all it tends to cause widely
variant behavior in game startup. Some games freeze, others boot up faster,
etc.
It seems odd since the other areas that use BlockCycles can be varied quite a
lot
with few serious side effects in most games. But the SYSCALL part is like an
insta-breaker.
Original comment by Jake.Stine
on 5 Nov 2008 at 1:29
Ok, I've got both games working here. Still not sure why they break. There
must
still be something that requires regular polling in the BranchTest of either
the IOP
or the EE, and I'm guessing it's related to the exception code. No easy way to
know
for sure, since setting the wait cycles of either CPU lower causes both CPU
branch
tests to be called more often.
I'll commit the fix for now and play with it later.
Original comment by Jake.Stine
on 5 Nov 2008 at 1:55
Maybe they're better to be called more often?.. Just for sure...
Original comment by eliotfur
on 5 Nov 2008 at 2:00
Hmk, working here again.
Of course the old overhead is back :(
I'm sure IOP cycles beeing 64 is a bit too tight, thats why speed is down.
But without knowing whats wrong we'll have to keep it at that :/
Original comment by ramapcsx2
on 5 Nov 2008 at 2:47
Yup. I'll work at it more here in the meantime.
Now that I know better which games are especially sensitive to the
IOP_WAIT_CYCLE, I
can fiddle with some things and get an idea if it's making forward or backward
progress. And it also helps now that the counters code is all fixed up and
stable,
since any errors in those would have skewed previous attempts to test wait cycle
variants.
Original comment by Jake.Stine
on 5 Nov 2008 at 3:41
Original issue reported on code.google.com by
eliotfur
on 5 Nov 2008 at 11:44