Gpsp (dynarec) Beta Testing


zodttd posted on Mar 14 2007 at 01:27 PM said:
Virtualisation is currently used in VirtualPC, VMWare, Parallels...you know, those commercial products used to run another OS within Windows/Linux/Mac.

The concept definitely works. I hope Squidge jumps on soon so I can get started on it. ;)

Allowing a GBA ROM to run natively on the GP2X and hook into the routines that handle the specifics of the GBA that are different on the GP2X, will speed things up greatly. It's nice to know it can be done on the GP2X. :)

icic, I can imagine with it. is that possible to allow me to join the development for the virtualization part ? :p heehee

since both GBA (ARM7TDMI) and MMSP2 (ARM920T) should be same ARM instruction. Only some register are different. If you can control the MMU of MMSP2, this idea will work without any problem.
 
Last edited by a moderator:
slaanesh posted on Mar 14 2007 at 02:00 PM said:
Would the virtualization technique work for switching between THUMB and ARM mode? Does the ARM920 have the THUMB mode at all?

yes , it support. you can check ARM920T (T = Thumb).
 
Last edited by a moderator:
^^
Well that is good :)

Other questions:
What about how do you control what is executed? Surely you want to either execute certain sized chunks of GBA binary code or based on runtime. ie. run number of instructions equal to 16Mhz * 1/60th of a second and then update hardware/audio/controls, etc.

Is there a supervisor mode?

I find this kind of thing interesting, so any information like this would be great.
 
zodttd posted on Mar 13 2007 at 05:44 PM said:
Status update: My next release will be a more stable gpSP2X public release. :)

After that release I plan to use virtualisation. ;)
:D :D YAY!!
 
Last edited by a moderator:
slaanesh posted on Mar 14 2007 at 02:30 PM said:
^^
Well that is good :)

Other questions:
What about how do you control what is executed? Surely you want to either execute certain sized chunks of GBA binary code or based on runtime. ie. run number of instructions equal to 16Mhz * 1/60th of a second and then update hardware/audio/controls, etc.

Is there a supervisor mode?

I find this kind of thing interesting, so any information like this would be great.

If Based On Virtualization, it means GP2X will create a memory segment which is similiar to GBA. it will be whole GBA Image. not a part , not a chunks. Otherwise, it is meanless. just similiar when you are running VMWare.
 
Last edited by a moderator:
slaanesh posted on Mar 13 2007 at 11:30 PM said:
^^
Well that is good :)

Other questions:
What about how do you control what is executed? Surely you want to either execute certain sized chunks of GBA binary code or based on runtime. ie. run number of instructions equal to 16Mhz * 1/60th of a second and then update hardware/audio/controls, etc.

Is there a supervisor mode?

I find this kind of thing interesting, so any information like this would be great.
I would expect that zodttd will run his code something like this:

Start program, set up emulated hardware (not the ARM cpu),

then get ROM, find ARM code to execute,

execute ARM code natively on the GP2X CPU, grab output, apply to emulated hardware (sound, video, I/O, etc.)

Seeing as we have 10x the cycles (~16mhz to 200+mhz), the remaining 9x cycles from every run can be used to set-up the CPU code and grab the CPU output and emulate the video and I/O (controls), not a hard job IMHO for a GBA :). Also I am guessing that the GBA uses loops of nothing a lot, so cutting those will speed it even further.

EDIT: I see, so a virtual memory identical to GBA, should make it even easier, just redirect the GBA ARM code into the virtual GBA memory, then act on it with the emulated GBA hardware, very cool.
 
Last edited by a moderator:
If you'd like to see how virtualisation is done, look towards GPAdvance. If it had been completed it would be similar.

There won't need to be a lot of reworked code. It's more of removing the parts not needed, and editing the memory addressing of what is.

I might have a person or two willing to help me with the virtualisation part. This will be fun 2x. :)
 
Jaguarandine posted on Mar 13 2007 at 08:59 PM said:
What I am curious about is would virtualization mean a complete re-write of Exophase's code, and be tougher than the dynarec ZodTTD has been wrestling with?
Not necessarily, Zod is a wizard, and all he really needs to do is get the CPU to churn out GBA processing into his virtual GBA ram when he wants and then jump back into hardware emulating (video, sound, and input [if sound is on the second core, even easier :) ])
 
Last edited by a moderator:
nubie posted on Mar 14 2007 at 02:41 PM said:
Jaguarandine posted on Mar 13 2007 at 08:59 PM said:
What I am curious about is would virtualization mean a complete re-write of Exophase's code, and be tougher than the dynarec ZodTTD has been wrestling with?
Not necessarily, Zod is a wizard, and all he really needs to do is get the CPU to churn out GBA processing into his virtual GBA ram when he wants and then jump back into hardware emulating (video, sound, and input [if sound is on the second core, even easier :) ])

if possible, I don't think using second core is a good choice. since it draws much more power. becoz I am using battery..........

OT: you guy don't need to sleep ? since I am living at Hong Kong which is day time now. :eek: (GMT +8)
 
Last edited by a moderator:
zodttd posted on Mar 14 2007 at 01:15 AM said:
Btw at just some cross-promotion. Squidge just released Spot. The GP32 "emulator". This is my favorite project going, and I've been talking to Squidge about it. The interesting part about this project is it's potential for virtualisation. The same technique can be used with gpSP2X, so Squidge and I will have to discuss the potential for it's use in gpSP2X.

While waiting for the next version of the gpSP2X beta, check out the Spot thread. ;)
What? Squidge released a GP32 emulator for GP2x?? Where is it??
 
Last edited by a moderator:
adso posted on Mar 14 2007 at 03:26 PM said:
zodttd posted on Mar 14 2007 at 01:15 AM said:
Btw at just some cross-promotion. Squidge just released Spot. The GP32 "emulator". This is my favorite project going, and I've been talking to Squidge about it. The interesting part about this project is it's potential for virtualisation. The same technique can be used with gpSP2X, so Squidge and I will have to discuss the potential for it's use in gpSP2X.

While waiting for the next version of the gpSP2X beta, check out the Spot thread. ;)
What? Squidge released a GP32 emulator for GP2x?? Where is it??

SPOT......
 
Last edited by a moderator:
hilarycheng posted on Mar 14 2007 at 08:28 AM said:
adso posted on Mar 14 2007 at 03:26 PM said:
zodttd posted on Mar 14 2007 at 01:15 AM said:
Btw at just some cross-promotion. Squidge just released Spot. The GP32 "emulator". This is my favorite project going, and I've been talking to Squidge about it. The interesting part about this project is it's potential for virtualisation. The same technique can be used with gpSP2X, so Squidge and I will have to discuss the potential for it's use in gpSP2X.

While waiting for the next version of the gpSP2X beta, check out the Spot thread. ;)
What? Squidge released a GP32 emulator for GP2x?? Where is it??

SPOT......
This is an awesome news!!
 
Last edited by a moderator:
hilarycheng posted on Mar 14 2007 at 06:57 AM said:
if possible, I don't think using second core is a good choice. since it draws much more power. becoz I am using battery..........

Actually it has been demonstrated that using the extra core can be more efficient than a high over clock. It just needs to be used for the correct purpose.

I think the whole virtualisation idea is great. it should free up enough cpu time to just worry about displaying the GBA's screen. I image the GFX portion of GBA is the more complicated part, since it has hardware sprite and tile handling and such. I do not doubt that this could work, and may serve to allow us GBA at stock clock rates or possibly lower! :)
Would sound on the second core be of benefit to performance at all?
 
Last edited by a moderator:
It might benefit from using the second core for graphics/sound. But if it's not needed it most likely won't be used.
 
mmm, is there any need to switch to virtualiZation? has the dynarec hit a wall? or are you just excited about the joy of using this technique with Gpsp2X zodttd?:p
 
Back
Top