Any Update On 2nd Cpu?


C

codeninja

Guest
Any news regarding 2nd CPU in GP2x? With recent source code releases from MagicEyes and GPH, would it open up the possibility of using the 2nd CPU, finally?

A 200Mhz CPU sitting there idling sounds no good, whereas current generation emulators do need whatever help they can get to speed up. Even if that CPU turns out to be not so good 2D accelerator, still we can use it delegate some tasks such as CPU emulation or at least as a vector unit, right?
 
The 2nd CPU can, and always has been, usable. The fact is what to use it for.

Don't forget both processors can't access the memory bus at the same time, and since Linux can't use both processors, you need to use a different compiler to code for the second processor than for the first (unless your program only runs in HH-mode of course).

This also means that the only way of sharing information is through memory and some kind of semaphore system as the processors are completely seperate.
 
Sounds like a job for 'Raw Assembler Man'.

Seriously though - if the memory can't be acessed at the same time how does the 2nd processor become usefull ?? Does it have an onboard cache ??
 
codeninja posted on Dec 2 2005 at 05:23 PM said:
Any news regarding 2nd CPU in GP2x? With recent source code releases from MagicEyes and GPH, would it open up the possibility of using the 2nd CPU, finally?

A 200Mhz CPU sitting there idling sounds no good, whereas current generation emulators do need whatever help they can get to speed up. Even if that CPU turns out to be not so good 2D accelerator, still we can use it delegate some tasks such as CPU emulation or at least as a vector unit, right?

First, keep in mind, the second core, is useless !

why ?

Problem 1:
To use the second core, YOU must rewrite parts of the Emulator, who want to use the second core. There is no magic around this, all docs are available now, to do this. But the Problem is, that YOU must rewrite parts of the Emulator core, who wants to use the second core. Its not a simple compiling task !!! You must use your brain, and rewrite code ! This comes to my conclusion, only a very few coders got the skills to do so.

Problem2:
Only 1/100 coders here, wants to waste time, in rewriting/testing a new Emulator core.
Why rewrite/test hugh code parts ? A simple Linux/sdl crosscompile will result in a running Emu also.

Problem3:
Rewriting a Emu core takes a LOT time. Takes a lot time to bug fix. And this only for a few more fps... Who should do this ?

Problem4:
Some say, why not wait for HH ( i would call it Direct Hardware ), couse, it will make using the second core a little more easy, but the design of an emulator is mutch more complicated, without an OS in the background. Also DH is only about ~1fps faster, than running under Linux, so its a waste of time.
Dont believe me ?
Take a look to the mame gp32 port, and look, how long it took to port it to the gp32.
AND it is an very old code base, about 5 years old. It is not possible to run mame 1.0 on the gp32, couse the lack of an OS.

Problem5:
You dont need an second CPU for Homebrew !!!

Problem6:
ALL current available games/emus cores, are single cores.
Have look to the Windows world, and see How mutch more fps you get, changing your Athlon64 to an Athlon64x2, dual core cpu.
It will speed up nothing !
You must rewrite the code... -> its damm hard --> nobody wants to waste 6MONTH in rewriting code. To get ONE Emulator ~5fps faster. (if the emulator is now running with 10fps, the second core could give it 15fps)
 
Last edited by a moderator:
mr.mirko posted on Dec 2 2005 at 06:45 PM said:
codeninja posted on Dec 2 2005 at 05:23 PM said:
Any news regarding 2nd CPU in GP2x? With recent source code releases from MagicEyes and GPH, would it open up the possibility of using the 2nd CPU, finally?

A 200Mhz CPU sitting there idling sounds no good, whereas current generation emulators do need whatever help they can get to speed up. Even if that CPU turns out to be not so good 2D accelerator, still we can use it delegate some tasks such as CPU emulation or at least as a vector unit, right?

First, keep in mind, the second core, is useless !

why ?

Problem 1:
To use the second core, YOU must rewrite parts of the Emulator, who want to use the second core. There is no magic around this, all docs are available now, to do this. But the Problem is, that YOU must rewrite parts of the Emulator core, who wants to use the second core. Its not a simple compiling task !!! You must use your brain, and rewrite code ! This comes to my conclusion, only a very few coders got the skills to do so.

Problem2:
Only 1/100 coders here, wants to waste time, in rewriting/testing a new Emulator core.
Why rewrite/test hugh code parts ? A simple Linux/sdl crosscompile will result in a running Emu also.

Problem3:
Rewriting a Emu core takes a LOT time. Takes a lot time to bug fix. And this only for a few more fps... Who should do this ?

Problem4:
Some say, why not wait for HH ( i would call it Direct Hardware ), couse, it will make using the second core a little more easy, but the design of an emulator is mutch more complicated, without an OS in the background. Also DH is only about ~1fps faster, than running under Linux, so its a waste of time.
Dont believe me ?
Take a look to the mame gp32 port, and look, how long it took to port it to the gp32.
AND it is an very old code base, about 5 years old. It is not possible to run mame 1.0 on the gp32, couse the lack of an OS.

Problem5:
You dont need an second CPU for Homebrew !!!

Problem6:
ALL current available games/emus cores, are single cores.
Have look to the Windows world, and see How mutch more fps you get, changing your Athlon64 to an Athlon64x2, dual core cpu.
It will speed up nothing !
You must rewrite the code... -> its damm hard --> nobody wants to waste 6MONTH in rewriting code. To get ONE Emulator ~5fps faster. (if the emulator is now running with 10fps, the second core could give it 15fps)

Seriously, you've turned into a nutcase about this console. Okay, we all know you couldn't set up your console due to lack of being able to get processors. STFU already! Just because your console is vapourware at best, doesn't mean you have to slag off everything about the GP2x.
You may be a respected coder, but you're like a stuck record.
 
Last edited by a moderator:
Seriously, you've turned into a nutcase about this console. Okay, we all know you couldn't set up your console due to lack of being able to get processors. STFU already! Just because your console is vapourware at best, doesn't mean you have to slag off everything about the GP2x.
You may be a respected coder, but you're like a stuck record.

If you cant understand the truth, youre in a long row with others...

I do respect the gp2x, i never wrote something against it, but if someone ask, what about the second cpu, dont you think i should tell him the truth ?

If youre a good coder, why not show me, how easy it is to speed up snes emulation on the gp2x, using the second useless (in my opinion) core ?

Do you think, i write the gp2x down, couse in the past one of my projects crashed ?
Youre so wrong...

I write the truth about the gp2x, couse i do understand, how hard it is, writing software for a system, without any OS support. (The second core does not have any OS support). Tell me, from youre expirience of low level coding, your opinion about the second core ?

To clear some things up, i like the gp2x, its a nice handy format, and its fast (200Mhz). If someone would ask me, what to buy, get a gp2x, wait some more Month, and play 100+ emus and homebrew.

This discussion was about the second core, not about setting the gp2x to dark.
 
You know how the GBA on the gp32 emulated the GBA by "tricking" the roms on running on the arm processor?

Wouldn't that be even better with the 2 processors in the GP2x? Like but the main processor on one CPU and then other chips on the other?

Just a passing thought.
 
Phil posted on Dec 2 2005 at 09:01 PM said:
You know how the GBA on the gp32 emulated the GBA by "tricking" the roms on running on the arm processor?

Wouldn't that be even better with the 2 processors in the GP2x? Like but the main processor on one CPU and then other chips on the other?

Just a passing thought.

They figured out a cool way, how to run gba stuff on the gp32.

They do not emulate the cpu, they run the GBA cpu stuff directly on the gp32 cpu, without emulating the cpu core, they only emulate the missing 2D chip, and other GBA parts in software.

This is a cool example, of how to use 2 cpu cores, emulate the missing stuff on core 1, run the GBA cpu, directly on core 2.

Problem 1: The project is dead, no updates planed... :(
Problem 2: Needs large rewrites of the Emulator core... ( takes time)
Problem 3: This is an hardcore emulator, only very few coders do know, how to handle this kind of stuff. ( you need asm skills + GBA hardware skills )

comes to final Problem 4:
Where are the coders, who wants to do this ?
 
Last edited by a moderator:
Whats the point of the 2nd cpu then? Most ports will run at full speed anyway, in my eyes i only see it usefull for PSX or GBA (the PSX seems a bit unreasonable since gp2x doesnt seem to be powerfull enough) , even then doesnt the person have to do all the code from scratch?

Anyway to get to the point... Now that I understand it and my expectatons are lowered :)
 
This all seems alittle dissapointing on the emu front. But the GP2x makes use of the second Cpu arm when running movies though right? so its not a complete waste. And prehaps some genius is working on a dual-core gaming solution right now... Time brings the answer. Lets see where we are in 3 months.
 
Saxton_boy posted on Dec 2 2005 at 01:35 PM said:
This all seems alittle dissapointing on the emu front. But the GP2x makes use of the second Cpu arm when running movies though right? so its not a complete waste. And prehaps some genius is working on a dual-core gaming solution right now... Time brings the answer. Lets see where we are in 3 months.

Tvs run at like 10mhz or something like that.. And they run movies etc very good. So the 200mhz is all it needs to run movies.

Hell even the gba which is like 16mhz runs movies and stuff at fullspeed. :p
 
Last edited by a moderator:
Drak posted on Dec 2 2005 at 09:21 PM said:
Whats the point of the 2nd cpu then? Most ports will run at full speed anyway, in my eyes i only see it usefull for PSX or GBA (the PSX seems a bit unreasonable since gp2x doesnt seem to be powerfull enough) , even then doesnt the person have to do all the code from scratch?

Anyway to get to the point... Now that I understand it and my expectatons are lowered :)


PSX @ playable speed, is a nice dream...
But GBA playable (or full speed) is possible, by using the second core. You mean, only rewrite all stuff, from scratch ? Did you ever wrote an emulator ? From scratch ?
99.9999% of all coders here, would never start sutch a project. TOO BIG.
The GBA emulator we are talking about was a proof of concept. It was possible to run some basic Homebrew GBA programms on the emulator, but not eaven one commercial one was running. So first you must add more GBA features, and then rewrite some parts, to use the second core. I think using a working GBA emulator, and then rewrite some parts, would come to a faster result...
 
Last edited by a moderator:
mr.mirko posted on Dec 2 2005 at 01:40 PM said:
Drak posted on Dec 2 2005 at 09:21 PM said:
Whats the point of the 2nd cpu then? Most ports will run at full speed anyway, in my eyes i only see it usefull for PSX or GBA (the PSX seems a bit unreasonable since gp2x doesnt seem to be powerfull enough) , even then doesnt the person have to do all the code from scratch?

Anyway to get to the point... Now that I understand it and  my expectatons are lowered :)


PSX @ playable speed, is a nice dream...
But GBA playable (or full speed) is possible, by using the second core. You mean, only rewrite all stuff, from scratch ? Did you ever wrote an emulator ? From scratch ?
99.9999% of all coders here, would never start sutch a project. TOO BIG.
The GBA emulator we are talking about was a proof of concept. It was possible to run some basic Homebrew GBA programms on the emulator, but not eaven one commercial one was running. So first you must add more GBA features, and then rewrite some parts, to use the second core. I think using a working GBA emulator, and then rewrite some parts, would come to a faster result...

Yeah I know thats what i meant sorry :p I dont mean make a whole new one from scrath, just the pieces that would have to use it :)
 
Last edited by a moderator:
Saxton_boy posted on Dec 2 2005 at 09:35 PM said:
This all seems alittle dissapointing on the emu front. But the GP2x makes use of the second Cpu arm when running movies though right? so its not a complete waste. And prehaps some genius is working on a dual-core gaming solution right now... Time brings the answer. Lets see where we are in 3 months.

The used mplayer is modified to use the second core, to decode divx stuff.

So for divx playback the second core is a must have, it could also work without a second core (the gp32 can playback divx movies fullspeed).
 
Last edited by a moderator:
Drak posted on Dec 2 2005 at 09:39 PM said:
Saxton_boy posted on Dec 2 2005 at 01:35 PM said:
This all seems alittle dissapointing on the emu front. But the GP2x makes use of the second Cpu arm when running movies though right? so its not a complete waste. And prehaps some genius is working on a dual-core gaming solution right now... Time brings the answer. Lets see where we are in 3 months.

Tvs run at like 10mhz or something like that.. And they run movies etc very good. So the 200mhz is all it needs to run movies.

Hell even the gba which is like 16mhz runs movies and stuff at fullspeed. :p

IF you mean with TVs -> DVD players, youre right, they run with very slow CPUs(60Mhz), and can playback divx and mpeg2. BUT they are using Hardware custom Chips to do this. The gp2x must decode all in Software.
 
Last edited by a moderator:
Squidge posted on Dec 3 2005 at 05:18 AM said:
The 2nd CPU can, and always has been, usable. The fact is what to use it for.

Don't forget both processors can't access the memory bus at the same time, and since Linux can't use both processors, you need to use a different compiler to code for the second processor than for the first (unless your program only runs in HH-mode of course).

This also means that the only way of sharing information is through memory and some kind of semaphore system as the processors are completely seperate.

I'm quite happy to code with the 2nd CPU. But I was under the assumption that each CPU could access the mem bus at the same time, expect they were not allowed to access the same block at the same time. So you would partition the memory at the start of your app.

If they can't use the bus at the same time, they would be useless. Like tag-team CPUs. Without sharing the memory bus, I can think of only a few situations were a CPU can run for a long time without needing more memory then the tiny cache.
 
Last edited by a moderator:
Josquius posted on Dec 2 2005 at 09:42 PM said:
Linux can't use them both?
Why on Earth didn't they use a OS that could then :blink:

The cpu, inside the gp2x, is not a real dual core cpu.
So it does not depend on what OS (linux/winCE) you are using. The OS can never use the second CPU.

The second core, is more like a custom chip.

Every Coder, must take care of the second core by himself, if he wants to use it. And thats why it is not so easy to write stuff, using 2 cores.
 
Last edited by a moderator:
so, from what most of you seem to be saying the second core is useless and should be ignored completly, well. i understand that recoding stuff is hard and all that but if its there there has to be SOME use for it, if there really isnt then figure out some way to disable it, but then you would have to do mre recoding to make the mplayer NOT use the secnd core, would save some battery life tho, wouldnt it? kind of stupid for gph to put in a second 200mhz core if all it is used for is decoding divx and has no real uses otherwise. thats what i get from what you are all saying, i agree to some point i suppose
 
triton posted on Dec 2 2005 at 09:56 PM said:
so, from what most of you seem to be saying the second core is useless and should be ignored completly, well. i understand that recoding stuff is hard and all that but if its there there has to be SOME use for it, if there really isnt then figure out some way to disable it, but then you would have to do mre recoding to make the mplayer NOT use the secnd core, would save some battery life tho, wouldnt it? kind of stupid for gph to put in a second 200mhz core if all it is used for is decoding divx and has no real uses otherwise. thats what i get from what you are all saying, i agree to some point i suppose

To be honest, i cant understand, why they are using this cpu. There is only one explanation, it is damm cheap.
You can use the second core, for some situations, like decoding divx. But if you want to use it for some more...
 
Last edited by a moderator:
Back
Top