2 Players Simultaneusly? -Nds Question


Keen

Still Fresh
Joined
Aug 9, 2009
Messages
39
Hi all,
I have two questions:

1. I know we can connect Pandora to the Tv but, it would be possible to play a emulator game 2 players simultaneously, one with Pandora's pad and the other with the Ps3 bluetooth controller?? With Pandora connected to TV so the screen is not a problem for the players.


2. If we finally get a 100% NDS emulator, it would be possible to play via Wifi with another real NDS?
 
1. Probably, assuming that the emu supports multiple controllers.
However, I don't think the PS3 controller uses regular Bluetooth. The Wii controller should definitely work, though.

2. We're not going to have a 100% perfect emulator for NDS. We'll be lucky to have one that even runs at 50% speed, much less emulating all the wireless doodads.
 
Keen said:
Hi all,
I have two questions:

1. I know we can connect Pandora to the Tv but, it would be possible to play a emulator game 2 players simultaneously, one with Pandora's pad and the other with the Ps3 bluetooth controller?? With Pandora connected to TV so the screen is not a problem for the players.


2. If we finally get a 100% NDS emulator, it would be possible to play via Wifi with another real NDS?

the cpu emulation speed isn't a problem (64Mhz ARM9 -> 600+Mhz ARM Cortex, you don't need to emulate the ARM7 just simulate the IPC), but the DS hardware is insanely complex.
games using "Nintendo Wifi Connection" would be easy to connect with as they use standard internet protocols and are lag tolerant, but the normal DS wifi modes requires fast and accurate timing and not-so-standard packets.

and you could just buy a DS and the games instead of pirating them :angry:
they're still in store and its smaller than a Pandora.
 
Last edited by a moderator:
Stephane Hockenhull said:
the cpu emulation speed isn't a problem (64Mhz ARM9 -> 600+Mhz ARM Cortex, you don't need to emulate the ARM7 just simulate the IPC), but the DS hardware is insanely complex.

Even though commercial games are only allowed to run Nintendo SDK code on the ARM7 it doesn't mean that it's trivial to HLE that. Since this is not code that's on the platform itself there's no guarantee that the different games will use even very similar versions, much less the exact same. Indeed, by my understanding many builds of Nitro exist. An attempt to do this would probably end up in the same dire situation CXBX has.

I wouldn't underestimate the overhead in emulating the ARM9 either. Virtualization has some serious emulation drawbacks and can break badly on some pretty likely cases because of lack of L1 cache coherency. You wouldn't get a full address space in Linux anyway, and some segmentation of the NDS's memory map are smaller than 4KB and would have to be trapped. And emulating aborts through Linux is very slow as well, which is not good for a 3D platform that does a lot of writes to hardware FIFOs and what have you. You'd really want to emulate the memory accesses in software, so I guess you can do the math from here. I'm not saying it's not possible but you make it sound easy.

Of course like you said, there are a lot of other components in the DS - I wouldn't call it insanely complex, but it takes a good amount of CPU just to emulate all of the 2D. The 3D could probably be done acceptably by the SGX, though (assuming we can access its framebuffer directly). The DSP could also be used to help a lot.

Stephane Hockenhull said:
games using "Nintendo Wifi Connection" would be easy to connect with as they use standard internet protocols and are lag tolerant, but the normal DS wifi modes requires fast and accurate timing and not-so-standard packets.

Add to that that DS's WiFi hardware is not really fully understand and no current DS emulator for PC has WiFi emulation.

Stephane Hockenhull said:
and you could just buy a DS and the games instead of pirating them :angry:
they're still in store and its smaller than a Pandora.

Don't assume that just because someone wants to emulate games it makes them a pirate. Emulators can offer a significant number of advantages and people generally prefer to carry around less devices than more. Maybe the person wants to play the DS games he already owns?
 
Last edited by a moderator:
That's what I do... emulate the games I own (well not emulate but use the r4ds to play the roms on official hardware)

I do occasionally check out a game before I own it though...
 
HackModford said:
I do occasionally check out a game before I own it though...
That is what rental stores are for.
 
Last edited by a moderator:
WizardStan said:
HackModford said:
I do occasionally check out a game before I own it though...
That is what rental stores are for.
Not every place has game rental stores. I haven't seen one in Finland for over a decade.
 
Last edited by a moderator:
B-ZaR said:
WizardStan said:
HackModford said:
I do occasionally check out a game before I own it though...
That is what rental stores are for.
Not every place has game rental stores. I haven't seen one in Finland for over a decade.
+1 for Sweden, I guess that TPB has beaten all the competition (not that I contributed to it or anything).
 
Last edited by a moderator:
Exophase said:
Stephane Hockenhull said:
the cpu emulation speed isn't a problem (64Mhz ARM9 -> 600+Mhz ARM Cortex, you don't need to emulate the ARM7 just simulate the IPC), but the DS hardware is insanely complex.

Even though commercial games are only allowed to run Nintendo SDK code on the ARM7 it doesn't mean that it's trivial to HLE that. Since this is not code that's on the platform itself there's no guarantee that the different games will use even very similar versions, much less the exact same. Indeed, by my understanding many builds of Nitro exist. An attempt to do this would probably end up in the same dire situation CXBX has.

I wouldn't underestimate the overhead in emulating the ARM9 either. Virtualization has some serious emulation drawbacks and can break badly on some pretty likely cases because of lack of L1 cache coherency. You wouldn't get a full address space in Linux anyway, and some segmentation of the NDS's memory map are smaller than 4KB and would have to be trapped. And emulating aborts through Linux is very slow as well, which is not good for a 3D platform that does a lot of writes to hardware FIFOs and what have you. You'd really want to emulate the memory accesses in software, so I guess you can do the math from here. I'm not saying it's not possible but you make it sound easy.

Of course like you said, there are a lot of other components in the DS - I wouldn't call it insanely complex, but it takes a good amount of CPU just to emulate all of the 2D. The 3D could probably be done acceptably by the SGX, though (assuming we can access its framebuffer directly). The DSP could also be used to help a lot.

I was not counting on running under Linux for this, or you'd need a kernel module to have fast aborts processing,
nor using OpenGL ES drivers, direct hardware access to the GPU, textures, and framebuffer is needed for rendering 3D and 2D stuff efficiently.
(OpenGL is very bad at texture updates and waste so much ram bandwidth on embedded system)

the Jaguar or Saturn might be the only ones more complex than the DS, not many other consoles have that many circuits/modules, video modes, memory configurations, 2D layers and effects, etc.

I never accessed the 3D hardware FIFO on DS directly, and I doubt many games, if any, do: there's DMA for that.
the command stream is usually written to ram/cache, then cache-flushed, then DMA is started on the buffer, this provides a single point of capture for the 3D geometry side of things for virtualization.

texture memory can be translated on writes/uses and cached, texture memory is rarely accessed due to timing and exclusivity of gpu or cpu access (only approx. 20KB max transfer possible per frame) so that would not be a bottleneck.

there are many revisions of the OS, I don't know how complex the changes there are between revisions in the ARM 9->7 and 7->9 FIFO and interrupt protocol, but its not too hard to do on a case-by-case basis.

THE big problems and likely a show stoppers would be the very efficient video capture and blending on the DS (capture as it renders within the same buffer, SGX has delays)
as well as the hardware toon inking post-processing, 2D tile map+rotations, hblank dma-based (virtualizable) and cpu-based (not so much) video register modifications.
those prevents using only the SGX GPU to render.

if you want compatibility, perfect emulation, and under Linux while it plays nice with other programs that's another story :)
it would be a very broken emulator, but for the games that works, playable speed would be there.
 
Last edited by a moderator:
Stephane Hockenhull said:
Keen said:
Hi all,
I have two questions:

1. I know we can connect Pandora to the Tv but, it would be possible to play a emulator game 2 players simultaneously, one with Pandora's pad and the other with the Ps3 bluetooth controller?? With Pandora connected to TV so the screen is not a problem for the players.


2. If we finally get a 100% NDS emulator, it would be possible to play via Wifi with another real NDS?

the cpu emulation speed isn't a problem (64Mhz ARM9 -> 600+Mhz ARM Cortex, you don't need to emulate the ARM7 just simulate the IPC), but the DS hardware is insanely complex.
games using "Nintendo Wifi Connection" would be easy to connect with as they use standard internet protocols and are lag tolerant, but the normal DS wifi modes requires fast and accurate timing and not-so-standard packets.

and you could just buy a DS and the games instead of pirating them :angry:
they're still in store and its smaller than a Pandora.
 
Last edited by a moderator:
Stephane Hockenhull said:
Keen said:
and you could just buy a DS and the games instead of pirating them :angry:
they're still in store and its smaller than a Pandora.


I just would like to play Mario Kart with my girlfriend... she has the ORIGINAL game.. I am not going to buy a NDS only fot that.
I have spent all my money in Pandora!!
 
Last edited by a moderator:
Keen said:
I just would like to play Mario Kart with my girlfriend... she has the ORIGINAL game.. I am not going to buy a NDS only fot that.
I have spent all my money in Pandora!!
Now that the DSi is out, you can get DS lite for about $50 used off ebay, and the original for even less. I would recommend this route if your intention is to play with your girlfriend; the Pandora isn't likely to have NDS emulation any time soon, and multiplayer wifi will be even longer, if ever.
It's not like you need to buy another copy of the game, just do game download from your girlfriend's to yours.
 
Last edited by a moderator:
Stephane Hockenhull said:
I was not counting on running under Linux for this, or you'd need a kernel module to have fast aborts processing,
nor using OpenGL ES drivers, direct hardware access to the GPU, textures, and framebuffer is needed for rendering 3D and 2D stuff efficiently.
(OpenGL is very bad at texture updates and waste so much ram bandwidth on embedded system)

A kernel module wouldn't give you aborts that are nearly as fast as they'd be if you stole the abort handler altogether. Which isn't necessarily a bad idea, but could cause problems.

You're also crazy if you want to not use Linux on Pandora. I don't think you'll want to develop all of those OMAP35xx device drivers yourself, not to mention filesystem drivers and do everything in a way that won't put you at a performance disadvantage. "Traditional" OpenGL is bad at texture updates, but now there are PBOs and FBOs to address this. I don't know what the performance is like, but any sane implementation would map physically allocated RAM that the GPU accesses directly and you can too (so long as you're careful with cache). And with no Linux you get no 3D no matter what you do.

Stephane Hockenhull said:
the Jaguar or Saturn might be the only ones more complex than the DS, not many other consoles have that many circuits/modules, video modes, memory configurations, 2D layers and effects, etc.

I think you must be pretty unfamiliar with a lot of consoles, because a lot of other things are more complex than that.. you're overwhelmed because of some 2D video modes and a simple 3D accelerator... a lot of consoles have a lot of 2D configurations and effects, look at SNES and PC-FX for starters.

Stephane Hockenhull said:
I never accessed the 3D hardware FIFO on DS directly, and I doubt many games, if any, do: there's DMA for that.
the command stream is usually written to ram/cache, then cache-flushed, then DMA is started on the buffer, this provides a single point of capture for the 3D geometry side of things for virtualization.

Okay, if DMA is used then abort overhead for THAT isn't as big of a concern.

Stephane Hockenhull said:
there are many revisions of the OS, I don't know how complex the changes there are between revisions in the ARM 9->7 and 7->9 FIFO and interrupt protocol, but its not too hard to do on a case-by-case basis.

Obviously, emulating the protocol itself is not what's important, it's the communication being done inside the protocol.

Stephane Hockenhull said:
THE big problems and likely a show stoppers would be the very efficient video capture and blending on the DS (capture as it renders within the same buffer, SGX has delays)

Captures are a frame late on DS, not "as it happens" (technically may only be 48 lines late, but with the way DS games use it it's moot). It just has to be possible to access the SGX framebuffer when it's available.

Stephane Hockenhull said:
as well as the hardware toon inking post-processing

"Toon shading" is just a malformation of paletted textures.

Stephane Hockenhull said:
, 2D tile map+rotations, hblank dma-based (virtualizable) and cpu-based (not so much) video register modifications.
those prevents using only the SGX GPU to render.

Uh, right, which is why I said using the SGX for 3D, please try to keep this straight. The CPU (or DSP) can do the 2D parts. The 2D is MOSTLY similar to GBA's, with just more of it. Maybe you would need 2-3x as much CPU to render it as you would GBA (not always, or even typical, more high ends) but the sub engine doesn't really need to be 60fps for a good majority of games.

Stephane Hockenhull said:
if you want compatibility, perfect emulation, and under Linux while it plays nice with other programs that's another story :)
it would be a very broken emulator, but for the games that works, playable speed would be there.

I'll wait for you to try virtualization then, and fail like the people who have tried it with GBA have when they realize that cache is incompatible with fast instruction RAM. And of course a lot of grittier details. No thanks, I haven't lost hope on a not so very broken emulator having playable speed.
 
Last edited by a moderator:
B-ZaR said:
Not every place has game rental stores. I haven't seen one in Finland for over a decade.

And not every rental store has every game, anyway.
 
Last edited by a moderator:
Pleng said:
B-ZaR said:
Not every place has game rental stores. I haven't seen one in Finland for over a decade.

And not every rental store has every game, anyway.
That's true but I think WizardStan meant the stealing part was bad. I agree with him in that the DS is available today in stores and any downloading or use of current or recent gen games on anything but official hardware is a big no no in terms of right and wrong even if emulation makes it easy to justify theft.

You could scour game review sites and youtube to get a feel for the game and then import it from an overseas retailer or ebay if you must have it. That way those who created the game can get something for all their hard work. :)
 
Last edited by a moderator:
rmm21 said:
That's true but I think WizardStan meant the stealing part was bad. I agree with him in that the DS is available today in stores and any downloading or use of current or recent gen games on anything but official hardware is a big no no in terms of right and wrong even if emulation makes it easy to justify theft.

You could scour game review sites and youtube to get a feel for the game and then import it from an overseas retailer or ebay if you must have it. That way those who created the game can get something for all their hard work. :)

That's fine if you REALLY want the game, but if you think you might like it but are unsure, the only real way to know is by downloading and playing via emulation first. That's what I did back in the GBA days - I'd download a game and try it via emulation, and if I liked it, I'd go and buy it for my GBA. If I didn't, then I just deleted the rom and saved my money for more worthy games.
 
Last edited by a moderator:
Back
Top