Beta Mupen64Plus


Here´s my file. Hope it helps.

in fork!
mountpoint: /media/mmcblk0p1
/usr/pandora/scripts/pnd_run.sh: line 120: [: !: integer expression expected
not mounted on loop yet, doing so
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
Filetype is Squashfs
sudo mount -t squashfs /dev/loop4 /mnt/pnd/mupen64plus-r1
mounting union!
Filesystem is vfat

(mupen64plus:2454): Gtk-CRITICAL **: gtk_frame_set_label_widget: assertion `label_widget == NULL || label_widget->parent == NULL' failed

(mupen64plus:2454): Gtk-CRITICAL **: gtk_frame_set_label_widget: assertion `label_widget == NULL || label_widget->parent == NULL' failed

(mupen64plus:2454): Gtk-CRITICAL **: gtk_frame_set_label_widget: assertion `label_widget == NULL || label_widget->parent == NULL' failed
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| http://code.google.com/p/mupen64plus/
Version win-devel

Config Dir: ./config/
Install Dir: ./
Plugin Dir: ./plugins/

Could not open cachefile ./config/rombrowser.cache
Rescanning rom cache.
Rom cache up to date. 0 ROMs.
Compression: Zip
Imagetype: .z64 (native)
Rom size: 8388608 bytes (or 8 Mb or 64 Megabits)
MD5: 20B854B239203BAF6C961B850A4A51A2
80 37 12 40
ClockRate = f
Version: 1444
CRC: 635a2bff 8b022326
Name: SUPER MARIO 64
Manufacturer: Nintendo
Cartridge_ID: 4d53
Country: USA
PC = 80246000
EEPROM type: 0
init timer!
[gles2N64]: Couldn't open config file './config/gles2n64.conf' for reading: No such file or directory
[gles2N64]: Attempting to write new Config
[ppsp_input]: Init. Controllers!
[ppsp_input]: Starting up input driver!
[ppsp_input]: loading config
N64 ANALOG, ANALOG LEFT mapped to 0 with velocity 0.000000
N64 DPAD UP, BUTTON DPAD UP type 1 mapped to 103 with threshold 0
N64 DPAD DOWN, BUTTON DPAD DOWN type 1 mapped to 108 with threshold 0
N64 DPAD LEFT, BUTTON DPAD LEFT type 1 mapped to 105 with threshold 0
N64 DPAD RIGHT, BUTTON DPAD RIGHT type 1 mapped to 106 with threshold 0
N64 A, BUTTON RIGHT type 1 mapped to 107 with threshold 0
N64 B, BUTTON DOWN type 1 mapped to 109 with threshold 0
N64 L, KBOARD P type 2 mapped to 25 with threshold 0
N64 R, BUTTON R type 1 mapped to 97 with threshold 0
N64 Z, BUTTON L type 1 mapped to 54 with threshold 0
N64 C UP, ANALOG RIGHT UP type 0 mapped to 132 with threshold 64
N64 C DOWN, ANALOG RIGHT DOWN type 0 mapped to 133 with threshold 64
N64 C LEFT, ANALOG RIGHT LEFT type 0 mapped to 134 with threshold 64
N64 C RIGHT, ANALOG RIGHT RIGHT type 0 mapped to 135 with threshold 64
N64 START, BUTTON START type 1 mapped to 56 with threshold 0
EXIT EMULATOR, BUTTON MENU type 1 mapped to 139 with threshold 0
memory initialized
[gles2n64]: Starting X11 Window
[gles2n64]: EGL Context Creation
[gles2n64]: Generate Default Shader Program.
[gles2n64]: Create offscreen framebuffer.
[gles2n64]: Width: 400 Height:240
[gles2n64]: Depth Size: 24
[gles2n64]: Color Buffer Size: 16
[gles2n64]: Enable Runfast...
=============================================================
Vertex Shader:
=============================================================

attribute highp vec4 aPosition;
attribute lowp vec4 aColor;
attribute highp vec2 aTexCoord0;
attribute highp vec2 aTexCoord1;

uniform bool uEnableFog;
uniform float uFogMultiplier, uFogOffset;
uniform float uRenderState;

uniform mediump vec2 uTexScale;
uniform mediump vec2 uTexOffset[2];
uniform mediump vec2 uCacheShiftScale[2];
uniform mediump vec2 uCacheScale[2];
uniform mediump vec2 uCacheOffset[2];

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
gl_Position = aPosition;
vShadeColor = aColor;

if (uRenderState == 1.0)
{
vTexCoord0 = (aTexCoord0 * (uTexScale[0] *
uCacheShiftScale[0]) + (uCacheOffset[0] -
uTexOffset[0])) * uCacheScale[0];
vTexCoord1 = (aTexCoord0 * (uTexScale[1] *
uCacheShiftScale[1]) + (uCacheOffset[1] -
uTexOffset[1])) * uCacheScale[1];
}
else
{
vTexCoord0 = aTexCoord0;
vTexCoord1 = aTexCoord1;
}

}

=============================================================
=============================================================
Combine=fffffffffcf279 flags=0
Num=1 usesT0=1 usesT1=0 usesCol=0
=============================================================

uniform sampler2D uTex0;
uniform sampler2D uTex1;
uniform lowp vec4 uEnvColor;
uniform lowp vec4 uPrimColor;
uniform lowp vec4 uFogColor;
uniform highp float uAlphaRef;
uniform lowp float uPrimLODFrac;

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
lowp vec4 lFragColor;
lowp vec4 lTex0 = texture2D(uTex0, vTexCoord0);
lFragColor.rgb = (vec3(0.0) - vec3(0.0)) * vec3(0.0) + lTex0.rgb;
lFragColor.a = (0.0 - 0.0) * 0.0 + lTex0.a;
gl_FragColor = lFragColor;
}

=============================================================
=============================================================
Combine=fffffffffe7d3e flags=0
Num=2 usesT0=0 usesT1=0 usesCol=1
=============================================================

uniform sampler2D uTex0;
uniform sampler2D uTex1;
uniform lowp vec4 uEnvColor;
uniform lowp vec4 uPrimColor;
uniform lowp vec4 uFogColor;
uniform highp float uAlphaRef;
uniform lowp float uPrimLODFrac;

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
lowp vec4 lFragColor;
lFragColor.rgb = (vec3(0.0) - vec3(0.0)) * vec3(0.0) + vShadeColor.rgb;
lFragColor.a = (0.0 - 0.0) * 0.0 + 1.0;
gl_FragColor = lFragColor;
}

=============================================================
READ SCREEN!
Starting r4300 emulator
R4300 Core mode: Dynamic Recompiler
Init new dynarec
fps = 0.200000
average shader changes per frame = 0.000000
Read error from event!
Read error from event!
fps = 0.400000
average shader changes per frame = 0.000000
Read error from event!
Read error from event!
fps = 0.600000
average shader changes per frame = 0.000000
Read error from event!
Read error from event!
=============================================================
Combine=127e24fffff9fc flags=0
Num=3 usesT0=1 usesT1=0 usesCol=1
=============================================================

uniform sampler2D uTex0;
uniform sampler2D uTex1;
uniform lowp vec4 uEnvColor;
uniform lowp vec4 uPrimColor;
uniform lowp vec4 uFogColor;
uniform highp float uAlphaRef;
uniform lowp float uPrimLODFrac;

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
lowp vec4 lFragColor;
lowp vec4 lTex0 = texture2D(uTex0, vTexCoord0);
lFragColor.rgb = (lTex0.rgb - vec3(0.0)) * vShadeColor.rgb + vec3(0.0);
lFragColor.a = (0.0 - 0.0) * 0.0 + vShadeColor.a;
gl_FragColor = lFragColor;
}

=============================================================
=============================================================
Combine=fffffffffe793c flags=0
Num=4 usesT0=0 usesT1=0 usesCol=1
=============================================================

uniform sampler2D uTex0;
uniform sampler2D uTex1;
uniform lowp vec4 uEnvColor;
uniform lowp vec4 uPrimColor;
uniform lowp vec4 uFogColor;
uniform highp float uAlphaRef;
uniform lowp float uPrimLODFrac;

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
lowp vec4 lFragColor;
lFragColor.rgb = (vec3(0.0) - vec3(0.0)) * vec3(0.0) + vShadeColor.rgb;
lFragColor.a = (0.0 - 0.0) * 0.0 + vShadeColor.a;
gl_FragColor = lFragColor;
}

=============================================================
=============================================================
Combine=fffffffffcfa7d flags=0
Num=5 usesT0=1 usesT1=0 usesCol=0
=============================================================

uniform sampler2D uTex0;
uniform sampler2D uTex1;
uniform lowp vec4 uEnvColor;
uniform lowp vec4 uPrimColor;
uniform lowp vec4 uFogColor;
uniform highp float uAlphaRef;
uniform lowp float uPrimLODFrac;

varying lowp float vFactor;
varying lowp vec4 vShadeColor;
varying mediump vec2 vTexCoord0;
varying mediump vec2 vTexCoord1;

void main()
{
lowp vec4 lFragColor;
lowp vec4 lTex0 = texture2D(uTex0, vTexCoord0);
lFragColor.rgb = (vec3(0.0) - vec3(0.0)) * vec3(0.0) + lTex0.rgb;
lFragColor.a = (0.0 - 0.0) * 0.0 + uEnvColor.a;
gl_FragColor = lFragColor;
}

=============================================================
././run.sh: line 23: 2454 Killed ./mupen64plus
app exited
rmdir: failed to remove `/mnt/utmp/mupen64plus-r1': Device or resource busy
rm: cannot remove `/mnt/utmp/mupen64plus-r1': Is a directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/mupen64plus-r1/.wh..wh.plnk': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/mupen64plus-r1/.wh..wh..tmp': No such file or directory
rmdir: failed to remove `/media/mmcblk0p1/pandora/appdata/mupen64plus-r1/': Directory not empty
cleanup done
 
I think its just the ppsp_input read errors causing the problem. Probably shouldn't have removed the sleeps. I'll upload a new version when i get a chance (I'm at work :ph34r: ).

EDIT: It wouldn't surprise me if its because your nubs are set to be the mouse. Try setting them to joysticks before starting mupen.
 
Adventus said:
I think its just the ppsp_input read errors causing the problem. Probably shouldn't have removed the sleeps. I'll upload a new version when i get a chance (I'm at work :ph34r: ).

EDIT: It wouldn't surprise me if its because your nubs are set to be the mouse. Try setting them to joysticks before starting mupen.

How do I change that?
 
Last edited by a moderator:
Go Settings->Nubs then a dialog box will open you'll want to go Configure Left nub->Change Nub Mode->Use the nub as joystick (then cancel to exit).... do the same with the Right nub. I'm 90% sure this is the problem, because when ppsp_input fails to read a nub it waits for a second making it slow. I'm trying to fix this as we speak.
 
PokeParadox said:
Oh wow... Well I also have Nintenslow 64 here... I thought that some how it was working in interpreter mode, but nope it's using the dynarec... I also had to tweak the GFX to use 640x480 and the non-scaled output... but still SLOW. I means really really slow. I don't know what went wrong here. It's like the GP2X trying to do N64...
It won't work at all if you set interpreter mode. That's one of the things I need to fix...

As for GP2X trying to do N64, I did a test build of the dynarec for ARMv5, and it seems to work fine (just slower). GP2X doesn't have enough RAM to run it, but theoretically it could work on the Caanoo if there was a compatible graphics plugin.

Adventus said:
I think its just the ppsp_input read errors causing the problem. Probably shouldn't have removed the sleeps. I'll upload a new version when i get a chance (I'm at work :ph34r: ).
Please remember to include a proper source link when you upload the new version, including the source code to gles2n64 and ppsp-input.
 
Last edited by a moderator:
Please remember to include a proper source link when you upload the new version, including the source code to gles2n64 and ppsp-input.
I included it in the readme, on EDs archive its a bit hard linking to multiple places.... so i just linked the most important. I'll just link to this post when i update the archive.

Here's the fixed PND: http://gles2n64.googlecode.com/files/mupen64plus-r1b2-fixed.pnd

After some confusion, I just reverted back to the old method of setting the nubs to joysticks. So you'll need to use the touchscreen in the GUI. For some reason doing: system("echo absolute > /proc/pandora/nub0/mode") doesn't want to work.

Source Code:
- dynarec/mupen64plus: http://bunnitude.com/ari64/mupen64plus-arm-20100627.tar.gz
- gles2n64: http://code.google.com/p/gles2n64/
- ppsp_input: http://code.google.com/p/ppsp-input/

EDIT: If you have trouble, the first thing you should try is delete-ing the gles2n64.conf in the mupen64plus-r1/config appdata directory, the new plugin may not be fully compatible (i'm pretty sure setting "update mode=1" will fix the problem though).
 
Exophase said:
Right now a ton of CPU time is being wasted churning around in the drivers. Once the number of draw calls are reduced this should improve a lot.

Sounds like something we could use the bountys for? I'm assuming thats a long, boring, tedious job?
 
Last edited by a moderator:
I'm just seeing a black screen with this, when I kill it I see the screen flash for a second and if I enable audio I can hear it. Is it maybe not running the opfbapp (or whatever it's called)?

Nevermind, I'm an idiot and needed to delete the old appdata config folder...
 
Hooka said:
I'm just seeing a black screen with this, when I kill it I see the screen flash for a second and if I enable audio I can hear it. Is it maybe not running the opfbapp (or whatever it's called)?
First thing you probably want to do is remove gles2n64.conf in /pandora/appdata/mupen64plus-r1. If that doesn't fix it, which game are you trying? It will take a few seconds longer to load now that i put the sleeps back into ppsp_input.... but i tried it again (redownloaded from the link) and it seemed to work.
 
Last edited by a moderator:
I downloaded the latest version from the appstore a few minutes ago and ran it. When I selected a rom, the screen stayed black, only the mousecursor was visible.
Then I was not able to do anything so I rebooted with the Pandorabutton+powerswitch.
Now when I restart the Pandora, it shows the bootlogo and when it should login to X it freezes and gives me a blinking white underscore in the top left corner of the screen.
Now I can't do anything.

Please help!

I deleted the appdata folder completely before starting the app.

Now I had to reflash.
 
mcobit said:
I downloaded the latest version from the appstore a few minutes ago and ran it. When I selected a rom, the screen stayed black, only the mousecursor was visible.
Then I was not able to do anything so I rebooted with the Pandorabutton+powerswitch.
Now when I restart the Pandora, it shows the bootlogo and when it should login to X it freezes and gives me a blinking white underscore in the top left corner of the screen.
Now I can't do anything.

Please help!
EDIT: If you have trouble, the first thing you should try is delete-ing the gles2n64.conf in the mupen64plus-r1/config appdata directory, the new plugin may not be fully compatible (i'm pretty sure setting "update mode=1" will fix the problem though).
 
Last edited by a moderator:
Adventus said:
mcobit said:
I downloaded the latest version from the appstore a few minutes ago and ran it. When I selected a rom, the screen stayed black, only the mousecursor was visible.
Then I was not able to do anything so I rebooted with the Pandorabutton+powerswitch.
Now when I restart the Pandora, it shows the bootlogo and when it should login to X it freezes and gives me a blinking white underscore in the top left corner of the screen.
Now I can't do anything.

Please help!
EDIT: If you have trouble, the first thing you should try is delete-ing the gles2n64.conf in the mupen64plus-r1/config appdata directory, the new plugin may not be fully compatible (i'm pretty sure setting "update mode=1" will fix the problem though).

First thing I did was boot up Mario 64. ;) I noticed that in the new conf file you had framebuffer scaling enabled. I turned that off so that my Mario would look better. ;) I tried walking, and it was great! ^_^ I went into the castle and could see all of the stars, and was very pleased. ^_^

Great Job Adventus and Ari64! ^_^

I'll probably get around to messing around with the button configs soon enough. Speaking of which, Adventus, would you be able to make it so that you can save game specific button configs for the next release? I know that for me at least, such a feature would be very useful.

*goes off to test compatibility*

EDIT: Only one complaint. It doesn't reset the nubs to mouse mode on exit.

EDIT 2: Update on Compatibility:

Bomberman 64 now freezes the emulator instead of crashing it.

-God Ginrai
 
Last edited by a moderator:
I noticed 1080 doesn't render very good now. It's basically unplayable, only the GUI renders.
Wave Race still has a GUI problem.
Um... and I couldn't seem to look through the telescope on Majora's Mask.

But... the nub sensitivity is awesome!
 
Oh my God! Bomberman 64: Second Attack runs! ^_^ {(U)[!]}

EDIT: Aaaand... As soon as I said that, Story mode froze... <.< EDIT 2: Just came back to Second Attack: It runs great! However, none of the GUI elements show. However they seem to pop into existence when you fully pump up a bomb or when bosses use special attacks. But then they disappear right after again. Oh, and some of Bomberman's animations don't show. Like when he gets up after he was unconscious.

EDIT: Smash Bros. still has that crash on first hit. {(U)[!]}

EDIT: WHOA. Really interesting bug for Star Wars: Shadow of the Empire. {(1.2)(U)[!]} I got to the start screen and then this popped up:

Code:
The core thread recieved a SIGSEGV signal.  This means it tried to access protected memory.  Maybe you have set a wrong ucode for one of the plugins!

Then the emulator freezes with the mouse over the image, able to move around. (You can exit out of that popup, but that's it)

EDIT: Diddy Kong Racing {(M2)(1.1)(U)[!]} still crashes before anything happens.

EDIT: Winback {(U)[!]} just shows a black screen the whole time. I hear something in the background, but I'm not really sure what's going on. :\

EDIT: Twisted Edge {(U)[!]} shows a white screen then crashes.

EDIT: BattleTanx: Global Assault {(U)[!]} freezes the emulator with a black screen.

EDIT: Ocarina of Time looks much better. Got rid of the rupee counter glitch as well as the web glitch.

One thing however, that I noticed in Ocarina of Time and then noticed when I went back to Mario 64 is that the characters seemed to be rendered a little bit lower than they should be. Sometimes I can't see all of Link's and Mario's feet.

-God Ginrai
 
noticed 1080 doesn't render very good now. It's basically unplayable, only the GUI renders.
Setting "frame skip=1" will fix the rendering problems. Its one of the few games that actually supplies a seperate display list for the 3D and GUI elements. This will most likely require a game specific hack.

EDIT: Only one complaint. It doesn't reset the nubs to mouse mode on exit.
I don't understand this, was it like this in the previous release? I'm doing it basically the same.

EDIT: Diddy Kong Racing {(M2)(1.1)(U)[!]} still crashes before anything happens.
I find this strange, it was definitely working in one of the previous releases a few months back.... but it got broke at some point.

One thing however, that I noticed in Ocarina of Time and then noticed when I went back to Mario 64 is that the characters seemed to be rendered a little bit lower than they should be. Sometimes I can't see all of Link's and Mario's feet.
This is related to the Z issue, I have to find a balance between Z fighting and things looking offset.

Wave Race still has a GUI problem.
This is either a Alpha compare problem or a texture loading problem. I'll probably redo some of the texture loading to fit how rice video / glide64 does it. This way i also hope to fix Starcraft 64.

BTW out of the games i've tried, the best playing are:
- Super Mario 64
- Banjo Kazooie
- Ridge Racer 64 (set "enable lighting=0" to show cars).
- F Zero X
- Mario Kart 64
- Mario Party 3 (use "update mode=4")
- LEGO Racers (although it does have a bug where the other players cars disappear)
- Zelda OOT
- 1080 Snowboarding (with "frameskip=1")
- Buck Bumble
- Castlevania Legacy of Darkness
- Hybrid Heaven
- Jet Force Gemini (use "ignore offscreen rendering=1")
- Mega Man 64
- Star Fox 64
- Turok Dinosaur Hunter
- Earthworm Jim 3D
- F1 World Grand Prix II

Most of them are best with "frame skip=2" and "framebuffer enable=1".

Is there any particular game that i should work on getting rendering well?
 
How's sound on OOT, smooth like on Mario 64, or stuttery like in videos from a month or so ago?

Thanks :)
 
Adventus said:
BTW out of the games i've tried, the best playing are:
- games
Most of them are best with "frame skip=2" and "framebuffer enable=1".

Is there any particular game that i should work on getting rendering well?
Can some of the tweaks... be tweaked automatically either per game or via a hackList or something?
 
Last edited by a moderator:
Can some of the tweaks... be tweaked automatically either per game or via a hackList or something?
Not yet, At some point yes. Its just that all this usability programming distracts me from the bigger problems.... like improving performance.
 
Back
Top