Author Topic: Desmume for GCW0 - Proof of Concept  (Read 9450 times)

gameblabla (OP)

  • **
  • Posts: 849
Desmume for GCW0 - Proof of Concept
« on: January 20, 2016, 07:17:48 am »
Hello guys,
i have ported something that might be of your interest...
This port is the work of 2 years... nah just kidding, i ported it in 1 day.

It is a proof of concept so it is not running very fast. (Pokemon Black 2 is running at around 2-5 FPS)

You can download the opk here
Github repo

Of course, without a JIT for MIPS and a OpenGLES renderer,
this will never run fullspeed on GCW0 so don't get your hopes too high.
« Last Edit: January 20, 2016, 09:49:06 pm by gameblabla »

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #1 on: January 20, 2016, 04:41:42 pm »
Congrats on getting it to work. Could you use the N64 port JIT?

Or is that impossible?

zear

  • * Moderator
  • Posts: 2379
Re: Desmume for GCW0 - Proof of Concept
« Reply #2 on: January 20, 2016, 05:50:03 pm »
Congrats on getting it to work. Could you use the N64 port JIT?

Or is that impossible?
They're two different architectures, so on that fact alone it's impossible.

Quickman

  • *
  • Posts: 220
Re: Desmume for GCW0 - Proof of Concept
« Reply #3 on: January 20, 2016, 07:09:18 pm »
 Incredible! Thank you @gameblabla  !
 Would love to play some new super Mario Bros! maybe one day, right? Really cool to see the GCW0 push the limits! :)
Thanks again

gameblabla (OP)

  • **
  • Posts: 849
Re: Desmume for GCW0 - Proof of Concept
« Reply #4 on: January 20, 2016, 09:57:44 pm »
Worked a bit on this,
i have changed the default controls accordingly so now you are able to play your games. (albeit slowly)
I changed the color depth to 16 and enabled the frameskip and set it to 3.

Download Link is the same so you only have to download it again to have the latest version.

Would love to play some new super Mario Bros! maybe one day, right?
You can already ;)
I don't know well this game works though... but i doubt it runs much faster than Pokemon Black 2.

Quote
Congrats on getting it to work. Could you use the N64 port JIT?
Like zear said, this is not how it works.
Nobody in the world except Nebuleon are programming JITs for MIPS and i don't know how to do that.
As for the OpenGL core... i don't have the skills nor the patience to switch it to OpenGLES.

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #5 on: January 20, 2016, 11:58:38 pm »
Mario Kart runs at about 3 FPS :) when a race finally starts, it isn't too bad. If we could get it up to 15 FPS, it might be considered playable :D

RupeeClock

  • *
  • Posts: 199
Re: Desmume for GCW0 - Proof of Concept
« Reply #6 on: January 21, 2016, 01:32:33 am »
That's a pretty neat proof of concept.
Seems like things emulate accurately, albeit slowly. It's slow whether you're trying anything 2D or 3D.

Heck it'll be nice to play some games which may only need one screen.

Albert

  • *
  • Posts: 11
Re: Desmume for GCW0 - Proof of Concept
« Reply #7 on: January 21, 2016, 07:00:14 am »
So I posited this idea in a conversation with Nebuleon, and I'll repeat it here:

How about for emulation of both screens, have it so that the top screen is shown when the GCW is in it's upright orientation. And to switch to the second stylus screen, you would flip the GCW upside down to trigger the gyroscopic sensor to initiate a "stylus" mode that makes use of the joystick and/or DPAD in conjunction with a button to act as the "stylus touch" on the screen.

I haven't tried this emulator out yet, myself. But as soon as I made this idea up, I felt I had to share it here.

gameblabla (OP)

  • **
  • Posts: 849
Re: Desmume for GCW0 - Proof of Concept
« Reply #8 on: January 21, 2016, 10:40:20 am »
So I posited this idea in a conversation with Nebuleon, and I'll repeat it here:
How about for emulation of both screens, have it so that the top screen is shown when the GCW is in it's upright orientation. And to switch to the second stylus screen, you would flip the GCW upside down to trigger the gyroscopic sensor to initiate a "stylus" mode that makes use of the joystick and/or DPAD in conjunction with a button to act as the "stylus touch" on the screen.
I haven't tried this emulator out yet, myself. But as soon as I made this idea up, I felt I had to share it here.
That's not a bad idea, this could work well, thanks for the suggestion.
I will try to implement it as soon as desmume on gcw0 gets faster (which might not happen), i'll try to implement it.

It would have been better if there was something like glshim for GCW0 but i guess it's better to just do a proper OpenGL -> OpenGLES port.

David Knight

  • **
  • Posts: 577
Re: Desmume for GCW0 - Proof of Concept
« Reply #9 on: January 21, 2016, 11:44:25 am »
It would have been better if there was something like glshim for GCW0 but i guess it's better to just do a proper OpenGL -> OpenGLES port.

There's an old video of glshim working on the gcw0 but I've never seen any release or source code.

<a href="https://web.archive.org/web/20190313053425/https://www.youtube.com/watch?v=wZJLspou69E" target="_blank">https://www.youtube.com/watch?v=wZJLspou69E</a>

pcercuei

  • ***
  • Posts: 1429
    • My devblog
Re: Desmume for GCW0 - Proof of Concept
« Reply #10 on: January 21, 2016, 12:07:03 pm »
I tried to build glshim, to integrate it into OpenDingux, but it has build dependencies on X11. I don't know how it was built with our toolchain in the first place.

Aeter

  • *
  • Posts: 322
Re: Desmume for GCW0 - Proof of Concept
« Reply #11 on: January 21, 2016, 03:42:15 pm »
Has anyone tested text heavy, low graphics games like Ace Attorney series, Hotel Dusk, 999, etc.?
Would be great if we could just get these games working decently. 
~cucullus non facit monachum~

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #12 on: January 21, 2016, 03:52:28 pm »
Has anyone tested text heavy, low graphics games like Ace Attorney series, Hotel Dusk, 999, etc.?
Would be great if we could just get these games working decently.

The emulator itself is slow, the games at this point don't matter :) although getting the Ace Attorney series to work would be great

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #13 on: January 21, 2016, 03:59:04 pm »
@gameblabla would it be possible for you to do a quick port of the VirtualJag emulator?

Here: https://icculus.org/virtualjaguar/

I don't know how easy it would be to port, but it uses SDL and the Atari Jaguar is pretty much a 16-bit system :)

Beerman1138

  • *
  • Posts: 160
Re: Desmume for GCW0 - Proof of Concept
« Reply #14 on: January 21, 2016, 07:26:34 pm »
I don't know how easy it would be to port, but it uses SDL and the Atari Jaguar is pretty much a 16-bit system :)

WHAT?!?!?!?!

http://www.cyberroach.com/jaguarcd/pics/true0203.jpg

DO THE MATH!

 ;D

Sorry, had to say/post that.  Carry on. 

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #15 on: January 21, 2016, 07:35:39 pm »
I don't know how easy it would be to port, but it uses SDL and the Atari Jaguar is pretty much a 16-bit system :)

WHAT?!?!?!?!

http://www.cyberroach.com/jaguarcd/pics/true0203.jpg

DO THE MATH!

 ;D

Sorry, had to say/post that.  Carry on.
Tempest 2000 seemed to have been the only game to actually take advantage of the "64 bit" capabilities.

gameblabla (OP)

  • **
  • Posts: 849
Re: Desmume for GCW0 - Proof of Concept
« Reply #16 on: January 21, 2016, 08:41:44 pm »
I don't know how easy it would be to port, but it uses SDL and the Atari Jaguar is pretty much a 16-bit system :)
WHAT?!?!?!?!
http://www.cyberroach.com/jaguarcd/pics/true0203.jpg
DO THE MATH!
 ;D
Sorry, had to say/post that.  Carry on.
He's not that wrong :
The main cpu of the Atari Jaguar is the Motorola 68000, which is 16-bits.
Lots of expensive parts that the main cpu cannot take advantage of.
That and many reasons is why the Jaguar has the worst hardware design i have ever seen.
(The Sega Saturn is pretty close though)

In fact, the 32X is able to push much more polygons than the Jaguar.
I think it was 30,000 polygons per 60 frames versus 15,000.
In my opinion, it would have been better if they just released the Panther instead.

Anyways, Virtual Jaguar requires an OpenGL compliant card and has dependencies to Qt.
(the SDL version is old, deprecated and ran no games properly as far as i know)

ptitseb ported it to the Pandora (using glshim) and it was not really running fullspeed.

So no Virtual Jaguar port for now, i'm focusing on Desmume right now.

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #17 on: January 21, 2016, 08:55:05 pm »
I don't know how easy it would be to port, but it uses SDL and the Atari Jaguar is pretty much a 16-bit system :)
WHAT?!?!?!?!
http://www.cyberroach.com/jaguarcd/pics/true0203.jpg
DO THE MATH!
 ;D
Sorry, had to say/post that.  Carry on.
He's not that wrong :
The main cpu of the Atari Jaguar is the Motorola 68000, which is 16-bits.
Lots of expensive parts that the main cpu cannot take advantage of.
That and many reasons is why the Jaguar has the worst hardware design i have ever seen.
(The Sega Saturn is pretty close though)

In fact, the 32X is able to push much more polygons than the Jaguar.
I think it was 30,000 polygons per 60 frames versus 15,000.
In my opinion, it would have been better if they just released the Panther instead.

Anyways, Virtual Jaguar requires an OpenGL compliant card and has dependencies to Qt.
(the SDL version is old, deprecated and ran no games properly as far as i know)

ptitseb ported it to the Pandora (using glshim) and it was not really running fullspeed.

So no Virtual Jaguar port for now, i'm focusing on Desmume right now.

Okay, thanks :)

gameblabla (OP)

  • **
  • Posts: 849
Re: Desmume for GCW0 - Proof of Concept
« Reply #18 on: January 22, 2016, 09:00:04 pm »
So i have switched the 2D OpenGL core to OpenGLES.
It works but it's just as slow as the libSDL software renderer...

Using a profiler, it seems like most of the cpu time is taken by the interpreter.
Anyone wants to improve the interpreter ?
Or at least loosen its accuracy ?
LOL

The Desmume authors said numerous time to people they have no focus on performence so
i won't even bother asking them for help or even advice...

Seems like it's a dead-end.
« Last Edit: January 22, 2016, 09:01:44 pm by gameblabla »

zhongtiao1

  • *
  • Posts: 246
Re: Desmume for GCW0 - Proof of Concept
« Reply #19 on: January 23, 2016, 01:18:38 am »
So i have switched the 2D OpenGL core to OpenGLES.
It works but it's just as slow as the libSDL software renderer...

Using a profiler, it seems like most of the cpu time is taken by the interpreter.
Anyone wants to improve the interpreter ?
Or at least loosen its accuracy ?
LOL

The Desmume authors said numerous time to people they have no focus on performence so
i won't even bother asking them for help or even advice...

Seems like it's a dead-end.
Darn :(

Now maybe we could get a port of ppsspp? ;) LOL

 

Post a new topic