Commit graph

1709 commits

Author SHA1 Message Date
Jools Wills
2dd5e6b679 bump version to v2.10.2 2022-03-07 01:08:31 +00:00
Jools Wills
677f63c9ea Merge remote-tracking branch 'retropie/master' into stable 2022-03-07 01:08:09 +00:00
Tomas Jakobsson
9277c352ab
Merge pull request #780 from tomaz82/skip_directory_check
Skip isDirectory check on known directory paths
2022-02-13 15:48:42 +01:00
Jools Wills
ba62e70303
Merge pull request #782 from cmitu/mame-resources2
resources: update MAME files and add a generator
2022-02-12 20:12:10 +00:00
cmitu
2b08fb8c54 resources: update MAME files and add a generator
Added a script to generate the MAME related resources (devices/bioses/names) from a series of DAT files.
`mameres.py` ingests several XML based DAT files and produces the 3 MAME resource files. The operation merges the info from all given files.
For `mamenames.xml`, the `realname` precendence is based on the 1st occurence of the romset in the DAT files, so the order of the files is important.

The resources added in this commit are based on (in this order):
 * MAME 240 (Jan-2022) (games, bioses and devices)
 * FinalBurn Neo (11 Feb 2022) (games and bioses)
 * Mame2003 Libretro (11 Feb 2022) (games and bioses)

Note: the devices file was generated from the 'MAME 0.240.dat' file, since it contains both MESS and Arcade systems.
2022-02-12 08:46:39 +00:00
Tomas Jakobsson
c7b3b42efc Skip isDirectory check on known directory paths 2022-02-08 10:19:00 +01:00
Tomas Jakobsson
d1e4862609
Merge pull request #751 from EnsignRutherford/game-system-select-events
Changes necessary to implement Scripting events for "game-select", "system-select" and "screeensaver-game-select"
2022-02-01 16:55:53 +01:00
Tomas Jakobsson
1e23dc54f2 Merge branch 'master' into game-system-select-events 2022-02-01 16:50:38 +01:00
Tomas Jakobsson
6f92612ff4
Merge pull request #777 from cmitu/scraper-input
scraper: teach ScreenScraper to use the user input
2022-01-31 09:20:52 +01:00
cmitu
d3917391aa scraper: teach ScreenScraper to use the user input
Fixed the ScreenScraper search by user input, since it only by searched by filename and ignored the user input for the game name.
2022-01-31 09:55:34 +02:00
Tomas Jakobsson
0eb41f304b
Merge pull request #779 from tomaz82/fix_wrap_text
Fix infinite loop in wrapText when maxWidth is less than 0
2022-01-31 08:49:03 +01:00
Tomas Jakobsson
f4cae18e32 Don't wrap if maxWidth is 0 or negative 2022-01-30 20:21:17 +01:00
Jools Wills
3eb9f65872 cosmetic - convert CRLF file to LF 2022-01-30 19:02:49 +00:00
Tomas Jakobsson
16c1ef1811
Merge pull request #778 from tomaz82/lineendings
Fix broken lineendings
2022-01-27 15:57:30 +01:00
Tomas Jakobsson
367e0b00ea Fix broken lineendings 2022-01-27 15:55:02 +01:00
pjft
092ec637cb
Merge pull request #776 from pjft/fix-kiosk-filter
Fix navigating to parent when list is filtered
2022-01-25 22:38:55 +00:00
pjft
f126353600 Fix navigating to parent when list is filtered 2022-01-25 21:18:39 +00:00
Tomas Jakobsson
bd2ae7d343
Merge pull request #769 from cmitu/jp-wordwrap
Improve text wrapping (rebased #269)
2022-01-25 10:08:45 +01:00
Tomas Jakobsson
842e8f4f19
Merge pull request #732 from Gemba/fb_minor_err_msg_on_noexec_script
Improved warning message when userscript is not mode 755.
2022-01-25 10:08:02 +01:00
cmitu
bc4f81b547 Improve text wrapping (rebased #269)
This is a re-work of PR#269 and PR#314:

* originally proposed by @eagle0wl and discussed/tested with @zigurana during #269, with the motivation being to accomodate texts in languages that don't use spaces between successive characters and words (e.g. Japanese/Chinese).

* @zigurana created a smaller PR in #314 (now closed), but hasn't been updated after @tomaz82's work that changed the Unicode (UTF8) string handling functions (see #297).

I've taken the changes from @zigurana's PR (#269) and updated the code to use `Utils::String::chars2Unicode`.

I added a smaller change for parsing the text. Since we analyze each Unicode code point now (instead of a string), I replaced the `sizeText` call with a simpler function, which gets the size for just the codepoint being scanned. `lineWidth` is consequently incremended for each Unicode code point or reset on a new line.

The performance of `textWrap` looks similar or better than the previous implementation (based in whitespace tokenization) and the results are similar to what was tested during the initial PR (#269).

**NOTE**: the line breaking for non-whitespace texts is a simple split around Unicode code points. Each language may have additional rules for line breaking in texts (i.e. some characters are not allowed at the end/beginning of a line, etc.). These rules are not implemented in this update, it would require additional text analysis.

Some details on line breaking rules for Japanese/Chinese/Korean languages can be consulted at https://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages

Original descriptions for the changes on which this modification is based:

* from @eagl0wl's #269, _refine text wordwrap_:
 > refined single-multibyte text wordwrap.
 > You can now properly wrap Japanese character strings.
 > You can see some screenshot. If necessary, I can present more screenshots.
 >   http://eagle0wl.hatenadiary.jp/entry/2017/10/24/003606

* from @zigurana's #314, _Line-breaking (wrapping) for non ascii strings_
 > New PR (replacing #269).

Closes: #269
Supercedes: #269
2022-01-25 08:05:31 +00:00
Tomas Jakobsson
00c62129ac
Merge pull request #774 from tomaz82/misc
Misc
2022-01-25 08:27:35 +01:00
Tomas Jakobsson
1aa46958ab Base SVG size on height 2022-01-20 11:33:18 +01:00
Tomas Jakobsson
ab38884a15 Potentially fix multithread issue 2022-01-20 11:33:11 +01:00
Tomas Jakobsson
495753abe6 Silence compiler warnings 2022-01-20 11:33:00 +01:00
Tomas Jakobsson
367277cb35
Merge pull request #770 from cmitu/date-time-format
TimeUtil: use `strftime` for date/time formatting.
2022-01-20 11:23:06 +01:00
EnsignRutherford
3cb84b0afd Added fully qualified path to game-select events and added game name to game-start event. 2022-01-19 11:12:57 -05:00
Tomas Jakobsson
d4eb62b62c
Merge pull request #766 from TheMasterWho/feature/ScreensaverSlideshowVideos
Feature: Slideshow screensaver video support
2022-01-19 13:26:57 +01:00
Tomas Jakobsson
7607a4f4a6
Merge pull request #771 from cmitu/scrape-systems2
Scraping platforms update
2022-01-19 11:45:52 +01:00
Tomas Jakobsson
8675f38bd9
Merge pull request #767 from johnodon/master
Update FileSystemUtil.cpp - Allow for multilevel absolute paths in gamelist.xml
2022-01-18 20:33:24 +01:00
EnsignRutherford
f9213c7bd7
Update SystemScreenSaver.cpp
Removed reference to the profiling utility.
2022-01-17 11:36:18 -05:00
Jools Wills
d6d39e4d95
Merge pull request #762 from cmitu/hidapi
input: disable the SDL2 HIDAPI drivers by default
2022-01-10 19:20:41 +00:00
Jools Wills
c9d905c31a bump version to v2.10.1 2021-12-26 15:38:57 +00:00
pjft
1d05ae4f92 Revert default ThreadedLoading option 2021-12-26 15:35:57 +00:00
pjft
13c3300279
Revert default ThreadedLoading option 2021-12-26 09:13:43 +00:00
cmitu
d37d36b558 New scraping platforms.
Added:
 * Nintendo Switch (TGDB, ScreenScraper)
 * TIC 80 (ScreenScraper)
 * PICO-8 (ScreenScraper)
 * Sam Coupe (TGDB, ScreenScraper)
 * PC-FX (TGDB, ScreenScraper)
 * ZMachine (ScreenScraper)

Updated:
 * ZX81 Sinclair - added for TGDB
2021-12-20 13:43:39 +02:00
cmitu
1df4bbfc8e TimeUtil: use strftime for date/time formatting.
The change extends the DateTime formatting options and simplifies a bit the code.
2021-12-20 12:36:20 +02:00
Jools Wills
b513c19c5b bump version to v2.11.0-dev 2021-10-31 19:28:55 +00:00
Jools Wills
c8056701b6 bump version to v2.10.0 2021-10-31 18:36:38 +00:00
Jools Wills
d9be033349 Merge remote-tracking branch 'retropie/master' into stable 2021-10-31 18:36:16 +00:00
Jools Wills
1f4ed5e8fb
Merge pull request #768 from tomaz82/center_gamelist
Center the gamelist in the available textlist height
2021-10-31 18:30:09 +00:00
TheMasterWho
300828e445
Rename instances of image to media in SlideShow Screensaver mode
* renamed image to media and added setting rename function

* replaced references to 'image' with 'media' and removed hardcoded video extensions

* fixed a bug when checking a null path
2021-10-10 16:00:20 -04:00
Tomas Jakobsson
7639e28c4d Center the gamelist in the available textlist height 2021-09-27 18:07:26 +02:00
johnodon
a2ff3f035a
Update FileSystemUtil.cpp 2021-09-13 12:13:53 -04:00
TheMasterWho
db2ce15f7a refactored video file test into dedicated method 2021-09-09 18:33:51 -04:00
TheMasterWho
8ac3bdd7da
Fixed preprocessor directive formatting 2021-09-07 20:07:56 -04:00
TheMasterWho
daaefa39bb changed file extension comparison to use a vector to allow easy additions 2021-09-07 17:48:40 -04:00
TheMasterWho
0b5e9a7cb3 refactored ScreenSaver startScreenSaver method to allow video files in slideshow mode 2021-09-06 23:11:42 -04:00
cmitu
b19b1b0ffb input: disable the SDL2 HIDAPI drivers by default
This ensures that configurations created before HIDAPI drivers were enabled by default (2.0.12)
will work when EmulationStation uses a newer SDL2 version.

Using the HIDAPI drivers may produce a different name for joysticks and pottentially changes the mapping.
Example using a PS4 (Dualshock 4) controller:
 - without HIDAPI, the controller is named "Wireless Controller", with HIDAPI enabled is named "PS4 Controller"
 - without HIDAPI, the D-Pad is detected as a HAT, but with the drivers enabled it's detected as a series of buttons
 - the device GUID is different between the 2 configurations
The different name would probably break also the input configuration script for RetroArch, which doesn't use SDL2 as default input driver and would receive a wrong name and wrong mappings.

Note that the HIDAPI drivers are available just for a few controller models (PS4/PS4/Amazon Luna/Stadia/Xbox360(w)/Xbox One/Steam),
but these controllers are widely used and breaking their configuration would cause much confusion.
2021-08-20 16:58:48 +01:00
pjft
c612f23b03
Merge pull request #757 from Gemba/fb_perfect_shuffle
Better Random: Perfect shuffle of systems, games and screensaver items
2021-07-22 23:57:09 +01:00
Gemba
ee89794993 Improved randomisation: card deck approach, use ranlux48 and random_device for seed
- Use C++11 built-in ranlux48 and random_device for seeding
- Shuffles systems (aso.) like a card deck and picks top system until empty, then shuffles again
- Fixes the flaws of the current random implementation: Real 1/N chance for an element in a set of N
- Minor refactorings
2021-07-13 11:42:22 +02:00