Dynarec Completed For Psx4all Project.


Rivroner posted on Oct 4 2006 at 02:02 AM said:
¿33% of 7 frames are 2 or 3 frames isn't it? (my english is bad, sorry :( )
May be in 2D the performance is better than in 3D.May be in 2D is 50 % better than before :)
Time will tell.

Three frames changes the status of "whip out" from playable to good playable. ;)
not fullspeed, but enough to impress!
 
Last edited by a moderator:
karmax75 posted on Oct 4 2006 at 05:57 AM said:
Hmm, a little (or a lot) of frameskipping never hurt anyone ;) :D

;) but the sooner shown framerate is not true, now we know.
i really wonder, how the new interpreter performs and what the correct framerate is.
 
Last edited by a moderator:
Unai has been staying away from frameskipping to a certain degree.
We are currently only displaying frames that have changed since the last one. In a sense, that's a type of frameskipping, since we skip "blitting" (drawing) the useless frames.
What gets difficult is skipping the actual rendering of the frame. We can do that, and it will make things faster, but sometimes it skips important graphics that arent updated every frame, meaning you could be playing FF7 with a bald Cloud. Nobody wants that. ;P

I tested FF7 on the latest psx4gp2x @ 266mhz. The lowest amount of drawn frames were 15 a second in-game. So that "FPS" is between 15 (Unique Frames Drawn) and 45 (VSyncRate). It feels pretty smooth, and definitely faster.

Ridge Racer 1 chugs along at 9 to 12 unique drawn frames a second, with a VSyncRate of 24 or so. So the FPS is somewhere inbetween. ;P I wonder how the optimized Ridge Racer 1 inside Ridge Racer 4 performs.

Wipeout XL is up to 12 unique drawn frames a second. It use to be 8 or 9.

I'll get some work done on it tonight, and hopefully Unai is around tommorow so we can get a release out asap.
 
just wanted to add a few words to show support for this. seems pretty mental to me that a psx could run on a gp2x, what with the amiga, snes and gba still running slow and all (and yes, i know its not as simple as that, but to my non-techie brain it doesnt quite compute) but would certainly be pretty swish to be playing these games on the go.

so yeh, fingers crossed here - as i am primarlily an rpger im hoping for things like grandia, valkyrie profile, xenogears, vandal hearts, star ocean 2 as well as the FFs - of course....

keep it up fellas
 
You're right zodttd, stick to the interpreter for now and hope for some flash of inspiration that'll see the dynarec reborn :)

Wouldn't expect you to give up on it - as you say, your're just getting the hang of ARM assembler, so anything could happen.

Also if someone makes a breakthrough on distributing some thread of execution onto the second processor, then that could be a turning point.

All our hopes are still high - the figures you quote sound impressive improvements; and you've shown great advances each release.

Looking forwared to the beta :)
 
Releas???!!! :rolleyes: :rolleyes: :lol:
I hope we don´t have to wait to much longer... :rolleyes:
 
zodttd could the ultrahle "dirty hack" be used in your dynarec instead of paged translation map ?


##
A drity trick that UltraHLE is said to be using works as follows:
Instead of using a data structure to memorize which blocks have been translated, the first instruction of the block is replaced by an illegal instruction that also contains the offset to the generated code - since MIPS has 32-bit instructions that's quite possible. So the emulator just takes a look at the start of the block to recognize if it has been translated already or if it has to be translated still. A side-effect is that code that modifies the first instruction of the block leads to the block being translated again automatically.
The disadvantage is that self-modifying code is only detected when the illegal instruction is replaced, and since you modify the original code you might run into problems when that block is actually just a sub-block of a larger block that might run into that illegal instruction. This could be handled of course, when the original instruction is stored somewhere, but it makes things a bit more complicated.

##
 
Bad luck on the dynarec, but good to hear you aren't giving up, in any event. Odd how it's not working as well as it ought, perhaps.

Still, if FFVII becomes properly playable (and fun to play, at that), then that's an amazing feat in itself, let alone other games. Xenogears and BoF 3 being, of course, the ones I'm most hoping for, but I think I'll be waiting a while for those, seeing as they're fully 3d...
 
yeah FF7 on those movies it looked very playable... much much better then the beta I tried it on :)
I wonder about the speed of the FMV's though :)
 
i'm eager to see what GP2X games will be like, in 2 or 3 years :ph34r: Playable Quake 2, Fullspeed PSX, SNES, GBA, more high quality homebrew? lol excuse me I was dreaming
 
"I'll get some work done on it tonight, and hopefully Unai is around tommorow so we can get a release out asap"

it's today now ? I'm in france, it's 5:25 pm here :)
 
The UltraHLE trick could work in our dynarec. I'm not quite sure how much speed increase it would give over what we have though.

There is a little more news for the moment...Remember before the ARM Dynarec I was working on an ARM assembly interpreter? Well I took a look at the ARM interpreter and it's some huge bloated code. I can probably reduce the instruction count by half, that's how bloated it is.
The ARM interpreter was only a frame or two slower than the "new interpreter". I believe with some well written ARM assembly and some new tricks I learned, I can get the ARM interpreter even faster than what we currently have.

Oh, I was also thinking about the dynarec. One of the issues we had with the dynarec was "dynamic" data being loaded and filling the translation cache. I will see what can be done to detect large chunks of data from being loaded into the cache, as I think it's a portion of the problem.

Even though I'm already working on the ARM interpreter, it might be up to a week of working on it until it's ready. So a release should probably be made with the "new interpreter" in the meantime.
 
Back
Top