Author Topic: Mupen64plus technical preview  (Read 17209 times)

Nebuleon (OP)

  • *
  • Posts: 37
Mupen64plus technical preview
« on: November 12, 2015, 08:26:15 am »
Hey guys!

Now that I have your attention... I'd like you guys to test Mupen64plus. (No, this wasn't a bait-and-switch topic.)

Before reading further, please heed Surkow's warnings about this thread in posts #3 and #28. tl;dr Support of games is not guaranteed. Full-speed gameplay is not guaranteed.

It's the result of 2 years of trying things with JIT compilation and finally arriving at a result I like. I'll spare you guys the technical details, but the JIT is much faster than the interpreter at doing its job. There are other jobs to do in an N64 emulator, like emulating the RSP and RDP, and handling video and audio, so while the task of emulating the CPU is much faster, all the other tasks are still running at the same speed, which may not be enough. I'm in the process of cleaning up the one massive commit that I wrote everything into, and writing documentation about the technical details so that interested people may read about everything.

So, while I'm fairly certain the JIT should be compatible with all the games the interpreter is compatible with (which is quite a lot of them), I'm not really able to test all games, so I'd like you guys' help on this, as well as a few more requests at the end of this post.

Here are two builds of Mupen64plus. The first is the highly compatible, but slow, interpreter build. It is the reference implementation that the JIT compiler should run like. The second is the faster JIT compiler build. If it doesn't run a game like the interpreter does, that's a bug.

Interpreter build: https://dl.dropboxusercontent.com/u/106475413/gcw-zero/preview/mupen64plus-interp.opk

JIT build (updated 2015-11-15): https://dl.dropboxusercontent.com/u/106475413/gcw-zero/preview/mupen64plus-alpha-20151115.opk
Source code is at the end of this post.

These are bare emulator builds. The usual gmenu2x file selector allows you to select uncompressed .n64, .v64 or .z64 format ROMs. There is no frontend with which to rewind, save states, modify configuration, or any of that.

When launching a ROM, especially one that is 16 MiB in size or more, please note that the GCW Zero will need to read, hash (for lookups in the ROM database, keyed on the MD5 hash) and byte-swap (the Nintendo 64 is big-endian, and the GCW Zero is little-endian) the ROM. It is a time-consuming task, which contributes to high startup time.

-- Controls --

You should be able to use the following controls to play N64 games:

(GCW Zero button = N64 button)
D-pad, A, B, Start, L Trigger, R Trigger = Same
D-pad = Analog
D-pad = D-pad
Analog = Nothing
Y = Z Trigger
X = C Button Left
Select = (Exit emulator)

The lack of analog nub mapping in this test version is due to mupen64plus-input-sdl not allowing a keyboard and a joystick to be used for the same player, as well as my lack of interest to investigate that due to my test GCW Zero having an analog nub that constantly reads fully up and to the left as soon as it's a little bit off-center, which makes using the analog nub aggravating.

As for the C Buttons, only C Button Left is mapped, because the GCW Zero has insufficient inputs, and A and B are pretty important.

-- My requests to everyone --

  • I'm no good when it comes to frontends. I'd like it if a frontend better than a bare emulator could be built. I would then include the frontend in the OPK if its license allows for that.
  • I'm no good when it comes to 3D and OpenGL (desktop or embedded). The graphics look odd in some games, but if they look as odd on the JIT as they do on the interpreter, I can't do much about that. Perhaps one of you could build gonetz's GlideN64 plugin and see if it's fast enough and compatible with OpenGL ES 2, or help fix it or report bugs if not. And then I could also include that in the OPK.
  • The input mapping may need adjustment per game to fit with the GCW Zero's buttons, of which there are fewer than on a Nintendo 64 controller. That would require per-game configuration in a frontend, similar to how ReGBA does it.
  • With that in mind, please report bugs in the JIT and I'll be happy to investigate them.

Improvements, praise and hate mail all go here! GitHub will be better for JIT bug reports, but they may go here too. Post away!

-- Source code that went into this release --

https://github.com/mupen64plus/mupen64plus-ui-console
https://github.com/Nebuleon/mupen64plus-core/commits/trace-jit-experimental
https://github.com/mupen64plus/mupen64plus-input-sdl
https://github.com/mupen64plus/mupen64plus-audio-sdl
https://github.com/mupen64plus/mupen64plus-rsp-hle
https://github.com/Nebuleon/mupen64plus-video-gles2n64 (this is based on a gles2n64 source dump, itself based on the GLN64 source code)
« Last Edit: November 16, 2015, 12:08:11 am by Nebuleon »
The Cloud is nice, but not if it decides to rain on your parade.

howie_k

  • *
  • Posts: 143
Re: Mupen64plus technical preview
« Reply #1 on: November 12, 2015, 09:32:51 am »
Glad to see you back on the boards, you were sorely missed

thefifthgiant

  • *
  • Posts: 104
Re: Mupen64plus technical preview
« Reply #2 on: November 12, 2015, 01:35:06 pm »
Glad to see you back on the boards, you were sorely missed

First of all, this. It's good to see you again nebuleon!

Secondly, wow! I thought that the possibility of an n64 emulator being worked on was killed off already. This thread will be swarming with posts soon I bet ;)

I'll do some testing when I get home later tonight and report back!

Surkow

  • * Administrator
  • S
  • Posts: 529
Re: Mupen64plus technical preview
« Reply #3 on: November 12, 2015, 02:42:43 pm »
Just as a reminder, although the Mupen64Plus technical preview work is impressive and exciting, end-users should not arrive here with the wrong expectations. Do not ask for support of specific games or if or when games become "faster". It is a work in progress and there is no guarantee of games being playable whatsoever.

Posting about game compatibility is fine, including any bugs you might encounter.

Harteex

  • * Administrator
  • Posts: 709
    • Harteex Productions
Re: Mupen64plus technical preview
« Reply #4 on: November 12, 2015, 05:30:41 pm »
Awesome stuff Neb!

Looking forward to test and play around with later.

Greetdeath

  • *
  • Posts: 26
Re: Mupen64plus technical preview
« Reply #5 on: November 12, 2015, 06:10:14 pm »
Good to see you back!

Tested F-Zero X and Paper Mario, apart from some graphical glitches and weird textures, is impressive how well they run.

Screenshots for the curious:











Fluxchar

  • *
  • Posts: 127
Re: Mupen64plus technical preview
« Reply #6 on: November 12, 2015, 07:16:16 pm »
wow... will do testing when I get home. great to see nebu again

zhongtiao1

Re: Mupen64plus technical preview
« Reply #7 on: November 12, 2015, 07:40:29 pm »
WOW. Great job Nebuleon! And thanks for coming back :)
Will test later today

Quickman

  • *
  • Posts: 220
Re: Mupen64plus technical preview
« Reply #8 on: November 12, 2015, 07:51:28 pm »
 This post made me squeal like a 13-year-old girl !!!

 It's amazing to see the possibility still remains! So exciting, I can't say it enough, this is just so exciting!

 Thank you
 for all of your incredible work Neb!
 if no one thanks you enough, allow me to do so at this exact moment,
thank you x 100,000,000,000,000,000,000,000,000,000 !!!
(I cannot remember how many zeros are in a Googolplex...I think 100, but just know that's what I was going for)

Can't wait to test   :) :) :D

THANK YOU!!
« Last Edit: November 13, 2015, 04:48:32 pm by Quickman »

Quickman

  • *
  • Posts: 220
Re: Mupen64plus technical preview
« Reply #9 on: November 12, 2015, 07:59:53 pm »
 Also if anyone would like to post YouTube video/quick clips of Nintendo 64 working emulation for comparison reasons and speed, I'd love to test and compare with others. Video footage always helps me greatly with bugs and glitches. Either way I'm very excited
And this is huge.

@Greetdeath how would you say your speed was (in percentage %) on the game photos you posted? Which emu build did you go with?
« Last Edit: November 12, 2015, 10:49:26 pm by Quickman »

David Knight

Re: Mupen64plus technical preview
« Reply #10 on: November 12, 2015, 09:25:46 pm »
-- My requests to everyone --

  • I'm no good when it comes to frontends. I'd like it if a frontend better than a bare emulator could be built. I would then include the frontend in the OPK if its license allows for that.
  • I'm no good when it comes to 3D and OpenGL (desktop or embedded). The graphics look odd in some games, but if they look as odd on the JIT as they do on the interpreter, I can't do much about that. Perhaps one of you could build gonetz's GlideN64 plugin and see if it's fast enough and compatible with OpenGL ES 2, or help fix it or report bugs if not. And then I could also include that in the OPK.
  • The input mapping may need adjustment per game to fit with the GCW Zero's buttons, of which there are fewer than on a Nintendo 64 controller. That would require per-game configuration in a frontend, similar to how ReGBA does it.
  • With that in mind, please report bugs in the JIT and I'll be happy to investigate them.

I'll happy help out with coding the frontend, although I'd need help with any graphics assets.

ker

  • **
  • Posts: 538
Re: Mupen64plus technical preview
« Reply #11 on: November 12, 2015, 10:47:59 pm »
Nice to see you again and thank you very much for your work!!

alexei_gp

  • *
  • Posts: 233
Re: Mupen64plus technical preview
« Reply #12 on: November 13, 2015, 12:07:35 am »
Thank you nebuleon for your support, im glad you come back here :3
« Last Edit: November 13, 2015, 12:13:26 am by alexei_gp »

care16la20

Re: Mupen64plus technical preview
« Reply #13 on: November 13, 2015, 01:02:51 am »

Hi, for an alpha version: SUPERB RELEASE

Tried the JIT only with some games and:

- Mario Kart is FULL SPEED on time attack on most of the tracks
- Mario 64 is almost full speed but playable as I saw so far
- Harvest Moon 64 is almost full speed; Totally playable
- Quest 64 seems to be good speed but lacks the analog control so you cant move
- Yoshi Story is full speed but gfx is not good at all
- Cruisin USA stucks on a msg about mem card on the beginning
- Some games like Blast Corps only show the Nintendo logo and dont go further
- Banjo Kazzoie is FULL SPEED on not so large open areas (i was not going to try that one to not being disappointed and BANG !)

Again, superb alpha release Thanksssss
« Last Edit: November 13, 2015, 01:15:06 am by care16la20 »

Quickman

  • *
  • Posts: 220
Re: Mupen64plus technical preview
« Reply #14 on: November 13, 2015, 01:25:49 am »

Hi, for an alpha version: SUPERB RELEASE

Tried the JIT only with some games and:

- Mario Kart is FULL SPEED on time attack on most of the tracks
- Mario 64 is almost full speed but playable as I saw so far
- Harvest Moon 64 is almost full speed; Totally playable
- Quest 64 seems to be good speed but lacks the analog control so you cant move
- Yoshi Story is full speed but gfx is not good at all
- Cruisin USA stucks on a msg about mem card on the beginning
- Some games like Blast Corps only show the Nintendo logo and dont go further
- Banjo Kazzoie is FULL SPEED on not so large open areas (i was not going to try that one to not being disappointed and BANG !)

Again, superb alpha release Thanksssss
@care16la20
 This is so exciting! Thanks for all the feedback! I'll definitely be comparing notes to what I see on this thread.
You guys are the best, thank you so much for all your hard work!
Again, THIS IS SO EXCITING :)

 

Post a new topic