NXMP Nintendo Switch Media Player

nxmp-banner.jpg


NXMP is an open-source Nintendo Switch media player based on MPV and FFMPEG, supporting a wide range of media file formats and codecs.
NXMP is coded by @proconsule54 and @darkxex

It support HTTP,FTP,SFTP,Samba,NFS streaming and it also support Enigma2 decoders. Starting from 0.7.0 Version it features HW Decoding for H264,HEVC,VP9,VP8,MPEG2 up to 4K HDR@30fps

NXMP it's on early versions and active dev state so expect any kind of bugs, anyways it's fully functional and tested before every release

Project repository|Stable Build
Stable: v0.9.0



Features:
  • HW Decoding (since v0.7.0) for (H264,HEVC,VP9,VP8,MPEG2)
  • Extense support of media file formats and codecs, including audio too as well​
  • Touch and controller support, control the MP as you want​
  • Video deinterlace support
  • Advanced image settings, configure the brightness and color options, change aspect ratio and rotate the screen​
  • Custom subtitles, you can configure options like color, text size and position to your preferences​
  • Full sound EQ, allow adjust the sound equalizer to your preferences, you can define presets too​
  • Chapters navigator with titles support​
  • Selector of Video/Audio/Subtitle tracks during play​
  • Playlist queue, allow to enque desired files on a playlist for non-stop play​
  • Resume play, you can continue your videos where you previusly stop it​
  • Watch status, watched videos are marked as green on file explorer​
  • Shadermania, you can apply any shader compatible with MPV to NXMP​



Media sources supported:
  • Nintendo Switch SD Card
  • USB drive attached to dock or Switch with USB C adapter (FAT, NTFS and EXT4, up to 32 drives)
  • HTTP/S files through network
  • FTP and SFTP files
  • Samba (SMB) files shared throught network
  • NFS
  • Enigma2 (allow to view TV channel from satellite decoders compatible with this protocol)


Screenshoots:

2021110300034400.jpg2021110300031500.jpg2021110300032100.jpg2021110300023000.jpg



Post here any kind of bug/suggestions.
Enjoy!

Thanks to libusbhsfs https://github.com/DarkMatterCore/libusbhsfs for USB drives support
Thanks to @averne for HW Decoding FFMpeg! and for many many hints
Thanks to @bodyXY for the banner and the icons!
Thanks to @Godorowski for player UI design and releated icons
Thanks to @Chocola for beta testing a player guide
 
Last edited by proconsule54,

handsom_tomato

Active Member
Newcomer
Joined
Jan 24, 2023
Messages
43
Trophies
0
Age
20
XP
444
Country
Japan
Thank you for your hard work in development! I’m Japanese, so I can check if the text in the image is correct. Overall, it’s well translated. I’ll list up what I personally think should be changed.

通信網 -> ネットワーク
プレーヤーの設定 -> プレーヤー設定
Database -> データベース
Touch Settings -> タッチ設定
Themes -> テーマ
Updates -> アップデート
家/セーブ -> ホーム/セーブ
 

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,714
Country
Italy
I sent you a pm. thanks for the feedback.
the process for making full multilanguage is on initial stage but i think 70% is now i18n ready on the code
Post automatically merged:

Thanks a lot @handsom_tomato for Japanese native language translation.

I still need Deutsch French and of course any other language you want to support.

using this a reference

https://github.com/proconsule/nxmp/blob/master/source/i18n/nxmp-en.h

this for example is a spanish naitve translation made by @nWo

https://github.com/proconsule/nxmp/blob/master/source/i18n/nxmp-es.h

you can send me any language, will be supported by nxmp in the next version!

Enjoy!
 
Last edited by proconsule54,

bambangtales

Member
Newcomer
Joined
Dec 17, 2022
Messages
8
Trophies
0
Age
30
XP
83
Country
Indonesia
Can I report bug here?

Environment: Erista unit, fusee chainloaded with hekate 6.0.6, emummc OFW 16.1.0 atmosphere 1.5.5, sysmodules too many to named here.

NXMP version: latest (0.8.1)

Bug: Touch support enable freeze the app. (problem occurred since update to version 0.7.x)
Self troubleshooting not yet to be found.

log file: (let me search first, if any I'll attach here)

Feature suggestions: Add grid content view to home screen and file browser.
 
Last edited by bambangtales,

Bricked

Well-Known Member
Newcomer
Joined
Apr 5, 2022
Messages
58
Trophies
0
Location
Home
XP
236
Country
United States
Thanks for the work on this! Great to see a new phase of development with hardware decoding.

Hopefully full theme support returns as I prefer the classic blue template. It seems like themes mostly work, just some minor issues with buttons displaying and not saving the theme after restart?

Once minor issue is that exiting the application kicks you straight back to the main menu instead of the classic return to homebrew menu, I don't know if that's intended but it would be nice if it was optional.
 

Extreme_

Member
Newcomer
Joined
Oct 1, 2023
Messages
12
Trophies
0
Age
50
XP
35
Country
Germany
#ifndef NXMP_DE_H
#define NXMP_DE_H

const char *de_i18n_author = "proconsule";
bool de_i18n_status = true;
bool de_i18n_native = false;


const char *MainMenu_STR_DE[] = {
"Lokale Dateien",
"USB",
"Stream Url",
"Netzwerk",
"UPNP",
"Enigma2",
"Wiedergabeliste",
"Einstellungen",
"Info",
"Beenden"
};

const char *Common_STR_DE[] = {
"Ja",
"Nein",
"OK",
"Auto",
"Navigation",
"Wählen",
"Wählen/Abpielen",
"Hauptmenü",
"Hauptmenü/Speichern",
"Zurück",
"Kontextmenü",
"Name",
"Größe",
"Datum",
"Nach oben",
"Nach unten",
"Löschen",
"Zurück",
"Abbruch",
"Speichern",

};


const char *Popup_STR_DE[] = {
"Einstellungen speichern",
"Wiedergabe fortsetzen",
"Datenbankaktualisierung",
"Datenbank wurde aktualisiert",
"Netzwerkmenü Popup",
"Popup des Dateikontextmenüs",
"Aufsteigend sortieren (Name)",
"Aufsteigend sortieren (Größe)",
"Aufsteigend sortieren (Datum)",
"Absteigend sortieren (Name)",
"Absteigend sortieren (Größe)",
"Absteigend sortieren (Datum)",
"Datei zur Wiedergabeliste hinzufügen",
"Auswahl zur Wiedergabeliste hinzufügen",
"Element entfernen",
"Wiedergabeliste leeren",
"Als Startelement setzen"
};

const char *SettingsMenu_STR_DE[] = {
"Allgemeim",
"Dateibrowser",
"Zeige versteckte Dateien",
"Navigation",
"Aktiviere Touchbedienung",
"Übertakten",
"Aktiviere Übertakten beim Start",
"Sonstiges (benötigt Neustart)",
"VSYNC",
"Interfacesprache",
"Wiedergabeeinstellungen",
"Dekodierung",
"Hardwaredekodierung nutzen",
"Demux Zwischenspeicher",
"Demux Zwischenspeicherdauer",
"Audio",
"Audioausgabe",
"Suchen",
"Kurzes Suchen",
"Langes Suchen",
"Sprache",
"Automatische Audiosprache",
"Audiosprache",
"Automatische Untertitelsprache",
"Untertitelsprache",
"Untertitel",
"Untertitel Schriftgröße",
"Untertitel Schriftskalierung",
"Video",
"Video Deinterlace",
"Datenbank",
"Datenbank benutzen",
"Datenbankversion :",
"SQLite Version :",
"Fortsetzungspunkte: ",
"Komplett angeschaut: ",
"Datenbank nicht aktiv",
"Speichere Fortsetzungspunkt ab:",
"Stoppe Fortsetzungspunkt ab:",

"Touch Einstellungen",
};

const char *Network_STR_DE[] = {
"Freigabe hinzufügen",
"Freigabemenü hinzufügen",
"Freigabekonfiguration",
"Freigabename:",
"Protokoll: ",
"Berechtigungen",
"IP Adresse:",
"Port:",
"Benutzername:",
"Passwort:",
"Anonymous",
"Remote Pfad:",
"Remote Pfad auf Server Beispiel: /movie/",
"Remote Freigabe auf Server (Freigabe nicht Pfad)",
"Teste Verbindung",
"Verbindung OK",
"Verbindungsfehler",
"Netzwerkquellenauswahl",
"Netzwerkquellenmenü",
};



#endif
 
Last edited by Extreme_,

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,714
Country
Italy
Can I report bug here?

Environment: Erista unit, fusee chainloaded with hekate 6.0.6, emummc OFW 16.1.0 atmosphere 1.5.5, sysmodules too many to named here.

NXMP version: latest (0.8.1)

Bug: Touch support enable freeze the app. (problem occurred since update to version 0.7.x)
Self troubleshooting not yet to be found.

log file: (let me search first, if any I'll attach here)

Feature suggestions: Add grid content view to home screen and file browser.
Thanks i will fix it in next version, i changed the input system, hope this fix it.

Thanks for the work on this! Great to see a new phase of development with hardware decoding.

Hopefully full theme support returns as I prefer the classic blue template. It seems like themes mostly work, just some minor issues with buttons displaying and not saving the theme after restart?

Once minor issue is that exiting the application kicks you straight back to the main menu instead of the classic return to homebrew menu, I don't know if that's intended but it would be nice if it was optional.
Yes can be done, probably in next version.

@Extreme_ thanks a lot for Deutsch translation, how you want to be tagged?

C++:
const char *de_i18n_author = "proconsule";

this line is for translation author, let me know how you want to be tagged.

And graphics designer (if any there) i need an splash screen for NXMP.

just like NXMP Loading and a splash for NXMP cannot ber run on applet mode.
Be creative!

Splash screen is needed now since loading glyphs for all language take time and is stupid to leave a blank black screen until it load fonts, init opengl at fisrst and disaply an image is fast, so SPLASH SCREEN.
 

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,714
Country
Italy
appletmode.png

splash.png


Ok this two splash screen are terrible, a punch in the eye (yes i made by myself... better back to code)....
If someone can do better (not that hard right @spkatsi)
This two are the Loading asset screen (fired during boot or reinit in case of theme/size change)

the second one is the alert for applet mode.
Dont' be shy!
 

Extreme_

Member
Newcomer
Joined
Oct 1, 2023
Messages
12
Trophies
0
Age
50
XP
35
Country
Germany
Is it possible to add page-scrolling by pressing this keys?

SDL_KEY_L, SDL_KEY_R,

or

SDL_KEY_ZL, SDL_KEY_ZR,
 

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,714
Country
Italy
Is it possible to add page-scrolling by pressing this keys?

SDL_KEY_L, SDL_KEY_R,

or

SDL_KEY_ZL, SDL_KEY_ZR,
I am changing backend from SDL to GLFW.
The page scroll will be done with right lever up down.
But i can test also the bumper/trigger, maybe can be better
 

Djakku

Well-Known Member
Newcomer
Joined
May 9, 2019
Messages
98
Trophies
0
XP
1,191
Country
United Kingdom
Can you also add an option to exit to HBMenu?
When running the app with title redirection, when pressing - , its goes back to HOS.
Any chances you can have the option to exit to HBMenu.
Im saying this because the splash screen behavior made me thing of the jellyfin client and both of the apps are happening to be quitting to home screen.
Apps like DBI give you the option of where to exit to. I find it option to be useful from the users perspective. In term of code, not sure if one is cleaner or safer than the other so sorry if I'm speaking out of terms.
 

Extreme_

Member
Newcomer
Joined
Oct 1, 2023
Messages
12
Trophies
0
Age
50
XP
35
Country
Germany
@Djakku
That means you run NXMP in "Applet Mode". I think ist better to run in "FULL RAM access"-Mode.

It's better to create a Forwarder for NXMP by using SAK.

Correct me if i'am false.
 

proconsule54

Well-Known Member
OP
Member
Joined
Nov 5, 2019
Messages
756
Trophies
1
Age
43
XP
2,714
Country
Italy
Exit to home screen grant a clean exit, a perfect app should deallocate all in a proper way before exit but sometimes i cannot figure out why nxmp dosent exit well in hb menu, so i decided to exit to home untile it is fixed. Then i will add an option to choose exit mode.
Post automatically merged:

@Djakku
That means you run NXMP in "Applet Mode". I think ist better to run in "FULL RAM access"-Mode.

It's better to create a Forwarder for NXMP by using SAK.

Correct me if i'am false.
Starting from version 0.8.1 nxmp cannot be run in applet mode.
 

Djakku

Well-Known Member
Newcomer
Joined
May 9, 2019
Messages
98
Trophies
0
XP
1,191
Country
United Kingdom
@Djakku
That means you run NXMP in "Applet Mode". I think ist better to run in "FULL RAM access"-Mode.

It's better to create a Forwarder for NXMP by using SAK.

Correct me if i'am false.
Title redirection is when you use a game and press and hold R button ( default on atmosphere) and homebrew menu takes over the game.

Applet mode, is when you run it from the photo appl and yes, it has less ram available.

What I am referring to is that certain apps: when you close them, either push you back to the HOS (nintendo home screen) or, they exit to hbmenu and you can run another app.

Exit to home screen grant a clean exit, a perfect app should deallocate all in a proper way before exit but sometimes i cannot figure out why nxmp dosent exit well in hb menu, so i decided to exit to home untile it is fixed. Then i will add an option to choose exit mode.

Fair enough, you're doing great as it is already!
It's not a must have feature, and by the time you've fixed the issues, I'm sure you'll come up with a way to do it!
 
Last edited by Djakku,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: 224 and home lol