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

Request Angrylion RDP Plus support for ParaLLEl N64 and/or ParaLLeXT emulators? #137

Open Hedda opened 2 years ago

Hedda commented 2 years ago

Please consider adding support Angrylion RDP Plus multithreaded software renderer to ParaLLEl N64 and/or ParaLLeXT emulators.

https://github.com/libretro/parallel-n64

https://github.com/libretro/paraLLeXT

As I understand it, mupen64plus-video-paraLLEl "Code is heavily inspired by the Angrylion LLE plugin":

https://github.com/libretro/paraLLeXT/blob/master/mupen64plus-video-paraLLEl/CREDITS.txt

Reason for this request is that this support for software multithreading rendering should allow it to run faster on multi-core CPUs.

Jj0YzL5nvJ commented 2 years ago

Funny, those two dead cores already have a version of angrylion-plus implemented. They call it "multithreaded angrylion", the flag for make is HAVE_THR_AL=1.

https://github.com/libretro/parallel-n64/blob/master/mupen64plus-video-angrylion/version.h.in https://github.com/libretro/paraLLeXT/blob/master/mupen64plus-video-angrylion/version.h.in

Use Mupen64Plus-Next instead. Don't expect updates from them, they would be more than happy to get rid of Angrylion-Plus now that they have ParaLLEl RDP, the license hurts their pockets.

Hedda commented 2 years ago

Use Mupen64Plus-Next instead.

Do you not think they would consider Mupen64Plus-Next libretro game core to use the very latest Angrylion RDP Plus?

https://github.com/libretro/mupen64plus-libretro-nx

https://github.com/libretro/mupen64plus-libretro-nx/tree/develop/mupen64plus-video-angrylion

https://github.com/libretro/mupen64plus-libretro-nx/blob/develop/mupen64plus-video-angrylion/version.h.in

now that they have ParaLLEl RDP

My issue is I want to use a software renderer because Kodi's libretro based RetroPlayer does not yet support any GPU renderers:

https://kodi.wiki/view/Game_development#Mupen64plus_.28n64.29_is_not_working

Note! "Kodi RetroPlayer" + "Kodi Game" projects are still active even if the their "Game" pages in their Kodi wiki are not updated:

https://kodi.wiki/view/Game_development

https://forum.kodi.tv/showthread.php?tid=173361

https://forum.kodi.tv/showthread.php?tid=164725

https://forum.kodi.tv/forumdisplay.php?fid=194

https://forum.kodi.tv/forumdisplay.php?fid=292

Tip! https://github.com/garbear/xbmc has latest RetroPlayer code before he merge into upstream https://github.com/xbmc/xbmc

https://github.com/kodi-game/ contain libretro game cores + https://github.com/kodi-game/game.libretro and related projects.

https://github.com/kodi-game/game.libretro.mupen64plus-nx

https://github.com/kodi-game/game.libretro.parallext

https://github.com/kodi-game/game.libretro.parallel_n64

RokkumanX commented 2 years ago

There is an open pull request at the Mupen64Plus-Next repository that focuses updating the core with "modern" AL+

If that were to be merged I suspect that would be the closest to a solution regarding this issue here.

However, while RetroArch and it's cores are mainly good they aren't updated that often to be honest. I strongly suggest using either Mupen64Plus standalone or Project64 for your daily N64 fix as they both support Angrylion-RDP-Plus and ParaLLEl superbly!

mudlord commented 2 years ago

What needs to be updated?

Jj0YzL5nvJ commented 2 years ago

Busy loop exposition, "integer scaling" and some other interpolation option.

mudlord commented 2 years ago

only thing that applies is busyloops, rest should be done on retroarch end :/

Hedda commented 2 years ago

while RetroArch and it's cores are mainly good they aren't updated that often to be honest. I strongly suggest using either Mupen64Plus standalone or Project64 for your daily N64 fix as they both support Angrylion-RDP-Plus and ParaLLEl superbly!

That is unfortunately not always possible as in this example scenario using Kodi's native "RetroPlayer" which use libretro cores. See:

https://kodi.wiki/view/Game_development

"Kodi-Game branch of Kodi which tries to implement a gaming environment for Kodi. The goal is to start, stop and play video games like you can currently play video files. Kodi-Game constist of several addons and subsystems which should be described on this page to minimize confusion."

"Libretro is a C-based interface between user-facing frontends and emulator backends. This frontend and backend concept allow several different (non-Kodi) frontend projects to use the same Libretro core emulators.

Kodi's Game API has Libretro Wrapper which is 1:1 compatibility with the libretro API, so all libretro cores are valid game add-ons. Libretro itself is a well defined interface to handle the communication between a frontend (Kodi with RetroPlayer) and an Emulator Core (e.g. nestopia).

By ultilizing libretro, the Kodi Game project will also become a part of the larger software ecosystem based around libretro, this a other third-party projects use libretro as well as all to some degree collaborage and share code with upstream libretro."

https://kodi.wiki/view/Libretro

"Libretro itself is a well defined cross-platform platform interface to handle the communication between a frontend (Kodi with RetroPlayer) and an Emulator Core (e.g. nestopia). Kodi uses libretro but libretro is its own seperate open source project developed by independent developers."

https://forum.kodi.tv/showthread.php?tid=292270

"Kodi is part of a large software ecosystem that enables retro gaming."

https://forum.kodi.tv/showthread.php?tid=164725

"RetroPlayer is a new player core for Kodi Entertainment Center. It is similar to the video player and audio visualizer, but it plays games instead of movies and music."

If you want to test "Kodi Game" to get a better feeling of the "Kodi RetroPlayer" experince then recommend you check out these:

https://forum.kodi.tv/showthread.php?tid=340684

and

https://forum.kodi.tv/showthread.php?tid=173361

PS: Yes it is true that Kodi can act as a dumb launcher of external stand-alone emulators, but it does then not have the native support to browse and launch individual games/ROMs so it will not give the same streamlined Kodi GUI user experience as the rest of Kodi's native implementations, and IMHO the main point of using Kodi is to get that streamlined Kodi GUI user experience (with the ability to choose skins and its GUI showing users the same look and feel for all its different entertainment categories).

RokkumanX commented 2 years ago

Ah yes, I always forget that there are other devices and systems besides Windows PC's when I comment in these kind of topics. I think I'll never learn to zip it...

Jj0YzL5nvJ commented 2 years ago

Kodi is a video player or a media center that developed too much... Now it is an "entertainment center." They can use RA as a core to run other cores...

Hedda commented 2 years ago

Kodi is a video player or a media center that developed too much... Now it is an "entertainment center." They can use RA as a core to run other cores...

You can alternatively use VLC to play movies and TV-shows or use Winamp to play music but they are not the same experience.

People are free to like different things. Personally, I do not like to run many different stand-alone applications for everything.

Kodi itself could not integrate RetroArch because it is basically a competing GUI frontend client application. RetroArch is the reference GUI frontend for the libretro API, and now Kodi also is another GUI frontend that features the libretro API so can use same cores. Kodi has a completely different GUI engine and it would be not be practical to try to merge those two GUI projects.

Competition is a key driver of innovation.

Kodi is a skinnable frontend client application whose main purpose is to offer a "10-foot user interface" that gives a large screen livingroom television s a single unified user experience for all types of media And to be able to do so it has many natively integrated "cores", including a video-player core, a music-player core, a midi-player core, Live TV and PVR with TV-Guide, etc. and since a few years back also got its own native game-player core called "RetroPlayer" which support libretro game cores out-of-the-box and allow you to pause and reverse your games while you play them. While Kodi's interface for games is still very much an early work in progress it shows great potential.

By the way, development on "Kodi Game" branch and its "RetroPlayer" core for libretro started almost 10-years ago, back in 2013:

https://en.wikipedia.org/wiki/Kodi_(software)#Games_Manager_and_game_console_emulators

If want to test it check out LibreELEC Just-enough-OS for Kodi which makes installation and updates easy -> https://libreelec.tv

Kodi/XBMC also happen to be an awesome open source project (and community) as a whole -> https://github.com/xbmc/xbmc/

PS: Yes I am a Kodi fanboy and have been since it was known as XBox Media Center and ran on modded original Microsoft Xbox ;)