Merge pull request #2271 from JustEnoughLinuxOS/dev

PR for release
This commit is contained in:
fewtarius 2023-10-28 20:07:13 -04:00 committed by GitHub
commit 3cc865208f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
119 changed files with 45884 additions and 4326 deletions

View file

@ -1,3 +1,4 @@
pico-8 # Metapackage, doesn't need to update
np2kai # Last major commit before hiatus is broken.
vice-sa # Doesn't support updating with the script.
dolphin-sa # Wayland patch is now broken upstream
@ -10,3 +11,4 @@ mupen64plus-sa-ui-console #Causes segfaults
nanoboyadvance-sa #SDL version removed after this commit
freechaf-lr #build issue, revisit.
pcsx_rearmed-lr #pins version as new releases have artifacting issues.
kronos-sa #using the release version of kronos had better results.

View file

@ -0,0 +1,10 @@
SYSTEM_NAME="macintosh"
SYSTEM_FULLNAME="Macintosh"
SYSTEM_MANUFACTURER="Apple"
SYSTEM_RELEASE="1984"
SYSTEM_HARDWARE="computer"
SYSTEM_PATH="/storage/roms/mac"
SYSTEM_EXTENSION=".dsk .img .hfv .cmd .zip"
SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\""
SYSTEM_PLATFORM="macintosh"
SYSTEM_THEME="macintosh"

View file

@ -0,0 +1,10 @@
SYSTEM_NAME="st-v"
SYSTEM_FULLNAME="ST-V"
SYSTEM_MANUFACTURER="Sega"
SYSTEM_RELEASE="1995"
SYSTEM_HARDWARE="arcade"
SYSTEM_PATH="/storage/roms/st-v"
SYSTEM_EXTENSION=".zip .ZIP"
SYSTEM_COMMAND="/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers=\"%CONTROLLERSCONFIG%\""
SYSTEM_PLATFORM="st-v"
SYSTEM_THEME="st-v"

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
| System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
| System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -98,10 +99,11 @@ This document describes all available systems emulators and cores available for
|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021<br>**retroarch:** flycast (default)<br>**flycast:** flycast-sa<br>|
|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**retroarch:** yabasanshiro (default)<br>**retroarch:** beetle_saturn<br>|
|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**kronos:** kronos-sa (default)<br>**retroarch:** yabasanshiro (default)<br>**retroarch:** beetle_saturn<br>|
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -96,6 +97,7 @@ This document describes all available systems emulators and cores available for
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP||
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|
@ -105,7 +107,7 @@ This document describes all available systems emulators and cores available for
|SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)<br>**retroarch:** fbneo<br>|
|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)<br>**retroarch:** pcsx_rearmed<br>**duckstation:** duckstation-sa<br>**retroarch:** duckstation<br>**retroarch:** swanstation<br>|
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)<br>**retroarch:** pcsx_rearmed<br>**retroarch:** duckstation<br>**retroarch:** swanstation<br>|
|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)<br>|
|Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)<br>**retroarch:** ppsspp<br>|
|Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -24,10 +25,10 @@ This document describes all available systems emulators and cores available for
|Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)<br>|
|Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)<br>**hatarisa:** hatarisa<br>|
|Atari|Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)<br>|
|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)<br>**retroarch:** beetle_lynx<br>|
|Atari|Lynx (atarilynx)|1989|`atarilynx`|.lnx .o .zip .7z|**retroarch:** handy (default)<br>**retroarch:** beetle_lynx<br>**mednafen:** lynx<br>|
|Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)<br>|
|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)<br>|
|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)<br>|
|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .zip .7z|**retroarch:** beetle_wswan (default)<br>**mednafen:** wswan<br>|
|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.wsc .zip .7z|**retroarch:** beetle_wswan (default)<br>**mednafen:** wswan<br>|
|belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)<br>|
|Capcom|PlaySystem 1 (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** fbalpha2012<br>**retroarch:** mba_mini<br>**AdvanceMame:** AdvanceMame<br>|
|Capcom|PlaySystem 2 (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** fbalpha2012<br>**retroarch:** mba_mini<br>**AdvanceMame:** AdvanceMame<br>|
@ -50,54 +51,55 @@ This document describes all available systems emulators and cores available for
|Microsoft|MS-DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure<br>**retroarch:** dosbox_svn<br>|
|Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)<br>**retroarch:** fmsx<br>|
|Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)<br>**retroarch:** fmsx<br>|
|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>**mednafen:** pce<br>**mednafen:** pce_fast<br>|
|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>**mednafen:** pce<br>**mednafen:** pce_fast<br>|
|NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .m3u|**retroarch:** quasi88 (default)<br>|
|NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)<br>|
|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)<br>|
|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx<br>**retroarch:** beetle_pce<br>|
|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>|
|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)<br>**mednafen:** pcfx<br>|
|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx<br>**retroarch:** beetle_pce<br>**mednafen:** pce<br>**mednafen:** pce_fast<br>|
|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>**mednafen:** pce<br>**mednafen:** pce_fast<br>|
|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)<br>**retroarch:** beetle_pce<br>**retroarch:** beetle_supergrafx<br>**mednafen:** pce<br>**mednafen:** pce_fast<br>|
|Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)<br>|
|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>|
|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>**mednafen:** nes<br>|
|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**mednafen:** nes<br>|
|Nintendo|Game &amp; Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw<br>|
|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** gpsp<br>**nanoboyadvance:** nanoboyadvance-sa<br>|
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>|
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>|
|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**mednafen:** gb<br>|
|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**mednafen:** gb<br>|
|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**retroarch:** gpsp<br>**nanoboyadvance:** nanoboyadvance-sa<br>**mednafen:** gba<br>|
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)<br>**retroarch:** gbsp<br>**retroarch:** vbam<br>**retroarch:** vba_next<br>**retroarch:** beetle_gba<br>**mednafen:** gba<br>|
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**mednafen:** gb<br>|
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)<br>**retroarch:** sameboy<br>**retroarch:** gearboy<br>**retroarch:** tgbdual<br>**retroarch:** mgba<br>**retroarch:** vbam<br>**mednafen:** gb<br>|
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)<br>**retroarch:** dolphin<br>|
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|Nintendo|MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** beetle_supafaust<br>**mednafen:** snes_faust<br>|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>**mednafen:** nesh<br>|
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)<br>**retroarch:** mupen64plus<br>**retroarch:** parallel_n64<br>**mupen64plus:** mupen64plus-sa<br>|
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)<br>**retroarch:** melonds<br>**melonds:** melonds-sa<br>**retroarch:** desmume<br>|
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>|
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)<br>**retroarch:** fceumm<br>**retroarch:** quicknes<br>**retroarch:** mesen<br>**mednafen:** nes<br>|
|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)<br>|
|Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>|
|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>|
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>|
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>|
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)<br>|
|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>**mednafen:** snes<br>**mednafen:** snes_faust<br>|
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>**mednafen:** snes<br>**mednafen:** snes_faust<br>|
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)<br>**retroarch:** snes9x2010<br>**retroarch:** snes9x2002<br>**retroarch:** snes9x2005_plus<br>**retroarch:** beetle_supafaust<br>**retroarch:** bsnes<br>**retroarch:** bsnes_mercury_performance<br>**retroarch:** bsnes_hd_beta<br>**mednafen:** snes_faust<br>**mednafen:** snes<br>|
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)<br>**mednafen:** vb<br>|
|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii (default)<br>**retroarch:** dolphin<br>|
|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)<br>|
|Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)<br>|
|Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**flycast:** flycast-sa<br>**retroarch:** flycast (default)<br>|
|Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u|**flycast:** flycast-sa<br>**retroarch:** flycast (default)<br>|
|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>|
|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>**mednafen:** gg<br>|
|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>**mednafen:** gg<br>|
|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>**mednafen:** md<br>|
|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>**mednafen:** md<br>|
|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>**retroarch:** smsplus<br>**mednafen:** sms<br>|
|Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>|
|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>**mednafen:** md<br>|
|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** genesis_plus_gx_wide<br>**retroarch:** picodrive<br>**mednafen:** md<br>|
|Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**flycast:** flycast-sa<br>**retroarch:** flycast (default)<br>|
|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)<br>**retroarch:** yabasanshiro<br>**retroarch:** beetle_saturn<br>|
|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso|**yabasanshiro:** yabasanshiro-sa (default)<br>**retroarch:** yabasanshiro<br>**retroarch:** beetle_saturn<br>**mednafen:** ss<br>|
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>**mednafen:** ss<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|
@ -105,9 +107,9 @@ This document describes all available systems emulators and cores available for
|Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)<br>|
|SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>|
|SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)<br>**retroarch:** fbneo<br>|
|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>|
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)<br>**retroarch:** pcsx_rearmed<br>**retroarch:** beetle_psx<br>**duckstation:** duckstation-sa<br>**retroarch:** duckstation<br>**retroarch:** swanstation<br>|
|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngc .ngp .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>**mednafen:** ngp<br>|
|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngc .zip .7z|**retroarch:** beetle_ngp (default)<br>**retroarch:** race<br>**mednafen:** ngp<br>|
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)<br>**retroarch:** pcsx_rearmed<br>**retroarch:** beetle_psx<br>**mednafen:** psx<br>**duckstation:** duckstation-sa<br>**retroarch:** duckstation<br>**retroarch:** swanstation<br>|
|Sony|PlayStation 2 (ps2)|2000|`ps2`|.iso .mdf .nrg .bin .img .dump .gz .cso .chd|**aethersx2:** aethersx2-sa (default)<br>|
|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)<br>|
|Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)<br>**retroarch:** ppsspp<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -96,6 +97,7 @@ This document describes all available systems emulators and cores available for
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -96,6 +97,7 @@ This document describes all available systems emulators and cores available for
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -98,6 +99,7 @@ This document describes all available systems emulators and cores available for
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|

View file

@ -13,6 +13,7 @@ This document describes all available systems emulators and cores available for
|&#xf013; System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
|&#xf013; System|Tools (tools)|System|`modules`|.sh||
|Amstrad|CPC (amstradcpc)|1984|`amstradcpc`|.dsk .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)<br>**retroarch:** cap32<br>|
|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)<br>|
|Arcade|Arcade (arcade)|1984|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)<br>**retroarch:** mame2000<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** fbneo<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>**retroarch:** mame<br>|
|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)<br>**retroarch:** daphne<br>|
|Arcade|Final Burn Neo (fbn)|1986|`fbneo`|.7z .zip|**retroarch:** fbneo (default)<br>**retroarch:** mame2003_plus<br>**retroarch:** mame2010<br>**retroarch:** mame2015<br>**retroarch:** mame<br>**retroarch:** fbalpha2012<br>**retroarch:** fbalpha2019<br>|
@ -99,6 +100,7 @@ This document describes all available systems emulators and cores available for
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)<br>|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)<br>**retroarch:** picodrive<br>|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)<br>**retroarch:** genesis_plus_gx<br>**retroarch:** picodrive<br>|
|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** beetle_saturn (default)<br>|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)<br>|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88d .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)<br>|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse<br>|

View file

@ -6,7 +6,7 @@ PKG_VERSION="f8adbe08805d9fe9171cb2e3078f383631d1331d"
PKG_SITE="https://github.com/christianhaitian/PortMaster"
PKG_LICENSE="MIT"
PKG_ARCH="arm aarch64"
PKG_DEPENDS_TARGET="toolchain gptokeyb gamecontrollerdb wget oga_controls"
PKG_DEPENDS_TARGET="toolchain gptokeyb gamecontrollerdb wget oga_controls libegl"
PKG_TOOLCHAIN="manual"
PKG_LONGDESC="Portmaster - a simple tool that allows you to download various game ports"
@ -15,13 +15,6 @@ makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/PortMaster
tar -xvf ${PKG_DIR}/sources/${PKG_NAME}.tar.gz -C ${INSTALL}/usr/config/PortMaster
case ${DEVICE} in
S922X*)
mkdir -p ${INSTALL}/usr/lib/egl
tar -xvf ${PKG_DIR}/sources/libegl.tar.gz -C ${INSTALL}/usr/lib/egl
;;
esac
cp -rf ${PKG_DIR}/sources/PortMaster.sh ${INSTALL}/usr/config/PortMaster
chmod +x ${INSTALL}/usr/config/PortMaster/PortMaster.sh

View file

@ -16,6 +16,10 @@ PKG_AUTORECONF="no"
PKG_MAKE_OPTS_TARGET+=" -C bsnes target=libretro compiler=${TARGET_NAME}-g++"
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/bsnes/GNUmakefile
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp bsnes/out/bsnes_hd_beta_libretro.so ${INSTALL}/usr/lib/libretro/

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="bsnes-lr"
PKG_VERSION="e71eca1199d1359af53c806811dc3f05c64f8d91"
PKG_VERSION="ef4df4e683e1e6a194fd5ae6c9af2dae62df3998"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/bsnes-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
@ -21,6 +21,10 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
fi
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp bsnes_libretro.so ${INSTALL}/usr/lib/libretro/

View file

@ -13,6 +13,10 @@ PKG_IS_ADDON="no"
PKG_TOOLCHAIN="make"
PKG_AUTORECONF="no"
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
}
pre_make_target() {
PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}"
}

View file

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="dosbox-pure-lr"
PKG_VERSION="3793b9f291f37d99f662de0d3058c6b0ac1607fc"
PKG_VERSION="a6ac7fdd94c9e8c8a7be8d9958174425a473ba06"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"

View file

@ -4,7 +4,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="fbneo-lr"
PKG_VERSION="5fa9b68ab4fa5b318066ac95fd5060357ba35230"
PKG_VERSION="6f65c17648bb98217d8ddcdc750505d4ac0916e5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Non-commercial"

View file

@ -35,7 +35,8 @@ else
fi
pre_configure_target() {
sed -i 's/"reicast"/"flycast"/g' ${PKG_BUILD}/shell/libretro/libretro_core_option_defines.h
sed -i 's/"reicast"/"flycast"/g' ${PKG_BUILD}/shell/libretro/libretro_core_option_defines.h
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/CMakeLists.txt
PKG_CMAKE_OPTS_TARGET="${PKG_CMAKE_OPTS_TARGET} \
-Wno-dev -DLIBRETRO=ON \
-DWITH_SYSTEM_ZLIB=ON \

View file

@ -41,6 +41,7 @@ fi
pre_configure_target() {
sed -i 's/define CORE_OPTION_NAME "reicast"/define CORE_OPTION_NAME "flycast2021"/g' core/libretro/libretro_core_option_defines.h
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
PKG_MAKE_OPTS_TARGET="${PKG_MAKE_OPTS_TARGET} ARCH=${TARGET_ARCH} HAVE_OPENMP=1 GIT_VERSION=${PKG_VERSION:0:7} HAVE_LTCG=0"
}

View file

@ -15,7 +15,7 @@
################################################################################
PKG_NAME="gearboy-lr"
PKG_VERSION="06e9636c368c50fdde89cacce0e3539976ab9b7c"
PKG_VERSION="49438e4f90de9203615aeba2a0ef6362fe8144d9"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -15,7 +15,7 @@
################################################################################
PKG_NAME="gearcoleco-lr"
PKG_VERSION="cc7c19c776a12d149c2c935e2198ddad15f22f54"
PKG_VERSION="6c67da0462061a9056cacdb633c6ab4fd8a650f7"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="gearsystem-lr"
PKG_VERSION="c58a865a727e6f7b83123a1a261c13bcc1b0f0dc"
PKG_VERSION="9fdc04d58f1c7176c4834f4569e2a6a00de56608"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="libretro-database"
PKG_VERSION="5e0fcac0bf043fe395e20b328a7f979c2a401e3c"
PKG_VERSION="809a24e1b480945778f4bf55f8d24df3e33ca0a1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -21,7 +21,7 @@
################################################################################
PKG_NAME="mame2003-plus-lr"
PKG_VERSION="419021fc003bd00fee2ce896d3e802caa5d1274a"
PKG_VERSION="79aee414b6f5ab70a6eb257f9273550423e11356"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="MAME"

View file

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="mrboom-lr"
PKG_VERSION="089b91d4dcf016d0595824d519707bed709178f2"
PKG_VERSION="c10355e656b282f3dee8020ba17852a622a532e8"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"

View file

@ -57,6 +57,7 @@ pre_configure_target() {
PKG_MAKE_OPTS_TARGET="GLES=0 GLES3=0"
;;
esac
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
}
makeinstall_target() {

View file

@ -25,6 +25,7 @@ fi
pre_configure_target() {
sed -e "s|^GIT_VERSION ?.*$|GIT_VERSION := \" ${PKG_VERSION:0:7}\"|" -i Makefile
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
case ${DEVICE} in
RK3*|S922X*)
PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}"

View file

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="np2kai-lr"
PKG_VERSION="6089943a80a45b6c18d765765f7f31d7a5c0d9c6"
PKG_VERSION="9dbeaafa13e666cb7b87ffddb8bc4ad3343eb5cb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="MIT"

View file

@ -13,6 +13,10 @@ PKG_SHORTDESC="ARM optimized PCSX fork"
PKG_TOOLCHAIN="manual"
PKG_PATCH_DIRS+="${TARGET_ARCH}/${DEVICE}"
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
}
make_target() {
cd ${PKG_BUILD}
make -f Makefile.libretro GIT_VERSION=${PKG_VERSION} platform=${DEVICE}

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="ppsspp-lr"
PKG_VERSION="e93f9f64cc3979ff7d1dddc2fbec7ddc410da3dc"
PKG_VERSION="a9d2ff29ea06c709c3cd077eeb720ce9efdc4f6f"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/hrydgard/ppsspp"
PKG_URL="https://github.com/hrydgard/ppsspp.git"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="slang-shaders"
PKG_VERSION="e71fc162f62f3d21f6e80942e6075f31c37c0ead"
PKG_VERSION="3c281372a31e7cc72fdbea699dc09047439386ce"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View file

@ -20,7 +20,7 @@
################################################################################
PKG_NAME="stella-lr"
PKG_VERSION="b7a89b3f5f86ae8f3d771ead86babe816e2dd806"
PKG_VERSION="341c6d860cdb028f29caf8bb30e9acd3d8521ac1"
PKG_REV="1"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/stella-emu/stella"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="tic80-lr"
PKG_VERSION="f740bff14921fe2120486c8a233094602032b996"
PKG_VERSION="0937023babce9dd55eba5ada4b46c2f98b740324"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/nesbox/TIC-80"
PKG_URL="${PKG_SITE}.git"

View file

@ -45,12 +45,16 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
fi
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast -ffast-math/' ${PKG_BUILD}/yabause/src/libretro/Makefile
case ${DEVICE} in
RK3*|S922X*)
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro platform=rockpro64 HAVE_NEON=0 FORCE_GLES=1"
;;
AMD64)
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro FORCE_GLES=0 USE_X86_DRC=1 FASTMATH=1"
;;
*)
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro"
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro FORCE_GLES=1"
;;
esac
}

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="citra-sa"
PKG_VERSION="a034c54f91495e6c987e3c3d221c7f7615d60a56"
PKG_VERSION="2f4039858a082818b8fff60a7a89794c6259f146"
PKG_LICENSE="MPLv2"
PKG_SITE="https://github.com/JustEnoughLinuxOS/citra-canary"
PKG_URL="${PKG_SITE}.git"

View file

@ -1,6 +1,6 @@
diff -rupN dolphin.orig/CMake/FindWaylandProtocols.cmake dolphin/CMake/FindWaylandProtocols.cmake
--- dolphin.orig/CMake/FindWaylandProtocols.cmake 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/CMake/FindWaylandProtocols.cmake 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/CMake/FindWaylandProtocols.cmake 2023-10-27 13:46:38.317333047 +0000
@@ -0,0 +1,28 @@
+# from https://github.com/glfw/glfw/blob/master/CMake/modules/FindWaylandProtocols.cmake
+
@ -32,7 +32,7 @@ diff -rupN dolphin.orig/CMake/FindWaylandProtocols.cmake dolphin/CMake/FindWayla
+set(WAYLAND_PROTOCOLS_VERSION ${WaylandProtocols_VERSION})
diff -rupN dolphin.orig/CMake/FindXKBCommon.cmake dolphin/CMake/FindXKBCommon.cmake
--- dolphin.orig/CMake/FindXKBCommon.cmake 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/CMake/FindXKBCommon.cmake 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/CMake/FindXKBCommon.cmake 2023-10-27 13:46:38.317333047 +0000
@@ -0,0 +1,33 @@
+# - Try to find XKBCommon
+# Once done, this will define
@ -69,7 +69,7 @@ diff -rupN dolphin.orig/CMake/FindXKBCommon.cmake dolphin/CMake/FindXKBCommon.cm
+mark_as_advanced(XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR)
diff -rupN dolphin.orig/CMakeLists.txt dolphin/CMakeLists.txt
--- dolphin.orig/CMakeLists.txt 2023-09-26 17:58:02.593990718 +0000
+++ dolphin/CMakeLists.txt 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/CMakeLists.txt 2023-10-27 13:46:40.473383166 +0000
@@ -47,6 +47,7 @@ set(DOLPHIN_DEFAULT_UPDATE_TRACK "" CACH
if(UNIX AND NOT APPLE AND NOT ANDROID)
@ -98,7 +98,7 @@ diff -rupN dolphin.orig/CMakeLists.txt dolphin/CMakeLists.txt
if(EGL_FOUND)
diff -rupN dolphin.orig/Source/Core/Common/CMakeLists.txt dolphin/Source/Core/Common/CMakeLists.txt
--- dolphin.orig/Source/Core/Common/CMakeLists.txt 2023-09-26 17:58:02.801995519 +0000
+++ dolphin/Source/Core/Common/CMakeLists.txt 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/CMakeLists.txt 2023-10-27 13:46:39.913370149 +0000
@@ -253,11 +253,20 @@ if(ENABLE_EGL AND EGL_FOUND)
GL/GLInterface/EGLAndroid.cpp
GL/GLInterface/EGLAndroid.h
@ -127,7 +127,7 @@ diff -rupN dolphin.orig/Source/Core/Common/CMakeLists.txt dolphin/Source/Core/Co
target_link_libraries(common PUBLIC ${EGL_LIBRARIES})
diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.cpp dolphin/Source/Core/Common/GL/GLContext.cpp
--- dolphin.orig/Source/Core/Common/GL/GLContext.cpp 2023-09-26 17:58:02.801995519 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -25,6 +25,9 @@
#if defined(ANDROID)
#include "Common/GL/GLInterface/EGLAndroid.h"
@ -165,7 +165,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.cpp dolphin/Source/Core/
context = std::make_unique<GLContextEGL>();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.h dolphin/Source/Core/Common/GL/GLContext.h
--- dolphin.orig/Source/Core/Common/GL/GLContext.h 2023-09-26 17:58:02.801995519 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.h 2023-10-27 13:46:39.913370149 +0000
@@ -36,8 +36,8 @@ public:
virtual bool MakeCurrent();
virtual bool ClearCurrent();
@ -179,7 +179,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.h dolphin/Source/Core/Co
virtual void SwapInterval(int interval);
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h dolphin/Source/Core/Common/GL/GLInterface/AGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h 2023-09-26 17:58:02.801995519 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.h 2023-10-27 13:46:39.913370149 +0000
@@ -27,6 +27,8 @@ public:
bool MakeCurrent() override;
@ -191,7 +191,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h dolphin/Source/C
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm dolphin/Source/Core/Common/GL/GLInterface/AGL.mm
--- dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm 2023-09-26 17:58:02.801995519 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.mm 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.mm 2023-10-27 13:46:39.913370149 +0000
@@ -144,7 +144,7 @@ bool GLContextAGL::ClearCurrent()
return true;
}
@ -203,7 +203,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm dolphin/Source/
return;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -292,8 +292,8 @@ bool GLContextEGL::CreateWindowSurface()
{
if (!IsHeadless())
@ -268,7 +268,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp dolphin/Source
+}
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h dolphin/Source/Core/Common/GL/GLInterface/EGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.h 2023-10-27 13:46:39.913370149 +0000
@@ -22,7 +22,8 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -294,7 +294,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h dolphin/Source/C
std::vector<int> m_attribs;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -0,0 +1,36 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -334,7 +334,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp dolphin
+}
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h 2023-10-27 13:46:39.913370149 +0000
@@ -0,0 +1,19 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -357,7 +357,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h dolphin/S
+};
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -11,7 +11,7 @@ GLContextEGLX11::~GLContextEGLX11()
m_render_window.reset();
}
@ -369,7 +369,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp dolphin/Sou
m_backbuffer_width = m_render_window->GetWidth();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-10-27 13:46:39.913370149 +0000
@@ -13,7 +13,7 @@ class GLContextEGLX11 final : public GLC
public:
~GLContextEGLX11() override;
@ -381,7 +381,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h dolphin/Sourc
EGLDisplay OpenEGLDisplay() override;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -310,7 +310,7 @@ bool GLContextGLX::ClearCurrent()
return glXMakeCurrent(m_display, None, nullptr);
}
@ -393,7 +393,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp dolphin/Source
m_backbuffer_width = m_render_window->GetWidth();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h dolphin/Source/Core/Common/GL/GLInterface/GLX.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.h 2023-10-27 13:46:39.913370149 +0000
@@ -24,7 +24,7 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -405,7 +405,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h dolphin/Source/C
void Swap() override;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-10-27 13:46:39.913370149 +0000
@@ -480,7 +480,7 @@ bool GLContextWGL::ClearCurrent()
}
@ -417,7 +417,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp dolphin/Source
GetClientRect(m_window_handle, &rcWindow);
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h dolphin/Source/Core/Common/GL/GLInterface/WGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.h 2023-10-27 13:46:39.913370149 +0000
@@ -19,7 +19,7 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -429,7 +429,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h dolphin/Source/C
void SwapInterval(int interval) override;
diff -rupN dolphin.orig/Source/Core/Common/WindowSystemInfo.h dolphin/Source/Core/Common/WindowSystemInfo.h
--- dolphin.orig/Source/Core/Common/WindowSystemInfo.h 2023-09-26 17:58:02.805995611 +0000
+++ dolphin/Source/Core/Common/WindowSystemInfo.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Common/WindowSystemInfo.h 2023-10-27 13:46:39.937370706 +0000
@@ -40,7 +40,11 @@ struct WindowSystemInfo
// This is kept seperate as input may require a different handle to rendering, and
// during video backend startup the surface pointer may change (MoltenVK).
@ -443,9 +443,58 @@ diff -rupN dolphin.orig/Source/Core/Common/WindowSystemInfo.h dolphin/Source/Cor
// Scale of the render surface. For hidpi systems, this will be >1.
float render_surface_scale = 1.0f;
};
diff -rupN dolphin.orig/Source/Core/Core/BootManager.cpp dolphin/Source/Core/Core/BootManager.cpp
--- dolphin.orig/Source/Core/Core/BootManager.cpp 2023-09-26 17:58:02.809995703 +0000
+++ dolphin/Source/Core/Core/BootManager.cpp 2023-10-27 13:48:21.555727990 +0000
@@ -64,6 +64,11 @@ bool BootCore(std::unique_ptr<BootParame
if (!StartUp.SetPathsAndGameMetadata(*boot))
return false;
+ if (std::holds_alternative<BootParameters::Disc>(boot->parameters))
+ {
+ StartUp.SetBaseSaveState(PathToFileName(std::get<BootParameters::Disc>(boot->parameters).path));
+ }
+
// Movie settings
if (Movie::IsPlayingInput() && Movie::IsConfigSaved())
{
diff -rupN dolphin.orig/Source/Core/Core/ConfigManager.cpp dolphin/Source/Core/Core/ConfigManager.cpp
--- dolphin.orig/Source/Core/Core/ConfigManager.cpp 2023-09-26 17:58:02.809995703 +0000
+++ dolphin/Source/Core/Core/ConfigManager.cpp 2023-10-27 13:48:21.555727990 +0000
@@ -139,6 +139,10 @@ void SConfig::SetRunningGameMetadata(con
SetRunningGameMetadata(game_id, "", 0, 0, DiscIO::Region::Unknown);
}
+void SConfig::SetBaseSaveState(const std::string& base_save_state) {
+ m_base_save_state = base_save_state;
+}
+
void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::string& gametdb_id,
u64 title_id, u16 revision, DiscIO::Region region)
{
diff -rupN dolphin.orig/Source/Core/Core/ConfigManager.h dolphin/Source/Core/Core/ConfigManager.h
--- dolphin.orig/Source/Core/Core/ConfigManager.h 2023-09-26 17:58:02.809995703 +0000
+++ dolphin/Source/Core/Core/ConfigManager.h 2023-10-27 13:48:21.555727990 +0000
@@ -56,6 +56,8 @@ struct SConfig
// TODO: remove this as soon as the ticket view hack in IOS/ES/Views is dropped.
bool m_disc_booted_from_game_list = false;
+ const std::string& GetBaseSaveState() const { return m_base_save_state; }
+ void SetBaseSaveState(const std::string& base_save_state);
const std::string& GetGameID() const { return m_game_id; }
const std::string& GetGameTDBID() const { return m_gametdb_id; }
const std::string& GetTitleName() const { return m_title_name; }
@@ -109,6 +111,7 @@ private:
static SConfig* m_Instance;
+ std::string m_base_save_state;
std::string m_game_id;
std::string m_gametdb_id;
std::string m_title_name;
diff -rupN dolphin.orig/Source/Core/Core/Core.cpp dolphin/Source/Core/Core/Core.cpp
--- dolphin.orig/Source/Core/Core/Core.cpp 2023-09-26 17:58:02.809995703 +0000
+++ dolphin/Source/Core/Core/Core.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Core/Core.cpp 2023-10-27 19:08:44.565345159 +0000
@@ -474,6 +474,8 @@ static void EmuThread(std::unique_ptr<Bo
// is relative to the render window, instead of the main window.
ASSERT(g_controller_interface.IsInit());
@ -457,7 +506,7 @@ diff -rupN dolphin.orig/Source/Core/Core/Core.cpp dolphin/Source/Core/Core/Core.
Pad::LoadGBAConfig();
diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp dolphin/Source/Core/Core/HW/GCPadEmu.cpp
--- dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp 2023-09-26 17:58:02.817995888 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.cpp 2023-10-27 13:46:40.045373218 +0000
@@ -24,6 +24,7 @@ static const u16 button_bitmasks[] = {
PAD_BUTTON_X,
PAD_BUTTON_Y,
@ -478,7 +527,7 @@ diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp dolphin/Source/Core/Cor
MAIN_STICK_GROUP, _trans("Control Stick"), MAIN_STICK_GATE_RADIUS));
diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.h dolphin/Source/Core/Core/HW/GCPadEmu.h
--- dolphin.orig/Source/Core/Core/HW/GCPadEmu.h 2023-09-26 17:58:02.817995888 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.h 2023-10-27 13:46:40.045373218 +0000
@@ -65,6 +65,7 @@ public:
static constexpr const char* X_BUTTON = "X";
static constexpr const char* Y_BUTTON = "Y";
@ -487,9 +536,105 @@ diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.h dolphin/Source/Core/Core/
static constexpr const char* START_BUTTON = "Start";
// i18n: The left trigger button (labeled L on real controllers)
diff -rupN dolphin.orig/Source/Core/Core/State.cpp dolphin/Source/Core/Core/State.cpp
--- dolphin.orig/Source/Core/Core/State.cpp 2023-09-26 17:58:02.829996165 +0000
+++ dolphin/Source/Core/Core/State.cpp 2023-10-27 19:10:09.907147486 +0000
@@ -327,7 +327,10 @@ static std::string SystemTimeAsDoubleToS
#endif
}
-static std::string MakeStateFilename(int number);
+static std::string MakeStateFilename(bool useId, int number);
+static std::string MakeStateFilename_partdirectory(int number);
+static std::string MakeStateFilename_partfileName(int number);
+static std::string MakeStateFilename_partfileID(int number);
// read state timestamps
static std::map<double, int> GetSavedStates()
@@ -336,7 +339,7 @@ static std::map<double, int> GetSavedSta
std::map<double, int> m;
for (int i = 1; i <= (int)NUM_STATES; i++)
{
- std::string filename = MakeStateFilename(i);
+ std::string filename = MakeStateFilename(true, i);
if (File::Exists(filename))
{
if (ReadHeader(filename, header))
@@ -536,7 +539,7 @@ bool ReadHeader(const std::string& filen
std::string GetInfoStringOfSlot(int slot, bool translate)
{
- std::string filename = MakeStateFilename(slot);
+ std::string filename = MakeStateFilename(true, slot);
if (!File::Exists(filename))
return translate ? Common::GetStringT("Empty") : "Empty";
@@ -550,7 +553,7 @@ std::string GetInfoStringOfSlot(int slot
u64 GetUnixTimeOfSlot(int slot)
{
State::StateHeader header;
- if (!ReadHeader(MakeStateFilename(slot), header))
+ if (!ReadHeader(MakeStateFilename(true, slot), header))
return 0;
constexpr u64 MS_PER_SEC = 1000;
@@ -751,20 +754,48 @@ void Shutdown()
}
}
-static std::string MakeStateFilename(int number)
+static std::string MakeStateFilename(bool useId, int number)
{
- return fmt::format("{}{}.s{:02d}", File::GetUserPath(D_STATESAVES_IDX),
- SConfig::GetInstance().GetGameID(), number);
+ // if the useId flag is set : if the file with name exits, returns it, otherwise, if the file with id exists, returns it, otherwise, return the file with name
+ // => priority with the file with name.
+ // if the game is not loaded from a file (disk), use the gameId
+ std::string filePartName = MakeStateFilename_partfileName(number);
+ std::string fileWithName = fmt::format("{}{}", MakeStateFilename_partdirectory(number), filePartName);
+ if (File::Exists(fileWithName) && filePartName != "")
+ return fileWithName;
+ std::string fileWithId = fmt::format("{}{}", MakeStateFilename_partdirectory(number), MakeStateFilename_partfileID(number));
+ if (File::Exists(fileWithId) && useId)
+ return fileWithId;
+ if(filePartName == "") return fileWithId;
+ return fileWithName;
+}
+
+static std::string MakeStateFilename_partdirectory(int number)
+{
+ return File::GetUserPath(D_STATESAVES_IDX);
+}
+
+static std::string MakeStateFilename_partfileID(int number)
+{
+ return fmt::format("{}.s{:02d}", SConfig::GetInstance().GetGameID(), number);
+}
+
+static std::string MakeStateFilename_partfileName(int number)
+{
+ std::string basesavestate = SConfig::GetInstance().GetBaseSaveState();
+ if(basesavestate == "") return "";
+ return fmt::format("{}.s{:02d}", basesavestate, number);
}
void Save(int slot, bool wait)
{
- SaveAs(MakeStateFilename(slot), wait);
+ std::string savePath = MakeStateFilename(false, slot);
+ SaveAs(savePath, wait);
}
void Load(int slot)
{
- LoadAs(MakeStateFilename(slot));
+ LoadAs(MakeStateFilename(true, slot));
}
void LoadLastSaved(int i)
diff -rupN dolphin.orig/Source/Core/DolphinLib.props dolphin/Source/Core/DolphinLib.props
--- dolphin.orig/Source/Core/DolphinLib.props 2023-09-26 17:58:02.829996165 +0000
+++ dolphin/Source/Core/DolphinLib.props 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/DolphinLib.props 2023-10-27 13:46:40.185376472 +0000
@@ -1207,6 +1207,7 @@
<ClCompile Include="VideoBackends\Vulkan\VKPerfQuery.cpp" />
<ClCompile Include="VideoBackends\Vulkan\VKPipeline.cpp" />
@ -500,7 +645,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinLib.props dolphin/Source/Core/Dolphin
<ClCompile Include="VideoBackends\Vulkan\VKSwapChain.cpp" />
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt
--- dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-09-26 17:58:02.833996257 +0000
+++ dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-10-27 13:46:40.157375820 +0000
@@ -17,6 +17,22 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux"
target_sources(dolphin-nogui PRIVATE PlatformFBDev.cpp)
endif()
@ -526,7 +671,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt dolphin/Source/C
target_link_libraries(dolphin-nogui
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-09-26 17:58:02.833996257 +0000
+++ dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-10-27 13:46:40.173376194 +0000
@@ -155,6 +155,11 @@ static std::unique_ptr<Platform> GetPlat
{
std::string platform_name = static_cast<const char*>(options.get("platform"));
@ -552,7 +697,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp dolphin/Source/Co
optparse::Values& options = CommandLineParse::ParseArguments(parser.get(), argc, argv);
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/Platform.h dolphin/Source/Core/DolphinNoGUI/Platform.h
--- dolphin.orig/Source/Core/DolphinNoGUI/Platform.h 2023-09-26 17:58:02.833996257 +0000
+++ dolphin/Source/Core/DolphinNoGUI/Platform.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/DolphinNoGUI/Platform.h 2023-10-27 13:46:40.185376472 +0000
@@ -35,6 +35,10 @@ public:
static std::unique_ptr<Platform> CreateX11Platform();
#endif
@ -566,7 +711,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/Platform.h dolphin/Source/Core/
#endif
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp 2023-09-26 18:27:27.334792936 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp 2023-10-27 13:46:40.185376472 +0000
@@ -0,0 +1,364 @@
+// Copyright 2018 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -934,7 +1079,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp dolphin/Sou
+}
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-09-26 17:58:02.833996257 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-10-27 13:46:40.185376472 +0000
@@ -57,8 +57,8 @@ private:
#endif
int m_window_x = Config::Get(Config::MAIN_RENDER_WINDOW_XPOS);
@ -981,7 +1126,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp dolphin/Source/
}
diff -rupN dolphin.orig/Source/Core/InputCommon/GCPadStatus.h dolphin/Source/Core/InputCommon/GCPadStatus.h
--- dolphin.orig/Source/Core/InputCommon/GCPadStatus.h 2023-09-26 17:58:02.845996536 +0000
+++ dolphin/Source/Core/InputCommon/GCPadStatus.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/InputCommon/GCPadStatus.h 2023-10-27 13:46:40.297379075 +0000
@@ -26,6 +26,7 @@ enum PadButton
PAD_BUTTON_X = 0x0400,
PAD_BUTTON_Y = 0x0800,
@ -992,7 +1137,7 @@ diff -rupN dolphin.orig/Source/Core/InputCommon/GCPadStatus.h dolphin/Source/Cor
struct GCPadStatus
diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp
--- dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-09-26 21:41:39.568275473 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-10-27 13:46:40.349380285 +0000
@@ -471,11 +471,7 @@ Renderer::Renderer(std::unique_ptr<GLCon
g_ogl_config.bSupportsDebug =
GLExtensions::Supports("GL_KHR_debug") || GLExtensions::Supports("GL_ARB_debug_output");
@ -1105,7 +1250,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp dolphin/Sour
m_system_framebuffer->UpdateDimensions(m_backbuffer_width, m_backbuffer_height);
diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.h dolphin/Source/Core/VideoBackends/OGL/OGLRender.h
--- dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.h 2023-09-26 21:32:17.039048706 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.h 2023-10-27 13:46:40.345380190 +0000
@@ -31,6 +31,14 @@ enum GlslVersion
GlslEs310, // GLES 3.1
GlslEs320, // GLES 3.2
@ -1151,7 +1296,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.h dolphin/Source
bool bSupportsAniso;
diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLTexture.cpp dolphin/Source/Core/VideoBackends/OGL/OGLTexture.cpp
--- dolphin.orig/Source/Core/VideoBackends/OGL/OGLTexture.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLTexture.cpp 2023-09-26 21:34:37.398249032 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLTexture.cpp 2023-10-27 13:46:40.345380190 +0000
@@ -128,12 +128,18 @@ OGLTexture::OGLTexture(const TextureConf
GLenum gl_internal_format = GetGLInternalFormatForTextureFormat(m_config.format, true);
if (tex_config.IsMultisampled())
@ -1174,7 +1319,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLTexture.cpp dolphin/Sou
{
diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp dolphin/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
--- dolphin.orig/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp 2023-09-26 21:37:11.705777665 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp 2023-10-27 13:46:40.341380098 +0000
@@ -661,12 +661,13 @@ void ProgramShaderCache::CreateHeader()
std::string SupportedESTextureBuffer;
switch (g_ogl_config.SupportedESPointSize)
@ -1235,7 +1380,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp dol
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp
--- dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-10-27 13:46:40.357380469 +0000
@@ -32,6 +32,16 @@ bool SWOGLWindow::IsHeadless() const
return m_gl_context->IsHeadless();
}
@ -1274,7 +1419,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp dolph
GLsizei glHeight = (GLsizei)m_gl_context->GetBackBufferHeight();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h
--- dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-10-27 13:46:40.357380469 +0000
@@ -20,6 +20,10 @@ public:
GLContext* GetContext() const { return m_gl_context.get(); }
bool IsHeadless() const;
@ -1288,7 +1433,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h dolphin
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-10-27 13:46:40.357380469 +0000
@@ -60,17 +60,17 @@ SWRenderer::CreateFramebuffer(AbstractTe
static_cast<SWTexture*>(depth_attachment));
}
@ -1344,7 +1489,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp dolphi
u32 value = 0;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h dolphin/Source/Core/VideoBackends/Software/SWRenderer.h
--- dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.h 2023-10-27 13:46:40.357380469 +0000
@@ -29,7 +29,7 @@ public:
std::unique_ptr<AbstractFramebuffer>
CreateFramebuffer(AbstractTexture* color_attachment, AbstractTexture* depth_attachment) override;
@ -1365,7 +1510,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h dolphin/
} // namespace SW
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-10-27 13:46:40.357380469 +0000
@@ -35,6 +35,8 @@ add_library(videovulkan
VulkanContext.h
VulkanLoader.cpp
@ -1377,7 +1522,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt dolphin/
target_link_libraries(videovulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-10-27 13:46:40.357380469 +0000
@@ -10,24 +10,24 @@
#include "Common/MsgHandler.h"
#include "Common/Thread.h"
@ -1778,7 +1923,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cp
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-10-27 13:46:40.357380469 +0000
@@ -22,10 +22,12 @@
namespace Vulkan
@ -1919,7 +2064,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h dolphin/Source/Core/VideoBackends/Vulkan/Constants.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/Constants.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/Constants.h 2023-10-27 13:46:40.357380469 +0000
@@ -12,7 +12,7 @@
namespace Vulkan
{
@ -1931,7 +2076,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h dolphin/Sou
constexpr size_t NUM_FRAMES_IN_FLIGHT = 2;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-10-27 13:46:40.357380469 +0000
@@ -389,6 +389,8 @@ VkSampler ObjectCache::GetSampler(const
VkRenderPass ObjectCache::GetRenderPass(VkFormat color_format, VkFormat depth_format,
u32 multisamples, VkAttachmentLoadOp load_op)
@ -1952,7 +2097,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp dolphin
m_render_pass_cache.clear();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-10-27 13:46:40.357380469 +0000
@@ -7,6 +7,7 @@
#include <cstddef>
#include <map>
@ -1971,7 +2116,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h dolphin/S
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-10-27 13:46:40.357380469 +0000
@@ -8,6 +8,7 @@
#include "Common/Assert.h"
@ -1994,7 +2139,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp dolph
void StagingBuffer::BufferMemoryBarrier(VkCommandBuffer command_buffer, VkBuffer buffer,
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-10-27 13:46:40.369380750 +0000
@@ -16,59 +16,93 @@
namespace Vulkan
@ -2395,7 +2540,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp dolphi
&m_compute_descriptor_set, 1, &m_bindings.utility_ubo_offset);
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-10-27 13:46:40.369380750 +0000
@@ -13,28 +13,24 @@
namespace Vulkan
@ -2472,7 +2617,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h dolphin/
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-10-27 13:46:40.369380750 +0000
@@ -12,6 +12,7 @@
#include "VideoBackends/Vulkan/StagingBuffer.h"
#include "VideoBackends/Vulkan/StateTracker.h"
@ -2611,7 +2756,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp dolph
bool VKBoundingBox::CreateGPUBuffer()
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-10-27 13:46:40.369380750 +0000
@@ -18,6 +18,7 @@
#include "VideoBackends/Vulkan/VKVertexManager.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -2697,7 +2842,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp dolphin/Sour
UnloadVulkanLibrary();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-10-27 13:46:40.369380750 +0000
@@ -11,6 +11,7 @@
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
@ -2818,7 +2963,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp dolphin
}
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-10-27 13:46:40.369380750 +0000
@@ -31,6 +31,7 @@
#include "VideoBackends/Vulkan/VKVertexFormat.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -3540,7 +3685,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp dolphin/
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -0,0 +1,155 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
@ -3699,7 +3844,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp dolphin
+} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h 2023-10-27 13:46:40.377380934 +0000
@@ -0,0 +1,160 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
@ -3863,7 +4008,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h dolphin/S
+} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -12,6 +12,7 @@
#include "Common/MsgHandler.h"
@ -3938,7 +4083,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp dolp
m_current_offset = new_offset;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -13,9 +13,9 @@
#include "VideoBackends/Vulkan/CommandBufferManager.h"
@ -4104,7 +4249,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp dolphin
return false;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-10-27 13:46:40.377380934 +0000
@@ -3,6 +3,7 @@
#pragma once
@ -4159,7 +4304,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h dolphin/S
u32 m_layers = 0;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -21,6 +21,7 @@
#include "VideoBackends/Vulkan/VKStreamBuffer.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -4668,7 +4813,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp dolphin/S
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-10-27 13:46:40.377380934 +0000
@@ -67,8 +67,8 @@ public:
// irrelevant and will not be loaded.
void OverrideImageLayout(VkImageLayout new_layout);
@ -4682,7 +4827,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h dolphin/Sou
bool CreateView(VkImageViewType type);
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -15,6 +15,7 @@
#include "VideoBackends/Vulkan/CommandBufferManager.h"
#include "VideoBackends/Vulkan/StateTracker.h"
@ -4878,7 +5023,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp dol
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-10-27 13:46:40.377380934 +0000
@@ -274,6 +274,13 @@ bool VulkanContext::SelectInstanceExtens
return false;
}
@ -4895,7 +5040,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp dolph
!AddExtension(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, true))
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-10-27 13:46:40.377380934 +0000
@@ -49,6 +49,11 @@ VULKAN_INSTANCE_ENTRY_POINT(vkCreateXlib
VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceXlibPresentationSupportKHR, false)
#endif
@ -4910,7 +5055,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl d
#endif
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-09-26 17:58:02.853996721 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-10-27 13:46:40.377380934 +0000
@@ -13,6 +13,10 @@
#define VK_USE_PLATFORM_XLIB_KHR
#endif
@ -4924,7 +5069,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h dolphin/
#endif
diff -rupN dolphin.orig/Source/Core/VideoCommon/FramebufferManager.cpp dolphin/Source/Core/VideoCommon/FramebufferManager.cpp
--- dolphin.orig/Source/Core/VideoCommon/FramebufferManager.cpp 2023-09-26 17:58:02.857996813 +0000
+++ dolphin/Source/Core/VideoCommon/FramebufferManager.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoCommon/FramebufferManager.cpp 2023-10-27 13:46:40.429382144 +0000
@@ -630,7 +630,7 @@ void FramebufferManager::DestroyReadback
bool FramebufferManager::CreateReadbackFramebuffer()
@ -4963,7 +5108,7 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/FramebufferManager.cpp dolphin/S
}
diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp dolphin/Source/Core/VideoCommon/RenderBase.cpp
--- dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp 2023-09-26 17:58:02.857996813 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.cpp 2023-10-27 13:46:40.429382144 +0000
@@ -364,19 +364,24 @@ void Renderer::RenderToXFB(u32 xfbAddr,
return;
}
@ -5027,7 +5172,7 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp dolphin/Source/Co
diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.h dolphin/Source/Core/VideoCommon/RenderBase.h
--- dolphin.orig/Source/Core/VideoCommon/RenderBase.h 2023-09-26 17:58:02.857996813 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.h 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.h 2023-10-27 13:46:40.429382144 +0000
@@ -193,7 +193,8 @@ public:
std::tuple<MathUtil::Rectangle<int>, MathUtil::Rectangle<int>>
ConvertStereoRectangle(const MathUtil::Rectangle<int>& rc) const;
@ -5070,7 +5215,7 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.h dolphin/Source/Core
int m_last_window_request_width = 0;
diff -rupN dolphin.orig/Source/Core/VideoCommon/TextureCacheBase.cpp dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp
--- dolphin.orig/Source/Core/VideoCommon/TextureCacheBase.cpp 2023-09-26 17:58:02.857996813 +0000
+++ dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp 2023-09-26 18:02:22.836042087 +0000
+++ dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp 2023-10-27 13:46:40.429382144 +0000
@@ -1046,7 +1046,7 @@ static void SetSamplerState(u32 index, f
// that have arbitrary contents, eg. are used for fog effects where the
// distance they kick in at is important to preserve at any resolution.

View file

@ -3,7 +3,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="flycast-sa"
PKG_VERSION="35b7be39053a7564026417c33a4b956fe23e2608"
PKG_VERSION="8fb3def2d5cdd6adea00171ed720afb390cafd78"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/flyinghead/flycast"
PKG_URL="${PKG_SITE}.git"
@ -30,8 +30,9 @@ else
fi
pre_configure_target() {
export CXXFLAGS="${CXXFLAGS} -Wno-error=array-bounds"
PKG_CMAKE_OPTS_TARGET+=" -DUSE_OPENMP=ON"
export CXXFLAGS="${CXXFLAGS} -Wno-error=array-bounds"
PKG_CMAKE_OPTS_TARGET+=" -DUSE_OPENMP=ON"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/CMakeLists.txt
}
makeinstall_target() {

View file

@ -2,7 +2,7 @@
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
PKG_NAME="hatarisa"
PKG_VERSION="e8317e263b3d6e221210fa4c843a0a13195c6e32"
PKG_VERSION="5cf9518e7a07a3b35f8fc953725930810f035c4e"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/hatari/hatari"
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"

View file

@ -0,0 +1,145 @@
[1.0]
Advanced\68kCore=3
Advanced\SH2Interpreter=0
Cartridge\ModemIP=127.0.0.1
Cartridge\ModemPort=1337
Cartridge\Path\32MbitDram=
Cartridge\STVGame=0
Cartridge\Type=7
Debug\Addr2Line=
General\Bios=
General\BiosSettings=
General\CdRom=2
General\CdRomISO=
General\ClockSync=true
General\EnableEmulatedBios=false
General\EnableMultiThreading=true
General\EnableVSync=true
General\FixedBaseTime=1998-01-01T12:00:00
General\Geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\a\x7f\0\0\x4K\0\0\0\0\0\0\0\x14\0\0\a\x7f\0\0\x4K\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\x14\0\0\a\x7f\0\0\x4K)
General\NumThreads=4
General\SH2Cache=false
General\SaveStates=/storage/.config/kronos/
General\ScreenshotsDirectory=/storage/screenshots
General\ScreenshotsFormat=bmp
General\ShowFPS=false
General\SystemLanguageID=0
General\Translation=
General\Version=2.5.0
Input\GunMouseSensitivity=100
Input\PerCore=3
Input\Port\1\Id\1\Controller\2\Key\0=2097168
Input\Port\1\Id\1\Controller\2\Key\1=2097184
Input\Port\1\Id\1\Controller\2\Key\10=3
Input\Port\1\Id\1\Controller\2\Key\11=4
Input\Port\1\Id\1\Controller\2\Key\12=1114114
Input\Port\1\Id\1\Controller\2\Key\2=2097216
Input\Port\1\Id\1\Controller\2\Key\3=2097280
Input\Port\1\Id\1\Controller\2\Key\4=6
Input\Port\1\Id\1\Controller\2\Key\5=5
Input\Port\1\Id\1\Controller\2\Key\6=8
Input\Port\1\Id\1\Controller\2\Key\7=1
Input\Port\1\Id\1\Controller\2\Key\8=2
Input\Port\1\Id\1\Controller\2\Key\9=1114117
Input\Port\1\Id\1\Type=2
Memory\ExtendMemory=true
Memory\Path=/storage/.config/kronos/bkram.bin
MpegROM\Path=
Recents\ISOs=
STV\Region=E
Shortcuts\%26Backup%20Manager...=Alt+B
Shortcuts\%26Cheats%20List...=Alt+L
Shortcuts\%26Debug=
Shortcuts\%26Emulation=
Shortcuts\%26File=
Shortcuts\%26Fullscreen=Alt+Return
Shortcuts\%26Help=
Shortcuts\%26Layer=
Shortcuts\%26Log=Ctrl+L
Shortcuts\%26Master%20SH2=
Shortcuts\%26Pause=F2
Shortcuts\%26Quit=Ctrl+Q
Shortcuts\%26Reset=F3
Shortcuts\%26Settings...=Ctrl+S
Shortcuts\%26Slave%20SH2=
Shortcuts\%26Tools=
Shortcuts\%26Transfer=Ctrl+T
Shortcuts\%26Vertical%20synchronization=F4
Shortcuts\%26View=
Shortcuts\0%20...%20=Alt+0
Shortcuts\1%20...%20=Alt+1
Shortcuts\2%20...%20=Alt+2
Shortcuts\3%20...%20=Alt+3
Shortcuts\4%20...%20=Alt+4
Shortcuts\5%20...%20=Alt+5
Shortcuts\6%20...%20=Alt+6
Shortcuts\7%20...%20=Alt+7
Shortcuts\8%20...%20=Alt+8
Shortcuts\9%20...%20=Alt+9
Shortcuts\Cheat%20%26Search...=Alt+S
Shortcuts\Eject\Load%20ISO...=Ctrl+I
Shortcuts\F%26PS=F12
Shortcuts\From%20File...=F5
Shortcuts\L%26oad%20State=
Shortcuts\Load0=Alt+0
Shortcuts\Load1=Alt+1
Shortcuts\Load2=Alt+2
Shortcuts\Load3=Alt+3
Shortcuts\Load4=Alt+4
Shortcuts\Load5=Alt+5
Shortcuts\Load6=Alt+6
Shortcuts\Load7=Alt+7
Shortcuts\Load8=Alt+8
Shortcuts\Load9=Alt+9
Shortcuts\Log=
Shortcuts\M%2668K=
Shortcuts\Memory%20%26Editor=
Shortcuts\Memory%20Transfer=
Shortcuts\NBG0=2
Shortcuts\NBG1=3
Shortcuts\NBG2=4
Shortcuts\NBG3=5
Shortcuts\Open%20%26CD%20Rom...=Ctrl+C
Shortcuts\R%26un=F1
Shortcuts\RBG0=6
Shortcuts\RBG1=7
Shortcuts\S%26CSP=
Shortcuts\S%26ave%20State=
Shortcuts\SCU-%26DSP=
Shortcuts\Save0=Ctrl+0
Shortcuts\Save1=Ctrl+1
Shortcuts\Save2=Ctrl+2
Shortcuts\Save3=Ctrl+3
Shortcuts\Save4=Ctrl+4
Shortcuts\Save5=Ctrl+5
Shortcuts\Save6=Ctrl+6
Shortcuts\Save7=Ctrl+7
Shortcuts\Save8=Ctrl+8
Shortcuts\Save9=Ctrl+9
Shortcuts\Sc%26reenshot=Ctrl+P
Shortcuts\Sound...=
Shortcuts\Start=
Shortcuts\Stop=
Shortcuts\To%20File...=F9
Shortcuts\VDP%261=
Shortcuts\VDP%262=
Shortcuts\Vdp1=1
Shortcuts\Video%20Driver=
Shortcuts\toolBar=
Sound\SoundCore=4
Sound\Volume=100
Video\AspectRatio=0
Video\BandingMode=0
Video\Fullscreen=true
Video\MeshMode=0
Video\OSDCore=3
Video\VideoCore=1
Video\Wireframe=0
Video\compute_shader_mode=1
Video\filter_type=0
Video\polygon_generation_mode=2
Video\resolution_mode=1
Video\upscale_type=0
View\Menubar=2
View\Toolbar=2
autostart=true

View file

@ -0,0 +1,44 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="kronos-sa"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/FCare/Kronos"
PKG_ARCH="x86_64"
PKG_URL="${PKG_SITE}.git"
PKG_VERSION="8e0eade"
PKG_GIT_CLONE_BRANCH="extui-align"
PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft zlib qt5 egl-wayland"
PKG_LONGDESC="Kronos is a Sega Saturn emulator forked from yabause."
PKG_TOOLCHAIN="cmake-make"
GET_HANDLER_SUPPORT="git"
PKG_PATCH_DIRS+="${DEVICE}"
PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause "
if [ "${OPENGL_SUPPORT}" = yes ]; then
PKG_DEPENDS_TARGET+=" ${OPENGL} libglvnd glfw"
fi
pre_configure_target() {
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/yabause/src/CMakeLists.txt
PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause "
if [ "${OPENGL_SUPPORT}" = yes ]; then
PKG_CMAKE_OPTS_TARGET+=" -DYAB_WANT_OPENGL=ON"
fi
PKG_CMAKE_OPTS_TARGET+=" -DCMAKE_BUILD_TYPE=Release \
-DYAB_USE_QT5=ON"
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -a ${PKG_BUILD}/src/port/qt/kronos ${INSTALL}/usr/bin/kronos
cp -a ${PKG_DIR}/scripts/start_kronos.sh ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/start_kronos.sh
mkdir -p ${INSTALL}/usr/config/kronos/qt
cp ${PKG_DIR}/config/kronos.ini ${INSTALL}/usr/config/kronos/qt
}

View file

@ -0,0 +1,13 @@
diff --git a/yabause/src/CMakeLists.txt b/yabause/src/CMakeLists.txt
index 6a088226..efa2d8de 100755
--- a/yabause/src/CMakeLists.txt
+++ b/yabause/src/CMakeLists.txt
@@ -388,7 +388,7 @@ if (YAB_WANT_OPENGL AND (YAB_RGB STREQUAL ""))
if (OPENGL_SUPPORTED)
add_definitions(-DHAVE_LIBGL=1)
- set(KRONOS_LIBRARIES ${KRONOS_LIBRARIES} ${OPENGL_CURRENT_LIBRARIES})
+ set(KRONOS_LIBRARIES ${KRONOS_LIBRARIES} ${OPENGL_CURRENT_LIBRARIES} -lglfw -lGLU -lGL -lGLEW)
include_directories(./ ./tools/nanovg)
set(kronos_SOURCES ${kronos_SOURCES}

View file

@ -0,0 +1,119 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
# Source predefined functions and variables
. /etc/profile
jslisten set "-9 kronos"
ROM_DIR="/storage/roms/saturn/kronos"
CONFIG_DIR="/storage/.config/kronos/qt"
SOURCE_DIR="/usr/config/kronos/qt"
BIOS_BACKUP="/storage/roms/bios/kronos"
if [ ! -d "${ROM_DIR}" ]
then
mkdir -p "${ROM_DIR}"
fi
if [ ! -d "${BIOS_BACKUP}" ]
then
mkdir -p "${BIOS_BACKUP}"
fi
if [ ! -d "${CONFIG_DIR}" ]
then
mkdir -p "${CONFIG_DIR}"
fi
if [ ! -e "${CONFIG_DIR}/kronos.ini" ]
then
cp -f ${SOURCE_DIR}/kronos.ini ${CONFIG_DIR}
fi
BIOS=""
GAME=$(echo "${1}"| sed "s#^/.*/##")
USE_BIOS=$(get_setting use_hlebios saturn "${GAME}")
if [ ! "${USE_BIOS}" = 1 ]
then
USE_BIOS=$(get_setting use_hlebios saturn)
fi
USE_SKIP=$(get_setting use_autoskip saturn "${GAME}")
if [ "$USE_SKIP" = 1 ]
then
AUTOSKIP="-autoframeskip 1"
fi
VIDEO_DRIVER=$(get_setting video_driver saturn "${GAME}")
case ${VIDEO_DRIVER} in
opengl)
sed -i 's~Video\\VideoCore=.*$~Video\\VideoCore=1~g' ${CONFIG_DIR}/kronos.ini
;;
*)
#Software
sed -i 's~Video\\VideoCore=.*$~Video\\VideoCore=2~g' ${CONFIG_DIR}/kronos.ini
;;
esac
AUDIO_DRIVER=$(get_setting audio_driver saturn "${GAME}")
case ${AUDIO_DRIVER} in
openal)
sed -i 's~Sound\\SoundCore=.*$~Sound\\SoundCore=4~g' ${CONFIG_DIR}/kronos.ini
;;
*)
#SDL
sed -i 's~Sound\\SoundCore=.*$~Sound\\SoundCore=1~g' ${CONFIG_DIR}/kronos.ini
;;
esac
SHOW_FPS=$(get_setting show_fps saturn "${GAME}")
case ${SHOW_FPS} in
1)
sed -i 's~General\\ShowFPS=.*$~General\\ShowFPS=true~g' ${CONFIG_DIR}/kronos.ini
;;
*)
sed -i 's~General\\ShowFPS=.*$~General\\ShowFPS=false~g' ${CONFIG_DIR}/kronos.ini
;;
esac
USE_VSYNC=$(get_setting use_vsync saturn "${GAME}")
case ${USE_VSYNC} in
1)
sed -i 's~General\\EnableVSync=.*$~General\\EnableVSync=true~g' ${CONFIG_DIR}/kronos.ini
;;
*)
sed -i 's~General\\EnableVSync=.*$~General\\EnableVSync=false~g' ${CONFIG_DIR}/kronos.ini
;;
esac
COMPUTE_SHADER=$(get_setting gpu_rgb saturn "${GAME}")
Video\compute_shader_mode
case ${COMPUTE_SHADER} in
1)
#gpu
sed -i 's~Video\\compute_shader_mode=.*$~Video\\compute_shader_mode=1~g' ${CONFIG_DIR}/kronos.ini
;;
*)
#cpu
sed -i 's~Video\\compute_shader_mode=.*$~Video\\compute_shader_mode=1~g' ${CONFIG_DIR}/kronos.ini
;;
esac
TESSELLATION=$(get_setting tessellation saturn "${GAME}")
case ${TESSELLATION} in
gpu)
sed -i 's~Video\\polygon_generation_mode=.*$~Video\\polygon_generation_mode=2~g' ${CONFIG_DIR}/kronos.ini
;;
*)
#cpu
sed -i 's~Video\\polygon_generation_mode=.*$~Video\\polygon_generation_mode=1~g' ${CONFIG_DIR}/kronos.ini
;;
esac
#Get the number of active threads
ACTIVE_THREADS=$(grep processor /proc/cpuinfo | wc -l)
sed -i 's~General\\NumThreads=.*$~General\\NumThreads='${ACTIVE_THREADS}'~g' ${CONFIG_DIR}/kronos.ini
kronos -a -f -i "${1}" ${BIOS} ${AUTOSKIP} >>/var/log/exec.log 2>&1 ||:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,60 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2023-present asoderq/sydarn2 (https://github.com/asoderq)
PKG_NAME="mednafen"
PKG_VERSION="1.31.0-UNSTABLE"
PKG_LICENSE="mixed"
PKG_SITE="https://mednafen.github.io/"
PKG_URL="${PKG_SITE}/releases/files/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_DEPENDS_TARGET="toolchain SDL2 libegl"
PKG_TOOLCHAIN="configure"
pre_configure_target() {
# unsupported modules
DISABLED_MODULES+=" --disable-apple2 \
--disable-sasplay \
--disable-ssfplay"
case ${DEVICE} in
RK3326)
DISABLED_MODULES+=" --disable-snes \
--disable-ss \
--disable-psx"
;;
RK356*)
DISABLED_MODULES+=" --disable-ss \
--disable-psx"
;;
esac
PKG_CONFIGURE_OPTS_TARGET="${DISABLED_MODULES}"
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/bin
cp -rf ${PKG_BUILD}/.${TARGET_NAME}/src/mednafen ${INSTALL}/usr/bin
cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/bin
chmod +x ${INSTALL}/usr/bin/start_mednafen.sh
mkdir -p ${INSTALL}/usr/config/${PKG_NAME}
if [ -d ${PKG_DIR}/config/${DEVICE} ]; then
cp ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/${PKG_NAME}
else
cp ${PKG_DIR}/config/common/* ${INSTALL}/usr/config/${PKG_NAME}
fi
}
post_install() {
case ${DEVICE} in
S922X)
LIBEGL="export SDL_VIDEO_GL_DRIVER=\/usr\/lib\/egl\/libGL.so.1 SDL_VIDEO_EGL_DRIVER=\/usr\/lib\/egl\/libEGL.so.1"
;;
*)
LIBEGL=""
;;
esac
sed -e "s/@LIBEGL@/${LIBEGL}/g" \
-i ${INSTALL}/usr/bin/start_mednafen.sh
}

View file

@ -0,0 +1,29 @@
From 92b2e4a6ff5569dbb21b3791434413154acc3284 Mon Sep 17 00:00:00 2001
From: "asoderq/sydarn(2)" <soder.alexander@gmail.com>
Date: Tue, 19 Sep 2023 20:48:38 +0200
Subject: [PATCH 1/1] list joysticks
---
src/drivers/main.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/drivers/main.cpp b/src/drivers/main.cpp
index a6f7db2..e69e4c4 100644
--- a/src/drivers/main.cpp
+++ b/src/drivers/main.cpp
@@ -1980,6 +1980,13 @@ __attribute__((force_align_arg_pointer)) // Not sure what's going on to cause th
#endif
int main(int argc, char *argv[])
{
+ if(argc == 2) {
+ const char* ljoy = "--list-joysticks";
+ size_t size = ljoy < argv[1] ? strlen(ljoy) : strlen(argv[1]);
+ if(!strncmp(ljoy, argv[1], size))
+ JoystickManager::Init();
+ return 0;
+ }
// SuppressErrorPopups must be set very early.
{
char* mnp = getenv("MEDNAFEN_NOPOPUPS");
--
2.39.2

View file

@ -0,0 +1,179 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present asoderq (https://github.com/asoderq)
. /etc/profile
export MEDNAFEN_HOME=/storage/.config/mednafen
MEDNAFEN_CONFIG=/usr/config/mednafen/mednafen.cfg
#Emulation Station Features
GAME=$(echo "${1}"| sed "s#^/.*/##")
CORE=$(echo "${2}"| sed "s#^/.*/##")
PLATFORM=$(echo "${3}"| sed "s#^/.*/##")
STRETCH=$(get_setting stretch "${PLATFORM}" "${GAME}")
SHADER=$(get_setting shader "${PLATFORM}" "${GAME}")
#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${GAME}")
if [ "${CORES}" = "little" ]
then
EMUPERF="${SLOW_CORES}"
elif [ "${CORES}" = "big" ]
then
EMUPERF="${FAST_CORES}"
else
### All..
unset EMUPERF
fi
# delete current config
rm $MEDNAFEN_HOME/mednafen.cfg
# Generate controller config
# Set controller sdl guid
GUID1="$(mednafen --list-joysticks | grep ID | awk 'NR==1 {print $2}')"
sed -e "s/@GUID1@/${GUID1}/g" ${MEDNAFEN_CONFIG} >> $MEDNAFEN_HOME/mednafen.cfg
# Buttons mapping
for CONTROL in DEVICE_BTN_SOUTH DEVICE_BTN_EAST DEVICE_BTN_NORTH \
DEVICE_BTN_WEST DEVICE_BTN_TL DEVICE_BTN_TR \
DEVICE_BTN_TL2 DEVICE_BTN_TR2 DEVICE_BTN_SELECT \
DEVICE_BTN_START DEVICE_BTN_MODE DEVICE_BTN_THUMBL \
DEVICE_BTN_THUMBR DEVICE_BTN_DPAD_UP DEVICE_BTN_DPAD_DOWN \
DEVICE_BTN_DPAD_LEFT DEVICE_BTN_DPAD_RIGHT
do
sed -i -e "s/@${CONTROL}@/button_${!CONTROL}/g" $MEDNAFEN_HOME/mednafen.cfg
done
#Set Save folder
sed -i -e "s/@PLATFORM@/${PLATFORM}/g" $MEDNAFEN_HOME/mednafen.cfg
# Get command line switches
FEATURES_CMDLINE=""
if [[ "${CORE}" =~ pce[_fast] ]]
then
if [ "$(get_setting nospritelimit ${PLATFORM} "${GAME}")" = "1" ]
then
FEATURES_CMDLINE+=" -${CORE}.nospritelimit 1"
else
FEATURES_CMDLINE+=" -${CORE}.nospritelimit 0"
fi
if [ "$(get_setting forcesgx ${PLATFORM} "${GAME}")" = "1" ]
then
FEATURES_CMDLINE+=" -${CORE}.forcesgx 1"
else
FEATURES_CMDLINE+=" -${CORE}.forcesgx 0"
fi
if [ "${CORE}" = pce_fast ]
then
OCM=$(get_setting ocmultiplier ${PLATFORM} "${GAME}")
if [ ${OCM} > 1 ]
then
FEATURES_CMDLINE+=" -${CORE}.ocmultiplier ${OCM}"
else
FEATURES_CMDLINE+=" -${CORE}.ocmultiplier 1"
fi
CDS=$(get_setting cdspeed ${PLATFORM} "${GAME}")
if [ ${CDS} > 1 ]
then
FEATURES_CMDLINE+=" -${CORE}.cdspeed ${CDS}"
else
FEATURES_CMDLINE+=" -${CORE}.cdspeed 1"
fi
fi
elif [ "${CORE}" = "gb" ]
then
ST=$(get_setting system_type "${PLATFORM}" "${GAME}")
if [[ "${ST}" =~ auto|dmg|cgb|agb ]]
then
FEATURES_CMDLINE+=" -${CORE}.system_type ${ST}"
else
FEATURES_CMDLINE+=" -${CORE}.system_type auto"
fi
elif [ "${CORE}" = "gba" ]
then
if [ $(get_setting tblur "${PLATFORM}" "${GAME}") = "1" ]
then
FEATURES_CMDLINE+=" -${CORE}.tblur 1"
else
FEATURES_CMDLINE+=" -${CORE}.tblur 0"
fi
elif [ "${CORE}" = "nes" ]
then
if [ $(get_setting clipsides "${PLATFORM}" "${GAME}") = "1" ]
then
FEATURES_CMDLINE+=" -${CORE}.clipsides 1"
else
FEATURES_CMDLINE+=" -${CORE}.clipsides 0"
fi
if [ $(get_setting no8lim "${PLATFORM}" "${GAME}") = "1" ]
then
FEATURES_CMDLINE+=" -${CORE}.no8lim 1"
else
FEATURES_CMDLINE+=" -${CORE}.no8lim 0"
fi
elif [ "${CORE}" = "vb" ]
then
CE=$(get_setting cpu_emulation "${PLATFORM}" "${GAME}")
if [[ "${CE}" =~ fast|accurate ]]
then
FEATURES_CMDLINE+=" -${CORE}.cpu_emulation ${CE}"
else
FEATURES_CMDLINE+=" -${CORE}.cpu_emulation fast"
fi
DM=$(get_setting 3dmode "${PLATFORM}" "${GAME}")
if [[ "${DM}" =~ anaglyph|cscope|sidebyside|vli|hli|left|right] ]]
then
FEATURES_CMDLINE+=" -${CORE}.3dmode ${CE}"
fi
elif [ "${CORE}" = "pcfx" ]
then
CE=$(get_setting cpu_emulation "${PLATFORM}" "${GAME}")
if [[ "${CE}" =~ auto|fast|accurate ]]
then
FEATURES_CMDLINE+=" -${CORE}.cpu_emulation ${CE}"
else
FEATURES_CMDLINE+=" -${CORE}.cpu_emulation auto"
fi
CS=$(get_setting cdspeed "${PLATFORM}" "${GAME}")
if [ CS > 2]
then
FEATURES_CMDLINE+=" -${CORE}.cdspeed ${CS}"
else
FEATURES_CMDLINE+=" -${CORE}.cdspeed 2"
fi
elif [ "${CORE}" = "ss" ]
then
IP1=$(get_setting input.port1 "${PLATFORM}" "${GAME}")
if [[ "${IP1}" =~ gamepad|3dpad|gun ]]
then
FEATURES_CMDLINE+=" -${CORE}.input.port1 ${IP1}"
else
FEATURES_CMDLINE+=" -${CORE}.input.port1 gamepad"
fi
IP13DMODE=$(get_setting input.port1.3dpad.mode.defpos "${PLATFORM}" "${GAME}")
if [[ "${IP13DMODE}" =~ digital|analog ]]
then
FEATURES_CMDLINE+=" -${CORE}.input.port1.3dpad.mode.defpos ${IP13DMODE}"
else
FEATURES_CMDLINE+=" -${CORE}.input.port1.3dpad.mode.defpos analog"
fi
CART=$(get_setting cart "${PLATFORM}" "${GAME}")
if [[ "${CART}" =~ auto|none|backup|extram1|extram4|cs1ram16 ]]
then
FEATURES_CMDLINE+=" -${CORE}.cart ${CART}"
else
FEATURES_CMDLINE+=" -${CORE}.cart auto"
fi
CARTAD=$(get_setting cart.auto_default "${PLATFORM}" "${GAME}")
if [[ "${CARTAD}" =~ none|backup|extram1|extram4|cs1ram16 ]]
then
FEATURES_CMDLINE+=" -${CORE}.cart.auto_default ${CARTAD}"
else
FEATURES_CMDLINE+=" -${CORE}.cart.auto_default none"
fi
fi
#Run mednafen
@LIBEGL@
${EMUPERF} /usr/bin/mednafen -force_module ${CORE} -${CORE}.stretch ${STRETCH:="aspect"} -${CORE}.shader ${SHADER:="ipsharper"} ${FEATURES_CMDLINE} "${1}"

View file

@ -45,6 +45,9 @@ make_target() {
export CROSS_COMPILE="${TARGET_PREFIX}"
export APIDIR=$(get_build_dir mupen64plus-sa-core)/src/api
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-audio-sdl.so ${PKG_BUILD}/projects/unix/mupen64plus-audio-sdl-base.so

View file

@ -40,6 +40,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
}

View file

@ -45,6 +45,9 @@ make_target() {
export CROSS_COMPILE="${TARGET_PREFIX}"
export APIDIR=$(get_build_dir mupen64plus-sa-core)/src/api
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-input-sdl.so ${PKG_BUILD}/projects/unix/mupen64plus-input-sdl-base.so

View file

@ -53,6 +53,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-rsp-cxd4${SUFFIX}.so ${PKG_BUILD}/projects/unix/mupen64plus-rsp-cxd4-base.so

View file

@ -45,6 +45,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-rsp-hle.so ${PKG_BUILD}/projects/unix/mupen64plus-rsp-hle-base.so

View file

@ -41,6 +41,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus ${PKG_BUILD}/projects/unix/mupen64plus-base

View file

@ -45,6 +45,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-video-glide64mk2.so ${PKG_BUILD}/projects/unix/mupen64plus-video-glide64mk2-base.so

View file

@ -51,6 +51,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/src/CMakeLists.txt
./src/getRevision.sh
cmake ${PKG_MAKE_OPTS_TARGET} -DAPIDIR=${APIDIR} -DMUPENPLUSAPI=On -DGLIDEN64_BUILD_TYPE=Release -DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS} -pthread" -S src -B projects/cmake
make clean -C projects/cmake

View file

@ -45,6 +45,8 @@ make_target() {
export SDL_LDLIBS="-lSDL2_net -lSDL2"
export CROSS_COMPILE="${TARGET_PREFIX}"
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/projects/unix/Makefile
make -C projects/unix clean
make -C projects/unix all ${PKG_MAKE_OPTS_TARGET}
cp ${PKG_BUILD}/projects/unix/mupen64plus-video-rice.so ${PKG_BUILD}/projects/unix/mupen64plus-video-rice-base.so

View file

@ -7,7 +7,7 @@ PKG_REV="1"
PKG_ARCH="any"
PKG_SITE="https://github.com/hrydgard/ppsspp"
PKG_URL="${PKG_SITE}.git"
PKG_VERSION="e93f9f64cc3979ff7d1dddc2fbec7ddc410da3dc"
PKG_VERSION="a9d2ff29ea06c709c3cd077eeb720ce9efdc4f6f"
PKG_LICENSE="GPLv2"
PKG_DEPENDS_TARGET="toolchain ffmpeg libzip SDL2 zlib zip"
PKG_SHORTDESC="PPSSPPDL"

View file

@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="retroarch"
PKG_VERSION="b53bce6877642b66739c82cee6c6af8d0a09ac1c"
PKG_VERSION="54805a182789cb5a76516884aebedfa3c6bf7e9f"
PKG_SITE="https://github.com/libretro/RetroArch"
PKG_URL="${PKG_SITE}.git"
PKG_LICENSE="GPLv3"

View file

@ -3,7 +3,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="rpcs3-sa"
PKG_VERSION="7081b89e976ad7f931c926022bd93ddd9778347c"
PKG_VERSION="ed75bab7b284a9cb62b7308097108e4caef9a0b3"
PKG_ARCH="x86_64"
PKG_LICENSE="GPL-2.0-or-later"
PKG_SITE="https://rpcs3.net"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="vita3k-sa"
PKG_VERSION="44d8c5da9cc6bed0b670099f4d131296ff8acf25"
PKG_VERSION="564417b3b6a31296a2a09912c249a0145376e3c8"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/Vita3K/Vita3K"
PKG_URL="${PKG_SITE}.git"

View file

@ -2,7 +2,7 @@ diff --git a/vita3k/renderer/src/vulkan/context.cpp b/vita3k/renderer/src/vulkan
index cbe8ff0acb..2d8d618e7d 100644
--- a/vita3k/renderer/src/vulkan/context.cpp
+++ b/vita3k/renderer/src/vulkan/context.cpp
@@ -242,21 +242,21 @@ void VKContext::start_render_pass(bool create_descriptor_set) {
@@ -247,21 +247,21 @@ void VKContext::start_render_pass(bool create_descriptor_set) {
if (!is_recording)
start_recording();
@ -12,7 +12,7 @@ index cbe8ff0acb..2d8d618e7d 100644
.framebuffer = current_framebuffer
};
if (render_target->has_macroblock_sync) {
if (render_target->has_macroblock_sync && !ignore_macroblock) {
// set the render area to the correct macroblock
- curr_renderpass_info.renderArea = {
+ curr_renderpass_info.renderArea = vk::Rect2D{

View file

@ -19,34 +19,20 @@ diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index d4dcfc94..4cb3e1ee 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -369,11 +369,33 @@ target_compile_definitions(tracy PUBLIC $<$<CONFIG:Debug,RelWithDebInfo>:TRACY_E
@@ -344,11 +344,20 @@ target_compile_definitions(tracy PUBLIC $<$<CONFIG:Debug,RelWithDebInfo>:TRACY_E
#
# target_compile_definitions(tracy PUBLIC TRACY_ENABLE)
# Use XDG desktop portals on Linux
-# Use XDG desktop portals on Linux
-set(NFD_PORTAL ON)
+#set(NFD_PORTAL ON)
# nativefiledialog-extended
-add_subdirectory(nativefiledialog-extended)
+#add_subdirectory(nativefiledialog-extended)
# Create alias to prevent the need of multiple changes in case the target name changes
-add_library(NFDe::NFDe ALIAS nfd)
-set_property(TARGET nfd PROPERTY FOLDER externals)
+#add_library(NFDe::NFDe ALIAS nfd)
+#set_property(TARGET nfd PROPERTY FOLDER externals)
+
+# Create alias to prevent the need of multiple changes in case the target name changes
+# Batocera - bring back nativefiledialog
+if(WIN32)
+ add_library(nativefiledialog STATIC nativefiledialog-cmake/src/nfd_win.cpp nativefiledialog-cmake/src/nfd_common.c)
+ target_include_directories(nativefiledialog PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/nativefiledialog-cmake/src/include")
+elseif(APPLE)
+ add_library(nativefiledialog STATIC nativefiledialog-cmake/src/nfd_cocoa.m nativefiledialog-cmake/src/nfd_common.c)
+ target_include_directories(nativefiledialog PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/nativefiledialog-cmake/src/include")
+elseif(UNIX)
+if(UNIX)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
+
-# nativefiledialog-extended
-add_subdirectory(nativefiledialog-extended)
+ include_directories(${GTK3_INCLUDE_DIRS})
+ link_directories(${GTK3_LIBRARY_DIRS})
+
@ -57,7 +43,9 @@ index d4dcfc94..4cb3e1ee 100644
+ target_link_libraries(nativefiledialog ${GTK3_LIBRARIES})
+endif()
+set_property(TARGET nativefiledialog PROPERTY FOLDER externals)
\ No newline at end of file
-# Create alias to prevent the need of multiple changes in case the target name changes
-add_library(NFDe::NFDe ALIAS nfd)
diff --git a/vita3k/CMakeLists.txt b/vita3k/CMakeLists.txt
index e1b27dfd..25d8f88b 100644
--- a/vita3k/CMakeLists.txt
@ -95,27 +83,22 @@ index ef7de553..811ee661 100644
target_include_directories(gui PUBLIC include ${CMAKE_SOURCE_DIR}/vita3k)
target_link_libraries(gui PUBLIC app compat config dialog emuenv https ime imgui glutil lang regmgr np)
-target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 vkutil host::dialog)
+target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 vkutil nativefiledialog)
-target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 touch vkutil host::dialog)
+target_link_libraries(gui PRIVATE audio ctrl kernel miniz psvpfsparser pugixml::pugixml stb renderer packages sdl2 touch vkutil nativefiledialog)
target_link_libraries(gui PUBLIC tracy)
diff --git a/vita3k/gui/src/archive_install_dialog.cpp b/vita3k/gui/src/archive_install_dialog.cpp
index 67832991..5d724637 100644
--- a/vita3k/gui/src/archive_install_dialog.cpp
+++ b/vita3k/gui/src/archive_install_dialog.cpp
@@ -19,11 +19,12 @@
@@ -19,7 +19,7 @@
#include "private.h"
#include <gui/functions.h>
-#include <host/dialog/filesystem.hpp>
+#include <nfd.h>
#include <packages/sfo.h>
#include <util/string_utils.h>
+#include <nfd.h>
+
#include <thread>
namespace gui {
@@ -32,7 +33,7 @@ static bool delete_archive_file;
static std::string state, type, title;
static std::map<fs::path, std::vector<ContentInfo>> contents_archives;
@ -196,10 +179,10 @@ index 1b7208e6..f29150f7 100644
static void get_firmware_version(EmuEnvState &emuenv) {
fs::ifstream versionFile(emuenv.pref_path + L"/PUP_DEC/PUP/version.txt");
@@ -50,7 +50,7 @@ void draw_firmware_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
auto firmware_installation = lang["firmware_installation"].c_str();
auto common = emuenv.common_dialog.lang.common;
@@ -46,7 +46,7 @@ static void get_firmware_version(EmuEnvState &emuenv) {
}
void draw_firmware_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
+ nfdresult_t result = NFD_CANCEL;
@ -283,7 +266,7 @@ diff --git a/vita3k/gui/src/license_install_dialog.cpp b/vita3k/gui/src/license_
index beabedb8..7eb910a5 100644
--- a/vita3k/gui/src/license_install_dialog.cpp
+++ b/vita3k/gui/src/license_install_dialog.cpp
@@ -17,15 +17,16 @@
@@ -17,15 +17,15 @@
#include "private.h"
@ -291,47 +274,46 @@ index beabedb8..7eb910a5 100644
#include <misc/cpp/imgui_stdlib.h>
#include <packages/functions.h>
#include <util/string_utils.h>
+#include <nfd.h>
+
namespace gui {
static std::string state, title, zRIF;
-std::filesystem::path work_path = "";
+nfdchar_t *work_path;
static bool delete_work_file;
-std::filesystem::path license_path = "";
+nfdchar_t *license_path;
static bool delete_license_file;
void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -66,10 +67,10 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -67,10 +67,10 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
if (ImGui::Button(common["cancel"].c_str(), BUTTON_SIZE))
gui.file_menu.license_install_dialog = false;
} else if (state == "work") {
} else if (state == "license") {
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
- result = host::dialog::filesystem::open_file(work_path, { { "PlayStation Vita software license file", { "bin", "rif" } } });
- result = host::dialog::filesystem::open_file(license_path, { { "PlayStation Vita software license file", { "bin", "rif" } } });
- if (result == host::dialog::filesystem::Result::SUCCESS) {
- if (copy_license(emuenv, fs::path(work_path.wstring())))
- if (copy_license(emuenv, fs::path(license_path.wstring())))
+ nfdresult_t result = NFD_CANCEL;
+ result = NFD_OpenDialog("bin,rif", nullptr, &work_path);
+ result = NFD_OpenDialog("bin,rif", nullptr, &license_path);
+ if (result == NFD_OKAY) {
+ if (copy_license(emuenv, work_path))
+ if (copy_license(emuenv, license_path))
state = "success";
else
state = "fail";
@@ -106,12 +106,12 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -105,12 +105,12 @@ void draw_license_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
ImGui::Spacing();
ImGui::Separator();
ImGui::Spacing();
- if (work_path != "")
+ if (work_path)
ImGui::Checkbox(lang["delete_bin_rif"].c_str(), &delete_work_file);
- if (license_path != "")
+ if (license_path)
ImGui::Checkbox(license["delete_bin_rif"].c_str(), &delete_license_file);
ImGui::SetCursorPos(ImVec2(POS_BUTTON, ImGui::GetWindowSize().y - BUTTON_SIZE.y - (20.f * SCALE.y)));
if (ImGui::Button(common["ok"].c_str(), BUTTON_SIZE)) {
if (delete_work_file) {
- fs::remove(fs::path(work_path.wstring()));
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(work_path))));
delete_work_file = false;
if (delete_license_file) {
- fs::remove(fs::path(license_path.wstring()));
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(license_path))));
delete_license_file = false;
}
work_path = nullptr;
license_path = nullptr;
diff --git a/vita3k/gui/src/pkg_install_dialog.cpp b/vita3k/gui/src/pkg_install_dialog.cpp
index 75c11214..46fcf6f8 100644
--- a/vita3k/gui/src/pkg_install_dialog.cpp
@ -344,22 +326,22 @@ index 75c11214..46fcf6f8 100644
#include <misc/cpp/imgui_stdlib.h>
#include <packages/functions.h>
#include <packages/pkg.h>
@@ -27,18 +26,19 @@
@@ -25,19 +25,18 @@
#include <rif2zrif.h>
#include <util/log.h>
#include <util/string_utils.h>
-
+#include <nfd.h>
+
#include <thread>
namespace gui {
-static std::filesystem::path pkg_path = "";
-static std::filesystem::path work_path = "";
+static nfdchar_t *pkg_path, *work_path;
-static std::filesystem::path license_path = "";
+static nfdchar_t *pkg_path, *license_path;
static std::string state, title, zRIF;
static bool draw_file_dialog = true;
static bool delete_pkg_file, delete_work_file;
static bool delete_pkg_file, delete_license_file;
void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
- host::dialog::filesystem::Result result = host::dialog::filesystem::Result::CANCEL;
@ -387,16 +369,16 @@ index 75c11214..46fcf6f8 100644
gui.file_menu.pkg_install_dialog = false;
draw_file_dialog = true;
}
@@ -98,9 +98,9 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -97,9 +96,9 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
draw_file_dialog = true;
}
} else if (state == "work") {
- result = host::dialog::filesystem::open_file(work_path, { { "PlayStation Vita software license file", { "bin" } } });
} else if (state == "license") {
- result = host::dialog::filesystem::open_file(license_path, { { "PlayStation Vita software license file", { "bin", "rif" } } });
- if (result == host::dialog::filesystem::Result::SUCCESS) {
- fs::ifstream binfile(work_path.wstring(), std::ios::in | std::ios::binary | std::ios::ate);
+ result = NFD_OpenDialog("bin", nullptr, &work_path);
- fs::ifstream binfile(license_path.wstring(), std::ios::in | std::ios::binary | std::ios::ate);
+ result = NFD_OpenDialog("bin,rif", nullptr, &license_path);
+ if (result == NFD_OKAY) {
+ fs::ifstream binfile(string_utils::utf_to_wide(std::string(work_path)), std::ios::in | std::ios::binary | std::ios::ate);
+ fs::ifstream binfile(string_utils::utf_to_wide(std::string(license_path)), std::ios::in | std::ios::binary | std::ios::ate);
zRIF = rif2zrif(binfile);
state = "install";
} else
@ -409,13 +391,13 @@ index 75c11214..46fcf6f8 100644
std::lock_guard<std::mutex> lock(install_mutex);
state = "success";
} else {
@@ -144,17 +144,17 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -143,17 +142,17 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
ImGui::Separator();
ImGui::Spacing();
ImGui::Checkbox(lang["delete_pkg"].c_str(), &delete_pkg_file);
- if (work_path != "")
+ if (work_path)
ImGui::Checkbox(lang["delete_work"].c_str(), &delete_work_file);
- if (license_path != "")
+ if (license_path)
ImGui::Checkbox(lang["delete_bin_rif"].c_str(), &delete_license_file);
ImGui::Spacing();
ImGui::SetCursorPos(ImVec2(POS_BUTTON, ImGui::GetWindowSize().y - BUTTON_SIZE.y - (20.f * SCALE.y)));
if (ImGui::Button(common["ok"].c_str(), BUTTON_SIZE)) {
@ -424,20 +406,20 @@ index 75c11214..46fcf6f8 100644
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(pkg_path))));
delete_pkg_file = false;
}
if (delete_work_file) {
- fs::remove(fs::path(work_path.wstring()));
if (delete_license_file) {
- fs::remove(fs::path(license_path.wstring()));
+ fs::remove(fs::path(string_utils::utf_to_wide(std::string(pkg_path))));
delete_work_file = false;
delete_license_file = false;
}
if ((emuenv.app_info.app_category.find("gd") != std::string::npos) || (emuenv.app_info.app_category.find("gp") != std::string::npos)) {
@@ -162,8 +162,8 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
@@ -160,8 +160,8 @@ void draw_pkg_install_dialog(GuiState &gui, EmuEnvState &emuenv) {
save_apps_cache(gui, emuenv);
}
update_notice_info(gui, emuenv, "content");
- pkg_path = "";
- work_path = "";
- license_path = "";
+ pkg_path = nullptr;
+ work_path = nullptr;
+ license_path = nullptr;
gui.file_menu.pkg_install_dialog = false;
draw_file_dialog = true;
state.clear();

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="xemu-sa"
PKG_VERSION="v0.7.113"
PKG_VERSION="v0.7.116"
PKG_ARCH="x86_64"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/xemu-project/xemu"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="yuzu-sa"
PKG_VERSION="249db0a59bb4aadb031f270ed79044f91defb98d"
PKG_VERSION="6eb3a583cbbb55ebe6dd2409f5f53aef02cff561"
PKG_ARCH="x86_64"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/yuzu-emu/yuzu"

View file

@ -97,6 +97,10 @@ ln -sf /storage/roms/bios/yuzu/keys /storage/.config/yuzu/keys
then
sed -i '/^aspect_ratio=/c\aspect_ratio=3' /storage/.config/yuzu/qt-config.ini
fi
if [ "$ASPECT" = "4" ]
then
sed -i '/^aspect_ratio=/c\aspect_ratio=4' /storage/.config/yuzu/qt-config.ini
fi
#GPU Accuracy
sed -i '/^gpu_accuracy\\default=/c\gpu_accuracy\\default=false' /storage/.config/yuzu/qt-config.ini

View file

@ -2,7 +2,7 @@
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="control-gen"
PKG_VERSION="95cb4d4f28e1743c6a7f3c0266049f68b2134b60"
PKG_VERSION="47234c710a073ff02fe1a99e1b6dff912259ac32"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_DEPENDS_TARGET="toolchain"

View file

@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="gamecontrollerdb"
PKG_VERSION="6f3c4edcb5a2e2ed090ca8af40d2c0f00dcd77f6"
PKG_VERSION="eb831f75abb5c796fb2f2843c3e055d2b8cba29b"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_DEPENDS_TARGET="toolchain SDL2"

View file

@ -0,0 +1,18 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="egl-wayland"
PKG_VERSION="1.1.13"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/NVIDIA/egl-wayland"
PKG_URL=${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.tar.gz
PKG_DEPENDS_TARGET="toolchain eglexternalplatform"
PKG_LONGDESC="Wayland EGL External Platform library."
configure_package() {
if [ "${DISPLAYSERVER}" = "wl" ]
then
PKG_DEPENDS_TARGET+=" wayland"
fi
}

View file

@ -0,0 +1,17 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="eglexternalplatform"
PKG_VERSION="1.1"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/NVIDIA/${PKG_NAME}"
PKG_URL=${PKG_SITE}/archive/refs/tags/${PKG_VERSION}.tar.gz
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Wayland EGL External Platform library."
PKG_TOOLCHAIN="manual"
makeinstall_target() {
mkdir -p ${SYSROOT_PREFIX}/usr/{include,lib/pkgconfig}
cp -rf ${PKG_BUILD}/interface/* ${SYSROOT_PREFIX}/usr/include
cp -rf ${PKG_BUILD}/eglexternalplatform.pc ${SYSROOT_PREFIX}/usr/lib/pkgconfig
}

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
PKG_NAME="glfw"
PKG_VERSION="3eaf125"
@ -15,8 +15,7 @@ pre_configure_target() {
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_SHARED_LIBS=ON \
-DGLFW_BUILD_DOCS=OFF \
-DGLFW_BUILD_EXAMPLES=OFF \
-DGLFW_BUILD_TESTS=OFF \
-DGLFW_INSTALL=OFF"
-DGLFW_BUILD_TESTS=OFF"
}
if [ "${DISPLAYSERVER}" = "x11" ]; then
@ -34,9 +33,3 @@ post_unpack() {
sed -i "s|\${WAYLAND_CLIENT_PKGDATADIR}|${TOOLCHAIN}/share/wayland|" ${PKG_BUILD}/src/CMakeLists.txt
}
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/
cp ${PKG_BUILD}/.${TARGET_NAME}/src/libglfw* ${INSTALL}/usr/lib/
cp -rf ${PKG_BUILD}/include/* ${SYSROOT_PREFIX}/usr/include
}

View file

@ -0,0 +1,16 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
PKG_NAME="libegl"
PKG_VERSION="1.0"
PKG_LICENSE="GPLv2"
PKG_ARCH="arm aarch64"
PKG_DEPENDS_TARGET="toolchain"
PKG_TOOLCHAIN="manual"
PKG_LONGDESC="Libraries needed to run OpenGL applications on devices that dont have native OpenGL support."
makeinstall_target() {
export STRIP=true
mkdir -p ${INSTALL}/usr/lib/egl
tar -xvf ${PKG_DIR}/sources/libegl.tar.gz -C ${INSTALL}/usr/lib/egl
}

Binary file not shown.

View file

@ -2,7 +2,7 @@
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libglvnd"
PKG_VERSION="1.6.0"
PKG_VERSION="1.7.0"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/NVIDIA/libglvnd"
PKG_URL="https://github.com/NVIDIA/libglvnd/archive/v${PKG_VERSION}.tar.gz"
@ -17,16 +17,16 @@ configure_package() {
}
pre_configure_target(){
if [ ! "${OPENGL}" = "no" ]
if [ "${OPENGL_SUPPORT}" = "yes" ]
then
PKG_MESON_OPTS_TARGET+=" -Degl=true -Dheaders=true"
PKG_MESON_OPTS_TARGET+=" -Degl=true -Dglx=enabled -Dheaders=true"
fi
if [ ! "${OPENGLES_SUPPORT}" = "no" ]
if [ "${OPENGLES_SUPPORT}" = "yes" ]
then
PKG_MESON_OPTS_TARGET+=" -Dgles1=true -Dgles2=true -Dheaders=true"
else
PKG_MESON_OPTS_TARGET+=" -Dgles2=false"
PKG_MESON_OPTS_TARGET+=" -Dgles1=false -Dgles2=false"
fi
}

View file

@ -51,7 +51,7 @@ if [ "${DISPLAYSERVER}" = "x11" ]; then
export X11_INCLUDES=
PKG_MESON_OPTS_TARGET+=" -Dplatforms=x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true"
elif [ "${DISPLAYSERVER}" = "wl" ]; then
PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw"
PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw egl-wayland"
PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland,x11 -Ddri3=enabled -Dglx=dri -Dglvnd=true"
PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd"
export X11_INCLUDES=

View file

@ -10,20 +10,29 @@ case "$1" in
"pause")
sendkey "p"
;;
"skip5s")
sendkey "RIGHT"
"changeaudio")
sendkey "#"
;;
"changesub")
sendkey "j"
;;
"showosd")
sendkey "O"
;;
"back5s")
sendkey "LEFT"
;;
"skip60s")
sendkey "UP"
"skip5s")
sendkey "RIGHT"
;;
"back60s")
sendkey "DOWN"
;;
"skip60s")
sendkey "UP"
;;
"quit")
sendkey "q"
sendkey "Q"
;;
esac

View file

@ -55,6 +55,8 @@ performance
if [[ $EMULATOR = "retroarch" ]]; then
EMU="${CORE}_libretro"
RETROARCH="yes"
elif [[ $EMULATOR = "mednafen" ]]; then
EMU="mednafen"
else
EMU="${CORE}"
fi
@ -250,7 +252,11 @@ bluetooth disable
jslisten stop
### Per emulator/core configurations
if [ -z ${RETROARCH} ]
if [[ $EMULATOR = "mednafen" ]]; then
jslisten set "-9 mednafen"
RUNTHIS='${TBASH} /usr/bin/start_mednafen.sh "${ROMNAME}" "${CORE}" "${PLATFORM}"'
elif [ -z ${RETROARCH} ]
then
$VERBOSE && log $0 "Configuring for a non-libretro emulator"
case ${PLATFORM} in

View file

@ -758,14 +758,20 @@ function set_runahead() {
local RUNAHEAD="$(game_setting runahead)"
local HAS_RUNAHEAD="$(match ${PLATFORM} ${NO_RUNAHEAD[@]})"
case ${HAS_RUNAHEAD} in
0|false|none)
1)
add_setting "none" "run_ahead_enabled" "false"
add_setting "none" "run_ahead_frames" "1"
add_setting "none" "run_ahead_frames" "0"
;;
*)
add_setting "none" "run_ahead_enabled" "true"
add_setting "none" "run_ahead_frames" "${RUNAHEAD}"
add_setting "secondinstance" "run_ahead_secondary_instance"
if [ "${RUNAHEAD}" -gt 0 ]
then
add_setting "none" "run_ahead_enabled" "true"
add_setting "none" "run_ahead_frames" "${RUNAHEAD}"
add_setting "secondinstance" "run_ahead_secondary_instance"
else
add_setting "none" "run_ahead_enabled" "false"
add_setting "none" "run_ahead_frames" "0"
fi
;;
esac
}

View file

@ -20,5 +20,5 @@ case ${ASPECT} in
;;
esac
/usr/bin/mpv --fullscreen --geometry=${RES} --hwdec=auto --input-ipc-server=/tmp/mpvsocket "${1}"
/usr/bin/mpv --fullscreen --geometry=${RES} --hwdec=auto-safe --input-ipc-server=/tmp/mpvsocket "${1}"
exit 0

View file

@ -0,0 +1 @@
options esp8089 esp_reset_gpio=105

View file

@ -0,0 +1,34 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="esp8089"
PKG_VERSION="1.9.20230804"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/al177/esp8089"
PKG_URL="https://github.com/al177/esp8089/archive/refs/tags/1.9.20230804.tar.gz"
PKG_DEPENDS_TARGET="toolchain linux"
PKG_NEED_UNPACK="${LINUX_DEPENDS}"
PKG_LONGDESC="ESP8089 Wifi Driver"
PKG_IS_KERNEL_PKG="yes"
PKG_TOOLCHAIN="make"
pre_make_target() {
unset LDFLAGS
}
make_target() {
make V=1 \
ARCH=${TARGET_KERNEL_ARCH} \
KSRC=$(kernel_path) \
CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \
TARGET=$(kernel_version) \
KERNEL_MODULES=$(get_build_dir linux)/.install_pkg/$(get_full_module_dir) \
KBUILD=$(get_build_dir linux)
}
makeinstall_target() {
mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME}
cp *.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME}
}

View file

@ -0,0 +1,47 @@
--- a/sdio_sif_esp.c 2023-08-04 15:04:02.000000000 -0600
+++ b/sdio_sif_esp.c 2023-10-27 12:08:08.302695270 -0600
@@ -50,6 +50,24 @@
//unsigned int esp_msg_level = 0;
unsigned int esp_msg_level = ESP_DBG_ERROR | ESP_SHOW;
+/* HdG: Note:
+ * 1) MMC_HAS_FORCE_DETECT_CHANGE is a hack which is set by my sunxi-wip
+ * tree. FIXME replace with a version check once mmc_force_detect_change()
+ * is added to the mainline kernel.
+ * 2) This version does NOT implement keep_power, the dts must mark the
+ * regulators as regulator-always-on and not use mmc-pwrseq for this stub
+ * to work.
+ */
+#ifndef MMC_HAS_FORCE_DETECT_CHANGE
+void mmc_force_detect_change(struct mmc_host *host, unsigned long delay,
+ bool keep_power)
+{
+ host->caps &= ~MMC_CAP_NONREMOVABLE;
+ host->caps |= MMC_CAP_NEEDS_POLL;
+ mmc_detect_change(host, delay);
+}
+#endif
+
static struct semaphore esp_powerup_sem;
static enum esp_sdio_state sif_sdio_state;
@@ -500,6 +518,7 @@
int err = 0;
struct esp_pub *epub;
struct esp_sdio_ctrl *sctrl;
+ struct mmc_host *host = func->card->host;
esp_dbg(ESP_DBG_TRACE,
"sdio_func_num: 0x%X, vendor id: 0x%X, dev id: 0x%X, block size: 0x%X/0x%X\n",
@@ -609,6 +628,10 @@
if(sif_sdio_state == ESP_SDIO_STATE_FIRST_INIT){
esp_dbg(ESP_DBG_ERROR, "first normal exit\n");
sif_sdio_state = ESP_SDIO_STATE_FIRST_NORMAL_EXIT;
+
+ /* Rescan the esp8089 after loading the initial firmware */
+ mmc_force_detect_change(host, msecs_to_jiffies(100), true);
+
up(&esp_powerup_sem);
}

View file

@ -4,7 +4,7 @@
PKG_NAME="linux"
PKG_LICENSE="GPL"
PKG_VERSION="6.5.8"
PKG_VERSION="6.5.9"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_SITE="http://www.kernel.org"
PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host"

View file

@ -1,2 +1,3 @@
dwc2
mt7921e mt7921_common mt76_connac_lib mt76
esp8089

View file

@ -4,7 +4,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="es-theme-art-book-next"
PKG_VERSION="b9979c32d9ba25a31b28e9ff159e8397ca0b307a"
PKG_VERSION="1bbd47382bef153512f66772a37ef38f04d9cef3"
PKG_ARCH="any"
PKG_LICENSE="CUSTOM"
PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos"

View file

@ -9,13 +9,16 @@
### For a list of available buttons, cat /etc/profile.d/01-deviceconfig
###
BTN_PAUSE=${DEVICE_BTN_START}
BTN_PAUSE=${DEVICE_BTN_SOUTH}
BTN_CHANGEAUDIO=${DEVICE_BTN_EAST}
BTN_CHANGESUB=${DEVICE_BTN_WEST}
BTN_SHOWOSD=${DEVICE_BTN_NORTH}
BTN_BACK5S=${DEVICE_BTN_DPAD_LEFT}
BTN_SKIP5S=${DEVICE_BTN_DPAD_RIGHT}
BTN_BACK60S=${DEVICE_BTN_DPAD_DOWN}
BTN_SKIP60S=${DEVICE_BTN_DPAD_UP}
BTN_QUIT_HOTKEY=${DEVICE_BTN_SELECT}
BTN_QUIT_SELECT=${DEVICE_BTN_START}
BTN_SKIP5S=${DEVICE_BTN_TR}
BTN_BACK5S=${DEVICE_BTN_TL}
BTN_SKIP60S=${DEVICE_BTN_TR2}
BTN_BACK60S=${DEVICE_BTN_TL2}
BTN_KILL_HOTKEY=${DEVICE_BTN_TL}
BTN_KILL_SELECTA=${DEVICE_BTN_SELECT}
BTN_KILL_SELECTB=${DEVICE_BTN_START}
BTN_KILL_SELECTB=${DEVICE_BTN_START}

View file

@ -28,27 +28,39 @@ jslisten() {
program="/usr/bin/manage_mpv.sh pause"
button1=${BTN_PAUSE}
[Exit]
program="/usr/bin/manage_mpv.sh quit"
button1=${BTN_QUIT_HOTKEY}
button2=${BTN_QUIT_SELECT}
[ChangeAudio]
program="/usr/bin/manage_mpv.sh changeaudio"
button1=${BTN_CHANGEAUDIO}
[Skip5s]
program="/usr/bin/manage_mpv.sh skip5s"
button1=${BTN_SKIP5S}
[ChangeSub]
program="/usr/bin/manage_mpv.sh changesub"
button1=${BTN_CHANGESUB}
[ShowOSD]
program="/usr/bin/manage_mpv.sh showosd"
button1=${BTN_SHOWOSD}
[Back5s]
program="/usr/bin/manage_mpv.sh back5s"
button1=${BTN_BACK5S}
[Skip60s]
program="/usr/bin/manage_mpv.sh skip60s"
button1=${BTN_SKIP60S}
[Skip5s]
program="/usr/bin/manage_mpv.sh skip5s"
button1=${BTN_SKIP5S}
[Back60s]
program="/usr/bin/manage_mpv.sh back60s"
button1=${BTN_BACK60S}
[Skip60s]
program="/usr/bin/manage_mpv.sh skip60s"
button1=${BTN_SKIP60S}
[Exit]
program="/usr/bin/manage_mpv.sh quit"
button1=${BTN_QUIT_HOTKEY}
button2=${BTN_QUIT_SELECT}
EOF
fi

View file

@ -1,5 +1,171 @@
<?xml version="1.0" encoding="UTF-8" ?>
<features>
<emulator name="mednafen">
<features>
<feature name="autosave">
<choice name="0"/>
<choice name="1"/>
</feature>
<feature name="shader">
<choice name="none"/>
<choice name="autoip"/>
<choice name="autoipsharper"/>
<choice name="scale2x"/>
<choice name="sabr"/>
<choice name="ipsharper"/>
<choice name="ipxnoty"/>
<choice name="ipynotx"/>
<choice name="ipxnotysharper"/>
<choice name="ipynotxsharper"/>
<choice name="goat"/>
</feature>
<feature name="stretch">
<choice name="0"/>
<choice name="full"/>
<choice name="aspect"/>
<choice name="aspect_int"/>
</feature>
</features>
<cores>
<core name="lynx"/>
<core name="gb">
<features>
<feature name="system_type">
<choice name="auto"/>
<choice name="dmg"/>
<choice name="cgb"/>
<choice name="agb"/>
</feature>
</features>
</core>
<core name="gba">
<features>
<feature name="tblur">
<choice name="0"/>
<choice name="1"/>
</feature>
</features>
</core>
<core name="ngp"/>
<core name="nes">
<features>
<feature name="clipsides">
<choice name="0"/>
<choice name="1"/>
</feature>
<feature name="no8lim">
<choice name="0"/>
<choice name="1"/>
</feature>
</features>
</core>
<core name="pce">
<features>
<feature name="forcesgx">
<choice name="0"/>
<choice name="1"/>
</feature>
<feature name="nospritelimit">
<choice name="0"/>
<choice name="1"/>
</feature>
</features>
</core>
<core name="pce_fast">
<features>
<feature name="forcesgx">
<choice name="0"/>
<choice name="1"/>
</feature>
<feature name="nospritelimit">
<choice name="0"/>
<choice name="1"/>
</feature>
<feature name="ocmultiplier">
<choice name="1"/>
<choice name="2"/>
<choice name="3"/>
<choice name="4"/>
</feature>
<feature name="cdspeed">
<choice name="1"/>
<choice name="2"/>
<choice name="4"/>
<choice name="6"/>
<choice name="8"/>
<choice name="10"/>
</feature>
</features>
</core>
<core name="pcfx">
<features>
<feature name="cpu_emulation">
<choice name="fast"/>
<choice name="accurate"/>
<choice name="auto"/>
</feature>
<feature name="cdspeed">
<choice name="2"/>
<choice name="4"/>
<choice name="6"/>
<choice name="8"/>
<choice name="10"/>
</feature>
</features>
</core>
<core name="gg"/>
<core name="md"/>
<core name="sms"/>
<core name="snes"/>
<core name="snes_faust"/>
<core name="ss">
<features>
<feature name="input.port1">
<choice name="gamepad"/>
<choice name="3dpad"/>
<choice name="gun"/>
</feature>
<feature name="input.port1.3dpad.mode.defpos">
<choice name="digital"/>
<choice name="analog"/>
</feature>
<feature name="cart">
<choice name="auto"/>
<choice name="none"/>
<choice name="backup"/>
<choice name="extram1"/>
<choice name="extram4"/>
<choice name="cs1ram16"/>
</feature>
<feature name="cart.auto_default">
<choice name="none"/>
<choice name="backup"/>
<choice name="extram1"/>
<choice name="extram4"/>
<choice name="cs1ram16"/>
</feature>
</features>
</core>
<core name="vb">
<features>
<feature name="cpu_emulation">
<choice name="fast"/>
<choice name="accurate"/>
</feature>
<feature name="3dmode">
<choice name="anaglyph"/>
<choice name="cscope"/>
<choice name="sidebyside"/>
<choice name="vli"/>
<choice name="hli"/>
<choice name="left"/>
<choice name="right"/>
</feature>
</features>
</core>
<core name="wsswan"/>
</cores>
</emulator>
<emulator name="mupen64plus">
<cores>
<core name="mupen64plus-sa">
@ -56,6 +222,46 @@
</core>
</cores>
</emulator>
<emulator name="kronos">
<cores>
<core name="kronos-sa">
<features>
<feature name="video driver">
<choice name="opengl" value="opengl"/>
<choice name="software" value="software"/>
</feature>
<feature name="gpu rgb">
<choice name="yes" value="1"/>
<choice name="no" value="0"/>
</feature>
<feature name="tessellation">
<choice name="gpu" value="gpu"/>
<choice name="cpu" value="cpu"/>
</feature>
<feature name="audio driver">
<choice name="openal" value="openal"/>
<choice name="sdl" value="sdl"/>
</feature>
<feature name="show fps">
<choice name="yes" value="1"/>
<choice name="no" value="0"/>
</feature>
<feature name="use vsync">
<choice name="yes" value="1"/>
<choice name="no" value="0"/>
</feature>
<feature name="use hlebios">
<choice name="yes" value="1"/>
<choice name="no" value="0"/>
</feature>
<feature name="use autoskip">
<choice name="yes" value="1"/>
<choice name="no" value="0"/>
</feature>
</features>
</core>
</cores>
</emulator>
<emulator name="ppsspp">
<cores>
<core name="ppsspp-sa">
@ -356,8 +562,9 @@
<feature name="aspect ratio">
<choice name="16/9" value="0"/>
<choice name="4/3" value="1"/>
<choice name="21:9" value="2"/>
<choice name="stretch" value="3"/>
<choice name="21/9" value="2"/>
<choice name="16/10" value="3"/>
<choice name="stretch" value="4"/>
</feature>
<feature name="gpu accuracy">
<choice name="low" value="0"/>

View file

@ -25,16 +25,16 @@ LIBRETRO_CORES="81-lr a5200-lr arduous-lr atari800-lr beetle-gba-lr beetle-lynx-
nxengine-lr o2em-lr opera-lr parallel-n64-lr pcsx_rearmed-lr picodrive-lr pokemini-lr potator-lr \
prosystem-lr ppsspp-lr puae-lr puae2021-lr px68k-lr quasi88-lr quicknes-lr race-lr reminiscence-lr \
sameboy-lr sameduck-lr scummvm-lr smsplus-gx-lr snes9x-lr snes9x2002-lr snes9x2005_plus-lr snes9x2010-lr \
stella-lr stella-2014-lr swanstation-lr tic80-lr tgbdual-lr uzem-lr vba-next-lr \
stella-lr stella-2014-lr swanstation-lr tic80-lr tgbdual-lr uzem-lr vba-next-lr minivmac-lr \
vbam-lr vecx-lr vice-lr yabasanshiro-lr virtualjaguar-lr xmil-lr xrick-lr"
### Emulators or cores for specific devices
case "${DEVICE}" in
AMD64)
[ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="lutris-wine"
PKG_EMUS+=" amiberry cemu-sa citra-sa dolphin-sa duckstation-sa melonds-sa minivmacsa mupen64plus-sa \
PKG_EMUS+=" amiberry cemu-sa citra-sa dolphin-sa duckstation-sa melonds-sa minivmacsa mupen64plus-sa kronos-sa \
nanoboyadvance-sa pcsx2-sa primehack rpcs3-sa ryujinx-sa scummvmsa vita3k-sa xemu-sa yuzu-sa"
LIBRETRO_CORES+=" beetle-psx-lr bsnes-hd-lr citra-lr desmume-lr dolphin-lr flycast-lr lrps2-lr mame-lr minivmac-lr \
LIBRETRO_CORES+=" beetle-psx-lr bsnes-hd-lr citra-lr desmume-lr dolphin-lr flycast-lr lrps2-lr mame-lr \
play-lr"
;;
RK358*)
@ -47,7 +47,7 @@ case "${DEVICE}" in
RK3399)
[ "${ENABLE_32BIT}" == "true" ] && EMUS_32BIT="box86 desmume-lr gpsp-lr pcsx_rearmed-lr"
PKG_EMUS+=" amiberry aethersx2-sa dolphin-sa drastic-sa duckstation-sa melonds-sa mupen64plus-sa box64 scummvmsa \
yabasanshiro-sa portmaster nanoboyadvance-sa"
yabasanshiro-sa portmaster nanoboyadvance-sa mednafen"
LIBRETRO_CORES+=" uae4arm beetle-psx-lr bsnes-hd-lr dolphin-lr flycast-lr mame-lr pcsx_rearmed-lr"
PKG_RETROARCH+=" retropie-shaders"
;;
@ -357,12 +357,22 @@ makeinstall_target() {
add_emu_core famicom retroarch fceumm false
add_emu_core famicom retroarch quicknes false
add_emu_core famicom retroarch mesen false
case ${DEVICE} in
RK3399)
add_emu_core famicom mednafen nes false
;;
esac
add_es_system famicom
### Nintendo Famicom Disk System
add_emu_core fds retroarch nestopia true
add_emu_core fds retroarch fceumm false
add_emu_core fds retroarch quicknes false
case ${DEVICE} in
RK3399)
add_emu_core fds mednafen nes false
;;
esac
add_es_system fds
### Final Burn Neo
@ -379,6 +389,10 @@ makeinstall_target() {
add_emu_core idtech retroarch idtech
add_es_system idtech
### Apple Macintosh Plus
add_emu_core macintosh retroarch minivmac true
add_es_system macintosh
### Nintendo Game and Watch
add_emu_core gameandwatch retroarch gw
add_es_system gameandwatch
@ -390,6 +404,11 @@ makeinstall_target() {
add_emu_core gb retroarch tgbdual false
add_emu_core gb retroarch mgba false
add_emu_core gb retroarch vbam false
case ${DEVICE} in
RK3399)
add_emu_core gb mednafen gb false
;;
esac
add_es_system gb
### Nintendo GameBoy Hacks
@ -399,6 +418,11 @@ makeinstall_target() {
add_emu_core gbh retroarch tgbdual false
add_emu_core gbh retroarch mgba false
add_emu_core gbh retroarch vbam false
case ${DEVICE} in
RK3399)
add_emu_core gbh mednafen gb false
;;
esac
add_es_system gbh
### Nintendo GameBoy Advance
@ -419,6 +443,11 @@ makeinstall_target() {
add_emu_core gba nanoboyadvance nanoboyadvance-sa false
;;
esac
case ${DEVICE} in
RK3399)
add_emu_core gba mednafen gba false
;;
esac
add_es_system gba
### Nintendo GameBoy Advance Hacks
@ -427,6 +456,11 @@ makeinstall_target() {
add_emu_core gbah retroarch vbam false
add_emu_core gbah retroarch vba_next false
add_emu_core gbah retroarch beetle_gba false
case ${DEVICE} in
RK3399)
add_emu_core gbah mednafen gba false
;;
esac
add_es_system gbah
### Nintendo GameBoy Color
@ -436,6 +470,11 @@ makeinstall_target() {
add_emu_core gbc retroarch tgbdual false
add_emu_core gbc retroarch mgba false
add_emu_core gbc retroarch vbam false
case ${DEVICE} in
RK3399)
add_emu_core gbc mednafen gb false
;;
esac
add_es_system gbc
### Nintendo GameBoy Color Hacks
@ -445,6 +484,11 @@ makeinstall_target() {
add_emu_core gbch retroarch tgbdual false
add_emu_core gbch retroarch mgba false
add_emu_core gbch retroarch vbam false
case ${DEVICE} in
RK3399)
add_emu_core gbch mednafen gb false
;;
esac
add_es_system gbch
### Nintendo GameCube
@ -501,6 +545,11 @@ makeinstall_target() {
add_emu_core gamegear retroarch genesis_plus_gx false
add_emu_core gamegear retroarch picodrive false
add_emu_core gamegear retroarch smsplus false
case ${DEVICE} in
RK3399)
add_emu_core gamegear mednafen gg false
;;
esac
add_es_system gamegear
### Sega GameGear Hacks
@ -508,6 +557,11 @@ makeinstall_target() {
add_emu_core ggh retroarch genesis_plus_gx false
add_emu_core ggh retroarch picodrive false
add_emu_core ggh retroarch smsplus false
case ${DEVICE} in
RK3399)
add_emu_core ggh mednafen gg false
;;
esac
add_es_system ggh
### Intellivision
@ -525,6 +579,11 @@ makeinstall_target() {
### Atari Lynx
add_emu_core atarilynx retroarch handy true
add_emu_core atarilynx retroarch beetle_lynx false
case ${DEVICE} in
RK3399)
add_emu_core atarilynx mednafen lynx false
;;
esac
add_es_system atarilynx
### Infocom Z-Machine
@ -545,6 +604,11 @@ makeinstall_target() {
add_emu_core megadrive-japan retroarch genesis_plus_gx true
add_emu_core megadrive-japan retroarch genesis_plus_gx_wide false
add_emu_core megadrive-japan retroarch picodrive
case ${DEVICE} in
RK3399)
add_emu_core megadrive-japan mednafen md false
;;
esac
add_es_system megadrive-japan
### Microsoft MS-DOS
@ -555,6 +619,11 @@ makeinstall_target() {
### Nintendo MSU-1
add_emu_core snesmsu1 retroarch snes9x true
add_emu_core snesmsu1 retroarch beetle_supafaust false
case ${DEVICE} in
RK3399)
add_emu_core snesmsu1 mednafen snes_faust false
;;
esac
add_es_system snesmsu1
### Microsoft MSX
@ -610,11 +679,21 @@ makeinstall_target() {
### SNK NeoGeo Pocket
add_emu_core ngp retroarch beetle_ngp true
add_emu_core ngp retroarch race false
case ${DEVICE} in
RK3399)
add_emu_core ngp mednafen ngp false
;;
esac
add_es_system ngp
### SNK NeoGeo Pocket Color
add_emu_core ngpc retroarch beetle_ngp true
add_emu_core ngpc retroarch race false
case ${DEVICE} in
RK3399)
add_emu_core ngpc mednafen ngp false
;;
esac
add_es_system ngpc
### Nintendo 64
@ -660,6 +739,11 @@ makeinstall_target() {
add_emu_core nes retroarch fceumm false
add_emu_core nes retroarch quicknes false
add_emu_core nes retroarch mesen false
case ${DEVICE} in
RK3399)
add_emu_core nes mednafen nes false
;;
esac
add_es_system nes
### Nintendo NES Hacks
@ -667,6 +751,11 @@ makeinstall_target() {
add_emu_core nesh retroarch fceumm false
add_emu_core nesh retroarch quicknes false
add_emu_core nesh retroarch mesen false
case ${DEVICE} in
RK3399)
add_emu_core nesh mednafen nesh false
;;
esac
add_es_system nesh
### Magnavox Odyssey
@ -689,16 +778,33 @@ makeinstall_target() {
add_emu_core pcengine retroarch beetle_pce_fast true
add_emu_core pcengine retroarch beetle_pce false
add_emu_core pcengine retroarch beetle_supergrafx false
case ${DEVICE} in
RK3399)
add_emu_core pcengine mednafen pce false
add_emu_core pcengine mednafen pce_fast false
;;
esac
add_es_system pcengine
### NEC PC Engine CD
add_emu_core pcenginecd retroarch beetle_pce_fast true
add_emu_core pcenginecd retroarch beetle_pce false
add_emu_core pcenginecd retroarch beetle_supergrafx false
case ${DEVICE} in
RK3399)
add_emu_core pcenginecd mednafen pce false
add_emu_core pcenginecd mednafen pce_fast false
;;
esac
add_es_system pcenginecd
### NEC PC-FX
add_emu_core pcfx retroarch beetle_pcfx true
case ${DEVICE} in
RK3399)
add_emu_core pcfx mednafen pcfx false
;;
esac
add_es_system pcfx
### Lexaloffle PICO-8
@ -717,17 +823,28 @@ makeinstall_target() {
add_emu_core psx retroarch beetle_psx false
add_emu_core psx duckstation duckstation-sa false
;;
RK3399|RK3588)
RK3588)
add_emu_core psx retroarch pcsx_rearmed32 true
add_emu_core psx retroarch pcsx_rearmed false
add_emu_core psx retroarch beetle_psx false
add_emu_core psx duckstation duckstation-sa false
;;
RK3326|RK3566*)
RK3399)
add_emu_core psx retroarch pcsx_rearmed32 true
add_emu_core psx retroarch pcsx_rearmed false
add_emu_core psx retroarch beetle_psx false
add_emu_core psx mednafen psx false
add_emu_core psx duckstation duckstation-sa false
;;
RK3566*)
add_emu_core psx retroarch pcsx_rearmed32 true
add_emu_core psx retroarch pcsx_rearmed false
add_emu_core psx duckstation duckstation-sa false
;;
RK3326)
add_emu_core psx retroarch pcsx_rearmed32 true
add_emu_core psx retroarch pcsx_rearmed false
;;
esac
add_emu_core psx retroarch duckstation false
add_emu_core psx retroarch swanstation false
@ -815,12 +932,22 @@ makeinstall_target() {
add_emu_core genesis retroarch genesis_plus_gx true
add_emu_core genesis retroarch genesis_plus_gx_wide false
add_emu_core genesis retroarch picodrive false
case ${DEVICE} in
RK3399)
add_emu_core genesis mednafen md false
;;
esac
add_es_system genesis
### Sega Genesis Hacks
add_emu_core genh retroarch genesis_plus_gx true
add_emu_core genh retroarch genesis_plus_gx_wide false
add_emu_core genh retroarch picodrive false
case ${DEVICE} in
RK3399)
add_emu_core genh mednafen md false
;;
esac
add_es_system genh
### Sega MasterSystem
@ -828,12 +955,22 @@ makeinstall_target() {
add_emu_core mastersystem retroarch genesis_plus_gx false
add_emu_core mastersystem retroarch picodrive false
add_emu_core mastersystem retroarch smsplus false
case ${DEVICE} in
RK3399)
add_emu_core mastersystem mednafen sms false
;;
esac
add_es_system mastersystem
### Sega MegaDrive
add_emu_core megadrive retroarch genesis_plus_gx true
add_emu_core megadrive retroarch genesis_plus_gx_wide false
add_emu_core megadrive retroarch picodrive false
case ${DEVICE} in
RK3399)
add_emu_core megadrive mednafen md false
;;
esac
add_es_system megadrive
### Welback Holdings Mega Duck
@ -847,12 +984,30 @@ makeinstall_target() {
add_emu_core saturn retroarch yabasanshiro false
;;
x86_64)
add_emu_core saturn kronos kronos-sa true
add_emu_core saturn retroarch yabasanshiro true
;;
esac
add_emu_core saturn retroarch beetle_saturn false
case ${DEVICE} in
RK3399)
add_emu_core saturn mednafen ss false
;;
esac
add_es_system saturn
### Sega ST-V
case ${DEVICE} in
AMD64|S922X*|RK35*)
add_emu_core st-v retroarch beetle_saturn true
;;
RK3399)
add_emu_core st-v retroarch beetle_saturn true
add_emu_core st-v mednafen ss false
;;
esac
add_es_system st-v
### Sega SG-1000
add_emu_core sg-1000 retroarch gearsystem true
add_emu_core sg-1000 retroarch genesis_plus_gx false
@ -883,6 +1038,12 @@ makeinstall_target() {
### NEC Super Grafx
add_emu_core supergrafx retroarch beetle_supergrafx
add_emu_core supergrafx retroarch beetle_pce
case ${DEVICE} in
RK3399)
add_emu_core supergrafx mednafen pce false
add_emu_core supergrafx mednafen pce_fast false
;;
esac
add_es_system supergrafx
### Nintendo SNES
@ -894,6 +1055,12 @@ makeinstall_target() {
add_emu_core snes retroarch bsnes false
add_emu_core snes retroarch bsnes_mercury_performance false
add_emu_core snes retroarch bsnes_hd_beta false
case ${DEVICE} in
RK3399)
add_emu_core snes mednafen snes_faust false
add_emu_core snes mednafen snes false
;;
esac
add_es_system snes
### Nintendo SNES Hacks
@ -905,6 +1072,12 @@ makeinstall_target() {
add_emu_core snesh retroarch bsnes false
add_emu_core snesh retroarch bsnes_mercury_performance false
add_emu_core snesh retroarch bsnes_hd_beta false
case ${DEVICE} in
RK3399)
add_emu_core snesh mednafen snes false
add_emu_core snesh mednafen snes_faust false
;;
esac
add_es_system snesh
### Nintendo Super Famicom
@ -916,6 +1089,12 @@ makeinstall_target() {
add_emu_core sfc retroarch bsnes false
add_emu_core sfc retroarch bsnes_mercury_performance false
add_emu_core sfc retroarch bsnes_hd_beta false
case ${DEVICE} in
RK3399)
add_emu_core sfc mednafen snes false
add_emu_core sfc mednafen snes_faust false
;;
esac
add_es_system sfc
### Nintendo Stellaview
@ -941,12 +1120,24 @@ makeinstall_target() {
add_emu_core tg16 retroarch beetle_pce_fast true
add_emu_core tg16 retroarch beetle_pce false
add_emu_core tg16 retroarch beetle_supergrafx false
case ${DEVICE} in
RK3399)
add_emu_core tg16 mednafen pce false
add_emu_core tg16 mednafen pce_fast false
;;
esac
add_es_system tg16
### NEC TurboGrafx CD
add_emu_core tg16cd retroarch beetle_pce_fast true
add_emu_core tg16cd retroarch beetle_pce false
add_emu_core tg16cd retroarch beetle_supergrafx false
case ${DEVICE} in
RK3399)
add_emu_core tg16cd mednafen pce false
add_emu_core tg16cd mednafen pce_fast false
;;
esac
add_es_system tg16cd
### Belogic Uzebox
@ -963,14 +1154,29 @@ makeinstall_target() {
### Nintendo VirtualBoy
add_emu_core virtualboy retroarch beetle_vb true
case ${DEVICE} in
RK3399)
add_emu_core virtualboy mednafen vb false
;;
esac
add_es_system virtualboy
### Bandai Wonderswan
add_emu_core wonderswan retroarch beetle_wswan true
case ${DEVICE} in
RK3399)
add_emu_core wonderswan mednafen wswan false
;;
esac
add_es_system wonderswan
### Bandai Wonderswan Color
add_emu_core wonderswancolor retroarch beetle_wswan true
case ${DEVICE} in
RK3399)
add_emu_core wonderswancolor mednafen wswan false
;;
esac
add_es_system wonderswancolor
### Sharp x68000

View file

@ -4147,7 +4147,7 @@ CONFIG_DRM_KMS_HELPER=y
# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
CONFIG_DRM_DEBUG_MODESET_LOCK=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_FBDEV_OVERALLOC=200
# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_HELPER=y

View file

@ -65,3 +65,7 @@
# debug tty path
DEBUG_TTY="/dev/ttyS2"
# build with entware installer
ENTWARE_SUPPORT="yes"
ENTWARE_ARCH="aarch64-k3.10"

View file

@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}"
case ${DEVICE} in
S922X*)
PKG_VERSION="6.1.59"
PKG_VERSION="6.1.60"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
;;
esac

View file

@ -1,6 +1,7 @@
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -1,71 +1,5 @@
diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/Makefile linux/arch/arm64/boot/dts/amlogic/Makefile
--- linux.orig/arch/arm64/boot/dts/amlogic/Makefile 2023-09-12 12:02:56.937601871 +0000
+++ linux/arch/arm64/boot/dts/amlogic/Makefile 2023-09-12 12:03:27.490291628 +0000
@@ -1,69 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
@ -15,10 +16,9 @@
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-go-ultra.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-go-ultra.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-powkiddy-rgb10-max-3.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
@ -72,3 +72,4 @@
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-powkiddy-rgb10-max-3.dtb

View file

@ -0,0 +1,999 @@
diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts
--- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 1970-01-01 00:00:00.000000000 +0000
+++ linux/arch/arm64/boot/dts/amlogic/meson-g12b-powkiddy-rgb10-max-3.dts 2023-09-12 12:04:13.567330573 +0000
@@ -0,0 +1,995 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2022 Neil Armstrong <narmstrong@kernel.org>
+ * Copyright (C) 2022-present - The JELOS Project (https://github.com/JustEnoughLinuxOS)
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-a311d.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
+#include <dt-bindings/sound/meson-g12a-toacodec.h>
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
+
+/ {
+ compatible = "powkiddy,rgb10-max-3", "amlogic,s922x", "amlogic,g12b";
+ model = "Powkiddy RGB10 MAX 3";
+
+ aliases {
+ serial0 = &uart_AO;
+ rtc0 = &vrtc;
+ mmc0 = &sd_emmc_c;
+ mmc1 = &sd_emmc_b;
+ };
+
+ panel_backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm_ef 1 40000 0>;
+ brightness-levels = <0 255>;
+ num-interpolated-steps = <255>;
+ default-brightness-level = <255>;
+ };
+
+ bat: battery {
+ compatible = "simple-battery";
+ voltage-max-design-microvolt = <4200000>;
+ voltage-min-design-microvolt = <3500000>;
+ charge-full-design-microamp-hours = <4000000>;
+ charge-term-current-microamp = <200000>;
+ constant-charge-current-max-microamp = <1500000>;
+ constant-charge-voltage-max-microvolt = <4200000>;
+ factory-internal-resistance-micro-ohms = <180000>;
+
+
+ ocv-capacity-celsius = <20>;
+ ocv-capacity-table-0 = <4146950 100>, <4001920 95>, <3967900 90>, <3919950 85>,
+ <3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>,
+ <3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>,
+ <3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>,
+ <3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>,
+ <3574170 0>;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ codec_clk: codec-clk {
+ compatible = "fixed-clock";
+ clock-frequency = <12288000>;
+ clock-output-names = "codec_clk";
+ #clock-cells = <0>;
+ };
+
+ gpio_keys: volume-keys {
+ compatible = "gpio-keys-polled";
+ poll-interval = <5>;
+ autorepeat;
+
+ volume-up-button {
+ label = "VOLUME-UP";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&gpio GPIOX_8 GPIO_ACTIVE_LOW>;
+ };
+ volume-down-button {
+ label = "VOLUME-DOWN";
+ linux,code = <KEY_VOLUMEDOWN>;
+ gpios = <&gpio GPIOX_9 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ joypad: gou_joypad {
+ compatible = "odroidgou-joypad";
+ poll-interval = <10>;
+ pinctrl-0 = <&keypad_gpio_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ joypad-name = "GO-Ultra Gamepad";
+ //joypad-vendor = <0x045e>;
+ joypad-product = <0x1000>;
+ joypad-revision = <0x0100>;
+
+ /* Analog sticks */
+
+ io-channels = <&saradc 0>, <&saradc 1>, <&saradc 2>, <&saradc 3>;
+ io-channel-names = "key-RY", "key-RX", "key-LY", "key-LX";
+ button-adc-scale = <4>;
+ button-adc-deadzone = <400>;
+ button-adc-fuzz = <64>;
+ button-adc-flat = <32>;
+ abs_x-p-tuning = <350>;
+ abs_x-n-tuning = <350>;
+ abs_y-p-tuning = <350>;
+ abs_y-n-tuning = <350>;
+ abs_rx-p-tuning = <350>;
+ abs_rx-n-tuning = <350>;
+ abs_ry-p-tuning = <350>;
+ abs_ry-n-tuning = <350>;
+
+ /* Buttons */
+ sw1 {
+ gpios = <&gpio GPIOX_0 GPIO_ACTIVE_LOW>;
+ label = "GPIO DPAD-UP";
+ linux,code = <BTN_DPAD_UP>; // 0x220
+ };
+ sw2 {
+ gpios = <&gpio GPIOX_1 GPIO_ACTIVE_LOW>;
+ label = "GPIO DPAD-DOWN";
+ linux,code = <BTN_DPAD_DOWN>; // 0x221
+ };
+ sw3 {
+ gpios = <&gpio GPIOX_2 GPIO_ACTIVE_LOW>;
+ label = "GPIO DPAD-LEFT";
+ linux,code = <BTN_DPAD_LEFT>; // 0x222
+ };
+ sw4 {
+ gpios = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
+ label = "GPIO DPAD-RIGHT";
+ linux,code = <BTN_DPAD_RIGHT>; // 0x223
+ };
+ sw5 {
+ gpios = <&gpio GPIOX_4 GPIO_ACTIVE_LOW>;
+ label = "GPIO BTN-A";
+ linux,code = <BTN_EAST>; // 0x131
+ };
+ sw6 {
+ gpios = <&gpio GPIOX_5 GPIO_ACTIVE_LOW>;
+ label = "GPIO BTN-B";
+ linux,code = <BTN_SOUTH>; // 0x130
+ };
+ sw7 {
+ gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+ label = "GPIO BTN-Y";
+ linux,code = <BTN_WEST>; // 0x134
+ };
+ sw8 {
+ gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
+ label = "GPIO BTN-X";
+ linux,code = <BTN_NORTH>; // 0x133
+ };
+ sw11 {
+ gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
+ label = "GPIO F2";
+ linux,code = <BTN_TRIGGER_HAPPY2>; // 0x2c2
+ };
+ sw12 {
+ gpios = <&gpio GPIOX_17 GPIO_ACTIVE_LOW>;
+ label = "GPIO F3";
+ linux,code = <BTN_TRIGGER_HAPPY3>; // 0x2c3
+ };
+ sw13 {
+ gpios = <&gpio GPIOX_16 GPIO_ACTIVE_LOW>;
+ label = "GPIO F4";
+ linux,code = <BTN_TRIGGER_HAPPY4>; // 0x2c4
+ };
+ sw14 {
+ gpios = <&gpio GPIOX_11 GPIO_ACTIVE_LOW>;
+ label = "GPIO F5";
+ linux,code = <BTN_TRIGGER_HAPPY5>; // 0x13c
+ };
+ sw15 {
+ gpios = <&gpio GPIOX_14 GPIO_ACTIVE_LOW>;
+ label = "GPIO TOP-LEFT";
+ linux,code = <BTN_TL>; // 0x02
+ };
+ sw16 {
+ gpios = <&gpio GPIOX_15 GPIO_ACTIVE_LOW>;
+ label = "GPIO TOP-RIGHT";
+ linux,code = <BTN_TR>; // 0x05
+ };
+ sw17 {
+ gpios = <&gpio GPIOX_13 GPIO_ACTIVE_LOW>;
+ label = "GPIO F6";
+ linux,code = <BTN_TRIGGER_HAPPY6>;
+ };
+ sw18 {
+ gpios = <&gpio GPIOX_12 GPIO_ACTIVE_LOW>;
+ label = "GPIO F1";
+ linux,code = <BTN_TRIGGER_HAPPY1>;
+ };
+ sw19 {
+ gpios = <&gpio GPIOX_18 GPIO_ACTIVE_LOW>;
+ label = "GPIO TOP-RIGHT2";
+ linux,code = <BTN_TR2>;
+ };
+ sw20 {
+ gpios = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>;
+ label = "GPIO TOP-LEFT2";
+ linux,code = <BTN_TL2>;
+ };
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x0 0x0 0x40000000>;
+ };
+
+ emmc_pwrseq: emmc-pwrseq {
+ compatible = "mmc-pwrseq-emmc";
+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led-blue {
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ };
+
+ led-red {
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
+ gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ poweroff {
+ compatible = "hardkernel,odroid-go-ultra-poweroff";
+ hardkernel,rk817-pmic = <&rk817>;
+ hardkernel,rk818-pmic = <&rk818>;
+ };
+
+ vdd_sys: regulator-vdd_sys {
+ compatible = "regulator-fixed";
+ regulator-name = "VDD_SYS";
+ regulator-min-microvolt = <3800000>;
+ regulator-max-microvolt = <3800000>;
+ regulator-always-on;
+ };
+
+ sound {
+ compatible = "amlogic,axg-sound-card";
+ model = "RGB10-MAX3";
+ audio-aux-devs = <&tdmout_b>;
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
+ "TDM_B Playback", "TDMOUT_B OUT";
+
+ assigned-clocks = <&clkc CLKID_MPLL2>,
+ <&clkc CLKID_MPLL0>,
+ <&clkc CLKID_MPLL1>;
+ assigned-clock-parents = <0>, <0>, <0>;
+ assigned-clock-rates = <294912000>,
+ <270950400>,
+ <393216000>;
+ status = "okay";
+
+ dai-link-0 {
+ sound-dai = <&frddr_a>;
+ };
+
+ dai-link-1 {
+ sound-dai = <&frddr_b>;
+ };
+
+ dai-link-2 {
+ sound-dai = <&frddr_c>;
+ };
+
+ dai-link-3 {
+ sound-dai = <&toddr_a>;
+ };
+
+ dai-link-4 {
+ sound-dai = <&toddr_b>;
+ };
+
+ dai-link-5 {
+ sound-dai = <&toddr_c>;
+ };
+
+ /* 8ch hdmi interface */
+ dai-link-6 {
+ sound-dai = <&tdmif_b>;
+ dai-format = "i2s";
+ dai-tdm-slot-tx-mask-0 = <1 1>;
+ dai-tdm-slot-tx-mask-1 = <1 1>;
+ mclk-fs = <256>;
+
+ codec-0 {
+ sound-dai = <&rk817>;
+ };
+ };
+ };
+};
+
+&arb {
+ status = "okay";
+};
+
+&cpu0 {
+ cpu-supply = <&vddcpu_b>;
+ operating-points-v2 = <&cpu_opp_table_0>;
+ clocks = <&clkc CLKID_CPU_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu1 {
+ cpu-supply = <&vddcpu_b>;
+ operating-points-v2 = <&cpu_opp_table_0>;
+ clocks = <&clkc CLKID_CPU_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu100 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu101 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu102 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+&cpu103 {
+ cpu-supply = <&vddcpu_a>;
+ operating-points-v2 = <&cpub_opp_table_1>;
+ clocks = <&clkc CLKID_CPUB_CLK>;
+ clock-latency = <50000>;
+};
+
+/* RK817 only supports 12.5mV steps, round up the values */
+&cpu_opp_table_0 {
+ opp-667000000 {
+ opp-microvolt = <731250>;
+ };
+ opp-1000000000 {
+ opp-microvolt = <760000>;
+ };
+ opp-1200000000 {
+ opp-microvolt = <780000>;
+ };
+ opp-1398000000 {
+ opp-microvolt = <800000>;
+ };
+ opp-1512000000 {
+ opp-microvolt = <860000>;
+ };
+ opp-1608000000 {
+ opp-microvolt = <900000>;
+ };
+ opp-1704000000 {
+ opp-microvolt = <950000>;
+ };
+ opp-1800000000 {
+ opp-microvolt = <1000000>;
+ };
+};
+
+/* RK818 only supports 12.5mV steps, round up the values */
+&cpub_opp_table_1 {
+ opp-667000000 {
+ opp-microvolt = <750000>;
+ };
+ opp-1000000000 {
+ opp-microvolt = <775000>;
+ };
+ opp-1200000000 {
+ opp-microvolt = <775000>;
+ };
+ opp-1398000000 {
+ opp-microvolt = <800000>;
+ };
+ opp-1512000000 {
+ opp-microvolt = <825000>;
+ };
+ opp-1608000000 {
+ opp-microvolt = <862500>;
+ };
+ opp-1704000000 {
+ opp-microvolt = <900000>;
+ };
+ opp-1800000000 {
+ opp-microvolt = <987500>;
+ };
+ opp-1908000000 {
+ opp-microvolt = <1025000>;
+ };
+ opp-2016000000 {
+ opp-hz = /bits/ 64 <2016000000>;
+ opp-microvolt = <1025000>;
+ };
+ opp-2100000000 {
+ opp-hz = /bits/ 64 <2100000000>;
+ opp-microvolt = <1025000>;
+ };
+ opp-2208000000 {
+ opp-hz = /bits/ 64 <2208000000>;
+ opp-microvolt = <1050000>;
+ };
+};
+
+&i2c_AO {
+ status = "okay";
+ pinctrl-0 = <&i2c_ao_sck_pins>, <&i2c_ao_sda_pins>;
+ pinctrl-names = "default";
+
+ rk818: pmic@1c {
+ compatible = "rockchip,rk818";
+ reg = <0x1c>;
+ interrupt-parent = <&gpio_intc>;
+ interrupts = <7 IRQ_TYPE_LEVEL_LOW>; /* GPIOAO_7 */
+ rockchip,system-power-controller;
+ clock-output-names = "rk808-clkout1", "rk808-clkout2";
+
+ vcc1-supply = <&vdd_sys>;
+ vcc2-supply = <&vdd_sys>;
+ vcc3-supply = <&vdd_sys>;
+ vcc4-supply = <&vdd_sys>;
+ vcc6-supply = <&vdd_sys>;
+ vcc7-supply = <&vcc_2v3>;
+ vcc8-supply = <&vcc_2v3>;
+ vcc9-supply = <&vddao_3v3>;
+ boost-supply = <&vdd_sys>;
+ switch-supply = <&vdd_sys>;
+
+ regulators {
+ vddcpu_a: DCDC_REG1 {
+ regulator-name = "vddcpu_a";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <750000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-ramp-delay = <6001>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <750000>;
+ };
+ };
+
+ vdd_ee: DCDC_REG2 {
+ regulator-name = "vdd_ee";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <875000>;
+ regulator-max-microvolt = <900000>;
+ regulator-ramp-delay = <6001>;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <875000>;
+ };
+ };
+
+ vddq_1v1: DCDC_REG3 {
+ regulator-name = "vddq_1v1";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ vddao_3v3: DCDC_REG4 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "vddao_3v3";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3000000>;
+ };
+ };
+
+ hp_5v: DCDC_BOOST {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-name = "hp_5v";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG1 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO1";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG2 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO2";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG3 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO3";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG4 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO4";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vddio_ao1v8: LDO_REG5 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vddio_ao1v8";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ LDO_REG6 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO6";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vddq_1v8: LDO_REG7 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-name = "vddq_1v8";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1800000>;
+ };
+ };
+
+ LDO_REG8 {
+ regulator-boot-off;
+ regulator-name = "rk818_LDO8";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vddio_c: LDO_REG9 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vddio_c";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ };
+ };
+
+ vcc_sd: SWITCH_REG {
+ regulator-name = "vcc_sd";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ rk818_otg_switch: OTG_SWITCH {
+ regulator-name = "otg_switch";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+
+ battery {
+ compatible = "rockchip,rk818-battery";
+
+ ocv_table = <
+ 3470 3599 3671 3701 3728 3746 3762
+ 3772 3781 3792 3816 3836 3866 3910
+ 3942 3971 4002 4050 4088 4132 4200>;
+ design_capacity = <4000>;
+ design_qmax = <4100>;
+ bat_res = <180>;
+ max_input_current = <2000>;
+ max_chrg_current = <1500>;
+ max_chrg_voltage = <4250>;
+ sleep_enter_current = <300>;
+ sleep_exit_current = <300>;
+ power_off_thresd = <3450>;
+ zero_algorithm_vol = <3700>;
+ fb_temperature = <105>;
+ sample_res = <10>;
+ max_soc_offset = <60>;
+ energy_mode = <0>;
+ monitor_sec = <5>;
+ virtual_power = <0>;
+ power_dc2otg = <0>;
+ otg5v_suspend_enable = <0>;
+ };
+
+ charger {
+ compatible = "rockchip,rk818-charger";
+ monitored-battery = <&bat>;
+ };
+
+ };
+};
+
+&i2c3 {
+ status = "okay";
+ pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
+ pinctrl-names = "default";
+
+ rk817: pmic@20 {
+ compatible = "rockchip,rk817";
+ reg = <0x20>;
+ status = "okay";
+ interrupt-parent = <&gpio_intc>;
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>; /* GPIOAO_5 */
+ wakeup-source;
+
+ vcc1-supply = <&vdd_sys>;
+ vcc2-supply = <&vdd_sys>;
+ vcc3-supply = <&vdd_sys>;
+ vcc4-supply = <&vdd_sys>;
+ vcc5-supply = <&vdd_sys>;
+ vcc6-supply = <&vdd_sys>;
+ vcc7-supply = <&vdd_sys>;
+ vcc8-supply = <&vdd_sys>;
+ vcc9-supply = <&rk817_boost>;
+
+ #sound-dai-cells = <0>;
+ clocks = <&codec_clk>;
+ clock-names = "mclk";
+
+ regulators {
+ DCDC_REG1 {
+ regulator-boot-off;
+ regulator-name = "rk817_BUCK1";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vddcpu_b: DCDC_REG2 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <725000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-ramp-delay = <6001>;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vddcpu_b";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1000000>;
+ };
+ };
+
+ vcc_2v3: DCDC_REG3 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <2300000>;
+ regulator-max-microvolt = <2400000>;
+ regulator-initial-mode = <0x2>;
+ regulator-name = "vcc_2v3";
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ };
+ };
+
+ DCDC_REG4 {
+ regulator-boot-off;
+ regulator-name = "rk817_BUCK4";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG1 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO1";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG2 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO2";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG3 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO3";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG4 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vdd_codec";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG5 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO5";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG6 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO6";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG7 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO7";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ vcc_lcd: LDO_REG8 {
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "vcc_lcd";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ LDO_REG9 {
+ regulator-boot-off;
+ regulator-name = "rk817_LDO9";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ rk817_boost: BOOST {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5400000>;
+ regulator-name = "rk817_boost";
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+
+ usb_host: OTG_SWITCH {
+ regulator-name = "usb_host";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+ };
+ };
+
+ rk817_codec: codec {
+ rockchip,mic-in-differential;
+ };
+ };
+};
+
+&clkc_audio {
+ status = "okay";
+};
+
+&eth_phy {
+ status = "disabled";
+};
+
+&frddr_a {
+ status = "okay";
+};
+
+&frddr_b {
+ status = "okay";
+};
+
+&frddr_c {
+ status = "okay";
+};
+
+&toddr_a {
+ status = "okay";
+};
+
+&toddr_b {
+ status = "okay";
+};
+
+&toddr_c {
+ status = "okay";
+};
+
+&mipi_dsi {
+ status = "okay";
+
+ assigned-clocks = <&clkc CLKID_GP0_PLL>,
+ <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
+ <&clkc CLKID_MIPI_DSI_PXCLK>,
+ <&clkc CLKID_CTS_ENCL_SEL>,
+ <&clkc CLKID_VCLK2_SEL>;
+ assigned-clock-parents = <0>,
+ <&clkc CLKID_GP0_PLL>,
+ <0>,
+ <&clkc CLKID_VCLK2_DIV1>,
+ <&clkc CLKID_GP0_PLL>;
+ assigned-clock-rates = <344976000>,
+ <0>,
+ <344976000>,
+ <0>,
+ <0>;
+
+ panel@0 {
+ compatible = "elida,kd50t048a", "sitronix,st7701";
+ reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>;
+ IOVCC-supply = <&vcc_lcd>;
+ VCC-supply = <&vcc_lcd>;
+ backlight = <&panel_backlight>;
+ rotation = <270>;
+ reg = <0>;
+
+ port {
+ mipi_in_panel: endpoint {
+ remote-endpoint = <&mipi_out_panel>;
+ };
+ };
+ };
+};
+
+&mipi_analog_dphy {
+ status = "okay";
+};
+
+&mipi_dphy {
+ status = "okay";
+};
+
+&mipi_dsi_panel_port {
+ mipi_out_panel: endpoint {
+ remote-endpoint = <&mipi_in_panel>;
+ };
+};
+
+&periphs_pinctrl {
+ keypad_gpio_pins: keypad-gpio {
+ mux {
+ groups = "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3",
+ "GPIOX_4", "GPIOX_5", "GPIOX_6", "GPIOX_7",
+ "GPIOX_8", "GPIOX_9", "GPIOX_10", "GPIOX_11",
+ "GPIOX_12", "GPIOX_13", "GPIOX_14", "GPIOX_15",
+ "GPIOX_16", "GPIOX_17", "GPIOX_18", "GPIOX_19";
+ function = "gpio_periphs";
+ bias-pull-up;
+ output-disable;
+ };
+ };
+};
+
+&pwm_ef {
+ status = "okay";
+ pinctrl-0 = <&pwm_f_h_pins>;
+ pinctrl-names = "default";
+};
+
+&saradc {
+ status = "okay";
+ vref-supply = <&vddio_ao1v8>;
+};
+
+/* SD card */
+&sd_emmc_b {
+ status = "okay";
+ pinctrl-0 = <&sdcard_c_pins>;
+ pinctrl-1 = <&sdcard_clk_gate_c_pins>;
+ pinctrl-names = "default", "clk-gate";
+
+ bus-width = <4>;
+ cap-sd-highspeed;
+ max-frequency = <50000000>;
+ disable-wp;
+
+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+ vmmc-supply = <&vcc_sd>;
+ vqmmc-supply = <&vddio_c>;
+
+};
+
+/* eMMC */
+&sd_emmc_c {
+ status = "okay";
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
+ pinctrl-1 = <&emmc_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+
+ bus-width = <8>;
+ cap-mmc-highspeed;
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
+ max-frequency = <200000000>;
+ disable-wp;
+
+ mmc-pwrseq = <&emmc_pwrseq>;
+ vmmc-supply = <&vcc_sd>;
+ vqmmc-supply = <&vddio_ao1v8>;
+};
+
+
+&tdmif_b {
+ pinctrl-0 = <&mclk0_a_pins>, <&tdm_b_fs_pins>, <&tdm_b_sclk_pins>,
+ <&tdm_b_dout0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ assigned-clocks = <&clkc_audio AUD_CLKID_TDM_MCLK_PAD0>,
+ <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>,
+ <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
+ assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
+ <&clkc_audio AUD_CLKID_MST_B_SCLK>,
+ <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
+ assigned-clock-rates = <0>, <0>, <0>;
+};
+
+&tdmout_b {
+ status = "okay";
+};
+
+&uart_AO {
+ status = "okay";
+ pinctrl-0 = <&uart_ao_a_pins>;
+ pinctrl-names = "default";
+};
+
+&usb {
+ status = "okay";
+ dr_mode = "peripheral";
+};
+
+&usb2_phy0 {
+ status = "okay";
+};
+
+&usb2_phy1 {
+ status = "okay";
+ phy-supply = <&usb_host>;
+};

View file

@ -0,0 +1,40 @@
diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
--- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi 2023-09-12 12:02:56.937601871 +0000
+++ linux/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi 2023-09-12 12:03:27.490291628 +0000
@@ -2394,14 +2391,20 @@
};
mali: gpu@ffe40000 {
- compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
- reg = <0x0 0xffe40000 0x0 0x40000>;
+ compatible = "arm,mali-midgard";
+ reg = <0x0 0xffe40000 0x0 0x40000>,
+ <0 0xFFD01000 0 0x01000>,
+ <0 0xFF800000 0 0x01000>,
+ <0 0xFF63c000 0 0x01000>,
+ <0 0xFFD01000 0 0x01000>;
+
interrupt-parent = <&gic>;
- interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+ interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "job", "mmu", "gpu";
+ <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "GPU", "MMU", "JOB";
clocks = <&clkc CLKID_MALI>;
+ clock-names = "clk_mali";
resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
operating-points-v2 = <&gpu_opp_table>;
#cooling-cells = <2>;
diff -rupN linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi linux/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi
--- linux.orig/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi 2023-09-12 12:02:56.937601871 +0000
+++ linux/arch/arm64/boot/dts/amlogic/meson-g12b.dtsi 2023-09-12 12:03:27.490291628 +0000
@@ -137,5 +139,6 @@
};
&mali {
- dma-coherent;
+ system-coherency = <0>;
+ power_policy = "always_on";
};

View file

@ -0,0 +1,11 @@
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
@@ -45,7 +45,7 @@
led-blue {
label = "n2:blue";
gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "heartbeat";
+ linux,default-trigger = "none";
};
};

View file

@ -0,0 +1,12 @@
diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drivers/gpu/drm/drm_panel_orientation_quirks.c
--- linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-09-12 12:02:57.953624819 +0000
+++ linux/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-09-12 12:03:27.490291628 +0000
@@ -477,7 +477,7 @@ EXPORT_SYMBOL(drm_get_panel_orientation_
/* There are no quirks for non x86 devices yet */
int drm_get_panel_orientation_quirk(int width, int height)
{
- return DRM_MODE_PANEL_ORIENTATION_UNKNOWN;
+ return DRM_MODE_PANEL_ORIENTATION_LEFT_UP;
}
EXPORT_SYMBOL(drm_get_panel_orientation_quirk);

View file

@ -0,0 +1,210 @@
diff -rupN linux.orig/drivers/power/reset/Kconfig linux/drivers/power/reset/Kconfig
--- linux.orig/drivers/power/reset/Kconfig 2023-09-12 12:02:58.741642619 +0000
+++ linux/drivers/power/reset/Kconfig 2023-09-12 12:03:27.490291628 +0000
@@ -141,6 +141,13 @@ config POWER_RESET_OCELOT_RESET
help
This driver supports restart for Microsemi Ocelot SoC and similar.
+config POWER_RESET_ODROID_GO_ULTRA_POWEROFF
+ bool "Odroid Go Ultra power-off driver"
+ depends on ARCH_MESON || COMPILE_TEST
+ depends on I2C=y && OF
+ help
+ This driver supports Power off for Odroid Go Ultra device.
+
config POWER_RESET_OXNAS
bool "OXNAS SoC restart driver"
depends on ARCH_OXNAS
diff -rupN linux.orig/drivers/power/reset/Makefile linux/drivers/power/reset/Makefile
--- linux.orig/drivers/power/reset/Makefile 2023-09-12 12:02:58.741642619 +0000
+++ linux/drivers/power/reset/Makefile 2023-09-12 12:03:27.490291628 +0000
@@ -17,6 +17,7 @@ obj-$(CONFIG_POWER_RESET_MT6323) += mt63
obj-$(CONFIG_POWER_RESET_OXNAS) += oxnas-restart.o
obj-$(CONFIG_POWER_RESET_QCOM_PON) += qcom-pon.o
obj-$(CONFIG_POWER_RESET_OCELOT_RESET) += ocelot-reset.o
+obj-$(CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF) += odroid-go-ultra-poweroff.o
obj-$(CONFIG_POWER_RESET_PIIX4_POWEROFF) += piix4-poweroff.o
obj-$(CONFIG_POWER_RESET_LTC2952) += ltc2952-poweroff.o
obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
diff -rupN linux.orig/drivers/power/reset/odroid-go-ultra-poweroff.c linux/drivers/power/reset/odroid-go-ultra-poweroff.c
--- linux.orig/drivers/power/reset/odroid-go-ultra-poweroff.c 1970-01-01 00:00:00.000000000 +0000
+++ linux/drivers/power/reset/odroid-go-ultra-poweroff.c 2023-09-12 12:03:27.490291628 +0000
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2023 Neil Armstrong <neil.armstrong@linaro.org>
+ */
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/of_platform.h>
+#include <linux/mfd/rk808.h>
+#include <linux/regmap.h>
+#include <linux/module.h>
+#include <linux/reboot.h>
+#include <linux/i2c.h>
+
+/*
+ * The Odroid Go Ultra has 2 PMICs:
+ * - RK818 (manages the battery and USB-C power supply)
+ * - RK817
+ * Both PMICs feeds power to the S922X SoC, so they must be powered-off in sequence.
+ * Vendor does power-off the RK817 first, then the RK818 so here we follow this sequence.
+ */
+
+struct odroid_go_ultra_poweroff_data {
+ struct device *dev;
+ struct device *rk817;
+ struct device *rk818;
+};
+
+static int odroid_go_ultra_poweroff_prepare(struct sys_off_data *data)
+{
+ struct odroid_go_ultra_poweroff_data *poweroff_data = data->cb_data;
+ struct regmap *rk817, *rk818;
+ int ret;
+
+ /* RK817 Regmap */
+ rk817 = dev_get_regmap(poweroff_data->rk817, NULL);
+ if (!rk817) {
+ dev_err(poweroff_data->dev, "failed to get rk817 regmap\n");
+ return notifier_from_errno(-EINVAL);
+ }
+
+ /* RK818 Regmap */
+ rk818 = dev_get_regmap(poweroff_data->rk818, NULL);
+ if (!rk818) {
+ dev_err(poweroff_data->dev, "failed to get rk818 regmap\n");
+ return notifier_from_errno(-EINVAL);
+ }
+
+ dev_info(poweroff_data->dev, "Setting PMICs for power off");
+
+ /* RK817 */
+ ret = regmap_update_bits(rk817, RK817_SYS_CFG(3), DEV_OFF, DEV_OFF);
+ if (ret) {
+ dev_err(poweroff_data->dev, "failed to poweroff rk817\n");
+ return notifier_from_errno(ret);
+ }
+
+ /* RK818 */
+ ret = regmap_update_bits(rk818, RK818_DEVCTRL_REG, DEV_OFF, DEV_OFF);
+ if (ret) {
+ dev_err(poweroff_data->dev, "failed to poweroff rk818\n");
+ return notifier_from_errno(ret);
+ }
+
+ return NOTIFY_OK;
+}
+
+static void odroid_go_ultra_poweroff_put_pmic_device(void *data)
+{
+ struct device *dev = data;
+
+ put_device(dev);
+}
+
+static int odroid_go_ultra_poweroff_get_pmic_device(struct device *dev, const char *compatible,
+ struct device **pmic)
+{
+ struct device_node *pmic_node;
+ struct i2c_client *pmic_client;
+
+ pmic_node = of_find_compatible_node(NULL, NULL, compatible);
+ if (!pmic_node)
+ return -ENODEV;
+
+ pmic_client = of_find_i2c_device_by_node(pmic_node);
+ of_node_put(pmic_node);
+ if (!pmic_client)
+ return -EPROBE_DEFER;
+
+ *pmic = &pmic_client->dev;
+
+ return devm_add_action_or_reset(dev, odroid_go_ultra_poweroff_put_pmic_device, *pmic);
+}
+
+static int odroid_go_ultra_poweroff_probe(struct platform_device *pdev)
+{
+ struct odroid_go_ultra_poweroff_data *poweroff_data;
+ int ret;
+
+ poweroff_data = devm_kzalloc(&pdev->dev, sizeof(*poweroff_data), GFP_KERNEL);
+ if (!poweroff_data)
+ return -ENOMEM;
+
+ dev_set_drvdata(&pdev->dev, poweroff_data);
+
+ /* RK818 PMIC Device */
+ ret = odroid_go_ultra_poweroff_get_pmic_device(&pdev->dev, "rockchip,rk818",
+ &poweroff_data->rk818);
+ if (ret)
+ return dev_err_probe(&pdev->dev, ret, "failed to get rk818 mfd data\n");
+
+ /* RK817 PMIC Device */
+ ret = odroid_go_ultra_poweroff_get_pmic_device(&pdev->dev, "rockchip,rk817",
+ &poweroff_data->rk817);
+ if (ret)
+ return dev_err_probe(&pdev->dev, ret, "failed to get rk817 mfd data\n");
+
+ /* Register as SYS_OFF_MODE_POWER_OFF_PREPARE because regmap_update_bits may sleep */
+ ret = devm_register_sys_off_handler(&pdev->dev,
+ SYS_OFF_MODE_POWER_OFF_PREPARE,
+ SYS_OFF_PRIO_DEFAULT,
+ odroid_go_ultra_poweroff_prepare,
+ poweroff_data);
+ if (ret)
+ return dev_err_probe(&pdev->dev, ret, "failed to register sys-off handler\n");
+
+ dev_info(&pdev->dev, "Registered Power-Off handler\n");
+
+ return 0;
+}
+static struct platform_device *pdev;
+
+static struct platform_driver odroid_go_ultra_poweroff_driver = {
+ .driver = {
+ .name = "odroid-go-ultra-poweroff",
+ },
+ .probe = odroid_go_ultra_poweroff_probe,
+};
+
+static int __init odroid_go_ultra_poweroff_init(void)
+{
+ int ret;
+
+ /* Only create when running on the Odroid Go Ultra device */
+ if (!of_device_is_compatible(of_root, "hardkernel,odroid-go-ultra"))
+ return -ENODEV;
+
+ ret = platform_driver_register(&odroid_go_ultra_poweroff_driver);
+ if (ret)
+ return ret;
+
+ pdev = platform_device_register_resndata(NULL, "odroid-go-ultra-poweroff", -1,
+ NULL, 0, NULL, 0);
+
+ if (IS_ERR(pdev)) {
+ platform_driver_unregister(&odroid_go_ultra_poweroff_driver);
+ return PTR_ERR(pdev);
+ }
+
+ return 0;
+}
+
+static void __exit odroid_go_ultra_poweroff_exit(void)
+{
+ /* Only delete when running on the Odroid Go Ultra device */
+ if (!of_device_is_compatible(of_root, "hardkernel,odroid-go-ultra"))
+ return;
+
+ platform_device_unregister(pdev);
+ platform_driver_unregister(&odroid_go_ultra_poweroff_driver);
+}
+
+module_init(odroid_go_ultra_poweroff_init);
+module_exit(odroid_go_ultra_poweroff_exit);
+
+MODULE_AUTHOR("Neil Armstrong <neil.armstrong@linaro.org>");
+MODULE_DESCRIPTION("Odroid Go Ultra poweroff driver");
+MODULE_LICENSE("GPL");

View file

@ -0,0 +1,402 @@
diff -rupN linux.orig/drivers/input/Kconfig linux/drivers/input/Kconfig
--- linux.orig/drivers/input/Kconfig 2023-09-12 12:02:58.173629790 +0000
+++ linux/drivers/input/Kconfig 2023-09-12 12:03:27.490291628 +0000
@@ -51,6 +51,19 @@ config INPUT_FF_MEMLESS
To compile this driver as a module, choose M here: the
module will be called ff-memless.
+config INPUT_POLLDEV
+ tristate "Polled input device skeleton"
+ help
+ Say Y here if you are using a driver for an input
+ device that periodically polls hardware state. This
+ option is only useful for out-of-tree drivers since
+ in-tree drivers select it automatically.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called input-polldev.
+
config INPUT_SPARSEKMAP
tristate "Sparse keymap support library"
help
diff -rupN linux.orig/drivers/input/Makefile linux/drivers/input/Makefile
--- linux.orig/drivers/input/Makefile 2023-09-12 12:02:58.173629790 +0000
+++ linux/drivers/input/Makefile 2023-09-12 12:03:27.490291628 +0000
@@ -10,6 +10,7 @@ input-core-y := input.o input-compat.o i
input-core-y += touchscreen.o
obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o
+obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o
obj-$(CONFIG_INPUT_SPARSEKMAP) += sparse-keymap.o
obj-$(CONFIG_INPUT_MATRIXKMAP) += matrix-keymap.o
obj-$(CONFIG_INPUT_VIVALDIFMAP) += vivaldi-fmap.o
diff -rupN linux.orig/drivers/input/input-polldev.c linux/drivers/input/input-polldev.c
--- linux.orig/drivers/input/input-polldev.c 1970-01-01 00:00:00.000000000 +0000
+++ linux/drivers/input/input-polldev.c 2023-09-12 12:03:27.490291628 +0000
@@ -0,0 +1,362 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Generic implementation of a polled input device
+
+ * Copyright (c) 2007 Dmitry Torokhov
+ */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/jiffies.h>
+#include <linux/slab.h>
+#include <linux/mutex.h>
+#include <linux/workqueue.h>
+#include <linux/module.h>
+#include <linux/input-polldev.h>
+
+MODULE_AUTHOR("Dmitry Torokhov <dtor@mail.ru>");
+MODULE_DESCRIPTION("Generic implementation of a polled input device");
+MODULE_LICENSE("GPL v2");
+
+static void input_polldev_queue_work(struct input_polled_dev *dev)
+{
+ unsigned long delay;
+
+ delay = msecs_to_jiffies(dev->poll_interval);
+ if (delay >= HZ)
+ delay = round_jiffies_relative(delay);
+
+ queue_delayed_work(system_freezable_wq, &dev->work, delay);
+}
+
+static void input_polled_device_work(struct work_struct *work)
+{
+ struct input_polled_dev *dev =
+ container_of(work, struct input_polled_dev, work.work);
+
+ dev->poll(dev);
+ input_polldev_queue_work(dev);
+}
+
+static int input_open_polled_device(struct input_dev *input)
+{
+ struct input_polled_dev *dev = input_get_drvdata(input);
+
+ if (dev->open)
+ dev->open(dev);
+
+ /* Only start polling if polling is enabled */
+ if (dev->poll_interval > 0) {
+ dev->poll(dev);
+ input_polldev_queue_work(dev);
+ }
+
+ return 0;
+}
+
+static void input_close_polled_device(struct input_dev *input)
+{
+ struct input_polled_dev *dev = input_get_drvdata(input);
+
+ cancel_delayed_work_sync(&dev->work);
+
+ if (dev->close)
+ dev->close(dev);
+}
+
+/* SYSFS interface */
+
+static ssize_t input_polldev_get_poll(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct input_polled_dev *polldev = dev_get_drvdata(dev);
+
+ return sprintf(buf, "%d\n", polldev->poll_interval);
+}
+
+static ssize_t input_polldev_set_poll(struct device *dev,
+ struct device_attribute *attr, const char *buf,
+ size_t count)
+{
+ struct input_polled_dev *polldev = dev_get_drvdata(dev);
+ struct input_dev *input = polldev->input;
+ unsigned int interval;
+ int err;
+
+ err = kstrtouint(buf, 0, &interval);
+ if (err)
+ return err;
+
+ if (interval < polldev->poll_interval_min)
+ return -EINVAL;
+
+ if (interval > polldev->poll_interval_max)
+ return -EINVAL;
+
+ mutex_lock(&input->mutex);
+
+ polldev->poll_interval = interval;
+
+ if (input->users) {
+ cancel_delayed_work_sync(&polldev->work);
+ if (polldev->poll_interval > 0)
+ input_polldev_queue_work(polldev);
+ }
+
+ mutex_unlock(&input->mutex);
+
+ return count;
+}
+
+static DEVICE_ATTR(poll, S_IRUGO | S_IWUSR, input_polldev_get_poll,
+ input_polldev_set_poll);
+
+
+static ssize_t input_polldev_get_max(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct input_polled_dev *polldev = dev_get_drvdata(dev);
+
+ return sprintf(buf, "%d\n", polldev->poll_interval_max);
+}
+
+static DEVICE_ATTR(max, S_IRUGO, input_polldev_get_max, NULL);
+
+static ssize_t input_polldev_get_min(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct input_polled_dev *polldev = dev_get_drvdata(dev);
+
+ return sprintf(buf, "%d\n", polldev->poll_interval_min);
+}
+
+static DEVICE_ATTR(min, S_IRUGO, input_polldev_get_min, NULL);
+
+static struct attribute *sysfs_attrs[] = {
+ &dev_attr_poll.attr,
+ &dev_attr_max.attr,
+ &dev_attr_min.attr,
+ NULL
+};
+
+static struct attribute_group input_polldev_attribute_group = {
+ .attrs = sysfs_attrs
+};
+
+static const struct attribute_group *input_polldev_attribute_groups[] = {
+ &input_polldev_attribute_group,
+ NULL
+};
+
+/**
+ * input_allocate_polled_device - allocate memory for polled device
+ *
+ * The function allocates memory for a polled device and also
+ * for an input device associated with this polled device.
+ */
+struct input_polled_dev *input_allocate_polled_device(void)
+{
+ struct input_polled_dev *dev;
+
+ dev = kzalloc(sizeof(struct input_polled_dev), GFP_KERNEL);
+ if (!dev)
+ return NULL;
+
+ dev->input = input_allocate_device();
+ if (!dev->input) {
+ kfree(dev);
+ return NULL;
+ }
+
+ return dev;
+}
+EXPORT_SYMBOL(input_allocate_polled_device);
+
+struct input_polled_devres {
+ struct input_polled_dev *polldev;
+};
+
+static int devm_input_polldev_match(struct device *dev, void *res, void *data)
+{
+ struct input_polled_devres *devres = res;
+
+ return devres->polldev == data;
+}
+
+static void devm_input_polldev_release(struct device *dev, void *res)
+{
+ struct input_polled_devres *devres = res;
+ struct input_polled_dev *polldev = devres->polldev;
+
+ dev_dbg(dev, "%s: dropping reference/freeing %s\n",
+ __func__, dev_name(&polldev->input->dev));
+
+ input_put_device(polldev->input);
+ kfree(polldev);
+}
+
+static void devm_input_polldev_unregister(struct device *dev, void *res)
+{
+ struct input_polled_devres *devres = res;
+ struct input_polled_dev *polldev = devres->polldev;
+
+ dev_dbg(dev, "%s: unregistering device %s\n",
+ __func__, dev_name(&polldev->input->dev));
+ input_unregister_device(polldev->input);
+
+ /*
+ * Note that we are still holding extra reference to the input
+ * device so it will stick around until devm_input_polldev_release()
+ * is called.
+ */
+}
+
+/**
+ * devm_input_allocate_polled_device - allocate managed polled device
+ * @dev: device owning the polled device being created
+ *
+ * Returns prepared &struct input_polled_dev or %NULL.
+ *
+ * Managed polled input devices do not need to be explicitly unregistered
+ * or freed as it will be done automatically when owner device unbinds
+ * from * its driver (or binding fails). Once such managed polled device
+ * is allocated, it is ready to be set up and registered in the same
+ * fashion as regular polled input devices (using
+ * input_register_polled_device() function).
+ *
+ * If you want to manually unregister and free such managed polled devices,
+ * it can be still done by calling input_unregister_polled_device() and
+ * input_free_polled_device(), although it is rarely needed.
+ *
+ * NOTE: the owner device is set up as parent of input device and users
+ * should not override it.
+ */
+struct input_polled_dev *devm_input_allocate_polled_device(struct device *dev)
+{
+ struct input_polled_dev *polldev;
+ struct input_polled_devres *devres;
+
+ devres = devres_alloc(devm_input_polldev_release, sizeof(*devres),
+ GFP_KERNEL);
+ if (!devres)
+ return NULL;
+
+ polldev = input_allocate_polled_device();
+ if (!polldev) {
+ devres_free(devres);
+ return NULL;
+ }
+
+ polldev->input->dev.parent = dev;
+ polldev->devres_managed = true;
+
+ devres->polldev = polldev;
+ devres_add(dev, devres);
+
+ return polldev;
+}
+EXPORT_SYMBOL(devm_input_allocate_polled_device);
+
+/**
+ * input_free_polled_device - free memory allocated for polled device
+ * @dev: device to free
+ *
+ * The function frees memory allocated for polling device and drops
+ * reference to the associated input device.
+ */
+void input_free_polled_device(struct input_polled_dev *dev)
+{
+ if (dev) {
+ if (dev->devres_managed)
+ WARN_ON(devres_destroy(dev->input->dev.parent,
+ devm_input_polldev_release,
+ devm_input_polldev_match,
+ dev));
+ input_put_device(dev->input);
+ kfree(dev);
+ }
+}
+EXPORT_SYMBOL(input_free_polled_device);
+
+/**
+ * input_register_polled_device - register polled device
+ * @dev: device to register
+ *
+ * The function registers previously initialized polled input device
+ * with input layer. The device should be allocated with call to
+ * input_allocate_polled_device(). Callers should also set up poll()
+ * method and set up capabilities (id, name, phys, bits) of the
+ * corresponding input_dev structure.
+ */
+int input_register_polled_device(struct input_polled_dev *dev)
+{
+ struct input_polled_devres *devres = NULL;
+ struct input_dev *input = dev->input;
+ int error;
+
+ if (dev->devres_managed) {
+ devres = devres_alloc(devm_input_polldev_unregister,
+ sizeof(*devres), GFP_KERNEL);
+ if (!devres)
+ return -ENOMEM;
+
+ devres->polldev = dev;
+ }
+
+ input_set_drvdata(input, dev);
+ INIT_DELAYED_WORK(&dev->work, input_polled_device_work);
+
+ if (!dev->poll_interval)
+ dev->poll_interval = 500;
+ if (!dev->poll_interval_max)
+ dev->poll_interval_max = dev->poll_interval;
+
+ input->open = input_open_polled_device;
+ input->close = input_close_polled_device;
+
+ input->dev.groups = input_polldev_attribute_groups;
+
+ error = input_register_device(input);
+ if (error) {
+ devres_free(devres);
+ return error;
+ }
+
+ /*
+ * Take extra reference to the underlying input device so
+ * that it survives call to input_unregister_polled_device()
+ * and is deleted only after input_free_polled_device()
+ * has been invoked. This is needed to ease task of freeing
+ * sparse keymaps.
+ */
+ input_get_device(input);
+
+ if (dev->devres_managed) {
+ dev_dbg(input->dev.parent, "%s: registering %s with devres.\n",
+ __func__, dev_name(&input->dev));
+ devres_add(input->dev.parent, devres);
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(input_register_polled_device);
+
+/**
+ * input_unregister_polled_device - unregister polled device
+ * @dev: device to unregister
+ *
+ * The function unregisters previously registered polled input
+ * device from input layer. Polling is stopped and device is
+ * ready to be freed with call to input_free_polled_device().
+ */
+void input_unregister_polled_device(struct input_polled_dev *dev)
+{
+ if (dev->devres_managed)
+ WARN_ON(devres_destroy(dev->input->dev.parent,
+ devm_input_polldev_unregister,
+ devm_input_polldev_match,
+ dev));
+
+ input_unregister_device(dev->input);
+}
+EXPORT_SYMBOL(input_unregister_polled_device);

Some files were not shown because too many files have changed in this diff Show more