PDA

View Full Version : Could the Dreamcast Emulate the GP32?



wraggster
June 1st, 2004, 22:10
I know the answer is probably no, but id like to ask anyway.

MetaFox
June 1st, 2004, 22:17
I know the answer is probably no, but id like to ask anyway.Yes.

Though as a straight port from PC C code as most people would probably do, it wouldn't end up being anywhere near playable.

Though, as Bleemcast has shown us, if someone was quite familiar with assembly language, and studied the SH4 platform enough to make heavily optimized SH4 assembly code, then it shouldn't be a problem.

No one that I'm aware of who is currently active in the dreamcast development community is at that level, however.

The GP32 is an easier beast to emulate than the Playstation, so one might even get away with having full speed emulation through SH4 ASM code that isn't as well written and optimized, or even through heavily optimized C code (though I doubt that).

Optimized Assembly code will always beat optimized C code, as it is as close to directly talking with the CPU as possible (Assembly language is sent through an assembler, which translates it to machine code [0s and 1s]). C code is sent into a compiler, which basically translates it into assembly, then into machine code. So, the assembly programmer doesn't have that extra step.

The way to get the most speed, of course would be writing directly in machine code - but that is tedious and long - and hard to spot errors. Plus, no human being that I'm aware of has the patience to translate an entire program into 0s and 1s. :P

wraggster
June 1st, 2004, 22:27
The homebrew scene on the GP32 is like ours and theres so much quality, to marry both scenes would be brilliant :)

16Bits
June 1st, 2004, 22:53
The way to get the most speed, of course would be writing directly in machine code - but that is tedious and long - and hard to spot errors.
actually no, assembly are simply a mnemonic representation of machine code, so there would be no gain in speed by writing directly in machine code, it would however, as you stated, be much harder to read.

as for the gp32, from what I remember it can be clocked at anything between 22mhz - 133.5mhz, however, again unless I remember incorrectly the bios defaulted it at 67mhz or something like that, which is in my opinion far to fast for the dreamcast to emulate in anything near full speed, then again I'm making an estimate here based upon my meagre knowledge of the dc.

Christuserloeser
June 1st, 2004, 23:23
A GP32 emulator for DC... That would be a thing *8)

Possible it would be (Bleem!cast proves it somewhat), will take some time until someone actually attempts it...

quzar
June 3rd, 2004, 00:33
its funny i was actually thinking about this earlier today hehe.

BlackAura
June 3rd, 2004, 07:10
It'd be tricky. The thing has a processor that runs between 60MHz and 130MHz, depending on the program running. Emulating a 130MHz CPU on a 200MHz CPU is going to be very difficult, no matter how good you are.

tyrell
June 3rd, 2004, 12:11
What about sending GP32 ARM9 code directly to the DC sound cpu (ARM7) & execute it ? ;) Maybe by first modifying it a little bit before sending it ?

Propeller
June 3rd, 2004, 14:03
ARM7 of the Dreamcast's AICA is 25Mhz.
SH4 of the Dreamcast is 200 Mhz.
ARM9 of the GP32 is 40-200 Mhz.

Mostly all of the decent free software (emulators) for the GP32 usually overclock the system to 133-166 Mhz. So, there's not enough cpu cycles to do a perfect emulation.

Plus, ARM9 has got some "enhanced" asm instructions that cannot be executed on ARM7 of the AICA, so, you'd have to emulate the full set.

I think there's not even a chance to see the DC emulating the GP32.

Propeller

Christuserloeser
June 4th, 2004, 11:26
There was a discussion about the ARM on the last two pages over here (http://www.dcemu.co.uk/cgi-bin/yabb/YaBB.pl?board=dcemu;action=display;num=1082494155; start=105#105)


it is 24mhz on its own, but is overclockable up to 99 (or 100?) but nobody knows if it can actually go up to that speed.

...add some decent auto frameskip and you'll come very close *8)

Not to forget the SH4 and the additional PowerVR with its own 8MB RAM...


Chris

Eric
June 4th, 2004, 20:00
I think the GP32 would be pretty amazing to have emulate on the dreamcast another reason is that GameCube emulates the GameBoyAdvance so now DC is going to do it with GP32 i am glad wraggster asked about this cause i asked someone before but didn't seem to interested in doing it

vipor231
June 5th, 2004, 00:11
i dont see why it cant run it.somebody is emulating a gba on a dreamcast.

BlackAura
June 5th, 2004, 15:27
The GP32 is much more powerful than the GBA (in terms of processor speed). Even if we managed to run GP32 code on the Dreamcast's sound CPU, we'd have another problem: The sound processor can access the sound hardware, and the sound hardware only. That means no video, no CD access, no controller input...

Propeller
June 5th, 2004, 16:44
The idea of emulating a similar processor to the host machine is called "virtualization", and assumes that the host machine is way more powerful than the virtualized guest machine.

For example, you could virtualize an ARM7@25Mhz (more or less, can't be accurate because it's based on code profile) on a ARM7@100Mhz. So, you *can't* virtualize an ARM9@200Mhz. on a ARM7@100Mhz (being so naive) and expect something functional. You can add processing power with the SH4, but that makes no difference to the result. Or moreover, it would add an unexpected and unwanted communication overhead to the emulation.

That, added to what BlackAura said (the MOST important fact that makes it impossible), makes the GP32 emulation something unreachable to the Dreamcast.

Propeller

Christuserloeser
June 6th, 2004, 03:30
So it would have to be fully emulated with the SH4, what makes it a bít pointless since it would be very slow even in SHx ASM, I see...

It might be possible to run a few GP32 games on an GP32 emu 4 DC but not at a really reasonable speed.

That was what I was aiming at but since it wouldn't be that useful to develop an emulator within years that allows only 40% of the GP32 software lib to be played and that only at about an absolute max of 50 - 70% speed :'( we should forget about that...

Wasn't there a GP32 link cable for the DC?

Wouldn't that allow GP32 games to be run at a TV using the DC's video out ::)

Chris

Ian_micheal
June 6th, 2004, 11:58
This is even more far fetched then emulating the amiga at fullspeed on the dreamcast.

Basic know how 166mhz emulated = about 500 mhz need to gain fullspeed aproxx.

No way you could do it.

GP32 in some ways is only just under the dreamcast. Be like the ps2 emulating the dreamcast.

Christuserloeser
June 6th, 2004, 12:21
Be like the ps2 emulating the dreamcast.

:o Okay, now that's really impossible! ;D


Chris

quzar
June 6th, 2004, 20:53
What is the standard clock rate that commercial games use for it? I have seen that it is only 100Mhz. Since the DC has its own emulators, it wouldnt be necessary to play emulators on the emulators so overclocking wouldnt be an issue.

Saoshyant
September 21st, 2004, 21:38
Indeed Quzar (yeah I noticed the thread is old), but most commercial games from GP32 suuuuck. Still, I think this idea should not be dropped. Perfect assembly coding requires a real coder, which probably does not exist around us. Still we might not have a Yuji Naka, but if three of us join together to start it, it might work out. If not, it will be fun and good to learn more experience on how to code for mighty DC. Any questions? (no stupid sarcasms please....)

quzar
September 22nd, 2004, 00:10
Are you a coder? if so then you would know that its not just a matter of teaming up... in fact if none of the people knows sh4 asm, then it would just be the blind leading the blind.

Alexvrb
September 24th, 2004, 12:50
These are the original specs of the CPU:
- Samsung S3C2400X01 (ARM920T core)
- software chosen speed (safe speed: 20MHz to 133MHz, overclock to SDRAM limit: 160MHz, overclock to CPU limit: 186MHz)
- 16KB Data-cache, 16KB Instruction-cache

Some GP32s are able to maintain high speeds better than others. I think you could emulate a GP32 clocked at lower speeds, like 66Mhz. From what I hear, that is the default clock speed too, although that could vary by firmware revision. Most of the stuff that uses higher speeds is probably stuff that should be ported anyway, like emulators. BlackAura, do you know how complicated the video hardware is? Could you use hardware acceleration like you do with Genesis Plus? I'm not asking you to attempt that, I'm just curious. ;)

BlackAura
September 24th, 2004, 20:25
It doesn't look like it even has any video hardware. It seems to be a simple linear framebuffer. If the game doesn't play with the video registers in the middle of a frame, you could probably just copy the framebuffer to the Dreamcast video RAM, and that'd be it.

Alexvrb
September 25th, 2004, 01:13
Wow, oldschool.

Mental2k
September 25th, 2004, 18:22
Instead of proper emulation could it be simulated. (dont kill me if that's stupid)

Saoshyant
September 25th, 2004, 20:05
Sorry Quzar... I forgot not much is known on how to code on sh4 aseembly....

Simulation.... that kills the point doesn't it?

Eric
September 25th, 2004, 20:16
alright alright people calm down he isnt doing no harm

Mental2k
October 1st, 2004, 16:38
Well it's stop me havin to buy a GP32 ;)