Kodi Community Forum
RetroPlayer Test Builds (updated for Nexus) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Game support (https://forum.kodi.tv/forumdisplay.php?fid=292)
+--- Thread: RetroPlayer Test Builds (updated for Nexus) (/showthread.php?tid=173361)



RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2024-05-11

(2024-05-10, 05:45)garbear Wrote: @KOPRajs Should I remove "Many multipass shaders are not rendered correctly" from the release notes?

I'm afraid, that this one is not to be removed any time soon. Some of the multipass shaders are now rendering correctly, but we are still missing a lot.

TODO of issues that I'm currently aware of:
- resolve the scaling issue
- fix GLSL headers (generate correct #version tag and define PARAMETER_UNIFORM for vertex shaders)
- add support for LUTTexCoords
- generate mipmaps for the FBO texture if requested by the shader preset

I'm now trying to solve the issue with scaling. It affects all shaders, even single pass, when the stretch mode is set to anything else than Fullscreen. Since most of the retro games are meant to be played in 4:3 and most of the Kodi setups are running on the 16:9 screens, technically it affects all shaders (it depends on the shader itself, whether the issue is visible in the result or not, that is how I've already managed to get 1:1 output compared to RetroArch for some shaders). The problem is, that the last shader pass (or the single pass) is currently always set to render to the full viewport (screen size). The result is then stretched to 4:3 if required by the stretch mode setting.

The picture below demonstrates the issue. Images in the first row show what happens now. Lets think of the CRT Easymode single pass shader. The original game output is 4:3, it is stretched to fullscreen 16:9 and the shader applies a grid of CRT pixels on it, then the result is stretched to 4:3 and the CRT pixels become distorted (non-square). Hence the output does not match the output from RetroArch.

Image

One possible solution would be to not render to the full viewport. Instead first calculate the stretched viewport and then render the shader directly to it. However, this seems to be more complicated, because the code is using a lot of calculations based on the viewport size. It would probably take a minor refactoring to accomplish that.

There is the other possible solution. We may use the uniform parameter to pass the information about the stretched viewport size to the shader itself. Then we can keep rendering the shader to the full viewport, but it will calculate the size of the CRT grid based on the information it gets, so it will render the grid stretched to 16:9. After the result is stretched back to 4:3, we will get the correct output (the second row in the picture above demonstrates this approach). I've already tested this idea by passing static values for my screen to the shader and the result is the same as in RetroArch (at least I can't tell the difference by comparing the images visually).

Currently, I'm experimenting and trying to find which of the solutions might be better. Also, I'm limited to a solution that I can actually get to work (preferably for all platforms including Windows).


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2024-05-16

@garbear While testing my new patch for the scaling issue in Windows I've noticed that shaders on Windows are partially broken.

Code:
2024-05-16 07:52:32.000 T:5196    ERROR <general>: File::Open - already open: C:\Program Files\Kodi\system\shaders\presets\HLSL\include\ntsc-pass1-vertex.inc
2024-05-16 07:52:32.000 T:5196    ERROR <general>: File::Open - already open: C:\Program Files\Kodi\system\shaders\presets\HLSL\ntsc\shaders\ntsc-pass1-vertex.inc
2024-05-16 07:52:32.000 T:5196    ERROR <general>: File::Open - already open: special://xbmc/system/shaders/ntsc-pass1-vertex.inc
2024-05-16 07:52:32.000 T:5196    ERROR <general>: CD3DEffect::Open: Could not open include file: special://xbmc/system/shaders/ntsc-pass1-vertex.inc
2024-05-16 07:52:32.000 T:5196    ERROR <general>: CD3DEffect::CreateEffect(): warning X4717: Effects deprecated for D3DCompiler_47
                                                   (5,10-32): error X1507: failed to open source file: 'ntsc-pass1-vertex.inc'
                                                    
2024-05-16 07:52:32.000 T:5196    ERROR <general>: %s: failed to load video shader: %s
2024-05-16 07:52:32.000 T:5196    ERROR <general>: Couldn't create a video shader
2024-05-16 07:52:32.000 T:5196  WARNING <general>: CShaderPresetDX::Update: Failed to initialize shaders. Disabling video shaders.

It seems that all NTSC shaders stopped working in RP 20.0 alpha2. They were working fine in RP 19.4. Probably something got broken during the porting to Nexus.

EDIT: Possibly the include file for the shader is just being looked for in a wrong (old) path, because the shader files were moved to the addon in Nexus.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2024-05-16

The patch for the scaling issue is here: a2163ff

These are screenshots before and after the patch (it affects the thumbnails as well):
ImageImage

With this patch applied the CRT Easymode finally renders the same output as in RetroArch.


RE: RetroPlayer Test Builds (updated for Nexus) - franck121 - 2024-05-17

(2024-04-12, 20:40)htpcero Wrote: I noticed the Kodi 21 flatpak includes a game, MrBoom, but it crashes kodi when attempting to run it.
This is on Linux, ubuntu 23.10, Intel N100. Using GBM windowing (no X11/wayland)

Are there others running into the same problem?

The last few lines of the crashlog are:

crashlog:
2024-04-12 01:11:30.712 T:1032     info <general>: Skipped 2 duplicate messages..
2024-04-12 01:11:30.712 T:1032  warning <general>: CreateLoader - unsupported protocol(thumb) in thumb://None/
2024-04-12 01:11:31.240 T:1032    error <general>: Could not find suitable input format: x-directory/normal
2024-04-12 01:11:37.935 T:7        info <general>: RetroPlayer[PROCESS]: Created process info for GBM
2024-04-12 01:11:37.949 T:7       error <general>: Create - Error creating /app/share/kodi/addons/game.libretro.mrboom/resources/system
2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-teammode', 'Team mode; Selfie|Color|Sex|Skynet' }

2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-nomonster', 'Monsters; ON|OFF' }

2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-levelselect', 'Level select; Normal|Candy|Penguins|Pink|Jungle|Board|Soccer|Sky|Aliens|Random' }

2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-aspect', 'Aspect ratio; Native|4:3|16:9' }

2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-musicvolume', 'Music volume; 100|0|5|10|15|20|25|30|35|40|45|50|55|60|65|70|75|80|85|90|95' }

2024-04-12 01:11:37.950 T:7        info <general>: AddOnLog: game.libretro.mrboom: retro_variable (SYSTEM)    { 'mrboom-sfxvolume', 'Sfx volume; 50|55|60|65|70|75|80|85|90|95|100|0|5|10|15|20|25|30|35|40|45' }

2024-04-12 01:11:37.997 T:7        info <general>: GAME: ------------------------------------
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Loaded DLL for game.libretro.mrboom
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Client:              Mr.Boom (Bomberman)
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Version:             5.3.0.157
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Valid extensions:
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Supports VFS:        true
2024-04-12 01:11:37.997 T:7        info <general>: GAME: Supports standalone: true
2024-04-12 01:11:37.997 T:7        info <general>: GAME: ------------------------------------
2024-04-12 01:11:37.997 T:7        info <general>: RetroPlayer[PLAYER]: Opening standalone
2024-04-12 01:11:37.998 T:7       error <general>: AddOnLog: game.libretro.mrboom: HARDCODED_RETRO_SERIALIZE_SIZE=SIZE_SER+13*8

2024-04-12 01:11:37.998 T:7        info <general>: GAME: ---------------------------------------
2024-04-12 01:11:37.998 T:7        info <general>: GAME: Game loop:      true
2024-04-12 01:11:37.998 T:7        info <general>: GAME: FPS:            60.000000
2024-04-12 01:11:37.998 T:7        info <general>: GAME: Sample Rate:    48000.000000
2024-04-12 01:11:37.998 T:7        info <general>: GAME: Region:         NTSC
2024-04-12 01:11:37.998 T:7        info <general>: GAME: Savestate size: 18408
2024-04-12 01:11:37.998 T:7        info <general>: GAME: ---------------------------------------
2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 0.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 1.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 2.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 3.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 4.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 5.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 6.

2024-04-12 01:11:37.998 T:7        info <general>: AddOnLog: game.libretro.mrboom: Mr.Boom: Plugging device 1 into port 7.

2024-04-12 01:11:37.998 T:7       error <general>: Cheevos: Couldn't load patch file
2024-04-12 01:11:38.110 T:7        info <general>: Loading skin file: VideoFullScreen.xml, load type: KEEP_IN_MEMORY
2024-04-12 01:11:38.129 T:1639     info <general>: RetroPlayer[RENDER]: Configuring format 0RGB32, nominal 320x200, max 320x200
2024-04-12 01:11:38.130 T:1639     info <general>: RetroPlayer[AUDIO]: Creating audio stream, format = AE_FMT_S16NE, sample rate = 48000, channels = 2
2024-04-12 01:11:38.130 T:21       info <general>: CActiveAESink::OpenSink - initialize sink
2024-04-12 01:11:38.135 T:7        info <general>: RetroPlayer[RENDER]: Renderer configured on first frame
2024-04-12 01:11:38.169 T:21       info <general>: PulseAudio: Opened device Default in pcm mode with Buffersize 150 ms Periodsize 50 ms


############### END LOG FILE ################

############ END Kodi CRASH LOG #############

Hello,
Some bugs have been fixed, please update to the latest mrboom version...


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-05-24

Mr.boom version 5.5 was released five days ago. I've pushed the new version to our mirrors. However, flatpak packages mrboom into the build, so you'll need a flatpak version built newer than today (2024-05-23).

In case the problem still isn't fixed, I should have some time in the next few weeks to track down the source of the crash.


RE: RetroPlayer Test Builds (updated for Nexus) - htpcero - 2024-05-24

I will try and rebuild the flatpak over the next few days and retry, thanks for looking into this!


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-05-28

The 5.5 build is game.libretro.mrboom 5.5.0.158, FYI.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-05-28

@KOPRajs This holiday weekend I got NDS running in Kodi on my Steam Deck. I'm upstreaming all the work I did in the process (plenty of buttonmaps and fixes). Once everything's ready, probably later today, I'll do another round of builds. I saw you pushed a new commit to your branch - unless you say otherwise I'll include this in the build. If you have more fixes that you want in the build, or make any changes, it's cheap to do more builds.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2024-05-28

@garbear No problem, everything in the video-shaders-v4 branch should be ready to go and it should benefit from being tested on all platforms. I still do have some more work in progress in my local repo, which I hope to finish soon, but since the summer is close, I won't promise anything.


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-05-28

(2024-05-28, 07:32)KOPRajs Wrote: @garbear No problem, everything in the video-shaders-v4 branch should be ready to go and it should benefit from being tested on all platforms. I still do have some more work in progress in my local repo, which I hope to finish soon, but since the summer is close, I won't promise anything.

 Sounds good, push anything ready-to-go to your branch and it'll find its way into mine!


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-05-30

New round of builds has been uploaded! https://github.com/garbear/xbmc/releases . You can read the release notes to see what's been done over the last two weeks, not too much but also enough that I wanted to update my own systems.


RE: RetroPlayer Test Builds (updated for Nexus) - OmniBlade - 2024-05-31

Looks like I'm having issues downloading addons after updating to the latest test build release. Could be coincidence and the LibreElec addon repos are just having issues?

Example errors from my log:
2024-05-31 12:54:16.186 T:1141    error <general>: Requested path https://addons.libreelec.tv/11.80.6/Generic/x86_64/game.libretro.fbneo/game.libretro.fbneo-1.0.0.76.1.zip not found
2024-05-31 12:54:16.186 T:1141    error <general>: CAddonInstallJob[game.libretro.fbneo]: failed to resolve addon install source path

Also, I still can't browse into zip files for cores that support vfs while I can on default coreelec kodi omega builds on Odroid N2 boxes which I have for family use.


RE: RetroPlayer Test Builds (updated for Nexus) - KOPRajs - 2024-06-02

@garbear I've noticed, that unlike the other controller profiles the Genesis Team Player is kept on version 1.0.0 ever since the original merge:
https://github.com/kodi-game/controller-topology-project/blob/master/addons/game.controller.genesis.teamplayer/addon.xml

Possibly it is missing from the automatic update script?


RE: RetroPlayer Test Builds (updated for Nexus) - gnaag - 2024-06-03

Hello, after upgrading of kodi from 20 to 21, my savestates saved in snes9x are not loading anymore. I can see them, but when I try to load one, kodi complains that something is wrong. In logs I can see these two messages:

Code:

error <general>: Invalid memory size, got 823407, expected 823409
error <general>: Retroplayer[SAVE]: Failed to load savestate.

Can you help me with this? Is something wrong on my side?


RE: RetroPlayer Test Builds (updated for Nexus) - garbear - 2024-06-04

(2024-06-03, 22:06)gnaag Wrote: Hello, after upgrading of kodi from 20 to 21, my savestates saved in snes9x are not loading anymore. I can see them, but when I try to load one, kodi complains that something is wrong. In logs I can see these two messages:

This happened to me also.

The problem is snes9x changed their savestate format and it has a different size. If you downgraded game.libretro.snes9x to an older version at that size the save could load.

I'm not really sure to do when a new core has a savestate format of a different size?