ata4 / angrylion-rdp-plus

A low-level N64 video emulation plugin, based on the pixel-perfect angrylion RDP plugin with some improvements.
155 stars 25 forks source link

[Regression] Angrylion-Plus ignores "Video-General" settings of mupen64plus #109

Closed Jj0YzL5nvJ closed 3 years ago

Jj0YzL5nvJ commented 4 years ago

From r8-31 (5033601b0449bef16f460bd52e5b2d72c6b06556) onwards angrylion-plus ignores window settings like width, height and fullscreen mode. The only way to make the plugin obey is by resizing the window manually. This regression is probably the true cause of the failures described in #106.

r8-30-g576db8c
r8-31-g5033601

To get a standalone build for Windows

ghost commented 4 years ago

I'm glad mupen64plus issues is being acknowledged but to be honest I don't really see any point in using a N64 emulator that is so annoyingly complex to use.

Going back to m64p again which used to be a neat mupen64plus frontend which just worked out of the box is just a shore to use today.

First you have to hunt down older builds of m64p which still supports cxd4 and angrylion-plus, then you have to make unstable Frankenstein builds with newer versions of the plugins and just hope to god it will work.

I can't even get angrylion-plus r8-35 working on it, while r8-12 does.

I'm happy with Project64 for the games I play, recently started playing through Paper Mario again and things just work great. Angrylion-Plus r8-35, Azimer Audio WIP9 and the official N-Rage input plugin along with cxd4 or latest included Project64 RSP is basically all you need.

Paper Mario also runs fullspeed with the highest accuracy settings in angrylion for me so there is literally no issues at all.

As long as the situation with mupen64plus is what it is there's again no point in using it and m64p will never be the same again.

It should be easy and fun setting up and using an emulator, mupen64plus just fails in that department while Project64 makes it a breeze.

Jj0YzL5nvJ commented 3 years ago

Well, from a CLI user's perspective, I find mupen64plus annoyingly simplistic, unnecessarily self-explanatory, and painfully redundant. Example: https://imgur.com/a/NpXxWh7

TOO MUCH SYNTAX!! Even without my GALLIUM_HUD it's too much syntax for what it does:

rm -f /tmp/mupen64plus.cfg
mupen64plus --corelib $HOME/m64p/test/libmupen64plus.so.2.0.0 --plugindir $HOME/m64p/test --datadir $HOME/m64p/test --configdir /tmp --gfx mupen64plus-video-angrylion-plus.so --audio mupen64plus-audio-sdl2.so --rsp mupen64plus-rsp-z64.so --input mupen64plus-input-sdl.so --emumode 0 "/tmp/DOOMSHAREWARE.Z64"
mupen64plus --corelib $HOME/m64p/test/libmupen64plus.so.2.0.0 --plugindir $HOME/m64p/test --datadir $HOME/m64p/test --configdir /tmp --rsp mupen64plus-rsp-cxd4-sse2.so --set Input-SDL-Control1[mode]=0 --set Input-SDL-Control1[mouse]=True --set Input-SDL-Control1[Z\ Trig]="key(122) mouse(1)" --set Input-SDL-Control1[B\ Button]="key(306) mouse(2)" --set Input-SDL-Control1[R\ Trig]="key(99) mouse(3)" --set Video-Angrylion-Plus[Parallel]=True --set Video-Angrylion-Plus[NumWorkers]=4 --set Video-Angrylion-Plus[ViMode]=1 --set Video-Angrylion-Plus[DpCompat]=2 --windowed --resolution 720x540 --emumode 1 "/tmp/Turok 2 (U).z64"
mupen64plus --corelib $HOME/m64p/test/libmupen64plus_new.so.2.0.0 --plugindir $HOME/m64p/test --datadir $HOME/m64p/test --configdir /tmp --audio mupen64plus-audio-sdl.so --set Video-Angrylion-Plus[Parallel]=False --set Video-Angrylion-Plus[NumWorkers]=1 --set Video-Angrylion-Plus[ViMode]=0 --set Video-Angrylion-Plus[DpCompat]=1 --windowed --resolution 800x600 "/tmp/Goldfinger.z64"
mupen64plus --corelib $HOME/m64p/test/libmupen64plus.so.2.0.0 --plugindir $HOME/m64p/test --datadir $HOME/m64p/test --configdir /tmp --rsp mupen64plus-rsp-parallel.so --set Input-SDL-Control1[plugged]=False --set Input-SDL-Control1[mouse]=False --set Video-Angrylion-Plus[Parallel]=True --set Video-Angrylion-Plus[NumWorkers]=0 --set Video-Angrylion-Plus[DpCompat]=0 --windowed --resolution 1280x960 --emumode 2 "/tmp/Zelda - Majora's Mask (U).z64"
mupen64plus --corelib $HOME/m64p/test/libmupen64plus_new.so.2.0.0 --plugindir $HOME/m64p/test --datadir $HOME/m64p/test --configdir /tmp --audio mupen64plus-audio-sdl2.so --set Input-SDL-Control1[mode]=2 --set Video-Angrylion-Plus[ViMode]=1 --fullscreen --resolution 1920x1080 "/tmp/Space Station Silicon Valley (U).z64"

For me, a syntax like this makes more sense:

rm -f /tmp/mupen64plus.cfg
mupen64plus --portable --confdir=/tmp --vo=angrylion-plus --ao=sdl2 --rsp=z64 --in=sdl --mode=0 "/tmp/DOOMSHAREWARE.Z64"
mupen64plus --portable --confdir=/tmp --rsp=cxd4-sse2 --set=Input-SDL-Control1[mode]=0:[mouse]=True:[Z Trig]="key(122) mouse(1)":[B Button]="key(306) mouse(2)":[R Trig]="key(99) mouse(3)" --set=Video-Angrylion-Plus[Parallel]=True:[NumWorkers]=4:[ViMode]=1:[DpCompat]=2 --window --res=720x540 --mode=1 "/tmp/Turok 2 (U).z64"
mupen64plus --portable --core=libmupen64plus_new.so.2.0.0 --confdir=/tmp --ao=sdl --set=Video-Angrylion-Plus[Parallel]=False:[NumWorkers]=1:[ViMode]=0:[DpCompat]=1 --window --res=800x600 "/tmp/Goldfinger.z64"
mupen64plus --portable --confdir=/tmp --rsp=parallel --set=Input-SDL-Control1[plugged]=False:[mouse]=False --set=Video-Angrylion-Plus[Parallel]=True:[NumWorkers]=0:[DpCompat]=0 --window --res=1280x960 --mode=2 "/tmp/Zelda - Majora's Mask (U).z64"
mupen64plus --portable --core=libmupen64plus_new.so.2.0.0 --confdir=/tmp --ao=sdl2 --set=Input-SDL-Control1[mode]=2 --set=Video-Angrylion-Plus[ViMode]=1 --fs --res=1920x1080 "/tmp/Space Station Silicon Valley (U).z64"

If anyone sees mpv's influence on such syntax, it's not a coincidence. I think it's possible to emulate such syntax from a script... hmm... even better, emulate profiles per plugin.

Jj0YzL5nvJ commented 3 years ago

@RokkumanX, can you test with angrylion-plus_m64p_test.7z?

Details ``` Size: 433497 bytes CRC32: 39f36cfc MD5: 4ce8c5ab634b5d575d864d1eda04486b SHA1: ea4bed01b3e02c6143248ac635a40ec177e0fae5 TIGER: 8dbdfe4196be4f52b50e3bc16903da04792a8398d7c0f998 SHA256: 55891de264f9e3aadc8e8fe328ac94d064d6e3782aebb9329f3453169029d383 SHA512: a184cf74bd24aa0c9854f6d363725941c81427b1fdac4a69143d2c22cdb71918dfd33ead319d66a27269d578796159f19c4e48ce77bbb63492328f575146af96 ```

If you extract that with my standalone build and drop a ROM over m64p_test.cmd it's quicker.

m64p_test.sh

#!/bin/bash
# [Regression] Angrylion-Plus ignores "Video-General" settings of mupen64plus
# ata4/angrylion-rdp-plus#109
set -e

ORIG=`dirname $0`
for REV in _r8-30 _r8-31; do
    echo ""
    echo Testing ${REV:1}
    rm -f "$HOME/.config/mupen64plus/mupen64plus.cfg"
    mupen64plus --corelib $ORIG/libmupen64plus.so.2.0.0 --plugindir $ORIG --datadir $ORIG --gfx mupen64plus-video-angrylion-plus$REV.so --rsp mupen64plus-rsp-parallel.so "$@"
    mupen64plus --corelib $ORIG/libmupen64plus.so.2.0.0 --plugindir $ORIG --datadir $ORIG --set Video-Angrylion-Plus[Parallel]=True --set Video-Angrylion-Plus[NumWorkers]=0 --set Video-Angrylion-Plus[ViMode]=1 --set Video-Angrylion-Plus[DpCompat]=2 --windowed --resolution 1152x864 "$@"
    mupen64plus --corelib $ORIG/libmupen64plus.so.2.0.0 --plugindir $ORIG --datadir $ORIG --fullscreen --resolution 1920x1080 "$@"
    read -s -n 1 -p "Press any key to continue . . ."
    echo ""
done

Script to build test mupen64plus on Unix-like operating systems

ghost commented 3 years ago

I might check it out later, thanks for all your hard work.

This have nothing to do with you but right now I don't have energy or motivation to test it out, there have been a ton of things to do at work recently so I'm pretty low.

ghost commented 3 years ago

Seems like the problem got solved, I apologize for not being more helpful earlier.

Great work to all involved!