Gpsp (dynarec) Beta Testing


Faster is better. Especially when the dynarec is getting 35 FPS in some of the most intense games with FS0 @ 260MHz. If I want to double speed, this is the way to go so far. Exophase where art thou! ;)
 
holy crap, this is exciting. Honestly, just witnessing the stuff going on in the scene right now is better then watching a movie. Being there and watching while great projects evolve and legends are being made. God I love to be a gp2xgeek!!!
 
Yep we all love to be gp2x GEEK !

Awaiting the next release and the Virtualisation method !

Thanks for your works ZodTTD, master of all ones !

paxl13
 
xnopasaranx posted on Mar 14 2007 at 02:10 PM said:
holy crap, this is exciting. Honestly, just witnessing the stuff going on in the scene right now is better then watching a movie. Being there and watching while great projects evolve and legends are being made. God I love to be a gp2xgeek!!!

I concur!

hehe isn't this funny: when playing thps2 and in the middle of a kickflip the emulator shows error message "BAD JUMP" !
lol ^_^
 
Last edited by a moderator:
I don't think that virtualisation would be a fairly easy achievement

I mean, to be able to do this sort of virtualization you'll need to set memory protections in any I/O-related memory address and emulate it (so everytime the gba wites to video memory, the difference would be applied in real video memory) and this have to be done kernel-sided not userspace-sided

Perhaps it would be even easier to run everything in 940[T?](does it run in thumb mode?) which you start already in kernel mode and then use 920t for architeture emulation (sound/video/input)
 
Lint posted on Mar 14 2007 at 08:39 AM said:
I don't think that virtualisation would be a fairly easy achievement

I mean, to be able to do this sort of virtualization you'll need to set memory protections in any I/O-related memory address and emulate it (so everytime the gba wites to video memory, the difference would be applied in real video memory) and this have to be done kernel-sided not userspace-sided

Perhaps it would be even easier to run everything in 940[T?](does it run in thumb mode?) which you start already in kernel mode and then use 920t for architeture emulation (sound/video/input)
Um, zodttd just WROTE a dynarec for it in under a week (or moved it to the GP2X) Either way, this should be a cakewalk in comparison.
 
Last edited by a moderator:
Lint posted on Mar 14 2007 at 03:39 PM said:
I mean, to be able to do this sort of virtualization you'll need to set memory protections in any I/O-related memory address and emulate it (so everytime the gba wites to video memory, the difference would be applied in real video memory) and this have to be done kernel-sided not userspace-sided

That is correct. It really needs to be done in a kernel module, but it can be done in userspace using such hacks as I used in the original mmu hack. Obviously the later isn't as portable, and only works on a single kernel version.

Lint posted on Mar 14 2007 at 03:39 PM said:
Perhaps it would be even easier to run everything in 940[T?](does it run in thumb mode?) which you start already in kernel mode and then use 920t for architeture emulation (sound/video/input)

It would be if the 940 had an MMU... It only has a memory protection unit, and so doesn't tell you the address that was being read or writes when it traps the address exception, and you can't redirect memory addresses to other physical addresses (so you can't for example just map gba ram to a portion of physical gp2x ram). For every address exception, you would have to read the opcode at that address, decode it, read the registers from the appropriate processor mode, etc.. It would probably take longer than a decent dynarec.
 
Last edited by a moderator:
I don't understand much of this 1337-tech speak here but it sounds good :lol:
But when I read about the GP2X ARM-Processor(s) it always sounds like the CPU has some serious design-faults (?)
Ok, the CPUs sureley never designed for emulation but a better and efficient connection between them and <whatever> inside the Handheld could'nt had hurt during development I think... ^^" I often had read here about what would be possible on Gp2X if the CPUs were better. So why they are not designed, how they should (could) be?
 
GPH used a Magiceyes reference design and modified it slightly.

They then asked what we wanted in the console, hundreds of people replied.

GPH replied saying "No changes to the hardware can be made".

and here we are :)

Basically, all we were asking for was some SRAM for the second processor, which the chipset allows, but GPH wouldn't include, as they didn't think it was necessary for a media player (which was there primary market I believe).
 
Squidge posted on Mar 14 2007 at 11:51 PM said:
Basically, all we were asking for was some SRAM for the second processor, which the chipset allows, but GPH wouldn't include, as they didn't think it was necessary for a media player (which was there primary market I believe).

This is just my very, very weird mind speaking: It isn't possible to mod that in there, is it?
 
Last edited by a moderator:
Not really, as GPH decided to put a USB2 chip in that memory space instead. And not just any old USB2 chip, a USB2 chip that can only run at speeds lower than the USB1.1 which is built into the processor :D

Using that USB instead would have been quicker, as it would have been on the internal A/D bus, so would have been quicker to talk to and generally faster...

But anyway, before we drag this topic too far off-topic...

We are working on the virtualisation idea, but don't expect miracles. It won't be done overnight (but will probably be close due to Zodttd's regular 24 hour coding marathons :D )
 
Squidge posted on Mar 15 2007 at 12:18 AM said:
Not really, as GPH decided to put a USB2 chip in that memory space instead. And not just any old USB2 chip, a USB2 chip that can only run at speeds lower than the USB1.1 which is built into the processor :D

Using that USB instead would have been quicker, as it would have been on the internal A/D bus, so would have been quicker to talk to and generally faster...

*slaps forehead* Yes, of course - That is clearly the appropriate design! How come I didn't see that?

:blink:

Actually, I thought nothing about GPHs design team could surprise me anymore, but evidently I was wrong...

Still...Woot! to Zod! Woot! to Squidge, too! At least it is good that the GP2xsurprises in a day goes mainly in the positive direction - For every "They did what?"-groan we get at least two "They've managed to do what?"-cheers :)

This could turn into a semester course on emulator construction. "Ok, students. listen up! During the first month and a half, we'll explore emulation by interpretation. The middle of the course is about dynamic recompiling, and towards the end we'll even get into emulation by virtualisation. We will, as an example throughout the course, look at GBA emulation as our target..." :)

:unsure: :ph34r: :eek: :blink: :D :D :D :D

I just imagined the kind of kittens our legal department would have when they found this course description in our catalog...Whee! Administrative implosion! Must-pitch-idea-to-professor...:)
 
Last edited by a moderator:
Moxie posted on Mar 14 2007 at 11:34 PM said:
Squidge posted on Mar 15 2007 at 12:18 AM said:
Not really, as GPH decided to put a USB2 chip in that memory space instead. And not just any old USB2 chip, a USB2 chip that can only run at speeds lower than the USB1.1 which is built into the processor :D

Using that USB instead would have been quicker, as it would have been on the internal A/D bus, so would have been quicker to talk to and generally faster...

*slaps forehead* Yes, of course - That is clearly the appropriate design! How come I didn't see that?

:blink:

Actually, I thought nothing about GPHs design team could surprise me anymore, but evidently I was wrong...

Still...Woot! to Zod! Woot! to Squidge, too! At least it is good that the GP2xsurprises in a day goes mainly in the positive direction - For every "They did what?"-groan we get at least two "They've managed to do what?"-cheers :)

This could turn into a semester course on emulator construction. "Ok, students. listen up! During the first month and a half, we'll explore emulation by interpretation. The middle of the course is about dynamic recompiling, and towards the end we'll even get into emulation by virtualisation. We will, as an example throughout the course, look at GBA emulation as our target..." :)

Moxie posted on Mar 15 2007 at 12:31 AM said:
This could turn into a semester course on emulator construction [...]We will, as an example throughout the course, look at GBA emulation as our target..."

I just imagined the kind of kittens our legal department would have when they found this course description in our catalog...Whee! Administrative implosion! Must-pitch-idea-to-professor...:)
That sounds like a good course :)
 
Last edited by a moderator:
Squidge posted on Mar 14 2007 at 05:43 PM said:
That is correct. It really needs to be done in a kernel module, but it can be done in userspace using such hacks as I used in the original mmu hack. Obviously the later isn't as portable, and only works on a single kernel version.
fact, but it doesn't turn the mythical experience any less mythical :p

if it have to be in kernelland, different concerns are needed on how to upload code to the kernel
Squidge posted on Mar 14 2007 at 05:43 PM said:
It would be if the 940 had an MMU... It only has a memory protection unit, and so doesn't tell you the address that was being read or writes when it traps the address exception, and you can't redirect memory addresses to other physical addresses (so you can't for example just map gba ram to a portion of physical gp2x ram). For every address exception, you would have to read the opcode at that address, decode it, read the registers from the appropriate processor mode, etc.. It would probably take longer than a decent dynarec.
I see, I think that decoding will do some benefit, all opcodes follow a pattern, as soon as you decode with a AND mask you're like to get just some rightful possibilities that could be done with a jump table
anyway that should only happen when you access protected memory, right? anything beside that is clocked 14x faster...
 
Last edited by a moderator:
Back
Top