Virtualization


Near_Kstor

Member
Joined
Oct 2, 2009
Messages
151
Age
36
Location
Brazil
I couldn't find it anywhere, so perhaps someone could clarify this one for me...
Does our ARM Cortex A8 support any form of virtualization?

I usually use Windows (blame me), but all the coding is done in Ubuntu, which I run through VMWare. The thing is: Ubuntu is not emulated, that would consume a lot of resources from the PC and would be slow and SUCK
Virtualization takes advantage on the fact that the desired OS runs on x86 as well, and it does run very smoothly.

My point is... With Virtualization Enabled, we could try a new approach to the Nintendo DS Emulation... Nintendo DS Virtualization. I believe THAT could easily run on the 600MHz Cortex A8?


Just adding here... Nintendo DS have an ARM7 at 33MHz and an ARM9 at 66MHz... oh, and 4MB RAM
 
Near-kun said:
I couldn't find it anywhere, so perhaps someone could clarify this one for me...
Does our ARM Cortex A8 support any form of virtualization?
No, but it would be possible to use a dynamic recompiler, like WMWare does.

There are many other problems with DS emulation besides this.
 
Last edited by a moderator:
Some parts of the DS hardware aren't documented at all, and Nintendo have some special hardware for 3D acceleration I believe.

And ... Google is your friend ;) Search for "site:www.gp32x.de Pandora DS emulator" minus the quotes. Specifically look out for Exophases posts ;)
 
Last edited by a moderator:
wtf??

Virtualization is when you use one hardware architecture to run a virtual machine of the same architecture, the DS is totally different, has two processors, etc.

It's basically the same as emulation, but on a higher level for identical host / guest architectures. The Pandora can't magically virtualize the DS, because they are not the same whatsoever. Well, maybe they're both ARM, but the DS has two ARMs and a whole bunch of other stuff.

It doesn't make any sense.
 
MDave said:
Some parts of the DS hardware aren't documented at all, and Nintendo have some special hardware for 3D acceleration I believe.

And ... Google is your friend ;) Search for "site:www.gp32x.de Pandora DS emulator" minus the quotes. Specifically look out for Exophases posts ;)

Thanks, I really didn't feel like explaining yet again.
 
Last edited by a moderator:
lulzfish said:
wtf??

Virtualization is when you use one hardware architecture to run a virtual machine of the same architecture, the DS is totally different, has two processors, etc.

It's basically the same as emulation, but on a higher level for identical host / guest architectures. The Pandora can't magically virtualize the DS, because they are not the same whatsoever. Well, maybe they're both ARM, but the DS has two ARMs and a whole bunch of other stuff.

It doesn't make any sense.


I thought the arm7 core was only used for playing gba games ?
 
Last edited by a moderator:
w1ll14m said:
I thought the arm7 core was only used for playing gba games ?

No, every commercial game uses it. You can't access the touchscreen, X/Y buttons, or generate sound w/o it.
 
Last edited by a moderator:
Exophase said:
w1ll14m said:
I thought the arm7 core was only used for playing gba games ?

No, every commercial game uses it. You can't access the touchscreen, X/Y buttons, or generate sound w/o it.

Does every NDS game comes with its code for ARM7 ? Because if it's the same code for every game HLE could be used…
 
Last edited by a moderator:
Ayla said:
Does every NDS game comes with its code for ARM7 ? Because if it's the same code for every game HLE could be used…

All NDS games use Nintendo supplied code on ARM7, but it's still compiled with every game. There are likely many different versions of these libraries, and HLE would have to track a pretty complex state machine. It might be possible but it'd be a serious headache, and would also mean that most homebrew wouldn't work. It's worth exploring but good real ARM7 emulation has to be done first in order to reverse engineer the Nintendo code and implement it partially.

NSMB in-game uses about 1m ARM7 instructions per second, so unless the numbers are very different for other games then it's possibly not that big of a deal. Rather than taking a full-on approach to HLEing ARM7 at the IPC level it could be more practical to scan for and recognize only a few particular highly called pieces of code and write hand optimized versions. Then it wouldn't be used unless it clearly can be and it'd be a ton less work than HLEing the whole processor away like N64 emulation does.
 
Last edited by a moderator:
Back
Top