Author Topic: Mupen64plus technical preview  (Read 37462 times)

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #40 on: November 14, 2015, 05:11:40 am »
When I first saw this, I didn't think it was really you, Nebuleon. I remember you looking at N64 on the Zero on your github, but never thought it would come this far. This is incredible!

Welcome back to the forums, and excellent progress on this so far! :D

As far as C buttons go, you could try combinations, like SELECT+A = Right C. The C buttons in many games are used for the camera, or to select an item (Ocarina of Time), so that's a possibility.


P.S. Tested games on the JIT build so far.

For Banjo Kazooie, the opening cutscene runs full speed except for very rare frameskips as the camera goes up the stairs into Grunty's Lair. Game itself runs at... mostly full speed. I'd have to say around 40, maybe even 50 FPS by the looks of it. Slight sound skipping. Haven't tried the interpreter build yet. Graphics look perfect, I haven't found any graphical issues other than the sky flashed green for a second in the opening cutscene.

Kirby 64 runs fullspeed, but I can't get past the tutorial video because of the lack of mapped C buttons and/or the analog stick. There's a lot of screwed up graphics though. The text is bundled up in the corner of the screen.

Super Mario 64 runs the same as Banjo Kazooie. Slight slow down, no graphical issues so far.

Bomberman Hero seems to be full speed, but the screen is black. No video.

Ocarina of Time is maybe 20 FPS at the moment. No graphical issues so far.
« Last Edit: November 14, 2015, 05:43:16 am by xXFrostXx »
Dingoonity is the place to be!

fosamax

  • Posts: 321
Re: Mupen64plus technical preview
« Reply #41 on: November 14, 2015, 08:49:45 am »
Welcome back Nebuleon !

Nebuleon (OP)

  • Posts: 37
Re: Mupen64plus technical preview
« Reply #42 on: November 14, 2015, 09:09:29 am »
4. [Super Smash Bros.] Oh, maybe a softlock caused by the JIT. Do you happen to know if it also happens in the interpreter?

Luckily the issue is quite reproducible on the JIT, usually under a minute of play. I gave the interpreter a 5min run and didn't see the issue. I wish I could offer some better debugging info here but GDB isn't showing that the program has stopped anywhere (and the music continues playing, so I guess not)
Congratulations. You've found a bug that exposes a problem that the Intel JIT, which only recompiles the arithmetic and bitwise operations and leaves the rest of the work to the interpreter, also has. My PC doesn't handle a fight with Kirby as Player 1 using the inhaling attack either; it freezes in the exact same way at the exact same place.

If I generate code, for Intel or MIPS, that consists solely of calls to the interpreter, the freeze occurs too.

Because the interpreter's functions are known to be good, this indicates a fundamental fault in the JIT, which means I have to reverify the basic code supporting the MIPS and Intel JITs before reverifying the emitters for N64 memory stores, branches, exceptions and interrupts on MIPS.
« Last Edit: November 15, 2015, 11:15:39 pm by Nebuleon »
The Cloud is nice, but not if it decides to rain on your parade.

lemmywinks

  • Posts: 2834
Re: Mupen64plus technical preview
« Reply #43 on: November 14, 2015, 11:10:32 am »
Ocarina of Time is maybe 20 FPS at the moment. No graphical issues so far.

It runs at 20fps natively, the PAL version is around 17fps.
Handhelds:
GPD Win, GPD XD 64gb, PlayGo, RS-90, 3DS XL, DSi XL, GBA SP, GBBC Clone, Gameboy Pocket, PSP Go
PC:
Medion Erazer, Toshiba Z20t, Dell Mini 9, Psion 5MX
Tons of other old laptops and tablets.....

thefifthgiant

  • Posts: 108
Re: Mupen64plus technical preview
« Reply #44 on: November 14, 2015, 02:32:07 pm »
shoulder buttons weren't working for me.

Neglected to mention this as well, L and R don't seem to be doing anything for me

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #45 on: November 14, 2015, 04:13:49 pm »
It runs at 20fps natively, the PAL version is around 17fps.

Right, I don't know why I was thinking out of 60 FPS.

As far as controls go, what if a control layout like this was used:

Dpad = dpad
Analog = analog (Analog sensitivity is used in some games like Super Mario 64)
A = A
B = B
Start = start
L = L and Z (Since games used one or the other)
R = R
Menu = Power switch up
Select+A = Right C
Select+B = Bottom C
Select+X = Left C
Select+Y = Top C

Since C buttons were only used for camera and items. I mean, in Perfect Dark you could use them to move, but that's one of the few games I believe where they were used for something else. I think this would be a pretty nice layout. For pretty much every game, you do need all of the controls mapped, after all.


I just downloaded the Interpreter for some testing with the JIT. Time to try out Pokemon Snap. :D

Also, would you be willing to keep the gmenu2x selector? I do prefer that over built-in selectors like FCEUX used to have.
« Last Edit: November 14, 2015, 04:19:02 pm by xXFrostXx »
Dingoonity is the place to be!

lemmywinks

  • Posts: 2834
Re: Mupen64plus technical preview
« Reply #46 on: November 14, 2015, 04:44:24 pm »
On Zelda you will need to map at least one C button to a face button for selecting the bow/slingshot as you need to hold it and aim with the analog stick. Same with Goldeneye you will need all four face buttons mapping to C buttons.
Handhelds:
GPD Win, GPD XD 64gb, PlayGo, RS-90, 3DS XL, DSi XL, GBA SP, GBBC Clone, Gameboy Pocket, PSP Go
PC:
Medion Erazer, Toshiba Z20t, Dell Mini 9, Psion 5MX
Tons of other old laptops and tablets.....

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #47 on: November 14, 2015, 05:02:05 pm »
On Zelda you will need to map at least one C button to a face button for selecting the bow/slingshot as you need to hold it and aim with the analog stick. Same with Goldeneye you will need all four face buttons mapping to C buttons.

True. I have no idea then, other than mapping the C buttons to the dpad and having the analog stick as both the analog and dpad, which was mentioned earlier.

On a side note, I tested Banjo-Tooie. On the interpreter it runs fine (minus the extreme lag), but on the JIT build, it runs full speed, but freezes at the N64 logo every time. Audio continues, but video freezes.
Dingoonity is the place to be!

lemmywinks

  • Posts: 2834
Re: Mupen64plus technical preview
« Reply #48 on: November 14, 2015, 06:11:07 pm »
For most games you would be fine mapping them to corresponding dpad buttons and also mapping certain C buttons to X and Y. For N64 you would need to map them to the face buttons, that game hasn't aged well at all though and the control scheme is horrible to begin with.
Handhelds:
GPD Win, GPD XD 64gb, PlayGo, RS-90, 3DS XL, DSi XL, GBA SP, GBBC Clone, Gameboy Pocket, PSP Go
PC:
Medion Erazer, Toshiba Z20t, Dell Mini 9, Psion 5MX
Tons of other old laptops and tablets.....

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #49 on: November 14, 2015, 07:43:49 pm »
For N64 you would need to map them to the face buttons, that game hasn't aged well at all though and the control scheme is horrible to begin with.

You mean map them to the face buttons for Goldeneye?
Dingoonity is the place to be!

thefifthgiant

  • Posts: 108
Re: Mupen64plus technical preview
« Reply #50 on: November 14, 2015, 07:48:57 pm »
Also, would you be willing to keep the gmenu2x selector? I do prefer that over built-in selectors like FCEUX used to have.

I agree with this. I like being able to restrict to a single folder, as well as the uniformity it lends to the emulators that do this.

As far as controls go, the N64 suffers for all sorts of weird control schemes, and I think that the aforementioned idea of allowing for complete per-game mapping by the end user is the best way to accommodate everyone's tastes. I have played several games where the c-buttons are used as normal buttons so flexibility will be key. (there is no way I will want to press a multiple button combo to jump in smash bros. for instance, and I still refuse jump with the analog stick) ;)

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #51 on: November 14, 2015, 07:51:44 pm »
(there is no way I will want to press a multiple button combo to jump in smash bros. for instance, and I still refuse jump with the analog stick) ;)

Right, I forgot about that, too. Haha.
I'm all for the per game configurations, as long as analog is supported. In time, though. Right now I'm just speechless seeing Banjo Kazooie running on my GCW-Zero... at near full speed, too. ;)
Dingoonity is the place to be!

Nebuleon (OP)

  • Posts: 37
Re: Mupen64plus technical preview
« Reply #52 on: November 14, 2015, 07:59:33 pm »
Also, would you be willing to keep the gmenu2x selector? I do prefer that over built-in selectors like FCEUX used to have.

I agree with this. I like being able to restrict to a single folder, as well as the uniformity it lends to the emulators that do this.
Y'all know me, everything I port uses the gmenu2x file selector :) If anything, the frontend would just be an in-game options menu.

As far as controls go, the N64 suffers for all sorts of weird control schemes, and I think that the aforementioned idea of allowing for complete per-game mapping by the end user is the best way to accommodate everyone's tastes. I have played several games where the c-buttons are used as normal buttons so flexibility will be key. (there is no way I will want to press a multiple button combo to jump in smash bros. for instance, and I still refuse jump with the analog stick) ;)
There's no way I'm going to accept Select+ABXY for C Buttons; I don't even think mupen64plus-input-sdl allows configuration files to declare button combinations like that. Maybe in SM64, where you have some time to think about your button inputs and switch the camera around with the C Buttons, but that's the exception, rather than the rule.
The Cloud is nice, but not if it decides to rain on your parade.

xXFrostXx

  • * Former Staff
  • Posts: 234
Re: Mupen64plus technical preview
« Reply #53 on: November 14, 2015, 08:05:20 pm »
There's no way I'm going to accept Select+ABXY for C Buttons; I don't even think mupen64plus-input-sdl allows configuration files to declare button combinations like that. Maybe in SM64, where you have some time to think about your button inputs and switch the camera around with the C Buttons, but that's the exception, rather than the rule.

Yeah, I admit it was a bad idea. Bottom line, per game configs are the best idea.

Neb, would that issue with Banjo-Tooie be a bug?
« Last Edit: November 14, 2015, 08:24:48 pm by xXFrostXx »
Dingoonity is the place to be!

Nebuleon (OP)

  • Posts: 37
Re: Mupen64plus technical preview
« Reply #54 on: November 15, 2015, 12:55:06 am »
I've just found a workaround for the Kirby inhaling attack freeze in Super Smash Bros. It is caused by the interpreter functions for N64 conditional branches, used if the delay slot of a branch is not in the same 4 KiB page as the branch itself, not bothering to revalidate the fallthrough code if the branch condition is false.

Sure enough, Kirby's inhaling attack has a branch at 8013_4FFC (N64 memory address, hex) which falls through to 8013_5004, in the next 4 KiB page, if the condition fails. The game had written new code at 8013_5004, but the new code was not properly revalidated. So I end up running the code that was previously at that address, which the game does not expect, and it continues in a limbo state.

I will have to reverify many parts of the MIPS JIT now. In the meantime, please do keep reporting bugs, except for the one in Super Smash Bros. I will appreciate any other work done in parallel with me. :)
The Cloud is nice, but not if it decides to rain on your parade.

care16la20

  • Posts: 178
Re: Mupen64plus technical preview
« Reply #55 on: November 15, 2015, 02:26:40 pm »
Hi if it helps:

Mario Kart time trial: in the end of a race if you select retry, the swlock happens and requires an reset on the gcw

gameblabla

  • Posts: 1347
Re: Mupen64plus technical preview
« Reply #56 on: November 15, 2015, 02:34:15 pm »
Just curious Nebuleon,
how do you build the source ?

'Cause i can see that you have pushed some commits today and i would like to test them out
but there are lots of git repos and stuff...

zear

  • * Moderator
  • Posts: 2381
Re: Mupen64plus technical preview
« Reply #57 on: November 15, 2015, 02:38:36 pm »
Mario Kart time trial: in the end of a race if you select retry, the swlock happens and requires an reset on the gcw
Power + select or an actual power cut with the reset button?

Nebuleon (OP)

  • Posts: 37
Re: Mupen64plus technical preview
« Reply #58 on: November 15, 2015, 07:14:39 pm »
Just curious Nebuleon,
how do you build the source ?

'Cause i can see that you have pushed some commits today and i would like to test them out
but there are lots of git repos and stuff...
Nebuleon/mupen64plus-build

make -f Makefile.gcw0

I'm still reverifying the code though.
The Cloud is nice, but not if it decides to rain on your parade.

Nebuleon (OP)

  • Posts: 37
Re: Mupen64plus technical preview
« Reply #59 on: November 15, 2015, 11:58:49 pm »
The original post has been updated with a new alpha build. Controls are unmodified.

The following bug reports that existed before this post are now invalid pending re-testing:

  • Super Smash Bros. Kirby inhaling attack freeze
  • Banjo-Tooie intro freeze
  • Mario Kart 64 race retry freeze

The following bug report that existed before this post is still valid, but it also exists in the interpreter:

  • Blast Corps intro freeze

The following bug report that existed before this post is still valid, but it is a bug in the video plugin, gles2n64:

  • World Driver Championship, Segmentation fault during intro
The Cloud is nice, but not if it decides to rain on your parade.

 

Post a new topic