Compare commits

...
2677 Commits
Author SHA1 Message Date
twinaphex 122be0cc64 Bump version to 1.9.3 2021-05-15 19:57:59 +02:00
Autechre 6b13e3f050 Merge pull request #12397 from jdgleaver/info-cache-default
Enable core info cache by default on all 'console' platforms
2021-05-14 17:58:04 +02:00
jdgleaver 87e248f4eb Enable core info cache by default on all 'console' platforms 2021-05-14 16:49:30 +01:00
Autechre 2be7106055 Merge pull request #12395 from jdgleaver/auto-shader-delay-fix
Fix 'Auto-Shader Delay' functionality
2021-05-14 16:15:15 +02:00
jdgleaver 0a24f5f38a Fix 'Auto-Shader Delay' functionality 2021-05-14 13:47:46 +01:00
Autechre 6189fd3f42 Merge pull request #12392 from alttpo/fix-network-cmd-recvfrom
command: initialize netcmd->cmd_source_len before recvfrom()
2021-05-14 13:06:59 +02:00
Autechre 29d5a692d0 Merge pull request #12393 from jdgleaver/rgui-config-save-fix
(RGUI) Fix saving of config files/overrides when 'Lock Menu Aspect Ratio' is enabled
2021-05-14 13:06:36 +02:00
jdgleaver 358cafa978 (RGUI) Fix saving of config files/overrides when 'Lock Menu Aspect Ratio' is enabled 2021-05-14 10:50:18 +01:00
jsd1982 b3eebbd5ec command: initialize netcmd->cmd_source_len before recvfrom() 2021-05-13 22:13:10 -05:00
Autechre cc5b491e21 Merge pull request #12390 from jdgleaver/emscripten-load-content-fix
Fix content loading via file browser on platforms with 'broken' core handling (i.e. emscripten)
2021-05-13 17:35:39 +02:00
Autechre bf0b9f536a Merge pull request #11547 from jdgleaver/ff-callback
Add API extension for cores to override frontend fast-forward state
2021-05-13 16:40:06 +02:00
jdgleaver 6f471e0660 Fix content loading via file browser on platforms with 'broken' core handling (i.e. emscripten) 2021-05-13 15:32:25 +01:00
jdgleaver 484c4ad51e Add API extension for cores to override frontend fast-forward state 2021-05-13 13:16:37 +01:00
Autechre 66c77af4a6 Merge pull request #12381 from GavinDarkglider/master
Fix typo in HAVE_LAKKA_SWITCH stuff that is breaking HAVE_LAKKA build…
2021-05-12 16:08:15 +02:00
Autechre 667568b0b8 Merge pull request #12386 from Ryunam/ozone-themes-id
Updates to Ozone (follow-up to #12382)
2021-05-12 16:02:07 +02:00
twinaphex f3ff36ac34 Fix some targets - no comma at end of enumerator list 2021-05-12 16:01:31 +02:00
Autechre feaefbef04 Merge pull request #12385 from jdgleaver/static-reload-core-fix
(Static Platforms) Ensure 'Always Reload Core on Run Content' setting is applied when loading content via the file browser
2021-05-12 16:00:43 +02:00
Ryunam a16aba2138 Updates to Ozone 2021-05-12 15:28:26 +02:00
jdgleaver 50d27fada9 (Static Platforms) Ensure 'Always Reload Core on Run Content' setting is applied when loading content via the file browser 2021-05-12 10:59:07 +01:00
Autechre a6d92de0b2 Merge pull request #12382 from Ryunam/ozone-themes-id
Minor updates to Ozone themes code
2021-05-12 09:18:02 +02:00
Autechre 89391ccf9a Merge pull request #12287 from LazyFunker/master
Some fixes for UWP/XBox
2021-05-12 09:17:53 +02:00
Autechre e430f832cc Merge pull request #12383 from davidgfnet/cpufreq2
CPU governor/frequency part 2
2021-05-12 09:17:42 +02:00
David Guillen Fandos 9280340fe0 CPU governor/frequency part 2
This adds managed policies and settings to store them and reload them at
startup. Only for Lakka builds!
2021-05-12 02:16:25 +02:00
Ryunam 85466225de Minor updates to Ozone themes code 2021-05-11 19:35:38 +02:00
Ronald Brown fa2c789c3f Fix typo in HAVE_LAKKA_SWITCH stuff that is breaking HAVE_LAKKA building. 2021-05-10 23:31:00 -07:00
Autechre 475213aa0a Merge pull request #12378 from davidgfnet/master
Moving more stuff from samples to tests
2021-05-11 03:16:04 +02:00
David Guillen Fandos 32d6eeaf07 Moving more stuff from samples to tests
Reworked the test a bit to make it separate from RA's build system for
simplicity.
Reworked the testing a bit to ensure coverage is properly generated.
This needs more work since it's rather manual and verbose
2021-05-10 19:45:50 +02:00
Autechre 6f95e7819a Merge pull request #12364 from davidgfnet/master
Add more tests and coverage generation
2021-05-09 19:57:40 +02:00
GavinDarkglider f24f827c4c Updates For Lakka Switch build. (#12369) 2021-05-07 20:58:30 +02:00
Autechre 53a266728b Merge pull request #12368 from jdgleaver/core-info-fix 2021-05-07 14:28:18 +02:00
Autechre 215ed2ccf6 Merge pull request #12367 from jdgleaver/core-info-cache-whitespace 2021-05-07 14:28:01 +02:00
jdgleaver a671b6394c (Core Info) Fix core detection on platforms that support cores with multiple file extensions 2021-05-07 10:58:09 +01:00
jdgleaver dec1fd097c Skip whitespace when writing compressed core info cache files 2021-05-07 10:16:21 +01:00
David Guillen Fandos a0f0d7bed2 Add more tests and coverage generation 2021-05-06 18:43:56 +02:00
Autechre 6a21eca5df Merge pull request #12363 from jdgleaver/core-info-cache-updates 2021-05-06 16:13:55 +02:00
jdgleaver c37f540b72 Core Info Cache Improvements
- Core info cache can now be enabled/disabled on all platforms via a new `Settings > Core > Cache Core Info Files` option
- Core info cache file has been renamed from `.cache` to `core_info.cache` (i.e. it is no longer a 'hidden' file on Unix platforms, so can be deleted easily)
- The core info cache file is now compressed (rzip) to further reduce disk IO
- The presence of a `core_info.refresh` file in the core info directory will force a one-time refresh of the info cache. This file is generated automatically when toggling on the `Cache Core Info Files` option, and we will also add it to core info file packaging such that updating info files (either manually or via the online updater) will force a refresh
- The core info cache no longer contains 'core is locked' and 'firmware missing' data fields; these are 'dynamic' properties that must be determined at runtime
- The 'core is locked' status is now determined on core info intialisation by parsing the core directory listing, rather than by performing indivdual 'lock file exists' checks. This minimises file IO, and greatly improves performance on devices with slow storage
- While parsing the core info cache file, we now avoid unnecessary `strdup()`s when adding entries to the resultant cache list
- Memory leaks (potential and real) have been fixed, and safety checks added
- Build errors have been fixed
2021-05-06 15:00:55 +01:00
Autechre 5aba614b60 Merge pull request #12350 from bulzipke/master 2021-05-06 15:57:50 +02:00
Autechre 0680505ebf Merge pull request #12354 from njordan64/generic-queue-linked-list
Adding a generic queue and linked list.
2021-05-05 22:49:11 +02:00
Norman Jordan 528af55abd Adding a generic queue and linked list.
Both accept (void *) values. Also added some unit tests using CHECK.
2021-05-05 10:41:13 -07:00
Autechre 1167dde73a Merge pull request #12359 from njordan64/shader_vulkan_fix
Added a missing include.
2021-05-05 18:18:42 +02:00
Autechre b3abdefb9a Merge pull request #12358 from bulzipke/fix-msvc-build
Fix windows msvc build
2021-05-05 18:18:33 +02:00
Norman Jordan 1b0ae7a0b2 Added a missing include. 2021-05-05 01:52:04 -07:00
bulzipke f3daf070e1 Fix windows msvc build 2021-05-05 15:32:15 +09:00
Autechre 6241909a08 Merge pull request #12356 from jdgleaver/warn-fix
Fix 'unhandled enum' compiler warning on non-LAKKA platforms
2021-05-04 16:04:33 +02:00
Autechre 7fbb7a8007 Merge pull request #12355 from jdgleaver/3ds-disable-screensaver
(3DS) Disable menu screensaver animations in XMB/GLUI
2021-05-04 16:04:24 +02:00
bulzipke e96cbcac04 (3DS) Build core info cache 2021-05-04 23:01:17 +09:00
jdgleaver 0706cdea4c Fix 'unhandled enum' compiler warning on non-LAKKA platforms 2021-05-04 12:35:01 +01:00
jdgleaver 07099797bd (3DS) Disable menu screensaver animations in XMB/GLUI 2021-05-04 11:44:30 +01:00
Jean-André Santoni 77967f0148 Merge pull request #12348 from libretro/kivutar/lutroweb
Add lutro to web.libretro.com
2021-05-02 14:13:43 +07:00
Jean-André Santoni 56e40e8204 Add lutro to web.libretro.com 2021-05-02 13:04:20 +07:00
Autechre 218c6f30b9 Merge pull request #12346 from davidgfnet/cpufreq1 2021-05-02 05:15:56 +02:00
David Guillen Fandos b2c20e8ce0 Initial support for tweaking CPU governors/scaling policies
This is, at the moment, aimed at Lakka only.
2021-05-01 18:35:38 +02:00
Autechre 76eeee2c9a Merge pull request #12345 from devnexen/fbsd_build_fix
FreeBSD build fix proposal
2021-05-01 17:26:44 +02:00
David Carlier 3b7e0a8db1 FreeBSD build fix proposal 2021-05-01 15:37:14 +01:00
Autechre bc23d070de Update CHANGES.md 2021-04-30 18:19:36 +02:00
twinaphex 951ea6baaf Bump up to version 1.9.2 2021-04-30 17:49:54 +02:00
Autechre 84ab14cb83 Merge pull request #12281 from eadmaster/multi_patch
added multi-softpatching support + OSD messages for patches (#9947)
2021-04-30 16:00:43 +02:00
eadmaster 019130298a added multi-softpatching support + OSD messages for patches (#9947)
fixed Travis error
2021-04-30 14:12:47 +02:00
Autechre 99917368b4 Merge pull request #12341 from jdgleaver/dingux-autosave
OpenDingux: Enable 'SaveRAM Autosave Interval' by default
2021-04-30 00:03:41 +02:00
jdgleaver 5f12edaae4 OpenDingux: Enable 'SaveRAM Autosave Interval' by default 2021-04-29 15:15:12 +01:00
Autechre 8eb8b44e83 Merge pull request #12327 from repojohnray/config_h
Set -I. at the beginning to include the right config.h
2021-04-29 15:44:41 +02:00
Autechre 9c534c3550 Merge pull request #12339 from jdgleaver/dingux-ra-bin
(.gitlab-ci.yml) Add 'raw' retroarch binary to OpenDingux (+Beta) job artifacts
2021-04-29 15:10:07 +02:00
Autechre 10c1361751 Merge pull request #12337 from Jamiras/ff_slow
enforce minimum fastforward_ratio of 1.0
2021-04-29 15:09:55 +02:00
Autechre 2153cd8e2c Merge pull request #12338 from jdgleaver/config-file-append-fix
Fix config file appending and 'including'
2021-04-29 15:08:32 +02:00
jdgleaver 95cea8cc5d (.gitlab-ci.yml) Add 'raw' retroarch binary to OpenDingux (+Beta) job artifacts 2021-04-29 13:01:44 +01:00
jdgleaver 02630d998e Fix config file appending and 'including' 2021-04-29 12:29:47 +01:00
Jamiras 77d04af845 enforce minimum fastforward_ratio of 1.0 2021-04-28 22:43:48 -06:00
Autechre 42e01acfa1 Merge pull request #12335 from MrHuu/master
(3DS) Change default asset directory
2021-04-28 22:10:27 +02:00
Autechre b2faff6bf9 Merge pull request #12334 from jdgleaver/core-info-hash-collision
(core_info) Prevent potential hash collisions when searching for cores
2021-04-28 22:09:41 +02:00
MrHuu a58236d69d (3DS) Change default asset directory 2021-04-28 19:59:03 +02:00
jdgleaver 3bc2758d51 (core_info) Prevent potential hash collisions when searching for cores 2021-04-28 17:52:15 +01:00
Autechre 40f6f7b803 Merge pull request #12333 from jdgleaver/config-file-hashmap-update
(config_file) Modify hash map usage for proper compatibility with updated RHMAP implementation
2021-04-28 18:38:43 +02:00
jdgleaver b1a7d3e995 (config_file) Modify hash map usage for proper compatibility with updated RHMAP implementation 2021-04-28 17:34:24 +01:00
Autechre 7fc636c623 Merge pull request #12332 from Alcaro/master
Track the complete string in rhmap
2021-04-28 17:05:27 +02:00
Alcaro 2c5c4647e3 Track the complete string in rhmap 2021-04-28 16:09:45 +02:00
Autechre 2702ce693b Merge pull request #12328 from jdgleaver/7zip-update
Update 7-Zip dependency to latest stable version (fixes CHD support on static platforms)
2021-04-28 15:12:41 +02:00
Autechre 71836cacdb Merge pull request #12331 from bulzipke/master
(3DS) Load overlay texture images as BGR colors
2021-04-28 13:28:33 +02:00
jdgleaver a501dfd680 Update 7-Zip dependency to latest stable version (fixes CHD support on static platforms) 2021-04-28 12:00:50 +01:00
bulzipke 7e7615c97c (3DS) Load overlay texture images as BGR colors 2021-04-28 19:16:14 +09:00
Autechre a4d955357d Merge pull request #12329 from IAmBoring/patch
MSVC Vulkan Buildfix
2021-04-28 11:57:46 +02:00
IAmBoring 9c0aec1d19 MSVC Vulkan Buildfix 2021-04-27 20:45:52 +00:00
repojohnray 28541fe826 Set -I. at the beginning to include the right config.h
This is done to avoid to include for instance valgrind/config.h as the main config.h
2021-04-27 17:37:27 +02:00
Autechre 8466a213e8 Merge pull request #12324 from devnexen/macos_vulkan_build_fix
macOS with vulkan build fix
2021-04-26 22:16:24 +02:00
Autechre 0cd0ce87f5 Merge pull request #12323 from bulzipke/master
(3DS) Load texture images as BGR colors
2021-04-26 22:15:57 +02:00
David Carlier c7f3fa2b5d macOS with vulkan build fix 2021-04-26 20:31:15 +01:00
Autechre f601f4ce70 Merge pull request #12311 from gblues/gblues/runloop-state 2021-04-26 19:43:49 +02:00
bulzipke 56a0300db5 Load texture images as BGR colors 2021-04-27 01:58:41 +09:00
Nathan Strong d7075296e3 Move runloop data to static struct
== DETAILS
As part of a larger project to reduce/eliminate global state, this commit does the following:

1. move all the `runloop_` members of the `rarch_st` struct to a separate structure
2. create a static instance of that struct in retroarch.c
3. switch all references of `p_rarch->runloop_*` to `runloop_state.*`
4. remove the extraneous `runloop_` prefix on the new struct's members
2021-04-26 09:21:01 -07:00
Autechre a904b1665f Merge pull request #12321 from jdgleaver/core-info-optimisation
(core_info) Performance optimisations + code clean-ups/refactors
2021-04-26 16:45:49 +02:00
jdgleaver f4511f6fa4 (core_info) Performance optimisations + code clean-ups/refactors 2021-04-26 14:30:31 +01:00
Autechre 1d81841091 Merge pull request #12308 from sonninnos/cheat-log
Silence unappropriate cheatfile logging
2021-04-25 23:44:22 +02:00
Autechre d339d5eab5 Merge pull request #12313 from MrHuu/master
(3DS) Enable gfx_widgets / overlays
2021-04-25 23:44:13 +02:00
Autechre 9d13b090d8 Merge pull request #12317 from devnexen/mac_m1_cpu_features
cpu detection detection vfp unit for Darwin.
2021-04-25 23:43:57 +02:00
David CARLIER 6f898e611c cpu detection detection vfp unit for Darwin. 2021-04-24 22:58:14 +01:00
MrHuu 1235a7435e (3DS) Enable gfx_widgets / overlays 2021-04-24 15:36:03 +02:00
sonninnos 2ebf46e241 Silence unappropriate cheatfile logging 2021-04-23 18:44:02 +03:00
twinaphex d2af1e905c Fix runahead 2021-04-23 13:18:29 +02:00
twinaphex be255ff269 (gfx_animation.c) Simplify some functions 2021-04-22 19:30:20 +02:00
twinaphex 0211e7749e Simplify gfx_animation_ticker_generic 2021-04-22 18:48:14 +02:00
Autechre d24f808d79 Merge pull request #12294 from ToKe79/lakka_timezone
Lakka: add menu for time zone setting
2021-04-22 18:38:19 +02:00
Autechre 6d42481c37 Merge pull request #12301 from jdgleaver/search-filter-cheats-overlays
Add search filter support to cheats and overlays file browser menus
2021-04-22 18:32:49 +02:00
jdgleaver 80753ac741 Add search filter support to cheats and overlays file browser menus 2021-04-22 16:56:57 +01:00
Autechre 93e467913e Merge pull request #12300 from jdgleaver/rgui-scaling-menu-fix
(RGUI) Fix display of 'Video > Scaling' menu when 'Lock Menu Aspect Ratio' is enabled
2021-04-22 17:49:13 +02:00
jdgleaver fc283123bb (RGUI) Fix display of 'Video > Scaling' menu when 'Lock Menu Aspect Ratio' is enabled 2021-04-22 15:55:59 +01:00
Autechre 5998c561ee Merge pull request #12299 from sinusinu/master
GDI: Fix non-ASCII text rendering
2021-04-22 14:24:47 +02:00
Woohyun Shin 4e8a71d034 GDI: Fix non-ASCII text rendering 2021-04-22 20:38:58 +09:00
Autechre d458729f6c Merge pull request #12297 from Szunti/sdl_input_crash_if_analog_bound 2021-04-22 03:25:32 +02:00
Szunti 3191fec54c Fix crash in sdl input driver when analogs are bound. 2021-04-22 03:20:39 +02:00
Autechre 7a5559aba0 Merge pull request #12295 from jdgleaver/config-file-hash-map 2021-04-22 00:35:35 +02:00
jdgleaver 29d5963cad (config_file) Use hash map to optimise key/value lookups 2021-04-21 17:33:36 +01:00
Tomáš Kelemen (vudiq) 90529c62b2 Lakka: add menu for time zone setting
This adds new entry under Settings -> Services (where all Lakka related
services are currently available, such as switches for services like
SSH, Samba, etc.). By adding this the users do not have to use the
command line / access the file system directly to change their local
time zone to adjust the date/time displayed in RetroArch.
2021-04-21 18:12:42 +02:00
twinaphex ae21979b7c Remove unused variable 2021-04-21 15:58:51 +02:00
Autechre 09c3ef0f6a Merge pull request #12290 from devnexen/mac_timer_upd
Mac intel and arm64 timer change proposal.
2021-04-21 15:59:33 +02:00
twinaphex ba791b7de8 Add better fix that targets all statically linked platforms instead of 2021-04-21 15:58:18 +02:00
Autechre 0ddfbd976c Merge pull request #12292 from Jamiras/cheevos_supervision_mmap
(cheevos) update achievement memory maps
2021-04-21 06:50:02 +02:00
Jamiras d4ba7579d1 update achievement memory maps 2021-04-20 20:08:46 -06:00
twinaphex 220bc434be Get rid of strcpy_alloc 2021-04-21 02:25:51 +02:00
David CARLIER 2932a835fc Mac intel and arm64 timer change proposal. 2021-04-20 21:38:01 +01:00
twinaphex e88fad00a5 copy_core_to_temp_file - get rid of a bunch of strcat_alloc calls,
instead just use fill_pathname_join once and have retroarch_tmp_path
be a fixed stack array variable
2021-04-20 21:29:02 +02:00
Autechre 36d274d460 Merge pull request #12288 from ToKe79/lakka-change-handlers-squash-warnings
Make Lakka change handlers use the setting pointer
2021-04-20 20:31:15 +02:00
twinaphex 4c4d5e5837 (core_info.c) Cleanups 2021-04-20 19:46:11 +02:00
twinaphex 769fb7cd02 Cleanup 2021-04-20 19:35:59 +02:00
twinaphex 0cc5b29558 Use path_basename for instances where we don't have to deal
with compressed files in archives
2021-04-20 19:14:47 +02:00
Tomáš Kelemen (vudiq) 191171802b Make Lakka change handlers use the setting pointer
These change handler functions had incorrect parameter (void *) instead
of (rarch_setting_t *) and were also spawning new local pointer to the
settings and other local variables, which was not necessary, as one can
use the value from the call (setting->target.value.boolean in these
cases).

I have also modified the systemd_sevice_toggle function. Before it
looked like it was creating / deleting the file in both child and parent
processes and started / stopped the systemd service in the child
process. Now both actions (creation / deletion of file and start / stop
of service) are done in the child process.

Below are the compiler warnings about incompatible pointer types:

```
menu/menu_setting.c: In function ‘setting_append_list’:
menu/menu_setting.c:18520:58: warning: assignment to ‘change_handler_t’ {aka ‘void (*)(struct rarch_setting *)’} from incompatible pointer type ‘void (*)(void *)’ [-Wincompatible-pointer-types]
18520 |             (*list)[list_info->index - 1].change_handler = ssh_enable_toggle_change_handler;
      |                                                          ^
menu/menu_setting.c:18536:58: warning: assignment to ‘change_handler_t’ {aka ‘void (*)(struct rarch_setting *)’} from incompatible pointer type ‘void (*)(void *)’ [-Wincompatible-pointer-types]
18536 |             (*list)[list_info->index - 1].change_handler = samba_enable_toggle_change_handler;
      |                                                          ^
menu/menu_setting.c:18552:58: warning: assignment to ‘change_handler_t’ {aka ‘void (*)(struct rarch_setting *)’} from incompatible pointer type ‘void (*)(void *)’ [-Wincompatible-pointer-types]
18552 |             (*list)[list_info->index - 1].change_handler = bluetooth_enable_toggle_change_handler;
      |                                                          ^
menu/menu_setting.c:18568:58: warning: assignment to ‘change_handler_t’ {aka ‘void (*)(struct rarch_setting *)’} from incompatible pointer type ‘void (*)(void *)’ [-Wincompatible-pointer-types]
18568 |             (*list)[list_info->index - 1].change_handler = localap_enable_toggle_change_handler;
      |                                                          ^
```
2021-04-20 19:14:10 +02:00
Autechre 32b626704e Merge pull request #12286 from jdgleaver/file-browser-search-filter
Enhanced 'Load Content' file browser search functionality
2021-04-20 18:14:05 +02:00
jdgleaver b193fd0ba9 Enhanced 'Load Content' file browser search functionality 2021-04-20 15:49:22 +01:00
LazyFunker c5e5cf28af Force resolution on UWP 2021-04-20 11:47:32 +02:00
LazyFunker 8ff0430370 Disable mipmap generation for UWP 2021-04-20 10:29:17 +02:00
Autechre 7317b6b98e Merge pull request #12285 from alphanu1/master
Fixed CRTSwitchRes framebuffer bug
2021-04-20 00:21:17 +02:00
Ben 799fcdb5e0 Fixed CRTSwitchRes framebuffer bug 2021-04-19 07:38:38 -07:00
Autechre 6b021f8d14 Merge pull request #12283 from libretro/revert-12011-video-resolution
Revert "Screen Resolution option fixes"
2021-04-17 19:33:37 +02:00
Autechre a56fcfb24a Revert "Screen Resolution option fixes" 2021-04-17 19:33:23 +02:00
twinaphex 1811bd6885 Fix issue in https://github.com/libretro/neocd_libretro/issues/58 2021-04-16 19:34:06 +02:00
twinaphex 46a37b9bd9 Silence some warnings 2021-04-16 17:55:19 +02:00
Autechre 3fcd645a73 Merge pull request #12277 from devnexen/arm64_build_fix_proposal
run fast mode disable for 64 bits invalid instructions.
2021-04-16 17:35:18 +02:00
David CARLIER 7cbee3dc8f run fast mode disable for 64 bits invalid instructions. 2021-04-16 08:33:01 +01:00
twinaphex 9812f368e7 Move more of these static variables out of retroarch_data.h 2021-04-15 19:51:40 +02:00
twinaphex 0f4dbcfc53 move arrays over to only function that uses them 2021-04-15 19:51:40 +02:00
Autechre fb79927c05 Merge pull request #12273 from jdgleaver/font-texture-bleed-fix
(freetype/stb_unicode/bitmapfont) Prevent texture bleed when rendering text at non-integer scales
2021-04-15 19:44:57 +02:00
jdgleaver fc05c0805b (freetype/stb_unicode/bitmapfont) Prevent texture bleed when rendering text at non-integer scales 2021-04-15 17:24:32 +01:00
Autechre b69e023736 Merge pull request #12270 from jdgleaver/rgui-transparency
(RGUI) Add option to disable menu transparency
2021-04-15 16:28:43 +02:00
jdgleaver 54c45bd54e (RGUI) Add option to disable menu transparency 2021-04-15 12:32:39 +01:00
twinaphex 67c06d17bb command_event_runtime_log_deinit - put verbosity_is_enabled check around
this
2021-04-15 08:08:08 +02:00
twinaphex b91a1f4788 Silence warning 2021-04-15 07:39:25 +02:00
twinaphex 9f902c8bd4 input_joypad_analog_button - only call fabs when input value is not 0 2021-04-15 07:27:43 +02:00
twinaphex 52454591aa Small cleanup to input_joypad_analog_button 2021-04-15 07:22:59 +02:00
twinaphex cfe9d60f51 Get rid of button_is_pressed 2021-04-15 06:55:35 +02:00
Autechre 36bf1ad112 Merge pull request #12268 from digitalisland-nino/dracula_ozone
(ozone) new theme: Dracula
2021-04-15 02:00:07 +02:00
digitalisland-nino 6f29c1ff94 Created new Ozone Dracula color theme.
Copied RGUI Dracula theme localized strings to new Ozone Dracula theme.

Copied RGUI Dracula theme localized strings to new Ozone Dracula theme.

Added Ozone Dracula color theme to UI.

Added Ozone Dracula color theme entry.
2021-04-14 22:18:18 +02:00
Autechre 58080d6157 Merge pull request #12267 from Jamiras/cheevos_patch_addr_no_ach
allow rcheevos_patch_address to be called on game without achievements
2021-04-14 17:43:18 +02:00
digitalisland-nino 45bf867d38 Copied RGUI Dracula theme localized strings to new Ozone Dracula theme. 2021-04-14 16:49:59 +02:00
Autechre eb578557c0 Update CHANGES.md 2021-04-14 16:32:08 +02:00
Jamiras 299a471af2 allow rcheevos_patch_address to be called on game without achievements 2021-04-14 08:20:20 -06:00
twinaphex 4ec8b82388 Cleanups 2021-04-14 03:46:50 +02:00
twinaphex 5ae5463f52 (menu_setting.c) Cleanups 2021-04-14 02:26:20 +02:00
twinaphex 9a994eb777 Split up general_write_handler/general_read_handler some more 2021-04-14 01:55:38 +02:00
twinaphex bdfbc86ecb Simplifications in general_write_handler 2021-04-14 01:22:49 +02:00
Autechre b5d983cddf Merge pull request #12264 from jdgleaver/screensaver-animation
(XMB/GLUI/Ozone) Add optional menu screensaver animations
2021-04-13 17:48:53 +02:00
twinaphex 65c01b35ec Go back to Discord RPC I/O Thread codepath for now - the non-I/O
thread codepath seems to be unreliable for now
2021-04-13 16:44:46 +02:00
jdgleaver a6cffc0e29 (XMB/GLUI/Ozone) Add optional menu screensaver animations 2021-04-13 15:36:57 +01:00
alphanu1 5658ea7047 Multi monitor fix. (#12260)
This fix allows for the use of multi monitor when using CRTSwitchres. It fixes a bug that causes a crash.
Delete function will no longer try to delete resolutions from outputs that have not had resolutions added.
2021-04-12 14:55:33 +02:00
twinaphex 7f3b9e8a89 Attempt to fix max problems on all platforms 2021-04-12 06:51:01 +02:00
twinaphex 7fe2ad81a0 HAVE_CLIP_WINDOW - don't define for this anything below MSVC 2005 2021-04-12 05:38:43 +02:00
twinaphex dcc266df12 (MSVC) Buildfix 2021-04-12 05:25:30 +02:00
twinaphex d07043fe26 Reduce size of local char variables 2021-04-11 19:28:59 +02:00
twinaphex 2f0f724813 Use more path_basename_nocompression where we don't have to deal with
archive files
2021-04-11 18:46:50 +02:00
twinaphex fc5b557a10 use fill_pathname_join_concat if we want to set a filename path
with extension instead of doing fill_pathname_join and then
fill_pathname_noext
2021-04-11 18:37:42 +02:00
twinaphex 116bf8058a Don't need this variable in this loop 2021-04-11 18:19:51 +02:00
twinaphex 050f44382b input_remapping_save_file - simplifications 2021-04-11 18:16:18 +02:00
twinaphex 1392eebfa0 Use path_basename_nocompression some more 2021-04-11 17:48:44 +02:00
twinaphex 544a17926b Use path_basename_nocompression where we are sure we are not
dealing with a filename with a compressed archive hash
2021-04-11 17:44:41 +02:00
twinaphex 637cff628f * Simplify RARCH_CTL_IS_CORE_LOADED
* Create specialized function path_basename_nocompression
2021-04-11 17:27:31 +02:00
twinaphex 3841fecc59 Cleanups 2021-04-11 17:01:13 +02:00
twinaphex f1cf5ceb82 (input drivers) Cut down on code duplication 2021-04-11 16:31:46 +02:00
twinaphex 40c39de5e3 Move old_libretro_device/old_analog_dpad_mode to global struct 2021-04-11 16:02:47 +02:00
twinaphex 0087be2a53 Cleanup input_remapping_load_file/input_remapping_save_file - none
of these huge char arrays were needed, wrong size being passed
to snprintf, fill_pathname_join, k loop variable unneeded, etc.
2021-04-11 14:36:51 +02:00
twinaphex d9cacc0b8c Other cleanups - wrong size being passed to snprintf for s3, etc. 2021-04-11 14:18:14 +02:00
twinaphex 370751551f Some further optimizations - key_strings doesn't need to be inside
the loop
2021-04-11 14:11:12 +02:00
twinaphex ac8e1b88e4 input_remapping_load_file/input_remapping_save_file - char arrays
were way too big
2021-04-11 14:03:03 +02:00
twinaphex aa0a9f18d5 Fix crash that could happen after loading a remap file manually -
config file was being freed at the end of input_remapping_load_file
when the menu_cbs_ok.c function was still using it afterwards - move
the config_file_free outside of the function and free manually
afterwards when we're done
2021-04-11 13:48:25 +02:00
twinaphex 05a2623875 (udev input) Cut down on code duplication 2021-04-11 06:37:49 +02:00
twinaphex 1f506615d3 (x11_input.c) Cut down on code duplication 2021-04-11 06:29:36 +02:00
twinaphex bc08e325ce Travis buildfix 2021-04-11 02:22:35 +02:00
twinaphex a8f410ed40 slang_preprocess_parse_parameters - get rid of one local variable 2021-04-11 01:49:41 +02:00
twinaphex f29a4b51cc Put this behind VULKAN_DEBUG ifdef 2021-04-11 00:15:06 +02:00
twinaphex 924b5830ba (shader_gl_core) Remove std::string usage and std::to_string usage 2021-04-11 00:09:40 +02:00
twinaphex ab877c429f (Qt) Use string append() where possible 2021-04-10 23:57:31 +02:00
Autechre 97e5e6beee Merge pull request #12256 from Jamiras/cheevos_local_addr_warning
(cheevos) attempt to silence return-local-addr warning
2021-04-10 23:43:47 +02:00
Jamiras 5530b7022f attempt to silence return-local-addr warning 2021-04-10 14:51:41 -06:00
twinaphex 0aa266a6ca build_stage_source - use std::string reserve and append, significantly
faster
2021-04-10 22:11:26 +02:00
Autechre 0b52823f2c Merge pull request #12255 from libretro/destl
Destl
2021-04-10 22:10:53 +02:00
twinaphex 1273536752 Reduce get_semantic_name down to one version 2021-04-10 21:46:04 +02:00
twinaphex 59449600ad Cleanup retroarch_menu_running_finished 2021-04-10 21:04:00 +02:00
twinaphex c392a475ee Cleanups 2021-04-10 20:51:19 +02:00
twinaphex d024ff553f Cleanups 2021-04-10 20:47:04 +02:00
twinaphex b5d49b9e79 Avoid std::string allocations when possible (pt. 1) 2021-04-10 20:19:30 +02:00
twinaphex f0fa3c5861 (slang C++ files) take out using namespace std, explicitly refer to
std namespace
2021-04-10 19:42:59 +02:00
twinaphex 966dd62551 Fix warnings local variable hides parameter of the same name 2021-04-10 19:28:30 +02:00
twinaphex ca5ce839ce Small cleanups to button input handling code - several parameters
were no longer used
2021-04-10 19:06:56 +02:00
twinaphex 760fc6b3f7 Simplify button_is_pressed 2021-04-10 18:44:10 +02:00
twinaphex 372f939cc9 Simplify input_keys_pressed 2021-04-10 18:25:50 +02:00
twinaphex 5df321fcaa Cleanups 2021-04-10 18:19:20 +02:00
Autechre 10c9d485c4 Merge pull request #12254 from repojohnray/valgrind
Fix issue detected by valgrind
2021-04-10 17:52:45 +02:00
repojohnray 8f3e02e49c Fix issue detected by valgrind
==27741== Conditional jump or move depends on uninitialised value(s)
==27741==    at 0x6080F5: strlcpy_retro__ (compat_strl.c:38)
==27741==    by 0x60818A: strlcat_retro__ (compat_strl.c:60)
==27741==    by 0x49EDD7: fill_pathname_join_special_ext (file_path.c:843)
==27741==    by 0x4C78C8: config_load_remap (configuration.c:3765)
==27741==    by 0x4386FF: command_event_init_core (retroarch.c:12601)
==27741==    by 0x43B15E: command_event (retroarch.c:14000)
==27741==    by 0x468863: retroarch_main_init (retroarch.c:35231)
==27741==    by 0x487AED: content_load (task_content.c:607)
==27741==    by 0x48A3D3: task_load_content_internal (task_content.c:2068)
==27741==    by 0x48A6AD: task_push_load_content_from_cli (task_content.c:2162)
==27741==    by 0x43D66E: rarch_main (retroarch.c:15300)
==27741==    by 0x43D6ED: main (retroarch.c:15398)
==27741==  Uninitialised value was created by a stack allocation
==27741==    at 0x4C7730: config_load_remap (configuration.c:3721)
2021-04-10 17:30:56 +02:00
twinaphex 8b197e49bb accessibility_speak_priority - no longer dependent on settings pointer 2021-04-10 14:59:34 +02:00
twinaphex 200983f938 is_narrator_running -don't pass entire settings pointer 2021-04-10 14:24:41 +02:00
twinaphex dd7fe2e7e0 Cleanups 2021-04-10 14:19:52 +02:00
twinaphex 1e94070dca Simplify driver_adjust_system_rates 2021-04-10 13:39:47 +02:00
twinaphex 40ab6f839a Some cleanups to driver_adjust_system_rates 2021-04-10 13:32:27 +02:00
twinaphex 43cb646870 Turn video_driver_monitor_adjust_system_rates into pure function 2021-04-10 13:22:12 +02:00
twinaphex d1d9f96ab3 Turn audio_driver_monitor_adjust_system_rates into pure function 2021-04-10 13:11:01 +02:00
twinaphex d910f520d9 Don't pass entire settings pointer if we just need a few settings variables
to read
2021-04-10 13:03:53 +02:00
twinaphex 5ca666acee Cleanups, don't try to pass settings pointer to functions unless we have to 2021-04-10 03:01:25 +02:00
twinaphex 338c2eb2f0 Settings cleanups 2021-04-10 01:51:28 +02:00
twinaphex deccc4d8c6 Some refactors 2021-04-10 00:54:40 +02:00
twinaphex 204eaf0e76 Don't grab settings pointer inside video_driver_frame 2021-04-08 20:01:59 +02:00
twinaphex 421dbb19c2 Don't pass settings pointer if we just need a couple of variables
that we won't mutate
2021-04-08 19:45:30 +02:00
twinaphex 808f326209 Cleanups 2021-04-08 19:24:19 +02:00
twinaphex 9c5f365b2b Cleanups 2021-04-08 18:37:09 +02:00
twinaphex f7a5833cb0 Turn bunch of functions static 2021-04-08 18:33:46 +02:00
twinaphex 0d549fd42b Merge netplay_init.c into netplay_io.c 2021-04-08 18:16:24 +02:00
twinaphex 2a2f77f0dc Combine some netplay files into one 2021-04-08 18:09:02 +02:00
twinaphex 42bd709f67 Old MSVC buildfix 2021-04-08 17:31:23 +02:00
twinaphex 2c7226de20 Less pointer grabbing 2021-04-08 17:08:46 +02:00
twinaphex d6c243143d Simplifications to dir_init_shader_internal 2021-04-08 16:49:23 +02:00
Autechre 9ab6b9b308 Merge pull request #12247 from BarryJRowe/master
Accessibility speak fix.
2021-04-08 11:19:05 +02:00
Barry Rowe d80833d892 Accessibility speak fix. 2021-04-07 20:39:25 -07:00
twinaphex b7bc1fc51d Buildfixes 2021-04-08 03:27:58 +02:00
twinaphex 9f6a5e35de Get rid of more duplicate pointer grabbing 2021-04-08 02:02:30 +02:00
twinaphex f8ec815467 Cleanups 2021-04-08 01:54:44 +02:00
twinaphex fb1258b817 Set anim.update_timecb to NULL immediately after menu driver's 'free'
function has been called
2021-04-08 01:37:47 +02:00
twinaphex 5334ddd199 Don't call anim_get_ptr inside gfx_thumbnail.c 2021-04-08 01:30:42 +02:00
twinaphex e5e8e9b5d8 Expand widget init function 2021-04-08 00:51:10 +02:00
twinaphex 2e6393f082 Get rid of pointer grabbing for p_disp 2021-04-08 00:38:24 +02:00
twinaphex 95527fb566 Prevent some unnecessary variables being set 2021-04-08 00:22:29 +02:00
Autechre 03849b3e87 Update CHANGES.md 2021-04-07 13:54:20 +02:00
Autechre 3a4c19f82d Merge pull request #12246 from jdgleaver/odbeta-50hz
OpenDingux Beta: Add 50Hz support
2021-04-07 13:53:39 +02:00
jdgleaver c23e32a047 OpenDingux Beta: Add 50Hz support 2021-04-07 10:06:11 +01:00
Autechre 5e432a6586 Update CHANGES.md 2021-04-07 00:53:36 +02:00
twinaphex ea9f3f13ca (Apple OSX) Swallow 'escape' key being pressed - would previously make the game
go from fullscreen to windowed
2021-04-07 00:48:21 +02:00
twinaphex 412a1885b2 Cleanups 2021-04-07 00:42:38 +02:00
twinaphex 886a692f1a video_driver_init_internal - don't call small one-line functions - set
directly
2021-04-07 00:36:00 +02:00
twinaphex d5ebf9039c Cleanups 2021-04-06 23:05:40 +02:00
twinaphex 789cf29d28 Pass more pointers 2021-04-06 22:35:47 +02:00
Autechre 7cb5de7df4 Update CHANGES.md 2021-04-06 21:53:53 +02:00
Autechre c68c71f7b2 Update CHANGES.md 2021-04-06 21:50:31 +02:00
Autechre 09f1404c45 Update CHANGES.md 2021-04-06 21:50:17 +02:00
twinaphex f8a88fcb94 Cleanups 2021-04-06 20:17:06 +02:00
twinaphex 29a358ee3a Pass settings pointer around to more functions 2021-04-06 20:07:06 +02:00
twinaphex 29513919ca Rewrite retroarch_load_shader_preset_internal - no longer needs
p_rarch
2021-04-06 19:41:46 +02:00
twinaphex 45beb1bcdd Cleanups - pass pointers around instead of grabbing
p_rarch->configuration_settings everywhere; add some verbosity_enabled
checks
2021-04-06 19:31:04 +02:00
Autechre 166333a2cd Update CHANGES.md 2021-04-06 18:35:38 +02:00
twinaphex ebc567d03c (OSX Metal) Enable HAVE_ACCESSIBILITY and HAVE_TRANSLATE for TTS translation services 2021-04-06 18:33:26 +02:00
twinaphex 529c0f24da Silence some unused variable warnings 2021-04-06 18:29:59 +02:00
twinaphex 4855f371f1 Refactor accessibilty speak priority code - create LUT for
character/string pairs
2021-04-06 18:21:22 +02:00
twinaphex 76f000e4c8 Don't pass p_rarch around to other functions everywhere 2021-04-06 17:49:45 +02:00
twinaphex 2aea7a375d Input - turbocode - button ID is always below the threshold of
RARCH_FIRST_META_KEY, so put it inside the conditional
2021-04-06 15:59:44 +02:00
twinaphex 5cf2a7abd1 input_state_device - don't keep grabbing these pointers over and over 2021-04-06 14:42:30 +02:00
twinaphex d11c7cbbb1 Revert "Simplify input_state_device:"
This reverts commit 0b9bc85ddd.
2021-04-06 14:25:58 +02:00
Jonathan 5c6cd1b48a Add scaling to pointer input (#12213)
So far, if display is scaled, overlays gets correctly drawn but touch
input is not correctly scaled, resulting in an unusable overlay.

This happens for touches in menu too.

This commit aims to introduce this scaling factor adding it to the
config file, eg:

input_touch_scale = "2"
2021-04-06 13:15:43 +02:00
twinaphex cbec423413 Revert "Add git_version switch - to disable Git version, do"
This reverts commit c9b7122a08.
2021-04-06 11:22:21 +02:00
twinaphex 9910dfbee2 Replace strcpy_literal usage of trivial string setting 2021-04-06 11:21:28 +02:00
twinaphex e2b084b715 Cleanups 2021-04-05 23:54:52 +02:00
twinaphex 5f9197bcc2 Get rid of more manual pointer grabbing 2021-04-05 23:37:42 +02:00
twinaphex 0b9bc85ddd Simplify input_state_device:
* run it within a loop internally for button_mask enabled
* only one function call invocation in codebase
2021-04-05 22:54:13 +02:00
twinaphex 66ad300515 input_state_device - don't have remap_binds_enable ifdefs here 2021-04-05 22:32:06 +02:00
twinaphex 4ce66f0764 Cleanup command_event_init_controllers 2021-04-05 22:26:41 +02:00
twinaphex 0fc6116082 Some optimizations to menu_cbs_get_value callbacks 2021-04-05 21:17:54 +02:00
twinaphex 48af4fc704 Simplify find_driver functions 2021-04-05 21:06:17 +02:00
twinaphex 8c08b531d6 Simplify hw_render_context_name 2021-04-05 20:13:24 +02:00
twinaphex 966e0640af Style nits 2021-04-05 20:02:19 +02:00
twinaphex 0e26077a64 Add license headers 2021-04-05 19:58:18 +02:00
David G. Fandtwinaphex b830b33cf1 Rewrite commands and add new command type (#12233)
* (OSX non-Metal build) Set disable execute page protection

* Rewrite commands and add new command type

This moves commands to a separate file and creates a consistent
interface for them. It is now possible to use multiple command
interfaces simultaneously (stdin, network and UDS).
Implemented a new interface for Lakka, UDS based (so Linux only). This
allow other Lakka servies to send certain commands to Retroarch in a
secure and reliable way.

Co-authored-by: twinaphex <[email protected]>
2021-04-05 19:55:59 +02:00
twinaphex a989cfb987 Fix compilation error for older MSVC versions - cannot handle two ';'
one after another
2021-04-05 15:57:05 +02:00
twinaphex 5a0c0a26e3 Get rid of more disp_get_ptr calls 2021-04-05 15:22:45 +02:00
twinaphex cd016824f8 Get rid of disp_get_ptr pointer grabbing in gfx/widgets 2021-04-05 15:13:28 +02:00
twinaphex af00dca08b Get rid of some pointer grabbing for disp_get_ptr by making it
a part of video_frame_info
2021-04-05 14:55:28 +02:00
Autechre 115b08e0e1 Merge pull request #12232 from MrHuu/ctr_overlay
(3DS) Add HAVE_OVERLAY
2021-04-05 11:48:14 +02:00
Autechre daa6152868 Merge pull request #12235 from jdgleaver/odbeta-scaling-fix2
OpenDingux Beta: Fix IPU scaling when running GB/GBC/GG/NGP-resolution content
2021-04-05 11:41:18 +02:00
jdgleaver a81280939e OpenDingux Beta: Fix IPU scaling when running GB/GBC/GG/NGP-resolution content 2021-04-04 22:50:25 +01:00
MrHuu 8df97a0c75 (3DS) Add HAVE_OVERLAY 2021-04-04 22:50:59 +02:00
twinaphex 2fbcc99b24 RARCH_LOG_BUFFER - doesn't need early return 2021-04-04 20:05:00 +02:00
Autechre 77f48c8c8e Merge pull request #12229 from sonninnos/menu-nav-block
Block accidental diagonals in menu navigation
2021-04-04 15:16:16 +02:00
sonninnos aaf7e1fb0d Block accidental diagonals in menu navigation 2021-04-04 15:44:19 +03:00
twinaphex 9577f1a46f (OSX non-Metal build) Set disable execute page protection 2021-04-03 19:27:06 +02:00
Autechre 63e5a8b1b5 Merge pull request #12227 from ToddLa/mfi-player-index
prevent crash on controller connect.
2021-04-03 19:20:20 +02:00
Todd Laney be8dd0dba1 prevent crash on controller connect.
disable system button gestures on iOS 14.
remove deprecation warnings.
2021-04-03 09:28:49 -07:00
Autechre 9f17cb7a86 Update CHANGES.md 2021-04-03 16:27:23 +02:00
Autechre 70acb573d5 Merge pull request #12226 from repojohnray/mousex11gles
Fix xegl_ctx.c mouse activation
2021-04-03 16:23:59 +02:00
repojohnray 45047732a7 Fix xegl_ctx.c mouse activation
The mouse is not working when using opengles with x11. This fix adds the required notifications.
2021-04-03 15:56:06 +02:00
Autechre f7d0908ff1 Merge pull request #12219 from libretro/vita-vmalign 2021-04-03 01:49:21 +02:00
Francisco José García García 9f90833d2b [VITA] Align VM block size to 1MB 2021-04-02 19:50:09 +02:00
Autechre 93174dcd19 Merge pull request #12217 from jdgleaver/menu-screensaver 2021-04-02 15:26:30 +02:00
jdgleaver 72f08bb1b4 (RGUI) Fix LGTM warning - 'Multiplication result converted to larger type' 2021-04-02 10:16:47 +01:00
jdgleaver 371d0b7395 Add optional menu screensaver 2021-04-01 17:26:43 +01:00
Autechre 21b2ec6bd5 Merge pull request #12212 from DisasterMo/logging
Removed check for verbosity level in RARCH_LOG_V
2021-03-31 21:08:51 +02:00
Autechre 311c5c133c Merge pull request #12210 from jdgleaver/dingux-beta-gba-scaling
OpenDingux Beta: Fix IPU scaling when running GBA-resolution content
2021-03-31 20:06:46 +02:00
Autechre 551a671cc6 Merge pull request #12211 from kamicane/vrefresh
[DRM] set the correct video mode
2021-03-31 20:06:31 +02:00
Michael Burgardt f54098618e RARCH_LOG_V checking for verbosity level is not necessary and can cause
issues; removed said check.
2021-03-31 18:12:42 +02:00
Valerio Proietti fc69e73dcf [DRM] set the correct video mode
mode->vrefresh is a display-only value and should not be used for calculations
the drm context is now able to differentiate between, for example, [email protected] and [email protected] when setting the video mode
2021-03-31 13:13:27 +02:00
jdgleaver 41855bb6d4 OpenDingux Beta: Fix IPU scaling when running GBA-resolution content 2021-03-31 11:17:56 +01:00
Autechre e3ee0ac22b Merge pull request #12206 from jdgleaver/max-user-reinit
Ensure that 'retro_set_controller_port_device' is called when updating 'Max Users'
2021-03-30 08:36:07 +02:00
Autechre e65a891274 Merge pull request #12207 from jdgleaver/glui-turbo-icon
(GLUI) Add icon to 'Turbo Fire' menu entry
2021-03-30 08:35:45 +02:00
twinaphex 01944dd80e Put this big char array on heap for safety reasons 2021-03-30 01:19:50 +02:00
twinaphex ed6dd6d6d1 Fix get_thumbnail_paths 2021-03-29 17:42:32 +02:00
jdgleaver 6d13ace83a (GLUI) Add icon to 'Turbo Fire' menu entry 2021-03-29 15:50:32 +01:00
jdgleaver 32bdb49496 Ensure that 'retro_set_controller_port_device' is called when updating 'Max Users' 2021-03-29 15:32:29 +01:00
twinaphex cc8160d044 task_pl_thumbnail_download.c - put char string of 8192 length
on heap for all platforms
2021-03-29 09:28:26 +02:00
Autechre ba7900a3fb Merge pull request #12173 from crystalct/master
Some PSL1GHT fixes
2021-03-29 09:26:24 +02:00
CrystalCT b9ff6cb1d9 Some PSL1GHT fixes 2021-03-29 09:01:03 +02:00
Autechre cf6ca2a47f Update CHANGES.md 2021-03-28 22:43:18 +02:00
Autechre b47a403504 Update CHANGES.md 2021-03-28 21:59:36 +02:00
Autechre 84a742995b Update CHANGES.md 2021-03-28 20:57:17 +02:00
Autechre 7adcd6ba50 Update CHANGES.md 2021-03-28 09:21:39 +02:00
Twinaphex 6211475a09 (iOS6) Add assets.zip/modules dir 2021-03-28 08:07:50 +02:00
Autechre 502ecb2d64 Merge pull request #12202 from jdgleaver/dingux-invalid-resolution-fix
OpenDingux: Improve handling of unsupported display resolutions + buffer overflow fix
2021-03-27 21:48:29 +01:00
jdgleaver fe6e02e9bd OpenDingux: Improve handling of unsupported display resolutions + buffer overflow fix 2021-03-27 14:58:02 +00:00
twinaphex 788f716a30 (shader_gl_core) Cut down on some std::string usage 2021-03-27 03:51:00 +01:00
twinaphex 159c03cb34 Bump up version (but don't tag yet) 2021-03-27 02:22:39 +01:00
twinaphex c748b3d065 (iOS6/iOS9) Take out HAVE_UPDATE_CORES 2021-03-26 23:56:17 +01:00
Autechre 89b2c936d0 Merge pull request #12199 from sonninnos/menu-scroll-relocate
Relocate 'Menu Scroll' settings
2021-03-26 22:39:44 +01:00
twinaphex 9758d56c26 Buildfix 2021-03-26 22:13:25 +01:00
twinaphex f3b008f093 * Take out HAVE_UPDATE_CORES for iOS9
* If HAVE_UPDATE_CORES is defined, then set Core directory to <home dir>/cores,
otherwise set it to <bundle>/modules
2021-03-26 21:58:49 +01:00
sonninnos 1c63dec47e Relocate 'Menu Scroll' settings 2021-03-26 21:01:18 +02:00
Autechre f9369fbd6a Merge pull request #12198 from yoshisuga/ios9_fix_xcodeproj
[iOS9[ add assets.zip and modules references
2021-03-26 18:19:26 +01:00
Yoshi Sugawara 6a8528dbdc add assets.zip and modules references 2021-03-26 07:16:13 -10:00
Autechre 89044cd65e Merge pull request #12197 from jdgleaver/dingux-beta-battery
OpenDingux Beta: Fix reporting of battery level
2021-03-26 17:35:50 +01:00
jdgleaver d8f08f8177 OpenDingux Beta: Fix reporting of battery level 2021-03-26 16:15:44 +00:00
Autechre 23d22a1471 Merge pull request #12196 from jdgleaver/label-sanitization-fix
Fix playlist label sanitisation
2021-03-26 13:37:41 +01:00
jdgleaver df28f998c2 Fix playlist label sanitisation 2021-03-26 12:22:10 +00:00
Autechre bbcf1c8881 Merge pull request #12194 from sonninnos/scroll-delay
Customizable menu scroll hold delay
2021-03-26 03:49:48 +01:00
Autechre 26985d97de Merge pull request #12195 from sonninnos/custompos-dropdown
Dropdown menus for Custom Aspect Ratio positions
2021-03-26 03:49:18 +01:00
sonninnos 23d558564f Customizable menu scroll hold delay 2021-03-26 04:23:52 +02:00
sonninnos 7754a20fc5 Dropdown menus for Custom Aspect Ratio positions 2021-03-26 04:13:22 +02:00
twinaphex c26741de70 Rename local variables 2021-03-25 22:48:00 +01:00
Autechre 4907a7860e Merge pull request #12192 from sonninnos/input-menu
Input menu reorganizing
2021-03-25 22:47:20 +01:00
sonninnos 9062b61511 Separate 'Turbo Fire' menu 2021-03-25 22:28:18 +02:00
twinaphex cd9d6c0511 gfx_display - Get rid of lots of pointer grabbing 2021-03-25 20:12:34 +01:00
twinaphex 8064af8f15 Get rid of more pointer grabbing 2021-03-25 19:22:12 +01:00
Autechre d5e3103cf9 Merge pull request #12190 from jdgleaver/dingux-beta
Add OpenDingux Beta support
2021-03-25 18:36:04 +01:00
jdgleaver 0a08437e0a Add OpenDingux Beta support 2021-03-25 16:19:42 +00:00
twinaphex 0674de54ee (gfx_widgets.c) Get rid of more pointer grabbing to
config_get_ptr/dispwidgets_get_ptr/etc
2021-03-25 15:05:09 +01:00
Autechre 93edb2f2fb Merge pull request #12189 from farmerbb/master
[Android] Add a DocumentsProvider for easier access to the app's internal storage
2021-03-25 12:42:01 +01:00
Braden Farmer 27e19318ce [Android] Add a DocumentsProvider for easier access to the app's internal storage 2021-03-24 23:06:38 -06:00
twinaphex 998673b8c3 (gfx_widgets) Cleanups 2021-03-25 04:59:07 +01:00
twinaphex fada1caf68 Move two widgets functions over to proper source file 2021-03-25 04:55:27 +01:00
twinaphex 7505790f32 Cut down on MIDI driver logspam when MIDI just points to null driver 2021-03-25 03:33:42 +01:00
twinaphex 8919606f3a (iOS9) Buildfix 2021-03-25 01:35:47 +01:00
twinaphex be3960e2be (gfx widgets) Add widgets_userdata to video_frame_info 2021-03-24 19:16:46 +01:00
twinaphex 78f7deffba Get rid of early return in video_shader_write_root_preset 2021-03-24 18:44:55 +01:00
twinaphex d911dd6efc (video_shader_parse.c) Tons of functions here should have been
made static, tons of log spam put behind DEBUG ifdefs
2021-03-24 18:31:20 +01:00
twinaphex 5aaf4150e2 (file_path.c) Use strlcpy for these instead of snprintf 2021-03-24 17:26:34 +01:00
twinaphex ed0c9ef1dc Buildfix 2021-03-24 02:39:57 +01:00
twinaphex d9fa5585a0 Silence static code analysis warings pointed out by cppcheck 2021-03-24 02:23:58 +01:00
twinaphex 71b4a4558c (DISABLE_MENU) Add another conditional 2021-03-24 02:10:35 +01:00
twinaphex 118ff58e6b Add more conditionals for --disable-menu 2021-03-24 01:44:30 +01:00
twinaphex 95f5df358a Fix --disable-menu 2021-03-24 01:24:49 +01:00
twinaphex 8f79e14d0a Silence LGTM static code analysis warnings 2021-03-24 00:25:47 +01:00
Autechre 1a263586e3 Merge pull request #12188 from MrHuu/ctr_gfx_widgets
(3DS) Add HAVE_GFX_WIDGETS
2021-03-23 23:41:37 +01:00
MrHuu b9849f78f7 (3DS) Add HAVE_GFX_WIDGETS 2021-03-23 22:03:44 +01:00
twinaphex 26824b1f27 (D3D) Comment out Debug functions 2021-03-23 21:24:17 +01:00
Autechre 605a96a096 Merge pull request #12187 from davidgfnet/OGA-vertical
Upstream OGA patch for vertical screen
2021-03-23 20:55:23 +01:00
David Guillen Fandos 1cad93207b Upstream OGA patch for vertical screen
This keeps the tradition DRM driver along with the OGA one. The probe
function skips the driver if the screen is non rotated to fall back to
the regular DRM driver. This is being upstreamed from the Lakka repo.
2021-03-23 20:27:24 +01:00
twinaphex 0d06927105 Use ARRAY_SIZE where applicable 2021-03-23 17:14:41 +01:00
twinaphex 943c3f2f21 One DISABLE_MENU buildfix 2021-03-23 13:35:41 +01:00
twinaphex fb737cb00f (Apple) On demand thumbnails enabled by default 2021-03-23 03:41:29 +01:00
twinaphex b85a33c0ab (OSX) Set workaround when loading config file - if network core
URL points to arm64 and we are on x86_64 build or vice versa, we
switch it back
2021-03-23 03:10:38 +01:00
twinaphex 4cebc52126 Rollback permissions 2021-03-23 02:47:40 +01:00
twinaphex 112bd95b52 (macOS) Add additional entitlements 2021-03-23 02:25:33 +01:00
twinaphex fdc184c60c input_config_parse_key - unroll 2021-03-23 01:10:14 +01:00
twinaphex 49dc7e6c66 * Fix some DISABLE_MENU issues
* Optimizations to read_keybinds_conf / set_autoconfig_binds -
first fill_pathname_join_delim call always produced the same output and
this was called four times in a row in one loop,  hose out of the
caller functions and move it into the loop and call it once
2021-03-23 01:05:01 +01:00
twinaphex b5d4c5b041 Silence -Wsizeof-pointer-memaccess warnings pointed out here -
https://travis-ci.org/github/libretro/RetroArch/jobs/764003625
2021-03-22 23:43:11 +01:00
twinaphex 76ddfa022e Get rid of RARCH_LOG in wayland_common - gets rid of warning/error 2021-03-22 23:35:14 +01:00
twinaphex 1fae7964d6 Add allow-unsigned-executable-memory for both RetroArch and Metal 2021-03-22 23:05:22 +01:00
twinaphex 1b211ea836 Enable allow-jit 2021-03-22 23:02:08 +01:00
twinaphex a8599fe59b (Travis) Try to take out two Travis jobs that always fail and are
redundant now
2021-03-22 22:16:19 +01:00
twinaphex 437a49780c Add another HAVE_MENU ifdef 2021-03-22 22:12:58 +01:00
twinaphex fb9d8bad74 Fix DISABLE_MENU 2021-03-22 22:03:16 +01:00
twinaphex 4ff2d85a18 Unsafe to leave input_driver_mapper on heap; plus no real need to
have it on heap when it's already on heap courtesy of rarch_state
2021-03-22 21:43:31 +01:00
twinaphex 80788f9df6 Get rid of some ternary operators 2021-03-22 20:53:56 +01:00
twinaphex 48f9a5fbc0 (Qt) Silence sign comparison warnings 2021-03-22 20:20:33 +01:00
twinaphex 55ba377153 (task_database.c) Don't call path_contains_compressed_file multiple
times
2021-03-22 20:14:58 +01:00
twinaphex f22b077887 (task_database.c) Optimizations:
- strlen was being called on path for each loop iteration, when
path is not subject to change - do it once outside
- String copying was being performed even when the string would
equal a string not subject to change
2021-03-22 19:24:14 +01:00
twinaphex 32a6bd021c Prevent 'may be used uninitialized' warning 2021-03-22 15:46:34 +01:00
twinaphex 611efea2bf More CXX_BUILD fixes 2021-03-22 15:20:51 +01:00
twinaphex 81e768435b CXX_BUILD buildfix 2021-03-22 15:01:57 +01:00
twinaphex 15b9bd47b9 (SDL2) Fix jump to label crosses initialization of const char* video_driver 2021-03-22 14:38:10 +01:00
twinaphex aeb0781398 (iOS9) Change scheme to 'RetroArchiOS9' (no space) 2021-03-22 13:03:46 +01:00
twinaphex b3a4e598e2 (iOS) Implement frontend_darwin_get_arch - will report correct architecture
now under System Information
2021-03-22 12:16:43 +01:00
Autechre 7e7cc366d9 Merge pull request #12183 from libretro/ios9-gitlab
Add build-retroarch-ios9
2021-03-22 10:03:59 +01:00
twinaphex 00f60ec577 Remove unused variable 2021-03-22 10:01:09 +01:00
twinaphex f4244f3281 Add build-retroarch-ios9 2021-03-22 09:55:07 +01:00
twinaphex 0744ac21c9 Revert "(Gitlab) Add ios9"
This reverts commit 3e9efa6ba4.
2021-03-22 02:35:43 +01:00
twinaphex 3e9efa6ba4 (Gitlab) Add ios9 2021-03-22 02:32:51 +01:00
twinaphex b5671fec20 Remove MqcCatalyst for now - Xcode on buildbot doesn't seem to support it yet 2021-03-22 02:20:10 +01:00
twinaphex 2e1baf6d87 (iOS9) Make it ready for code signing
(iOS9/iOS11) Enable Mac Catalyst - should allow these versions to
run on Mac
2021-03-22 02:11:33 +01:00
twinaphex 1f4dd522ab (RGUI) Cut down on gfx_display_get_fb_size 2021-03-22 01:58:43 +01:00
twinaphex 4cf83880a6 (macOS AArch64/iOS ARM64) Fix crash when selecting cursor 2021-03-22 01:17:09 +01:00
twinaphex 882fc9bc2c Simplify config_read_keybinds/save_keybinds 2021-03-22 00:24:00 +01:00
twinaphex a204bcbf81 Simplify input_config_get_prefix 2021-03-21 23:26:06 +01:00
twinaphex b16f526540 (Metal) Cleanups - turn function static 2021-03-21 18:10:55 +01:00
twinaphex 5d2a75d782 (Apple/Metal) Combine various Metal files into one 2021-03-21 18:06:00 +01:00
twinaphex e5ca68a518 Simplify video_driver_get_ptr 2021-03-21 17:33:44 +01:00
twinaphex 26ea20905a (retroarch.c) Get rid of two config_get_ptr calls 2021-03-21 17:18:37 +01:00
twinaphex 8b2eb8ed37 Cut down on config_get_ptr calls in menu_displaylist_ctl 2021-03-21 16:36:36 +01:00
twinaphex d8d034bacb (menu_displaylist_build_list) Pass settings pointer around 2021-03-21 16:16:41 +01:00
twinaphex 7c145fafb2 (menu_displaylist) config_get_ptr only called now from three public functions 2021-03-21 16:04:04 +01:00
twinaphex 78e9a16493 Cut down on disp_get_ptr calls 2021-03-21 15:37:40 +01:00
twinaphex 5547f7b6f8 Further simplify filebrowser_parse - info can never be NULL -
other optimizations
2021-03-21 14:49:51 +01:00
twinaphex 6682dff9a5 (Menu) simplify/cleanup filebrowser_parse 2021-03-21 14:34:36 +01:00
twinaphex e35ed84de9 (Menu) Cut down on config_get_ptr calls 2021-03-21 11:46:27 +01:00
twinaphex c053a871d0 Cut down on anim_get_ptr calls 2021-03-21 11:09:22 +01:00
twinaphex a19c61ec7f (Ozone) Cut down on pointer grabbing - reduce calls to disp_get_ptr
and anim_get_ptr
2021-03-21 11:03:38 +01:00
Autechre 1c0ceb272a Merge pull request #12178 from davidgfnet/br9 2021-03-20 22:25:43 +01:00
David Guillen Fandos e1385c0187 Adjust brightness according to the limit
Seems like some platforms feature non-standard maximums, but the
variable is correclty exported for us to use
2021-03-20 22:19:28 +01:00
twinaphex a83af11754 remove unused variable 2021-03-20 17:47:44 +01:00
twinaphex a0a681b324 (Menu drivers) Less pointer grabbing - cut down on get_ptr calls 2021-03-20 17:45:05 +01:00
twinaphex 94ae0460cc Cut down on calls to gfx_display_get_fb_size 2021-03-20 16:52:53 +01:00
twinaphex f1330f3c98 (video_thread_wrapper) Call video_driver_get_data instead of
video_driver_get_ptr - last parameter passed to video_driver_get_ptr
was hardcoded
2021-03-20 15:15:52 +01:00
twinaphex 76c4f12089 Cleanup some VIDEO_DRIVER_GET_PTR_INTERNAL calls 2021-03-20 15:15:52 +01:00
twinaphex 161e3321a7 Remove menu_input_reset forward declaration 2021-03-20 15:15:52 +01:00
twinaphex 9fd88744ff Get rid of menu_input_reset 2021-03-20 15:15:52 +01:00
twinaphex be00c9fd5f Change DEVELOPMENT_TEAM to libretro 2021-03-20 14:37:11 +01:00
twinaphex 78fcdc1a46 Cleanups - don't go through some small wrapper functions 2021-03-20 13:51:56 +01:00
twinaphex 37a4dfb9db Don't call some one-line wrapper functions 2021-03-20 13:46:57 +01:00
twinaphex b51bb2bc66 Simplify parse_hat function 2021-03-20 13:24:10 +01:00
Autechre 6c9d4d2702 Merge pull request #12177 from sonninnos/winraw-fixes
(WINRAW) Key position fixes
2021-03-20 10:36:32 +01:00
Autechre 5785f8d589 Merge pull request #12176 from sonninnos/bind-order-scan-fix
New input bind order scan/clear fix
2021-03-20 10:35:47 +01:00
sonninnos 39e24fe584 New bind order scan/clear fix 2021-03-20 04:46:54 +02:00
sonninnos 1e95683c06 (WINRAW) Key position fixes 2021-03-20 00:58:11 +02:00
twinaphex 83a1e9170d Simplify retroarch_load_shader_preset 2021-03-19 12:31:13 +01:00
twinaphex 5ac7a524a2 Further refinement to vrr_runloop_enable checks surrounding
audio_driver_monitor_adjust_system_rates
2021-03-19 10:28:11 +01:00
twinaphex 4806a34920 Cleanups in adjust_system_rates functions 2021-03-18 20:38:26 +01:00
Autechre 7befed6569 Merge pull request #12171 from Jamiras/cheevos_dbl_free
(cheevos) prevent double free
2021-03-18 16:01:10 +01:00
Jamiras ed18ed48ac prevent double free 2021-03-18 08:50:45 -06:00
twinaphex 5554e5a842 Small cleanups 2021-03-18 12:51:17 +01:00
Autechre 89fdd16e5e Merge pull request #12168 from sonninnos/key-blocking
Duplicate key event blocking additions
2021-03-18 03:35:30 +01:00
sonninnos 4ff2011e02 Duplicate key event blocking additions 2021-03-17 21:22:46 +02:00
twinaphex d3dc3ee989 (iOS 11 Metal) remove 'update cores' 2021-03-17 10:49:22 +01:00
twinaphex 452870fe82 No idea why this was commented all of a sudden 2021-03-17 10:48:02 +01:00
twinaphex 6cc51fa5f5 task_load_handler - small cleanups 2021-03-17 10:40:47 +01:00
twinaphex 7e2113b405 (task_save.c) Allocate the string on heap instead of putting it on stack 2021-03-17 10:12:04 +01:00
Autechre be7dd98939 Merge pull request #12167 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-17 09:53:57 +01:00
CrystalCT 9ac61f9cc5 Add some PSL1GHT ifdefs 2021-03-17 08:46:02 +01:00
twinaphex e292340ef4 (dispserv_win32.c) Fix unused variable warning 2021-03-16 13:33:24 +01:00
twinaphex ce5dd864f0 Fix C89 build failures 2021-03-16 13:11:14 +01:00
twinaphex 3fc8f8129f Fix build failure 2021-03-16 13:05:45 +01:00
Autechre 70d79eb01c Merge pull request #12156 from sonninnos/bind-reorder
Cosmetic input bind order
2021-03-16 12:43:02 +01:00
Autechre 58b055d197 Merge pull request #12164 from jdgleaver/explore-fix
Prevent segfault when accessing 'Explore' menu
2021-03-16 12:39:18 +01:00
jdgleaver 523e37ec95 Prevent segfault when accessing 'Explore' menu 2021-03-16 11:30:05 +00:00
Autechre ad13be13cd Merge pull request #12162 from jdgleaver/glui-fix
GLUI: Fix main menu 'History' entry
2021-03-16 12:27:46 +01:00
Autechre fddf58d152 Merge pull request #12163 from jdgleaver/ozone-node-init
(Ozone) Ensure all members are initialised when allocating nodes
2021-03-16 12:27:34 +01:00
jdgleaver d678fbd7b3 (Ozone) Ensure all members are initialised when allocating nodes 2021-03-16 10:14:52 +00:00
jdgleaver 235967c606 GLUI: Fix main menu 'History' entry 2021-03-16 10:10:37 +00:00
Autechre e62aabea95 Merge pull request #12157 from Jamiras/task_http_cleanup
have http tasks clean up after themselves
2021-03-16 09:06:58 +01:00
Autechre 75fe9b7d8a Merge pull request #12160 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-16 09:06:51 +01:00
CrystalCT 64ecfe4463 Add some PSL1GHT ifdefs 2021-03-16 08:45:24 +01:00
Jamiras 501fe45a9f have http tasks clean up after themselves 2021-03-15 19:42:25 -06:00
Autechre 6de9bae75a Merge pull request #12155 from MrHuu/master
(3DS) Add BlueMSX assets
2021-03-16 02:09:27 +01:00
sonninnos e89cd8bc0b Cosmetic input bind order 2021-03-16 02:46:41 +02:00
MrHuu f512d9809f (3DS) Add BlueMSX assets 2021-03-15 17:19:42 +01:00
Autechre 1f3fa0a35b Update .gitlab-ci.yml 2021-03-15 15:26:29 +01:00
Autechre 75da4869ac Update .gitlab-ci.yml 2021-03-15 15:21:30 +01:00
Autechre 227226b98c Update .gitlab-ci.yml 2021-03-15 15:17:34 +01:00
Autechre bcf9610b71 Update .gitlab-ci.yml 2021-03-15 15:12:40 +01:00
twinaphex 40fe0796b4 Add 'Menu Driver' setting to 'User Interface' 2021-03-15 12:53:48 +01:00
Autechre fbaec27e8e Merge pull request #12154 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-15 12:47:01 +01:00
CrystalCT f19a67cad6 Add some PSL1GHT ifdefs 2021-03-15 11:37:59 +01:00
twinaphex b8c51ed040 Remove unused variables 2021-03-15 09:32:47 +01:00
Autechre 514edf8b06 Merge pull request #12153 from crystalct/master
Improved vfs implementation on PSL1GHT using lv2 functions
2021-03-15 08:59:32 +01:00
CrystalCT 96a1320977 Improved vfs implementation on PSL1GHT using lv2 functions 2021-03-15 08:38:34 +01:00
twinaphex d9e8d44393 menu_displaylist_parse_settings_enum - cleanups 2021-03-15 07:22:23 +01:00
twinaphex 40ef5f7e65 Prevent calls to menu_driver_navigation_set inside menu drivers -
can just call the accompanied function internally
2021-03-15 06:56:55 +01:00
twinaphex b52577aac1 Cleanups 2021-03-15 06:52:16 +01:00
twinaphex 6687920c1d Get rid of some typedefs 2021-03-15 06:37:21 +01:00
twinaphex 4e883c4568 Refactor menu_displaylist_setting away 2021-03-15 06:11:57 +01:00
twinaphex 9948899c63 Disable tvOS again 2021-03-15 02:53:30 +01:00
twinaphex 4d5753d8ce Re-enable tvOS again 2021-03-15 02:46:29 +01:00
twinaphex b8ebdc85ea Add certificate signing for tvOS 2021-03-15 02:46:11 +01:00
Autechre 6a4536139e Update .gitlab-ci.yml 2021-03-15 02:18:05 +01:00
twinaphex c8104d2542 Go with home_dir_buf codepath for tvOS for now - going to assume this is
intended
2021-03-15 02:06:32 +01:00
twinaphex d7a60b78d5 tvOS target now needs HAVE_OPENGLES3 2021-03-15 01:58:27 +01:00
twinaphex 938c8f3abc Fix some tvOS warnings 2021-03-15 01:52:18 +01:00
Autechre a4836bbb17 Fix analog triggers (#12151)
* Restore RETRO_DEVICE_ANALOG code while making less changes

* * When input_remap_binds_enable is true, input_driver_mapper is always
allocated and initialized - no need to NULL check
* Get rid of input_remote local variable for network gamepad code
2021-03-15 01:32:56 +01:00
Autechre 60d29d3792 Merge pull request #12150 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-15 00:46:57 +01:00
twinaphex da7109265c Add more portable way of getting OS version major/minor without using objc_msgSend_stret
(breaks on macOS/AArch64) by using NSInvocation - credit to OpenJDK
2021-03-15 00:45:38 +01:00
Autechre 6162b21c93 Merge pull request #12148 from yoshisuga/tvos_gitlab
[tvOS] Support tvOS build in gitlab ci
2021-03-15 00:15:23 +01:00
unknown 575e2dcff6 Add some PSL1GHT ifdefs 2021-03-14 21:00:08 +01:00
Yoshi Sugawara f50b1d53f9 [tvOS] Support tvOS build in gitlab ci 2021-03-14 08:00:46 -10:00
Autechre 3ddd2519f9 Merge pull request #12145 from MaddTheSane/patch-1
Update platform_darwin.m
2021-03-14 14:13:26 +01:00
C.W. Betts 886df798a7 Update platform_darwin.m
Add Apple Silicon detection.
Fix a leak with NSTemporaryDirectory() on ARC code.
2021-03-14 04:24:33 -06:00
twinaphex e3b856dcf2 Avoid two consecutive for loops if block_libretro_input is not
enabled
2021-03-14 06:22:07 +01:00
twinaphex e1b19d2133 Cleanups 2021-03-14 06:15:38 +01:00
twinaphex bb5c168726 Revert "Create specialized versions of input_state_mask"
- will require more work to properly optimize

This reverts commit bca73b0a46.
2021-03-14 06:06:28 +01:00
twinaphex bca73b0a46 Create specialized versions of input_state_mask 2021-03-14 05:47:30 +01:00
twinaphex 4fc1774901 Cleanups 2021-03-14 05:29:40 +01:00
twinaphex dbe620db60 Cleanups 2021-03-14 02:11:36 +01:00
Autechre 1633afdf35 Update .gitlab-ci.yml 2021-03-14 00:48:55 +01:00
Autechre 332bca625c PPC Xcode - doesn't support -scheme 2021-03-14 00:43:19 +01:00
Autechre 0627f83c33 Update .gitlab-ci.yml 2021-03-14 00:41:54 +01:00
Autechre 6b48c526cc Update .gitlab-ci.yml 2021-03-14 00:34:36 +01:00
Autechre 032b96c772 Merge pull request #12142 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-13 22:42:31 +01:00
unknown d653e50e00 Add some PSL1GHT ifdefs 2021-03-13 22:20:09 +01:00
Autechre 6115edc9be Merge pull request #12140 from yoshisuga/ios_gitlab
[iOS] Build RetroArch in gitlab
2021-03-13 21:51:43 +01:00
Yoshi Sugawara d219e606c3 add gitlab xcconfig for iOS, exportoptions plist for ipa export 2021-03-13 07:58:23 -10:00
twinaphex 86142c0071 Get rid of osx versions built with make 2021-03-13 01:26:04 +01:00
twinaphex 5211114fd4 ENABLE_HARDENED_RUNTIME - enable for OSX x64 signing 2021-03-13 00:19:56 +01:00
twinaphex 731c2f4ed4 remove CODESIGN_IDENTITY from xcconfig files - hopefully fixes builds 2021-03-12 23:51:19 +01:00
Autechre a40e3dc69b Merge pull request #12137 from libretro/libretro-db-fix-hash
libretro-db: hash.c is now lrc_hash.c
2021-03-12 22:36:58 +01:00
Autechre afe601b002 Merge pull request #12138 from yoshisuga/macos_fix_code_sign_id
[macOS] Fix code sign identity to allow gitlab to properly code sign
2021-03-12 22:36:47 +01:00
Yoshi Sugawara ec8002b8ed add code sign identity 2021-03-12 06:59:37 -10:00
Yoshi Sugawara 975b89ab6c Fix code sign identity to fix code signing 2021-03-12 06:58:03 -10:00
Rob Loach d279246db3 libretro-db: hash.c is now lrc_hash.c
🤷
2021-03-12 11:47:42 -05:00
Autechre a9f7e42131 Merge pull request #12136 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-12 12:38:52 +01:00
CrystalCT 1d48b9c61e Add some PSL1GHT ifdefs 2021-03-12 12:22:58 +01:00
twinaphex 4946d75c3d Further cleanups to do with menu_dialog code 2021-03-12 11:03:57 +01:00
twinaphex 53b4fe7716 This ifdef is no longer needed, remove - also 'push'
was always true so just hardcode it for this function
2021-03-12 10:57:42 +01:00
twinaphex 117d48c898 (Apple) Change some preprocessor conditionals to cover all bases 2021-03-12 10:33:21 +01:00
Autechre de67a13ab9 Merge pull request #12134 from yoshisuga/macos_support_assets_bundle_extraction
[macOS] Support bundle assets extraction for macOS; Fix default paths
2021-03-12 10:27:22 +01:00
Yoshi Sugawara 2e6e29b511 revert unintended change 2021-03-11 23:19:42 -10:00
Yoshi Sugawara e28386e840 Add blank assets.zip 2021-03-11 23:16:29 -10:00
Yoshi Sugawara a142f3b852 Support bundle assets extraction for macOS; Fix to only extract assets once on first install; Change cores, assets, other directories to default to application support directory instead of app bundle 2021-03-11 23:12:52 -10:00
Autechre 922e3b1849 Merge pull request #12133 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-12 08:31:10 +01:00
CrystalCT e67be94b98 Add some PSL1GHT ifdefs 2021-03-12 08:29:17 +01:00
twinaphex 4d3f8c3c80 Cleanup 2021-03-12 01:56:59 +01:00
twinaphex f7f6f3c5d5 Revert "Cleanups - don't call MENU_ENTRIES_CTL_SET_REFRESH in a loop - set it"
This reverts commit ee06ddfbc0.
2021-03-11 22:32:28 +01:00
twinaphex ee06ddfbc0 Cleanups - don't call MENU_ENTRIES_CTL_SET_REFRESH in a loop - set it
once outside
2021-03-11 22:17:38 +01:00
twinaphex 4dc70a6e9c Remove unused menu_ctx_iterate_t 2021-03-11 20:19:37 +01:00
twinaphex 14248f7401 (Menu) Iterate function callback was never used, remove it
- Also turn menu_driver_iterate into static function and
redesign code a bit; non-functional
2021-03-11 20:17:22 +01:00
twinaphex a6c11b5ed3 rgui_render - call menu_entries_get_size later in function
ozone_draw_entries - MENU_ENTRIES_CTL_START_GET was unnecessary to call
2021-03-11 19:48:56 +01:00
twinaphex e72cdd78d6 menu_displaylist.c is never built into Salamander, so these ifdefs
can go
2021-03-11 19:17:06 +01:00
Autechre 9fffbe65ac Merge pull request #12129 from guoyunhe/crowdin
Fetch translations from Crowdin
2021-03-11 18:04:42 +01:00
Autechre 275c02faee Merge pull request #12128 from jdgleaver/ctr-potator
(3DS) Add Potator assets
2021-03-11 17:49:09 +01:00
Guo Yunhe 72f982b16c Fetch translations from Crowdin 2021-03-11 22:15:42 +08:00
jdgleaver 32323ec737 (3DS) Add Potator assets 2021-03-11 13:17:10 +00:00
twinaphex 4d93ac3870 Get rid of menu_setting_ctl 2021-03-11 08:38:53 +01:00
CrystalCT 02c15dd4f5 Add some PSL1GHT ifdefs 2021-03-11 08:15:51 +01:00
twinaphex ba7771fd28 MENU_NAVIGATION_CTL_{INCREMENT/DECREMENT/ASCEND_ALPHABET/DESCEND_ALPHABET'
can all be removed now and inlined
2021-03-11 06:23:29 +01:00
twinaphex 6a68cefe60 Cleanups 2021-03-11 05:25:37 +01:00
twinaphex 3c7419bac7 (Menu) Can now get rid of TODO/FIXME 2021-03-11 05:17:32 +01:00
twinaphex b9d28ea76d Cleanups 2021-03-11 05:14:07 +01:00
twinaphex 656e10c60c Replace /inline file_list_get_last calls in retroarch.c 2021-03-11 05:11:08 +01:00
twinaphex 1afd728057 Cleanups 2021-03-11 04:28:39 +01:00
twinaphex 95d3b7285d MOve functions over to retroarch.c 2021-03-11 04:13:06 +01:00
twinaphex e5045fa2e2 Simplify menu_driver_deferred_push_content_list 2021-03-11 03:49:51 +01:00
twinaphex 839a270a97 Menu refactors:
- Get rid of menu_driver_search_list_clear
- Get rid of contentlist_switch callback - was only ever one
function callback implementation
2021-03-11 03:37:19 +01:00
twinaphex f502cd9e16 Get rid of menu_cbs_down/menu_cbs_up 2021-03-11 03:14:31 +01:00
Autechre 9f3ea51f77 Refactors pt4 (#12126)
* Cleanups:
- menu_driver_set_id - don't pass p_rarch to function
- Ozone: call ozone_list_cache directly instead of going through
wrapper function in retroarch.c that then calls ozone_list_cache
- Some other cleanups, non-functional

* (Menu) Replace calls to menu_driver_list_cache inside retroarch.c
2021-03-11 02:58:35 +01:00
Autechre a2ed065f25 Refactors pt3 (#12124)
* Remove video_pixel_get_alignment - move it to video
drivers that use it

* Rewrite video_driver_pixel_converter_{init/free} - get rid of
p_rarch dependency

* Replace some variables

* (Menu) Get rid of cbs_refresh - was never set to any other
function callback implementation
2021-03-11 02:03:37 +01:00
twinaphex cb5fba6b2a * Fix libnx build
* Put menu_cbs/enum_idx in menu_cbs_init behind DEBUG_LOG
2021-03-10 18:00:51 +01:00
twinaphex 29c509162e Cleanups - menu_entries_get_last_stack - unroll when possible in
retroarch.c
2021-03-10 17:28:31 +01:00
Autechre 6e96b9647a Merge pull request #12123 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-10 17:05:50 +01:00
twinaphex a092fe273c Turn retroarch_apply_shader into static function 2021-03-10 17:05:19 +01:00
twinaphex 4516d6626b * Cleanups; non-functional changes -
- Don't pass p_rarch around to other functions if unnecessary
  - Get rid of superfluous get/set runtime shader preset functions
2021-03-10 16:57:31 +01:00
CrystalCT 43bb8e6aaa Add some PSL1GHT ifdefs 2021-03-10 09:43:19 +01:00
twinaphex d940c10afe (Qt) Combine qt/options/generic.cpp and qt/options/nongeneric.cpp 2021-03-10 09:41:49 +01:00
twinaphex 3b59939dea (Menu) Implement as macro invocation 2021-03-10 09:41:49 +01:00
twinaphex 44c69561b7 Get rid of GENERIC_DEFERRED_PUSH_CLEAR_GENERAL - do
MENU_ENTRIES_CTL_CLEAR inside menu_displaylist_ctl instead
2021-03-10 09:41:49 +01:00
twinaphex a2031608e7 Don't use file_list_get_at_offset - access members directly 2021-03-10 09:41:49 +01:00
twinaphex 6629c20e25 video_driver_set_viewport_config - don't pass p_rarch to it 2021-03-10 05:49:59 +01:00
twinaphex b53b6cbf34 Simplify menu_input_set_pointer_visibility 2021-03-10 05:49:58 +01:00
twinaphex 003fc7ccc8 Get rid of menu_entries_get_at_offset 2021-03-10 05:49:58 +01:00
twinaphex bbe46333e1 Cut down on menu_input_dialog_get_display_kb calls 2021-03-10 05:49:58 +01:00
twinaphex d0bb190ca7 Another update 2021-03-09 22:10:18 +01:00
Autechre 85658ca7ef Merge pull request #12118 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-09 21:57:16 +01:00
twinaphex b520f84851 (Apple) Set code signing for RetroArch_Metal/RetroArch targets 2021-03-09 21:56:20 +01:00
Autechre f1ba4e1c53 Update .gitlab-ci.yml 2021-03-09 20:49:22 +01:00
Autechre e41acae922 Merge pull request #12119 from yoshisuga/osx_update_artifact
[gitlab][macOS] Updated artifact zip to not include subdirs for packaging step
2021-03-09 17:31:32 +01:00
Yoshi Sugawara 7e619aeb27 Updated artifact zip to not include subdirs for packaging step 2021-03-09 06:28:16 -10:00
CrystalCT f9eae08e1b Add some PSL1GHT ifdefs 2021-03-09 08:27:46 +01:00
twinaphex 88b2359a37 Cleanups 2021-03-09 00:51:15 +01:00
twinaphex c645a9b8bb Rewrite osk_last_update_codepoint 2021-03-08 23:28:24 +01:00
twinaphex 682a09fbdb Reimplement input_joypad_analog_axis 2021-03-08 23:02:46 +01:00
twinaphex 76e96bdd0b Merge branch 'master' of https://github.com/libretro/RetroArch into master 2021-03-08 22:44:09 +01:00
Autechre de0bcad39f Merge pull request #12116 from sonninnos/x11-grab
(X11) Remove useless XGrabs
2021-03-08 22:44:04 +01:00
twinaphex d98f81359f Small cleanup to input_keyboard_event 2021-03-08 22:09:36 +01:00
twinaphex fa539c9563 runloop_key_event can be NULL - check first if non-NULL before
calling it
2021-03-08 21:11:04 +01:00
twinaphex 012b02635e Get rid of p_rarch for more function arguments 2021-03-08 19:52:08 +01:00
twinaphex af5c311fb0 Simplify code in input_keyboard_event 2021-03-08 19:45:27 +01:00
twinaphex 7b2256941e (Input) Redesign some code for input_driver_mapper - if input_remap_binds_enable
is true, assume input_driver_mapper is allocated, to avoid having to do
the conditional checks beforehand
2021-03-08 19:23:37 +01:00
sonninnos ce29b70ae9 (X11) Remove useless XGrabs 2021-03-08 19:58:36 +02:00
twinaphex a60e7ad42a (Qt) Merge ui_qt_themes.h into ui_qt.cpp 2021-03-08 18:15:50 +01:00
twinaphex 6802e41db5 (Qt) Merge ui_qt_load_core_window.cpp into ui_qt.cpp - further
binary size reduction
2021-03-08 18:02:49 +01:00
twinaphex 25a0c903bc (Qt) Cleanup 2021-03-08 17:58:51 +01:00
twinaphex fd5d1804c5 Header cleanups 2021-03-08 17:54:52 +01:00
twinaphex f9eb53cff1 (Qt) Combine non-generic options into qt/options/nongeneric.cpp -
all these Qt files being combined now led to a nearly 1MB size reduction
in retroarch's binary
2021-03-08 17:47:36 +01:00
twinaphex 8fe8782497 (Qt) Combine qt download files into one - further binary size
reduction
2021-03-08 17:38:03 +01:00
twinaphex af1d9f7041 (Qt) Combine filedropwidgets.cpp and settingswidgets.cpp into
qt_widgets.cpp - further binary size reduction
2021-03-08 17:32:56 +01:00
twinaphex 7fb09d1602 (Qt) Combine shaderparamsdialog.cpp and qt_dialogs.cpp - further binary
size reduction
2021-03-08 17:24:47 +01:00
twinaphex 469e2b7778 (Qt) Combine dialog files into one - makes binary smaller too 2021-03-08 17:13:54 +01:00
twinaphex 69eff40e0d Cleanup 2021-03-08 16:35:55 +01:00
twinaphex 73116f9af3 (ozone_entries.c) ozone_draw_entry_value - small cleanup 2021-03-08 15:54:53 +01:00
twinaphex 047b24cfbf (ozone_display) Don't set variable to itself 2021-03-08 15:47:03 +01:00
twinaphex 0b06eea846 (ui_cocoa.m) Cleanups - add fall-throughs 2021-03-08 15:19:26 +01:00
twinaphex e140c9f8ee Cleanups 2021-03-08 15:11:28 +01:00
Autechre c9ed86f34d Merge pull request #12114 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-08 15:07:33 +01:00
CrystalCT 3bafc82305 Add some PSL1GHT ifdefs 2021-03-08 13:09:43 +01:00
twinaphex e135df2983 Simplify input_state_device - two case statements were identical
to an already existing one
2021-03-08 07:42:11 +01:00
Autechre bb6029d24f Merge pull request #12112 from Nephil1m/patch-1
Update AUTHORS.h: Updating my alias
2021-03-08 06:49:18 +01:00
Nephilim de8ee0e8d1 Update AUTHORS.h: Updating my alias
I used to be esoptron but now I have a new alias. So I'm updating this file to reflect that change.
2021-03-08 00:38:34 -05:00
twinaphex b0b81406ad Cut down on HAVE_COCOA_METAL/HAVE_COCOA ifdef 2021-03-08 04:09:43 +01:00
twinaphex ee77cd7288 Move cocoa_defines.h to defines/ 2021-03-08 03:58:41 +01:00
Autechre ce7ed94bcf Merge pull request #12111 from yoshisuga/gitlab_macos_update
Support building both universal and x64 open gl builds for macos
2021-03-08 02:39:06 +01:00
Yoshi Sugawara 6053a69686 Support building both universal and x64 open gl builds for macos 2021-03-07 14:49:40 -10:00
twinaphex b83596fcd4 (Qt) Combine all Qt files into one (ui_qt.cpp) 2021-03-08 00:56:55 +01:00
twinaphex ea3e9ee1c6 Buildfix 2021-03-08 00:33:31 +01:00
twinaphex d350ee0256 Remove unused variables 2021-03-08 00:31:36 +01:00
twinaphex 01c163a2fa (Cocoa) Combine Cocoa files into one 2021-03-08 00:28:21 +01:00
twinaphex 2675afe45d Combine ui/drivers/win32 files into one (ui/drivers/ui_win32.c) 2021-03-08 00:20:29 +01:00
Autechre 1207001bba Update .gitlab-ci.yml 2021-03-07 23:57:22 +01:00
twinaphex 65286541df Update DEVELOPMENT_ID team 2021-03-07 23:23:53 +01:00
twinaphex 7932eebb9b Update DEVELOPMENT_TEAM 2021-03-07 23:15:46 +01:00
Autechre b84fb56c76 Update .gitlab-ci.yml 2021-03-07 23:13:13 +01:00
Autechre bb58202e7b Merge pull request #12109 from yoshisuga/gitlab_macos_xcodebuild
GitLab CI job for building macOS universal with xcodebuild
2021-03-07 20:10:18 +01:00
Yoshi Sugawara b377cc7415 Add new build job for macOS using xcodebuild; Added xcconfig to specify libretro development team 2021-03-07 09:03:55 -10:00
Autechre ad5e366d99 Merge pull request #12107 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-07 20:02:17 +01:00
twinaphex 0518f6e13e Create MENU_ENTRIES_NEEDS_REFRESH 2021-03-07 20:00:45 +01:00
twinaphex db314cf5df file_list_set_userdata / file_list_set_actiondata are trivial one-line
functions - just set it directly
2021-03-07 19:30:04 +01:00
twinaphex 0c1e63a3c1 input_overlay_poll - add fallthrough
menu_display_powerstate - cleanup
2021-03-07 19:16:54 +01:00
twinaphex 0cce2fb4e2 menu_entries_append_enum - get rid of menu_driver_ident call 2021-03-07 19:04:24 +01:00
twinaphex e7702ae20f Simplify pause button handling in runloop_check_state 2021-03-07 18:38:33 +01:00
twinaphex 681c5f0b2b Only call rcheevos_hardcore_active once in runloop_check_state 2021-03-07 18:31:53 +01:00
twinaphex 90a1590f4c rcheevos_hardcore_active only has to be used outside of file cheevos.c 2021-03-07 18:29:25 +01:00
twinaphex bbabbd1373 (Cheevos) Stylistic changes; try to fit text within 80-char limit,
remove brackets around conditionals that exist out of one line, etc.
2021-03-07 18:25:17 +01:00
twinaphex 8328043897 Don't have two consecutive rcheevos_hardcore_active boolean
conditionals - have only one instead
2021-03-07 17:59:01 +01:00
twinaphex 69bae76ec3 Buildfix for MSVC 2021-03-07 16:08:49 +01:00
unknown 1288a35841 Add some PSL1GHT ifdefs 2021-03-07 09:28:59 +01:00
twinaphex a657465a4a Don't call netplay_get_host_room/don't call state_manager_is_reversed
inside retroarch.c
2021-03-07 07:28:13 +01:00
twinaphex 58f54a757f Move global pointer getters to the top 2021-03-07 07:16:40 +01:00
twinaphex 348b353907 Don't use menu_navigation_set_selection inside retroarch.c 2021-03-07 07:09:37 +01:00
twinaphex d6e897ca2c Get rid of menu_entries_set_checked 2021-03-07 06:52:35 +01:00
twinaphex b65d4e483e Avoid calls to menu_entries_get_menu_stack_ptr and
menu_entries_get_selection_buf
2021-03-07 06:26:51 +01:00
twinaphex 7b6a01056e Optimizations to menu refresh/clear functions -
* don't use menu_entries_get_size but used optimized
getter
2021-03-07 06:07:45 +01:00
twinaphex fa2b2708e5 Optimize MENU_ENTRIES_CTL_REFRESH 2021-03-07 06:00:35 +01:00
twinaphex 2bc23c9eaa Found quirk in code - add TODO/FIXME note 2021-03-07 05:49:12 +01:00
twinaphex ef650b2b48 Simplify menu_entries_elem_get_first_char - list is always non-NULL
so no need to check this
2021-03-07 05:25:34 +01:00
twinaphex ae378b8b80 Simplify further 2021-03-07 04:59:21 +01:00
twinaphex 3442f57bc7 menu_shader_manager_set_preset - ret is already set to false
by default, no need to set it again
2021-03-07 04:57:55 +01:00
twinaphex 0b863d6bc7 Forget 'void' for function prototype - needed for C 2021-03-07 04:48:30 +01:00
twinaphex 09bf486618 More cleanups 2021-03-07 04:40:12 +01:00
twinaphex b45eb0c76d Cleanups 2021-03-07 04:28:33 +01:00
twinaphex 2c7d5ad944 Get rid of p_rarch being passed as argument to functions whenever
possible
2021-03-07 04:15:17 +01:00
twinaphex 48926799cb Don't pass p_rarch around as argument unless we have to 2021-03-07 03:35:04 +01:00
twinaphex 5b3e3187c4 Don't pass p_rarch around to other functions if unnecessary 2021-03-07 03:12:55 +01:00
twinaphex e3b810e974 Cleanup 2021-03-07 02:07:37 +01:00
twinaphex a80e563d1f (cheevos) Cut down on calls to gfx_widgets_ready 2021-03-07 02:01:31 +01:00
twinaphex d794a57159 Cleanup 2021-03-06 23:31:37 +01:00
twinaphex 7be3d47b52 Cleanup menu_input_post_iterate 2021-03-06 23:11:00 +01:00
twinaphex a35cecac96 input_state_device - more refactors - prevent duplicate code
for finding base analog
2021-03-06 19:38:21 +01:00
twinaphex 7982613d31 Further optimizations to input_state_device - when input_remote is
false, res is still set to 0, so change conditionals
2021-03-06 19:21:41 +01:00
twinaphex a723e563f0 Further optimize input_state_device - move remote_input boolean
variable and refactor the logic
2021-03-06 19:12:40 +01:00
Autechre ebd2e69927 Merge pull request #12106 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-06 19:02:45 +01:00
twinaphex 7c69911065 Further micro optimizations to input_state_device - get rid
of res_overlay variable
2021-03-06 18:59:30 +01:00
twinaphex 490d67ab83 Refactor tons of stateful code in input_state_device - this should
all be streamlined and further optimized
2021-03-06 18:41:45 +01:00
twinaphex fc65a939b7 Refactor some of the input_state_device code - some very messy code in
here
2021-03-06 18:14:06 +01:00
twinaphex f50906787f Small optimization to turbo button handling 2021-03-06 17:57:04 +01:00
twinaphex e6cb7592a6 Further refinement to code that uses input_joypad_analog_button - value
is not subject to change unless the bind is valid, so move conditional
2021-03-06 17:48:58 +01:00
twinaphex 00a5c9502e Check if bind is valid before calling input_joypad_analog_button 2021-03-06 17:38:25 +01:00
unknown 49eab75938 Add some PSL1GHT ifdefs 2021-03-06 17:35:31 +01:00
twinaphex 5020c6a4d6 input_key_pressed - comment function and redesign it 2021-03-06 17:30:14 +01:00
twinaphex 5b741acbf3 Stylistic cleanups and code refactors to some functions in retroarch.c 2021-03-06 17:21:51 +01:00
Autechre d06bd7fffd Merge pull request #12105 from Jamiras/read_core_memory
add READ/WRITE_CORE_MEMORY network commands
2021-03-06 17:08:04 +01:00
Jamiras 5783a2907d add READ/WRITE_CORE_MEMORY network commands 2021-03-06 08:05:48 -07:00
Autechre 07146047f9 Merge pull request #12104 from Jamiras/cheevos/rewind_threaded
(cheevos) ensure rewind is only initialized/deinitialized on main thread
2021-03-06 06:44:23 +01:00
Jamiras 1b81620d64 ensure rewint is only initialized/deinitialized on main thread 2021-03-05 22:22:31 -07:00
jdgleaver 9086d241a7 (.gitlab-ci.yml) Add ctr-legacy target 2021-03-05 16:35:04 +01:00
Autechre 330161c394 Merge pull request #12100 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-05 16:00:26 +01:00
Salvo Cristaldi 5bff99b3bf Add some PSL1GHT ifdefs 2021-03-05 10:49:02 +01:00
Autechre bd209eab1f Merge pull request #12097 from crystalct/master
Fix SYS_THREAD_CREATE_JOINABLE on PSL1GHT
2021-03-04 13:28:52 +01:00
Salvo Cristaldi 4e284751f6 Fix SYS_THREAD_CREATE_JOINABLE on PSL1GHT 2021-03-04 09:05:55 +01:00
Autechre b606217c40 Merge pull request #12086 from valadaa48/oga_gfx_fix_msg
oga_gfx: fix messages from not disappearing
2021-03-03 17:13:46 +01:00
Autechre 81c6495df5 Merge pull request #12095 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-03 17:13:36 +01:00
Salvo Cristaldi 2896856195 Add some PSL1GHT ifdefs 2021-03-03 12:02:32 +01:00
Autechre 6957a766ec Merge pull request #12085 from crystalct/master
Add some PSL1GHT ifdefs
2021-03-02 22:08:01 +01:00
valadaa48 71cbec9252 oga_gfx: fix messages from not disappearing 2021-03-01 19:25:54 -05:00
unknown ad059aed78 Add some PSL1GHT ifdefs 2021-03-01 15:57:01 +01:00
Autechre 5ff75cab0f Merge pull request #12083 from Jamiras/cheevos_load_state_async
(cheevos) ensure hardcore remains disabled through load process
2021-02-28 23:54:10 +01:00
Jamiras ba1d48fb6a ensure hardcore remains disabled through load process 2021-02-28 13:07:24 -07:00
Autechre a535cd5d59 Merge pull request #12079 from jdgleaver/manage-cores-fix
Ensure RARCH_CTL_CORE_OPTIONS_LIST_GET returns false if no core options are available
2021-02-26 11:21:07 +01:00
jdgleaver 3c909a3059 Ensure RARCH_CTL_CORE_OPTIONS_LIST_GET returns false if no core options are available 2021-02-26 09:57:50 +00:00
Autechre 5f5e11a0ba Merge pull request #12078 from jdgleaver/core-options-reset
Add option to reset all core options for current core/content
2021-02-25 18:23:17 +01:00
jdgleaver 20a187ef9c Add option to reset all core options for current core/content 2021-02-25 16:59:05 +00:00
Autechre 3dda581e41 Merge pull request #12074 from jdgleaver/core-option-save-remove
Add support for saving per-directory core options and deleting core option overrides
2021-02-25 12:00:19 +01:00
jdgleaver 110e318b71 Add support for saving per-directory core options and deleting core option overrides 2021-02-25 10:54:22 +00:00
Autechre 623725d668 Merge pull request #12077 from Jamiras/cheevos_memref_validation
(cheevos) only validate addresses once
2021-02-25 11:51:40 +01:00
Jamiras da71ed8e3b only validate memrefs once 2021-02-24 15:47:22 -07:00
Job Adrian Salinas Gonzalez de4138b45c [RGUI] Added 5:3 and 5:3 (centered) options for changing rgui aspect ratio (#12072)
* Added 5:3 and 5:3 (centered) options for changing rgui aspect ratio

* Fixed option label
2021-02-24 03:58:48 +01:00
Meredith Mello 002edcec82 Changed name in iOS README.md (#12071) 2021-02-23 19:33:06 +01:00
crystalct 1687d4a90b Step#1 to add per-folder core options (#11843) 2021-02-23 18:59:11 +01:00
Tony b8f84b8fa1 Restrict menu acceleration to navigation buttons (#12069) 2021-02-23 18:58:58 +01:00
jdgleaver d12197c00c Fix 'Content dir-specific overrides' log message (#12070) 2021-02-23 18:58:07 +01:00
twinaphex 6bba672d60 Compile video and audio filters as ARM64 architecture 2021-02-22 08:11:50 +01:00
Autechre 19b9fa9dcd Update .gitlab-ci.yml 2021-02-22 07:38:19 +01:00
Autechre b20ddebb73 Update .gitlab-ci.yml 2021-02-22 07:38:05 +01:00
Autechre 4a3a38ff49 Update .gitlab-ci.yml 2021-02-22 07:24:33 +01:00
Autechre adfb6eed41 Update .gitlab-ci.yml 2021-02-22 07:21:23 +01:00
Autechre 31a6529590 Update .gitlab-ci.yml 2021-02-22 07:16:46 +01:00
Autechre 163bdf8941 Update .gitlab-ci.yml 2021-02-22 07:06:58 +01:00
Autechre ff33169b35 Update .gitlab-ci.yml 2021-02-22 07:03:00 +01:00
twinaphex 1a9f1f6b33 gfx_display_init_first_driver was called twice, once invoked by
drivers_init, after that invoked by each menu driver's init function.
Taking the extra function call out of the menu driver's init function
2021-02-22 06:38:55 +01:00
twinaphex 80e90e532a Refactor away strcpy_alloc_force 2021-02-22 06:25:25 +01:00
twinaphex f54679417c Simplifications 2021-02-22 04:46:11 +01:00
Jamiras 1e39de800c fix undo load state (#12062) 2021-02-21 22:50:27 +01:00
twinaphex c43b0f53bf (file_path) Get rid of all the platform-specific headers 2021-02-21 18:50:17 +01:00
Tony 367024b623 Add 'Turbo' prefix to 'Duty Cycle' (#12059) 2021-02-21 17:12:09 +01:00
Autechre dbe1061742 Refactors (#12057)
* lock_file_path here will never be empty

* Simplify path_mkdir - final return value can become false, and sret
variable can go
2021-02-21 11:09:11 +01:00
Autechre a4d1fb62dc Merge pull request #12056 from sonninnos/menu-scroll-tweak
Tweak menu scroll initial hold delays
2021-02-21 03:58:50 +01:00
sonninnos f03ad6ea7c Tweak menu scroll initial hold delays 2021-02-21 04:24:38 +02:00
twinaphex d1280b4196 Revert "retroarch_load_shader_preset_internal - cleanups"
This reverts commit b51ee5fafd.
2021-02-21 01:06:41 +01:00
twinaphex 069470aff6 Cleanups 2021-02-21 00:04:13 +01:00
twinaphex 8350a2e050 Cleanup handle_discord_join_request 2021-02-20 23:49:38 +01:00
twinaphex de29587f25 ozone_auto_select_onscreen_entry - calling menu_navigation_get_selection
here is useless since it will be overridden immediately afterwards
2021-02-20 21:58:51 +01:00
twinaphex b51ee5fafd retroarch_load_shader_preset_internal - cleanups 2021-02-20 21:39:07 +01:00
Autechre 90568d0cd2 Merge pull request #12055 from sonninnos/remap-clear
Add remap clearing ability under Quick Menu controls
2021-02-20 21:28:08 +01:00
sonninnos 6de0af0c78 Add remap clearing ability under Quick Menu controls 2021-02-20 19:35:42 +02:00
twinaphex de3a85f18c Cuts down on two path_is_directory calls 2021-02-20 17:45:42 +01:00
twinaphex 4d8db1a091 Small cleanups 2021-02-20 10:05:41 +01:00
twinaphex ffaa7fcd40 Small cleanups/refactors 2021-02-20 09:34:45 +01:00
twinaphex a73de886fc Cleanups - should be no functional changes 2021-02-20 09:02:32 +01:00
Autechre 3406648b63 Merge pull request #12053 from jdgleaver/ctr-scummvm
(3DS) Add ScummVM assets
2021-02-19 18:38:57 +01:00
jdgleaver 74faccd158 (3DS) Add ScummVM assets 2021-02-19 16:30:58 +00:00
twinaphex 43c0d8aaa3 (MSVC2019) Add missing assets 2021-02-19 03:38:49 +01:00
Autechre 16e36e0ae9 Update RetroArch-msvc2019-UWP.sln 2021-02-19 03:06:42 +01:00
Autechre 07f9c994b6 Merge pull request #12049 from Jamiras/cheevos_rewind_threaded
(cheevos) also call REWIND_DEINIT on main thread
2021-02-19 03:00:58 +01:00
twinaphex f41e5b0483 Add MSVC2019 UWP 2021-02-19 02:57:19 +01:00
Jamiras 6612c38070 also call REWIND_DEINIT on main thread 2021-02-18 18:41:25 -07:00
Autechre 515b2035ef Merge pull request #12048 from sonninnos/override-path
Fix empty override paths when launching without content
2021-02-19 01:29:47 +01:00
sonninnos c5abb09182 Fix empty override paths when launching without content 2021-02-18 22:00:34 +02:00
Autechre f333b8ebf6 Merge pull request #12047 from sonninnos/log-levels
Logging level adjustments
2021-02-18 19:24:07 +01:00
sonninnos f333cd0df8 Logging level adjustments 2021-02-18 19:28:08 +02:00
Autechre c377516db2 Merge pull request #12045 from sonninnos/log-cleanups
Logging cleanups
2021-02-18 18:03:40 +01:00
sonninnos 6c3c2bea5f Logging cleanups 2021-02-18 18:35:31 +02:00
Autechre e7f8adf18f Merge pull request #12043 from Jamiras/cheevos_state
(cheevos) include achievement runtime state in save states
2021-02-18 16:27:11 +01:00
Jamiras 2280d126f3 address feedback 2021-02-18 07:44:52 -07:00
Autechre b8097455ef Merge pull request #12044 from jdgleaver/input-crash-fix
input_keyboard_event(): Add NULL check (prevents potential segfault when input remaps are disabled)
2021-02-18 13:49:45 +01:00
jdgleaver 4b70fbcd86 input_keyboard_event(): Add NULL check (prevents potential segfault when input remaps are disabled) 2021-02-18 11:01:27 +00:00
Jamiras 2d841715cb include achievement runtime state in save states 2021-02-17 19:44:39 -07:00
Autechre 06b77bab18 Merge pull request #12042 from jdgleaver/osx-repackaging
(.gitlab-ci.yml) OSX targets: Defer DMG generation to packaging pipeline
2021-02-17 18:15:09 +01:00
jdgleaver f496290326 (.gitlab-ci.yml) OSX targets: Defer DMG generation to packaging pipeline 2021-02-17 16:29:50 +00:00
twinaphex 6809655338 (OSX) Set audio_filters/video_filters for RELEASE_BUILD 2021-02-17 07:46:15 +01:00
twinaphex e8cd332b78 Refactor away driver_ctl_find_index 2021-02-17 06:54:37 +01:00
twinaphex b70217b7fc (Mac) Add CoreAudio3 for Metal x64 and ARM64 builds on buildbot 2021-02-17 05:20:51 +01:00
Autechre 54e20e2708 Update .gitlab-ci.yml 2021-02-17 01:23:43 +01:00
twinaphex 39cf159e98 Should build valid ARM64 binaries now 2021-02-17 01:11:21 +01:00
twinaphex 91365098f7 -arch arm64 works, using that 2021-02-16 23:12:25 +01:00
twinaphex e6643f7815 (MacOS ARM) Set -DDWONT_WANT_ARM_OPTIMIZATIONS for now since this won't compile on Mac for now 2021-02-16 23:05:50 +01:00
twinaphex c01df07f3d Fix ARM NEON detection 2021-02-16 23:02:06 +01:00
Autechre dea73a5595 Merge pull request #12011 from sonninnos/video-resolution
Screen Resolution option fixes
2021-02-16 22:15:55 +01:00
twinaphex 22f436128c Set arch arm64 to arch arm 2021-02-16 22:14:00 +01:00
sonninnos 371453623b Screen Resolution option fixes 2021-02-16 22:59:24 +02:00
twinaphex 93c2f3e4e9 Fix warnings 2021-02-16 21:38:39 +01:00
twinaphex 97239894a1 (Apple) Set min osx version correctly too when specifying ARCH 2021-02-16 21:36:24 +01:00
twinaphex e26f7ec8f6 (Gitlab) Try to build explicitly for ARM64 by passing -arch arm64 2021-02-16 21:28:38 +01:00
twinaphex 4b0f344024 Silence some warnings 2021-02-16 20:57:54 +01:00
Autechre 9c37cc948a Merge pull request #12038 from jdgleaver/last-file-path
Start auto-selecting last used path for more file browser menu entires
2021-02-16 20:51:07 +01:00
twinaphex 219f7ac689 Simplify command_event_init_controllers:
- Take variables out of loop that are not changing per iteration
- Early return in function if info is NULL
- Rearrange some code so it's better readable

Should have no functional changes
2021-02-16 20:29:10 +01:00
jdgleaver 537432cb8e Start auto-selecting last used path for more file browser menu entires 2021-02-16 16:20:41 +00:00
Autechre c7392c8135 Merge pull request #12036 from jdgleaver/msvc-icon
(.gitlab-ci.yml) Add icon to MSVC Windows binaries
2021-02-16 15:46:06 +01:00
jdgleaver c53543db7e (.gitlab-ci.yml) windows-x64/windows-i686/linux-x64/linux-i686/dingux-mips32: Strip generated RA binaries by default 2021-02-16 11:56:15 +01:00
jdgleaver 3fc31c1afa (.gitlab-ci.yml) Add icon to MSVC Windows binaries 2021-02-16 10:02:14 +00:00
Autechre 03a051d5bb Update Makefile.common 2021-02-16 02:49:52 +01:00
twinaphex cebd46a803 (Gitlab) Add ARM64 build 2021-02-16 02:48:21 +01:00
twinaphex 13e8d48732 Add RetroArch_Metal to .gitlab-ci.yml 2021-02-16 01:18:05 +01:00
twinaphex e6d8816d35 (OSX) Try to append minversion for LDFLAGS too 2021-02-15 22:58:29 +01:00
Autechre cdba3e149d Merge pull request #12035 from ToadKing/fix-emscripten-overlay-lockup
emscripten: only report back one screen pointer for rwebinput
2021-02-15 22:29:53 +01:00
Toad King c29241ec9e emscripten: only report back one screen pointer for rwebinput
fixes lockup when clicking on an overlay
2021-02-15 15:09:37 -06:00
twinaphex 2e35a2928a Specify -stdlib=libc++ for Clang-based macOSX SDKs 2021-02-15 21:49:24 +01:00
twinaphex ef4d9b88bf Specify -mmacosx-version-min when compiling from commandline - set
the right level based on architecture and/or whether HAVE_METAL is
defined
2021-02-15 21:44:41 +01:00
Autechre dad7f372bf Update .gitlab-ci.yml 2021-02-15 21:33:26 +01:00
Autechre 605af28dd3 Update .gitlab-ci.yml 2021-02-15 18:12:37 +01:00
Autechre 84815acda4 Update .gitlab-ci.yml
Try and see if this works now with OSX 10.7 deployment target
2021-02-15 18:11:05 +01:00
Autechre 5eb4ebb8e3 Update .gitlab-ci.yml 2021-02-15 17:09:58 +01:00
Autechre c27f15a9f9 Merge pull request #12033 from SpiralBrad/patch-1
Allows hosting in a subfolder instead of only root
2021-02-15 03:30:31 +01:00
Brad 54a166a360 Allows hosting in a subfolder instead of only root
Paths starting with slashes look in the root of a site, and these asset folders should generally be beside this .js + index.html...
This simple change was all that was needed to allow hosting in a subfolder of a site, and is not a breaking change unless someone has the asset folders elsewhere, which would be a breaking change on their part anyway.
2021-02-14 19:47:01 -06:00
Autechre 518b043ae2 Merge pull request #12028 from fjtrujy/ps2/fixDoubleSlash
Fix double slash in PS2
2021-02-14 06:13:09 +01:00
Francisco Javier Trujillo Mata c195fe696c Remove not used bootDeviceID 2021-02-13 21:10:51 +01:00
Francisco Javier Trujillo Mata 7c4efa21c4 Fix double slash in PS2 2021-02-13 21:00:47 +01:00
Autechre 4d5b94fc15 Merge pull request #12025 from jdgleaver/gitlab-windows-msvc05
(.gitlab-ci.yml) Add windows-msvc05-i686 target
2021-02-12 13:43:11 +01:00
jdgleaver f862dc8b14 (.gitlab-ci.yml) Add windows-msvc05-i686 target 2021-02-12 12:05:40 +00:00
Autechre b339554e47 Merge pull request #12023 from Tatsuya79/master
qt: remove retroarch nightly updater
2021-02-11 19:06:40 +01:00
Tatsuya79 1f07c884de remove from makefile.common 2021-02-11 18:07:51 +01:00
Tatsuya79 b1f6fa4a2a remove updateretroarch.cpp 2021-02-11 17:49:21 +01:00
Autechre 269523d42b Update .gitlab-ci.yml 2021-02-10 23:23:56 +01:00
Autechre ddbb1bef26 Merge pull request #12019 from davidgfnet/master
Memalign audio buffers to 64 bytes
2021-02-10 23:04:26 +01:00
David Guillen Fandos 9313b10467 Memalign audio buffers to 64 bytes
This is the most common cache line size, helps with performance.
Also fixes issues with platforms like PSP that wrongly assume that
malloc returns aligned buffers (to 16bytes). This recently broke the PSP
builds.
2021-02-10 21:35:04 +01:00
twinaphex 9c16163933 (Griffin) Add HAVE_GFX_WIDGETS to MSVC builds 2021-02-10 19:46:01 +01:00
Autechre 67cd40b727 Merge pull request #12018 from jdgleaver/gitlab-windows-msvc10
(.gitlab-ci.yml) Add windows-msvc10-x64 and windows-msvc10-i686 targets
2021-02-10 18:08:59 +01:00
jdgleaver 5c0799826a (.gitlab-ci.yml) Add windows-msvc10-x64 and windows-msvc10-i686 targets 2021-02-10 16:55:09 +00:00
Autechre d2a254b43c Merge pull request #12017 from jdgleaver/gitlab-linux-i686
(.gitlab-ci.yml) Restore mistakenly deleted linux-i686 target
2021-02-10 11:35:55 +01:00
jdgleaver e79bda1359 (.gitlab-ci.yml) Restore mistakenly deleted linux-i686 target 2021-02-10 10:21:47 +00:00
twinaphex 170b3e3e44 Fix some warnings - values written to variables never read 2021-02-10 00:49:41 +01:00
Autechre d56113c91c Merge pull request #12012 from jdgleaver/manual-scan-remember-paths
Manual Content Scan: Auto select last used 'Content Directory' and 'Arcade DAT File' when opening file browser
2021-02-09 19:06:51 +01:00
jdgleaver 07a5b1c4f4 Manual Content Scan: Auto select last used 'Content Directory' and 'Arcade DAT File' when opening file browser 2021-02-09 17:44:14 +00:00
Autechre 514614bc00 Merge pull request #12010 from sonninnos/win32-mouse-cleanup
(WINRAW+DINPUT) Mouse grab cleanup
2021-02-09 18:18:24 +01:00
sonninnos de7da62acd (WINRAW+DINPUT) Mouse grab cleanup 2021-02-09 18:42:07 +02:00
twinaphex 68027c606e Silence some warnings 2021-02-09 16:43:40 +01:00
Autechre ee50f6ba41 Merge pull request #12009 from XerTheSquirrel/macos-build
Mac OS GitLab CI/CD Build
2021-02-09 16:22:12 +01:00
twinaphex 3607d03ff8 Get rid of warning on older OSX SDK versions 2021-02-09 16:20:40 +01:00
twinaphex bf806f09ac kIOHIDElementTypeInput_NULL is apparently not available on previous OSX SDK versions 2021-02-09 16:14:20 +01:00
twinaphex 2763f65ab7 Fix some implicit type conversion warnings 2021-02-09 15:53:08 +01:00
twinaphex bdaf3d532a (libretro-common) Resync 2021-02-09 15:49:32 +01:00
twinaphex aba9479ed0 Simplify code; silence warnings 2021-02-09 15:41:26 +01:00
twinaphex 561d2744f0 Silence some warnings 2021-02-09 15:35:25 +01:00
Autechre 8660d35bb0 Merge pull request #12007 from michaelburgardt/us_text_other_fix
Removed quotation marks from comment (crowdin gets confused otherwise)
2021-02-09 14:27:33 +01:00
Autechre bcbe9d326b Merge pull request #12008 from jdgleaver/shader-remember-file
When remembering last selected shader preset/shader pass directories, also remember selected files
2021-02-09 14:27:24 +01:00
jdgleaver d81bdcddd0 When remembering last selected shader preset/shader pass directories, also remember selected files 2021-02-09 13:14:00 +00:00
Stephanie Gawroriski d225556a45 Merge jobs together as one. 2021-02-08 21:20:21 -05:00
Stephanie Gawroriski 9d0bc2281e Move stage around for OS X Build. 2021-02-08 21:11:54 -05:00
Stephanie Gawroriski d5c127309e Add MacOS X executable and unsigned DMG usage. 2021-02-08 20:59:22 -05:00
Michael Burgardt 50f4976c19 Removed quotation marks from comment (crowdin gets confused otherwise) 2021-02-09 01:36:55 +01:00
Autechre 91145dfe56 Merge pull request #11968 from michaelburgardt/us_text_other
US menu text improvement #5: whatever's left
2021-02-08 13:11:19 +01:00
Autechre 032974b403 Merge pull request #11967 from michaelburgardt/us_text_clarifications
US menu text improvement #4: to be more clear
2021-02-08 13:11:01 +01:00
Autechre 6cecec9af4 Merge pull request #11966 from michaelburgardt/us_text_visibility
US menu text improvement #3: Menu Item Visibility
2021-02-08 13:10:36 +01:00
Autechre d9b657d97b Merge pull request #11965 from michaelburgardt/us_text_consistency
US menu text improvement #2: for consistency
2021-02-08 13:10:08 +01:00
Autechre a00216e2d5 Merge pull request #11964 from michaelburgardt/us_text_mistakes
US menu text improvement #1: spelling and other mistakes
2021-02-08 13:09:39 +01:00
Autechre f661cc3fb5 Merge pull request #11572 from ImJezze/master
Option to open the file browser in the last used directory
2021-02-08 12:29:31 +01:00
twinaphex 22c3f35726 Buildfix 2021-02-08 09:38:12 +01:00
twinaphex da17588f0c CXX_BUILD build fixes 2021-02-08 09:35:57 +01:00
twinaphex 5b923b967d (7zip) Silence warnings on OSX/Xcode/Clang 2021-02-08 09:32:19 +01:00
Autechre 8e35fc6c53 Merge pull request #12005 from Jamiras/rcheevos_invalid_addr_range
(cheevos) don't invalidate out-of-range addresses
2021-02-08 08:00:24 +01:00
Jamiras 88fe6e82ca don't invalidate out-of-range addresses 2021-02-07 20:08:54 -07:00
Autechre bfdebf2753 Merge pull request #12001 from Tatsuya79/master
mouse visibility fixes
2021-02-08 00:58:06 +01:00
Autechre 6d5713ca25 Merge pull request #12002 from sonninnos/win-grab
(Windows) Mouse grabbing/clipping with alt-tab
2021-02-07 23:05:59 +01:00
Autechre dff0ce9912 Merge pull request #12003 from fjtrujy/ps2-improveFolderDetection
Ps2 improve folder detection
2021-02-07 22:24:22 +01:00
Francisco Javier Trujillo Mata 78b8d6933b Add PS2 libco 2021-02-07 21:16:24 +01:00
Francisco Javier Trujillo Mata 6248d2cdff Improve platform_ps2 driver 2021-02-07 21:05:06 +01:00
sonninnos aad12cc663 (Windows) Mouse grabbing/clipping with alt-tab 2021-02-07 20:18:04 +02:00
Tatsuya79 d97e0b3cee mouse visibility fixes 2021-02-07 16:15:09 +01:00
ImJezze 270c41b35a Implement toggle to open the start directory at the last used location 2021-02-07 11:54:17 +01:00
Autechre dd2308b44c Merge pull request #11998 from sonninnos/mouse-index
Reorder Mouse Index next to Device Index
2021-02-06 22:10:49 +01:00
Autechre 11a62dfdab Merge pull request #11999 from sonninnos/input-menu
Missing Input menu dropdown
2021-02-06 22:10:38 +01:00
sonninnos 7fb25b6b6e Missing Input menu dropdown 2021-02-06 23:04:39 +02:00
sonninnos c89f1feb44 Reorder Mouse Index next to Device Index 2021-02-06 22:41:02 +02:00
Autechre fa9b615ce8 Merge pull request #11993 from sonninnos/mouse-index-dropdown
Submenu for Mouse Index
2021-02-06 20:49:38 +01:00
Francisco Javier Trujillo Mata 34287ff47b Improve folder detection 2021-02-06 20:43:28 +01:00
Autechre 0b83851346 Merge pull request #11994 from sonninnos/control-port-icons
(XMB+OZONE) Proper control port icons
2021-02-06 05:24:00 +01:00
sonninnos cd77db37df (XMB+OZONE) Proper control port icons 2021-02-06 03:13:03 +02:00
sonninnos 40b0001fb5 Submenu for Mouse Index 2021-02-06 01:59:54 +02:00
Autechre e4f8f64336 Merge pull request #11992 from sonninnos/device-index-dropdown
Submenu for Device Index
2021-02-05 20:42:31 +01:00
sonninnos 14413b8bca Submenu for Device Index 2021-02-05 19:49:15 +02:00
Autechre 92693c7d16 Merge pull request #11991 from jdgleaver/notification-settings-cleanup
'On-Screen Notifications' menu clean-ups
2021-02-05 18:13:35 +01:00
jdgleaver 864c2913d8 'On-Screen Notifications' menu clean-ups 2021-02-05 16:55:09 +00:00
Autechre fa898fc02e Merge pull request #11986 from sonninnos/device-type-dropdown
Submenu for Device Type
2021-02-04 19:36:42 +01:00
Autechre ea82a988c0 Merge pull request #11985 from Tatsuya79/patch-5
qt: fix mouse cursor limited by window range on F5 press
2021-02-04 18:09:48 +01:00
Tatsuya79 502d3b3514 qt: fix mouse cursor limited by window range on F5 press 2021-02-04 17:54:05 +01:00
sonninnos 8fcf485fd8 Submenu for Device Type 2021-02-04 18:50:10 +02:00
Guo Yunhe bfe5ca708b Fix GitHub Actions (#11984)
setup-java action has broken in previous version and need updates
2021-02-04 13:49:08 +01:00
Guo Yunhe c0108fa2c0 Fetch translations from Crowdin (#11983) 2021-02-04 13:11:36 +01:00
twinaphex 863a09eac6 We need to change this ifdef now that we temporarily disable vitagl 2021-02-04 12:51:52 +01:00
Francisco José García García 39aa742dee Vita: Disable temporarily VITAGL 2021-02-04 12:29:06 +01:00
Francisco José García García 066917ac23 Vita: VitaGL api changes (#11981)
* Vita: VitaGL api changes: vglSwapBuffers

* Vita: VitaGL api change: Remove vglStartRendering
2021-02-04 11:46:00 +01:00
Tony c360f9126d Add reinit to menubar setting (#11976) 2021-02-04 07:11:24 +01:00
jdgleaver 824693d754 (Makefile.griffin) Fix windows_msvc2010 makefile target(s) (#11978) 2021-02-03 17:37:15 +01:00
Autechre 33110603e5 Shader log spam reduction (#11977)
* (Shaders) Change label

* Create RARCH_DBG - if you have Logging Verbosity set to 0, the
shader parsing log spam will show, otherwise it won't
2021-02-03 13:49:07 +01:00
Autechre 5555419792 Merge pull request #11975 from sonninnos/state-logging
Savestate logging cleanup
2021-02-03 12:59:33 +01:00
sonninnos c4876c5e01 Config logging cleanup 2021-02-03 13:43:56 +02:00
twinaphex 5187957b3d Silence some implicit conversion warnings 2021-02-03 12:34:10 +01:00
sonninnos 90485b5586 Savestate logging cleanup 2021-02-03 13:29:32 +02:00
twinaphex 4df6d287e3 (Clang) Silence 'n' is never used warnings 2021-02-03 11:48:33 +01:00
twinaphex 4c97c22e00 (Win32) Exclude HAVE_FONTCONFIG codepath for Windows for now 2021-02-03 11:29:41 +01:00
twinaphex 1348faa209 (RTGA) Lower raw_data size to 18 bytes and leave behind a comment 2021-02-03 11:01:36 +01:00
twinaphex 34636ed9f0 (RTGA) Silence long-standing warning 2021-02-03 10:58:28 +01:00
twinaphex 542162c17b Silence some warnings 2021-02-03 10:39:29 +01:00
twinaphex 097cb1bd5b (Cheevos) Fix long-standing warning 2021-02-03 10:32:56 +01:00
twinaphex c40943374b Fix C89_BUILD 2021-02-03 10:11:33 +01:00
twinaphex 55410cf407 Use C-style comments 2021-02-03 10:04:42 +01:00
Autechre 6d2193bca8 Merge pull request #11970 from sonninnos/winraw-mouse-grab
(Windows) Mouse grab fixes
2021-02-03 09:59:27 +01:00
twinaphex ea7bedf257 Remove one include 2021-02-03 09:58:50 +01:00
Autechre 06bb026f5c Merge pull request #11973 from sonninnos/input-port-labels
Input port label adjustments
2021-02-03 06:14:37 +01:00
sonninnos d44c8ef1d3 Input port label adjustments 2021-02-02 21:33:49 +02:00
sonninnos e39ade0f05 (WIN32) Cursor clipping for grabbed mouse 2021-02-02 14:15:58 +02:00
twinaphex 60a112ec97 Reduce dummy display driver null implementations with one 2021-02-02 12:28:17 +01:00
Autechre 831bbf1300 Merge pull request #11925 from Ryunam/custom-dirs
Enable configuration of the directories used for Favorites, History, Images, Music and Video playlists
2021-02-01 23:20:00 +01:00
twinaphex 732fce9a04 (SDL2) Add ifdefs for HAVE_X11 and HAVE_WAYLAND 2021-02-01 23:18:06 +01:00
twinaphex 6aa01b2ce7 Merge branch 'master' of https://github.com/libretro/RetroArch into master 2021-02-01 23:13:52 +01:00
Autechre 6b11a9a928 Merge pull request #11923 from keithbowes/sdl2-out-of-x
Get the SDL2 video driver to work in Wayland/KMS
2021-02-01 23:13:38 +01:00
twinaphex 0b08693f9d Merge branch 'sdl2-out-of-x' of git://github.com/keithbowes/RetroArch into master 2021-02-01 23:13:17 +01:00
sonninnos 94446ab488 (WINRAW) Prevent outside window mouse clicks when grabbed 2021-02-01 23:22:34 +02:00
Michael Burgardt ad550d6f10 minor fixes 2021-02-01 19:37:51 +01:00
Michael Burgardt 41d61d8a68 mainly changes to the Settings > User Interface > Menu Item Visibility entries:
put option names in ''-quotes
removed the 'Tab' name from the labels, since it only applies to some menu drivers
descriptions
	Show or hide -> Show (no need to state 'x or y' for on/off switches)
	clarified where some options/menus are found (and removed some statements; it is obvious, for example, that visibility toggles in 'Settings > User Interface > Menu Item Visibility  > Settings' affect the options found on the Settings screen)
	added (Restart Required on Ozone/XMB) tag for some options (usually those which affect 'Tabs')
2021-02-01 18:58:06 +01:00
Michael Burgardt f3850c08ca added some FIXMEs
changed some verbs from 3rd person to basic form
minimised use of personal pronouns
2021-02-01 18:57:53 +01:00
Michael Burgardt b9a1265270 spelling mistakes
UK English -> US English (according to Merriam-Webster)
	releasedate -> release date (General consensus found during online search)
	Vsync, V-Sync -> VSync (https://en.wikipedia.org/wiki/Analog_television#Vertical_synchronization, https://www.intel.com/content/www/us/en/support/articles/000005552/graphics.html)
	realtime -> real time (https://www.merriam-webster.com/dictionary/real%20time)
	inbetween -> in-between (https://www.merriam-webster.com/dictionary/in-between)
	amongst -> among (https://www.merriam-webster.com/dictionary/amongst)
	savefile -> save file (the second was more prevalent, anyway)

improper/inconsistent capitalisation

plural -> singular and vice versa where appropriate

some punctuation mistakes, like
	improper separation of complete sentences
	unnecessary parentheses

outdated comments

improper order of some entries
2021-02-01 18:57:45 +01:00
Michael Burgardt 648144ce42 (Reload), (Restart) -> (Restart Required)
(Restart Required) tag now occurs in LABEL only, not in SUBLABEL (not all LABELs have a SUBLABEL; besides, important info like that should be in the LABEL, imo)

same³: same verb for same function in same menu

no more joypad/gamepad; controller only!

'NOTE' tags are
	removed, if note merely describes function of setting (like performance impact, side effects, things it does not do, etc.)
	replaced with new line character (\n) for conditions (like 'x must be <> for this to work', 'this will be ignored if x is <>', core compatibility, etc.)
	left as '\nNOTE:' for extra info (like deprecation notes)

no need to state 'x or y' for most on/off switches

Load Recent -> History (to be consistent across all GUIs and with the settings)
2021-02-01 18:57:35 +01:00
Michael Burgardt 385eea6b00 clarified description of "Force-Disable sRGB FBO" [by hunterk]
clarified what the Duty Cycle (Turbo Mode) is (I tested it & am confident in the description [provided by hunterk])
other minor fix-ups of descriptions, to make them more clear/streamlined
2021-02-01 18:56:35 +01:00
Autechre 80147e3cfe Merge pull request #11961 from sonninnos/input-title-prefix
Remove empty prefix from input titles
2021-02-01 18:33:15 +01:00
Autechre c5701085f2 Merge pull request #11962 from jdgleaver/regression-fixes
Regression fixes
2021-02-01 18:32:33 +01:00
jdgleaver 01265c1b08 (XMB) Fix stack-buffer-overflow due to incorrect data type being passed by reference 2021-02-01 16:43:44 +00:00
jdgleaver 95226b77a1 Fix non-smooth text ticker + reduce line ticker code duplication 2021-02-01 16:35:56 +00:00
sonninnos 48eb3f5d53 Remove empty prefix from input titles 2021-02-01 16:55:35 +02:00
twinaphex d6c027be31 (Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings(Mac) Silence some warnings 2021-02-01 09:38:01 +01:00
Autechre 94beed5a46 Merge pull request #11960 from jdgleaver/filter-upscale-320x240
Add 'Upscale_256x-320x240' video filter
2021-01-31 21:34:42 +01:00
jdgleaver ebfe32db3e Add 'Upscale_256x-320x240' video filter 2021-01-31 13:38:40 +00:00
Autechre 1f58cebcd0 Merge pull request #11958 from liushuyu/master
Use Fontconfig for FreeType font loading
2021-01-31 05:05:15 +01:00
liushuyu 6b044e742b (FontRenderer/FreeType): use C-style block comments 2021-01-30 20:05:15 -07:00
liushuyu 8132303d4f (FontRenderer/FreeType) Use fontconfig to select fonts if available 2021-01-30 18:49:47 -07:00
liushuyu 5a028d79f5 (msg_hash) Use different locale names for ...
... Chinese Simplified/Traditional
2021-01-30 18:46:16 -07:00
Autechre 20b1549fe4 Merge pull request #11955 from sonninnos/key-dupe-block
Prevent duplicate key events with hotkeys + keyboard device type
2021-01-31 00:56:27 +01:00
Autechre 231082bd84 Merge pull request #11956 from fjtrujy/ps2/warnings
Clean all the warnings in PS2
2021-01-30 16:59:31 +01:00
Francisco Javier Trujillo Mata 082fa22b05 Clean all the warnings in PS2 2021-01-30 15:47:52 +01:00
sonninnos d78f321d33 Prevent duplicate key events with hotkeys + keyboard device type 2021-01-30 11:41:44 +02:00
Autechre b83d0495d5 Merge pull request #11953 from Sanaki/patch-1
Add /media/shaders_slang/ to .gitignore
2021-01-29 20:59:18 +01:00
Sanaki 9448147259 Add /media/shaders_slang/ to .gitignore 2021-01-29 19:46:07 +00:00
Autechre 1eb45fdf9b Merge pull request #11942 from barbudreadmon/patch-1
fix slang shaders with rotation
2021-01-28 15:54:27 +01:00
Guo Yunhe 8eb335a814 Fetch translations from Crowdin (#11951) 2021-01-28 07:35:03 +01:00
Autechre 43611b6b10 (libretro-common) Fix libco for arm64 Mac (#11946) 2021-01-27 11:15:19 +01:00
twinaphex 9e2ff36d4a (macOS) Silence warning 2021-01-27 03:44:11 +01:00
twinaphex d5c23fc7c6 (Apple/ARM64) Set __aarch64__ for Core Updater URL 2021-01-26 22:58:45 +01:00
Daniel De Matteis 1ece33337c (Mac) More warning fixes 2021-01-26 21:21:51 +01:00
Daniel De Matteis 59952c520b (Mac) Silence more warnings 2021-01-26 20:39:36 +01:00
Autechre 39e8225c82 (clang/MacOS) Silence warning 'Possible misuse of comma operator here' (#11945)
warnings
2021-01-26 19:43:53 +01:00
Autechre e282cfe2fe (IOHIDManager) Fix enumeration value 'kIOHIDElementTypeInput_NULL' (#11944)
not handled in switch warning
2021-01-26 19:39:36 +01:00
Autechre 082ccc167e Fix slang_process string to C char regressions (#11943) 2021-01-26 18:17:37 +01:00
barbudreadmon 7cb250f827 (GLCORE) fix slang shaders with rotation 2021-01-26 10:13:57 +01:00
barbudreadmon af6bb016cb (VULKAN) fix slang shaders with rotation 2021-01-26 10:09:45 +01:00
Jean-André Santoni 9a51de833d Build OSX Metal using Makefile (#11941) 2021-01-26 09:48:15 +01:00
jdgleaver b9691597d1 Add 'L2 + R2' menu toggle gamepad combo (#11935) 2021-01-24 16:33:13 +01:00
twinaphex dbbf557954 (Metal/WindowListener) Fix duplicate symbol errors by
moving implementation of WindowListener to cocoa_common.m
2021-01-24 03:56:17 +01:00
Autechre 7ea1d7d0da Revert "Mac buildfixes (#11933)" (#11934)
This reverts commit 18a6880900.
2021-01-24 03:56:05 +01:00
Autechre 18a6880900 Mac buildfixes (#11933)
* (Metal/WindowListener) Fix duplicate symbol errors by
moving implementation of WindowListener to cocoa_common.m

* (Apple) Cleanup some conditionals

* (Cocoa) Cut down on OSX ifdefs in Cocoa-specific code
2021-01-24 03:53:10 +01:00
AKuHAK 3c0633839f (PS2) added Multitap support (up to 8 players) (#11928)
* (PS2) added Multitap support (up to 8 players)

* (PS2) revert some identation changes

* (PS2) fix for non-analog controllers
* fix for not recognized digital and other non-standart controllers
* fixed ps2_joypad_destroy
2021-01-24 00:04:04 +01:00
Braden Farmer 6167f8c980 Android: Clean up old symlinks before creating new ones (#11931) 2021-01-23 19:49:32 +01:00
jdgleaver 0068dfd963 Fix 'Power Management' menu (#11930) 2021-01-23 17:08:46 +01:00
Autechre a49b02c44b (Mac) Makefile changes for supporting Metal build (#11929)
* (QB) Add rule for Metal - define HAVE_COCOA_METAL for now
when building for Metal, and HAVE_COCOA for non-Metal build

* Make necessary changes to Makefile.common and qb/config.libs.sh:
- Disable OpenGL for now for Metal build
- Take Metal conditional out of OpenGL block in Makefile.common

* (Metal) Header fixes for compiling without Xcode/Griffin

* (Mac) Some buildfixes for non-Xcode building

* (cocoa_common.h) Restructure to no longer use -DOSX

* (Apple) More buildfixes

* (Apple) Cleanups
2021-01-22 22:20:38 +01:00
Autechre a213c2dcdf Merge pull request #11927 from Jamiras/sse2_msc_find_change
fix rewind crash on MSVC build when using SSE2
2021-01-22 18:43:30 +01:00
Jamiras 98ea2b6a47 improve granularity of custom compat_ctz 2021-01-21 23:29:58 -07:00
Jamiras 78ab9853a7 fix SSE2 implementation of find_change 2021-01-21 22:26:45 -07:00
Ryunam 4b0502b896 Enable configuration of directory for Favorites, History, Images, Music and Video playlists 2021-01-21 21:28:10 +01:00
Keith Bowes 125154e831 Get the SDL2 video driver to work in Wayland/KMS 2021-01-21 09:42:06 -05:00
jdgleaver 2520337ddc (.gitlab-ci.yml) Set expiry time to 10 minutes for all artefacts 2021-01-21 11:53:30 +01:00
Autechre 90c438d370 (retroarch-apple-packaging) Remove dependence on gsed 2021-01-21 09:22:44 +01:00
Autechre 746101010f (Apple/Clang/ARC) ARC (Automatic Reference Counting) only available (#11920)
since Clang. PowerPC Mac is stuck with GCC and predates the use of ARC,
__has_feature() also is a Clang extension, so wrap around this with a
conditional so that GCC PowerPC on Mac can still work
2021-01-21 08:53:16 +01:00
Autechre 7d56bf2b0a (Apple) Packaging update - will now package it into DMG as well (#11919) 2021-01-21 08:36:10 +01:00
Autechre 92774aa431 (Apple) Improve packaging script - icon should now be correct (#11918) 2021-01-21 07:16:13 +01:00
Autechre 21a1275966 (QB) MacOS X 10.5's toolchain does not support extra languages, (#11917)
so disable HAVE_LANGEXTRA. We can later make this more generic
by checking for specific GCC versions as a cutoff point for
HAVE_LANGEXTRA support, but this will do for now
2021-01-21 06:50:35 +01:00
Jamiras 015576b2ba improve error handling for achievement unlocks (#11916) 2021-01-21 04:07:48 +01:00
Autechre cff0a4e202 MSVC2003 buildfix - (#11915)
* MIIM_STRING and MIIM_FTYPE only available if WINVER is higher than
or equal to 0x0500
2021-01-21 03:07:46 +01:00
Autechre 39e84fd5b2 Refactor Win32 menubar code - (#11914)
* Get rid of camelCase notation
* Turn functions into static functions if not used outside
* Rewrite while (true) as for (;;)
* Some general cleanups
2021-01-21 02:59:30 +01:00
Autechre 47784c66f0 MSVC Buildfix - (#11913)
* Declare variables at the top of a function in C code
2021-01-21 02:59:14 +01:00
Autechre 630dbdd85c Update AndroidManifest.xml 2021-01-21 01:16:00 +01:00
Autechre 760c9a8482 (Mac) Remove Apple Core GL Context (#11912)
* Remove Apple CGL context - was never used and never tested
2021-01-21 00:33:12 +01:00
twinaphex a772eb550d file_list_get_size - list can be NULL, in which case return 0 2021-01-21 00:24:32 +01:00
Autechre 1344ae2ddd Merge pull request #11910 from jdgleaver/x11-keyboard-focus-fix
(X11) Enable keyboard input when mouse cursor is not inside the RetroArch window but window still has focus
2021-01-20 15:37:47 +01:00
jdgleaver e047aaaf39 (.gitlab-ci.yml) Set expiry time to 10 seconds for all artefacts 2021-01-20 15:10:47 +01:00
jdgleaver ce47fe7e28 (X11) Enable keyboard input when mouse cursor is not inside the RetroArch window but window still has focus 2021-01-20 10:24:07 +00:00
twinaphex fdfc4dda08 (OpenDingux) Don't build in code that we don't need for Dingux 2021-01-20 09:56:40 +01:00
Twinaphex 83a5859b18 Buildfix 2021-01-20 09:41:16 +01:00
twinaphex fe810371c3 Add retroarch-apple-packaging.sh 2021-01-20 09:36:01 +01:00
twinaphex cf01c66d6e Don't include these when HAVE_CHEEVOS is not defined 2021-01-20 09:07:16 +01:00
twinaphex bfd0611815 Avoid small wrapper functions like file_list_get_userdata_at_offset
in hot functions
2021-01-20 09:04:08 +01:00
twinaphex c7e8d2adf5 Silence warnings for some console platforms 2021-01-20 08:53:45 +01:00
twinaphex 7867c4b70e Get rid of file_list_get_size calls - one line wrapper function 2021-01-20 08:31:05 +01:00
Autechre 8359cfc29c Merge pull request #11907 from pcjco/wii-usb1
Issue when argv[0] is usb1:/... on Wii
2021-01-20 04:36:59 +01:00
pcjco 3e4aca8666 Issue when argv[0] is usb1:/... on Wii
When RA dol file launched from Wiiflow, getcwd return nothing, dirs[DEFAULT_DIR_CORE] is empty and RA "info", "autoconfig",.... dirs are on root /
This seems to be because argv[0] is starting with "usb1://...dol" (maybe incompatible libfat)
This patch allow to default dirs[DEFAULT_DIR_CORE]  on Wii to the dirname of the DOL in such cases.
2021-01-19 22:47:17 +01:00
Autechre ded9a428de Merge pull request #11906 from fjtrujy/FixLegacyLogs_PS2_PSP
[PS2] [PSP] Remove not needed logger configuration
2021-01-19 14:46:41 +01:00
Francisco Javier Trujillo Mata 3f91423a3a Remove legacy way of using logs for PS2 and PSP platform 2021-01-19 14:31:45 +01:00
twinaphex 9a4472266f Try to avoid hot function file_list_get_userdata_at_offset 2021-01-19 07:52:13 +01:00
twinaphex 55a766b0bc (CocoaGL) Add forward declaration 2021-01-19 07:28:42 +01:00
twinaphex 6011ebd311 (cocoa_vk_ctx.m) Get rid of one static global 2021-01-19 06:44:09 +01:00
twinaphex eea8e12343 (CocoaGL) Get rid of one static global 2021-01-19 06:37:01 +01:00
Autechre e044b0eeec Merge pull request #11905 from farmerbb/master
Android (Play Store): ensure that `cores` directory exists before attempting to create symlinks
2021-01-19 05:25:00 +01:00
Braden Farmer 61b817ca68 Android (Play Store): ensure that cores directory exists before attempting to create symlinks 2021-01-18 21:20:08 -07:00
Autechre 18170486cd Update cocoa_common.m 2021-01-19 04:51:38 +01:00
Twinaphex a83c328631 (Metal) Fix some build problems 2021-01-19 04:38:07 +01:00
twinaphex 7b3f042fc6 (CocoaGL) Get rid of IOS Interface extensions 2021-01-18 21:49:34 +01:00
twinaphex 6a091cf20a (cocoa_vk_cx) Cleanup 2021-01-18 21:43:33 +01:00
Twinaphex 69884a816f (Cocoa GL) OSX - get rid of bounds/scale extension of NSScreen 2021-01-18 21:38:02 +01:00
twinaphex 71e712f050 Define GL_SILENCE_DEPRECATION for OSX 2021-01-18 21:27:26 +01:00
Twinaphex 97d954912d (Apple) Buildfix 2021-01-18 21:21:17 +01:00
twinaphex 0294b0c626 (Cocoa) Don't use NSEventModifierFlags type anymore - just
use NSUInteger instead
2021-01-18 20:41:30 +01:00
twinaphex 234ebd715b (Makefile.common) Define -DOSX for OSX 2021-01-18 20:36:51 +01:00
twinaphex f4a20870c7 video_shader_write_referenced_preset - logic flaw -
loaded_shader_preset_path is a character array - conditional boolean
check would always evaluate to true - check if string is empty
instead
2021-01-18 20:30:21 +01:00
Autechre 2aac83faf0 Merge pull request #11899 from Jamiras/cheevos_runtime_iterate_modify
(cheevos) traverse list in reverse order in case items are removed by callback
2021-01-18 20:07:52 +01:00
twinaphex 83210eafd8 Split up cocoa_gl_ctx.m into two parts - cocoa_gl_ctx.m
and cocoa_vk_ctx.m
2021-01-18 20:02:31 +01:00
twinaphex 456cc022f3 (Metal) Buildfix 2021-01-18 19:36:33 +01:00
twinaphex 8d31c410a0 move cocoa_get_metrics to cocoa_common.m 2021-01-18 19:33:06 +01:00
twinaphex a80a64f261 Add cocoa_update_title to cocoa_common.m 2021-01-18 19:28:36 +01:00
Twinaphex 3d17cf1e38 Move nsview_set/get/cocoaview_get to cocoa_common.m 2021-01-18 19:17:12 +01:00
Twinaphex eea07ea367 (COcoa GL/Cocoa Common) Refactor code for eventual splitting up
of cocoa_gl_ctx.m into two files
2021-01-18 15:41:30 +01:00
Twinaphex 4036cc42e0 fast_forward_skips and is_syncing should only be used for non-OSX 2021-01-18 14:51:03 +01:00
jdgleaver eaf7451966 (.gitlab-ci.yml) Reduce all artefact expiration times to 1 day 2021-01-18 12:11:01 +01:00
Jamiras ca2c57a5a1 traverse list in reverse order in case items are removed by callback 2021-01-17 22:33:48 -07:00
twinaphex 3200d138b0 (Cocoa GL) Move variables 2021-01-18 06:02:32 +01:00
twinaphex dfa3d216f8 (Cocoa GL) Refactors/cleanups 2021-01-18 04:34:51 +01:00
twinaphex f6d35ee462 (iOS) Cleanups 2021-01-18 03:03:35 +01:00
twinaphex 82c751ead0 Remove unused glcontext_get_ptr 2021-01-18 02:05:29 +01:00
twinaphex 7bdbcfa2cc (CocoaGL) Cleanups 2021-01-18 01:57:03 +01:00
twinaphex 39a98d5dfc (Cocoa GL) Cleanups 2021-01-18 01:52:05 +01:00
Autechre d3eb9b61d5 Merge pull request #11898 from farmerbb/master
Android: remove module lists + bump version code
2021-01-18 01:04:15 +01:00
twinaphex 2670613f6c Don't use nativeScale/scale for OSX 2021-01-18 00:50:07 +01:00
Twinaphex 5a9598c238 get_backing_scale_factor - fix build 2021-01-18 00:30:58 +01:00
twinaphex 4117a4cbda Rewrite get_backing_scale_factor - stop depending on runtime selector
invocations
2021-01-18 00:25:36 +01:00
twinaphex 5c0aafe6e2 Simplify applicationDidFinishLaunching code for OSX 10.7 and up 2021-01-18 00:08:21 +01:00
Braden Farmer 92fa267f4e Android: remove module lists + bump version code 2021-01-17 15:43:19 -07:00
Autechre c506871208 Merge pull request #11897 from MrHuu/patch-8
(3DS) On error, only init gfx on salamander build
2021-01-17 16:46:42 +01:00
MrHuu 2633b3e310 (3DS) On error, only init gfx on salamander build
This prevents graphical issues if the gfx is already initialized.
Which should always be the case if called from a running core.
2021-01-17 15:44:35 +01:00
twinaphex 6ac08ec123 Make customized version of get_video_size for OSX 10.7 and up to
avoid selector grabbing
2021-01-17 05:39:03 +01:00
twinaphex e42f2b552f (COcoa GL context) Small cleanups 2021-01-17 05:22:29 +01:00
twinaphex 1e9f6f175e (OSX) Fix PowerPC build 2021-01-17 05:02:07 +01:00
Twinaphex f6833cf595 Remove unused variables 2021-01-17 00:12:29 +01:00
twinaphex 93b1fbbcdc (Apple) Header cleanups 2021-01-17 00:06:33 +01:00
twinaphex a9cd33ac56 Revert "Experiment on Apple"
This reverts commit 8769866290.
2021-01-16 23:54:31 +01:00
twinaphex 8769866290 Experiment on Apple 2021-01-16 23:45:06 +01:00
Twinaphex 7177a8e7d9 Remove unused variable 2021-01-16 23:05:37 +01:00
twinaphex 4d5126f71a Improve cocoagl_gfx_ctx_get_native_scale 2021-01-16 23:03:25 +01:00
twinaphex 6d39160de1 CLeanups 2021-01-16 22:36:03 +01:00
twinaphex a7bb200a1c (UI Cocoa) Cleanups 2021-01-16 22:22:16 +01:00
twinaphex 809b96e221 (UI CocoaTouch) Cleanups 2021-01-16 22:15:17 +01:00
twinaphex 225b851eb6 Cleanups 2021-01-16 22:04:11 +01:00
Twinaphex 1d4ff9bedd Take out HAVE_MENU ifdef in cocoa_common.h 2021-01-16 21:47:14 +01:00
twinaphex 284634dd1e Silence more implicit conversion warnings 2021-01-16 21:28:54 +01:00
twinaphex 0e929784b5 Cleanups 2021-01-16 21:19:59 +01:00
twinaphex 6e2a1895f6 Simplify code 2021-01-16 21:10:49 +01:00
twinaphex 41a8661bdf Silence more implicit conversions 2021-01-16 21:03:57 +01:00
twinaphex f4dc486a77 Silence more implicit conversion warnings 2021-01-16 20:55:17 +01:00
twinaphex dff8fbf879 Silence some implicit conversion warnings 2021-01-16 20:47:07 +01:00
twinaphex 757ea32782 Go back to CocoaView pointer in prototype 2021-01-16 20:37:56 +01:00
twinaphex 2299e3b1ab Silence implicit conversion warnings 2021-01-16 20:33:35 +01:00
twinaphex 5119a67b41 Simplify code 2021-01-16 20:17:27 +01:00
twinaphex 991f67a758 gfx_animation - simplify code 2021-01-16 20:15:56 +01:00
twinaphex 0946d06e82 (gfx_animation) Simplify code 2021-01-16 20:13:06 +01:00
twinaphex 9118b391eb Update 2021-01-16 20:07:08 +01:00
twinaphex 875cb06a93 (iOS) Fix signature on apple_gamecontroller_joypad_init 2021-01-16 20:05:53 +01:00
twinaphex 1b071f16f5 Silence implicit conversion warnings 2021-01-16 20:03:04 +01:00
twinaphex 9f44a4fcd9 Cleanups 2021-01-16 17:30:36 +01:00
twinaphex 552f973833 Cleanups/remove unused variables 2021-01-16 17:17:16 +01:00
twinaphex bc48080ee5 Remove unused variable 2021-01-16 17:05:28 +01:00
twinaphex 4e74a6f8b1 Attempt to fix build for iOS 2021-01-16 17:02:25 +01:00
twinaphex 1ea46ea171 (Unix) Fix build 2021-01-16 16:37:52 +01:00
Autechre 40b3e4c00f Merge pull request #11892 from jdgleaver/x11-mouse-grab-fix
(X11) Fix mouse input when mouse is grabbed
2021-01-16 16:15:16 +01:00
twinaphex 4c51e31b9d (Platform) Cleanups + add missing function pointer bind for Darwin 2021-01-16 16:14:03 +01:00
jdgleaver b1ee5a2421 (X11) Fix mouse input when mouse is grabbed 2021-01-16 13:57:25 +00:00
Autechre 0bba2d45d3 Merge pull request #11890 from fjtrujy/FixQuitRA
Removing power off irx compilation
2021-01-15 23:07:00 +01:00
Francisco Javier Trujillo Mata 384b88696a Removing power off irx compilation 2021-01-15 23:04:03 +01:00
Autechre 39e7533ca9 Merge pull request #11889 from fjtrujy/FixQuitRA
[PS2] Fix Quitting from RA
2021-01-15 21:22:44 +01:00
Francisco Javier Trujillo Mata c138135684 Removed not used poweroff library 2021-01-15 21:03:54 +01:00
Autechre e3bf61f85f Merge pull request #11878 from webgeek1234/master
android: Build native code with ndk r22
2021-01-15 17:28:03 +01:00
Autechre 695c149e75 Merge pull request #11884 from fjtrujy/ps2/addAudioMixer
Add audio mixer for PS2 platform
2021-01-15 15:12:17 +01:00
Francisco Javier Trujillo Mata c7b6cd9f7b Add audio mixer for PS2 platform 2021-01-15 15:11:17 +01:00
Autechre 85af4d14d7 Merge pull request #11882 from fjtrujy/ps2FolderIssue
[PS2] Fixed Folder creation issues
2021-01-15 14:35:04 +01:00
Francisco Javier Trujillo Mata 0dbd0fd492 Disable warning and solve an issue with the cwd 2021-01-15 14:19:27 +01:00
Autechre 6726538971 Merge pull request #11876 from myfreeweb/patch-1
Remove incorrect ifdef for Wayland on non-Linux - fix #10056
2021-01-14 19:01:01 +01:00
Autechre 6427f838a5 Merge pull request #11879 from fjtrujy/ps2/fixSalamanderCompilation
[PS2] Fix salamander compilation
2021-01-14 18:44:56 +01:00
Francisco Javier Trujillo Mata 0b484cb1d0 Fix salamander compilation 2021-01-14 18:23:47 +01:00
Aaron Kling 37a0c30dde android: Build native code with ndk r22 2021-01-14 10:17:38 -06:00
myfreeweb 65b1ae8a41 Remove incorrect ifdef for Wayland on non-Linux - fix #10056 2021-01-14 16:36:14 +03:00
Francisco José García García b483facc43 [VITA] Add Piglet to CI 2021-01-14 09:17:47 +01:00
Autechre 67ab9c4beb Merge pull request #11871 from fjtrujy/irxImprovements
Irx improvements
2021-01-13 22:36:38 +01:00
Francisco Javier Trujillo Mata 409f0ab022 Reduce time checking for unit 2021-01-13 19:54:04 +01:00
Francisco Javier Trujillo Mata 0a81313292 Disable CDFS for debug compilation 2021-01-13 19:54:04 +01:00
Francisco Javier Trujillo Mata 330f5d6b4a Remove some IRX modules not used, and use original name instead of symbolic links 2021-01-13 19:54:03 +01:00
Autechre cb087656dd Merge pull request #11870 from jdgleaver/rgui-rus
(RGUI) Add Russian language support
2021-01-13 16:36:24 +01:00
Autechre 61922dfde7 Merge pull request #11868 from jdgleaver/auto-game-focus
Add option to automatically enable 'game focus' mode when running/resuming content
2021-01-13 16:32:48 +01:00
Autechre 5d1173dc7e Merge pull request #11869 from farmerbb/master
Android: Use `mamearcade` core instead of `mame` in Play Store version
2021-01-13 16:32:08 +01:00
Braden Farmer bcd3c830ba Android: Use mamearcade core instead of mame in Play Store version 2021-01-13 08:06:50 -07:00
jdgleaver 1c591be8f1 Add option to automatically enable 'game focus' mode when running/resuming content 2021-01-13 15:00:36 +00:00
jdgleaver 3a6558c2f1 (RGUI) Add Russian language support 2021-01-13 10:00:51 +00:00
Autechre 036e6fb221 Merge pull request #11865 from schellingb/fix_winmm_midi_break
winmm_midi: Recover from MIDI messages not handled by the device
2021-01-12 21:04:14 +01:00
Autechre 666324df1d Merge pull request #11866 from farmerbb/master
Android: add Gradle task to output Play Store version code
2021-01-12 21:03:53 +01:00
Braden Farmer 7aac0582e3 Android: add Gradle task to output Play Store version code 2021-01-12 10:12:07 -07:00
Bernhard Schelling 4fcace9aed Recover from messages not handled by the device
When an underlying MIDI device does not understand/support a MIDI message (very common with sysex messages) it returns an error code.
With this fix MIDI output can continue gracefully even after an emulated game sends an unsupported message.
2021-01-13 02:07:21 +09:00
Autechre 0ce218e20a Merge pull request #11862 from Jamiras/cheevos_emu_cheat_hardcore_toggle
(cheevos) prevent hardcore toggle when emu-handled cheats are active
2021-01-12 16:31:15 +01:00
Autechre ba01aa5334 Merge pull request #11864 from jdgleaver/gitlab-linux-no-skel-config
(.gitlab-ci.yml) linux-x64/linux-i686: Remove redundant skeleton retroarch.cfg file from AppImage builds
2021-01-12 12:40:55 +01:00
jdgleaver 2fcb525a4c (.gitlab-ci.yml) linux-x64/linux-i686: Remove redundant skeleton retroarch.cfg file from AppImage builds 2021-01-12 11:24:23 +00:00
Jamiras 75fad11c27 prevent hardcore toggle when emu-handled cheats are active 2021-01-11 20:38:43 -07:00
Autechre 41981f62e1 Merge pull request #11857 from Ryunam/screenshot-notification-cleanup
Minor cleanup (screenshot notifications)
2021-01-09 21:31:23 +01:00
Ryunam d49f266424 Minor cleanup of screenshot notification options 2021-01-09 17:14:38 +01:00
Autechre 7450f049e7 Update index.html 2021-01-09 17:05:35 +01:00
Autechre e7c341331b Merge pull request #11855 from guoyunhe/crowdin
Fetch translations from Crowdin
2021-01-09 14:41:53 +01:00
Guo Yunhe 8ae3b50c94 Fetch translations from Crowdin 2021-01-09 12:04:24 +08:00
twinaphex 07db1bbfde Cut down on code duplication 2021-01-08 23:20:34 +01:00
Autechre d1d0212684 Merge pull request #11852 from Ryunam/refreshrate-notification
Add option to show/hide Refresh Rate notification
2021-01-08 18:09:49 +01:00
Ryunam c341aabdb4 Add option to show/hide Refresh Rate notification 2021-01-08 17:32:33 +01:00
Autechre 36b0ffd5e5 Merge pull request #11851 from jdgleaver/emscripten-memory
(Emscripten) Makefile.emscripten: Allow linker 'TOTAL_MEMORY' value to be set via command line
2021-01-08 16:01:41 +01:00
jdgleaver ddef98fe11 (Emscripten) Makefile.emscripten: Allow linker 'TOTAL_MEMORY' value to be set via command line 2021-01-08 14:52:52 +00:00
Autechre 0e6660a60b Merge pull request #11850 from jdgleaver/gitlab-linux-i686-qt
(.gitlab-ci.yml) linux-i686: Enable both Qt and non-Qt builds
2021-01-08 13:47:08 +01:00
jdgleaver cd1c896a18 (.gitlab-ci.yml) linux-i686: Enable both Qt and non-Qt builds 2021-01-08 12:32:14 +00:00
Autechre 7b2e2b5ffa Merge pull request #11849 from jdgleaver/qt-plugin-fix
Fix Qt plugin path detection when using Qt < 5.6.0
2021-01-08 12:11:54 +01:00
jdgleaver 1d33e0ee46 Fix Qt plugin path detection when using Qt < 5.6.0 2021-01-08 10:56:20 +00:00
Autechre 3530fe9c3f Merge pull request #11847 from gblues/gblues/wiiu-slow-startup
Remove the path_is_valid() call when loading textures
2021-01-08 10:12:53 +01:00
Nathan Strong 0e0fbb53f9 Remove the path_is_valid() call when loading textures
== DETAILS
The `path_is_valid()` call ends up invoking `stat()`, which is unpredictable.
It's practically free when implemented by an operating system (Linux, Windows),
but on embedded systems it can be problematic.

In the case of the Wii U, the stat() call actually ends up taking longer than
the file I/O. And the texture loading code already handles a "file not found"
case, so the stat() call ends up just being a waste of time.

Removing this reduces the texture load time from ~210-250ms down to 60-65ms
on average.
2021-01-07 21:06:07 -08:00
Braden Farmer 43b1bbed46 Android: fix crash on latest nightlies (non-Play Store) 2021-01-07 18:58:07 +01:00
Autechre 130617a327 Merge pull request #11845 from jdgleaver/gitlab-linux-x64-qt
(.gitlab-ci.yml) linux-x64: Enable both Qt and non-Qt builds
2021-01-07 18:11:08 +01:00
jdgleaver 72f17b3d30 (.gitlab-ci.yml) linux-x64: Enable both Qt and non-Qt builds 2021-01-07 17:02:11 +00:00
Autechre 6acbaf0bf2 Merge pull request #11844 from jdgleaver/gitlab-linux-i686
(.gitlab-ci.yml) Add linux-i686 target
2021-01-07 15:48:11 +01:00
jdgleaver fbdfec28b0 (.gitlab-ci.yml) Add linux-i686 target 2021-01-07 14:30:29 +00:00
Autechre f40644c901 Merge pull request #11782 from crystalct/master
Avoid crashes when a not implemented Pipeline is chosen in old platfo…
2021-01-07 09:37:57 +01:00
Autechre d935b392d9 Merge pull request #11839 from IAmBoring/boring1
Core run init failure forces return to menu
2021-01-07 09:21:33 +01:00
Autechre cada1f6ff0 Merge pull request #11840 from IAmBoring/boring2
Add Visual Studio 2019 version numbers
2021-01-07 09:20:56 +01:00
IAmBoring a11f1bd74f Add Visual Studio 2019 version numbers 2021-01-07 04:23:58 +00:00
IAmBoring 510bed6655 Core run init failure forces return to menu
Gracefully loads dummy core instead of running lots of unexpected bad behavior.
2021-01-07 03:38:27 +00:00
Autechre 11809bd365 Merge pull request #11837 from libretro/vita_gles
[VITA] Add support for Vita GLES2 (Piglet)
2021-01-06 21:38:44 +01:00
Autechre a2ac9fd05d Merge pull request #11836 from driver1998/uwp-vfs
[UWP] VFS: Use Win32 file APIs when possible, improves I/O perfomance
2021-01-06 21:28:01 +01:00
OsirizX b96a0c495a [VITA] Add support for Vita GLES2 (PIGLET) 2021-01-06 19:14:30 +01:00
Francisco José García García c28665e1bd [VITA] Add some types to .gitignore 2021-01-06 19:11:12 +01:00
GH Cao 19535330d2 [UWP] VFS: Use Win32 file APIs when possible 2021-01-07 00:14:21 +08:00
Autechre bf81df5b3b Merge pull request #11835 from jdgleaver/gitlab-emscripten
(.gitlab-ci.yml) Add Emscripten target
2021-01-06 15:50:24 +01:00
jdgleaver be1c7b8e4c (.gitlab-ci.yml) Add Emscripten target 2021-01-06 14:42:06 +00:00
Autechre bd405eb7c3 Merge pull request #11830 from IAmBoring/boring1
XAudio2 threaded creation
2021-01-06 14:39:24 +01:00
Autechre e1b2cba7ef Merge pull request #11831 from IAmBoring/boring2
Threaded audio - prevent callbacks when paused
2021-01-06 14:39:14 +01:00
Autechre b5df2d6bb1 Merge pull request #11834 from pcjco/pcjco-dist-cores-fix
Update dist-cores.sh
2021-01-06 00:49:27 +01:00
Autechre 6aeaf7cf16 Merge pull request #11833 from pcjco/pcjco-wii-fix
Some null pointer check
2021-01-06 00:35:23 +01:00
pcjco 70b3c01d91 Update dist-cores.sh 2021-01-06 00:18:46 +01:00
pcjco a33bcfead7 Some null pointer check
fix Wii version crash on load.
2021-01-06 00:03:31 +01:00
Autechre a9f98c1dcc Merge pull request #11832 from jdgleaver/gitlab-linux64-disable-qt
(.gitlab-ci.yml) linux-x64 target: Disable Qt support, due to dependency hell
2021-01-05 17:51:11 +01:00
jdgleaver 9e577eba92 (.gitlab-ci.yml) linux-x64 target: Disable Qt support, due to dependency hell 2021-01-05 16:44:15 +00:00
IAmBoring 88a1379053 XAudio2 threaded creation
COM initialization
2021-01-05 16:10:11 +00:00
IAmBoring 5d2c4e6868 Threaded audio - prevent callbacks when paused 2021-01-05 16:07:35 +00:00
Autechre 2c3f6f0882 Merge pull request #11828 from jdgleaver/gitlab-linux64-xenial-artefacts
(.gitlab-ci.yml) Use xenial-gcc9 build container + add missing artefacts
2021-01-05 12:49:20 +01:00
jdgleaver b5feb2d48b (.gitlab-ci.yml) Use xenial-gcc9 build container + add missing artefacts 2021-01-05 11:19:05 +00:00
Autechre fe848cae54 Merge pull request #11826 from valadaa48/oga_gfx_ogs_support
oga_gfx: support for OGS
2021-01-05 10:32:13 +01:00
Autechre 5c69132a04 Merge pull request #11825 from MrHuu/ctr_fix_error_applet
(3DS) Update error applet
2021-01-05 10:31:54 +01:00
Autechre 3c620c998d Merge pull request #11827 from valadaa48/drm_go2_ctx_ogs_support
drm_go2: Dynamic resolution support
2021-01-05 10:31:37 +01:00
valadaa48 e21784f9c4 drm_go2: Dynamic resolution support
- Remove hardcoded values for width and height and query from drm
  context instead
2021-01-04 19:01:59 -05:00
valadaa48 659fb73867 oga_gfx: support for OGS 2021-01-04 18:58:58 -05:00
MrHuu e6c035de7d (3DS) Update error applet 2021-01-04 20:15:28 +01:00
Autechre 55e730915c Merge pull request #11823 from farmerbb/patch-1
Android: use project directory path when parsing manifest
2021-01-04 18:32:00 +01:00
Braden Farmer 67c1bf33ba Android: use project directory path when parsing manifest 2021-01-04 10:23:54 -07:00
Autechre a8390477b8 Merge pull request #11820 from farmerbb/master
Android: switch non-Play Store variants back to targetSdkVersion 28
2021-01-04 07:45:59 +01:00
Autechre b5d03d9c20 Merge pull request #11819 from MrHuu/ctr_buildbot_url_fix
(3DS) Rework buildbot url
2021-01-04 04:15:42 +01:00
Braden Farmer 614f803638 Android: switch non-Play Store variants back to targetSdkVersion 28 2021-01-03 19:47:05 -07:00
MrHuu c4db0fa439 (3DS) Rework buildbot url 2021-01-04 03:31:24 +01:00
Autechre 44a600a00c Merge pull request #11815 from libretro/vita_hw
[VITA] Fixes for GL HW renderer
2021-01-04 00:03:02 +01:00
Francisco José García García 87ebd720ed [VITA] Fix bubble name 2021-01-03 23:41:14 +01:00
Autechre a967d22bd3 Merge pull request #11816 from farmerbb/master
Play Store: only generate symlinks for cores if on the available cores list
2021-01-03 22:42:00 +01:00
Braden Farmer 52e3939045 Android (Play Store): only generate symlinks for cores if on the available cores list 2021-01-03 09:52:53 -07:00
Francisco José García García 899ec9f9f4 [VITA] Disable depth test if needed 2021-01-03 17:31:18 +01:00
Francisco José García García d83dcba0dd [VITA] Fixes for GL HW renderer 2021-01-03 17:20:21 +01:00
Autechre 5d2b27499c Merge pull request #11814 from farmerbb/master
Play Store: implement biweekly auto-deploys
2021-01-03 07:57:57 +01:00
Braden Farmer d3ac2658a8 Play Store: implement biweekly auto-deploys 2021-01-02 23:49:51 -07:00
Autechre ac5c45f333 Merge pull request #11813 from libretro/revert-11811-xaudio
Revert "Windows: Fix multiple XAudio instances"
2021-01-03 06:48:33 +01:00
Autechre 9ef98928d2 Revert "Windows: Fix multiple XAudio instances" 2021-01-03 06:48:24 +01:00
Autechre 3c9fe5ebf5 Merge pull request #11811 from SimpleTease1/xaudio
Windows: Fix multiple XAudio instances
2021-01-03 06:02:01 +01:00
Autechre 5364d95a94 Merge pull request #11812 from SimpleTease1/menu
(Windows) MSVC Buildfix
2021-01-03 06:01:27 +01:00
SimpleTease 42d8e93171 (Windows) MSVC Buildfix 2021-01-03 04:57:05 +00:00
SimpleTease ef51cf4ee1 Windows: Fix multiple XAudio instances 2021-01-03 04:36:03 +00:00
Autechre 4c0ee0dcfc Merge pull request #11808 from schellingb/fix_winmm_midi_hang
Fix winmm midi driver hanging on content closing
2021-01-02 23:52:10 +01:00
Bernhard Schelling 8a1ca893f0 Fix winmm midi driver hanging on content closing
midiStreamStop can freeze the process when there has been a NOTE-ON message without a corresponding NOTE-OFF.
Just removing the call to midiStreamStop and letting the midiStreamClose below it do the entire stopping and closing fixes that.
2021-01-03 03:22:31 +09:00
Autechre bfaa6e16dd Merge pull request #11803 from sonninnos/led-win32-keyboard
LED win32 keyboard driver cleanup
2021-01-02 17:07:16 +01:00
Autechre 42f2e7e85e Merge pull request #11805 from MrHuu/ctr_upd_makefile_cores
(3DS) Add Snes9x ID / Assets
2021-01-02 17:06:05 +01:00
Autechre 598d27dcfe Merge pull request #11807 from schellingb/rhmap2
Add 32-bit key hash map rhmap
2021-01-02 17:05:34 +01:00
Autechre 780bfa7489 Merge pull request #11806 from MrHuu/ctr_server_url_default
(3DS) Server url reset default
2021-01-02 16:54:29 +01:00
Bernhard Schelling 9bea4831d7 Add 32-bit key hash map rhmap
Based on ex_hashmap32 in menu_explore.c, modify that to use the new rhmap
2021-01-03 00:52:25 +09:00
MrHuu 9e7facd011 (3DS) Add Snes9x ID / Assets 2021-01-02 16:04:33 +01:00
MrHuu fa8c7b4d3e (3DS) Server url reset default 2021-01-02 15:31:18 +01:00
sonninnos 054bf115ac LED win32 keyboard driver cleanup 2021-01-02 05:46:04 +02:00
Autechre 74d97cc1ca Merge pull request #11802 from farmerbb/farmerbb/fix_android_tv
Play Store: download cores at app install time on Android TV devices
2021-01-02 01:01:16 +01:00
Braden Farmer 4fbd787ede Play Store: install cores at download time on Android TV devices
Fixes issues with downloading cores on Android TV. On-demand module downloads are apparently unsupported on Android TV, so we need to fetch modules at install-time instead.
2021-01-01 16:47:17 -07:00
Autechre 74fcf85621 Merge pull request #11800 from tunip3/master
Add rescap for run full trust (needed to make broadFileSystemAccess work on Xbox)
2021-01-02 00:43:12 +01:00
Autechre 8747c01073 Merge pull request #11801 from MrHuu/ctr_cia_version
(3DS) Generate random cia version
2021-01-02 00:39:21 +01:00
MrHuu b37ccc7f6c (3DS) Generate random cia version 2021-01-02 00:26:42 +01:00
tunip3 8308bdb24b Add rescap for run full trust (needed to make broadFileSystemAccess work on Xbox) 2021-01-01 23:24:54 +00:00
Autechre a5f09f901d Update .gitlab-ci.yml 2021-01-01 19:42:05 +01:00
Autechre 1907563039 Update .gitlab-ci.yml 2021-01-01 18:57:24 +01:00
Autechre 6932a49135 Merge pull request #11789 from dmrlawson/fix-udev-rumble
Fix udev rumble
2021-01-01 18:32:23 +01:00
Autechre 2eb17050df Merge pull request #11799 from farmerbb/master
Android: CI updates + RetroArch Plus
2021-01-01 18:03:32 +01:00
Braden Farmer 101e623fdc Android: CI updates + RetroArch Plus 2021-01-01 08:30:13 -07:00
Autechre 18eb12215a Merge pull request #11796 from webgeek1234/master
Remove opengl32.dll from Windows Packaging
2021-01-01 04:27:21 +01:00
Aaron Kling 0e2337dbb2 gitlab-ci: windows: Do not package opengl32.dll
This utilizes mesa softpipe and prevents use of the target systems
hardware accelerated opengl.
2020-12-31 21:23:39 -06:00
Autechre 39b584e64d Merge pull request #11795 from farmerbb/patch-1
Android (Play Store): swap DOSBox-SVN core for DOSBox Pure
2021-01-01 00:26:16 +01:00
Braden Farmer 0ca62cfd98 Android (Play Store): swap DOSBox-SVN core for DOSBox Pure 2020-12-31 16:24:57 -07:00
Autechre 0b8b569075 Merge pull request #11794 from jdgleaver/gitlab-mxe-win-dll
(.gitlab-ci.yml) windows-x64: add redistributable dll files to artefacts
2021-01-01 00:24:35 +01:00
jdgleaver 47d95a61e6 (.gitlab-ci.yml) windows-x64: add redistributable dll files to artefacts 2020-12-31 23:09:12 +00:00
Autechre a0c27d0735 Update AndroidManifest.xml 2020-12-31 23:01:08 +01:00
Autechre 60308d4b37 Update AndroidManifest.xml 2020-12-31 23:00:54 +01:00
Autechre 293e085e53 Merge pull request #11793 from HyperspaceMadness/Shaders_Fix_False_Duplicate_Parameter_Bug
Shaders fix for duplicate parameters loading bug
2020-12-31 21:57:51 +01:00
Remi McGill 7a565d739d Shaders fix for duplicate parameters loading bug 2020-12-31 15:50:55 -05:00
Autechre 5f10db2c61 Update .gitlab-ci.yml 2020-12-31 16:41:05 +01:00
Autechre 9797ba9f27 Merge pull request #11743 from HyperspaceMadness/Shaders_Fix_Simple_Preset_Relative_Texture_Paths
Shaders Load Refactor and Fix Referenced Texture Loading
2020-12-31 16:13:20 +01:00
Autechre 5d42320aa7 Merge pull request #11785 from jdgleaver/gitlab-win-mxe
(.gitlab-ci.yml) Use MXE build container for windows-x64 builds (WIP)
2020-12-31 15:40:11 +01:00
Autechre 33cbc54ec4 Merge pull request #11788 from MrHuu/ctr_core_updates
(3DS) Enable core updater
2020-12-31 15:37:27 +01:00
jdgleaver 399b29ad3f (.gitlab-ci.yml) Use MXE build container for windows-x64 builds 2020-12-31 09:42:41 +00:00
David Lawson 0bdf574cfd udev_joypad: make rumble work
Rumble was not working for me. I learnt a bit about how evdev works and it seems like you need to set a replay which defines how long the effect is (previously we set it to 0). This means there's a maximum length to the rumble effect which feels wrong.

When we do `play.value = !!strength;` we're setting the number of times for the effect to repeat, which works fine because the effect stops when we set it to 0.

It doesn't feel quite right to me playing e.g. Goldeneye but I've not played on real hardware for a while.

I'm hoping someone is more familiar with evdev and can suggest a better approach.
2020-12-31 07:55:02 +00:00
David Lawson b0de18ea12 udev_joypad: some cleanup 2020-12-30 22:07:26 +00:00
MrHuu 2229657b12 (3DS) Enable core updater 2020-12-30 19:11:48 +01:00
Remi McGill 8d1b949c9c Shaders Fix Config Memory Leak 2020-12-30 11:02:59 -05:00
Autechre c01b2dea17 Merge pull request #11784 from Tatsuya79/patch-4
qt: attempt to fix memory leak in shader panel
2020-12-30 01:58:25 +01:00
Tatsuya79 2e52c9e284 qt: attempt to fix memory leak in shader panel 2020-12-30 01:11:17 +01:00
twinaphex c4dc28319f Remove obsolete headers 2020-12-30 00:22:31 +01:00
Autechre bd375468f3 Merge pull request #11780 from farmerbb/patch-2
Android: Sync versionCode with actual value in the Play Store
2020-12-29 18:26:51 +01:00
Autechre e16559f66f Merge pull request #11783 from MrHuu/ctr_enable_updater
(3DS) Enable online updater
2020-12-29 18:26:25 +01:00
MrHuu 25dd77a0f5 (3DS) Enable online updater
- set directory defaults
2020-12-29 17:44:59 +01:00
unknown ddcd4c6a1f Avoid crashes when a not implemented Pipeline is chosen in old platformse 2020-12-29 14:06:18 +01:00
Braden Farmer 46a1ed3a84 Android: Sync versionCode with actual value in the Play Store 2020-12-28 23:42:10 -07:00
Autechre ab7b4db9f2 Merge pull request #11779 from gblues/gblues/wiiu-container
change wiiu to use new wiiu build container
2020-12-29 07:02:30 +01:00
twinaphex 9c0f272591 Buildfix for PPC Mac 2020-12-29 06:50:52 +01:00
Nathan Strong a113507872 change wiiu to use new wiiu build container 2020-12-28 21:43:17 -08:00
twinaphex c9888eb442 (config_file.c) This can go 2020-12-29 06:32:43 +01:00
twinaphex c03e6c6c38 Put this behind Powerpc/powerpc64 ifdefs 2020-12-29 06:22:06 +01:00
Autechre b1d6cb8c24 Merge pull request #11778 from farmerbb/patch-4
Android: delete init_modules.sh
2020-12-29 05:56:26 +01:00
Braden Farmer e714d85860 Android: delete init_modules.sh
This will be moved to the packaging repo as it makes more sense to host it there.
2020-12-28 21:53:10 -07:00
Autechre 2fb16b5086 Merge pull request #11775 from Dwedit/localization_and_shortcut_keys_190
Win32 Menu Localization, Shortcut key display, support for Win32 Accelerators
2020-12-28 23:14:47 +01:00
Dwedit b0e150ba2d Fix Typo 2020-12-28 17:02:29 -05:00
Dwedit 217b6d2f9d Restored missing comments and fixes 2020-12-28 16:45:33 -05:00
Dwedit 34a31f8a1c ui_win32_application.c: Add support for accelerators to main win32 message loop
rarch.rc: Add accelerators for Open (Ctrl+O) and Fullscreen (Alt+Enter)
ui_win32_resource.h: Add accelerator resource ID definition
win32_common.c: Load accelerators, Localize Win32 menu items to current language, and display shortcut keys
2020-12-28 16:39:39 -05:00
Autechre b91204324d Merge pull request #11774 from Dwedit/msvc_project_file_change
MSVC2019 project: Set SDK version to 10.0 (latest version)
2020-12-28 22:32:04 +01:00
Dwedit 58561643e7 Set SDK version to 10.0 (uses latest version) 2020-12-28 16:28:37 -05:00
Autechre 1681872763 Merge pull request #11772 from fpscan/facebook-gaming
Facebook Gaming stream option
2020-12-28 21:04:09 +01:00
twinaphex f693d83723 (rhash to lrc_hash) Fix console builds 2020-12-28 20:24:55 +01:00
twinaphex 357b7d68f6 (libretro-common) Rename rhash to lrc_hash
(rcheevos) Rename rhash to rc_hash
2020-12-28 19:55:54 +01:00
twinaphex 71efd8ae6e Add powerpc64 defines 2020-12-28 15:45:53 +01:00
Ömercan Kömür 9fceafdcc0 fb-fix 2020-12-28 16:20:40 +03:00
Autechre 7b90da4af7 Update cocoa_common.m 2020-12-28 07:52:08 +01:00
twinaphex d5e96eed03 Cleanups 2020-12-28 07:33:42 +01:00
Autechre d8066e6a80 Merge pull request #11771 from farmerbb/patch-2
Add Android CI support
2020-12-28 07:25:06 +01:00
twinaphex c242f02528 Add HAVE_COMMAND and HAVE_NETWORK_CMD for Metal OSX 2020-12-28 07:00:14 +01:00
twinaphex 5a330c8cf2 (OSX) Add HAVE_COMMAND and HAVE_NETWORK_CMD 2020-12-28 06:59:40 +01:00
Braden Farmer 3ccd6739ba Add Android CI support 2020-12-27 22:43:07 -07:00
HyperspaceMadness f86dbfc5a2 Shaders Fix Referencing issue in QT 2020-12-27 20:32:43 -05:00
twinaphex 3b5bd7c63d Cleanup 2020-12-27 20:59:58 +01:00
Autechre 49e65869e2 Merge pull request #11768 from farmerbb/patch-1
Explicitly specify NDK version in build.gradle
2020-12-27 20:47:36 +01:00
Braden Farmer 47b92adf28 Explicitly specify NDK version in build.gradle
This prevents CI from redownloading the NDK on each build.
2020-12-27 12:35:43 -07:00
twinaphex 9ddc39af59 Buildfix 2020-12-27 20:01:41 +01:00
twinaphex b1af12efc9 Add more PSL1GHT ifdefs 2020-12-27 18:56:00 +01:00
Remi McGill 0c504906cb Shaders - Fixed a Reference Pathing Issue on QT 2020-12-27 12:47:47 -05:00
twinaphex 7145ec4793 Revert "Try to avoid objc_msgSend"
This reverts commit 0733fd41aa.
2020-12-27 18:05:45 +01:00
twinaphex 0733fd41aa Try to avoid objc_msgSend 2020-12-27 17:58:00 +01:00
twinaphex c3ba223fe2 Do away with objc_msgSend calls 2020-12-27 17:31:57 +01:00
twinaphex 4d4d839f05 Remove this from griffin.c 2020-12-27 16:49:35 +01:00
twinaphex f65ecf24f1 Go back to ObjC file 2020-12-27 16:49:05 +01:00
Autechre 3eb2ba9458 Merge pull request #11766 from jdgleaver/vita-gitlab-fix
(.gitlab-ci.yml) Vita: Add media directory to artefacts
2020-12-27 13:21:59 +01:00
jdgleaver 7a338feda9 (.gitlab-ci.yml) Vita: Add media directory to artefacts 2020-12-27 12:18:36 +00:00
Autechre ad1a56c463 Merge pull request #11765 from jdgleaver/ps2-gitlab-fix
(.gitlab-ci.yml) Fix: build-static-retroarch-ps2 'needs' build-static-retroarch-dummy-ps2
2020-12-27 12:59:34 +01:00
Francisco José García García b8b9eb2fc3 [VITA] Add media assets 2020-12-27 12:24:40 +01:00
jdgleaver 62960ca839 (.gitlab-ci.yml) Fix: build-static-retroarch-ps2 'needs' build-static-retroarch-dummy-ps2 2020-12-27 11:16:46 +00:00
HyperspaceMadness 0c526b6498 Shaders Load Refactor and Fix Referenced Texture Loading
Partial update to work with shaders directly

More Edits

More changes

more shader fixes

More Fixes Compiling, reference load still wrong

Added Feedback & things are working

Logging Fixes

Log Fix

More Fixes

Added Feedback Logging

Fixes for file pathing in Linux

Fix GLCore and Crash in QT Saving

Code Cleanup

Removed Unused Function filepath.c

Code Cleanup
2020-12-26 21:09:27 -05:00
Autechre 9edae2811d Merge pull request #11762 from Jamiras/cheevos_hc_pause
(cheevos) add confirmation submenu to hardcore toggle
2020-12-26 22:27:11 +01:00
Jamiras 5224e97481 add confirmation submenu to achievements hardcore toggle 2020-12-26 14:15:01 -07:00
Autechre d1c8c8e8b0 Merge pull request #11761 from fjtrujy/dummy-ps2
Add release to dummy PS2
2020-12-26 21:36:29 +01:00
Francisco Javier Trujillo Mata 34ebea8deb Add release to dummy PS2 2020-12-26 21:34:35 +01:00
Autechre 6dbb4cd1bf Merge pull request #11760 from fjtrujy/dummy-ps2
Add build-static-retroarch-dummy-ps2 to GitLab CI
2020-12-26 21:30:06 +01:00
Francisco Javier Trujillo Mata 3d33ec3ca6 Add build-static-retroarch-dummy-ps2 to GitLab CI 2020-12-26 21:21:51 +01:00
Autechre 257f1fc9f2 Merge pull request #11757 from sonninnos/keyboard-mapper
Keyboard device mapper rework
2020-12-26 07:17:46 +01:00
sonninnos 73feffc4d1 Keyboard device mapper rework 2020-12-26 04:44:54 +02:00
Autechre 9489a1d507 Merge pull request #11749 from libretro/revert-11747-runahead-instance-windows-fix
Revert "Runahead instance windows fix"
2020-12-24 16:41:35 +01:00
Autechre 1560641235 Revert "Runahead instance windows fix" 2020-12-24 16:41:23 +01:00
Autechre 6e8e87a785 Merge pull request #11748 from libretro/revert-11728-windows-long-paths
Revert "Windows long paths fix"
2020-12-24 16:40:26 +01:00
Autechre 9e6ee680b6 Revert "Windows long paths fix" 2020-12-24 16:40:15 +01:00
Autechre 2bd017bd76 Merge pull request #11747 from mpalomas/runahead-instance-windows-fix
Runahead instance windows fix
2020-12-24 12:48:20 +01:00
Autechre 8de8ebf201 Merge pull request #11745 from jdgleaver/wiiu-gitlab-packaging
(.gitlab-ci.yml) Add WiiU packaging artefacts
2020-12-24 12:02:35 +01:00
Autechre 4d0ab477d0 Merge pull request #11744 from webgeek1234/master
Android NDK R22 Build Fix
2020-12-24 12:02:19 +01:00
Michaël Palomas 28c9250ed2 Merge branch 'runahead-instance-windows-fix' of github.com:mpalomas/RetroArch into runahead-instance-windows-fix 2020-12-24 11:57:47 +01:00
Michaël Palomas 8a76fba78b Removed trailing backslash in Windows Temp path to fix runahead with second instance 2020-12-24 11:57:41 +01:00
Michaël Palomas f7f1a69ff9 Removed trailing backslash in Windows Temp path to fix runahead with second instance 2020-12-24 11:54:24 +01:00
jdgleaver 2069deea67 (.gitlab-ci.yml) Add WiiU packaging artefacts 2020-12-24 10:35:23 +00:00
Reid Kleckner e4b9311ac1 Remove glslang::pool_allocator::setAllocator
TPoolAllocator is not copy assignable, so this setter could never have
been used. After a recent change (878a24ee2), new versions of Clang
reject this code outright.
2020-12-23 20:51:55 -06:00
Autechre 83622eb494 Merge pull request #11740 from webgeek1234/master
android: update gradlew
2020-12-23 21:39:58 +01:00
Aaron Kling d2bf8ea999 android: update gradlew
Use gradle 6.7.1 and plugin 4.1.0.
2020-12-23 12:49:41 -06:00
Autechre 08b9c40728 Merge pull request #11739 from SimpleTease/ipv6
netplay: attempt ipv4 when ipv6 failure
2020-12-23 15:53:22 +01:00
Autechre b58793cf91 Merge pull request #11738 from SimpleTease/utf8
fopen_utf8: nullptr crashfix
2020-12-23 15:53:05 +01:00
Autechre 242ad14bd3 Merge pull request #11728 from mpalomas/windows-long-paths
Windows long paths fix
2020-12-23 15:52:41 +01:00
twinaphex 4072841c17 Silence warning 'unused function' 2020-12-23 12:56:04 +01:00
twinaphex e35354d60c Fix comma at end of enumerator list 2020-12-23 12:53:36 +01:00
Michaël Palomas 7e5174eb72 applied comments from PR: fixed comment style and moved variable declarations at the top 2020-12-23 09:44:31 +01:00
SimpleTease 1633652a63 netplay: attempt ipv4 when ipv6 failure 2020-12-23 04:17:05 +00:00
SimpleTease d2916dcd53 fopen_utf8: nullptr crashfix 2020-12-23 03:26:29 +00:00
Autechre 84d75783ea Merge pull request #11736 from SimpleTease/netplay_2
netplay: allocate crashfix
2020-12-23 03:29:02 +01:00
Autechre 4297fea46e Merge pull request #11737 from SimpleTease/netplay_1
Netplay: connection fixes
2020-12-23 03:26:40 +01:00
SimpleTease 033be6ca0a netplay: allocate crashfix
Handle no devices
2020-12-23 01:35:41 +00:00
SimpleTease badfbe0ccd Netplay: fixes 2020-12-23 01:13:53 +00:00
Autechre 50a6aca0bf Merge pull request #11735 from webgeek1234/master
android: retro_sleep build fix
2020-12-23 01:13:49 +01:00
Aaron Kling 57e3ab71d9 android: retro_sleep build fix 2020-12-22 17:29:26 -06:00
Autechre 5048693bca Merge pull request #11733 from gblues/gblues/wiiu-gitlab-ci
Add CI configuration for wiiu
2020-12-22 21:13:31 +01:00
Nathan Strong ac178886c0 Add CI configuration for wiiu
== DETAILS

Mirroring the Wii config, I've added a config for the Wii U.

== TESTING

I pushed to a branch on the Gitlab server and verified the CI runs
successfully.
2020-12-22 12:03:48 -08:00
Autechre 9895d4a9ed Merge pull request #11731 from alphanu1/patch-1
Fix undeclared compile error
2020-12-22 20:22:57 +01:00
alphanu1 9c39c7994b Fix undeclared compile error
Retroarch_data_h:2668:26: error: 'command_set_shader' undeclared here (not in function); do you mean 'command_get_ststus'?
    { "SET_SHADER",         command_set_shader,        "<shader path>" }
2020-12-22 17:42:22 +00:00
Michaël Palomas 5fb77796f0 forgot to include retro_miscellaneous.h for PATH_MAX_LENGTH 2020-12-22 15:47:30 +01:00
Autechre a1b4cced5b Merge pull request #11730 from jdgleaver/win-gitlab-packaging
(.gitlab-ci.yml) Add windows-x64 packaging artefacts
2020-12-22 15:02:02 +01:00
jdgleaver 5295ec22f7 (.gitlab-ci.yml) Add windows-x64 packaging artefacts 2020-12-22 13:54:46 +00:00
Autechre 64391f8e50 Merge pull request #11729 from jdgleaver/gitlab-packaging
(.gitlab-ci.yml) Add required packaging artefacts for libnx, psp, ctr, wii and ngc targets
2020-12-22 12:52:33 +01:00
jdgleaver 12ed3be07e (.gitlab-ci.yml) Add required packaging artefacts for libnx, psp, ctr, wii and ngc targets 2020-12-22 11:44:47 +00:00
Autechre 5fb24737d0 Merge pull request #11726 from SimpleTease/netplay_1
net_ifinfo: crashfix  (Windows)
2020-12-22 11:27:09 +01:00
Michaël Palomas adbfce14f2 Fixed issue with long paths > 260 chars on Windows 2020-12-22 10:27:45 +01:00
SimpleTease 03c5c240a6 net_ifinfo: crashfix (Windows)
get correct size from GetAdaptersAddresses
2020-12-22 02:48:57 +00:00
twinaphex 7dcfd7a038 retro_sleep buildfix 2020-12-21 21:11:59 +01:00
twinaphex 627b668da8 Another buildfix for retro_sleep 2020-12-21 21:06:54 +01:00
twinaphex 16bb56b7a2 Update 2020-12-21 21:04:31 +01:00
twinaphex 2ed59ea789 Turn this into macro 2020-12-21 20:25:18 +01:00
jdgleaver c3013906fb (OpenDingux) Add audio/video filters to .gitlab-ci.yml artifacts 2020-12-21 19:12:02 +01:00
twinaphex 8df5fe2a60 CLeanup 2020-12-20 16:48:52 +01:00
twinaphex 51f0d04569 Update 2020-12-20 16:41:44 +01:00
Autechre f4c4df039d Merge pull request #11720 from aliaspider/master
D3D12 fixes.
2020-12-20 08:21:40 +01:00
aliaspider 16f997172f (D3D12) allocate rt_view descriptors for feedback render targets too. 2020-12-20 08:08:04 +01:00
aliaspider bf2adda421 (D3D12) move D3D12SignalCommandQueue to d3d12_gfx_sync. 2020-12-20 07:13:11 +01:00
aliaspider 1681322ffc (D3D12) fix the D3D12GetCompletedValue function wrapper.
- a function wrapper shouldn't contain any NULL checks, and it should
return the original UINT64 value, not a boolean.
2020-12-20 07:08:33 +01:00
aliaspider b6544a71d7 (MSVC) add the DEBUG preprocessor definition to debug targets. 2020-12-20 07:05:46 +01:00
Autechre 2cc7118ec4 Merge pull request #11717 from bslenul/master
Build fix.
2020-12-19 18:42:57 +01:00
bslenul 602908f5c6 Build fix. 2020-12-19 18:30:10 +01:00
twinaphex 3743a47edd Remove obsolete ps3 references - use psl1ght instead 2020-12-19 15:36:07 +01:00
twinaphex 870707dbe8 Remove obsolete __CELLOS_LV2__ references - use PSL1GHT instead 2020-12-19 15:32:26 +01:00
Ömercan Kömür 6256b8ca2b first 2020-12-19 15:14:14 +03:00
Autechre 4e33e71a47 Merge pull request #11715 from jdgleaver/compresion-defaults
Ensure save file and playlist compression is disabled by default
2020-12-18 15:43:50 +01:00
jdgleaver b9e9b9eb4f Ensure save file and playlist compression is disabled by default 2020-12-18 14:36:10 +00:00
Autechre 6ba7f3c28b Merge pull request #11712 from SimpleTease/update
Emscripten: remove unused dependency (buildfix)
2020-12-18 05:58:25 +01:00
SimpleTease bb6a680890 Emscripten: remove unused dependency (buildfix) 2020-12-18 03:40:18 +00:00
twinaphex 7d313647ae (D3D11) Add flip model support - fallback to blit model for OSes
where flip model is not supported (windows 7 and earlier). Will add
a menu option later allowing the user to switch inbetween the two
2020-12-17 14:39:58 +01:00
twinaphex d6a0bdaa30 (D3D12) Increase this to 2048 - avoids D3D12 crash on startup 2020-12-17 09:41:05 +01:00
twinaphex 38ce3927ae (D3D10/11/12) Increase sprite capacity, we need this so that
the hardware rendered menu drivers don't glitch out
2020-12-17 08:31:06 +01:00
Autechre 8d1ca52da5 Merge pull request #11703 from 6lackmag3/patch-3
Update msg_hash_ru.c
2020-12-17 01:27:46 +01:00
Autechre b3282882d3 Merge pull request #11709 from sonninnos/key-remap-fix
Keyboard remapping fix pt2
2020-12-17 00:49:39 +01:00
sonninnos c18c4680b3 Keyboard remapping fix pt2 2020-12-17 00:39:57 +02:00
Francisco José García García 2c20788ba4 [PSP] [VITA] Add salamander to gitlab CI (#11707)
* [PSP] [VITA] Add salamander to gitlab CI

* [PSP] Fix build of salamander
2020-12-16 18:50:16 +01:00
6lackmag3 8da2563b87 Update msg_hash_ru.c 2020-12-16 02:01:05 +03:00
twinaphex 2a8024a71b (D3D10) Cleanups - create init_swapchain function 2020-12-15 23:05:58 +01:00
twinaphex 093dc30ffd Refactor d3d11_init_swapchain some more 2020-12-15 22:56:29 +01:00
Autechre 1fee67d51c Merge pull request #11700 from davidgfnet/betterwifi2
Fix wifi_enable setting, to store it across restarts
2020-12-15 21:26:04 +01:00
David Guillen Fandos 4aa3a0d666 Fix wifi_enable setting, to store it across restarts 2020-12-15 18:12:58 +01:00
twinaphex a1fd1d425c (D3D11) Split init swapchain code up into own function 2020-12-15 08:19:04 +01:00
twinaphex ad2502b645 (D3D11) Change this back 2020-12-15 08:09:48 +01:00
twinaphex 2d588ca4ef Simplify vulkan_create_texture 2020-12-15 08:00:22 +01:00
twinaphex d55ca599e0 Replace with macros 2020-12-15 07:28:39 +01:00
twinaphex cdca5d0afc Turn vulkan_copy_staging_to_dynamic into macro 2020-12-15 07:20:33 +01:00
twinaphex d70420a12d vulkan_copy_staging_to_dynamic - put sync texture to GPU
outside of the function
2020-12-15 07:01:00 +01:00
twinaphex 6b38a7916a (Vulkan) Simplify code 2020-12-15 06:19:48 +01:00
twinaphex d008cb14e2 Buildfix 2020-12-14 22:53:51 +01:00
Autechre bdc36765df Merge pull request #11692 from valadaa48/oga_software_fb
oga_gfx: implement RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER
2020-12-14 10:51:23 +01:00
valadaa48 bbb9c1d248 oga_gfx: implement RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER 2020-12-13 21:16:11 -05:00
twinaphex 0e1b980803 Move rarch_timer functions to retroarch_data.h and turn them into
macros
2020-12-13 22:37:42 +01:00
twinaphex 2e266e1577 Cleanups 2020-12-13 22:16:44 +01:00
twinaphex 572e263d20 Updates 2020-12-13 21:21:21 +01:00
Autechre 99032e2f4f Merge pull request #11690 from jdgleaver/rgui-cjk-update
(RGUI) Add support for CJK punctuation glyphs
2020-12-13 19:43:33 +01:00
Autechre 646eee823e Merge pull request #11689 from gouchi/patch-2
Update CHANGES.md
2020-12-13 19:40:18 +01:00
jdgleaver 74fff8dc62 (RGUI) Add support for CJK punctuation glyphs 2020-12-13 12:34:53 +00:00
gouchi b04e93f188 Update CHANGES.md
- Add Finnish language per #11666
2020-12-13 12:58:53 +01:00
Autechre 12dc69c501 Merge pull request #11666 from gouchi/finnish
intl: Add Finnish language
2020-12-12 21:45:06 +01:00
gouchi 5926f00b67 update missing part in msg_hash.c 2020-12-12 18:02:14 +01:00
Autechre 184d15bdd2 Merge pull request #11680 from jdgleaver/rzip-tool-fixes
RZIP command line tool fixes
2020-12-11 20:18:52 +01:00
Autechre 71ed4db45a Merge pull request #11681 from crystalct/master
Fix multipass shaders on PS3 - fix #11673
2020-12-11 20:18:35 +01:00
Autechre 301b0f6353 Merge pull request #11682 from jdgleaver/dingux-osd-cleanup
(OpenDingux/sdl_dingux_gfx) OSD font clean-up
2020-12-11 20:18:10 +01:00
jdgleaver f657344d85 (OpenDingux/sdl_dingux_gfx) OSD font clean-up 2020-12-11 17:33:41 +00:00
unknown 96a7db2451 Fix multipass shaders on PS3 2020-12-11 18:22:27 +01:00
jdgleaver e330b67003 RZIP command line tool: Use correct executable extension + silence warnings on Windows 2020-12-11 13:21:55 +00:00
jdgleaver 73c53b63bf RZIP command line tool fixes 2020-12-11 11:00:19 +00:00
Autechre 4c98be1aa8 Merge pull request #11677 from jdgleaver/rgui-cjk
(RGUI) Add support for CJK fonts
2020-12-10 23:47:24 +01:00
Autechre 7b214efe5a Merge pull request #11678 from davidgfnet/betterwifi2
Fix minor issues and a memleak
2020-12-10 23:46:44 +01:00
David Guillen Fandos 8b88f705b8 Fix minor issues and a memleak 2020-12-10 19:24:34 +01:00
jdgleaver 0f0ccbadc0 (RGUI) Add support for CJK fonts 2020-12-10 15:17:26 +00:00
Autechre e31605b9fa Merge pull request #11676 from schellingb/fix-unused-func-warning
Mark function possibly unused to suppress warning
2020-12-10 03:42:41 +01:00
Bernhard Schelling 3de2c290fe Mark function possibly unused to suppress warning
Add attribute to avoid the warnings "rbuf__grow' defined but not used [-Wunused-function]" (GCC/Clang) and "unreferenced local function has been removed" (MSVC).
2020-12-10 09:35:08 +09:00
twinaphex 22e966be5b Cleanups 2020-12-09 22:25:05 +01:00
twinaphex b6fd220c79 Cleanups 2020-12-09 22:23:07 +01:00
twinaphex a1b389565c Silence warnings on Dingux 2020-12-09 22:18:26 +01:00
twinaphex 7ce76679de Silence warnings for builds that don't have shader support 2020-12-09 22:11:06 +01:00
twinaphex c2a73a6921 remove unused variables 2020-12-09 22:06:02 +01:00
twinaphex c328b1f94a Put wifi behind HAVE_NETWORKING ifdefs 2020-12-09 22:03:23 +01:00
twinaphex 4db9f01ecb Take this function outside of the ifdef for shaders 2020-12-09 21:54:33 +01:00
Autechre dd05dcf3a2 Merge pull request #11675 from davidgfnet/betterwifi2
Add a proper WiFi menu, with Enable/Disable & Disconnect options
2020-12-09 21:35:59 +01:00
David Guillen Fandos ed7b3aa415 Add a proper WiFi menu, with Enable/Disable & Disconnect options
This also allows WiFi passwords to be remembered. The underlying
tool (connman) allows to store passswords (that's why it auto connects
whenever you boot a Lakka device), so we expose this so that the user
does not have to re-input the pass when connecting to a saved wifi.

Option to forget a password to come in a future PR, for now a password
is automatically forgotten if the Wifi connect operation fails (we assume
it fails due to password).

Changes the WiFi API to enable these features of course!
2020-12-09 20:20:48 +01:00
Autechre 0bb70902a8 Merge pull request #11671 from MrHuu/guard_threads
(3DS) guard threading
2020-12-09 02:49:51 +01:00
MrHuu 58cb2b6cc4 (3DS) guard treading 2020-12-09 00:48:45 +01:00
Autechre 70feaebc91 Merge pull request #11670 from sonninnos/nowinkey-option
(DINPUT+WINRAW) Option for disabling Windows hotkeys
2020-12-08 23:43:32 +01:00
Tony Jansson 75baed785e (DINPUT+WINRAW) Option for disabling Windows hotkeys 2020-12-09 00:03:40 +02:00
gouchi a7bdabd133 intl: Add Finnish language 2020-12-05 22:10:29 +01:00
twinaphex 625f0d4fc6 Improve conditional 2020-12-05 04:54:22 +01:00
twinaphex 9688554921 (D3D11) Use SWAP_EFFECT_*_DISCARD from now on fallback PC codepath 2020-12-05 04:48:11 +01:00
Autechre 8375055b88 Merge pull request #11663 from jdgleaver/gitlab-ngc
Add NGC build to .gitlab-ci.yml
2020-12-04 18:59:52 +01:00
jdgleaver dff84b48f3 Add NGC build to .gitlab-ci.yml 2020-12-04 17:35:31 +00:00
Autechre 2ba2e00f19 Merge pull request #11661 from jdgleaver/gitlab-wii
Add Wii build to .gitlab-ci.yml
2020-12-04 13:37:29 +01:00
jdgleaver 42848bc4d7 Add Wii build to .gitlab-ci.yml 2020-12-04 11:01:34 +00:00
Autechre 6565fc9e9c Merge pull request #11660 from davidgfnet/betterwifi2
Improving Wifi API and connman implementation
2020-12-04 04:08:38 +01:00
Autechre ddaa355659 Merge pull request #11659 from Oschowa/jack_fixes
(Audio/JACK) Fix non-blocking write and switch to deinterleaving in the process function with a single jack ringbuffer.
2020-12-04 02:24:43 +01:00
David Guillen Fandos 091f6e6354 Improving Wifi API and connman implementation
This sets the ground for more PRs to come. Clean up how scanning and listing
SSID works, and adds attributes to the newtworks.
Frontend will be able to know which networks are "remembered" and thus
require no password to re-connect.

For now scans are performed every 2 minutes or on demand if no networks found
(either for real or in the "cache").
2020-12-04 02:18:03 +01:00
Oschowa 78bb0de6e9 (Audio/JACK) Deinterleave in the process callback
This allows us to avoid the extra copy to the deinterleave buffer and
lets us use only a single jack ringbuffer.
2020-12-04 00:18:23 +01:00
Oschowa 604eb32c35 (Audio/JACK) Fix non-blocking write
Previously we would wait on the condition variable even in the non-blocking case.
This improves fast-forward performance massively and brings JACK in line
with other backends in that regard.
2020-12-04 00:09:40 +01:00
Autechre 22042f2351 Merge pull request #11657 from Jamiras/discord_fix
fix discord rich presence
2020-12-03 20:24:59 +01:00
Autechre db2cd8f9e7 Merge pull request #11656 from davidgfnet/betterwifi
Small Lakka fixes (fd leak and build issue)
2020-12-03 18:44:47 +01:00
Autechre d81316bda0 Merge pull request #11655 from jdgleaver/gitlab-dingux-mips32
(.gitlab-ci.yml) Use correct architecture label for OpenDingux build
2020-12-03 18:01:23 +01:00
Jamiras 76074a76fe fix discord rich presence 2020-12-03 09:42:40 -07:00
David Guillen Fandos 2eb3b93a15 Fix fd leak in wifi status function 2020-12-03 16:38:34 +01:00
David Guillen Fandos 192d131020 Fix Lakka build in !switch !oga2 platforms 2020-12-03 16:13:22 +01:00
jdgleaver 1017cfa4df (.gitlab-ci.yml) Use correct architecture label for OpenDingux build 2020-12-03 14:11:22 +00:00
jdgleaver cc08a971e3 (3DS) Minor makefile clean-ups required for new build infrastructure 2020-12-03 12:48:18 +01:00
jdgleaver 4ddba05d91 [3DS/.gitlab-ci.yml] Replace 'salamander' references with 'dummy' 2020-12-02 18:25:58 +01:00
Autechre 1f87250965 Merge pull request #11652 from jdgleaver/gitlab-ctr
Add CTR build to .gitlab-ci.yml
2020-12-02 17:29:01 +01:00
jdgleaver 067e0063bb Add CTR build to .gitlab-ci.yml 2020-12-02 15:59:16 +00:00
Autechre 8747d78778 Merge pull request #11650 from jdgleaver/dingux-custom-toolchain
OpenDingux: Enable compilation with custom toolchains
2020-12-02 14:24:59 +01:00
jdgleaver 105eeeb881 OpenDingux: Enable compilation with custom toolchains 2020-12-02 12:07:52 +00:00
Autechre bf83a5d514 Merge pull request #11649 from jdgleaver/dingux-net-deps
OpenDingux: Remove unnecessary defines/dependencies from RG350 build
2020-12-02 11:26:23 +01:00
jdgleaver b7740d068e OpenDingux: Remove unnecessary defines/dependencies from RG350 build 2020-12-02 09:49:37 +00:00
Autechre fab0eed15e Merge pull request #11644 from jdgleaver/rzip-tool
(libretro-common) Add command line tool for creating/extracting RZIP files
2020-12-01 14:18:50 +01:00
Autechre df2d716147 Merge pull request #11645 from jdgleaver/dingux-typo
(sdl_dingux_joypad) Fix typo
2020-12-01 14:18:33 +01:00
jdgleaver 88254d8402 (sdl_dingux_joypad) Fix typo 2020-12-01 11:28:31 +00:00
jdgleaver 734cb2ff31 (libretro-common) Add command line tool for creating/extracting RZIP files 2020-12-01 11:05:11 +00:00
Autechre 34190ccbe4 Merge pull request #11642 from HyperspaceMadness/Shaders_Fix_Crash_change_num_shader_passes_in_UI
Shaders Fix Crash change num shader passes in UI
2020-12-01 09:49:54 +01:00
HyperspaceMadness e98a8ce591 Shaders Fix Crash change num shader passes in UI 2020-11-30 19:30:15 -05:00
Autechre 4d2eb18a47 Merge pull request #11640 from HyperspaceMadness/Shaders_SaveAs_Fix_And_Better_Reference_Handling
Shaders_SaveAs_Fix_And_Better_Reference_Handling
2020-11-30 12:31:59 +01:00
HyperspaceMadness 06e32982db Shaders_SaveAs_Fix_And_Better_Reference_Handling 2020-11-29 19:16:38 -05:00
Autechre cf854fc67b Merge pull request #11633 from jdgleaver/dingux-mplt
OpenDingux: Add '-mplt -mno-shared' compiler optimisation flags
2020-11-28 16:14:14 +01:00
jdgleaver 00546df273 OpenDingux: Add '-mplt -mno-shared' compiler optimisation flags 2020-11-27 15:13:04 +00:00
Autechre 1f6cf5748e Merge pull request #11624 from jstine35/assert_macro_code_quality
Improved code quality of retro_assert macro
2020-11-27 15:40:36 +01:00
Autechre 68c6092e07 Merge pull request #11625 from davidgfnet/brightness
Streamlining brightness control in Retroarch (for Lakka)
2020-11-27 15:39:54 +01:00
Autechre fe430fd78f Merge pull request #11627 from TylerLoch/master
Apple Silicon Build Support
2020-11-26 23:34:20 +01:00
David Guillen Fandos a442696b71 First attempt at adding proper brightness
Supports Switch and OGA
2020-11-26 19:22:05 +01:00
jdgleaver e447b0f45a Add OpenDingux build to .gitlab-ci.yml 2020-11-26 14:36:02 +01:00
Tyler Loch 44e5fd9a35 Apple Silicon Build Support 2020-11-25 18:05:45 -06:00
Tyler Loch ffbcd92e2d Apple Silicon Build Support
Disable ARM NEON optimizations for audio, as used in libretro-common/audio/conversion
Allows for building Apple Silicon (arm64) and arm64/x86_64 fat-binary versions of RetroArch for macOS.
2020-11-25 15:22:49 -06:00
Jake Stine ad12cc089c Improved code quality of retro_assert macro
Macros without do{}while() wrapping behave more like regular C expressions. The macro can now be nested/embedded inside of other similar compound statements and conditionals without introducing syntax errors. This change has no risk of negatively impacting existing code.
2020-11-25 10:16:19 -08:00
Autechre 4dcc556ec9 Merge pull request #11617 from guoyunhe/crowdin
Fetch translations from Crowdin
2020-11-25 16:57:14 +01:00
Autechre 54eb22dd2b Merge pull request #11606 from Scrumplex/feat-run-media
Also show /run/media or /run/media/$USER in drives list
2020-11-25 16:04:52 +01:00
Autechre 1cbc26ac9e Merge pull request #11614 from HyperspaceMadness/Shader_Multi-Level_Referenced_Presets
Shader_Multi-Level_Referenced_Presets
2020-11-25 15:47:31 +01:00
Autechre 94534be4a2 Merge pull request #11618 from davidgfnet/master
Make get_lakka_version available in all builds
2020-11-25 15:47:20 +01:00
Autechre debb9c6b0a Merge pull request #11622 from Jamiras/cheevos_lboard_spacing
(cheevos) calculate leaderboard widget spacing based on video resolution
2020-11-24 20:50:20 +01:00
Autechre 8ddd246420 Merge pull request #11619 from konistehrad/fix-sunxi
Fix missing division sign in sunxi_gfx.c
2020-11-24 20:50:04 +01:00
Autechre cd7a1fcf0f Merge pull request #11616 from jdgleaver/rewind-granularity-fix
Prevent 'Rewind Frames' from being set to '1' incorrectly on load content
2020-11-24 20:49:47 +01:00
Jamiras e6a7961dd5 calculate spacing based on video resolution 2020-11-24 07:42:50 -07:00
Conrad Kreyling 9cfe50ddd3 Fix missing division sign in sunxi_gfx.c
Same fix as https://github.com/libretro/RetroArch/commit/71c031099b3c39ba1f800889b6fcc9d8c955adb5 for the same problem, just in a different file.
2020-11-23 13:31:16 -05:00
David Guillen Fandos f5693f15e7 Make get_lakka_version available in all builds
This simplifies a bit the code, for some new lakka patches to come.
2020-11-23 18:44:24 +01:00
Guo Yunhe 6d57819ade Fetch translations from Crowdin 2020-11-23 22:54:07 +08:00
jdgleaver 8d8ccf45db Prevent 'Rewind Frames' from being set to '1' incorrectly on load content 2020-11-23 14:01:18 +00:00
HyperspaceMadness f0c4343cb9 Removed extra printf left behind 2020-11-22 19:39:34 -05:00
HyperspaceMadness abb2d06ce9 Shader_Multi-Level_Referenced_Presets 2020-11-22 19:10:08 -05:00
Autechre 96af31bce7 Merge pull request #11609 from HyperspaceMadness/Shader_Increase_Max_Textures_Line
Shader_Increase_Max_Textures_Line
2020-11-22 18:30:17 +01:00
Autechre 06279b68f2 Merge pull request #11600 from davidgfnet/master
Adding savestate garbage collector for autoincrement stavestates
2020-11-22 17:11:08 +01:00
HyperspaceMadness 35b49f3b82 Shader_Increase_Max_Textures_Line 2020-11-22 09:50:24 -05:00
Sefa Eyeoglu e3dc9a7e1d feat: also show /run/media or /run/media/$USER in drives list 2020-11-22 14:25:46 +01:00
David Guillen Fandos 1c5099051c Adding savestate garbage collector for autoincrement stavestates
As some issues indicate (#6195 #10471 #11008 #6861) there's an issue with
the autoincrement save slot feature: slot index will increase and very old
saves won't be deleted.

This commit adds support to delete old save states with a user defined
save state limit (global). Instead of wrapping around the slot counter
it will simply delete the oldest save, since it is simpler.

For now there's a limit of one deletion per save, which ensures a user
cannot delete many saves by accident if they set the limit too low.
2020-11-22 13:26:23 +01:00
Autechre 865303c501 Merge pull request #11605 from SimpleTease/patch-1
ibxm: update to 20191214
2020-11-22 02:18:22 +01:00
SimpleTease 8017ecd2b8 ibxm: update to 20191214
- Fix music playback (sample skipping)
- Add more platforms
- Fix Mr. Boom music
2020-11-21 20:30:19 +00:00
Autechre 175205c1e6 Merge pull request #11604 from crystalct/master
Fix Ps3 build.
2020-11-21 03:44:30 +01:00
crystalct fe0fcb7617 Fix Ps3 build. 2020-11-21 00:34:30 +01:00
Autechre 6205a0c2bc Merge pull request #11599 from jdgleaver/upscale_1_5x-filter
Add Upscale1.5x video filter
2020-11-20 18:14:51 +01:00
jdgleaver c2f1b9f336 Add Upscale1.5x video filter 2020-11-20 15:22:09 +00:00
Autechre 8921d31247 Merge pull request #11595 from libretro/dir_check_defaults_only_once
Only attempt to call dir_check_defaults once per runtime session
2020-11-20 04:32:31 +01:00
twinaphex 3ac75c043e Jdgleaver improvements 2020-11-20 03:55:55 +01:00
Autechre 2430736a5d Merge pull request #11596 from schellingb/stdstring-signed-fix
Fix crash in ctype style char macros with signed inputs
2020-11-19 21:51:40 +01:00
Bernhard Schelling c594e8801d Fix ctype style char macros with signed inputs
UTF8 byte codes are commonly stored in signed char types thus these macros could be called with negative numbers. Avoid invalid memory access by clamping the input values to 0 ~ 255 with an unsigned char cast.
2020-11-19 23:42:05 +09:00
Autechre fbd04ea76e Merge pull request #11590 from Cpasjuste/crt_switch_timings
(KMS/DRM) add support for custom hdmi_timings / modes
2020-11-19 13:45:15 +01:00
cpasjuste e31182b005 (KMS/DRM) cleanup custom video mode loading (crt_switch_timings) 2020-11-19 10:21:18 +01:00
Autechre 307a9ac01c Update CHANGES.md 2020-11-19 07:21:23 +01:00
Autechre 380e878c66 Merge pull request #11552 from sonninnos/turbo-single-hold
Add hold mode for turbo fire 'Single Button'
2020-11-19 07:21:03 +01:00
Autechre 06805ace7e Update CHANGES.md 2020-11-19 07:20:01 +01:00
Autechre 3f1d25f1f7 Merge pull request #11576 from HyperspaceMadness/Shader_Preset_Remove_parameters_line
Shader_Preset_Remove_parameters_line
2020-11-19 07:18:49 +01:00
Autechre f7e9dd651f Merge pull request #11594 from davidgfnet/master
Add support for 64 buttons in udev gamepads
2020-11-19 07:11:54 +01:00
twinaphex 9ee1e33e09 Only attempt to call dir_check_defaults once per runtime session
when calling the frontend environment get callback - we want to
look at the 'default' directories, and then if they don't yet exist,
auto-create them so we can store files in them.
2020-11-19 07:10:22 +01:00
twinaphex 02607e6c34 Simplify dir_check_defaults 2020-11-19 05:38:04 +01:00
David Guillen Fandos bf48757a2e Add support for 64 buttons in udev gamepads
It seems only 16 were only really supported anyway due to the
usage of BITS_COPY16_PTR (which only copies 16 bit states)?
2020-11-18 19:29:46 +01:00
Autechre 4382772a79 Merge pull request #11593 from jdgleaver/dingux-rumble2
OpenDingux: Optimise rumble interface
2020-11-18 18:48:39 +01:00
jdgleaver de146545af OpenDingux: Optimise rumble interface 2020-11-18 17:21:38 +00:00
twinaphex c8f92d2247 Revert "(UWP/Small stack size platforms) UWP is short on stack size, these"
This reverts commit 0a3306a7b4.
2020-11-18 16:48:31 +01:00
cpasjuste 485513ba61 (KMS/DRM) correctly handle custom modes polarity, implement aspect ratio support from hdmi_timings 2020-11-18 15:21:03 +01:00
cpasjuste 0082806620 (KMS/DRM) add support for custom modes from hdmi timings 2020-11-18 11:34:44 +01:00
cyee bcc7dde90d VITA: proper handling of boot params 2020-11-18 08:22:39 +01:00
twinaphex 3a0c5cc666 (UWP) Fix regression in dylib 2020-11-18 01:44:32 +01:00
Autechre 973c707462 Merge pull request #11585 from Jamiras/cheevos_no_core_support
(cheevos) show unsupported core message when viewing achievement list for unsupported core
2020-11-18 00:57:47 +01:00
Autechre ef4ccc7ea7 Merge pull request #11588 from Tatsuya79/patch-3
qt: add simple shader option
2020-11-18 00:57:27 +01:00
Autechre c6b5e07903 Merge pull request #11586 from jdgleaver/dingux-rumble
OpenDingux: Add rumble support
2020-11-18 00:56:06 +01:00
Tatsuya79 67fb743d29 qt: add simple shader option 2020-11-18 00:55:57 +01:00
jdgleaver e582cf9f1d OpenDingux: Add rumble support 2020-11-17 16:13:37 +00:00
twinaphex 0a3306a7b4 (UWP/Small stack size platforms) UWP is short on stack size, these
big local char array variables were causing crashes - put them on
heap
2020-11-17 07:17:32 +01:00
Jamiras 8ed0fcb5ce show unsupported core message when viewing achievement list for unsupported core 2020-11-16 21:38:02 -07:00
twinaphex eb41efa9dd Move more global state code to retroarch_data.h 2020-11-17 01:47:47 +01:00
twinaphex b9b1639759 Cleanups - split up global state to retroarch_data.h 2020-11-17 01:34:20 +01:00
twinaphex 8937794d8a Create separate header file for forward declarations in retroarch.c 2020-11-16 23:59:03 +01:00
twinaphex 451a49f6a1 Create video_driver_restore_cached 2020-11-16 23:49:13 +01:00
twinaphex c9997ce520 Cleanup video_driver_find_driver some more 2020-11-16 23:46:08 +01:00
twinaphex 988515d76d video_driver_find_driver - cleanup 2020-11-16 23:27:17 +01:00
twinaphex b6d88b749b Cleanup bsv_movie_init - use return value 2020-11-16 22:37:04 +01:00
twinaphex a8c7a4fcff Simplify video_driver_find_driver 2020-11-16 22:25:09 +01:00
twinaphex 274d01d0e8 Fix bug in hw_render_context_name 2020-11-16 21:43:01 +01:00
twinaphex 4a2183ee41 (GET_PREFERRED_HW_RENDER) Set callback_type even when it returns false
because video driver switching is disabled, fixes PCSX2 D3D11 issues
2020-11-16 21:38:20 +01:00
Autechre e2e59a0625 Merge pull request #11579 from aliaspider/master
(D3D11) fix slang shaders
2020-11-16 21:08:51 +01:00
twinaphex 58efde6c2e Add more logging for GET_PREFERRED_HW_RENDER and SET_HW_RENDER 2020-11-16 21:04:55 +01:00
Autechre 17333de0e3 Merge pull request #11583 from Alcaro/patch-11
Fix backwards condition in socket blocking behavior
2020-11-16 18:42:08 +01:00
Alcaro ac2fe3896e Fix backwards condition in socket blocking behavior
Fixes #11557
2020-11-16 18:28:37 +01:00
Autechre 0d2b9fe68c Merge pull request #11577 from libretro/remove_wk
[VITA] Remove old threading workaround
2020-11-15 21:53:03 +01:00
aliaspider c6b77f6c62 (D3D11) get the hwrender texture format from the view desc
the format set in the texture desc isn't necessarily the same as the
view format.
2020-11-15 15:07:53 +01:00
aliaspider b3134fc05a (D3D11) fix slang shaders 2020-11-15 13:04:24 +01:00
Francisco José García García c5f2375254 [VITA] Remove pthread workaround 2020-11-15 10:23:58 +01:00
Francisco José García García e943ac262f [VITA] Remove old threading workaround 2020-11-15 09:41:37 +01:00
aliaspider 595174cd4b update .gitignore
- user folders.
- qtcreator project files.
2020-11-15 06:03:35 +01:00
HyperspaceMadness deb8e2b88c Shader_Preset_Remove_parameters_line 2020-11-14 21:23:18 -05:00
Autechre 7eb349b561 Merge pull request #11563 from libretro/remove_deps
[VITA] Remove vitaGL and vitaShark from deps dir
2020-11-14 17:01:26 +01:00
Francisco José García García e78c8448c9 [VITA] Remove vitaGL and vitaShark from deps dir 2020-11-14 09:57:40 +01:00
Francisco José García García 0705650c18 [VITA] Fix vitaGL merging 2020-11-14 09:11:42 +01:00
aliaspider b7d3efc503 (D3D11) rename D3D11SetState to D3D11SetRasterizerState. 2020-11-14 04:29:44 +01:00
Autechre 4d961b0970 Merge pull request #11561 from Rinnegatamante/switches
Don't realloc video buffer when unnecessary.
2020-11-13 14:57:11 +01:00
Rinnegatamante c04d9d62db Don't realloc video buffer when unnecessary. 2020-11-13 14:55:40 +01:00
Tony Jansson 278ddc64ed Add hold mode for turbo fire 'Single Button' 2020-11-13 15:44:32 +02:00
Francisco José García García 1358e33fb0 Merge pull request #11560 from libretro/update_vitagl
Update vitagl
2020-11-13 14:43:51 +01:00
frangarcj 046fab9ddd Merge commit '169ad6fa52457a67975bfe4491a0412b5069d822' 2020-11-13 14:33:48 +01:00
frangarcj 169ad6fa52 Squashed 'deps/vitaGL/' changes from 81403e2..34bc720
34bc720 Added more hbs to the vitaGL showcase section.
9904e7f Added GL_TEXTURE_COMPRESSION_HINT support.
bf5a136 Run clang-format.
65c509e Fix for HAVE_SHARK=2 build crashing when compiling a shader.
2b263af Added support for non GL_RGBA textures to the DXT compressor.
9c963ab Exposing internal gxm surface addresses.
778c67b Properly set texture parameters scope to mimic GL.
cda15fc Added sanity check to framebuffer pointer.
45fa81b Properly reserving texture id 0.
38c8715 Added return value to vglBindPackedAttribLocation.

git-subtree-dir: deps/vitaGL
git-subtree-split: 34bc7201f3929203b0e549633dfaae26fd09fe8e
2020-11-13 14:29:36 +01:00
Autechre 4cb0958849 Merge pull request #11559 from sonninnos/winraw-key-mods
(WINRAW) Keyboard mods fix
2020-11-13 06:06:58 +01:00
Tony Jansson f497608055 (WINRAW) Keyboard mods fix 2020-11-13 04:25:07 +02:00
twinaphex cc5fdb326b (UWP) Don't default to XMB by default 2020-11-13 00:10:47 +01:00
Autechre c3e9593022 Merge pull request #11558 from jdgleaver/rumble-comment
Clarify usage of 'RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE' callback
2020-11-12 18:05:55 +01:00
jdgleaver cef6707304 Clarify usage of 'RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE' callback 2020-11-12 16:47:35 +00:00
Autechre fcd3be15b0 Merge pull request #11545 from Jamiras/cheevos_not_logged_in
differentiate between no achievements for a set and not being logged in
2020-11-12 01:51:47 +01:00
Autechre f502abf166 Merge pull request #11550 from sonninnos/turbomode-fix
Refresh turbo button selection in 'Single Button'
2020-11-12 01:51:31 +01:00
Autechre 458c52099a Merge pull request #11553 from jdgleaver/video-filter-optimisations
Video filter optimisations
2020-11-12 01:49:39 +01:00
jdgleaver 5fb8861d34 Video filter optimisations 2020-11-11 17:00:09 +00:00
Autechre a80b40fb8a Merge pull request #11354 from HyperspaceMadness/Shader_Save_Load
Shader save load
2020-11-11 15:46:42 +01:00
Tony Jansson e5c6032d37 Refresh turbo button selection in 'Single Mode' 2020-11-11 15:08:09 +02:00
twinaphex c3bbc763ff (MSVC) Buildfixes 2020-11-11 00:59:00 +01:00
HyperspaceMadness 5008ac6eb0 Merge branch 'master' into Shader_Save_Load 2020-11-10 17:05:23 -05:00
Autechre 01fcb7f138 Merge pull request #11548 from sonninnos/dinput-winkey
(DINPUT) Prevent Win-key from opening Start Menu
2020-11-10 22:13:58 +01:00
Tony Jansson 793ac441d1 (DINPUT) Prevent Win-key from opening Start Menu 2020-11-10 17:34:26 +02:00
Jamiras f51e372477 differentiate between no achievements for a set and not being logged in 2020-11-09 20:18:31 -07:00
Autechre 64ef2fb824 Merge pull request #11543 from sonninnos/dinput-modkeys
(DINPUT) Simultaneous shift sticky fix
2020-11-09 23:39:21 +01:00
Tony Jansson eca9c452d8 (DINPUT) Simultaneous shift sticky fix 2020-11-09 21:20:46 +02:00
Autechre 4093fb71f0 Merge pull request #11544 from sonninnos/keyboard-remap-fix
Keyboard remapping fix
2020-11-09 20:00:09 +01:00
Autechre 18c94ab067 Merge pull request #11542 from jdgleaver/normal4x
Add Normal4x video filter
2020-11-09 17:30:21 +01:00
jdgleaver cd1b2cea76 Add Normal4x video filter 2020-11-09 16:21:47 +00:00
Autechre 8c629522fa Merge pull request #11541 from jdgleaver/database-fix
Fix database scans
2020-11-09 17:05:49 +01:00
jdgleaver 54ce950591 Fix database scans 2020-11-09 14:31:53 +00:00
Autechre 8401e898cc Merge pull request #11540 from jdgleaver/config-include-override
(config_file) Enable saving of changed parameters when '#include' directives are used
2020-11-09 14:47:46 +01:00
Tony Jansson c3f3ac3dc1 Keyboard remapping fix 2020-11-09 15:22:41 +02:00
jdgleaver 317ad3181d (config_file) Enable saving of changed parameters when '#include' directives are used 2020-11-09 11:18:49 +00:00
Autechre 3693db2451 Merge pull request #11536 from cy33hc/master
VITA: fix crash when boot params is missing
2020-11-08 19:56:08 +01:00
twinaphex 7c2fda77f8 (Discord) Cleanups 2020-11-08 19:27:34 +01:00
twinaphex 27dc500ed1 (Discord RPC) Cleanups 2020-11-08 18:49:20 +01:00
twinaphex e58cb34970 Remove ifdef and make this the default for now - and add TODO/FIXME note 2020-11-08 18:31:12 +01:00
Autechre 6b7157b65a Merge pull request #11537 from crystalct/master
fix segmentation fault on PS3 when scan directory
2020-11-08 18:29:28 +01:00
Autechre db4dd845ad Merge pull request #11538 from HyperspaceMadness/Shaders_improve_message_for_textures_not_found
Shaders_improve_message_for_textures_not_found
2020-11-08 18:28:44 +01:00
HyperspaceMadness e6ee8818af Shaders_improve_message_for_textures_not_found 2020-11-08 12:21:09 -05:00
unknown be6d1841d5 fix segmentation fault on PS3 when scan directory 2020-11-08 16:06:00 +01:00
cyee 1541303574 fix code review comment 2020-11-08 01:15:59 -08:00
Autechre 8ababb3973 Merge pull request #11535 from aliaspider/master
improve handling of arabic and persian text.
2020-11-08 09:43:40 +01:00
aliaspider c85e09ddad improve handling of arabic and persian text. 2020-11-08 04:47:08 +01:00
cyee 9e9e9af8dd VITA: fix crash when boot params is missing 2020-11-07 14:03:12 -08:00
Autechre 64c0abdf0c Merge pull request #11528 from HyperspaceMadness/Increase_Shader_Parameter_Count_to_512
Increase_Shader_Parameter_Count_to_512
2020-11-07 17:35:30 +01:00
Autechre 664e6fa526 Merge pull request #11531 from Oschowa/alsa_float_detection
(Audio/ALSA) Fill hw_params configuration space before trying to detect float format.
2020-11-07 12:26:55 +01:00
Autechre 16e5131d29 Merge pull request #11529 from libretro/revert-11526-master
Revert "VITA: fix crash when started with missing boot params"
2020-11-07 10:02:08 +01:00
Autechre 4b182446e9 Revert "VITA: fix crash when started with missing boot params" 2020-11-07 10:01:56 +01:00
HyperspaceMadness a5e57aa74d Increase_Shader_Parameter_Count_to_512 2020-11-06 22:42:15 -05:00
Autechre bbf6fea1e4 Merge pull request #11527 from crystalct/master
fix segmentation fault on PS3 when Load State
2020-11-07 03:50:05 +01:00
Autechre a840157c63 Merge pull request #11525 from Ryunam/runahead-toggle-hotkey
Add Run-Ahead Toggle hotkey with notifications
2020-11-07 03:49:21 +01:00
Autechre 239e460fc2 Merge pull request #11524 from jdgleaver/rxml-mem-leak
(RXML) Fix memory leak
2020-11-07 03:49:09 +01:00
Autechre 5e15abc935 Merge pull request #11526 from cy33hc/master
VITA: fix crash when started with missing boot params
2020-11-07 03:48:47 +01:00
twinaphex 762275b794 Buildfix 2020-11-07 03:42:54 +01:00
unknown 26559d635e fix segmentation faulf on PS3 when Load State 2020-11-07 01:42:58 +01:00
Oschowa 8058735cdb (Audio/ALSA) Fill hw_params configuration space before trying to detect
float format.
Otherwire detection will always fail.
2020-11-06 23:09:42 +01:00
cyee 186cae258d fix crash when started with missing boot params 2020-11-06 13:23:53 -08:00
Ryunam f3aaf24219 Add Run-Ahead Toggle hotkey with notifications 2020-11-06 21:39:11 +01:00
jdgleaver 5c50d2f389 (RXML) Fix memory leak 2020-11-06 17:40:32 +00:00
HyperspaceMadness fd240f9a32 Shader Save Load Cleanup and UI Rename 2020-11-04 10:05:46 -05:00
HyperspaceMadness 1185df5f39 Shader Save & Load Fixes params not being loaded 2020-11-03 23:12:59 -05:00
Autechre f37d38bcd4 Merge pull request #11181 from dankcushions/gles31_32
GLES 3.1 and 3.2 build parameters, and corresponding context checks.
2020-11-04 04:58:24 +01:00
twinaphex 5c87abe639 Buildfix cheevos 2020-11-04 03:37:42 +01:00
Autechre ec9fbdf21c Merge pull request #11511 from farmerbb/master
[Android] Move to targetSdkVersion 29
2020-11-03 20:24:42 +01:00
Autechre a025835abb Merge pull request #11516 from Tatsuya79/patch-2
fix string_split_to_qt
2020-11-03 16:30:06 +01:00
Tatsuya79 f77e18ede0 fix string_split_to_qt 2020-11-03 16:15:37 +01:00
HyperspaceMadness f6e35420bc Simple Shader Save Cleanup 2020-11-02 21:07:20 -05:00
Braden Farmer f9b3eb892b Update Travis config for new Android targetSdkVersion 2020-11-01 20:55:26 -07:00
Braden Farmer aa20e3b513 [Android] Move to targetSdkVersion 29 2020-11-01 20:38:23 -07:00
twinaphex c9b7122a08 Add git_version switch - to disable Git version, do
./configure --disable-git_version
2020-11-02 03:07:56 +01:00
twinaphex 00e840e99d (Qt) Avoid QString::split - version incompatibilities 2020-11-02 00:18:09 +01:00
twinaphex 3fdf93a273 Update libretro-common 2020-11-01 17:22:32 +01:00
Autechre 1d0c75a3d0 Merge pull request #11510 from rsn8887/vita_scaling
[VITA] Default menu scale 1.5x to improve readability
2020-11-01 16:49:28 +01:00
rsn8887 a7e3850878 [VITA] Default menu scale 1.5x to improve readability 2020-11-01 09:31:42 -06:00
HyperspaceMadness 70bf90c5d8 Shader_Preset_Simple_Save_Cleaned_2020_11_01 2020-11-01 09:18:40 -05:00
twinaphex a2a58147e7 Update libretro-common 2020-10-31 06:22:10 +01:00
Autechre 4f140d448c Merge pull request #11504 from jdgleaver/dingux-ff
OpenDingux: Fix frozen video when enabling fast forward
2020-10-29 18:16:49 +01:00
jdgleaver 3481437b29 OpenDingux: Fix frozen video when enabling fast forward 2020-10-29 15:50:12 +00:00
Autechre 7388ceea05 Merge pull request #11502 from schellingb/discord-rpc_rjson
Replace rapidjson parser/writer in discord-rpc with rjson
2020-10-29 10:45:55 +01:00
Bernhard Schelling f6f8d3e235 Replace rapidjson parser/writer in discord-rpc with rjson 2020-10-29 16:55:23 +09:00
Autechre c52a22d839 Merge pull request #11500 from sonninnos/remaps-without-content
Allow loading core remaps without content
2020-10-29 04:56:10 +01:00
Autechre 8d0963735f Merge pull request #11497 from justinweiss/3ds-rotation
[3DS] Allow sideways screen rotation
2020-10-29 04:55:52 +01:00
Tony Jansson 7a2153f053 Allow loading core remaps without content 2020-10-29 02:23:43 +02:00
twinaphex a38bd6d71a (UWP) Buildfix 2020-10-28 19:16:27 +01:00
Autechre e377129ca9 Merge pull request #11498 from sonninnos/x11-grab-redux
(X11) Mouse grab redux
2020-10-28 16:58:16 +01:00
Tony Jansson 0a3520130b (X11) Mouse grab redux 2020-10-28 17:51:36 +02:00
Justin Weiss 91c695ac52 [3DS] Allow sideways screen rotation 2020-10-27 21:13:19 -07:00
twinaphex cdc64be112 (UWP) Buildfix 2020-10-28 02:28:15 +01:00
twinaphex 10f395df25 Silence warning 2020-10-28 02:22:02 +01:00
Autechre f401419c2a Merge pull request #11493 from sonninnos/mouse-grab-fixes
Mouse grab fixes
2020-10-27 20:50:26 +01:00
Autechre 929c31cfcf Merge pull request #11496 from sonninnos/x11-mouse-grab
(X11) Mouse grab fix
2020-10-27 20:50:14 +01:00
Tony Jansson dd07ff3a66 (X11) Mouse grab fix 2020-10-27 20:41:36 +02:00
Tony Jansson 58cb0286a8 Mouse grab fixes 2020-10-27 04:59:14 +02:00
Autechre 75abb44975 Merge pull request #11490 from barbudreadmon/gl_context_switching_v2
allow glcore for every cores using gl
2020-10-26 18:03:49 +01:00
Autechre e494821917 Merge pull request #11491 from jdgleaver/dingux-icon-name
OpenDingux: Update desktop entry name/comment
2020-10-26 18:02:51 +01:00
jdgleaver 34e5a9655f OpenDingux: Update desktop entry name/comment 2020-10-26 15:24:46 +00:00
barbudreadmon 1de6fc479e allow glcore for every cores using gl 2020-10-26 13:08:43 +01:00
Autechre a2ac81b747 Merge pull request #11486 from schellingb/translation_service_rjson
Replace custom JSON parser/writer in translation service with rjson
2020-10-26 08:03:34 +01:00
Bernhard Schelling cc1937a3af Fix possible output corruption in rjson
Was possible when translation service was adding a base64 encoded string with a length less than 1536 characters.
Introduced in commit c20b01e9e1.
2020-10-26 10:44:04 +09:00
Autechre 02f740e821 Merge pull request #11488 from justinweiss/3ds-free-smaller-blocks
[3DS] Free memory in smaller blocks when exiting
2020-10-26 01:59:10 +01:00
Justin Weiss 082f83a08e [3DS] Free memory in smaller blocks when exiting
This works around an occasional kernel panic when freeing larger
blocks.
2020-10-25 16:06:28 -07:00
Autechre ce14fef217 Merge pull request #11481 from valadaa48/oga_gfx_surface_alignment
oga_gfx: use 32bit aligned surface and other cleanups
2020-10-25 17:32:33 +01:00
Bernhard Schelling c20b01e9e1 Replace custom JSON parser/writer in translation service with rjson 2020-10-25 21:43:30 +09:00
Autechre a16784b7c3 Merge pull request #11484 from guoyunhe/crowdin-20201025
Fetch translations from Crowdin
2020-10-25 02:41:25 +02:00
Guo Yunhe 6438f068d5 Fetch translations from Crowdin 2020-10-25 01:27:14 +08:00
twinaphex ee474b4feb Add missing string.h header include 2020-10-24 17:01:55 +02:00
Autechre 4f22bf3058 Merge pull request #11482 from libretro/vitagl_texture
[VITA] Fix name collision
2020-10-24 12:57:33 +02:00
Francisco José García García e649617297 [VITA] Fix name collision 2020-10-24 10:27:33 +02:00
valadaa48 82ce3ae632 oga_gfx: use 32bit aligned surface and other cleanups 2020-10-23 23:34:31 -04:00
Autechre ccbff758b4 Merge pull request #11478 from sonninnos/ui-menu-reorder
Reorganize User Interface menu
2020-10-24 01:34:20 +02:00
Autechre d9af8ea9ec Merge pull request #11480 from jdgleaver/scale2x-refactor
Refactor Scale2x video filter (crash fix + slight performance improvement)
2020-10-24 01:33:41 +02:00
jdgleaver feb3bd0794 Refactor Scale2x video filter (crash fix + slight performance improvement) 2020-10-23 23:43:23 +01:00
Tony Jansson 52c4062750 Reorganize User Interface menu 2020-10-23 18:55:32 +03:00
Autechre 4cf0ee273d Merge pull request #11477 from jdgleaver/dingux-makefile
OpenDingux: Reduce retroach binary size
2020-10-23 17:29:54 +02:00
jdgleaver a4b114462e OpenDingux: Reduce retroach binary size 2020-10-23 16:14:15 +01:00
twinaphex 079919b88f Add more conditionals 2020-10-23 04:48:15 +02:00
twinaphex e4ee73bfdf Add HAVE_CHEEVOS ifdefs 2020-10-23 04:44:33 +02:00
Autechre 6b3789513f Merge pull request #11476 from Jamiras/cheevos_core_options_blacklist
(cheevos) core options blacklist
2020-10-23 02:43:05 +02:00
Autechre 9b58163a0e Merge pull request #11474 from jdgleaver/ai-service-fixes
AI Service fixes
2020-10-22 17:38:55 +02:00
jdgleaver 3e52f318d5 AI Service fixes 2020-10-22 15:59:26 +01:00
Autechre 07571f7c22 Merge pull request #11471 from sonninnos/mouse-grabbing
Mouse grab improvements
2020-10-22 10:57:56 +02:00
Autechre ddef65f626 Merge pull request #11472 from sonninnos/disable_menu-fix
DISABLE_MENU final fix
2020-10-22 08:11:00 +02:00
Tony Jansson da3f7d7d70 DISABLE_MENU final fix 2020-10-22 03:44:05 +03:00
Tony Jansson f98fc6de9e Mouse grab improvements 2020-10-22 00:49:31 +03:00
Autechre db9b18bc03 Merge pull request #11469 from sonninnos/disable_menu-fix
DISABLE_MENU fix
2020-10-21 22:43:41 +02:00
Tony Jansson 2dd03cc0d2 DISABLE_MENU fix 2020-10-21 23:34:32 +03:00
Autechre f129731b41 Merge pull request #11468 from sonninnos/label-tweak
US msg label tweaks
2020-10-21 22:30:24 +02:00
Tony Jansson 081ebba417 US msg label tweaks 2020-10-21 18:25:38 +03:00
Autechre 81cfb8b07d Merge pull request #11467 from jdgleaver/menu-state-slot-cap
Cap 'State Slot' drop-down list to a maximum of 1000 (+Auto) entries
2020-10-21 14:14:25 +02:00
jdgleaver 3df204d506 Cap 'State Slot' drop-down list to a maximum of 1000 (+Auto) entries 2020-10-21 11:32:33 +01:00
Jamiras 2291590d12 allow CSV of valid options 2020-10-20 20:58:34 -06:00
Autechre 179bc894ec Merge pull request #11464 from sonninnos/cli-closing
Add option for quitting on close content
2020-10-20 21:53:40 +02:00
Autechre 0b6c8243ff Merge pull request #11465 from sonninnos/nitpicks
Minor command_event nitpicks
2020-10-20 21:53:06 +02:00
Tony Jansson 041b6811f4 Minor command_event nitpicks 2020-10-20 22:02:18 +03:00
Tony Jansson 46d516f066 Add option for quitting on close content 2020-10-20 21:45:03 +03:00
Autechre 89ddb5c314 Merge pull request #11462 from jdgleaver/api-audio-latency
Add API extension for overriding frontend audio latency
2020-10-20 18:52:03 +02:00
Jamiras f58130bb64 disable achievement hardcore mode when certain core options are enabled 2020-10-20 10:37:05 -06:00
jdgleaver af6c2d6969 Add API extension for overriding frontend audio latency 2020-10-20 15:37:34 +01:00
Autechre e195aa3b3d Merge pull request #11458 from jdgleaver/remove-audio-filter
Add 'Remove DSP Plugin' menu entry
2020-10-19 17:40:20 +02:00
jdgleaver a02fadeb94 Add 'Remove DSP Plugin' menu entry 2020-10-19 11:33:15 +01:00
Autechre 775ea737f2 Merge pull request #11457 from jdgleaver/hide-shader-delay
Hide 'Auto-Shader Delay' menu setting when shaders are unavailable
2020-10-19 12:24:00 +02:00
jdgleaver 4e2696e12d Hide 'Auto-Shader Delay' menu setting when shaders are unavailable 2020-10-19 10:19:50 +01:00
Autechre f626abacd7 Merge pull request #11454 from sonninnos/config-defaults
Clean vs reset configuration matching redux
2020-10-18 19:15:59 +02:00
Tony Jansson 39b194d306 Clean vs reset configuration matching redux 2020-10-17 22:15:49 +03:00
Autechre 088f4a97ba Merge pull request #11453 from libretro/revert-11448-config-defaults
Revert "Clean vs reset configuration matching"
2020-10-17 19:02:40 +02:00
Autechre 4fd92ec667 Revert "Clean vs reset configuration matching" 2020-10-17 19:02:28 +02:00
twinaphex 2f5ae397c2 Revert "Add HAVE_XMB ifdefs"
This reverts commit 9aa395ecce.
2020-10-17 19:00:58 +02:00
twinaphex f42bcf978c Revert "Add HAVE_XMB ifdefs here"
This reverts commit 0dfbf669df.
2020-10-17 19:00:48 +02:00
twinaphex 0dfbf669df Add HAVE_XMB ifdefs here 2020-10-17 18:50:00 +02:00
twinaphex 9aa395ecce Add HAVE_XMB ifdefs 2020-10-17 18:40:32 +02:00
Autechre aa04d3ccdd Merge pull request #11451 from jdgleaver/api-audio-buffer-status
Add API extension for cores to monitor frontend audio buffer occupancy
2020-10-17 17:56:11 +02:00
jdgleaver 4961252a7a Add API extension for cores to monitor frontend audio buffer occupancy 2020-10-17 15:06:03 +01:00
twinaphex 549b72c7c8 Attempt to fix builds for 3DS 2020-10-17 12:42:44 +02:00
Autechre 3cdd21e67e Merge pull request #11447 from libretro/vitashark
Update VitaGL to latest master
2020-10-17 12:34:45 +02:00
Autechre 07e4c9673e Merge pull request #11448 from sonninnos/config-defaults
Clean vs reset configuration matching
2020-10-17 12:34:27 +02:00
Francisco Javier Trujillo Mata a16f3d2f7c Add bootstrap before compilation for PSP 2020-10-17 00:42:46 +02:00
Francisco Javier Trujillo Mata 45d2e93834 FIX typo for PSP compilation 2020-10-17 00:22:18 +02:00
Tony Jansson 1825f52353 Clean vs reset configuration matching 2020-10-17 00:09:06 +03:00
Francisco José García García 971a2a394e [VITA] Fix VitaGL symbol changes 2020-10-16 20:29:17 +02:00
Francisco José García García c44e06c7d8 Merge commit '8838992085f3d5d8d5a2b5ab80aad72b5cc69a5f' 2020-10-16 20:24:44 +02:00
Francisco José García García 8838992085 Squashed 'deps/vitaGL/' changes from 2934af8af0..81403e2751
81403e2751 Fix error requiring HAVE_SHARK to be enabled to build. (#45)
58551e1f52 Added possibility to change runtime shader compiler optimization flags.
77ab50a7b1 Added GL_BGR and GL_BGRA texture formats support.
0ac2793bcf Fix error in texture wrapping options. (#42)
0d2110ac7b Improvements to GL buffer support. (#41)
cf86149a85 Added proper compressed texture support. (#40)
8b0a0f735a Unbinded textures and texture units concepts.
1b04851efc Added glUniform2i and glUniform2f implementations.
9a65397ef6 Properly checking for uniform locations existence.
91c557f35d Added support for GL_SHORT attribute types for shaders.
3237fd3fe3 Added vglTexImageDepthBuffer function.
f58b3818f2 Typo fix on mag filter setting.
ee11f7e1d0 Added vglHasRuntimeShaderCompiler function.
3596242f73 Add PowerVR texture compression (PVRTC) support (#39)
2ae694df4b Added support for mipmaps filtering.
af7804b44c Added vglGetGxmTexture implementation.
54b1df4ca2 Removed unused arguments.
7c2ed742ee Allow to call vglBind*Location funcs with wrong param names.
8be84ff698 Fixed RGB565 color conversion.
234ff57f65 Properly setting a single stream with packed attributes.
d3b28a5e32 Fix for correct vglBindAttribLocation behaviour.
46e72d3564 Use a single stream for packed attributes.
72a39315e9 Properly dealing with missing attrs in glGetUniformLocation.
a6269ce574 Added TEXUNIT1 support for custom shaders.
824d43073e Resetting custom shaders uniforms only when invalidated.
d242570161 Minor fix in glShaderSource.
bc28bd946d Added glGetShaderInfoLog implementation.

git-subtree-dir: deps/vitaGL
git-subtree-split: 81403e2751c4dc28cf17cc89a5ab053eb2c5af67
2020-10-16 20:24:43 +02:00
Francisco Javier Trujillo Mata 68e4ae5dd1 Add PSP compilation for gitlab (#11446)
* Add PSP compilation for gitlab

* Add variable to define the number of cores used
2020-10-16 18:49:43 +02:00
Autechre e78bc1c985 Merge pull request #11445 from sonninnos/menu-visibilities
Add remaining settings menu visibilities
2020-10-16 03:46:57 +02:00
twinaphex ba6d575d78 Cleanup 2020-10-16 01:07:04 +02:00
Tony Jansson 9902ad0b49 Add remaining settings menu visibilities 2020-10-16 01:57:34 +03:00
twinaphex b1967d649c Cleanup 2020-10-16 00:34:35 +02:00
twinaphex 2fb60e9510 Cleanup 2020-10-16 00:24:59 +02:00
Francisco Javier Trujillo Mata bd1d64e1c3 Add PS2 compilation for PS2 2020-10-15 19:00:29 +02:00
twinaphex 5f8c270d4c Make update_time_callback a part of the animation struct 2020-10-15 08:35:37 +02:00
twinaphex a7f4e534ed Cleanup 2020-10-15 07:09:01 +02:00
twinaphex 24392446af Assume HAVE_THREAD_ATTR cannot be defined for Emscripten 2020-10-15 06:40:37 +02:00
twinaphex a3da521083 Cleanup get_user_language function 2020-10-15 06:17:57 +02:00
twinaphex e3972aff31 Turn variable const 2020-10-15 06:12:26 +02:00
twinaphex f066b944e8 Move rewind manager state variable to p_rarch 2020-10-15 06:04:20 +02:00
twinaphex a69b7cb063 Buildfix for Qt 2020-10-15 05:31:21 +02:00
twinaphex 44b7234756 Move cheat_manager and state_manager to root folder 2020-10-15 05:29:20 +02:00
twinaphex e703607e4f Cleanup 2020-10-15 04:58:38 +02:00
Autechre 74f4cd823f Merge pull request #11441 from sonninnos/savestate-logging
Savestate logging cleanup
2020-10-15 04:49:55 +02:00
Tony Jansson 6918b4b5cb Savestate logging cleanup 2020-10-15 03:54:53 +03:00
Autechre c319357573 Merge pull request #11440 from sonninnos/keyboard-fixes
(DINPUT+WINRAW) Keyboard fixes
2020-10-14 23:32:17 +02:00
Tony Jansson c2e8752395 (DINPUT+WINRAW) Keyboard fixes 2020-10-14 21:23:06 +03:00
twinaphex e8a7195a46 Rename gfx_timer_start to gfx_animation_timer_start 2020-10-14 07:26:24 +02:00
twinaphex 379bd80cda Get rid of gfx_animation_ctl 2020-10-14 04:40:20 +02:00
twinaphex fd17661e02 Cleanups 2020-10-14 04:15:42 +02:00
twinaphex b6039b1638 Cleanups 2020-10-14 04:05:32 +02:00
twinaphex 7c48e77bcd Get rid of getter functions 2020-10-14 02:33:15 +02:00
twinaphex ac03578617 Remove some getter functions 2020-10-14 02:24:18 +02:00
twinaphex 992e780407 Get rid of gx_timer_kill 2020-10-14 02:09:39 +02:00
twinaphex 6e09eada2d Cleanups 2020-10-14 01:02:22 +02:00
twinaphex 8802712ae7 Cleanups 2020-10-14 00:46:38 +02:00
Autechre c030e47f73 Merge pull request #11368 from barbudreadmon/glcore_context_switching
Glcore context switching
2020-10-13 22:13:14 +02:00
twinaphex 564e5f4aff Cleanup 2020-10-13 02:13:23 +02:00
Autechre 11406e07e8 Merge pull request #11438 from libretro/vita_memory
[VITA] Workaround: Increase memory threshold
2020-10-12 20:03:01 +02:00
Francisco José García García 085e592761 [VITA] Workaround: Increase memory threshold 2020-10-12 19:24:49 +02:00
Autechre 4951247979 Merge pull request #11436 from jdgleaver/dingux-frame-width
OpenDingux: Ensure SDL surface width is a multiple of 16 when using 'sdl_dingux' gfx driver (crash/glitch fix)
2020-10-12 17:24:27 +02:00
jdgleaver 6094e2c32a OpenDingux: Ensure SDL surface width is a multiple of 16 when using 'sdl_dingux' gfx driver (crash/glitch fix) 2020-10-12 12:16:44 +01:00
twinaphex c01e8d52a5 Small cleanups to vulkan_create_texture 2020-10-12 01:53:21 +02:00
twinaphex a11a0eae77 (Vulkan) Style nits 2020-10-12 01:36:50 +02:00
twinaphex 5c76ccbe4a Cleanups 2020-10-12 01:26:51 +02:00
twinaphex a6eaac2a84 Get rid of some static code analysis warnings 2020-10-12 00:00:54 +02:00
Autechre 009220bc3f Merge pull request #11434 from schellingb/rjson
New faster json parser/writer library rjson
2020-10-11 23:27:35 +02:00
Bernhard Schelling b90ce9b451 Fixes for Clang warnings 2020-10-12 05:25:12 +09:00
Bernhard Schelling c0cb3373e3 Fixes for CXX_BUILD 2020-10-12 04:30:45 +09:00
Autechre 0c052978f4 Merge pull request #11435 from justinweiss/restore-output-samples-buf-check
Add audio_driver_output_samples_buf checks back
2020-10-11 21:09:03 +02:00
Justin Weiss dc6dea4b84 Add audio_driver_output_samples_buf checks back
It's possible for audio_driver_active to be true after the driver has
been uninitialized and before it has been reinitialized, so these
checks are still necessary.
2020-10-11 11:56:06 -07:00
schellingb ba1ed2da4b New faster json parser/writer library rjson
Replace existing libraries jsonsax_full and jsonsax with it
2020-10-12 03:02:20 +09:00
Autechre b5836a6cb3 Merge pull request #11432 from justinweiss/3ds-use-condvar
[3DS] Use the CondVar API for condition variables
2020-10-11 07:47:22 +02:00
Justin Weiss 1ee7b71884 [3DS] Use the CondVar API for condition variables
The pthread wrapper uses semaphores to simulate condition variables,
but it is easy to hit the 3DS' limit of available semaphores. libctru
2.0 supplies a lightweight condition variable API. We will use that
when it exists, and backport it when it doesn't.
2020-10-10 19:31:08 -07:00
Autechre 38ccca18f4 Merge pull request #11429 from natinusala/ozone-wiggle-wraparound
ozone: implement wiggling for main menu when wrap-around is disabled
2020-10-10 19:02:45 +02:00
twinaphex 7e84d9a93b Reorder struct 2020-10-10 18:14:03 +02:00
twinaphex 81fc3a1361 Cleanups 2020-10-10 18:10:22 +02:00
twinaphex cb45f08db8 Cleanups 2020-10-10 18:02:02 +02:00
twinaphex e16dd186b7 Cleanups 2020-10-10 17:58:32 +02:00
twinaphex be47a72af5 Cleanups 2020-10-10 17:55:06 +02:00
twinaphex 92f17b8d46 Add more global warnings 2020-10-10 17:44:56 +02:00
twinaphex 68e56a2345 Add warning to update_time_callback 2020-10-10 17:36:29 +02:00
twinaphex 12c1677697 Small cleanup 2020-10-10 17:27:39 +02:00
natinusala 6619760e6f ozone: implement wiggling for main menu when wrap-around is disabled 2020-10-10 16:20:46 +02:00
Autechre 6767f0f0c3 Merge pull request #11430 from valadaa48/drm_gfx_race_condition
drm_gfx: fix race conditions
2020-10-10 06:16:58 +02:00
valadaa48 c6aaa0076b drm_gfx: fix race condition in drm_surface_set_aspect 2020-10-10 00:04:09 -04:00
twinaphex f38db9e77c Header include cleanups 2020-10-09 20:23:13 +02:00
twinaphex d3dbfba8bc Avoid CXX_BUILD warning 2020-10-09 20:19:34 +02:00
twinaphex 8ea147c081 Turn these all static const 2020-10-09 20:18:33 +02:00
Autechre ca736269f6 Merge pull request #11428 from jdgleaver/video-filters-pt2
Further video filter additions
2020-10-09 19:58:26 +02:00
jdgleaver 54f2156954 Further video filter additions 2020-10-09 13:59:41 +01:00
Autechre 9ac393fa02 Merge pull request #11427 from justinweiss/free-smaller-blocks
[3DS] Free memory in 1MB blocks
2020-10-09 03:21:02 +02:00
twinaphex 9ff25e1fa2 Add warning 2020-10-08 18:21:10 +02:00
twinaphex 2e94f3d5d7 move ozone_pure_white to ozone userdata 2020-10-08 18:19:50 +02:00
Autechre 8a1711dd28 Merge pull request #11419 from whorsemaster/twilight_zone_ozone
(ozone) New Theme - Twilight Zone
2020-10-08 18:04:02 +02:00
Autechre 8e4dad3e4b Merge pull request #11426 from jdgleaver/dingux-default-paths
OpenDingux: Update default directory paths
2020-10-08 17:55:25 +02:00
jdgleaver 2bc705144f OpenDingux: Update default directory paths 2020-10-08 16:15:46 +01:00
Autechre d34c427f3f Merge pull request #11425 from jdgleaver/dingux-input
OpenDingux: Add 'sdl_dingux' input/joypad drivers and use by default
2020-10-08 15:22:30 +02:00
jdgleaver 2dc837850f OpenDingux: Add 'sdl_dingux' input/joypad drivers and use by default 2020-10-08 13:26:45 +01:00
Autechre 611ca29172 Merge pull request #11422 from Jamiras/cheevos_ach_list_sublabel
(cheevos) add sublabel and icon to achievement entry of quick menu
2020-10-07 23:36:12 +02:00
Jamiras 15af1aece5 add sublabel and icon to achievement entry of quick menu 2020-10-07 14:35:35 -06:00
Autechre 129852fb84 Merge pull request #11421 from Jamiras/cheevos_hardcore_pause
(cheevos) disable frame advance; delay pause spam in hardcore
2020-10-07 05:53:29 +02:00
Autechre a061540dd1 Merge pull request #11412 from Lennard599/IOS_fix_openURL_crash
IOSApp doesn't crash anymore when a file is shared to it
2020-10-06 21:36:55 +02:00
Francisco José García García 29becd8683 [VITA] Add CI/CD 2020-10-06 21:32:47 +02:00
Jamiras 96fc17f43c disable frame advance; delay pause spam in hardcore 2020-10-06 07:52:33 -06:00
whorsemaster deb13fcc4d (ozone) New Theme - Twilight Zone
new ozone theme
2020-10-05 18:17:27 -05:00
twinaphex 2588f51ff2 Fix CXX_BUILD 2020-10-06 00:54:37 +02:00
twinaphex f1b6a0dfb1 Add HAVE_THREADS ifdef 2020-10-05 23:52:39 +02:00
twinaphex 18d21d8f95 Cleanups 2020-10-05 22:01:31 +02:00
twinaphex d66541ba99 Turn function static 2020-10-05 21:54:07 +02:00
twinaphex 54f30e31a1 Cleanups 2020-10-05 21:44:13 +02:00
twinaphex 088e6b9e44 Move gfx_widgets_pure_white to dispwidget struct 2020-10-05 19:59:15 +02:00
twinaphex 90503f885b Move msg_queue_background to struct 2020-10-05 19:54:54 +02:00
twinaphex a7c54f1848 Move video_driver_thread pointer grabbing to retroarch.c 2020-10-05 18:13:53 +02:00
Autechre 21d3878d72 Merge pull request #11417 from jdgleaver/gekko-stat
(GEKKO) Remove trailing slash when calling retro_vfs_stat_impl()
2020-10-05 17:38:26 +02:00
jdgleaver b431285819 (GEKKO) Remove trailing slash when calling retro_vfs_stat_impl() 2020-10-05 15:16:58 +01:00
twinaphex d1dd0e9d60 Not sure why this printf was there 2020-10-05 16:01:40 +02:00
Autechre 1108385bff Merge pull request #11416 from jdgleaver/dingux-ipu-sharpness
OpenDingux: Enable selection of image interpolation method when using the 'sdl_dingux' gfx driver
2020-10-05 15:50:25 +02:00
jdgleaver 80f1da2fb1 OpenDingux: Enable selection of image interpolation method when using 'sdl_dingux' gfx driver 2020-10-05 14:34:21 +01:00
Autechre 35d7e0ccdf Merge pull request #11413 from jdgleaver/menu-explore-fix
Explore Menu: Fix heap buffer overflow on initialisation
2020-10-05 14:20:42 +02:00
Autechre a033f4ab62 Merge pull request #11414 from jdgleaver/cdrom-strcasestr
libretro-common/cdrom: Add missing compatibility header
2020-10-05 14:20:01 +02:00
Autechre b55e3d5bff Merge pull request #11415 from jdgleaver/gekko-mkdir
Fix directory creation on GEKKO platforms when path contains a trailing slash
2020-10-05 14:19:37 +02:00
jdgleaver 3c06a907ca Fix directory creation on GEKKO platforms when path contains a trailing slash 2020-10-05 10:59:55 +01:00
jdgleaver 6c8c8b73f2 libretro-common/cdrom: Add missing compatibility header 2020-10-05 10:28:45 +01:00
jdgleaver 0207fbf7b5 Explore Menu: Fix heap buffer overflow on initialisation 2020-10-05 10:15:54 +01:00
lennardkittner 43245c0d9f - Deleted deprecated openURL method
- Now using self.documentsDirectory
- ROMs are saved to documents directory
2020-10-05 09:18:28 +02:00
Autechre 1496fda9bf Merge pull request #11406 from natinusala/ozone-cursor-wiggle
ozone: add cursor wiggle animation
2020-10-04 20:06:40 +02:00
natinusala 6d1660fcbd ozone: add cursor wiggle animation 2020-10-04 19:08:42 +02:00
lennardkittner f8726fccb0 - App doesn't crash anymore when a file is shared to it.
- A shared file is copied to /Documents/roms.
2020-10-04 17:53:39 +02:00
Autechre 6846295f09 Merge pull request #11411 from jdgleaver/dingux-invalid-video-mode
OpenDingux/sdl_dingux: Prevent crash when selecting invalid video modes + optimisations
2020-10-04 13:01:59 +02:00
jdgleaver 472f01e0e6 OpenDingux/sdl_dingux: Prevent crash when selecting invalid video modes + optimisations 2020-10-04 11:43:33 +01:00
twinaphex 0ad9175d77 (sinc resampler) We don't need to keep fetching these variables
within this inner loop
2020-10-03 21:20:32 +02:00
twinaphex 6c067d149d (Xaudio) Cleanups 2020-10-03 20:35:50 +02:00
twinaphex fbd4fc5094 Try to avoid having to repeatedly grab the pointer 2020-10-03 20:30:57 +02:00
twinaphex 326f40d598 Cleanup 2020-10-03 18:37:53 +02:00
twinaphex 467dd68fa4 Cleanup 2020-10-03 18:32:21 +02:00
twinaphex 0e4aa46335 Cleanups 2020-10-03 18:25:43 +02:00
twinaphex ecd72b5be6 (widgets) Get rid of get_ptr function calls 2020-10-02 22:23:51 +02:00
twinaphex f82b357f86 Remove getter gfx_widget_get_backdrop_orig 2020-10-02 22:12:05 +02:00
twinaphex 20371e5102 (gfx_thumbnail) get rid of small getters 2020-10-02 21:59:02 +02:00
twinaphex 5aa675e059 Cleanups 2020-10-02 21:39:46 +02:00
twinaphex 66deef29c6 Cleanups/style nits 2020-10-02 21:10:07 +02:00
twinaphex c6f5973281 Replace while(true) with for(;;) 2020-10-02 21:02:59 +02:00
twinaphex f84c6ec8cd Use STRLEN_CONST where possible; and don't needlessly do strlen
twice
2020-10-02 20:57:29 +02:00
twinaphex 12012b5041 (com-parser) Use STRLEN_CONST 2020-10-02 20:50:11 +02:00
Autechre 7517ea081a Merge pull request #11404 from jdgleaver/qt-shader-fix
Qt shader fix
2020-10-02 19:07:08 +02:00
jdgleaver e1890bd08e Fix Qt shaders dialog 2020-10-02 17:48:45 +01:00
jdgleaver d686d73e7a Revert "Buildfix --disable-menu - bake out shader params for desktop menu if"
This reverts commit dd6924a940.
2020-10-02 17:20:23 +01:00
Autechre 8379a0b40c Merge pull request #11403 from jdgleaver/dingux-integer-scaling
OpenDingux: Enable integer scaling when using the 'sdl_dingux' gfx driver
2020-10-02 18:10:05 +02:00
jdgleaver bbba80f01e OpenDingux: Enable integer scaling when using the 'sdl_dingux' gfx driver 2020-10-02 16:38:42 +01:00
twinaphex 99c239bcee (Ozone) Don't call set_alpha if alpha value is the same as last time 2020-10-02 14:38:05 +02:00
twinaphex 0bfbf81b49 Cleanups 2020-10-02 14:33:35 +02:00
barbudreadmon 5bb90ecf46 compatibility with targets lacking glcore 2020-10-02 14:28:57 +02:00
twinaphex 4adfaa07fc Cleanups 2020-10-02 14:16:12 +02:00
twinaphex 079c2dadff (gfx_display.c) Do early returns before computing a bunch of stuff 2020-10-02 14:07:01 +02:00
twinaphex cd469d3fb2 gfx_widgets_draw_regular_msg - optimization - only set alpha colors
again if alpha hasn't already been applied
2020-10-02 13:33:05 +02:00
twinaphex 2594bd2cf6 Some static globals can be moved to functions 2020-10-02 13:30:57 +02:00
twinaphex c45e7c9bc5 Cleanup 2020-10-02 11:36:11 +02:00
twinaphex a38ecbe7de gfx_widgets_iterate - cleanup 2020-10-02 11:32:49 +02:00
twinaphex c736f2ce28 Cleanups 2020-10-02 11:00:19 +02:00
Autechre 0eddffb319 Merge pull request #11397 from sonninnos/keydesc-cleanup
Key descriptor cleanup
2020-10-01 19:22:40 +02:00
twinaphex 902647c6fe (XMB) Cleanups 2020-10-01 19:12:26 +02:00
Autechre 27acbfc2f9 Merge pull request #11399 from jdgleaver/typo-fix
Fix typo in menu_cbs_ok.c
2020-10-01 18:41:43 +02:00
jdgleaver a04d5c3772 Fix typo in menu_cbs_ok.c 2020-10-01 17:37:04 +01:00
twinaphex 2e752d93cc Cleanup 2020-10-01 18:34:01 +02:00
twinaphex cecd48e6b5 gfx_display_draw_cursor - take out early return 2020-10-01 18:22:29 +02:00
Autechre 8e5596873a Merge pull request #11398 from jdgleaver/rg350m
OpenDingux port improvements: Phase 1
2020-10-01 17:53:54 +02:00
twinaphex 899ad1cf88 Buildfix for OSX 2020-10-01 17:22:00 +02:00
jdgleaver 3bd66cc14d OpenDingux port improvements: Phase 1 2020-10-01 15:56:14 +01:00
Tony Jansson 3b76949699 Key descriptor cleanup 2020-10-01 17:34:49 +03:00
twinaphex 9444117b67 Buildfix 2020-10-01 15:37:21 +02:00
twinaphex dd6924a940 Buildfix --disable-menu - bake out shader params for desktop menu if
HAVE_MENU is not set
2020-10-01 13:04:13 +02:00
twinaphex 9be7da9665 --disable-menu buildfixes 2020-10-01 12:56:30 +02:00
twinaphex e8ab0a892a gfx_display_get_adjusted_scale_internal - cleanup 2020-10-01 12:33:58 +02:00
twinaphex 4f82c26f6c Cleanups 2020-10-01 12:26:49 +02:00
twinaphex 48a2e0528d gfx_display_font_file - cleanup 2020-10-01 12:24:17 +02:00
twinaphex d08a3b2310 These functions were never used 2020-10-01 12:22:56 +02:00
twinaphex 4965b78ea3 PARTICLES_COUNT doesn't seem used anymore 2020-10-01 12:21:57 +02:00
twinaphex 497f2d92b5 gfx_widgets_ai_service_overlay_load - cleanup 2020-10-01 12:20:34 +02:00
Autechre 4b3f8b4a09 Merge pull request #11395 from stenzek/d3d11-gpu-reset
(video/d3d11) Skip shader/stock blend when we don't have a texture
2020-10-01 11:46:18 +02:00
Connor McLaughlin 696df6e916 (video/d3d11) Skip shader/stock blend when we don't have a texture
This happens if the core calls video_cb with the frame set to null on
the first frame, and was causing black screens/driver resets.

The ffmpeg core seems to do this.
2020-10-01 19:19:13 +10:00
twinaphex a02f8a24fa Get rid of forward declarations 2020-10-01 11:06:59 +02:00
twinaphex fe38cd9cbc (gfx widgets) get rid of more getter functions 2020-10-01 10:55:37 +02:00
twinaphex dee807cb54 (gfx widgets) Start removing a lot of getter functions 2020-10-01 10:50:45 +02:00
Autechre 2cdb1b6982 Merge pull request #11394 from stenzek/d3d11-scissor
(video/d3d11): Fix shaders with scaled framebuffers
2020-10-01 09:52:24 +02:00
Connor McLaughlin 10bbe119a7 (video/d3d11): Fix shaders with scaled framebuffers
The scissor rectangle was left as whatever the core last used.
2020-10-01 16:53:19 +10:00
twinaphex 1e6828fd63 Cleanups 2020-09-30 19:18:40 +02:00
twinaphex f8b828e623 gfx_display_draw_bg - cleanups 2020-09-30 18:56:46 +02:00
twinaphex 8683f68ccb Cleanup 2020-09-30 18:52:22 +02:00
Autechre 7f3b1c69e3 Merge pull request #11392 from stenzek/d3d11
(video/d3d11) Fix background in menus, and shaders for hardware renderers
2020-09-30 17:57:27 +02:00
Connor McLaughlin 30c6f90c93 (video/d3d11) Use cached view as the slang source texture
Fixes shaders in D3D11 driver.
2020-10-01 00:19:11 +10:00
Connor McLaughlin 12382c057a (video/d3d11) Cache view left bound by hw renderers
Fixes garbage/black screen when menu is active.
2020-10-01 00:19:11 +10:00
twinaphex 0642ea6d5d Remove gfx_display_snow 2020-09-30 15:57:21 +02:00
twinaphex 7e597c3fd0 Cleanups 2020-09-30 15:47:03 +02:00
twinaphex 3072342b2c Backport libretro-common changes 2020-09-30 14:50:17 +02:00
Autechre f0430aa543 Merge pull request #11391 from p-sam/switch/input-fix
libnx: fix touch, mouse and KB input
2020-09-30 10:15:47 +02:00
p-sam 059cd08530 libnx: fix touch, mouse and KB input 2020-09-30 09:23:28 +02:00
barbudreadmon 1ed6bfb31f allow context switching from gl to glcore (fix typo) 2020-09-29 15:50:02 +02:00
Autechre d7a321fdbb Merge pull request #11389 from jdgleaver/keymap-fix
(udev/linuxraw/wayland) Fix return key keyboard input
2020-09-29 12:44:18 +02:00
jdgleaver 3fa1166ec4 (udev/linuxraw/wayland) Fix return key keyboard input 2020-09-29 11:23:35 +01:00
Justin Weiss 5756ff0b16 [3DS] Free memory in 1MB blocks
When freeing large blocks of memory, the 3DS may kernel panic. Freeing
in smaller blocks seems to avoid the crashes.
2020-09-28 19:12:15 -07:00
twinaphex 0ec93e7fff (gfx_display) Cleanups 2020-09-28 07:22:52 +02:00
twinaphex 6ff934bf94 Buildfix 2020-09-28 05:07:18 +02:00
twinaphex 1e61480e0a Get rid of get/set_header_height 2020-09-28 05:06:02 +02:00
twinaphex 2ca6737ec3 (XMB) doesn't use header height 2020-09-28 04:58:34 +02:00
twinaphex 03ff504aa8 Remove gfx_display_scissor_end 2020-09-28 04:04:16 +02:00
twinaphex d44ab6facf framebuffer_dirty functions - remove these and set member variables
directly in rgui.c and retroarch.c
2020-09-28 03:49:13 +02:00
twinaphex f38eb84cc7 Move gfx_display_draw_text to retroarch.c and get rid of
video_driver_set_osd_msg
2020-09-28 03:38:16 +02:00
twinaphex 9d6bfabd02 Move reset_list_buffer to gfx_widgets and turn it into a static function 2020-09-28 03:30:22 +02:00
twinaphex 783bcb7a61 Avoid printf/puts 2020-09-28 03:17:21 +02:00
twinaphex 2e5bfd74ec Optimize explore_check_company_suffix 2020-09-27 23:56:15 +02:00
Autechre 3c2280b2b2 Merge pull request #11386 from Jamiras/cheevos_discord
(cheevos) don't update discord rich presence when paused
2020-09-27 23:44:29 +02:00
Jamiras 8bc02e2df2 don't update discord rich presence from retroachievements when paused 2020-09-27 14:45:14 -06:00
twinaphex c744baeb89 Add ctype variants to stdstring and use it in RA 2020-09-27 22:15:32 +02:00
twinaphex f1432db433 Cleanup 2020-09-27 20:44:31 +02:00
twinaphex e9e25aae7d res.val.bool_ was being set a second time to 0 unnecessarily 2020-09-27 20:41:02 +02:00
twinaphex edf8fd99c7 (libretro-db) query.c - get rid of strlen call in query_peek 2020-09-27 20:38:08 +02:00
twinaphex b829c7c1f8 (libretro-db) Cleanups - get rid of some goto labels, simplify one
conditional
2020-09-27 20:21:54 +02:00
twinaphex e159ba1542 Cleanups 2020-09-27 02:48:40 +02:00
twinaphex e87b44a68c Remove stub functions in null display driver 2020-09-27 00:18:16 +02:00
twinaphex 7225170e97 Cleanups 2020-09-26 23:51:59 +02:00
twinaphex c91df88fe2 Cleanups 2020-09-26 23:39:15 +02:00
twinaphex a56673e52d MSVC buildfix 2020-09-26 23:37:03 +02:00
twinaphex c0470854d4 Cleanups 2020-09-26 23:33:59 +02:00
twinaphex b830d15628 (drivers_display) Cleanups 2020-09-26 23:31:12 +02:00
twinaphex e1dbf5dab1 Remove drivers_display viewport - was unused 2020-09-26 22:01:23 +02:00
twinaphex fbe0924d44 Remove some stub functions 2020-09-26 21:40:16 +02:00
twinaphex e428166a05 Remove unused gfx_display_get_framebuffer_pitch 2020-09-26 20:04:55 +02:00
twinaphex f22488f620 gfx_display_coords_array_reset unused - remove 2020-09-26 20:03:20 +02:00
twinaphex 14c9ccfda8 Remove gfx_display_{set/get}_driver_id 2020-09-26 19:58:15 +02:00
Autechre 3e55f067ed Merge pull request #11382 from Jamiras/cheevos_lboard_opts
(cheevos) allow disabling leaderboard notifications and trackers separately
2020-09-26 18:48:17 +02:00
Jamiras 376342a2c3 hook up reset for all config_string_options 2020-09-26 09:59:50 -06:00
Jamiras 02ddbc41cc allow disabling leaderboard notifications and trackers separately 2020-09-25 19:28:56 -06:00
Autechre 9ca09e872e Merge pull request #11380 from jdgleaver/video-filter-xrgb888
Gameboy/Dot_Matrix video filters: Add XRGB8888 support
2020-09-25 18:38:57 +02:00
jdgleaver 6c549d687c Gameboy/Dot_Matrix video filters: Add XRGB8888 support 2020-09-25 16:32:24 +01:00
Autechre 6cc058b390 Merge pull request #11376 from jdgleaver/video-filter-fix
Fix video filters for builds where both 'HAVE_DYLIB' and 'HAVE_FILTERS_BUILTIN' are defined
2020-09-25 17:10:37 +02:00
Autechre fb175c877c Merge pull request #11377 from jdgleaver/default-overlay-fix
(Mobile) Fix default overlay assignment
2020-09-25 17:10:13 +02:00
Autechre eab0098216 Merge pull request #11379 from jdgleaver/keyboard-mapping-fix
Prevent out of bounds array acces when using left/right to remap 'Keyboard' device type inputs
2020-09-25 17:09:50 +02:00
jdgleaver e8b8d3c71b Prevent out of bounds array acces when using left/right to remap 'Keyboard' device type inputs 2020-09-25 12:40:22 +01:00
jdgleaver 2155438794 (Mobile) Fix default overlay assignemnt 2020-09-25 11:15:33 +01:00
jdgleaver b8fb26c196 Fix video filters for builds where both 'HAVE_DYLIB' and 'HAVE_FILTERS_BUILTIN' are defined 2020-09-25 10:51:46 +01:00
twinaphex bc43db1789 Remove gfx_display_get_coords_array 2020-09-25 10:31:07 +02:00
Autechre 7d8518ec45 Merge pull request #11373 from Jamiras/cheevos_lboard_display
(cheevos) add display widget for active leaderboards
2020-09-25 03:38:03 +02:00
twinaphex c0a790e74a Buildfix for platforms that don't have widget support 2020-09-24 22:20:12 +02:00
Autechre 81a12dec63 Merge pull request #11371 from jdgleaver/video-filters
Add several LCD-effect video filters
2020-09-24 22:16:04 +02:00
Autechre c45f463111 Merge pull request #11372 from yoshisuga/ios-fix-mfi
[iOS][tvOS] Fix declaration of input driver init method
2020-09-24 22:15:02 +02:00
Jamiras 71cd400e56 add display widget for active leaderboards 2020-09-24 11:29:29 -06:00
Yoshi Sugawara f70aed431d [iOS][tvOS] Fix declaration of input driver init method 2020-09-24 07:21:08 -10:00
jdgleaver 3d4ddebcaf Add several LCD-effect video filters 2020-09-24 16:11:07 +01:00
Twinaphex e0d04c29bc Fix regression 2020-09-24 09:39:02 +02:00
twinaphex 8c440ef72c Optimize gfx_display_draw_keyboard 2020-09-24 09:07:47 +02:00
twinaphex eb0376fe7d Do white texture freeing outside of gfx_display_init_white_texture 2020-09-24 07:03:24 +02:00
twinaphex a74d24c3ce Rename gfx_display_allocate_white_texture to
gfx_display_init_white_texture
2020-09-24 06:46:21 +02:00
twinaphex 5f89551e54 Cleanups 2020-09-24 06:37:25 +02:00
twinaphex 515e119861 Get rid of gfx_animation_get_delta_time 2020-09-24 06:14:04 +02:00
twinaphex 2ab0300c33 gfx_display.c - can drop dependency now on gfx_animation.h 2020-09-24 06:00:32 +02:00
twinaphex 37237db804 GFX_DISPLAY_GET_UPDATE_PENDING - turn function into macro 2020-09-24 05:59:14 +02:00
twinaphex c040e4cd08 Cleanups 2020-09-23 22:14:30 +02:00
twinaphex 4fb2065061 Get rid of gfx_display_draw_pipeline 2020-09-23 21:56:48 +02:00
twinaphex 557b445b27 Cleanups 2020-09-23 21:44:23 +02:00
twinaphex 5a481d8653 Get rid of gfx_display_blend_{begin/end} 2020-09-23 21:37:18 +02:00
twinaphex 1d8bee45e0 Add TODO/FIXME note 2020-09-23 20:40:28 +02:00
twinaphex a0ae6be35b Stop using small wrapper functions in gfx_display 2020-09-23 20:36:25 +02:00
Autechre 7938a5e3ac Merge pull request #11366 from sonninnos/vulkan-minimized-cpu
(Vulkan) Fix CPU usage when minimized
2020-09-23 17:22:07 +02:00
barbudreadmon eed47273fb fix crash when using RETRO_ENVIRONMENT_SET_HW_SHARED_CONTEXT 2020-09-23 12:34:00 +02:00
barbudreadmon 96e6f99f14 allow context switching from gl to glcore 2020-09-23 11:29:44 +02:00
twinaphex 43b43351fa Start making gfx_display_blend_begin and gfx_display_blend_end
unnecessary
2020-09-23 09:32:42 +02:00
Tony Jansson a0eee521e3 (Vulkan) Fix CPU usage when minimized 2020-09-23 04:17:30 +03:00
Autechre 08f46a44de Merge pull request #11362 from Jamiras/cheevos_unofficial_reset
(cheevos) sync menu reset value to default
2020-09-23 02:19:28 +02:00
Autechre 83ee43c218 Merge pull request #11365 from sonninnos/vulkan-reduce-logging
(Vulkan) Reduce log spam
2020-09-23 02:07:03 +02:00
Tony Jansson bb1c853ecd (Vulkan) Reduce log spam 2020-09-23 02:00:03 +03:00
Jamiras 1587165b56 sync reset value to default 2020-09-21 22:44:43 -06:00
Twinaphex b59c5f6ff9 Cleanup - remove unused variable 2020-09-22 04:52:31 +02:00
twinaphex 77abaac79c Get rid of duplicate function gfx_display_draw_blend 2020-09-22 04:13:53 +02:00
twinaphex bde4abfe8b (Gfx display driver) Get rid of unused restore_clear_color/clear_color 2020-09-22 04:03:19 +02:00
twinaphex 02985900c8 Get rid of unused gfx_display_restore_clear_color 2020-09-22 03:56:02 +02:00
twinaphex 6bb3e37d53 Get rid of gfx_display_clear_color 2020-09-22 03:54:22 +02:00
twinaphex 97225bfe64 (gfx_display.c) Cleanups 2020-09-22 03:53:10 +02:00
twinaphex d898304ee5 Get rid of gfx_display_draw_gradient 2020-09-22 03:29:48 +02:00
Autechre 5411948c2e Merge pull request #11361 from Jamiras/cheevos_toggles
(cheevos) restore ability to disable unofficial achievements and leaderboards
2020-09-22 03:22:06 +02:00
twinaphex 4bdd0ac697 Uniquely name static globals 2020-09-22 03:05:58 +02:00
twinaphex 236622ffa6 (Joypad driver) Init function - return void pointer 2020-09-22 02:30:47 +02:00
Jamiras b74c5d290c restore ability to disable unofficial achievements and leaderboards 2020-09-21 17:48:14 -06:00
twinaphex 2e79940ec5 Rename led_keyboard.c to led_win32_keyboard.c - add it to Griffin
- only include it for Win32 (no Xbox or UWP)
2020-09-21 22:01:26 +02:00
Autechre 4e6c367331 Merge pull request #11355 from sonninnos/keyboard-led-driver
Keyboard LED driver
2020-09-21 21:59:02 +02:00
Autechre 73badd6a08 Merge pull request #11357 from Alcaro/patch-10
Fix system mbedtls build
2020-09-21 21:57:31 +02:00
Tony Jansson 82a0f647ff Keyboard LED driver 2020-09-21 17:25:11 +03:00
Alcaro 3448ccb360 Fix system mbedtls build 2020-09-21 10:57:05 +02:00
twinaphex a117811936 (rapidjson) Remove unused files 2020-09-21 01:27:41 +02:00
twinaphex 9aa008834e Use strcpy_literal 2020-09-21 01:00:40 +02:00
twinaphex 98e9109d45 use strcpy_literal for string literals 2020-09-21 00:59:37 +02:00
twinaphex 7e0e3144be Cleanups 2020-09-21 00:55:05 +02:00
twinaphex b0c744c3d0 Turn some variables static that are not used outside the source
file
2020-09-21 00:52:32 +02:00
twinaphex 599f338d74 Use strcpy_literal for string literals 2020-09-21 00:36:07 +02:00
twinaphex f1d0de85fd Use strcpy_literal for string literals 2020-09-21 00:27:31 +02:00
twinaphex 8811c555fe (OSS) Buildfix 2020-09-20 23:33:13 +02:00
twinaphex e50d5af2db (OSS) Get rid of static globals 2020-09-20 23:30:19 +02:00
twinaphex 11b4043ef6 Struct reordering 2020-09-20 23:23:31 +02:00
twinaphex f8a71e8ea4 (Rwebaudio) Get rid of static global variables, put it in struct 2020-09-20 23:09:18 +02:00
twinaphex 45c257e0dd (Rwebaudio) Cleanups 2020-09-20 23:05:09 +02:00
twinaphex 5668a1da78 Turn this into global constant 2020-09-20 22:47:38 +02:00
twinaphex 443d2eda8e Add CXX_BUILTINBEARSSL 2020-09-20 18:27:06 +02:00
twinaphex 065d781df7 (X11) Buildfix 2020-09-20 18:16:02 +02:00
twinaphex 5bd71497c5 (dispserv X11) Get rid of static global variables 2020-09-20 18:13:00 +02:00
twinaphex f1f66597a3 Cleanups 2020-09-20 17:57:44 +02:00
twinaphex 8eeb612493 Cleanups 2020-09-20 17:50:06 +02:00
Autechre 240a2fee63 Merge pull request #11356 from Alcaro/master
./configure: Add BearSSL support
2020-09-20 17:40:11 +02:00
twinaphex 2d528fcf7d (360) Cleanups 2020-09-20 17:39:28 +02:00
Alcaro 62e72e756b ./configure: Add BearSSL support 2020-09-20 16:58:07 +02:00
twinaphex bdbfc80584 Cleanups 2020-09-20 03:06:23 +02:00
twinaphex 8ff4134a76 Cleanup 2020-09-20 00:17:11 +02:00
twinaphex eefcd0e99f Use strcpy_literal in more places 2020-09-20 00:12:54 +02:00
twinaphex 0e49f058f3 Use strcpy_literal in more places 2020-09-19 23:59:06 +02:00
twinaphex 1296fc4745 use strlcpy_literal for string literal copies 2020-09-19 23:28:01 +02:00
Autechre 7b600d46ad Merge pull request #11342 from Ophidon/master
Variable BFI
2020-09-19 22:24:47 +02:00
Ophidon 05c5bdf587 C89 Compliance
For loop iterators updated for C89 compliance.
2020-09-19 13:28:21 -04:00
Autechre 858b8c3344 Merge pull request #11348 from guoyunhe/crowdin-20200919
Fetch translations from Crowdin
2020-09-19 18:10:29 +02:00
Autechre 9eacbcd613 Merge pull request #11349 from Nargash/CheevosPass
extend cheevos password length to 255 characters
2020-09-19 18:09:52 +02:00
Autechre 6cd88283ff Merge pull request #11350 from valadaa48/oga_gfx_nits
oga_gfx: strlcpy + style nits
2020-09-19 18:09:33 +02:00
valadaa48 15708f5d44 oga_gfx: strlcpy, msg max len 128 + style nits 2020-09-19 11:23:59 -04:00
Nargash c0aecc70aa extend cheevos password length to 255 characters 2020-09-19 09:14:28 -05:00
Guo Yunhe aac8d11310 Fetch translations from Crowdin 2020-09-19 16:54:44 +03:00
twinaphex 2a3000793b Fix Griffin 2020-09-19 15:08:33 +02:00
Autechre a7a28906d3 Merge pull request #11344 from Alcaro/master
Add BearSSL support, as alternative to mbedTLS
2020-09-19 15:07:30 +02:00
twinaphex ca9683d58d C89 fixes - use C style comments instead of C++, style nits 2020-09-19 14:47:40 +02:00
Autechre 8a637341f3 Merge pull request #11346 from valadaa48/oga_gfx_rewrite
oga_gfx: rewrite
2020-09-19 14:40:22 +02:00
Autechre dd76040a2f Update CHANGES.md 2020-09-19 03:55:17 +02:00
Autechre dca02371e8 Merge pull request #11345 from valadaa48/rgui_3_2_aspect
RGUI: Add 3:2 and 3:2 (centered) aspects
2020-09-19 03:54:48 +02:00
valadaa48 7015e199bb oga_gfx: rewrite
- Drop libgo2 dep
- Use more features of RGA
- Triple buffer instead of double buffer
- Rewrite of message code to support surface caching, transluceny,
  and multiline message support. Messages also don't scale with the
  emulation frame anymore and are drawn directly to the frame buffer.
- Better support for aspect ratios
2020-09-18 21:24:10 -04:00
Alcaro 18f46e65ea Add BearSSL support 2020-09-19 00:31:36 +02:00
valadaa48 63fd0aa461 RGUI: Add 3:2 and 3:2 (centered) aspects 2020-09-18 18:31:33 -04:00
Alcaro 3849278b50 Add BearSSL as a vendored dependency 2020-09-19 00:31:20 +02:00
Autechre 6c496eeaab Merge pull request #11343 from Alcaro/patch-9
Fix --enable-debug build
2020-09-18 23:34:47 +02:00
Alcaro c7669fdce5 Fix --enable-debug build
libretro-common/audio/audio_mixer.c:195:32: error: unknown type name ‘rwav_t’
 static bool wav_to_float(const rwav_t* wav, float** pcm, size_t samples_out)
                                ^~~~~~

plus about 500 errors when trying to use that struct
2020-09-18 21:45:32 +02:00
Ophidon 2f36c94f3f Variable BFI
BFI support added for 180hz / 240hz / etc. Solves issue with image retention from voltage issues at 120hz BFI. Also disabled BFI while in menu, as if set to an incorrect value for the current refresh rate, could cause severe flickering and difficulty reverting to the correct value.
2020-09-18 11:57:32 -04:00
twinaphex 45bef61e36 Cleanups 2020-09-18 02:50:01 +02:00
twinaphex c2cd39379a (gfx_widgets.c) Put FIFO queue on stack 2020-09-18 02:18:21 +02:00
twinaphex 290c88b865 Remove menu_networking.c and merge it into menu_cbs_ok.c and
menu_displaylist.c
2020-09-17 23:15:25 +02:00
Twinaphex 0651185ea3 Cleanups 2020-09-17 21:57:35 +02:00
Autechre 27bb73dd37 Merge pull request #11340 from jdgleaver/overlay-autoscale
Add option to scale overlays automatically (with aspect ratio correction)
2020-09-17 21:09:43 +02:00
jdgleaver 8a5ebbf24d Add option to scale overlays automatically (with aspect ratio correction) 2020-09-17 17:23:07 +01:00
twinaphex 6234036d5d Get rid of RARCH_DRIVER_CTL_FIND_INDEX 2020-09-16 18:41:45 +02:00
twinaphex 95dbd11546 Style nits 2020-09-16 18:32:13 +02:00
twinaphex 95a1f1c64f Small cleanups 2020-09-16 18:22:06 +02:00
twinaphex 04b7844f92 Cleanup parse_context_setup 2020-09-16 18:20:25 +02:00
twinaphex 9858a72937 Change address and mitm_name to 256 2020-09-16 17:16:23 +02:00
Autechre 1123042f20 Merge pull request #11338 from alphanu1/master
Low resolution fix
2020-09-16 16:49:42 +02:00
twinaphex 0b34aa446c struct netplay_room - lower coreversion to 255 chars 2020-09-16 16:46:23 +02:00
Ben b33f0b9121 low resoluiton fis for RetroArch exit
On exit changes
2020-09-16 14:13:04 +01:00
Ben 17809688a6 Fix for low resoltion crash
256x240 resolutions and lower are now working
2020-09-16 14:07:15 +01:00
Ben 382044b5bf Low resolution switch bug fix
This allows resolutions lower that 32x224 like 256x224 to work
2020-09-16 13:49:34 +01:00
twinaphex 42fdb30300 struct netplay_room - reduce char arrays based on how big these
entries can be
2020-09-16 13:23:19 +02:00
twinaphex 24ce413816 (netplay_room) country can never be longer than 2 characters 2020-09-16 13:11:23 +02:00
twinaphex 4e594c6437 Move win32_window_init outside of ui_win32.c and to gfx/common/win32_common.c 2020-09-16 10:29:50 +02:00
Twinaphex 4c1c0cc80d webServerDidCompleteBonjourRegistration - cleanup some code
duplication
2020-09-16 10:12:43 +02:00
Twinaphex f8b4477b9a (Cocoa) Cleanups; group things together under TARGET_OSX and TARGET_IOS 2020-09-16 10:09:03 +02:00
twinaphex e15018a85a Cleanups 2020-09-15 21:12:27 +02:00
twinaphex ca413ff132 (Cocoa) Cleanups 2020-09-15 21:03:27 +02:00
twinaphex de68ce185c (Cocoa) Cleanups 2020-09-15 21:00:22 +02:00
Twinaphex 62f4eae323 (Cocoa) Cleanups 2020-09-15 20:53:48 +02:00
Twinaphex 86c0ffaf39 (Cocoa) Cleanups 2020-09-15 20:50:20 +02:00
Twinaphex eaf540e563 Cleanups 2020-09-15 20:45:42 +02:00
twinaphex ddfbd38610 Cleanups 2020-09-15 20:40:24 +02:00
twinaphex c9938eb316 Cleanups 2020-09-15 19:48:43 +02:00
Twinaphex 3b24bb21e5 Remove unused variables 2020-09-15 19:38:07 +02:00
Twinaphex cec774ba3b RAMenuBase can be removed now 2020-09-15 19:36:40 +02:00
twinaphex 9245e3bd6b Cleanups 2020-09-15 19:30:44 +02:00
twinaphex 91205d17f6 Cut down on else codeblock here - it's identical 2020-09-15 18:59:45 +02:00
Autechre fb0c6899ae Merge pull request #11334 from Jamiras/rcheevos_runtime
(cheevos) use rcheevos for trigger management
2020-09-15 17:31:16 +02:00
Jamiras 9f992eb709 Merge branch 'master' into rcheevos_runtime 2020-09-15 09:09:30 -06:00
Jamiras 7e348b98f7 address travis error 2020-09-15 09:09:02 -06:00
twinaphex a49b81c161 Cleanup 2020-09-15 11:48:56 +02:00
twinaphex 26b2295759 (cocoa_gl_ctx.m) Style nits 2020-09-15 11:28:04 +02:00
twinaphex c436ac83cd Call gl2_set_viewport directly 2020-09-15 11:11:32 +02:00
twinaphex 3a37e13a54 Call video_driver_set_viewport directly 2020-09-15 11:05:47 +02:00
twinaphex c133c2a10c (Cocoa GL ctx) Add updateSel 2020-09-14 23:59:42 +02:00
twinaphex d8406baf33 Cleanups 2020-09-14 23:14:26 +02:00
twinaphex f7ae8001ad Cleanups 2020-09-14 21:55:00 +02:00
twinaphex 6bac58b902 Cleanups 2020-09-14 21:55:00 +02:00
Twinaphex 13e553a34b get_backing_scale_factor - use class_respondsToSelector 2020-09-14 21:27:22 +02:00
Twinaphex f5417943c7 Cleanups 2020-09-14 20:47:07 +02:00
Twinaphex 1fa89b642a (Cocoa) sendEvent - cleanups 2020-09-14 20:32:04 +02:00
Twinaphex dfc8f66d09 (Cocoa) sendEvent - cleanups 2020-09-14 20:27:44 +02:00
Twinaphex e5a52a82b6 Don't reference event unnecessarily 2020-09-14 20:23:49 +02:00
Twinaphex 9184fa3689 More cleanups in sendEvent 2020-09-14 20:14:23 +02:00
Twinaphex d177b9e737 (Cocoa) Optimize sendEvent 2020-09-14 20:09:30 +02:00
Twinaphex 5444401e4f Add this back 2020-09-14 19:45:49 +02:00
twinaphex 8b18ae3018 (Cocoa) Fix keyboard input 2020-09-14 19:38:52 +02:00
Autechre 0cb0635ddc Merge pull request #11332 from jdgleaver/android-sensors
(Sensors API) Android (crash-)fixes/improvements + add option to disable sensor input
2020-09-14 19:16:58 +02:00
jdgleaver 34e08a688f (Sensors API) Android (crash-)fixes/improvements + add option to disable sensor input 2020-09-14 17:52:45 +01:00
Twinaphex 88e927cf94 Convert ui_cocoa_application.m to C 2020-09-14 17:12:57 +02:00
Twinaphex a8beb91f0f Reimplement ui_application_cocoa_process_event 2020-09-14 16:50:26 +02:00
twinaphex fb6642192d Add TARGET_OS_OSX ifdef around this 2020-09-14 16:17:31 +02:00
Twinaphex 2bfadbdad5 (Apple CocoaGL) Call flushBuffer with msg_objcSend 2020-09-14 16:15:53 +02:00
Jamiras 0d6f0e4826 let rc_runtime_t manage triggers 2020-09-14 07:51:52 -06:00
twinaphex 5838817bbd Get rid of gfx_widgets_set_status_text 2020-09-14 14:11:44 +02:00
twinaphex 1bf87b1b48 Don't use snprintf if no formatting is required and we just need to
concatenate strings together
2020-09-14 13:53:04 +02:00
twinaphex 15ace7c0cb Fix C89_BUILD issue 2020-09-14 13:25:18 +02:00
twinaphex 11e65e20b7 Cleanup 2020-09-14 13:06:04 +02:00
twinaphex 19a380a328 Revert "(X11/dispserv) Cleanups"
This reverts commit 30cde1edfb.
2020-09-14 13:05:02 +02:00
twinaphex 30cde1edfb (X11/dispserv) Cleanups 2020-09-14 13:04:14 +02:00
twinaphex 1b61ef4a5a Cleanups 2020-09-14 12:59:32 +02:00
twinaphex 9bd1046538 (dispserv_x11.c) Buildfix 2020-09-14 12:57:34 +02:00
twinaphex 9cb8fb8de5 Include missing header 2020-09-14 12:54:15 +02:00
twinaphex 868ef85f5d (dispserv_x11.c) C89 nits/cleanups 2020-09-14 12:53:49 +02:00
Autechre b5c3d04c1f Merge pull request #11323 from alphanu1/master
CRTSwitchRes improvements and Core Load Chrash Fix
2020-09-14 12:41:53 +02:00
twinaphex 2eadf3b175 generic_menu_entry_action - simplify switch 2020-09-14 12:33:09 +02:00
Autechre d6169a11fd Merge pull request #11331 from valadaa48/odroidgo2_max_pads
ODROIDGO2 DEFAULT_MAX_PADS 1
2020-09-14 10:33:25 +02:00
valadaa48 9ef2df242b ODROIDGO2 DEFAULT_MAX_PADS 1 2020-09-14 00:17:26 -04:00
twinaphex 80e4524878 Turn menu_entry_init into macro 2020-09-13 09:03:21 +02:00
twinaphex 2e87e3bc64 (Menu drivers) Start using direct entry_action function instead
of going through wrapper functions
2020-09-13 08:48:30 +02:00
twinaphex c83589fa16 Cleanups to menu_entry_get 2020-09-13 08:05:50 +02:00
twinaphex ba9ad1057f Get rid of menu_entry_get_rich_label/menu_entry_get_value 2020-09-12 18:48:22 +02:00
twinaphex ef8f51dbbc Cleanup 2020-09-12 10:08:36 +02:00
twinaphex 59acce5035 (RGUI) Make sure entry_value is correct 2020-09-12 09:58:23 +02:00
twinaphex d416974f52 Backport some RGUI efficiency nits
(https://github.com/neil4/RetroArch-Lite/commit/1499dbc0c69dffef3272f0d24f2d764649acd7e6)
2020-09-12 09:40:32 +02:00
Autechre c78055b5de Merge pull request #11325 from jdgleaver/default-overlay
(Mobile) Set default overlay to 'neo-retropad'
2020-09-12 04:15:31 +02:00
alphanu1 cb404b676d Fix seg faults 2020-09-11 18:54:17 +01:00
jdgleaver eda2753cb3 (Mobile) Set default overlay to 'neo-retropad' 2020-09-11 18:08:48 +01:00
alphanu1 897ea6aff3 Fix for bad res name 2020-09-11 18:04:40 +01:00
Autechre e6b3e21f5a Merge pull request #11324 from jdgleaver/overlay-fixes
Miscellaneous overlay fixes
2020-09-11 18:52:19 +02:00
alphanu1 7b2588c721 Fix mem compile errors 2020-09-11 17:31:17 +01:00
jdgleaver 55b6d8ba15 Miscellaneous overlay fixes 2020-09-11 17:00:44 +01:00
alphanu1 d7d03a8759 Clean up resources to reduce memory leaks 2020-09-11 16:59:38 +01:00
alphanu1 afc3badd72 Fixed Crash On Core Load 2020-09-11 16:30:43 +01:00
alphanu1 dc19dd3db4 Closing XDisp to reduce mem leaks 2020-09-11 16:17:46 +01:00
alphanu1 877408adda Fixed Missing Variable 2020-09-11 15:57:56 +01:00
alphanu1 fb058b7398 Merge pull request #12 from alphanu1/alphanu1-patch-10
CRTSwitchRes improvements and Core Load Chrash Fix
2020-09-11 15:41:30 +01:00
alphanu1 e5b4fb4c7c CRTSwitchRes improvements and Core Load Chrash Fix 2020-09-11 15:39:05 +01:00
twinaphex b4bbad494a (drivers_joypad) Cleanups to wiiu_joypad and xdk_joypad 2020-09-11 15:58:44 +02:00
twinaphex 99cff42988 (udev_joypad) Struct reordering, alignment 2020-09-11 15:53:18 +02:00
Autechre 49be963dd1 Merge pull request #11320 from libretro/revert-11315-master
Revert "CRTSwitchRes Improvements (removal of system calls)"
2020-09-11 15:15:17 +02:00
Autechre daf6843cd3 Revert "CRTSwitchRes Improvements (removal of system calls)" 2020-09-11 15:15:07 +02:00
twinaphex a21d09addc Revert "(dispserv_x11.c) Cleanups"
This reverts commit e27b314afb.
2020-09-11 15:14:22 +02:00
twinaphex 6fd1485c34 Revert "Turn g_monitor_index into static global"
This reverts commit 65f5544a7e.
2020-09-11 15:14:11 +02:00
twinaphex c6fa9c6720 Revert "Add header"
This reverts commit 1b9c906d69.
2020-09-11 15:14:04 +02:00
twinaphex 85515b239f Revert "Get rid of this unused variable"
This reverts commit bcfd4a3cd6.
2020-09-11 15:13:48 +02:00
twinaphex fb3d8a634b Revert "(dispserv_x11) Cleanups"
This reverts commit 3d09bacb93.
2020-09-11 15:13:42 +02:00
twinaphex 6f6b15aedd (drivers_display) Cleanups 2020-09-11 14:21:09 +02:00
twinaphex 6a82772b72 Revert "Avoid having to call expensive matrix identity functions"
This reverts commit 7a87917c58.
2020-09-11 14:16:12 +02:00
twinaphex 7a87917c58 Avoid having to call expensive matrix identity functions 2020-09-11 14:06:42 +02:00
twinaphex bac1f1fd51 Cleanup 2020-09-11 13:48:23 +02:00
twinaphex 343fef1264 (drivers_display) Cleanups 2020-09-11 13:46:35 +02:00
twinaphex 60b26bd490 (drivers_display) cleanups 2020-09-11 13:19:07 +02:00
twinaphex ab517428fd Reorder structs, alignment 2020-09-11 12:53:18 +02:00
twinaphex 72f1ff0f4b Reorder structs, alignment 2020-09-11 12:40:19 +02:00
twinaphex 7c36e615c2 (MFI_joypad) Cleanups 2020-09-11 12:39:05 +02:00
twinaphex ab9202c0aa Cleanups 2020-09-11 12:35:14 +02:00
twinaphex 0c45135160 (ps2_joypad) Cleanups 2020-09-11 12:32:06 +02:00
Autechre b122f314d4 Merge pull request #11310 from sonninnos/winraw-product-log
(WINRAW) Product string init logging
2020-09-11 11:58:40 +02:00
twinaphex 47ad4da310 Don't free userdata for these drivers inside the destroy function
as they don't have userdata
2020-09-11 11:50:00 +02:00
twinaphex 2c97878851 (Input drivers) Cleanups - if we don't need userdata and it's just
empty then just pass (void*)-1 to init function
2020-09-11 11:45:01 +02:00
twinaphex 3d09bacb93 (dispserv_x11) Cleanups 2020-09-11 11:37:08 +02:00
twinaphex bcfd4a3cd6 Get rid of this unused variable 2020-09-11 08:22:13 +02:00
twinaphex 1b9c906d69 Add header 2020-09-11 08:20:21 +02:00
twinaphex 65f5544a7e Turn g_monitor_index into static global 2020-09-11 08:15:14 +02:00
twinaphex e27b314afb (dispserv_x11.c) Cleanups 2020-09-11 08:13:33 +02:00
Autechre 5640a5b512 Merge pull request #11315 from alphanu1/master
CRTSwitchRes Improvements (removal of system calls)
2020-09-11 07:29:19 +02:00
Autechre d8dd2ccb27 Merge pull request #11316 from soarqin/master
fix over-translating codes for window ClassName, as an additional fix…
2020-09-11 07:28:42 +02:00
Autechre be91cec1c6 Merge pull request #11318 from sonninnos/fix-playlist-history
Fix playlist history size
2020-09-11 07:27:56 +02:00
Tony Jansson d610233564 Fix playlist history size 2020-09-11 02:03:59 +03:00
Tony Jansson 36e286e841 (WINRAW) Mouse product string init logging 2020-09-11 00:47:44 +03:00
Soar Qin 728c2b3af4 fix over-translating codes for window ClassName, as an additional fix to 3c6552b 2020-09-11 01:38:58 +08:00
Ben 42c22df72a Code cleanup 2020-09-10 14:44:49 +01:00
Ben 00ba1646c6 Merge remote-tracking branch 'upstream/master'
Upstream
2020-09-10 14:37:17 +01:00
alphanu1 ebef4d3887 Merge pull request #10 from alphanu1/alphanu1-patch-6
CRTSwirchRes Improvements
2020-09-10 14:13:21 +01:00
alphanu1 28463a9729 CRTSwirchRes Improvements
Removed all system call. Switching now only uses RandR Library.

Resolutions checks to prevent conflicts and crashes.

Closing X11 server now runs a clean up to removes all resolutions installed.
2020-09-10 13:52:31 +01:00
Autechre ff4fe25488 Merge pull request #11313 from justinweiss/remove-trailing-backslash
Remove an extra backslash in Makefile.common
2020-09-10 07:28:50 +02:00
Justin Weiss 65fa50c2a6 Remove an extra backslash in Makefile.common 2020-09-09 22:26:22 -07:00
Autechre 33a04a794f Merge pull request #11312 from justinweiss/3ds-enable-threading
[3DS] Enable threading and add a threaded audio driver
2020-09-10 06:50:12 +02:00
Autechre 2d3c63f545 Merge pull request #11248 from justinweiss/update-libctru
[3DS] Update to libctru 2.0
2020-09-10 06:49:54 +02:00
Autechre be285e1f74 Merge pull request #11311 from justinweiss/3ds-file-buffering
[3DS] Increase file buffer size and savestate chunk size
2020-09-10 06:18:00 +02:00
Justin Weiss fb9aa961b7 [3DS] Increase file buffer size and savestate chunk size 2020-09-09 18:29:47 -07:00
Autechre 8f60e63527 Merge pull request #11307 from sonninnos/close-content-hotkey
Hotkey for Close Content / Unload Core
2020-09-09 06:26:49 +02:00
Autechre 02afd06f5b Merge pull request #11305 from jdgleaver/overlay-config
Overlay configuration improvements
2020-09-09 06:25:54 +02:00
Autechre 87708ef123 Merge pull request #11306 from jdgleaver/mem-leak-fix
Fix string_list memory leaks
2020-09-09 06:25:03 +02:00
Tony Jansson eb5e5b546c Hotkey for Close Content 2020-09-08 22:12:42 +03:00
jdgleaver 5a0dc5524d Fix string_list memory leaks 2020-09-08 14:58:49 +01:00
jdgleaver b8ea4fd54e Overlay configuration improvements 2020-09-08 13:37:51 +01:00
m4xw 59f90ddb28 Add basic GitLab CI/CD Integration
Currently for Windows x64, Linux x64, Nintendo Switch (libnx)
2020-09-07 17:26:41 +02:00
Autechre 151f0f5b63 Merge pull request #11293 from driver1998/d3d9_hlsl
General crash fixing
2020-09-07 14:31:25 +02:00
Autechre 2d6c7c94c4 Merge pull request #11292 from th-in-gs/XK-PC2004-controller-fix
Allow controllers with no/empty names to work.
2020-09-07 14:30:47 +02:00
driver1998 9cf71619d3 GDI: use custom BITMAPINFO struct to avoid malloc 2020-09-07 12:36:43 +08:00
driver1998 8d82c7b08f VS2019 solution: revert test changes 2020-09-07 11:03:24 +08:00
driver1998 fb00bf8602 gdi: Fix crashing 2020-09-07 10:55:25 +08:00
driver1998 693162f080 VS2019 solution: Use v142 toolchain for all targets 2020-09-07 10:54:51 +08:00
driver1998 a4dec6e226 d3d9: "Fix" the HLSL render chain
It won't get you very far, but at least it won't crash.
Needs HAVE_HLSL and HAVE_D3DX defines and DirectX SDK
2020-09-07 10:13:41 +08:00
driver1998 3c6552ba4d msg_hash_chs: Don't translate MSG_PROGRAM, prevent a crash on startup 2020-09-07 10:13:41 +08:00
James Montgomerie f83f706565 Make style of if statment conform to the one already in use in the file/ 2020-09-06 18:36:32 -07:00
James Montgomerie 5c58c6969e Allow controllers with no/empty names to work. 2020-09-06 18:24:32 -07:00
Autechre 6f092c55a4 Merge pull request #11290 from matthewbauer/add-extra-uinput-keys
Map libcec-daemon keys to RETROK
2020-09-07 02:43:51 +02:00
Matthew Bauer 210dcfbd8c Map libcec-daemon keys to RETROK
From https://github.com/bramp/libcec-daemon, we have some keys that
aren’t recognized by RetroArch right now. So we can map them to actual
RETROK_ codes. They are:

- KEY_EXIT -> RETROK_CLEAR
- KEY_OK -> RETROK_RETURN
- KEY_SELECT -> RETROK_RETURN

See
https://github.com/bramp/libcec-daemon/blob/fe9df5ddf7356daa521f893c16872a09c8e6fb59/src/main.cpp#L233-L312
for a full list
2020-09-06 16:01:12 -05:00
twinaphex e2e9d0fbb6 Cleanup 2020-09-05 20:30:33 +02:00
twinaphex 09423bf272 Fix C89_BUILD issue 2020-09-05 20:29:57 +02:00
twinaphex 46b3f3c50c Move this outside of the header and into menu_setting.c 2020-09-05 20:27:29 +02:00
twinaphex 5f2688c4cf Cleanup 2020-09-05 19:37:31 +02:00
Autechre 6f02318c0f Merge pull request #11287 from jdgleaver/play-store-modules
(Android) Set preliminary list of 50 cores to include in Play Store builds
2020-09-05 16:50:43 +02:00
Autechre 09fc37c724 Merge pull request #11286 from jdgleaver/static-libretro_path
(Salamander/static builds) Move 'libretro_path' value from 'retroarch.cfg' to independent config file
2020-09-05 16:50:29 +02:00
jdgleaver e8531a61e0 (Android) Set preliminary list of 50 cores to include in Play Store build 2020-09-05 13:36:02 +01:00
jdgleaver a39d6240a6 (Salamander/static builds) Move 'libretro_path' value from 'retroarch.cfg' to independent config file 2020-09-05 13:23:20 +01:00
twinaphex 33578eda08 Cleanup 2020-09-05 10:14:19 +02:00
twinaphex cf02814fd4 Remove unused apple_key_name_map 2020-09-05 10:13:06 +02:00
twinaphex 32d075df79 Start decoupling joypad destruction from input driver destruction 2020-09-05 08:56:28 +02:00
twinaphex aa95de57db Cleanups - make sure we are consistent with NULL pointer dereferences 2020-09-05 08:46:28 +02:00
twinaphex ef57f9de31 Cleanups 2020-09-05 08:35:33 +02:00
twinaphex a41262f444 (Winraw input) Alignment changes 2020-09-05 07:29:37 +02:00
twinaphex f7dd849156 (Winraw) Cleanup winraw_grab_mouse 2020-09-05 07:28:52 +02:00
twinaphex a05e16e398 (UWP) uwp_input_next_frame - change function signature so we
can diretly insert this into the input driver's 'poll' function
callback
2020-09-05 07:23:49 +02:00
twinaphex 7f80eb3477 (Winraw) Get rid of more static global state 2020-09-05 07:14:55 +02:00
twinaphex 7244b08db1 (Winraw) No longer require keyboard state to be copied over
from intermediary buffer to buffer in every poll function call
2020-09-05 07:14:55 +02:00
Autechre 2a374755f4 Merge pull request #11284 from sonninnos/dinput-mousegrab-fix
Fix dinput mouse grab crash without mouse
2020-09-05 01:18:50 +02:00
Tony Jansson 178a701332 Fix dinput mouse grab crash without mouse 2020-09-05 01:40:15 +03:00
Autechre 69fb4414c9 Merge pull request #11283 from m4xw/master
Fix Switch Audio Issues
2020-09-04 21:28:37 +02:00
M4xw bad97e29d2 Fix Regression caused by 023fd4f3 2020-09-04 20:56:26 +02:00
M4xw 42e38692d2 [Libnx] Use -fcommon 2020-09-04 20:08:55 +02:00
twinaphex d7c6901151 (3DS) Fix crashing issues 2020-09-04 19:38:39 +02:00
Autechre 276fda641b Merge pull request #11280 from Kert/patch-1
[Wii] Added HID support for HORI mini wired ps4 gamepad
2020-09-04 17:54:04 +02:00
Sergei Nikitin b1f8075743 Add accidentally missing change to Makefile 2020-09-04 18:34:33 +06:00
Sergei Nikitin a57d43dbe7 Remove accidentally added file 2020-09-04 18:05:29 +06:00
Sergei Nikitin 7475f6230a [Wii] Added HID support for HORI mini wired ps4 gamepad 2020-09-04 17:50:10 +06:00
twinaphex 812a5b541b Remove input_get_ptr 2020-09-04 07:27:28 +02:00
twinaphex 43e75ce741 (menu_displaylist_parse_playlists) Use non-heap allocated
string list functions
2020-09-04 06:35:14 +02:00
twinaphex 318ac1f667 (filebrowser_parse) Use non-heap allocated string_list functions 2020-09-04 06:29:30 +02:00
Autechre 5ce53c3c01 Merge pull request #11277 from valadaa48/oga_gfx_round_width
oga_gfx: round width to nearest integer when scaling
2020-09-04 04:59:31 +02:00
twinaphex 5fdf0c818d Cleanups 2020-09-04 04:15:46 +02:00
twinaphex 91d78c1e9f video_shader_read_reference_path - simplify 2020-09-04 04:12:51 +02:00
twinaphex 09f72c1465 Turn function static 2020-09-04 04:07:29 +02:00
valadaa48 405b987986 oga_gfx: round width to nearest integer when scaling 2020-09-03 21:53:21 -04:00
twinaphex 88c0024a52 Cleanup video_shader_read_reference_path 2020-09-04 03:49:41 +02:00
twinaphex 4ca691acc9 Cleanup 2020-09-04 03:32:25 +02:00
twinaphex 7af07def7e Make sure values are float 2020-09-04 03:28:27 +02:00
twinaphex 9f306131d2 input_keyboard_line - don't put this on heap 2020-09-04 03:08:02 +02:00
twinaphex e16c3b96af Remove is_input_keyboard_display_on 2020-09-04 02:56:58 +02:00
twinaphex b4b77fd6b0 Refactor out input_keyboard_ctl 2020-09-04 02:37:58 +02:00
Autechre 2f66e3bfd9 Merge pull request #11274 from jdgleaver/qt-last-shader-dir
(Qt) Add support for 'Remember Last Used Shader Directory' option
2020-09-04 02:19:47 +02:00
jdgleaver c2ad859f2f (Qt) Remove duplicate VIDEO_SHADER_REMEMBER_LAST_DIR option 2020-09-03 11:51:53 +01:00
jdgleaver 0be40b0d60 (Qt) Add support for 'Remember Last Used Shader Directory' option 2020-09-03 11:22:24 +01:00
twinaphex 400df12c1e Start using error_enum 2020-09-03 04:10:37 +02:00
twinaphex ba2b5ab7bc Fix game mode focus 2020-09-03 01:59:14 +02:00
twinaphex def2b3ad30 Fix build for targets with no HAVE_MENU 2020-09-03 01:57:08 +02:00
Autechre b7fff53d16 Merge pull request #11272 from jdgleaver/play-feature-delivery-switch
(Android/Play Store Builds) Add option to switch all installed cores to Play Store versions
2020-09-03 01:55:39 +02:00
twinaphex e09f1d65b5 Cleanups 2020-09-03 00:44:22 +02:00
twinaphex e2bd3d75bc Cleanup 2020-09-03 00:38:19 +02:00
jdgleaver bd80f02f11 (Android/Play Store Builds) Add option to switch all installed cores to Play Store versions 2020-09-02 17:13:03 +01:00
twinaphex ad72cac40d (PSP Input driver) Cleanups 2020-09-02 18:05:04 +02:00
twinaphex 454eff8688 (Emscripten) Cleanup 2020-09-02 17:56:01 +02:00
twinaphex 3f566fd54e Don't implement input_state for input drivers that don't need it 2020-09-02 17:37:01 +02:00
twinaphex 45cb980a3d Check if input_state is implemented first 2020-09-02 17:30:04 +02:00
twinaphex f30bc03969 Only use input_state_wrap for calls where RETRO_DEVICE_JOYPAD will
be used, don't use it for the specialized input state calls for
other devices
2020-09-02 15:53:26 +02:00
twinaphex 76df818c45 Put this behind HAVE_MFI ifdefs 2020-09-02 15:32:15 +02:00
twinaphex 4cbee42692 Revert "(RWebInput) We're going to assume joypad driver code is not"
This reverts commit 6b63b392ea.
2020-09-02 15:31:32 +02:00
twinaphex 6b63b392ea (RWebInput) We're going to assume joypad driver code is not
needed for RARCH_DEVICE_ANALOG
2020-09-02 15:28:16 +02:00
twinaphex 1c5f4e1dee Start cutting down on input_state - move all joypad driver code up to
higher-level retroarch.c
2020-09-02 15:26:03 +02:00
twinaphex f10832b0d3 Create input_state_wrap 2020-09-02 14:39:58 +02:00
twinaphex a72759aba0 (input drivers) Cleanups 2020-09-02 05:26:24 +02:00
twinaphex 826fbf6bdf Cleanups 2020-09-02 05:09:37 +02:00
twinaphex d0af46d460 Cleanup 2020-09-02 01:29:27 +02:00
twinaphex 55378ae9cc Cleanups 2020-09-02 01:22:34 +02:00
twinaphex 2fde8c21a9 Remove set_rumble function from input driver 2020-09-02 00:38:11 +02:00
twinaphex 17cf1ae58f Dehardcode some strings 2020-09-01 21:51:11 +02:00
twinaphex acc0f2143f Change input_key_pressed so we no longer need to pass joypad
to the poll function callback
2020-09-01 21:43:39 +02:00
Autechre acd3b1a327 Merge pull request #11271 from yoshisuga/ios-add-back-flags
[iOS/tvOS] Add back missing preprocessor flags to Xcode Metal project
2020-09-01 21:30:23 +02:00
Yoshi Sugawara fd95ea6704 [iOS/tvOS] Add back missing preprocessor flags to support screenshots, rewind, patching, rwav 2020-09-01 08:56:19 -10:00
twinaphex 0eeb0b37b1 Hopefully fix iOS build 2020-09-01 20:30:53 +02:00
twinaphex 197f6a7763 Struct reordering, alignment 2020-09-01 19:59:56 +02:00
twinaphex e810b0251a (GL) Cleanups 2020-09-01 19:54:41 +02:00
Autechre 7dff69808a Merge pull request #11270 from jdgleaver/buildfix
(dir_init_shader/dir_check_shader) DISABLE_MENU=1 buildfix
2020-09-01 18:35:06 +02:00
jdgleaver b73c60a8fc (dir_init_shader/dir_check_shader) DISABLE_MENU=1 buildfix 2020-09-01 17:26:29 +01:00
twinaphex 047efd2cd4 Revert "Resync"
This reverts commit f28056364a.
2020-09-01 17:43:22 +02:00
twinaphex 1d67ae3c63 Fix Android error 2020-09-01 17:41:05 +02:00
twinaphex f28056364a Resync 2020-09-01 17:06:52 +02:00
Autechre b216ff2029 Update CHANGES.md 2020-09-01 15:53:56 +02:00
Autechre 6b61d26755 Merge pull request #11269 from jdgleaver/shader-hotkeys
Use last selected shader preset directory when changing shaders via previous/next hotkeys
2020-09-01 15:53:29 +02:00
jdgleaver c5072b6477 Use last selected shader preset directory when changing shaders via previous/next hotkeys 2020-09-01 13:41:10 +01:00
Autechre 2d512cea80 Merge pull request #11268 from farmerbb/play_store_misc_fixes
[Android] Miscellaneous fixes for Play Feature Delivery
2020-09-01 07:43:40 +02:00
twinaphex 0cdb710f80 Cleanups 2020-09-01 07:31:08 +02:00
twinaphex eb1ab2e429 (Ozone) Cleanups 2020-09-01 07:26:04 +02:00
twinaphex 1e842c9701 Turn this static 2020-09-01 06:31:20 +02:00
twinaphex 77f3e2b2ef (Ozone) Cleanups 2020-09-01 05:14:19 +02:00
twinaphex 0ffb988554 (Ozone) Cleanup 2020-09-01 05:11:28 +02:00
twinaphex e1f16f1855 (Ozone) remove abstraction layer ozone_draw_text - just call
gfx_display_draw_text directly
2020-09-01 05:06:21 +02:00
twinaphex 0cba3104be Turn array static 2020-09-01 04:15:20 +02:00
twinaphex 320cc443a8 Reorder structs, alignment 2020-09-01 01:28:33 +02:00
twinaphex cb86be9aef Cleanups 2020-09-01 01:26:32 +02:00
twinaphex 1654d0daf5 Cleanup 2020-09-01 01:22:35 +02:00
twinaphex ab6a896c64 Cleanup some hardcoded strings 2020-09-01 01:18:30 +02:00
twinaphex 07f46bad2b Remove unused event loop glue functions for menu entries 2020-09-01 00:42:24 +02:00
twinaphex ce6e5d6f08 Reorder structs, alignment 2020-09-01 00:25:35 +02:00
twinaphex 521050cf79 Remove gfx_widgets_get_pure_white 2020-08-31 23:46:24 +02:00
Autechre 2e49a3ae18 Merge pull request #11265 from WeedyWeedSmoker/Language-translations-fix
International: Language translations fix
2020-08-31 23:18:24 +02:00
Braden Farmer cf043f083b [Android] Miscellaneous fixes for Play Feature Delivery 2020-08-31 13:57:58 -06:00
twinaphex 565fd3496e Remove keyboard_event_apple.c 2020-08-31 20:53:17 +02:00
twinaphex bfb2961fb3 Simplify keyboard_event_apple.c 2020-08-31 20:48:02 +02:00
Autechre bf7a184331 Merge pull request #11266 from jdgleaver/play-feature-delivery-fix
(Android) Play Store builds: Do not resolve symlinks when handling core paths
2020-08-31 20:05:38 +02:00
Autechre 87e35d56ae Merge pull request #11264 from libretro/refact-joypad
Refactor joypad/input drivers
2020-08-31 20:04:18 +02:00
twinaphex a82bff2055 (Wayland) Fix serious warnings - input struct pointer was being passed
to function that requires gfx struct pointer
2020-08-31 19:56:03 +02:00
Autechre fe81f0ad4e Update wayland_input.c 2020-08-31 19:27:37 +02:00
Autechre 71fbd8bdae Update x11_input.c 2020-08-31 14:22:07 +02:00
Autechre 094ae69b09 Update x_vk_ctx.c 2020-08-31 14:17:36 +02:00
Autechre 0e5cceb443 Update wayland_input.c 2020-08-31 14:08:41 +02:00
twinaphex 6b756986d5 (UDev) Buildfix for platforms that don't define UDEV_XKB_HANDLING 2020-08-31 14:04:36 +02:00
jdgleaver 20230ec625 (Android) Play Store builds: Do not resolve symlinks when handling core paths 2020-08-31 12:13:49 +01:00
Weedy Weed Smoker aee9c1f82a Language translations fix 2020-08-31 11:09:24 +07:00
twinaphex 201f119c51 Rewrite ozone_draw_text 2020-08-31 04:13:23 +02:00
twinaphex 147d420885 (XMB) Cleanups 2020-08-31 04:04:37 +02:00
twinaphex d7522aebe0 (Cocoa) Struct reordering, alignment 2020-08-31 03:40:36 +02:00
twinaphex fe6d047bfe (Udev) Cleanups 2020-08-31 03:38:51 +02:00
twinaphex 0adee503f2 (Android) Don't do memcpy copy anymore 2020-08-31 03:11:52 +02:00
twinaphex 202e460be7 (Android) Simplify code 2020-08-31 02:54:12 +02:00
twinaphex a217ef393f Fix pointer controls 2020-08-31 02:43:48 +02:00
twinaphex 0cb0a08923 (Android) Buildfix 2020-08-31 02:17:18 +02:00
Twinaphex d7559cdb18 Cleanup some unused variable warnings 2020-08-31 02:12:31 +02:00
twinaphex 6f92c56ca3 Simplify input drivers 2020-08-31 02:07:43 +02:00
twinaphex 06ac5217ac Simplify dinput.c 2020-08-31 00:32:49 +02:00
twinaphex 7b0fe59722 Get rid of duplicate dinput_hybrid_joypad.c 2020-08-30 19:41:44 +02:00
twinaphex ea17294ff1 Update copyright 2020-08-30 19:04:50 +02:00
twinaphex 9fdbcae3a8 Update copyrights; person was not involved in this file 2020-08-30 19:00:44 +02:00
twinaphex 82c558e5ce Update copyrights 2020-08-30 18:59:57 +02:00
twinaphex 6c6bca9db9 Update cocoa_input.c 2020-08-30 18:48:58 +02:00
twinaphex d4d8b6934a Put keyboard_mapping_blocked into p_rarch / rarch struct
instead
2020-08-30 18:47:29 +02:00
twinaphex 035efa5136 Inline pressed_analog functions into input_state function itself 2020-08-30 16:57:04 +02:00
twinaphex e119d3c98e Further cleanups/standardizations to analog_pressed 2020-08-30 16:38:53 +02:00
twinaphex 97319d4f98 Standardize pressed_analog functions 2020-08-30 16:19:11 +02:00
twinaphex 262e68be3b Standardize x_pressed_analog 2020-08-30 15:52:58 +02:00
twinaphex 1a567dfbc9 Cleanup dinput_pressed_analog 2020-08-30 15:43:12 +02:00
twinaphex d801dab8b4 Cleanups 2020-08-30 14:41:45 +02:00
twinaphex 56b077cf4a (Vita driver) Cleanups 2020-08-30 14:36:39 +02:00
twinaphex adf1322cbb (DInput joypad) Cut down on code duplication 2020-08-30 06:53:16 +02:00
twinaphex 219793a1db (GX) Cleanups 2020-08-30 05:50:07 +02:00
twinaphex 5f08605680 Refactor joypad drivers 2020-08-30 05:29:32 +02:00
twinaphex 721b3039e4 (UDev) Buildfix 2020-08-30 04:52:00 +02:00
twinaphex a244a39626 Cleanups 2020-08-30 00:25:21 +02:00
twinaphex 1e223733fc Add joypad_rumble function in Android joypad driver 2020-08-29 23:47:56 +02:00
twinaphex 71fb5ac941 Clear state in joypad_destroy 2020-08-29 23:35:11 +02:00
twinaphex b48b751a3c Rewrite set_rumble function 2020-08-29 23:33:13 +02:00
twinaphex 0d9b2eef4f (Android) Buildfix #2 2020-08-29 22:50:51 +02:00
twinaphex b133ea3296 (XInput) add ifdef 2020-08-29 22:48:28 +02:00
twinaphex cd972e0e4e (Android) Buildfix 2020-08-29 22:47:38 +02:00
twinaphex c5099a312c Reimplement XDK set_rumble function 2020-08-29 22:25:51 +02:00
twinaphex 84a312535e Cleanup set_rumble functions 2020-08-29 22:22:26 +02:00
twinaphex 48bdbe8dec No need to call this 2020-08-29 22:15:44 +02:00
twinaphex 2b393e2425 move input_key_pressed to retroarch.c 2020-08-29 22:09:29 +02:00
twinaphex b3744c3126 Put input_jpyad_init_driver last in 'input' callback function 2020-08-29 20:46:42 +02:00
twinaphex bf06d67a30 Cut down on some extra ifdefs 2020-08-29 19:59:04 +02:00
twinaphex 3ff521ab0b Simplify winraw_callback 2020-08-29 19:43:53 +02:00
twinaphex d9bfd4c38f Silence warnings 2020-08-29 19:27:30 +02:00
Autechre ef064d96f0 Merge pull request #11258 from farmerbb/audio_manager_crash_fixes
[Android] Fix possible crashes from AudioManger properties returning null
2020-08-29 19:24:33 +02:00
Braden Farmer fd23b9ea5b [Android] Fix possible crashes from AudioManger properties returning null 2020-08-29 10:42:12 -06:00
twinaphex 11719badcb Simplify mb_to_mb_string_alloc 2020-08-29 05:21:48 +02:00
Autechre 6fe1f97fc8 Merge pull request #11255 from jdgleaver/play-feature-delivery
(Android/Play Store) Add frontend support for core installation via Play Feature Delivery
2020-08-29 04:31:20 +02:00
twinaphex 8999d6e4a6 (DInput) Set a userdata struct for the window message loop properly -
get rid of input_get_data - we no longer need it
2020-08-29 03:41:33 +02:00
twinaphex fa63ada1d3 Cleanup 2020-08-29 02:52:55 +02:00
twinaphex c2565cf87f Cleanups 2020-08-29 02:42:13 +02:00
twinaphex cae5328294 (task_autodetect_blissbox) Cleanups 2020-08-29 02:37:05 +02:00
Autechre 917aba4800 Merge pull request #11256 from farmerbb/play_feature_delivery_fixes
[Android] Minor fixes for Play Feature Delivery
2020-08-29 01:15:54 +02:00
Braden Farmer 34a8c980ad [Android] Minor fixes for Play Feature Delivery 2020-08-28 16:04:44 -06:00
twinaphex 93f9d69742 Cleanups 2020-08-28 20:42:55 +02:00
twinaphex 1c0f79442b Cleanups 2020-08-28 20:40:06 +02:00
twinaphex 7c61a6527f (Wayland) Reorder structs, alignment 2020-08-28 20:38:25 +02:00
twinaphex abb6367150 Remove unused apple_keyboard_find_any_key 2020-08-28 20:05:34 +02:00
twinaphex 88a93b0053 Cleanups 2020-08-28 19:59:31 +02:00
twinaphex ace0e3eb90 Cleanups 2020-08-28 19:58:13 +02:00
twinaphex cdf7516c0c (Cocoa) Optimize button bitmask code - do a bitwise OR on the output
of both apple joypad drivers
2020-08-28 19:06:43 +02:00
twinaphex 708a029665 (HID) Hardcode 'hid' name for passing to input_autoconfig_connect 2020-08-28 19:01:24 +02:00
twinaphex a549805ad8 Fix low-level DS4 pad regression 2020-08-28 18:53:10 +02:00
twinaphex e725b7c013 Revert "(Cocoa) Optimize button bitmask code - do a bitwise OR on"
This reverts commit 00bea7f3b2.
2020-08-28 17:33:15 +02:00
twinaphex 97ebed7c0e Revert "(Cocoa) Buildfix"
This reverts commit 2c07234a5d.
2020-08-28 17:32:57 +02:00
jdgleaver 4799d2d955 (Android/Play Store) Add frontend support for core installation via Play Feature Delivery 2020-08-28 16:30:54 +01:00
Twinaphex 2c07234a5d (Cocoa) Buildfix 2020-08-28 17:10:31 +02:00
Autechre a4f9bb7351 Update CHANGES.md 2020-08-28 16:51:27 +02:00
Autechre 39ae73e3b8 Update CHANGES.md 2020-08-28 16:50:32 +02:00
twinaphex 00bea7f3b2 (Cocoa) Optimize button bitmask code - do a bitwise OR on
the output of both apple joypad drivers
2020-08-28 16:48:08 +02:00
Autechre b312cc9e12 Merge pull request #11251 from ferrazpedro/notch_support
Implementation of fullscreen over notch function.
2020-08-28 15:48:51 +02:00
Autechre b8410c03e9 Merge pull request #11253 from Tatsuya79/patch-1
qt: add missing osd settings
2020-08-28 15:48:32 +02:00
Tatsuya79 fdeb59847e qt: add missing osd settings 2020-08-28 12:00:56 +02:00
twinaphex d02d9573ab Silence unused variable warnings 2020-08-28 05:05:15 +02:00
Justin Weiss f53c137459 [3DS] Enable threading 2020-08-27 19:36:39 -07:00
twinaphex 4d1cfa9c41 Make the 'raw' versions the generic function for the message loop
callback - this way it's reused for SDL2 input driver too
2020-08-28 02:55:39 +02:00
Pedro 524828bc38 Variable incorrectly not changed before 2020-08-27 21:33:43 -03:00
twinaphex 15cb55e0bb (DInput) Style nits 2020-08-28 02:27:55 +02:00
Pedro 47b6332c28 Cleanup of redundant variable 2020-08-27 21:23:50 -03:00
twinaphex 32279c3a70 Split up wnd_proc_common_internal into two - one for dinput,
one for raw
2020-08-28 02:21:13 +02:00
Pedro b6655034ef Implementation of fullscreen over notch function. 2020-08-27 20:41:30 -03:00
twinaphex 73fc7c9873 Rename create_graphics_context to create_wgl_context 2020-08-28 01:29:23 +02:00
twinaphex d249f83c85 (Win32) Message loop - more cleanups 2020-08-28 01:20:54 +02:00
twinaphex 5f2e810879 Deduplicate code in WndProc function callback implementations 2020-08-28 00:38:15 +02:00
twinaphex be3345b766 Reorder structs for alignment 2020-08-27 22:17:51 +02:00
Justin Weiss cb2c2c530c Update libretro-common ctr_pthread.h
Older devkitARM toolchains incorrectly prevent _pthreadtypes.h from being included. Newer versions include it.

In order to make a version of ctr_pthread.h that works under both old and new toolchains, the typedefs are guarded by a define in _pthreadtypes.h that is only active if the other types are defined.

I've also added casts in order to make sure this compiles correctly with the standard pthread.h type definitions.
2020-08-27 08:36:39 -07:00
twinaphex 3f19af45cd Put back early return 2020-08-27 17:29:39 +02:00
twinaphex a0e9d7a829 Cleanup 2020-08-27 17:03:43 +02:00
twinaphex 38805da889 Use config_get_entry instead of config_get_array 2020-08-27 16:52:12 +02:00
twinaphex 8b1338dbb2 (task_autodetect.c) Cleanups 2020-08-27 16:36:34 +02:00
twinaphex 5e60556f97 Use config_get_entry instead of config_get_array to prevent
unnecessary string copying
2020-08-27 16:28:19 +02:00
twinaphex 63b77fb542 Use config_get_entry where possible instead of config_get_array
to prevent string allocation on heap
2020-08-27 16:20:49 +02:00
twinaphex 022fa54236 Nit 2020-08-27 15:22:40 +02:00
twinaphex c51959d45b Make net_http_urlencode thread-safe 2020-08-27 15:21:22 +02:00
twinaphex 8d76b3009e Use config_get_entry instead of config_get_string to avoid
heap allocations
2020-08-27 13:53:51 +02:00
twinaphex cfb14dabf3 Revert "Get rid of some early returns"
This reverts commit 1b04b2452c.
2020-08-27 13:30:06 +02:00
twinaphex 309357e5b2 Cleanups 2020-08-27 13:18:29 +02:00
twinaphex 1b04b2452c Get rid of some early returns 2020-08-27 13:06:51 +02:00
twinaphex 3289401b2f Cleanups 2020-08-27 12:52:03 +02:00
twinaphex 78dd0de912 Cleanup deferred_push_cursor_manager_list - avoid extra string
allocations by using config_get_entry instead
2020-08-27 12:43:13 +02:00
twinaphex 7b30d4eec2 Move macro up in the file 2020-08-27 12:13:21 +02:00
twinaphex 56640bf7c9 (jdgleaver) Cleanups 2020-08-27 12:10:14 +02:00
Justin Weiss 9ae2514009 [3DS] Update to libctru 2.0
Set USE_CTRULIB_2=1 to build with libctru 2.0. When unset, this code
is compatible with the older toolchain.

Some 2.0 changes addressed rare problems in earlier versions:

- Save / restore stack pointer for init / exit
  Otherwise, it could be outside of the range we deallocate.
- Run aptMainLoop in the audio driver to react correctly to sleep events

Other changes for 2.0:

- Remove ninjhax1 -- requires outdated APIs that have been removed
- Switch from __sync_arbiter to syncArbitrateAddress
- Use implicit gxCmdBuf
- Use gpuPresentBuffer for double buffering
2020-08-26 19:08:12 -07:00
twinaphex b4d26aca9c Turn vulkan_write_quad_vbo into macro 2020-08-27 02:29:32 +02:00
twinaphex 9672d9b12f Cleanup 2020-08-27 02:07:33 +02:00
twinaphex e8a0ea15cd Improve glslang_read_shader_file somewhat 2020-08-26 23:46:16 +02:00
twinaphex 044209bc5a Create string_separate_noalloc 2020-08-26 23:46:16 +02:00
Autechre 1898a4bec5 Merge pull request #11213 from farmerbb/play_feature_delivery
Implement support for Play Store builds using Play Feature Delivery (Java/Gradle)
2020-08-26 21:22:51 +02:00
twinaphex aab3be709c Update CHANGES.md 2020-08-26 20:26:26 +02:00
Autechre df245d4917 Merge pull request #11239 from jdgleaver/overlay-gamepad-hide
Add option to hide overlays when a gamepad is connected (Note: Restricted functionality on Android)
2020-08-26 20:23:47 +02:00
twinaphex ea6bf9b9fc Cleanup core_info_set_core_lock 2020-08-26 20:22:56 +02:00
twinaphex 143224e09a (task_database_cue) Don't use malloc 2020-08-26 19:46:13 +02:00
twinaphex 00b4d62460 Cleanup 2020-08-26 19:37:07 +02:00
twinaphex 4388303077 video_shader_write_conf_preset - use less mallocs 2020-08-26 19:19:26 +02:00
twinaphex 1118ba09ec video_shader_resolve_current_parameters - don't use malloc 2020-08-26 19:10:43 +02:00
twinaphex 3ff29abbc8 video_shader_parse_pass - don't use malloc 2020-08-26 19:07:36 +02:00
twinaphex ff8daa29a3 Add TODO/FIXME note 2020-08-26 19:02:48 +02:00
twinaphex 603b2bf166 Simplify video_shader_read_conf_preset 2020-08-26 18:54:14 +02:00
twinaphex 6478d20e55 (core_info/UWP) Use non-heap based versions for string_list 2020-08-26 18:43:19 +02:00
twinaphex 61c94fe248 Simplify string_list_new/string_list_initialize 2020-08-26 17:50:18 +02:00
Autechre 6c79df9a8a Merge pull request #11246 from jdgleaver/core-association-fix
Fix 'Set Core Association' regression
2020-08-26 16:54:40 +02:00
jdgleaver 7a07cc1305 Fix 'Set Core Association' regression 2020-08-26 15:18:39 +01:00
Autechre df97af9b35 Merge pull request #11128 from WeedyWeedSmoker/Language-descriptions-update
International: Language descriptions and translation update
2020-08-26 15:34:25 +02:00
twinaphex e6b9420a15 (Input) reorder structs, alignment 2020-08-26 15:32:05 +02:00
twinaphex 13604b047f (Audio) reorder structs/alignment (don't touch Switch audio drivers
for now)
2020-08-26 15:24:33 +02:00
Autechre b546fddf86 Merge pull request #11245 from Alcaro/patch-8
fix compile error
2020-08-26 15:15:48 +02:00
twinaphex e2c277d2ea (libretro-common) Cleanups 2020-08-26 15:13:48 +02:00
twinaphex 74fc0ba494 Buildfix 2020-08-26 15:06:34 +02:00
Alcaro 8c481be09b fix compile error 2020-08-26 15:01:02 +02:00
twinaphex 662e37f670 Replace more instances of string_split 2020-08-26 13:35:05 +02:00
twinaphex fe5307c4ac Use string_split_noalloc instead of string_split 2020-08-26 12:54:51 +02:00
twinaphex 01e5ec94bb Prefer to use string_split_noalloc 2020-08-26 12:41:57 +02:00
twinaphex e67cdb39ae (menu_networking) Use string_split_noalloc 2020-08-26 04:44:40 +02:00
twinaphex 8840410ddb Use string_split_noalloc 2020-08-26 04:39:19 +02:00
twinaphex c7aa6b99e4 (playlist.c) Use string_split_noalloc 2020-08-26 04:27:38 +02:00
twinaphex 86424a0cd8 (video_shader_parse) Use string_split_noalloc 2020-08-26 04:22:18 +02:00
twinaphex 3b555ab508 (gfx_animation) use string_split_noalloc 2020-08-26 04:12:29 +02:00
twinaphex ebe2b869a5 (menu_cbs_deferred_push) Use string_split_noalloc 2020-08-26 03:58:42 +02:00
twinaphex a45b1a5e9c Start using string_split_noalloc 2020-08-26 03:43:09 +02:00
twinaphex 6df62bbccc Create string_split_noalloc 2020-08-26 03:20:42 +02:00
twinaphex a32d027f76 string_list_initialize - call deinitialize when function fails 2020-08-26 02:28:10 +02:00
twinaphex ad61d8ff92 Simplify config_get_entry 2020-08-26 02:17:37 +02:00
twinaphex 54dfaaa3bc Simplify config_get_bool 2020-08-26 01:37:57 +02:00
twinaphex 48f2612223 (config_file) config_set - some of the char arrays were too big
for the type in question
2020-08-25 20:58:55 +02:00
twinaphex a9ffc4991b Reorder structs/alignment 2020-08-25 20:39:06 +02:00
twinaphex 1d53f3ca29 Move static functions to the top 2020-08-25 18:38:12 +02:00
twinaphex 6cc8a2acbd Rewrite config_file_new_from_string 2020-08-25 18:37:14 +02:00
twinaphex d573a802c4 Simplify config_file_new_alloc 2020-08-25 18:12:28 +02:00
twinaphex f454665be2 Optimize config_file_exists 2020-08-25 18:10:32 +02:00
twinaphex 2c0fb6ff6c config_file_parse_line - put sub_conf on stack 2020-08-25 17:54:22 +02:00
twinaphex 6a88b3f20e Cleanup strlen_size 2020-08-25 17:24:03 +02:00
Autechre ed6f32fd80 Merge pull request #11240 from jdgleaver/string_list-safety
(string_list) Add checks to prevent undefined behaviour
2020-08-25 16:59:22 +02:00
jdgleaver 179e77c8b0 (string_list_join_concat) Prevent undefined behaviour if input string buffer is unterminated 2020-08-25 15:54:18 +01:00
twinaphex 79c8a94857 (config_file.c) config_set_string - simplify 2020-08-25 15:50:26 +02:00
twinaphex 7771dbd594 Rename config_file_new_internal to config_file_load_internal 2020-08-25 15:36:26 +02:00
twinaphex cd0a27680a (config_file.c) Cleanup 2020-08-25 15:34:11 +02:00
twinaphex 5a69e6e75c Simplify config_file.c code 2020-08-25 15:29:45 +02:00
twinaphex 915bbc9bcc (menu_displaylist) Cleanup 2020-08-25 14:51:37 +02:00
twinaphex 1e5cea48b0 Lower Discord avatar size 2020-08-25 14:10:40 +02:00
twinaphex 985aca7361 Expand CODING-GUIDELINES 2020-08-25 14:04:41 +02:00
twinaphex 6af6d5eb1c (jdgleaver) Initialize string lists properly to prevent memory leaks 2020-08-25 13:25:27 +02:00
twinaphex ce185d8be6 (DSP IIR) Prevent '-Wmaybe-uninitialized' warnings 2020-08-25 13:21:22 +02:00
twinaphex b7b96fb142 (config_file) Cleanups 2020-08-25 12:39:28 +02:00
twinaphex f18af41876 Cut down on add_sub_conf 2020-08-25 12:29:08 +02:00
twinaphex 1e5ccb7319 Create config_file_get_realpath 2020-08-25 12:20:09 +02:00
jdgleaver cc2e098dab Add option to hide overlays when a gamepad is connected (Note: Restricted functionality on Android) 2020-08-25 11:12:37 +01:00
Autechre 7e74d830ca Merge pull request #11238 from sonninnos/cheat-max-val
Cheats maximum search value corrections
2020-08-25 01:14:28 +02:00
Tony Jansson 55554a8707 Cheats maximum search value corrections 2020-08-25 01:05:58 +03:00
twinaphex 74a3e5be8a Simplify is_path_accessible_using_standard_io 2020-08-24 23:41:10 +02:00
twinaphex 42a3d433dc Restore this code 2020-08-24 23:25:57 +02:00
twinaphex ceca44b233 Cleanup config_initialize_internal 2020-08-24 23:09:55 +02:00
twinaphex 88f01c51a7 (config_file) Cleanups 2020-08-24 22:57:08 +02:00
Autechre 02fa9abd27 Merge pull request #11237 from guoyunhe/crowdin-20200824
Fetch translations from Crowdin
2020-08-24 22:22:00 +02:00
Guo Yunhe f1235e819b Add instruction to create new languages 2020-08-24 23:17:13 +03:00
Guo Yunhe d87b04e1d2 Fetch translations from Crowdin 2020-08-24 23:13:16 +03:00
twinaphex b681b2af49 config_set_string: simplify 2020-08-24 21:25:55 +02:00
twinaphex a954118faf (config_file) Cleanups 2020-08-24 21:16:25 +02:00
twinaphex 4f29bef56e (config_file) Cleanups 2020-08-24 21:11:41 +02:00
twinaphex 150e96144a Cleanup 2020-08-24 20:40:49 +02:00
twinaphex dd13e6b044 (config_file.c) Use snprintf 2020-08-24 19:39:41 +02:00
twinaphex 24910b6999 (config_file) Simplify config_sort_compare_func 2020-08-24 19:29:24 +02:00
twinaphex 700009216c Use more string_list_initialize/deinitialize 2020-08-24 19:18:54 +02:00
twinaphex 26ec12ddc5 create_string_list_rdb_entry - use string_list_initialize/deinitialize 2020-08-24 19:12:51 +02:00
twinaphex 8a479e6006 Create dir_list_initialize/dir_list_deinitialize 2020-08-24 18:56:25 +02:00
twinaphex cde5d37eb2 Put this behind RPNG_TEST 2020-08-24 18:17:47 +02:00
twinaphex 1f7b338ce0 Reorder structs, alignment 2020-08-24 17:04:33 +02:00
twinaphex 85599b27a5 menu_ctx_bind_t - we don't need retcode 2020-08-24 16:57:09 +02:00
twinaphex ecc54b4d4e (Menu) Put selection_buf_old on stack too 2020-08-24 16:08:09 +02:00
twinaphex 4dec373edc Don't put local string list variables on heap by default 2020-08-24 15:32:32 +02:00
twinaphex 14e99382f1 Update CODING-GUIDELINES 2020-08-24 15:15:33 +02:00
twinaphex 91cfcd1b83 Improve string_list_deinitialize 2020-08-24 15:11:38 +02:00
Autechre 513909a581 Merge pull request #11235 from jdgleaver/generic-message-widget
Improve appearance of 'generic_message' widget
2020-08-24 14:53:29 +02:00
twinaphex 27b7b3dcfe Cleanup 2020-08-24 14:35:25 +02:00
jdgleaver 2a58920e4e Improve appearance of 'generic_message' widget 2020-08-24 13:31:51 +01:00
twinaphex 2452769a80 Cleanup 2020-08-24 14:20:46 +02:00
twinaphex b6f8acbaec (Ozone) Cleanups 2020-08-24 12:58:05 +02:00
twinaphex da210f6702 (XMB) Get rid of forward declaration 2020-08-24 12:49:16 +02:00
twinaphex 64f8a5990c Create fifo_initialize/fifo_deinitialize 2020-08-24 12:17:33 +02:00
twinaphex 9caf3080b1 Cleanup 2020-08-24 12:06:56 +02:00
twinaphex 71708f8ddd (libretro-common) Add msg_queue_initialize/msg_queue_deinitialize 2020-08-24 12:04:56 +02:00
twinaphex e4f99dc648 (ozone) reorder structs, alignment 2020-08-24 10:47:17 +02:00
twinaphex 7a6b9fd1b2 (Ozone) Horizontal list - put on stack - it's already on heap-allocated
struct as is
2020-08-24 10:22:32 +02:00
twinaphex 93fa9a0194 Add file_list_deinitialize - does everything that file_list_free
does except for freeing the passed struct pointer
2020-08-24 01:45:45 +02:00
twinaphex c2a8a0f04e use string_list_initialize/deinitialize in more places 2020-08-24 01:16:14 +02:00
twinaphex ea4a74a005 Use string_list_initialize/deinitialize for core_info.c 2020-08-24 01:02:35 +02:00
twinaphex 0a69d14b11 Reimplement slang_preprocess_parse_parameters 2020-08-24 00:54:24 +02:00
twinaphex cd6e1cf3fa (libretro-common) string_list - add string_list_initialize
and string_list_deinitialize - takes a pointer to initialize
and deinitialize a string list, but importantly does not
implicitly allocate and deallocate the string list pointer
itself. This way, string lists can be put on the stack instead
of always implicitly being put on heap - the struct itself is
small enough to fit on stack
2020-08-24 00:43:55 +02:00
twinaphex 6b3fcf79f0 (DXGI) Turn these into macros 2020-08-24 00:04:12 +02:00
Autechre acb914c186 Merge pull request #11231 from yoshisuga/ios-metal-reenable-cheats
[iOS/tvOS] Add HAVE_CHEATS flag to enable cheats (metal xcode project)
2020-08-23 22:16:59 +02:00
Yoshi Sugawara f10d07fb29 [iOS/tvOS] Add HAVE_CHEATS flag to enable cheats (metal xcode project) 2020-08-23 10:07:55 -10:00
twinaphex ad2c0bb76d (runtime_file.c) Style nits 2020-08-23 21:51:39 +02:00
twinaphex 960039b6da (playlist.c) Cleanups 2020-08-23 21:36:09 +02:00
twinaphex 1c25fbded5 (rcheevos) Cleanups 2020-08-23 21:07:15 +02:00
Autechre 719224c6ab Merge pull request #11229 from Alcaro/patch-7
libretro.h: Fix contradictory comment
2020-08-23 19:37:56 +02:00
Alcaro e4022ab416 libretro.h: Fix contradictory comment
retro_get_system_info() says it can be called even before retro_init(), which means retro_deinit() doesn't need to be called at all. Mentioning deinit() in the struct definition is misleading and incorrect.
2020-08-23 18:29:12 +02:00
twinaphex 86520cbd07 Reorder structs, alignment 2020-08-23 16:02:33 +02:00
twinaphex edd2ef7b92 (cheevos) Try to use snprintf where possible 2020-08-23 15:17:00 +02:00
twinaphex c10d1922ed (rcheevos) Try to use safe versions of strcpy/sprintf where possible 2020-08-23 15:15:34 +02:00
twinaphex b965bb5c48 (rcheevos) Alignment improvements according to CODING-GUIDELINES
document
2020-08-23 15:10:20 +02:00
Autechre 0b2f19e898 Merge pull request #11226 from Jamiras/rcheevos_globals
(cheevos) eliminate exposed variables for tracking hardcore
2020-08-23 15:05:01 +02:00
Jamiras 2f69d2d4ed eliminate exposed variables for tracking hardcore 2020-08-22 12:18:12 -06:00
Autechre 705b2818da Merge pull request #11225 from Tatsuya79/master
qt: add recent settings
2020-08-22 19:15:32 +02:00
Tatsuya79 0dc963d5fe qt: add recent settings 2020-08-22 19:03:14 +02:00
twinaphex 38ac8a1b51 Reorder structs, alignment 2020-08-22 18:10:57 +02:00
Twinaphex a175af4e6a Cleanup some unused variables 2020-08-22 18:04:34 +02:00
twinaphex 503131de66 (RPNG) Cleanups 2020-08-22 17:37:34 +02:00
twinaphex f4432acd06 (RPGN) Cleanups to IHDR code 2020-08-22 17:34:13 +02:00
twinaphex 73ed02b5f6 (RPNG) Cleanup read_chunk_header 2020-08-22 17:18:32 +02:00
twinaphex d6f22a7a4c (RPNG) Simplify png_process_ihdr 2020-08-22 16:28:50 +02:00
twinaphex c7cf9d6df7 (RPNG) Simplify rpng_start 2020-08-22 16:11:54 +02:00
twinaphex 5cc4d0da0f (RPNG) Make sure we don't use stdio/fprintf unless DEBUG is defined 2020-08-22 16:07:03 +02:00
twinaphex deafd70934 (RPNG) More simplifications - get rid of png_chunk struct, just pass
uint32_t around to function
2020-08-22 15:37:21 +02:00
twinaphex 91345fe867 (RPNG) read_chunk_header - simplify code some more 2020-08-22 15:34:32 +02:00
twinaphex 8b5b472a2d Optimize read_chunk_header 2020-08-22 14:24:11 +02:00
twinaphex 2e6b87d156 Simplify rpng.c - read_chunk 2020-08-22 14:20:50 +02:00
twinaphex fa68500475 Dehardcode some more strings 2020-08-22 14:14:28 +02:00
twinaphex 1f7645b6e8 Cleanup generic_menu_iterate 2020-08-22 14:05:48 +02:00
twinaphex 772ed15d88 Remove file_path_str from Salamander 2020-08-22 13:42:57 +02:00
twinaphex cce19ac97d Replace more hardcoded strings 2020-08-22 13:04:52 +02:00
twinaphex 07ebd50153 Fix some of the URLs 2020-08-22 12:51:34 +02:00
twinaphex f63593e918 Use FILE_PATH_ constant string literals for hardcoded strings 2020-08-22 12:49:35 +02:00
twinaphex 4ec216dc0b Get rid of file_path_str 2020-08-22 01:06:10 +02:00
twinaphex d815a1f3d3 Simplify file_path_str.c 2020-08-21 21:26:59 +02:00
Autechre 395fbb8f87 Merge pull request #11223 from guoyunhe/crowdin-github-secrets
Read Crowdin API key from GitHub Secrets
2020-08-21 20:44:03 +02:00
Guo Yunhe 5ac64932d0 Read Crowdin API key from GitHub Secrets 2020-08-21 21:16:52 +03:00
Autechre 6a3273d306 Update CHANGES.md 2020-08-21 18:25:01 +02:00
Autechre ce53a5410c Merge pull request #11222 from jdgleaver/remember-shader-dir
Add option to remember last selected shader preset/shader pass directories
2020-08-21 18:24:35 +02:00
jdgleaver dd66988c98 Add option to remember last selected shader preset/shader pass directories 2020-08-21 17:02:32 +01:00
Autechre 637e43f4fd Merge pull request #11212 from Nargash/master
Automatically sort save files, save states, and screenshots by content dir parent folder name
2020-08-21 14:42:59 +02:00
Autechre de10ec6ef4 Merge pull request #11221 from jdgleaver/libretro-message-widget
Improve appearance of 'libretro_message' widget
2020-08-21 14:41:14 +02:00
jdgleaver d43e92907e Improve appearance of 'libretro_message' widget 2020-08-21 11:33:27 +01:00
twinaphex 50efd72a8e gfx_display_draw_texture_slice - don't use malloc/free 2020-08-21 10:03:32 +02:00
twinaphex 99873ccd8a Reorder structs, alignment 2020-08-21 09:57:11 +02:00
Nargash b8990d601a Add configuration options to sort save files, save states, and screenshots into folders named after the content directory folder. 2020-08-20 19:29:00 -05:00
twinaphex 75d925cd3f setting_list.h - get rid of placeholder padding hack in struct 2020-08-20 19:30:25 +02:00
twinaphex b3ec942646 (verbosity.c) reorder struct, alignment 2020-08-20 19:16:05 +02:00
twinaphex 5a8da81d07 Simplify string_set 2020-08-20 19:12:38 +02:00
twinaphex d545739210 Categorize some members of rarch_state 2020-08-20 17:32:44 +02:00
twinaphex 64e2988957 menu_list_flush_stack - cleanup 2020-08-20 17:29:42 +02:00
Autechre a268c6b4a0 Merge pull request #11214 from fpscan/hacking_the_kernel
(ozone) new theme: Hacking the Kernel
2020-08-20 17:08:24 +02:00
Autechre 5a3a0b511a Merge pull request #11219 from jdgleaver/glui-hacking-the-kernel
(GLUI) Add 'Hacking the Kernel' theme
2020-08-20 15:45:20 +02:00
twinaphex 5a96f8b63c Small cleanups as recommended by Alcaro 2020-08-20 14:50:22 +02:00
jdgleaver 20d27df27f (GLUI) Add 'Hacking the Kernel' theme 2020-08-20 10:14:32 +01:00
twinaphex 8324a03a5e Don't heap allocate audio_driver_input_dat - already
a part of heap-allocated rarch_state
2020-08-20 09:31:23 +02:00
Autechre fc4a6971d6 Merge pull request #11216 from sonninnos/input_icons_labels
(XMB+OZONE) Quick Menu ports: AtD icon + key labels for keyboard type
2020-08-19 18:29:09 +02:00
twinaphex cb0a193eea Fix RPNG build failure 2020-08-19 18:20:55 +02:00
twinaphex dff52d8688 Revert "(audio conversion) Optimize array accesses"
This reverts commit 8613ece7f5.
2020-08-19 18:18:02 +02:00
twinaphex c4be485baf Revert "Optimize png_reverse_filter_copy_line_rgb"
This reverts commit aa428cc415.
2020-08-19 18:17:16 +02:00
twinaphex ae0d63ccc0 Revert "Optimize png_reverse_filter_copy_line_rgba"
This reverts commit ad3c67f275.
2020-08-19 18:16:57 +02:00
twinaphex e8170a4354 Revert "Optimize png_reverse_filter_copy_line_gray_alpha"
This reverts commit 710226504e.
2020-08-19 18:16:42 +02:00
twinaphex 7c19d4d009 Revert "Optimize png_read_plte"
This reverts commit 107b640bc0.
2020-08-19 18:16:10 +02:00
twinaphex ea5d134337 Revert "Optimize read_chunk_header"
This reverts commit 33f9ef90d8.
2020-08-19 18:15:54 +02:00
twinaphex 282d34aeb1 Revert "(RPNG) Optimize png_reverse_filter_adam7_deinterlace_pass"
This reverts commit a283b71261.
2020-08-19 18:15:24 +02:00
twinaphex 003ff126ce Revert "(RPNG) optimizations to copy_line_bw"
This reverts commit 9b29217564.
2020-08-19 18:15:08 +02:00
Twinaphex e3d77d7f28 Remove unused variable 2020-08-19 17:21:22 +02:00
Tony Jansson 1c7d8d3f31 (XMB+OZONE) Quick Menu ports: AtD icon + key labels for keyboard type 2020-08-19 17:35:15 +03:00
Ömercan Kömür a91b51156e (ozone) new theme: Hacking the Kernel 2020-08-19 15:24:47 +03:00
Autechre f4c6c26312 Merge pull request #11186 from fpscan/boysenberry-ozone
(ozone) new theme: Boysenberry
2020-08-19 12:55:56 +02:00
twinaphex 9b29217564 (RPNG) optimizations to copy_line_bw 2020-08-19 12:07:56 +02:00
twinaphex 6b978eb057 (D3D11) Cleanups 2020-08-19 11:26:30 +02:00
twinaphex a283b71261 (RPNG) Optimize png_reverse_filter_adam7_deinterlace_pass 2020-08-19 10:05:09 +02:00
twinaphex 33f9ef90d8 Optimize read_chunk_header 2020-08-19 09:09:38 +02:00
twinaphex 107b640bc0 Optimize png_read_plte 2020-08-19 08:58:18 +02:00
twinaphex 710226504e Optimize png_reverse_filter_copy_line_gray_alpha 2020-08-19 08:18:09 +02:00
twinaphex ad3c67f275 Optimize png_reverse_filter_copy_line_rgba 2020-08-19 08:14:23 +02:00
twinaphex aa428cc415 Optimize png_reverse_filter_copy_line_rgb 2020-08-19 08:09:17 +02:00
twinaphex dc3dc574d8 String stack size cleanups 2020-08-19 06:53:09 +02:00
twinaphex a85368f21f Move more strings from heap to stack 2020-08-19 06:27:36 +02:00
Braden Farmer 31e8fe8fd9 Implement support for Play Store builds using Play Feature Delivery (Java/Gradle) 2020-08-18 22:23:55 -06:00
twinaphex 54c31348ce Further simplify vulkan_write_quad_vbo 2020-08-19 06:06:30 +02:00
twinaphex 2f405c4088 Optimize vulkan_write_quad_vbo 2020-08-19 05:32:40 +02:00
twinaphex 6136035f2e Optimize vulkan_write_quad_vbo 2020-08-19 04:59:14 +02:00
twinaphex 4fb388ca4d Cleanup 2020-08-19 04:34:22 +02:00
twinaphex 2ca12718f1 (DInput) Optimize array loop iterations 2020-08-19 04:04:44 +02:00
twinaphex 07244d484c (UWP) Buildfix 2020-08-19 03:44:24 +02:00
twinaphex a15a033e72 (XInput) Cleanups 2020-08-19 03:40:55 +02:00
twinaphex bbb4d12881 (vulkan_common.c) Optimize array access 2020-08-19 03:19:21 +02:00
twinaphex 5166eebcaf for loop cleanups - use space after 'for' 2020-08-19 03:06:22 +02:00
twinaphex 8613ece7f5 (audio conversion) Optimize array accesses 2020-08-19 02:46:54 +02:00
Autechre b4d2f2a7ed Merge pull request #11211 from jdgleaver/glui-cursor-visibility
(GLUI) Improve selection cursor visibility when content is running and menu background is (semi-)transparent
2020-08-19 01:43:44 +02:00
jdgleaver 2fd8a5b0ed (GLUI) Improve selection cursor visibility when content is running and menu background is (semi-)transparent 2020-08-18 16:38:52 +01:00
twinaphex 4f991ab640 Reorder structs, alignment 2020-08-18 17:16:59 +02:00
twinaphex 3a21a6e134 Cleanup 2020-08-18 16:53:19 +02:00
twinaphex 21855dfb85 Reorder structs, alignment 2020-08-18 16:51:15 +02:00
Autechre b1d28fd7e0 Merge pull request #11205 from sonninnos/analog_dpad_override
Skip analog input if analog is in digital mode
2020-08-18 16:28:40 +02:00
twinaphex f618c8be9c Cleanups 2020-08-18 15:51:26 +02:00
twinaphex ed52146f8c Cleanups 2020-08-18 15:48:13 +02:00
twinaphex 79db13d5e7 Cleanup 2020-08-18 15:42:17 +02:00
twinaphex acc34d1820 (gfx_thumbnail_path) Further cleanups 2020-08-18 15:36:51 +02:00
twinaphex eb604502bb (gfx_thumbnail_path) Cleanups 2020-08-18 15:32:25 +02:00
twinaphex b39959c985 Cleanup dylib.c 2020-08-18 15:22:46 +02:00
twinaphex 624a70f062 More strings being moved from heap to stack 2020-08-18 14:47:57 +02:00
twinaphex a5f3ff9c18 (RGUI) Silence warnings due to struct reordering 2020-08-18 14:31:30 +02:00
twinaphex 216190b826 Clean up more string variables on heap - move to stack 2020-08-18 14:26:15 +02:00
twinaphex 0c5611d10e Clean up more string variables on heap; move to stack 2020-08-18 13:17:28 +02:00
twinaphex 0f4470dabb Move more strings from heap to stack 2020-08-18 13:01:56 +02:00
twinaphex ad7db2e2b8 Move path variables off heap size; prevent potential memory
fragmentation
2020-08-18 12:44:14 +02:00
twinaphex fe28f17eeb Cleanup 2020-08-18 10:57:42 +02:00
twinaphex d29e0a9969 (Task content) Don't put string variables on heap 2020-08-18 10:56:54 +02:00
twinaphex 4177ea4256 Update 2020-08-17 15:11:48 +02:00
twinaphex c81d06d0a1 Reorder structs, alignment 2020-08-17 15:09:19 +02:00
Weedy Weed Smoker 457903e886 Fixed Arabic translation 2020-08-17 04:09:29 +07:00
Weedy Weed Smoker 8e07e8015a Fixed language translations 2020-08-17 02:55:43 +07:00
Weedy Weed Smoker 38f27f76d1 Fixed Norwegian language translation 2020-08-16 23:07:07 +07:00
Tony Jansson 8191b44b0b Skip analog input if analog is in digital mode 2020-08-16 10:12:41 +03:00
twinaphex 855351de9e Reorder g_defaults, alignment 2020-08-16 04:38:02 +02:00
twinaphex 1b4cbf3ed5 (ffmpeg core) Struct reordering, alignment 2020-08-16 04:23:15 +02:00
twinaphex aeeff7f350 (D3D11) Cleanup 2020-08-16 03:11:00 +02:00
Autechre 741c38dba4 Merge pull request #11203 from Alcaro/patch-6
stdstring: Delete duplicate function
2020-08-16 02:59:00 +02:00
Alcaro df2db8bceb stdstring: Delete duplicate function 2020-08-16 02:33:25 +02:00
twinaphex 4958e30d8f (slang shader backends) Cleanups 2020-08-16 02:29:54 +02:00
twinaphex e35d2cb527 CLeanups 2020-08-16 02:20:13 +02:00
twinaphex bb58b0d6e3 (GLSLANG) Move more common code out of shader_gl_core and shader_vulkan
and into glslang_util.h
2020-08-16 02:05:38 +02:00
twinaphex b69ceaea1b Reorder structs, alignment 2020-08-16 01:07:42 +02:00
Autechre faedbf4368 Merge pull request #11202 from Alcaro/patch-5
rpng: delete "unused" png_chunk member
2020-08-16 00:32:17 +02:00
Alcaro 37efa9d52e rpng: delete "unused" png_chunk member
also fix a rather ugly buffer overflow that relies on the unused member existing and being null
2020-08-16 00:27:25 +02:00
twinaphex 982fbadd15 (RBMP) Reorder structs, alignment 2020-08-16 00:13:16 +02:00
twinaphex 3d2efdd2ef (RJPEG) reorder structs, alignment 2020-08-16 00:09:10 +02:00
Autechre ff42f3348a Merge pull request #11130 from guoyunhe/fix-string-system-to-vendor
Fix stirng "system" -> "vendor"
2020-08-15 23:39:39 +02:00
twinaphex b8058a93e1 Reorder structs, alignment 2020-08-15 23:10:31 +02:00
twinaphex 789bc83276 reorder structs, alignment 2020-08-15 23:02:01 +02:00
Autechre 6416e66954 Merge pull request #11201 from sonninnos/quickmenu_keyboard_icons
(XMB+OZONE) Use correct icons in Quick Menu control ports with keyboard device type
2020-08-15 22:58:06 +02:00
twinaphex 89b441787a Reorder retro_keybind, alignment 2020-08-15 22:36:56 +02:00
Tony Jansson b6f37f4245 (XMB+OZONE) Use correct icons in Quick Menu control ports with keyboard device type 2020-08-15 21:47:36 +03:00
Autechre 5119b71377 Merge pull request #11200 from schellingb/explore_structorder
Explore: Order structs according to coding guidelines
2020-08-15 20:39:55 +02:00
twinaphex f48dc0ff5b Reorder structs, alignment 2020-08-15 20:38:31 +02:00
Bernhard Schelling 46bbbc4478 Order structs according to coding guidelines 2020-08-16 03:22:09 +09:00
twinaphex f09df7c6e3 Reorder structs, alignment 2020-08-15 19:43:17 +02:00
twinaphex a5efd70db7 Reorder structs, alignment 2020-08-15 18:53:52 +02:00
twinaphex f934aaa78d Reordre structs, alignment 2020-08-15 18:42:27 +02:00
twinaphex 0598c5643a Reorder structs, alignment 2020-08-15 18:30:27 +02:00
twinaphex 454338c4f3 (BTStack) Buildfix 2020-08-15 17:14:27 +02:00
twinaphex 0eaca29c68 (RGUI) Silence warnings 2020-08-15 17:05:13 +02:00
twinaphex bda1e90d26 Remove unused variables 2020-08-15 03:24:12 +02:00
twinaphex cbf96ad8fb Reorder structs, alignment 2020-08-15 03:21:54 +02:00
twinaphex 6e1445c658 Reorder structs, alignment 2020-08-15 02:55:29 +02:00
twinaphex 501165af0b (BTStack) Buildfix attempt two 2020-08-15 02:26:43 +02:00
twinaphex bc712b95cf Reorder structs, alignment 2020-08-15 01:53:23 +02:00
twinaphex 55eeb28db7 Reorder structs, alignment 2020-08-15 01:39:22 +02:00
twinaphex 3ec21b292c Reorder structs, alignment 2020-08-15 01:18:23 +02:00
twinaphex a8646a2610 Reorder structs, alignment 2020-08-15 00:44:35 +02:00
twinaphex e399a2f78e reorder structs, alignment 2020-08-15 00:35:15 +02:00
twinaphex eb1db52b89 Reorder structs, alignment 2020-08-15 00:11:58 +02:00
twinaphex bf85a658ba (BTStack) Attempt build fix 2020-08-14 23:46:31 +02:00
twinaphex acfb7d0a23 Reorder structs, alignment 2020-08-14 23:13:05 +02:00
Autechre 63f02fb1e4 Update CHANGES.md 2020-08-14 23:09:28 +02:00
Autechre 578e6cc07f Merge pull request #11196 from sonninnos/device-type-refresh
Refresh bind list on device type change
2020-08-14 23:09:02 +02:00
twinaphex 203882ec9a Struct reorder, alignments 2020-08-14 23:08:33 +02:00
twinaphex 375f2da3bb Reorder structs, alignment 2020-08-14 23:03:15 +02:00
twinaphex 7642cf5fa5 Struct reorders/alignment 2020-08-14 22:54:46 +02:00
twinaphex 29cb70abb2 Reorder structs/alignment 2020-08-14 22:43:46 +02:00
twinaphex 327d82cc1d Struct reordering/alignment 2020-08-14 22:21:05 +02:00
twinaphex 8a530aa5dd Reorder structs/alignment 2020-08-14 21:48:12 +02:00
twinaphex bfc8a7beca Reorder structs/alignment 2020-08-14 21:45:41 +02:00
twinaphex 4c0d9bc68d Struct reordering/alignment 2020-08-14 21:19:32 +02:00
twinaphex 7bb63a213c Struct reordering/alignment 2020-08-14 21:09:24 +02:00
twinaphex 10b06ce828 More struct reordering/alignment 2020-08-14 21:00:04 +02:00
twinaphex c3e4c32401 Reorder structs 2020-08-14 20:21:44 +02:00
twinaphex e6bde72f1b Reorder struct 2020-08-14 20:13:29 +02:00
twinaphex c4f52774f9 Reorder structs - setting_list.h 2020-08-14 20:12:07 +02:00
Tony Jansson ba6d45bdc0 Refresh bind list on device type change 2020-08-14 21:04:21 +03:00
Autechre e15430233a Update CHANGES.md 2020-08-14 19:51:29 +02:00
Autechre 270d5d4111 Merge pull request #11191 from gblues/gblues/wiiu-fix-touchscreen
WIIU: Fix touchscreen mouse emulation
2020-08-14 19:50:59 +02:00
Autechre 48d312d681 Update CHANGES.md 2020-08-14 19:50:28 +02:00
Autechre f5600aba7f Merge pull request #11192 from sonninnos/master
Remap file loading fixes
2020-08-14 19:48:38 +02:00
Autechre 7cf6d1a1cc Merge pull request #11195 from jdgleaver/core-updater-search
Enhanced core downloader search functionality
2020-08-14 19:48:16 +02:00
twinaphex 37be80b847 Struct reordering 2020-08-14 19:46:06 +02:00
twinaphex 795092e77f Struct reordering 2020-08-14 19:19:37 +02:00
twinaphex e7c63df2bc Struct reordering 2020-08-14 19:06:25 +02:00
twinaphex 87c0fb6323 Struct reordering 2020-08-14 18:58:09 +02:00
jdgleaver 6d8f3cb182 Enhanced core downloader search functionality 2020-08-14 17:53:44 +01:00
twinaphex 1aceac6edb Struct reorders 2020-08-14 18:51:50 +02:00
twinaphex 8a3ef513a3 Struct reordering 2020-08-14 18:43:11 +02:00
twinaphex 7ea2111936 Struct reorderings 2020-08-14 18:36:09 +02:00
twinaphex 659d50c916 Struct reorderings 2020-08-14 18:31:28 +02:00
twinaphex 023fd4f330 Alignment changes 2020-08-14 18:19:57 +02:00
twinaphex b3963a2897 Struct alignment changes 2020-08-14 18:03:09 +02:00
twinaphex d0b68ee838 (RPNG) Struct alignment changes 2020-08-14 17:54:03 +02:00
twinaphex b4dc19d7aa (RPNG) Cleanups 2020-08-14 17:49:33 +02:00
twinaphex 5ba80a8996 configuration.h - reorder structs 2020-08-14 17:28:05 +02:00
twinaphex b6228729b6 More struct alignment 2020-08-14 17:11:18 +02:00
twinaphex 1ccb51460c Do some struct ordering for better alignment, and add CODING-GUIDELINES 2020-08-14 17:00:50 +02:00
twinaphex 18cb55e207 Remove dynarray.h - rbuf.h replaces it 2020-08-14 16:09:13 +02:00
twinaphex dffa052958 Rearrange draw struct 2020-08-14 15:58:43 +02:00
Tony Jansson a8faacc926 Remap file loading fixes 2020-08-14 15:40:49 +03:00
twinaphex 67913127ef Some struct reordering 2020-08-14 14:35:43 +02:00
Autechre d989e375c4 Update CHANGES.md 2020-08-14 14:29:13 +02:00
Autechre 7ed3ee278a Merge pull request #11193 from jdgleaver/core-updater-rbuf
(core_updater_list) Replace static entries array with dynamic array via RBUF library
2020-08-14 14:28:46 +02:00
jdgleaver e76f5a212a (core_updater_list) Replace static entries array with dynamic array via RBUF library 2020-08-14 12:33:49 +01:00
gblues 4555481863 WIIU: Fix touchscreen mouse emulation
== DETAILS
The way the mouse emulation worked was to simply return a 3rd axis from the
gamepad, which the polling code updates with the touch state in real time.

Well, the code that figures out if it's a positive or negative axis was
failing because it didn't see that 3rd axis as valid. So, I added values
which allow it to be seen as valid, and voila! the touch screen input
works again.

== TESTING
Tested locally using "Beneath a Steel Sky" in ScummVM.
2020-08-13 23:31:17 -07:00
twinaphex f3b440bab9 Some struct reordering 2020-08-14 07:07:34 +02:00
twinaphex 8b8c52bb67 Cleanup 2020-08-14 06:45:36 +02:00
twinaphex eb95757fb2 update_time_callback - Get rid of default callback - just point to NULL
instead
2020-08-14 06:39:12 +02:00
twinaphex c250b94dcf Move p_anim state to rarch_state 2020-08-14 06:29:13 +02:00
twinaphex 31e50f1221 (gfx_animation) Get rid of some static variables, move struct
definitions to header
2020-08-14 05:53:57 +02:00
twinaphex 559ab90374 Update CHANGES.md 2020-08-13 20:27:27 +02:00
Autechre b6ea811334 Merge pull request #11189 from jdgleaver/m3u_file-rbuf
(m3u_file) Replace static entries array with dynamic array via RBUF library
2020-08-13 18:51:14 +02:00
jdgleaver b19eb64329 (m3u_file) Replace static entries array with dynamic array via RBUF library 2020-08-13 17:25:45 +01:00
Autechre b972327bc6 Update CHANGES.md 2020-08-13 17:25:43 +02:00
Autechre 6092761469 Update CHANGES.md 2020-08-13 17:23:29 +02:00
Autechre 15b6a6ede4 Merge pull request #11187 from schellingb/gfx_animation_rbuf
Simplify gfx_animation by switching from dynarray to rbuf
2020-08-13 17:23:16 +02:00
Autechre c18850456d Merge pull request #11188 from Jamiras/cheevos_texture_cleanup
(cheevos) ensure badge textures are released before video driver is deinitialized
2020-08-13 17:22:29 +02:00
Jamiras 2a5516b1b9 ensure cheevos badge textures are released before video driver is deinitialized 2020-08-12 21:55:12 -06:00
Bernhard Schelling 48fabb7f88 Simplify gfx_animation by switching from dynarray to RBUF 2020-08-13 05:23:32 +09:00
Autechre c70c13c01d Update CHANGES.md 2020-08-12 17:44:59 +02:00
twinaphex 56a690df0e (cheevos) Some style nits 2020-08-12 17:43:04 +02:00
Autechre d081c01cc2 Merge pull request #11183 from Jamiras/cheevos_memory
(cheevos) generic memory mapping using rcheevos
2020-08-12 17:37:46 +02:00
Ömercan Kömür 8fad42f3c9 (ozone) new theme: Boysenberry 2020-08-12 18:37:22 +03:00
Autechre 172de99048 Merge pull request #11154 from sonninnos/master
Game Focus + OS mouse cursor fix
2020-08-12 17:35:06 +02:00
Jamiras 1f350be1f8 rename memory.c and parser.c to be less generic; eliminate hash.c 2020-08-12 08:16:06 -06:00
Jamiras 8d34d06c76 address LGTM warning 2020-08-11 11:15:00 -06:00
Jamiras 0609d229a6 address travis warnings 2020-08-11 10:23:35 -06:00
Jamiras b15411dad8 generic memory mapping using rcheevos 2020-08-11 09:26:04 -06:00
twinaphex 6388872a54 Cleanups/style nits 2020-08-11 16:00:25 +02:00
Autechre 0f17559ccc Merge pull request #11182 from jdgleaver/core-inputs
Add API extension for cores to query the number of active inputs provided by the frontend
2020-08-11 15:55:21 +02:00
jdgleaver 81bf22c3fb RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS: Clarify variable update frequency comment 2020-08-11 14:54:22 +01:00
jdgleaver ee8a2f4268 Add API extension for cores to query the number of active inputs provided by the frontend 2020-08-11 14:07:00 +01:00
dankcushions 6aa0680110 GLES 3.1 and 3.2 build parameters, and corresponding context checks. 2020-08-11 13:47:51 +01:00
twinaphex d3b234f404 Buildfix 2020-08-11 09:03:59 +02:00
twinaphex ac083e69ba Cleanups 2020-08-11 06:46:45 +02:00
twinaphex 4092fd7e83 Minor cleanup 2020-08-11 06:35:12 +02:00
Autechre c7f839a7fd Merge pull request #11180 from rsn8887/master
[SWITCH] Fix input bind icons being off by one line
2020-08-11 04:49:51 +02:00
rsn8887 6fd7dc0519 [SWITCH] Fix input bind icons being off by one line 2020-08-10 21:39:52 -05:00
Autechre e06ffc9e13 Update CHANGES.md 2020-08-10 10:34:26 +02:00
Autechre 28447cfe0e Merge pull request #11172 from francescotintori/francesco/playlist_autofix
Portable playlists: fixed first load initialization
2020-08-10 10:33:56 +02:00
Autechre 508ba278f4 Merge pull request #11170 from ericonr/fix-include
[linux] Add missing include in nbio_linux.c.
2020-08-10 06:32:09 +02:00
Autechre 4b0e14d920 Merge pull request #11171 from ericonr/fix-static
[gfx] Fix static function placement.
2020-08-10 06:01:15 +02:00
Érico Rolim 87d99601f6 [gfx] Fix static function placement.
In gfx/drivers_context/vc_egl_ctx.c, move gfx_ctx_vc_bind_api
declaration to before it's called by any other function, otherwise it
warns about "warning: implicit declaration of function" and can error
out with "error: conflicting types for 'gfx_ctx_vc_bind_api'" in certain
cases.
2020-08-10 00:51:14 -03:00
Érico Rolim 057dd563aa [linux] Add missing include in nbio_linux.c.
On musl-libc, the compiler would print a warning for nbio_linux.c:
"warning: 'struct timespec' declared inside parameter list will not be
visible outside of this definition or declaration", indicating a missing
header defining this structure.

On glibc, this definition is provided through the stdlib header.
2020-08-10 00:33:43 -03:00
Autechre 5f702a766f Merge pull request #11168 from libretro/revert-10687-fix-unused-port-dev-id
Revert "Don't report unused input ports to cores"
2020-08-09 21:07:00 +02:00
Autechre 2979018d68 Revert "Don't report unused input ports to cores" 2020-08-09 21:06:45 +02:00
francescotintori 6fa08b5287 Portable playlists: fixed first load initialization 2020-08-09 19:59:42 +02:00
Twinaphex b1723f7cd0 Remove unused CocoaTouch menu - allows us to get rid of a lot of
dead code
2020-08-09 19:41:04 +02:00
twinaphex 06210387af Fix C++ comment 2020-08-09 19:24:13 +02:00
Autechre a31514d7e0 Merge pull request #11167 from yoshisuga/ios-default-video-config
[iOS] Set default video driver to OpenGL
2020-08-09 19:23:27 +02:00
Autechre 17257fb90c Merge pull request #10687 from realnc/fix-unused-port-dev-id
Don't report unused input ports to cores
2020-08-09 19:23:11 +02:00
Yoshi Sugawara 6a37f1ec90 [iOS] Set default video driver to OpenGL; start adding source file references to xcode project to make code navigable in Xcode 2020-08-09 06:08:16 -10:00
Nikos Chantziaras 1345d6e0c1 Update CHANGES.md 2020-08-09 14:54:31 +03:00
Nikos Chantziaras e534373dee Don't report unused input ports to cores
RetroArch has the unfortunate behavior of setting unused ports to
RETRO_DEVICE_JOYPAD in the core through
retro_set_controller_port_device(). "Unused" meaning ports higher than
the "maximum users" amount configured in settings/input in RA. This is
unfortunate because some cores (like the dosbox ones) change their
behavior depending on the device type assigned to ports. If all unused
(and thus invisible and unconfigurable through the UI) are set to
RETRO_DEVICE_JOYPAD, the core changes its behavior because from its
point of view there's multiple joypads connected, and there's no way for
users to disconnect these bogus joypads.

Fix this by not calling retro_set_controller_port_device() on ports that
are not used.
2020-08-09 14:54:28 +03:00
Autechre 43293abb41 Update CHANGES.md 2020-08-09 09:03:16 +02:00
twinaphex 2a9915f80d (D3D) Buildfix 2020-08-08 19:12:01 +02:00
Autechre fd291f14ef Merge pull request #11165 from albertoruibal/psl1ght-rtime-bug
Bug in the Makefile for psl1ght after adding rtime
2020-08-08 18:18:17 +02:00
twinaphex ade58fc8b6 (UWP) Buildfix 2020-08-08 18:17:40 +02:00
Alberto Alonso Ruibal 5e8d400e5c Bug in the Makefile for psl1ght after adding rtime
A "rtime.c" was added to an OBJ list but it should be an "rtime.o".

This is also causing that a build step is deleting the rtime.c file.
2020-08-08 17:03:56 +02:00
Tony Jansson 53340385a6 Game focus updates:
- Prevent mouse cursor visibility in fullscreen when ungrabbed via game focus
- Reformat logging
2020-08-06 14:15:55 +03:00
Guo Yunhe 7149a412d9 Fix stirng "system" -> "vendor" 2020-08-02 17:51:35 +03:00
Weedy Weed Smoker d5d7b02c33 Language descriptions update 2020-08-02 06:17:26 +07:00
1960 changed files with 273964 additions and 148750 deletions

No files matched your search

+5 -2
View File
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v1.3.0
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Setup Python
@@ -23,6 +23,9 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: Crowdin Sync
shell: bash
env:
CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
run: |
cd intl
python3 crowdin_sync.py
python3 crowdin_sync.py "$CROWDIN_API_KEY"
+37
View File
@@ -9,6 +9,8 @@
*.map
*.swp
*.cache
*.gcda
*.gcno
.tmp
.tmp.c
.tmp.cxx
@@ -34,6 +36,7 @@ Release
ipch
*.user
/bootstrap/gx/wii/app_booter/app_booter.bin
/wii/app_booter/app_booter.bin
*.zip
RetroArch-w32/
RetroArch-w64/
@@ -68,6 +71,7 @@ apple/RetroArch_iOS.xcodeproj/project.xcworkspace/*
/rsound.h
.pc
/media/shaders_glsl/
/media/shaders_slang/
/obj-w32/
.cproject
.settings
@@ -77,12 +81,31 @@ convert_rumble.awk
*~
assets
info
content_favorites.lpl
content_history.lpl
content_image_history.lpl
content_music_history.lpl
content_video_history.lpl
saves
screenshots
autoconfig
config
database
overlays
playlists
states
system
shaders/shaders_cg
shaders/shaders_glsl
shaders/shaders_slang
# Qt Creator
*.cflags
*.cxxflags
*.creator*
*.config
*.files
*.includes
# Wii U
*.depend
@@ -188,3 +211,17 @@ gfx/common/wayland/xdg-decoration-unstable-v1.h
gfx/common/wayland/xdg-decoration-unstable-v1.c
gfx/common/wayland/xdg-shell.c
gfx/common/wayland/xdg-shell.h
# libretro-common samples
libretro-common/samples/streams/rzip/rzip
# DINGUX
*.opk
#VITA
param.sfo
*.S
*.wo
*.elf
*.self
*.vpk
+909 -6
View File
@@ -1,8 +1,911 @@
before_script:
- apt-get update -qq && apt-get install -y -qq git build-essential
- apt-get update -qq && apt-get build-dep -y retroarch
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest
build:
stages:
- build-prepare
- build
- prepare-for-static-cores
- trigger-static-cores
build-retroarch-windows-x64:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-mxe-win64-cross:gcc10
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch.exe
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- ./configure
- make -j2
- "MOC=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/moc ./configure --host=x86_64-w64-mingw32.shared"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch.exe; fi
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist"
- "cd libretro-common/audio/dsp_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -"
- "cp -f libretro-common/audio/dsp_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cd gfx/video_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -"
- "cp -f gfx/video_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f retroarch.cfg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/retroarch.default.cfg"
- "echo -e '[Paths]\nPlugins = ./' > ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/qt.conf"
- "/bin/bash /usr/lib/mxe/tools/copydlldeps.sh
--infile retroarch.exe
--destdir ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/
--recursivesrcdir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/bearer/
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/iconengines/
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/imageformats/
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms/
--enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/styles/
--copy
--objdump x86_64-w64-mingw32.shared-objdump"
- "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll"
build-retroarch-windows-i686:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-mxe-win32-cross:gcc10
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch.exe
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "MOC=/usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/bin/moc ./configure --host=i686-w64-mingw32.shared"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch.exe; fi
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist"
- "cd libretro-common/audio/dsp_filters && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release strip && cd -"
- "cp -f libretro-common/audio/dsp_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cd gfx/video_filters && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release strip && cd -"
- "cp -f gfx/video_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f retroarch.cfg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/retroarch.default.cfg"
- "echo -e '[Paths]\nPlugins = ./' > ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/qt.conf"
- "/bin/bash /usr/lib/mxe/tools/copydlldeps.sh
--infile retroarch.exe
--destdir ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/
--recursivesrcdir /usr/lib/mxe/usr/i686-w64-mingw32.shared/
--enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/bearer/
--enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/iconengines/
--enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/imageformats/
--enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/platforms/
--enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/styles/
--copy
--objdump i686-w64-mingw32.shared-objdump"
- "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll"
build-retroarch-windows-msvc10-x64:
tags:
- msvc2010
stage: build
variables:
MEDIA_PATH: .media
MSYSTEM: MINGW64
ARCH: x86_64
MSYS_BIN_DIR: C:\msys64\usr\bin
SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
RCEDIT_BIN_DIR: C:\Program Files\rcedit
PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
# Build RetroArch
- $Script:MakeCmd = "$Env:MSYS_BIN_DIR\env.exe $Env:MSYS_BIN_DIR\bash.exe -l -c 'make -f Makefile.griffin platform=windows_msvc2010_x64'"
- Invoke-Expression $Script:MakeCmd
- mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
- rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
# Create .media subdirectories
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory
# Copy audio/video filters
- Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio"
- Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video"
# Copy default config file
- Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg"
# Copy dll dependencies
# (note that msvc10 build should not have any, but this
# may change in the future)
- copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
- Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore
build-retroarch-windows-msvc10-i686:
tags:
- msvc2010
stage: build
variables:
MEDIA_PATH: .media
MSYSTEM: MINGW32
ARCH: x86
MSYS_BIN_DIR: C:\msys64\usr\bin
SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
RCEDIT_BIN_DIR: C:\Program Files\rcedit
PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
# Build RetroArch
- $Script:MakeCmd = "$Env:MSYS_BIN_DIR\env.exe $Env:MSYS_BIN_DIR\bash.exe -l -c 'make -f Makefile.griffin platform=windows_msvc2010_x86'"
- Invoke-Expression $Script:MakeCmd
- mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
- rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
# Create .media subdirectories
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory
# Copy audio/video filters
- Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio"
- Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video"
# Copy default config file
- Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg"
# Copy dll dependencies
# (note that msvc10 build should not have any, but this
# may change in the future)
- copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
- Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore
build-retroarch-windows-msvc05-i686:
tags:
- win10
stage: build
variables:
MEDIA_PATH: .media
MSYSTEM: MINGW32
ARCH: x86
MSYS_BIN_DIR: C:\msys64\usr\bin
SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
RCEDIT_BIN_DIR: C:\Program Files\rcedit
PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin
VS80COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
# Build RetroArch
- $Script:MakeCmd = "$Env:MSYS_BIN_DIR\env.exe $Env:MSYS_BIN_DIR\bash.exe -l -c 'make -f Makefile.griffin platform=windows_msvc2005_x86'"
- Invoke-Expression $Script:MakeCmd
- mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
- rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
# Create .media subdirectories
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory
- New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory
# Copy audio/video filters
- Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio"
- Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video"
# Copy default config file
- Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg"
# Copy dll dependencies
# (note that msvc05 build should not have any, but this
# may change in the future)
- copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
- Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore
build-retroarch-linux-x64:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:xenial-gcc9
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch
- retroarch_qt
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
# Qt build
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt"
- "./configure --prefix=/usr"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi
- "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt prefix=/usr"
- "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt/etc"
- "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDirQt.tar.gz AppDirQt && rm -rf AppDirQt && cd -"
- "mv -f retroarch retroarch_qt"
# Non-Qt build
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir"
- "make clean"
- "./configure --disable-qt --prefix=/usr"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi
- "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir prefix=/usr"
- "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir/etc"
- "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDir.tar.gz AppDir && rm -rf AppDir && cd -"
# Filters
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -"
- "cp -f libretro-common/audio/dsp_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cd gfx/video_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -"
- "cp -f gfx/video_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
build-retroarch-linux-i686:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-i386-ubuntu:xenial-gcc9
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
# Qt build
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt"
- "./configure --prefix=/usr"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi
- "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt prefix=/usr"
- "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt/etc"
- "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDirQt.tar.gz AppDirQt && rm -rf AppDirQt && cd -"
- "mv -f retroarch retroarch_qt"
# Non-Qt build
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir"
- "make clean"
- "./configure --disable-qt --prefix=/usr"
- "make -j$NUMPROC"
- if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi
- "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir prefix=/usr"
- "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir/etc"
- "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDir.tar.gz AppDir && rm -rf AppDir && cd -"
# Filters
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -"
- "cp -f libretro-common/audio/dsp_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cd gfx/video_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -"
- "cp -f gfx/video_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
.build-retroarch-macos-xcode:
# Metal/Universal x86_64 arm64 is default
tags:
- macosx-packaging
stage: build
variables:
XCARCHIVE_PATH: pkg/apple/build/RetroArchUniversal
XCPROJECT_NAME: RetroArch_Metal
XCCONFIG: GitLabCI.xcconfig
artifacts:
paths:
- ${XCPROJECT_NAME}.zip
- retroarch-repo/
expire_in: 10 min
dependencies: []
script:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme RetroArch -archivePath ${XCARCHIVE_PATH} -xcconfig pkg/apple/${XCCONFIG} archive
- pushd ${XCARCHIVE_PATH}.xcarchive/Products/Users/gitlab/Applications/
- ditto -c -k --sequesterRsrc --keepParent RetroArch.app RetroArch.zip
- popd
- mv ${XCARCHIVE_PATH}.xcarchive/Products/Users/gitlab/Applications/RetroArch.zip ${XCPROJECT_NAME}.zip
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- "mv .retroarch-repo/ retroarch-repo/"
# Mac OS Universal, Metal
build-retroarch-osx-universal-metal:
extends: .build-retroarch-macos-xcode
build-retroarch-osx-opengl-x64:
extends: .build-retroarch-macos-xcode
variables:
XCARCHIVE_PATH: pkg/apple/build/RetroArchOpenGL
XCPROJECT_NAME: RetroArch
XCCONFIG: OpenGL_GitLabCI.xcconfig
build-retroarch-ios-arm64:
extends: .build-retroarch-macos-xcode
variables:
XCPROJECT_NAME: RetroArch_iOS11_Metal
XCCONFIG: GitLabCI.xcconfig
XCSCHEME: "RetroArch iOS Release"
artifacts:
paths:
- retroarch-repo/
expire_in: 10 min
script:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/GitLabCI.xcconfig build
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- "mv .retroarch-repo/ retroarch-repo/"
build-retroarch-ios9:
extends: .build-retroarch-macos-xcode
variables:
XCPROJECT_NAME: RetroArch_iOS9
XCCONFIG: GitLabCI.xcconfig
XCSCHEME: "RetroArchiOS9"
artifacts:
paths:
- retroarch-repo/
expire_in: 10 min
script:
- xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/GitLabCI.xcconfig build
- mkdir .retroarch-repo
- "cp -r ./* .retroarch-repo"
- "mv .retroarch-repo/ retroarch-repo/"
build-retroarch-tvos-arm64:
extends: build-retroarch-ios-arm64
variables:
XCSCHEME: "RetroArch tvOS Release"
build-retroarch-dingux-mips32:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:latest
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch
- retroarch_rg350.opk
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -j$NUMPROC -f Makefile.rg350"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
build-retroarch-dingux-odbeta-mips32:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:odbeta
stage: build
variables:
MEDIA_PATH: .media
STRIP_BIN: 1
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch
- retroarch_rg350_odbeta.opk
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -j$NUMPROC -f Makefile.rg350_odbeta"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
build-retroarch-android-normal:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
script:
- "cd pkg/android/phoenix && ./gradlew assembleNormalRelease && cd -"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-retroarch-android-aarch64:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
script:
- "cd pkg/android/phoenix && ./gradlew assembleAarch64Release && cd -"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-retroarch-android-ra32:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
script:
- "cd pkg/android/phoenix && ./gradlew assembleRa32Release && cd -"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-retroarch-android-playstore-normal:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
script:
- "cd pkg/android/phoenix && ./gradlew bundlePlayStoreNormalRelease && cd -"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-retroarch-android-playstore-plus:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
script:
- "cd pkg/android/phoenix && ./gradlew bundlePlayStorePlusRelease && cd -"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-libnx-aarch64:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Static dummy builds without a core so its a good check if it properly builds
- build-static-retroarch-dummy-libnx-aarch64
script:
# Allow failure since we don't have a core
- "make -f Makefile.libnx -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-libnx-aarch64:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch_switch.nro
- retroarch_switch.elf
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.libnx -j$NUMPROC HAVE_STATIC_DUMMY=1"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f pkg/libnx/retroarch.jpg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-vita:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
- retroarch-precompiled-gl/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-vita
script:
# Allow failure since we don't have a core
- "make -f Makefile.vita -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "make -f Makefile.vita clean"
- "HAVE_VITAGLES=1 make -f Makefile.vita -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled-gl"
- "cp -r ./* .retroarch-precompiled-gl/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
- "mv .retroarch-precompiled-gl/ retroarch-precompiled-gl/"
build-static-retroarch-dummy-vita:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- eboot.bin
- param.sfo
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.vita.salamander -j$NUMPROC"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -fr pkg/vita/* ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-ps2:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest
stage: prepare-for-static-cores
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-ps2
script:
# Allow failure since we don't have a core
# PS2 makefile for now doesn't allow -jX so this is why is hardcoded to -j1
- "make -f Makefile.ps2 -j1 ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-ps2:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest
stage: build
before_script:
# PS2 doesn't allow to use -jX for now
- export NUMPROC=1
artifacts:
paths:
- raboot.elf
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.ps2.salamander -j$NUMPROC release"
build-static-retroarch-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-psp
script:
# We need to boostrap before compile
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
# Allow failure since we don't have a core
- "make -f Makefile.psp1 -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-psp:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- EBOOT.PBP
- kernel_functions.prx
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)"
- "make -f Makefile.psp1.salamander -j$NUMPROC"
- "make -C bootstrap/psp1/kernel_functions_prx/"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/ICON0.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/psp1/PIC1.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-ctr:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-ctr
script:
# Allow failure since we don't have a core
- "make -f Makefile.ctr -j$NUMPROC USE_CTRULIB_2=1 ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-ctr-legacy:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:ctr-legacy
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
script:
# Allow failure since we don't have a core
- "make -f Makefile.ctr -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-ctr:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch_3ds.cia
- RetroArch.3dsx
- RetroArch.smdh
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.ctr.salamander -j$NUMPROC USE_CTRULIB_2=1"
- "mv -f retroarch_3ds_salamander.cia retroarch_3ds.cia"
- "mv -f retroarch_3ds_salamander.3dsx RetroArch.3dsx"
- "mv -f retroarch_3ds_salamander.smdh RetroArch.smdh"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
build-static-retroarch-wiiu:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-wiiu:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-wiiu
script:
# Allow failure since we don't have a core
- "make -f Makefile.wiiu -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-wiiu:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch.rpx
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.wiiu -j$NUMPROC SALAMANDER_BUILD=1"
- "mv -f retroarch_wiiu_salamander.rpx retroarch.rpx"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f pkg/wiiu/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/wiiu/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-wii:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-wii
script:
# Allow failure since we don't have a core
- "make -f Makefile.wii -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-wii:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- boot.dol
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -f Makefile.wii.salamander -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0"
- "mv -f retroarch-salamander_wii.dol boot.dol"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f pkg/wii/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f pkg/wii/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-static-retroarch-ngc:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-ngc
script:
# Allow failure since we don't have a core
- "make -f Makefile.ngc -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-ngc:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
build-static-retroarch-emscripten:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-emscripten:latest
stage: prepare-for-static-cores
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- retroarch-precompiled/
expire_in: 10 min
dependencies: []
needs:
# Dummy build requires no core
- build-static-retroarch-dummy-emscripten
script:
# Allow failure since we don't have a core
- "emmake make -f Makefile.emscripten -j$NUMPROC ||:"
- "mkdir .retroarch-precompiled"
- "cp -r ./* .retroarch-precompiled/"
- "mv .retroarch-precompiled/ retroarch-precompiled/"
build-static-retroarch-dummy-emscripten:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest
stage: build
variables:
MEDIA_PATH: .media
before_script:
- export NUMPROC=$(($(nproc)/3))
artifacts:
paths:
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio"
- "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video"
- "cp -rf pkg/emscripten/libretro ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
- "cp -f media/canvas.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/icon_dark.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/icon_light.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/invader_dark.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/invader_light.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/libretro-logo.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/retroarch-16x16.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/retroarch-16x16.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/retroarch-96x96.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
- "cp -f media/retroarch.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media"
trigger_static-cores:
stage: trigger-static-cores
needs:
- build-static-retroarch-libnx-aarch64
- build-static-retroarch-vita
- build-static-retroarch-ps2
- build-static-retroarch-psp
- build-static-retroarch-ctr
- build-static-retroarch-ctr-legacy
- build-static-retroarch-wiiu
- build-static-retroarch-wii
- build-static-retroarch-ngc
- build-static-retroarch-emscripten
dependencies: []
script:
# Dummy for now
- /bin/true
+2 -25
View File
@@ -70,37 +70,14 @@ matrix:
script:
- ./configure --enable-opengl --disable-metal
- make
- os: osx
osx_image: xcode8
script:
- xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj
- os: osx
osx_image: xcode11.2
script:
- brew update-reset
- brew install --force-bottle qt5
- security create-keychain -p travis build.keychain
- security default-keychain -s build.keychain
- security unlock-keychain -p travis build.keychain
- echo $OSX_CERT | base64 --decode > dev.p12
- security import dev.p12 -k build.keychain -P $OSX_CERT_PASS -T /usr/bin/codesign
- rm dev.p12
- security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k travis build.keychain
- xcodebuild -target RetroArchQt -configuration Release -project pkg/apple/RetroArch_Metal.xcodeproj
deploy:
skip_cleanup: true
provider: script
script: bash travis_metal_deploy.sh
on:
branch: master
- language: android
# Android builds are only supported on Trusty
dist: trusty
android:
components:
- tools
- build-tools-28.0.3
- android-28
- build-tools-29.0.3
- android-29
install:
- echo y | sdkmanager "ndk-bundle"
before_script:
+1 -1
View File
@@ -93,7 +93,6 @@ ekipan
Emmanuel Martin (daliaetnano)
endrift
erbridge
esoptron
Ethan Lee (flibitijibibo)
Exvat
Ezio-PS
@@ -214,6 +213,7 @@ Nathan S. (natinusala)
NathanStrong-Tripwire
nattycleopatra
nayslayer
Nephilim
netux79
nfnty
nia (ensra)
+263
View File
@@ -1,5 +1,267 @@
# Future
# 1.9.2
- 3DS: Enable graphics widgets / overlays
- 3DS: Load texture images as BGR colors
- 3DS: Change default asset directory
- CHEEVOS: Allow rcheevos_patch_address to be called on game without achievements
- CHEEVOS: Update achievement memory maps (add Supervision)
- CONFIG/FILE: Use hash map to optimise key/value lookups
- CORE INFO: Performance optimisations + code clean-ups/refactors
- CRT/SWITCHRES: Fixed CRTSwitchRes framebuffer bug
- DISCORD/RP: Fix regression
- DRM: set the correct video mode
- FASTFORWARD: Enforce minimum fastforward_ratio of 1.0
- FONTS/FREETYPE/STB_UNICODE/BITMAPFONT: Prevent texture bleed when rendering text at non-integer scales
- INPUT: Ensure that 'retro_set_controller_port_device' is called when updating 'Max Users'
- INPUT/XEGL/MOUSE: Fix xegl_ctx.c mouse activation
- INPUT/SDL: Fix crash in SDL input driver when analogs are bound.
- INPUT/POINTER: Add scaling to pointer input.
- INPUT REMAPPING: Fix regression on loading file
- INPUT REMAPPING: Fix regression where disabling input remapping would disable input
- IOS: Disable system button gestures on iOS 14
- IOS: Prevent potential crash on controller connect - randomly would get a crash when connecting a game controller while RA was running
- LAKKA: Add menu for time zone setting
- LOGGING: RARCH_LOG_V checking for verbosity level is not necessary and can cause issues; removed said check.
- LOGGING: Silence inappropriate cheatfile logging
- IOS/MAC: Add CPU VFP unit detection for Darwin
- MAC: Swallow 'escape' key being pressed - would previously make the game toggle between fullscreen and windowed
- MAC: Intel and ARM64 timer change proposal.
- MAC/ARM64: run_fast_mode disabled for 64 bits invalid instructions.
- MAC/OPENGL: Fix codesigning issue
- MAC/UNIVERSAL: Add TTS translation service support.
- MENU: Add optional menu screensaver
- MENU: Add search filter support to cheats and overlays file browser menus
- MENU/FILEBROWSER: Enhanced 'Load Content' file browser search functionality
- MENU/INPUT: Block accidental diagonals in menu navigation
- MENU/RGUI: Add option to disable menu transparency
- MENU/RGUI: Fix display of 'Video > Scaling' menu when 'Lock Menu Aspect Ratio' is enabled
- MENU/MATERIALUI: Add icon to 'Turbo Fire' menu entry
- MENU/OZONE: Ozone Dracula theme
- OPENDINGUX/BETA: Fix IPU scaling when running GBA-resolution content
- OPENDINGUX/BETA: Add 50Hz support
- OPENDINGUX: Enable 'SaveRAM Autosave Interval' by default
- PATCHES: Added multi-softpatching support + OSD messages for patches
- RHMAP: Track the complete string in rhmap
- VITA: Align VM block size to 1MB - should fix one of the issues with gpSP
- WINDOWS/GDI: Fix non-ASCII text rendering
- XEGL: Fix mouse not working when using OpenGLES with X11
# 1.9.1
- 3DS: Graphics widgets support
- 3DS: On error, only init gfx on salamander build. This prevents graphical issues if the gfx is already initialized.
Which should always be the case if called from a running core
- 3DS: Update error applet
- 3DS: Enable online Core Updater
- 3DS: Guard threading
- 3DS: Allow sideways screen rotation
- 3DS: Enable threading and add a threaded audio driver
- ANDROID: Implementation of fullscreen over notch function (for Android 9.0 and up)
- ANDROID: Add Play Store module support.
- ANDROID: Add option to switch all installed cores to Play Store versions
- AUDIO: Memalign audio buffers to 64 bytes. This is the most common cache line size, helps with performance. Also fixes issues with platforms like PSP that wrongly assume that malloc returns aligned buffers (to 16bytes). This recently broke the PSP builds
- AUDIO/ALSA: Fix float format detection
- AUDIO/JACK: Deinterleave in the process callback. This allows us to avoid the extra copy to the deinterleave buffer and lets us use only a single jack ringbuffer.
- AUDIO/JACK: (Audio/JACK) Fix non-blocking write. Previously we would wait on the condition variable even in the non-blocking case. This improves fast-forward performance massively and brings JACK in line with other backends in that regard.
- AUDIO/XAUDIO2: Fix threaded audio bugs with cores like Dinothawr
- CONFIG: Add support for saving per-directory core options and deleting core option overrides
- CONFIG: Enable saving of changed parameters when '#include' directives are used
- CONFIG/DIRS: Enable configuration of the directories used for Favorites, History, Images, Music and Video playlists
- CONFIG/REMAPS: Allow loading core remaps without content
- CONFIG/OVERRIDES: Fix empty override paths when launching without content
- CHEATS: Maximum search value corrections
- CHEEVOS: Generic memory mapping using rcheevos
- CHEEVOS: Ensure badge textures are released before video driver is deinitialized. Should fix crashes with slang shaders.
- CHEEVOS: Include achievement runtime state in save states
- CHEEVOS: Prevent hardcore toggle when emu-handled cheats are active
- CHEEVOS: Add confirmation submenu to achievements hardcore toggle
- CHEEVOS: Calculate leaderboard widget spacing based on video resolution
- CHEEVOS: Show unsupported core message when viewing achievement list for unsupported core
- CHEEVOS: Allow disabling leaderboard notifications and trackers separately
- CHEEVOS: Add display widget for active leaderboards
- CHEEVOS/CORE OPTIONS: Core options blacklist. Disables hardcore mode when certain core options are set.
- CLI: Add option for quitting on close content
- CONTEXT/DRIVER SWITCHING: Allow context switching from gl to glcore
- CORE OPTIONS: Add option to reset all core options for current core/content
- CORE OPTIONS: Add per-folder core options
- CRT/SWITCHRES: Improvements
- CRT/SWITCHRES: Low resolution switch bug fix - This allows resolutions lower that 32x224 like 256x224 to work
- CORE DOWNLOADER: Enhanced core downloader search functionality
- D3D10: Should now be able to use shaders with hardware-accelerated libretro cores
- D3D11: Should now be able to use shaders with hardware-accelerated libretro cores
- D3D11: Skip shader/stock blend when we don't have a texture. This happens if the core calls video_cb with the frame set to null on
the first frame, and was causing black screens/driver resets. The ffmpeg core seems to do this.
- D3D11: Fix shaders with scaled framebuffers
- D3D11: Add flip model support - fallback to blit model for OSes where flip model is not supported (windows 7 and earlier). Will add a menu option later allowing the user to switch inbetween the two
- D3D12: Should now be able to use shaders with hardware-accelerated libretro cores
- D3D10/11/12: Increase sprite capacity, we need this so that the hardware rendered menu drivers doesn't glitch out
- DRM: Fix race condition in drm_surface_set_aspect
- DRM/KMS: add support for custom hdmi_timings / modes
- DATABASE: Fix crash that could happen when selecting cursor
- DATABASE/EXPLORE: Fix - Prevent segfault when accessing 'Explore' menu
- EMSCRIPTEN: Only report back one screen pointer for rwebinput, fixes lockup when clicking on an overlay
- FILEIO/PERFORMANCE: Only attempt to call dir_check_defaults once per runtime session
- FILEIO/PERFORMANCE/3DS: Increase file buffer size and savestate chunk size. This seems to help with saving large savestates.
- FONTS: Improve handling of Arabic and Persian text
- FONTS/FREETYPE: Use fontconfig to select fonts if available
- INPUT: Add hold mode for turbo fire 'Single Button'
- INPUT MAPPING: Refresh bind list on device type change
- INPUT MAPPING/REMAPPING: Minor bugfix - Remap file browsing starts navigation at input_remapping_directory even if the core-subdir (where saved files go) exists
Having remaps for many different cores makes finding the active core files cumbersome, especially because remaps are not compatible between different cores (but maybe for cores emulating the same hardware)
- IOS: Take out 'Core Downloader' from iOS 9/iOS 11 builds
- IOS: IOSApp doesn't crash anymore when a file is shared to it
- INPUT: Keyboard device mapper rework
- INPUT: New input bind order scan/clear fix
- INPUT: Duplicate key event blocking additions
- INPUT: Prevent duplicate key events with hotkeys + keyboard device type
- INPUT: Keyboard LED driver
- INPUT/AUTOCONFIG: Allow controllers with no/empty names to work.
- INPUT/GAME FOCUS: Add option to automatically enable 'game focus' mode when running/resuming content
- INPUT/HOTKEYS: Hotkey for Close Content / Unload Core
- INPUT/LIBCEC: Map libcec-daemon keys to RETROK
- INPUT/X11: Enable keyboard input when mouse cursor is not inside the RetroArch window but window still has focus
- INPUT/X11: Fix mouse input when mouse is grabbed
- INPUT/UDEV/RUMBLE: Fix rumble.
- INPUT/WINDOWS/DINPUT: Simultaneous shift sticky fix
- INPUT/WINDOWS/DINPUT: Prevent Win-key from opening Start Menu
- INPUT/WINDOWS/DINPUT: Option for disabling Windows hotkeys
- INPUT/WINDOWS/DINPUT: Mouse grabbing/clipping with Alt-Tab
- INPUT/WINDOWS/DINPUT: Mouse grab fixes
- INPUT/WINDOWS/RAWINPUT: Key position fixes
- INPUT/WINDOWS/RAWINPUT: Mouse grab fixes
- INPUT/WINDOWS/RAWINPUT: Prevent outside window mouse clicks when grabbed
- INPUT/WINDOWS/RAWINPUT: Option for disabling Windows hotkeys
- INPUT MAPPING/REMAPPING: Major bugfix - Remap file having a different device type requires manual intervention after loading for the core to register the type properly
- JSON: New faster json parser/writer library rjson
- JSON/RJSON: Replace rapidjson parser/writer in discord-rpc with rjson
- LIBRETRO: Add API extension for cores to query the number of active inputs provided by the frontend
- LIBRETRO: Ensure RARCH_CTL_CORE_OPTIONS_LIST_GET returns false if no core options are available
- LIBRETRO: Add API extension for overriding frontend audio latency
- LIBRETRO: Add API extension for cores to monitor frontend audio buffer occupancy
- LINUX: Also show /run/media or /run/media/$USER in drives list
- LINUX: Adjust brightness according to the limit. Seems like some platforms feature non-standard maximums, but the variable is correclty exported for us to use
- LOCALIZATION: Add Finnish language
- LOGS/SHADER: Shader log spam reduction
- LOGS/CONFIG: Config logging cleanup
- LOGS/SAVESTATE: Config logging cleanup
- MAC: Apple Silicon/Mac M1 support
- MAC: Code signing/notarization
- MAC: Fix a leak with NSTemporaryDirectory() on ARC (Automatic Reference Counting) code
- MAC: Support bundle assets extraction on macOS
- MAC: Universal Metal build for both ARM and Intel Macs
- MAC/UNIVERSAL: Add CoreAudio3 audio driver for Metal Universal build
- MAC/IOS: Only extract assets once on first install
- MENU: Add 'L2 + R2' menu toggle gamepad combo
- MENU: Menu text improvements; clarifications, consistency, text mistakes,
- MENU: Tweak menu scroll initial hold delays
- MENU: Restrict menu acceleration to navigation buttons
- MENU: Add 'Menu Driver' setting to 'User Interface'
- MENU: Relocate 'Menu Scroll' settings.
- MENU: Separate 'Turbo Fire' menu.
- MENU: Dropdown menu for 'Custom Aspect Ratio' setting.
- MENU: Reorder Mouse Index next to Device Index
- MENU: Submenu for Device Index/Mouse Index
- MENU: Reorganize User Interface menu
- MENU: Add 'Remove DSP Plugin' menu entry
- MENU: Hide 'Auto-Shader Delay' menu setting when shaders are unavailable
- MENU/ANIMATIONS: Fix non-smooth text ticker + reduce line ticker code duplication
- MENU/ANIMATIONS/OZONE: Add cursor wiggle animation
- MENU/ANIMATIONS/OZONE: Implement wiggling for main menu when wrap-around is disabled
- MENU/NOTIFICATIONS: On-Screen Notifications' menu clean-ups
- MENU/NOTIFICATIONS: Add option to show/hide Refresh Rate notification
- MENU/FILEBROWSER: Start auto-selecting last used path for more file browser menu entries
- MENU/INPUT: Input port label adjustments
- MENU/INPUT/XMB: Proper control port icons
- MENU/INPUT/OZONE: Proper control port icons
- MENU/QUICK MENU: Add remap clearing ability under Quick Menu controls
- MENU/QUICK MENU: Cap 'State Slot' drop-down list to a maximum of 1000 (+Auto) entries
- MENU: Customizable menu scroll hold delay.
- MENU/DESKTOP: Fix mouse cursor limited by window range on F5 press
- MENU/DESKTOP: Add simple shader option
- MENU/DESKTOP/WINDOWS: Remove broken 'Update RetroArch' functionality for Windows. We want this to not only be system agnostic if we bring it back, but also work outside of the Qt desktop interface
- MENU/OZONE: New Theme - Twilight Zone
- MENU/RGUI: Add 3:2, 5:3 and 3:2/5:3 (centered) aspects
- MENU/RGUI/TEXT RENDERING: Add Russian language text support
- MENU/RGUI/TEXT RENDERING: Add support for CJK punctuation glyphs
- MIDI/WINMM: Recover from MIDI messages not handled by the device
- MIDI/WINMM: Fix winmm midi driver hanging on content closing
- NETWORK: Add READ/WRITE_CORE_MEMORY network commands
- NETWORK: Fix backwards condition in socket blocking behavior
- NETWORK/NETPLAY: Attempt IPv4 when IPv6 fails
- OGA/VIDEO: support for OGS
- OGA: This keeps the tradition DRM driver along with the OGA one. The probe
function skips the driver if the screen is non rotated to fall back to
the regular DRM driver.
- OGA: Fix messages from not disappearing
- OGA: Implement RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER. This is a faster rendering codepath for software rendered libretro cores that some libretro cores use right now. Video drivers in RetroArch have to explicitly implement this for this codepath to work at runtime.
- OPENDINGUX: Add/Optimise rumble interface
- OPENDINGUX: Fix frozen video when enabling fast forward
- OPENDINGUX/SDL: OSD font clean-up
- OPENDINGUX/SDL: Enable selection of image interpolation method when using 'sdl_dingux' gfx driver
- OPENDINGUX/SDL: Enable integer scaling when using the 'sdl_dingux' gfx driver
- OVERLAYS: Add option to scale overlays automatically (with aspect ratio correction)
- OVERLAYS: Hide Overlay When Gamepad is Connected. Overlays will be hidden automatically when a gamepad is connected in port 1, and shown again when the gamepad is disconnected.
- OVERLAYS: New default overlays for mobile (neo-retropad)
- OVERLAYS: In addition to overlay scale, the user can now set an Overlay Aspect Adjustment factor. Most overlays are designed for 16:9 displays, which means they become stretched/ugly on modern wide aspect phones and suchlike. By changing the Overlay Aspect Adjustment factor, a user can scale the overlay width/height to achieve a uniform appearance regardless of display resolution.
- OVERLAYS: Since scaling a gamepad overlay can result in buttons being squished too close together (or being pulled too far apart), the user can now adjust the effective spacing of the different 'halves' of an overlay via Overlay Horizontal Separation and Overlay Vertical Separation factors. Overlay Horizontal Separation divides the overlay in two vertically (left/right, at the centre point), and applies a spacing offset (positive or negative) between the UI elements on each side; Overlay Vertical Separation does the same, but the split is horizontal (top/bottom)
- OVERLAYS/FIX: The Overlay X Offset and Overlay Y Offset options have been fixed, and now work correctly
- OVERLAYS/FIX: All of the above options (and Overlay Scale) are configured and saved independently for landscape and portrait display orientations - so adjusting everything for a nice landscape layout won't break the portrait display
- OVERLAYS/FIX: When using the Vulkan gfx driver, memory is leaked every time an overlay is freed
- OVERLAYS/FIX: When threaded video is enabled, loading overlays with no images (i.e. utility-type overlays, where everything is hidden until the screen is touched) can generate segfaults due to improper usage of realloc()
- OVERLAYS/FIX: When Show Inputs on Overlay is enabled, ASAN reports bit shift errors due to an incorrect range check when handling turbo inputs - essentially, there is no upper limit to the considered input id range, which means overlay hotkeys (menu toggle, etc.) are incorrectly treated as having turbo support, causing bit shifts using wildly inappropriate id indices
- PLAYLISTS/PORTABLE: Fixed first load initialization
- PS2: Added Multitap support (up to 8 players)
- PS2: Fix for not recognized digital and other non-standard controllers
- PS2: Fix Quitting from RA
- PS2: Add Audio mixer
- REWIND: Prevent 'Rewind Frames' from being set to '1' incorrectly on load content
- RUNAHEAD: Add Run-Ahead Toggle hotkey with notifications
- RBUF/ANIMATIONS: Simplify gfx_animation by switching from dynarray to rbuf
- RBUF/CORE UPDATER: Replace static entries array with dynamic array via RBUF library
- RBUF/M3U: Replace static entries array with dynamic array via RBUF library
- SENSORS: Android (crash-)fixes/improvements + add option to disable sensor input
- SDL2/VIDEO: Get the SDL2 video driver to work in Wayland/KMS
- SAVESTATES: Adding savestate garbage collector for autoincrement stavestates. As some issues indicate, there's an issue with
the autoincrement save slot feature: slot index will increase and very old saves won't be deleted. This adds support to delete old save states with a user defined
save state limit (global). Instead of wrapping around the slot counter it will simply delete the oldest save, since it is simpler. For now there's a limit of one deletion per save, which ensures a user cannot delete many saves by accident if they set the limit too low.
- SAVESTATES/SAVEFILES: Ensure save file and playlist compression is disabled by default
- SHADERS: Add option to remember last selected shader preset/shader pass directories
- SHADERS: Use last selected shader preset directory when changing shaders via previous/next hotkeys
- SHADERS: Remove Parameters line
- SHADERS: Shaders fix for duplicate parameters loading bug
- SHADERS: Fix Crash change num shader passes in UI
- SHADERS/SLANG: Fix slang shaders with rotation
- STREAMING/FFMPEG: Add Facebook Game Stream option (for embedded ffmpeg core-enabled RetroArch builds)
- SWITCH: Fix input bind icons being off by one line
- SWITCH: Fix audio issues
- TLS/SSL: Add BearSSL support, as alternative to mbedTLS
- VIDEO: AddVariable BFI (Black Frame Insertion)
- VIDEO/DRM GO2: Dynamic resolution support
- VIDEO FILTERS: Video filter optimisations
- VIDEO FILTERS: Add several LCD-effect video filters
- VIDEO FILTERS: Gameboy/Dot_Matrix video filters: Add XRGB8888 support
- VIDEO FILTERS: Add Normal4x video filter
- VIDEO FILTERS: Add 'Upscale_256x-320x240' video filter
- VIDEO FILTERS: Add 'Upscale1.5x' video filter
- VITA: Disable temporarily VitaGL
- VITA: Fix bubble name
- VITA: proper handling of boot params
- VITA: Default menu scale 1.5x to improve readability
- WIFI/LAKKA: Add a proper WiFi menu, with Enable/Disable & Disconnect options. This also allows WiFi passwords to be remembered. The underlying tool (connman) allows to store passswords (that's why it auto connects whenever you boot a Lakka device), so we expose this so that the user does not have to re-input the pass when connecting to a saved wifi.
- WII/HID: Added HID support for HORI mini wired ps4 gamepad
- WINDOWS: Add support for accelerators to main win32 message loop
- WINDOWS: Add accelerators for Open (Ctrl+O) and Fullscreen (Alt+Enter)
- WINDOWS: Fixes some file I/O failures on Windows when paths are longer than 260 characters.
- WINDOWS: Fix crashing on startup on Windows when using Chinese Simplified language.
- WINDOWS/XP: The OpenGL 1 video driver is now the default for maximum backwards compatibility upon first startup. It's of course always possible for the user to change this.
- WINDOWS/MENUBAR: Load accelerators, Localize Win32 menu items to current language, and display shortcut keys
- WINDOWS/MENUBAR: Add 'Reinit' to Menubar
- WINDOWS/MSVC: Fix rewind crash on MSVC build when using SSE2
- UWP: Don't default to XMB menu by default, default to Ozone instead
- UWP/VFS: Use Win32 file APIs when possible - better file I/O performance
- WIIU/FILEIO/PERFORMANCE: Faster startup times - remove the path_is_valid() call when loading textures
- WIIU: Fix touchscreen mouse emulation
# 1.9.0
- 3DS: Fix sound crackling when paused
- ANDROID/VIBRATION: Fixes "Vibrate on Key Press" having no effect on Android devices, which occurred because only the off time/strength was defined in what should have been a pair of off/on values
@@ -44,6 +306,7 @@
- PLAYLISTS/DATABASE/EXPLORE: Show system icons in explore view
- PS2: Improve FPS Limiter
- RUNAHEAD: Prevent runahead from being disabled *permanently* when an error occurs
- SCANNER: Add more region codes for GameCube/Wii game detection
- SHADERS/SLANG: Increased Slang max Parameters, Textures & Passes
- VIDEO FILTERS/BLARGG: Make Blargg_snes filter customizable
- WINDOWS/RAWINPUT: Fix invalid calls to dinput_handle_message when input driver is not set to dinput
+66
View File
@@ -0,0 +1,66 @@
Struct ordering
---------------
For POD-types, try to order structs as follows (first to last):
* long double (8 bytes, 16 bytes [64bit x86], 12 bytes [32bit x86])
* double (8 bytes)
* int64_t (8 bytes, 8 bytes [32bit ARM], 4 bytes [32bit x86])
* uint64_t (4 bytes [32bit], 8 bytes [32bit ARM], 8 bytes [64bit])
* pointer (4 bytes [32bit], 8 bytes [64bit] [1])
* intptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* uintptr_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ptrdiff_t (4 bytes [32bit], 8 bytes [64bit] [1])
* ssize_t (4 bytes [32bit], 8 bytes [64bit])
* size_t (4 bytes [32bit], 8 bytes [64bit])
* jmp_buf (4 bytes)
* long (4 bytes [64bit Win], 8 bytes [64bit non-Win], 4 bytes [32bit])
* int32_t (4 bytes)
* unsigned (4 bytes)
* float (4 bytes)
* int (4 bytes)
* enum (4 bytes)
* int16_t (2 bytes)
* char (1 byte)
* bool (1 byte)
[1] PS3 uses 4 byte pointers despite having a 64bit processor
Struct members should be sorted by alignment. Therefore, structs
should be sorted by the largest type inside them.
For example, take a struct like this:
typedef struct
{
size_t capacity;
bool old_format;
bool compress;
bool fuzzy_archive_match;
bool autofix_paths;
char path[PATH_MAX_LENGTH];
char base_content_directory[PATH_MAX_LENGTH];
} playlist_config_t;
size_t has the biggest alignment here, so 'struct playlist_config_t' inside a struct should come before or after size_t.
*** BEST PRACTICES ***
* If we have pointers and size variable pairs, it's best to interleave them to increase the probability they go in the same cacheline. It also makes the code more readable, that these two variables are connected.
Example:
struct a
{
char* b;
size_t b_len;
char* c;
size_t c_len;
};
Stack size
----------
You have to assume that stack size is going to be limited in RetroArch. Some game consoles (and other embedded systems) might have a default stack size as low as 128Kb or less. Be conservative with stack size but don't try to put very small structs on heap either [to avoid memory fragmentation among other things].
Be mindful that heap allocations are slow compared to stack.
+2 -2
View File
@@ -22,7 +22,7 @@ endif
OBJ :=
LIBS :=
DEF_FLAGS :=
DEF_FLAGS := -I.
ASFLAGS :=
DEFINES := -DHAVE_CONFIG_H -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64
DEFINES += -DGLOBAL_CONFIG_DIR='"$(GLOBAL_CONFIG_DIR)"'
@@ -118,7 +118,7 @@ ifneq ($(CXX_BUILD), 1)
CFLAGS += -D_GNU_SOURCE
endif
DEF_FLAGS += $(INCLUDE_DIRS) -I. -Ideps -Ideps/stb
DEF_FLAGS += $(INCLUDE_DIRS) -Ideps -Ideps/stb
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS) -D__STDC_CONSTANT_MACROS
+303 -121
View File
@@ -130,6 +130,45 @@ endif
ifneq ($(findstring Darwin,$(OS)),)
OSX := 1
LIBS += -framework AppKit
ARCHFLAGS=
MINVERFLAGS=
ifeq ($(shell uname -p),arm)
MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit)
MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS
else ifeq ($(HAVE_METAL),1)
MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ # macOS (Metal, x86 64bit)
else ifeq ($(shell uname -p),powerpc)
MINVERFLAGS = -mmacosx-version-min=10.5 # macOSX (PowerPC 32-bit)
else ifeq ($(shell uname -m),i386)
MINVERFLAGS = -mmacosx-version-min=10.6 # macOSX (OpenGL, x86 32bit)
else
MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++ # macOSX (OpenGL, x86 64bit)
endif
# Build for a specific architecture when ARCH is defined as a switch
ifeq ($(ARCH),arm64)
MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit)
MINVERFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS
ARCHFLAGS = -arch arm64
else ifeq ($(ARCH),x86_64)
ifeq ($(HAVE_METAL),1)
MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++
else
MINVERFLAGS = -mmacosx-version-min=10.7 -stdlib=libc++
endif
ARCHFLAGS = -arch x86_64
else ifeq ($(ARCH),x86)
MINVERFLAGS = -mmacosx-version-min=10.6
ARCHFLAGS = -arch x86
else ifeq ($(ARCH),ppc)
MINVERFLAGS = -mmacosx-version-min=10.5
ARCHFLAGS = -arch ppc
endif
ifeq ($(BUILDBOT),1)
ARCHFLAGS = -target $(LIBRETRO_APPLE_PLATFORM) -isysroot $(LIBRETRO_APPLE_ISYSROOT)
endif
DEF_FLAGS += $(MINVERFLAGS) $(ARCHFLAGS)
LDFLAGS += $(MINVERFLAGS) $(ARCHFLAGS)
else
OSX := 0
endif
@@ -193,6 +232,7 @@ endif
OBJ += frontend/frontend_driver.o \
retroarch.o \
command.o \
msg_hash.o \
intl/msg_hash_us.o \
$(LIBRETRO_COMM_DIR)/queues/task_queue.o \
@@ -235,6 +275,10 @@ OBJ += \
$(LIBRETRO_COMM_DIR)/memmap/memalign.o \
$(LIBRETRO_COMM_DIR)/file/nbio/nbio_stdio.o
OBJ += \
$(LIBRETRO_COMM_DIR)/lists/linked_list.o \
$(LIBRETRO_COMM_DIR)/queues/generic_queue.o
ifneq ($(findstring Linux,$(OS)),)
OBJ += $(LIBRETRO_COMM_DIR)/file/nbio/nbio_linux.o
endif
@@ -256,8 +300,7 @@ OBJ += \
$(LIBRETRO_COMM_DIR)/file/file_path.o \
$(LIBRETRO_COMM_DIR)/file/file_path_io.o \
file_path_special.o \
file_path_str.o \
$(LIBRETRO_COMM_DIR)/hash/rhash.o \
$(LIBRETRO_COMM_DIR)/hash/lrc_hash.o \
input/common/input_hid_common.o \
led/led_driver.o \
gfx/video_coord_array.o \
@@ -273,11 +316,12 @@ OBJ += \
ifeq ($(HAVE_REWIND), 1)
DEFINES += -DHAVE_REWIND
OBJ += managers/state_manager.o
OBJ += state_manager.o
endif
OBJ += \
gfx/drivers_font_renderer/bitmapfont.o \
gfx/drivers_font_renderer/bitmapfont_10x10.o \
tasks/task_autodetect.o \
input/input_autodetect_builtin.o \
input/input_keymaps.o \
@@ -287,7 +331,7 @@ OBJ += \
ifeq ($(HAVE_CHEATS), 1)
DEFINES += -DHAVE_CHEATS
OBJ += managers/cheat_manager.o
OBJ += cheat_manager.o
endif
OBJ += \
@@ -398,7 +442,8 @@ ifeq ($(HAVE_LANGEXTRA), 1)
intl/msg_hash_sk.o \
intl/msg_hash_fa.o \
intl/msg_hash_he.o \
intl/msg_hash_ast.o
intl/msg_hash_ast.o \
intl/msg_hash_fi.o
endif
ifneq ($(HAVE_GETOPT_LONG), 1)
@@ -446,40 +491,13 @@ endif
ifeq ($(HAVE_QT), 1)
OBJ += ui/drivers/ui_qt.o \
ui/drivers/qt/ui_qt_application.o \
ui/drivers/qt/ui_qt_window.o \
ui/drivers/qt/ui_qt_browser_window.o \
ui/drivers/qt/ui_qt_load_core_window.o \
ui/drivers/qt/ui_qt_msg_window.o \
ui/drivers/qt/gridview.o \
ui/drivers/qt/coreoptionsdialog.o \
ui/drivers/qt/filedropwidget.o \
ui/drivers/qt/coreinfodialog.o \
ui/drivers/qt/playlistentrydialog.o \
ui/drivers/qt/viewoptionsdialog.o \
ui/drivers/qt/qt_dialogs.o \
ui/drivers/qt/qt_widgets.o \
ui/drivers/qt/qt_playlist.o \
ui/drivers/qt/updateretroarch.o \
ui/drivers/qt/thumbnaildownload.o \
ui/drivers/qt/thumbnailpackdownload.o \
ui/drivers/qt/playlistthumbnaildownload.o
ifeq ($(HAVE_SHADERS_COMMON), 1)
OBJ += ui/drivers/qt/shaderparamsdialog.o
endif
ui/drivers/qt/qt_downloads.o
ifeq ($(HAVE_MENU), 1)
OBJ += ui/drivers/qt/settingswidgets.o \
ui/drivers/qt/options/achievements.o \
ui/drivers/qt/options/audio.o \
ui/drivers/qt/options/generic.o \
ui/drivers/qt/options/input.o \
ui/drivers/qt/options/latency.o \
ui/drivers/qt/options/network.o \
ui/drivers/qt/options/osd.o \
ui/drivers/qt/options/playlists.o \
ui/drivers/qt/options/recording.o \
ui/drivers/qt/options/saving.o \
ui/drivers/qt/options/ui.o \
ui/drivers/qt/options/user.o \
ui/drivers/qt/options/video.o
OBJ += ui/drivers/qt/qt_options.o
endif
MOC_HEADERS += ui/drivers/ui_qt.h \
@@ -490,12 +508,12 @@ ifeq ($(HAVE_QT), 1)
ui/drivers/qt/coreinfodialog.h \
ui/drivers/qt/playlistentrydialog.h \
ui/drivers/qt/viewoptionsdialog.h
ifeq ($(HAVE_MENU), 1)
ifeq ($(HAVE_SHADERS_COMMON), 1)
MOC_HEADERS += ui/drivers/qt/shaderparamsdialog.h
endif
ifeq ($(HAVE_MENU), 1)
MOC_HEADERS += ui/drivers/qt/settingswidgets.h \
ui/drivers/qt/options/options.h
ui/drivers/qt/qt_options.h
endif
DEFINES += -DHAVE_MAIN
@@ -537,7 +555,113 @@ ifeq ($(HAVE_LIBRETRODB), 1)
endif
endif
ifeq ($(HAVE_BUILTINMBEDTLS), 1)
ifeq ($(HAVE_BUILTINBEARSSL), 1)
HAVE_SSL = 1
DEFINES += -DHAVE_SSL -DHAVE_BEARSSL
# these -Is are only needed for BearSSL itself
INCLUDE_DIRS += -Ideps/bearssl-0.6/src -Ideps/bearssl-0.6/inc
OBJS_BEAR = deps/bearssl-0.6/src/aead/ccm.o \
deps/bearssl-0.6/src/codec/ccopy.o \
deps/bearssl-0.6/src/codec/dec32be.o \
deps/bearssl-0.6/src/codec/dec32le.o \
deps/bearssl-0.6/src/codec/dec64be.o \
deps/bearssl-0.6/src/codec/enc32be.o \
deps/bearssl-0.6/src/codec/enc32le.o \
deps/bearssl-0.6/src/codec/enc64be.o \
deps/bearssl-0.6/src/ec/ec_all_m31.o \
deps/bearssl-0.6/src/ec/ec_c25519_m31.o \
deps/bearssl-0.6/src/ec/ecdsa_atr.o \
deps/bearssl-0.6/src/ec/ecdsa_i31_bits.o \
deps/bearssl-0.6/src/ec/ecdsa_i31_vrfy_asn1.o \
deps/bearssl-0.6/src/ec/ecdsa_i31_vrfy_raw.o \
deps/bearssl-0.6/src/ec/ec_p256_m31.o \
deps/bearssl-0.6/src/ec/ec_prime_i31.o \
deps/bearssl-0.6/src/ec/ec_secp256r1.o \
deps/bearssl-0.6/src/ec/ec_secp384r1.o \
deps/bearssl-0.6/src/ec/ec_secp521r1.o \
deps/bearssl-0.6/src/hash/ghash_ctmul64.o \
deps/bearssl-0.6/src/hash/ghash_pclmul.o \
deps/bearssl-0.6/src/hash/md5.o \
deps/bearssl-0.6/src/hash/multihash.o \
deps/bearssl-0.6/src/hash/sha1.o \
deps/bearssl-0.6/src/hash/sha2big.o \
deps/bearssl-0.6/src/hash/sha2small.o \
deps/bearssl-0.6/src/int/i31_add.o \
deps/bearssl-0.6/src/int/i31_bitlen.o \
deps/bearssl-0.6/src/int/i31_decmod.o \
deps/bearssl-0.6/src/int/i31_decode.o \
deps/bearssl-0.6/src/int/i31_decred.o \
deps/bearssl-0.6/src/int/i31_encode.o \
deps/bearssl-0.6/src/int/i31_fmont.o \
deps/bearssl-0.6/src/int/i31_iszero.o \
deps/bearssl-0.6/src/int/i31_modpow2.o \
deps/bearssl-0.6/src/int/i31_modpow.o \
deps/bearssl-0.6/src/int/i31_montmul.o \
deps/bearssl-0.6/src/int/i31_muladd.o \
deps/bearssl-0.6/src/int/i31_ninv31.o \
deps/bearssl-0.6/src/int/i31_rshift.o \
deps/bearssl-0.6/src/int/i31_sub.o \
deps/bearssl-0.6/src/int/i31_tmont.o \
deps/bearssl-0.6/src/int/i32_div32.o \
deps/bearssl-0.6/src/int/i62_modpow2.o \
deps/bearssl-0.6/src/mac/hmac_ct.o \
deps/bearssl-0.6/src/mac/hmac.o \
deps/bearssl-0.6/src/rand/hmac_drbg.o \
deps/bearssl-0.6/src/rand/sysrng.o \
deps/bearssl-0.6/src/rsa/rsa_default_pkcs1_vrfy.o \
deps/bearssl-0.6/src/rsa/rsa_default_pub.o \
deps/bearssl-0.6/src/rsa/rsa_i31_pkcs1_vrfy.o \
deps/bearssl-0.6/src/rsa/rsa_i31_pub.o \
deps/bearssl-0.6/src/rsa/rsa_i62_pkcs1_vrfy.o \
deps/bearssl-0.6/src/rsa/rsa_i62_pub.o \
deps/bearssl-0.6/src/rsa/rsa_pkcs1_sig_unpad.o \
deps/bearssl-0.6/src/ssl/prf_md5sha1.o \
deps/bearssl-0.6/src/ssl/prf.o \
deps/bearssl-0.6/src/ssl/prf_sha256.o \
deps/bearssl-0.6/src/ssl/prf_sha384.o \
deps/bearssl-0.6/src/ssl/ssl_client_default_rsapub.o \
deps/bearssl-0.6/src/ssl/ssl_client_full.o \
deps/bearssl-0.6/src/ssl/ssl_client.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_aescbc.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_aesccm.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_aesgcm.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_chapol.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_descbc.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_ecdsa.o \
deps/bearssl-0.6/src/ssl/ssl_engine_default_rsavrfy.o \
deps/bearssl-0.6/src/ssl/ssl_engine.o \
deps/bearssl-0.6/src/ssl/ssl_hs_client.o \
deps/bearssl-0.6/src/ssl/ssl_rec_cbc.o \
deps/bearssl-0.6/src/ssl/ssl_rec_ccm.o \
deps/bearssl-0.6/src/ssl/ssl_rec_chapol.o \
deps/bearssl-0.6/src/ssl/ssl_rec_gcm.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_cbcdec.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_cbcenc.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_ctrcbc.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_ctr.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_dec.o \
deps/bearssl-0.6/src/symcipher/aes_ct64_enc.o \
deps/bearssl-0.6/src/symcipher/aes_ct64.o \
deps/bearssl-0.6/src/symcipher/aes_x86ni_cbcdec.o \
deps/bearssl-0.6/src/symcipher/aes_x86ni_cbcenc.o \
deps/bearssl-0.6/src/symcipher/aes_x86ni_ctrcbc.o \
deps/bearssl-0.6/src/symcipher/aes_x86ni_ctr.o \
deps/bearssl-0.6/src/symcipher/aes_x86ni.o \
deps/bearssl-0.6/src/symcipher/chacha20_ct.o \
deps/bearssl-0.6/src/symcipher/chacha20_sse2.o \
deps/bearssl-0.6/src/symcipher/des_ct_cbcdec.o \
deps/bearssl-0.6/src/symcipher/des_ct_cbcenc.o \
deps/bearssl-0.6/src/symcipher/des_ct.o \
deps/bearssl-0.6/src/symcipher/des_support.o \
deps/bearssl-0.6/src/symcipher/poly1305_ctmul.o \
deps/bearssl-0.6/src/symcipher/poly1305_ctmulq.o \
deps/bearssl-0.6/src/x509/x509_decoder.o \
deps/bearssl-0.6/src/x509/x509_minimal_full.o \
deps/bearssl-0.6/src/x509/x509_minimal.o \
OBJ += $(OBJS_BEAR)
else ifeq ($(HAVE_BUILTINMBEDTLS), 1)
HAVE_SSL = 1
DEFINES += -DHAVE_SSL
@@ -615,7 +739,7 @@ ifeq ($(HAVE_BUILTINMBEDTLS), 1)
OBJ += $(OBJS_TLS_CRYPTO) $(OBJS_TLS_X509) $(OBJS_TLS)
else ifeq ($(HAVE_SSL), 1)
DEFINES += -DHAVE_SSL
LIBS += $(MBEDTLS_LIBS) $(MBEDX509_LIBS) $(MBEDCRYPTO_LIBS)
LIBS += $(SYSTEMMBEDTLS_LIBS)
endif
# Miscellaneous
@@ -644,18 +768,22 @@ endif
ifeq ($(HAVE_LAKKA), 1)
OBJ += wifi/drivers/connmanctl.o
OBJ += misc/cpufreq/cpufreq.o
endif
# Audio
ifeq ($(HAVE_COREAUDIO), 1)
DEFINES += -DHAVE_COREAUDIO
OBJ += audio/drivers/coreaudio.o
HAVE_COREAUDIO_LIBS = 1
endif
ifeq ($(HAVE_COREAUDIO3), 1)
DEFINES += -DHAVE_COREAUDIO3
OBJ += audio/drivers/coreaudio3.o
HAVE_COREAUDIO_LIBS = 1
LIBS += -framework AudioToolBox -framework AVFoundation
endif
ifeq ($(HAVE_COREAUDIO_LIBS), 1)
@@ -687,6 +815,9 @@ endif
ifeq ($(TARGET), retroarch_3ds)
OBJ += audio/drivers/ctr_csnd_audio.o \
audio/drivers/ctr_dsp_audio.o
ifeq ($(HAVE_THREADS), 1)
OBJ += audio/drivers/ctr_dsp_thread_audio.o
endif
endif
ifeq ($(HAVE_ALSA), 1)
@@ -862,12 +993,14 @@ ifeq ($(HAVE_MENU), 1)
OBJ += menu/drivers/materialui.o
DEFINES += -DHAVE_MATERIALUI
HAVE_ASSETS = 1
HAVE_MENU_SCREENSAVER = 1
endif
ifeq ($(HAVE_XMB), 1)
OBJ += menu/drivers/xmb.o
DEFINES += -DHAVE_XMB
HAVE_ASSETS = 1
HAVE_MENU_SCREENSAVER = 1
endif
ifeq ($(HAVE_OZONE), 1)
@@ -879,12 +1012,17 @@ ifeq ($(HAVE_MENU), 1)
menu/drivers/ozone/ozone_sidebar.o
DEFINES += -DHAVE_OZONE
HAVE_ASSETS = 1
HAVE_MENU_SCREENSAVER = 1
endif
ifeq ($(HAVE_STRIPES), 1)
OBJ += menu/drivers/stripes.o
DEFINES += -DHAVE_STRIPES
endif
ifeq ($(HAVE_MENU_SCREENSAVER), 1)
OBJ += menu/menu_screensaver.o
endif
endif
ifeq ($(HAVE_BLUETOOTH), 1)
@@ -906,7 +1044,6 @@ ifeq ($(HAVE_MENU_COMMON), 1)
menu/cbs/menu_cbs_select.o \
menu/cbs/menu_cbs_start.o \
menu/cbs/menu_cbs_info.o \
menu/cbs/menu_cbs_refresh.o \
menu/cbs/menu_cbs_left.o \
menu/cbs/menu_cbs_right.o \
menu/cbs/menu_cbs_deferred_push.o \
@@ -915,9 +1052,6 @@ ifeq ($(HAVE_MENU_COMMON), 1)
menu/cbs/menu_cbs_label.o \
menu/cbs/menu_cbs_sublabel.o \
menu/cbs/menu_cbs_title.o \
menu/cbs/menu_cbs_up.o \
menu/cbs/menu_cbs_down.o \
menu/cbs/menu_cbs_contentlist_switch.o \
menu/menu_displaylist.o
endif
@@ -935,7 +1069,8 @@ ifeq ($(HAVE_GFX_WIDGETS), 1)
gfx/widgets/gfx_widget_progress_message.o \
gfx/widgets/gfx_widget_load_content_animation.o
ifeq ($(HAVE_CHEEVOS), 1)
OBJ += gfx/widgets/gfx_widget_achievement_popup.o
OBJ += gfx/widgets/gfx_widget_achievement_popup.o \
gfx/widgets/gfx_widget_leaderboard_display.o
endif
endif
@@ -967,6 +1102,10 @@ ifeq ($(HAVE_FREETYPE), 1)
OBJ += gfx/drivers_font_renderer/freetype.o
LIBS += $(FREETYPE_LIBS)
DEF_FLAGS += $(FREETYPE_CFLAGS)
ifeq ($(HAVE_FREETYPE), 1)
LIBS += $(FONTCONFIG_LIBS)
DEF_FLAGS += $(FONTCONFIG_CFLAGS)
endif
endif
ifeq ($(HAVE_THREADS), 1)
@@ -1076,6 +1215,10 @@ ifeq ($(TARGET), retroarch_orbis)
frontend/drivers/platform_orbis.o
endif
ifeq ($(DINGUX), 1)
OBJ += dingux/dingux_utils.o
endif
ifeq ($(HAVE_WAYLAND), 1)
OBJ += gfx/drivers_context/wayland_ctx.o \
input/common/wayland_common.o \
@@ -1107,12 +1250,7 @@ ifeq ($(HAVE_DINPUT), 1)
LIBS += -ldinput8 -lole32
DEFINES += -DHAVE_DINPUT
OBJ += input/drivers/dinput.o
ifeq ($(HAVE_XINPUT), 1)
OBJ += input/drivers_joypad/dinput_hybrid_joypad.o
else
OBJ += input/drivers_joypad/dinput_joypad.o
endif
OBJ += input/drivers_joypad/dinput_joypad.o
endif
ifeq ($(HAVE_XINPUT), 1)
@@ -1196,6 +1334,7 @@ ifeq ($(HAVE_HID), 1)
input/connect/connect_psxadapter.o \
input/connect/connect_ps3.o \
input/connect/connect_ps4.o \
input/connect/connect_ps4_hori_mini.o \
input/connect/connect_wii.o \
input/connect/connect_retrode.o \
input/connect/connect_nesusb.o \
@@ -1215,14 +1354,28 @@ ifeq ($(HAVE_WINRAWINPUT), 1)
endif
endif
ifeq ($(HAVE_LIBSHAKE), 1)
ifeq ($(OSX), 1)
DEFINES += -DHAVE_LIBSHAKE
INCLUDE_DIRS += -I$(DEPS_DIR)/libShake/include
OBJ += $(DEPS_DIR)/libShake/src/common/error.o \
$(DEPS_DIR)/libShake/src/common/helpers.o \
$(DEPS_DIR)/libShake/src/common/presets.o \
$(DEPS_DIR)/libShake/src/osx/shake.o
else ifeq ($(HAVE_UNIX), 1)
DEFINES += -DHAVE_LIBSHAKE
INCLUDE_DIRS += -I$(DEPS_DIR)/libShake/include
OBJ += $(DEPS_DIR)/libShake/src/common/error.o \
$(DEPS_DIR)/libShake/src/common/helpers.o \
$(DEPS_DIR)/libShake/src/common/presets.o \
$(DEPS_DIR)/libShake/src/linux/shake.o
endif
endif
# Companion UI
ifneq ($(findstring Win32,$(OS)),)
OBJ += ui/drivers/ui_win32.o \
ui/drivers/win32/ui_win32_window.o \
ui/drivers/win32/ui_win32_browser_window.o \
ui/drivers/win32/ui_win32_msg_window.o \
ui/drivers/win32/ui_win32_application.o
OBJ += ui/drivers/ui_win32.o
endif
# Video
@@ -1231,11 +1384,10 @@ OBJ += gfx/drivers_context/gfx_null_ctx.o
ifeq ($(HAVE_KMS), 1)
HAVE_AND_WILL_USE_DRM = 1
OBJ += gfx/drivers_context/drm_ctx.o
ifeq ($(HAVE_ODROIDGO2), 1)
OBJ += gfx/drivers_context/drm_go2_ctx.o
else
OBJ += gfx/drivers_context/drm_ctx.o
endif
DEF_FLAGS += $(GBM_CFLAGS) $(DRM_CFLAGS)
LIBS += $(GBM_LIBS) $(DRM_LIBS)
@@ -1281,13 +1433,17 @@ ifeq ($(HAVE_PLAIN_DRM), 1)
endif
ifeq ($(HAVE_VITAGL), 1)
DEFINES += -DHAVE_OPENGL1
DEFINES += -DHAVE_OPENGL1 -DHAVE_VITAGL
OBJ += gfx/drivers/gl1.o \
gfx/drivers_font/gl1_raster_font.o \
gfx/drivers_context/vita_ctx.o \
gfx/drivers_display/gfx_display_gl1.o
endif
ifeq ($(HAVE_VITAGLES), 1)
OBJ += gfx/drivers_context/vita_ctx.o
endif
ifeq ($(HAVE_GL_CONTEXT), 1)
ifeq ($(HAVE_GL_MODERN), 1)
DEFINES += -DHAVE_OPENGL
@@ -1341,19 +1497,6 @@ ifeq ($(HAVE_GL_CONTEXT), 1)
endif
endif
ifeq ($(HAVE_METAL), 1)
DEFINES += -DHAVE_METAL
OBJ += gfx/common/metal/Context.o \
gfx/common/metal/Filter.o \
gfx/common/metal/RendererCommon.o \
gfx/common/metal/View.o \
gfx/common/metal/TexturedView.o \
gfx/common/metal/MenuDisplay.o \
gfx/common/metal_common.o \
gfx/drivers/metal.o \
gfx/drivers_font/metal_raster_font.o \
gfx/drivers_display/gfx_display_metal.o
endif
ifeq ($(HAVE_MPV), 1)
OBJ += cores/libretro-mpv/mpv-libretro.o
@@ -1378,7 +1521,6 @@ ifeq ($(HAVE_GL_CONTEXT), 1)
GL_LIBS := $(OPENGL_LIBS)
ifeq ($(OSX), 1)
GL_LIBS := -framework OpenGL
OBJ += gfx/drivers_context/cgl_ctx.o
else ifneq ($(findstring Win32,$(OS)),)
GL_LIBS := -lopengl32 -lgdi32 -lcomdlg32
WANT_WGL=1
@@ -1388,6 +1530,19 @@ ifeq ($(HAVE_GL_CONTEXT), 1)
endif
ifeq ($(HAVE_METAL), 1)
DEFINES += -DHAVE_METAL
LIBS += -framework Metal -framework MetalKit
# Metal code relies on ARC (Automatic Reference Counting), enable it
DEF_FLAGS += -fobjc-arc
OBJ += \
gfx/common/metal/metal_renderer.o \
gfx/common/metal_common.o \
gfx/drivers/metal.o \
gfx/drivers_font/metal_raster_font.o \
gfx/drivers_display/gfx_display_metal.o
endif
ifeq ($(HAVE_EGL), 1)
DEFINES += -DHAVE_EGL
DEF_FLAGS += $(EGL_CFLAGS)
@@ -1415,7 +1570,9 @@ else ifeq ($(HAVE_SDL), 1)
else ifeq ($(HAVE_SDL_DINGUX), 1)
HAVE_SDL_COMMON = 1
DEF_FLAGS += -DHAVE_SDL -DHAVE_SDL_DINGUX
OBJ += gfx/drivers/sdl_dingux_gfx.o
OBJ += gfx/drivers/sdl_dingux_gfx.o \
input/drivers/sdl_dingux_input.o \
input/drivers_joypad/sdl_dingux_joypad.o
DEF_FLAGS += $(SDL_DINGUX_CFLAGS)
LIBS += $(SDL_DINGUX_LIBS)
endif
@@ -1718,20 +1875,24 @@ ifeq ($(HAVE_7ZIP),1)
INCLUDE_DIRS += -I$(DEPS_DIR)/7zip
HAVE_COMPRESSION = 1
DEFINES += -DHAVE_7ZIP -D_7ZIP_ST
7ZOBJ = $(DEPS_DIR)/7zip/7zIn.o \
$(DEPS_DIR)/7zip/Bra86.o \
$(DEPS_DIR)/7zip/7zFile.o \
$(DEPS_DIR)/7zip/7zStream.o \
7ZOBJ = $(DEPS_DIR)/7zip/7zArcIn.o \
$(DEPS_DIR)/7zip/7zBuf.o \
$(DEPS_DIR)/7zip/7zCrc.o \
$(DEPS_DIR)/7zip/7zCrcOpt.o \
$(DEPS_DIR)/7zip/7zDec.o \
$(DEPS_DIR)/7zip/CpuArch.o \
$(DEPS_DIR)/7zip/Delta.o \
$(DEPS_DIR)/7zip/LzFind.o \
$(DEPS_DIR)/7zip/LzmaDec.o \
$(DEPS_DIR)/7zip/LzmaEnc.o \
$(DEPS_DIR)/7zip/7zCrcOpt.o \
$(DEPS_DIR)/7zip/Bra.o \
$(DEPS_DIR)/7zip/7zDec.o \
$(DEPS_DIR)/7zip/Bcj2.o \
$(DEPS_DIR)/7zip/7zCrc.o \
$(DEPS_DIR)/7zip/Lzma2Dec.o \
$(DEPS_DIR)/7zip/7zBuf.o
$(DEPS_DIR)/7zip/LzmaEnc.o \
$(DEPS_DIR)/7zip/Bra.o \
$(DEPS_DIR)/7zip/Bra86.o \
$(DEPS_DIR)/7zip/BraIA64.o \
$(DEPS_DIR)/7zip/Bcj2.o \
$(DEPS_DIR)/7zip/7zFile.o \
$(DEPS_DIR)/7zip/7zStream.o
OBJ += $(LIBRETRO_COMM_DIR)/file/archive_file_7z.o \
$(7ZOBJ)
endif
@@ -1854,8 +2015,7 @@ ifeq ($(HAVE_RBMP), 1)
endif
OBJ += $(LIBRETRO_COMM_DIR)/formats/bmp/rbmp_encode.o \
$(LIBRETRO_COMM_DIR)/formats/json/jsonsax.o \
$(LIBRETRO_COMM_DIR)/formats/json/jsonsax_full.o \
$(LIBRETRO_COMM_DIR)/formats/json/rjson.o \
$(LIBRETRO_COMM_DIR)/formats/image_transfer.o \
$(LIBRETRO_COMM_DIR)/formats/m3u/m3u_file.o
@@ -1911,13 +2071,13 @@ ifeq ($(HAVE_NETWORKING), 1)
tasks/task_netplay_find_content.o
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += \
tasks/task_core_updater.o \
menu/menu_networking.o
OBJ += tasks/task_core_updater.o
endif
ifeq ($(HAVE_SSL), 1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_socket_ssl.o
ifeq ($(HAVE_BUILTINBEARSSL), 1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_socket_ssl_bear.o
else ifeq ($(HAVE_SSL), 1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_socket_ssl_mbed.o
endif
ifneq ($(HAVE_SOCKET_LEGACY),1)
@@ -1935,14 +2095,9 @@ ifeq ($(HAVE_NETWORKING), 1)
# Netplay
DEFINES += -DHAVE_NETWORK_CMD
OBJ += network/netplay/netplay_delta.o \
network/netplay/netplay_handshake.o \
network/netplay/netplay_init.o \
OBJ += network/netplay/netplay_handshake.o \
network/netplay/netplay_io.o \
network/netplay/netplay_keyboard.o \
network/netplay/netplay_sync.o \
network/netplay/netplay_discovery.o \
network/netplay/netplay_buf.o \
network/netplay/netplay_room_parse.o
# RetroAchievements
@@ -1952,9 +2107,8 @@ ifeq ($(HAVE_NETWORKING), 1)
OBJ += cheevos/cheevos.o \
cheevos/badges.o \
cheevos/fixup.o \
cheevos/parser.o \
cheevos/hash.o \
cheevos/cheevos_memory.o \
cheevos/cheevos_parser.o \
$(LIBRETRO_COMM_DIR)/formats/cdfs/cdfs.o \
deps/rcheevos/src/rcheevos/alloc.o \
deps/rcheevos/src/rcheevos/compat.o \
@@ -2019,8 +2173,7 @@ ifeq ($(HAVE_NETWORKING), 1)
ifeq ($(HAVE_DISCORD), 1)
NEED_CXX_LINKER = 1
DEFINES += -DHAVE_DISCORD
INCLUDE_DIRS += -Ideps/discord-rpc/include \
-Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/
INCLUDE_DIRS += -Ideps/discord-rpc/include
ifneq ($(HAVE_THREADS), 1)
DEFINES += -DDISCORD_DISABLE_IO_THREAD
@@ -2120,17 +2273,26 @@ ifeq ($(HAVE_COMPRESSION), 1)
OBJ += tasks/task_decompress.o
endif
ifeq ($(HAVE_COCOA),1)
DEFINES += -DHAVE_MAIN
ifeq ($(HAVE_COCOA), 1)
HAVE_COCOA_COMMON = 1
endif
ifeq ($(HAVE_COCOA_METAL), 1)
HAVE_COCOA_COMMON = 1
endif
ifeq ($(HAVE_COCOA_COMMON),1)
DEFINES += -DHAVE_MAIN -DOSX
OBJ += input/drivers/cocoa_input.o \
input/drivers_keyboard/keyboard_event_apple.o \
ui/drivers/ui_cocoa.o \
ui/drivers/cocoa/ui_cocoa_window.o \
ui/drivers/cocoa/ui_cocoa_browser_window.o \
ui/drivers/cocoa/ui_cocoa_msg_window.o \
ui/drivers/cocoa/ui_cocoa_application.o \
ui/drivers/cocoa/cocoa_common.o \
gfx/drivers_context/cocoa_gl_ctx.o
ui/drivers/cocoa/cocoa_common.o
ifeq ($(HAVE_OPENGL), 1)
DEFINES += -DGL_SILENCE_DEPRECATION
OBJ += gfx/drivers_context/cocoa_gl_ctx.o
endif
ifeq ($(HAVE_VULKAN), 1)
OBJ += gfx/drivers_context/cocoa_vk_ctx.o
endif
endif
ifneq ($(findstring DOS,$(OS)),)
@@ -2153,7 +2315,18 @@ ifeq ($(HAVE_STATIC_VIDEO_FILTERS), 1)
gfx/video_filters/lq2x.o \
gfx/video_filters/phosphor2x.o \
gfx/video_filters/normal2x.o \
gfx/video_filters/scanline2x.o
gfx/video_filters/normal2x_width.o \
gfx/video_filters/normal2x_height.o \
gfx/video_filters/normal4x.o \
gfx/video_filters/scanline2x.o \
gfx/video_filters/grid2x.o \
gfx/video_filters/grid3x.o \
gfx/video_filters/gameboy3x.o \
gfx/video_filters/gameboy4x.o \
gfx/video_filters/dot_matrix_3x.o \
gfx/video_filters/dot_matrix_4x.o \
gfx/video_filters/upscale_1_5x.o \
gfx/video_filters/upscale_256x_320x240.o
endif
ifeq ($(WANT_IOSUHAX), 1)
@@ -2194,6 +2367,10 @@ ifeq ($(HAVE_RPILED), 1)
OBJ += led/drivers/led_rpi.o
endif
ifneq ($(findstring Win32,$(OS)),)
OBJ += led/drivers/led_win32_keyboard.o
endif
ifeq ($(HAVE_MATH_NEON), 1)
DEFINES += -DHAVE_MATH_NEON
INCLUDE_DIRS += -I$(DEPS_DIR)/math-neon/source
@@ -2201,17 +2378,20 @@ ifeq ($(HAVE_MATH_NEON), 1)
OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c)))
endif
ifeq ($(HAVE_VITAGL), 1)
INCLUDE_DIRS += -I$(DEPS_DIR)/vitaShaRK/source
SOURCES := $(DEPS_DIR)/vitaShaRK/source
ifeq ($(HAVE_VITAGLES), 1)
DEFINES += -DHAVE_VITAGLES
INCLUDE_DIRS += -I$(DEPS_DIR)/Pigs-In-A-Blanket/include
SOURCES := $(DEPS_DIR)/Pigs-In-A-Blanket/src
OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c)))
endif
ifeq ($(HAVE_VITAGL), 1)
DEFINES += -DHAVE_VITAGL -DSTB_DXT_IMPLEMENTATION -DSKIP_ERROR_HANDLING -DHAVE_SHARK
INCLUDE_DIRS += -I$(DEPS_DIR)/vitaGL/source -I$(DEPS_DIR)/vitaShaRK/include
SOURCES := $(DEPS_DIR)/vitaGL/source $(DEPS_DIR)/vitaGL/source/utils
OBJ += $(patsubst %.c,%.o,$(foreach dir,$(SOURCES), $(wildcard $(dir)/*.c)))
#####################################
### Android Play Feature Delivery ###
### (Play Store build core ###
### downloader) ###
#####################################
ifeq ($(ANDROID), 1)
OBJ += play_feature_delivery/play_feature_delivery.o
endif
##################################
@@ -2260,4 +2440,6 @@ ifeq ($(HAVE_ODROIDGO2), 1)
$(DEPS_DIR)/libgo2/src/queue.o \
gfx/drivers/oga_gfx.o
endif
##################################
+39 -16
View File
@@ -8,6 +8,7 @@ BUILD_3DSX = 1
BUILD_3DS = 0
BUILD_CIA = 1
LIBCTRU_NO_DEPRECATION = 1
USE_CTRULIB_2 ?= 0
APP_TITLE = RetroArch 3DS
APP_DESCRIPTION = RetroArch 3DS
@@ -35,8 +36,7 @@ OBJ += ctr/exec-3dsx/exec_cia.o \
ctr/exec-3dsx/exec_3dsx.o \
ctr/exec-3dsx/mini-hb-menu/launch.o \
ctr/exec-3dsx/mini-hb-menu/loaders/rosalina.o \
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o \
ctr/exec-3dsx/mini-hb-menu/loaders/ninjhax1.o
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o
ifeq ($(APP_BIG_TEXT_SECTION), 1)
APP_USE_SVCHAX = 1
@@ -51,12 +51,16 @@ DEFINES :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_RGUI -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_7ZIP -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA
DEFINES += -DHAVE_ZLIB -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA
DEFINES += -DHAVE_NETWORKING -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_CORES
#DEFINES += -DHAVE_UPDATE_ASSETS
DEFINES += -DHAVE_PATCH -DHAVE_RWAV
DEFINES += -DHAVE_SCREENSHOTS
DEFINES += -DHAVE_REWIND
#DEFINES += -DHAVE_SOCKET_LEGACY -DHAVE_THREADS
DEFINES += -DHAVE_THREADS
DEFINES += -DHAVE_GFX_WIDGETS
DEFINES += -DHAVE_OVERLAY
#DEFINES += -DHAVE_SOCKET_LEGACY
#-DHAVE_SSL -DHAVE_BUILTINMBEDTLS -DMBEDTLS_SSL_DEBUG_ALL
#ssl is currently incompatible with griffin due to use of the "static" flag on repeating functions that will conflict when included in one file
else
@@ -84,7 +88,7 @@ else
#HAVE_NETWORKING = 1
#HAVE_CHEEVOS = 1
#HAVE_SOCKET_LEGACY = 1
#HAVE_THREADS = 1
HAVE_THREADS = 1
#HAVE_SSL = 1
#HAVE_BUILTINMBEDTLS = 1
@@ -104,13 +108,32 @@ ifeq ($(strip $(CTRULIB)),)
CTRULIB = $(DEVKITPRO)/libctru
endif
ifeq ($(strip $(USE_CTRULIB_2)),1)
CFLAGS += -DUSE_CTRULIB_2
endif
ifeq ($(strip $(DEVKITTOOLS)),)
ifeq ($(strip $(USE_CTRULIB_2)),1)
DEVKITTOOLS = $(DEVKITPRO)/tools
else
DEVKITTOOLS = $(DEVKITARM)
endif
endif
APP_TITLE := $(shell echo "$(APP_TITLE)" | cut -c1-128)
APP_DESCRIPTION := $(shell echo "$(APP_DESCRIPTION)" | cut -c1-256)
APP_AUTHOR := $(shell echo "$(APP_AUTHOR)" | cut -c1-128)
APP_PRODUCT_CODE := $(shell echo $(APP_PRODUCT_CODE) | cut -c1-16)
APP_UNIQUE_ID := $(shell echo $(APP_UNIQUE_ID) | cut -c1-7)
MAKEROM_ARGS_COMMON = -rsf $(APP_RSF) -exefslogo -elf $(TARGET).elf -icon $(TARGET).icn -banner $(TARGET).bnr -DAPP_TITLE="$(APP_TITLE)" -DAPP_PRODUCT_CODE="$(APP_PRODUCT_CODE)" -DAPP_UNIQUE_ID=$(APP_UNIQUE_ID) -DAPP_SYSTEM_MODE=$(APP_SYSTEM_MODE) -DAPP_SYSTEM_MODE_EXT=$(APP_SYSTEM_MODE_EXT)
APP_VERSION_MAJOR := $(shell shuf -i 0-63 -n 1)
APP_VERSION_MINOR := $(shell shuf -i 0-63 -n 1)
APP_VERSION_MICRO := $(shell shuf -i 0-15 -n 1)
MAKEROM_ARGS_COMMON = -rsf $(APP_RSF) -exefslogo -elf $(TARGET).elf -icon $(TARGET).icn -banner $(TARGET).bnr \
-DAPP_TITLE="$(APP_TITLE)" -DAPP_PRODUCT_CODE="$(APP_PRODUCT_CODE)" -DAPP_UNIQUE_ID=$(APP_UNIQUE_ID) \
-DAPP_SYSTEM_MODE=$(APP_SYSTEM_MODE) -DAPP_SYSTEM_MODE_EXT=$(APP_SYSTEM_MODE_EXT) \
-major "$(APP_VERSION_MAJOR)" -minor "$(APP_VERSION_MINOR)" -micro "$(APP_VERSION_MICRO)"
INCDIRS := -I$(CTRULIB)/include
LIBDIRS := -L. -L$(CTRULIB)/lib
@@ -225,13 +248,13 @@ else
endif
%.o: %.vsh %.gsh
$(DEVKITARM)/bin/picasso $^ -o $*.shbin
$(DEVKITARM)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
$(DEVKITTOOLS)/bin/picasso $^ -o $*.shbin
$(DEVKITTOOLS)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
rm $*.shbin
%.o: %.vsh
$(DEVKITARM)/bin/picasso $^ -o $*.shbin
$(DEVKITARM)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
$(DEVKITTOOLS)/bin/picasso $^ -o $*.shbin
$(DEVKITTOOLS)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
rm $*.shbin
%.o: %.cpp
@@ -251,8 +274,8 @@ endif
%.vsh:
$(TARGET).smdh: $(APP_ICON)
$(DEVKITARM)/bin/smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
$(TARGET).smdh: $(TARGET).elf $(APP_ICON)
$(DEVKITTOOLS)/bin/smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
$(TARGET).3dsx: $(TARGET).elf
ifeq ($(APP_BIG_TEXT_SECTION), 1)
@@ -260,16 +283,16 @@ ifeq ($(APP_BIG_TEXT_SECTION), 1)
else
rm -f $(TARGET).xml
endif
$(DEVKITARM)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(DEVKITTOOLS)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(TARGET).elf: ctr/3dsx_custom_crt0.o
$(LD) $(LDFLAGS) $(OBJ) $(LIBDIRS) $(LIBS) -o $@
$(NM) -CSn $@ > $(notdir $*.lst)
$(TARGET).bnr: $(APP_BANNER) $(APP_AUDIO)
$(TARGET).bnr: $(TARGET).elf $(APP_BANNER) $(APP_AUDIO)
$(BANNERTOOL) makebanner -i "$(APP_BANNER)" -a "$(APP_AUDIO)" -o $@
$(TARGET).icn: $(APP_ICON)
$(TARGET).icn: $(TARGET).elf $(APP_ICON)
$(BANNERTOOL) makesmdh -s "$(APP_TITLE)" -l "$(APP_TITLE)" -p "$(APP_AUTHOR)" -i $(APP_ICON) -o $@
$(TARGET).3ds: $(TARGET).elf $(TARGET).bnr $(TARGET).icn $(APP_RSF)
+21 -10
View File
@@ -5,6 +5,7 @@ DEBUG = 0
BUILD_3DSX = 1
BUILD_3DS = 0
BUILD_CIA = 1
USE_CTRULIB_2 ?= 0
APP_TITLE = RetroArch 3DS
APP_DESCRIPTION = RetroArch 3DS
@@ -37,22 +38,32 @@ OBJ := ctr/ctr_system.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o
OBJ += ctr/exec-3dsx/exec_cia.o \
ctr/exec-3dsx/exec_3dsx.o \
ctr/exec-3dsx/mini-hb-menu/launch.o \
ctr/exec-3dsx/mini-hb-menu/loaders/rosalina.o \
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o \
ctr/exec-3dsx/mini-hb-menu/loaders/ninjhax1.o
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o
ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitpro")
endif
ifeq ($(strip $(USE_CTRULIB_2)),1)
CFLAGS += -DUSE_CTRULIB_2
endif
ifeq ($(strip $(DEVKITTOOLS)),)
ifeq ($(strip $(USE_CTRULIB_2)),1)
DEVKITTOOLS = $(DEVKITPRO)/tools
else
DEVKITTOOLS = $(DEVKITARM)
endif
endif
ifeq ($(strip $(CTRULIB)),)
CTRULIB = $(DEVKITPRO)/libctru
endif
@@ -154,13 +165,13 @@ else
endif
%.o: %.vsh %.gsh
$(DEVKITARM)/bin/picasso $^ -o $*.shbin
$(DEVKITARM)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
$(DEVKITTOOLS)/bin/picasso $^ -o $*.shbin
$(DEVKITTOOLS)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
rm $*.shbin
%.o: %.vsh
$(DEVKITARM)/bin/picasso $^ -o $*.shbin
$(DEVKITARM)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
$(DEVKITTOOLS)/bin/picasso $^ -o $*.shbin
$(DEVKITTOOLS)/bin/bin2s $*.shbin | $(PREFIX)as -o $@
rm $*.shbin
%.o: %.cpp
@@ -181,7 +192,7 @@ endif
%.vsh:
$(TARGET).smdh: $(APP_ICON)
$(DEVKITARM)/bin/smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
$(DEVKITTOOLS)/bin/smdhtool --create "$(APP_TITLE)" "$(APP_DESCRIPTION)" "$(APP_AUTHOR)" $(APP_ICON) $@
$(TARGET).3dsx: $(TARGET).elf
ifeq ($(APP_BIG_TEXT_SECTION), 1)
@@ -189,7 +200,7 @@ ifeq ($(APP_BIG_TEXT_SECTION), 1)
else
rm -f $(TARGET).xml
endif
$(DEVKITARM)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(DEVKITTOOLS)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(TARGET).elf: ctr/3dsx_custom_crt0.o
$(LD) $(LDFLAGS) $(OBJ) $(LIBDIRS) $(LIBS) -o $@
+53 -20
View File
@@ -1,9 +1,39 @@
CC = /opt/gcw0-toolchain/usr/bin/mipsel-gcw0-linux-uclibc-gcc
CXX = /opt/gcw0-toolchain/usr/bin/mipsel-gcw0-linux-uclibc-g++
#########################
## Toolchain variables ##
#########################
# Default toolchain directory
TOOLCHAIN_DIR=/opt/gcw0-toolchain
# All toolchain-related variables may be
# overridden via the command line
ifdef GCW0_CC
CC = $(GCW0_CC)
else
CC = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-gcc
endif
ifdef GCW0_CXX
CXX = $(GCW0_CXX)
else
CXX = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-g++
endif
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config
GCW0_MK_SQUASH_FS ?= $(TOOLCHAIN_DIR)/usr/bin/mksquashfs
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
#########################
#########################
PACKAGE_NAME = retroarch
DEBUG ?= 0
DINGUX = 1
HAVE_SCREENSHOTS = 1
HAVE_REWIND = 1
HAVE_7ZIP = 1
@@ -19,7 +49,7 @@ HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_CHD = 1
HAVE_CHEEVOS = 1
HAVE_COMMAND = 1
HAVE_COMMAND = 0
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
@@ -57,7 +87,7 @@ HAVE_SHADERPIPELINE = 1
HAVE_STB_FONT = 1
HAVE_STB_IMAGE = 1
HAVE_STB_VORBIS = 1
HAVE_STDIN_CMD = 1
HAVE_STDIN_CMD = 0
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_TRANSLATE = 1
@@ -68,6 +98,7 @@ HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_LIBSHAKE = 1
OS = Linux
TARGET = retroarch
@@ -75,7 +106,9 @@ OPK_NAME = retroarch.opk
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -ffast-math -fomit-frame-pointer -fdata-sections
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -ffast-math -fomit-frame-pointer
DEF_FLAGS += -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -MMD
DEF_FLAGS += -Wall -Wno-unused-variable
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE
@@ -83,9 +116,9 @@ LIBS := -ldl -lz -lrt -lcrypto -lssl -ludev -pthread
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
LDFLAGS := -flto
INCLUDE_DIRS = -I/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
LIBRARY_DIRS = -L/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
LDFLAGS := -flto -Wl,--gc-sections
INCLUDE_DIRS = -I$(GCW0_INC_DIR)
LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1 -DHAVE_OPENDINGUX_FBDEV=1
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
@@ -94,10 +127,10 @@ DEFINES += -DHAVE_ONLINE_UPDATER=1
DEFINES += -DHAVE_UPDATE_ASSETS=1
DEFINES += -DHAVE_UDEV=1
SDL_DINGUX_CFLAGS := $(shell /opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config --cflags)
SDL_DINGUX_LIBS := $(shell /opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config --libs)
FREETYPE_CFLAGS := $(shell /opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config --cflags)
FREETYPE_LIBS := $(shell /opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config --libs)
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
FREETYPE_CFLAGS := $(shell $(GCW0_FREETYPE_CONFIG) --cflags)
FREETYPE_LIBS := $(shell $(GCW0_FREETYPE_CONFIG) --libs)
AL_LIBS := -lopenal
OPENGLES_CFLAGS := -DMESA_EGL_NO_X11_HEADERS
OPENGLES_LIBS := -lGLESv2 -lEGL
@@ -127,8 +160,8 @@ RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
define DESKTOP_ENTRY
[Desktop Entry]
Name=retroarch
Comment=Retroarch
Name=RetroArch
Comment=Frontend for emulators, game engines
Exec=retroarch
Terminal=false
Type=Application
@@ -147,27 +180,27 @@ SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
@@ -179,7 +212,7 @@ opk: $(TARGET)
echo "$$DESKTOP_ENTRY" > default.gcw0.desktop
rm -f $(OPK_NAME)
cp media/ico_src/icon32.png retroarch.png
mksquashfs retroarch default.gcw0.desktop retroarch.png $(OPK_NAME) -all-root -no-xattrs -noappend -no-exports
$(GCW0_MK_SQUASH_FS) retroarch default.gcw0.desktop retroarch.png $(OPK_NAME) -all-root -no-xattrs -noappend -no-exports
rm -f default.gcw0.desktop retroarch.png
.PHONY: all clean opk
+18 -1
View File
@@ -1,4 +1,10 @@
ifeq ($(TARGET),)
ifeq ($(LIBRETRO),)
TARGET := retroarch.js
else
TARGET := $(LIBRETRO)_libretro.js
endif
endif
EOPT = USE_ZLIB=1 # Emscripten specific options
EOPTS = $(addprefix -s $(EMPTY), $(EOPT)) # Add '-s ' to each option
@@ -35,8 +41,19 @@ HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_STB_FONT = 1
HAVE_CONFIGFILE = 1
HAVE_CHEATS = 1
HAVE_IBXM = 1
MEMORY = 134217728
ASYNC ?= 0
ifeq ($(LIBRETRO), mupen64plus)
ASYNC = 1
endif
LTO ?= 0
ifeq ($(LIBRETRO), tyrquake)
LTO = 0
endif
MEMORY ?= 134217728
PRECISE_F32 = 1
+55 -9
View File
@@ -116,7 +116,8 @@ else ifeq ($(platform), ps3-cobra)
# NGC/Wii - libogc
else ifeq ($(libogc_platform), 1)
EXTERNAL_LIBOGC=0
EXTERNAL_LIBOGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
LD = $(DEVKITPPC)/bin/powerpc-eabi-ld$(EXE_EXT)
@@ -148,6 +149,11 @@ else ifeq ($(libogc_platform), 1)
endif
ifeq ($(GX_PTHREAD_LEGACY), 1)
CFLAGS += -DGX_PTHREAD_LEGACY
CXXFLAGS += -DGX_PTHREAD_LEGACY
endif
ifeq ($(platform), ngc)
MACHDEP := -DHW_DOL -mogc
else ifeq ($(platform), wii)
@@ -414,6 +420,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_GFX_WIDGETS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -422,6 +429,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
LD = link.exe
PLATCFLAGS += -D_WIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -D__STDC_CONSTANT_MACROS -D_MBCS -D_VC80_UPGRADE=0x0710
PLATCFLAGS += -DHAVE_GFX_WIDGETS
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib
PATH := $(shell IFS=$$'\n'; cygpath "$(VS71COMNTOOLS)../../Vc7/bin"):$(PATH)
@@ -440,6 +448,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
endif
else ifeq ($(platform), windows_msvc2005_x86)
HAVE_GDI := 1
HAVE_REWIND := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
@@ -453,6 +462,7 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_OZONE := 1
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
@@ -462,10 +472,17 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_DYLIB := 1
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_OPENGL := 1
HAVE_OPENGL1 := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_GFX_WIDGETS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -473,16 +490,32 @@ else ifeq ($(platform), windows_msvc2005_x86)
CXX = cl.exe
LD = link.exe
PLATCFLAGS += -D_WIN32 -D_WIN32_WINNT=0x0410 -D__STDC_CONSTANT_MACROS -D_MBCS -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib msimg32.lib
PLATCFLAGS += -D_WIN32 -D_WIN32_WINNT=0x0410 -D__STDC_CONSTANT_MACROS -D_MBCS -D__SSE__
PLATCFLAGS += -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_OZONE -DHAVE_GFX_WIDGETS -DHAVE_CC_RESAMPLER
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_CDROM
PLATCFLAGS += -bigobj
LDFLAGS += -MANIFEST shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib msimg32.lib
PATH := $(shell IFS=$$'\n'; cygpath "$(VS80COMNTOOLS)../../VC/bin"):$(PATH)
PATH := $(PATH):$(shell IFS=$$'\n'; cygpath "$(VS80COMNTOOLS)../IDE")
INCLUDE := $(shell IFS=$$'\n'; cygpath -w "$(VS80COMNTOOLS)../../VC/include")
LIB := $(shell IFS=$$'\n'; cygpath -w "$(VS80COMNTOOLS)../../VC/lib")
WindowsSdkDir := $(shell reg query "HKLM\SOFTWARE\Microsoft\MicrosoftSDK\InstalledSDKs\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3" -v "Install Dir" | grep -o '[A-Z]:\\.*')
WindowsSDKIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include")
WindowsSDKAtlIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\atl")
WindowsSDKCrtIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\crt")
WindowsSDKGlIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\gl")
WindowsSDKMfcIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\mfc")
WindowsSDKLibDir := $(shell cygpath -w "$(WindowsSdkDir)\Lib")
INCLUDE := $(INCLUDE);$(WindowsSDKIncludeDir);$(WindowsSDKAtlIncludeDir);$(WindowsSDKCrtIncludeDir);$(WindowsSDKGlIncludeDir);$(WindowsSDKMfcIncludeDir);libretro/msvc/msvc-2005
LIB := $(LIB);$(WindowsSDKLibDir)
ifeq ($(HAVE_DIRECTX), 1)
PLATCFLAGS += -DHAVE_DINPUT -DHAVE_DSOUND
PLATCFLAGS += -DHAVE_DINPUT -DHAVE_DSOUND -DHAVE_D3D -DHAVE_D3D8
DXSDK_DIR := $(DXSDK_DIR:\=)
export INCLUDE := $(INCLUDE);$(INETSDK)\Include;$(DXSDK_DIR)\Include;libretro-common\include;libretro-common\include\compat\msvc;gfx\include;deps;deps\stb
export LIB := $(LIB);$(INETSDK)\Lib;$(DXSDK_DIR)\Lib\x86
@@ -509,6 +542,7 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_OZONE := 1
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
@@ -520,9 +554,15 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_GRIFFIN_CPP := 1
HAVE_RUNAHEAD := 1
HAVE_DIRECTX ?= 1
HAVE_OPENGL := 1
HAVE_OPENGL1 := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_GFX_WIDGETS := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -531,8 +571,14 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
LD = link.exe
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib msimg32.lib
PLATCFLAGS += -D__i686__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS
PLATCFLAGS += -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA
PLATCFLAGS += -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_OZONE
PLATCFLAGS += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DWIN32 -DHAVE_CDROM
PLATCFLAGS += -DHAVE_GFX_WIDGETS
PLATCFLAGS += -bigobj
LDFLAGS += -MANIFEST shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib msimg32.lib
PlatformSuffix = $(subst windows_msvc2010_,,$(platform))
@@ -557,12 +603,12 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
PATH := $(PATH):$(shell IFS=$$'\n'; cygpath "$(VS100COMNTOOLS)../IDE")
INCLUDE := $(shell IFS=$$'\n'; cygpath -w "$(VS100COMNTOOLS)../../VC/include")
WindowsSdkDir ?= $(shell reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A" -v "InstallationFolder" | grep -io '[A-Z]:\\.*')
WindowsSdkDir ?= $(shell reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1A" -v "InstallationFolder" | grep -io '[A-Z]:\\.*')
WindowsSdkDir ?= $(shell reg query "HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A" -v "InstallationFolder" | grep -io '[A-Z]:\\.*')
WindowsSdkDir := $(WindowsSdkDir:\=)
ifeq ($(HAVE_DIRECTX), 1)
PLATCFLAGS += -DHAVE_DINPUT -DHAVE_DSOUND -DHAVE_D3D -DHAVE_D3D9 -DHAVE_XAUDIO -DHAVE_XINPUT
PLATCFLAGS += -DHAVE_DINPUT -DHAVE_DSOUND -DHAVE_D3D -DHAVE_D3D8 -DHAVE_XAUDIO -DHAVE_XINPUT
DXSDK_DIR := $(DXSDK_DIR:\=)
export INCLUDE := $(INCLUDE);$(WindowsSdkDir)\Include;$(DXSDK_DIR)\Include;libretro-common\include;libretro-common\include\compat\msvc;gfx\include;deps;deps\stb
export LIB := $(LIB);$(WindowsSdkDir)\$(PlatLib);$(DXSDK_DIR)\Lib\$(WinArch)
@@ -1056,7 +1102,7 @@ ifeq ($(HAVE_RUNAHEAD), 1)
endif
ifeq ($(HAVE_7ZIP), 1)
CFLAGS += -DHAVE_7ZIP
CFLAGS += -DHAVE_7ZIP -D_7ZIP_ST
endif
ifeq ($(HAVE_SCREENSHOTS), 1)
+2 -1
View File
@@ -50,6 +50,7 @@ HAVE_STB_FONT = 1
HAVE_CHEEVOS = 1
HAVE_CHD = 0 # disabled due to static libretro-common and libchdr conflicts between different cores
HAVE_STB_VORBIS = 1
HAVE_IBXM = 1
# RetroArch libnx useful flags
HAVE_THREADS = 1
@@ -122,7 +123,7 @@ APP_ICON := pkg/libnx/retroarch.jpg
#---------------------------------------------------------------------------------
ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -mcpu=cortex-a57+crc+fp+simd
CFLAGS := -g -Wall -O3 -ffast-math -ffunction-sections \
CFLAGS := -g -Wall -O3 -fcommon -ffast-math -ffunction-sections \
$(ARCH) $(DEFINES) $(INCLUDE_DIRS) -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h #$(shell $(PORTLIBS)/bin/freetype-config --cflags)
CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_STB_FONT #-DHAVE_FREETYPE
+363
View File
@@ -0,0 +1,363 @@
ROOT_DIR := .
DEPS_DIR := $(ROOT_DIR)/deps
DEBUG ?= 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_CC_RESAMPLER = 1
WHOLE_ARCHIVE_LINK = 0
BIG_STACK = 1
PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255
PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
SPACE :=
SPACE := $(SPACE) $(SPACE)
BACKSLASH :=
BACKSLASH := \$(BACKSLASH)
filter_out1 = $(filter-out $(firstword $1),$1)
filter_out2 = $(call filter_out1,$(call filter_out1,$1))
# system platform
system_platform = unix
ifeq ($(shell uname -s),)
EXE_EXT = .exe
system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -s)),)
system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -s)),)
system_platform = win
endif
TARGET_NAME := retroarch
INCLUDE :=
LDFLAGS :=
LIBDIRS :=
ifeq ($(LIBRETRO), nxengine)
WHOLE_ARCHIVE_LINK = 1
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
LIBS := $(WHOLE_START) -lretro_ngc $(WHOLE_END)
libogc_platform := 1
EXTERNAL_LIBOGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
LD = $(DEVKITPPC)/bin/powerpc-eabi-ld$(EXE_EXT)
ELF2DOL = $(DEVKITPPC)/bin/elf2dol$(EXE_EXT)
EXT_TARGET := $(TARGET_NAME)_ngc.dol
EXT_INTER_TARGET := $(TARGET_NAME)_ngc.elf
# Check whether ELF2DOL executable exists
# (path has changed in more recent toolchains)
ifeq ("$(wildcard $(ELF2DOL))","")
ELF2DOL = $(DEVKITPRO)/tools/bin/elf2dol$(EXE_EXT)
endif
INCLUDE += -I. -I$(DEVKITPRO)/libogc/include -Iwii/libogc/include
ifeq ($(EXTERNAL_LIBOGC), 1)
CFLAGS += -DEXTERNAL_LIBOGC
CXXFLAGS += -DEXTERNAL_LIBOGC
LIBDIRS += -L$(DEVKITPRO)/libogc/lib/cube
else
CFLAGS += -DINTERNAL_LIBOGC
CXXFLAGS += -DINTERNAL_LIBOGC
LIBDIRS += -Lwii/libogc/libs/cube
endif
ifeq ($(GX_PTHREAD_LEGACY), 1)
CFLAGS += -DGX_PTHREAD_LEGACY
CXXFLAGS += -DGX_PTHREAD_LEGACY
endif
MACHDEP := -DHW_DOL -mogc
LIBDIRS += -L.
MACHDEP += -DGEKKO -mcpu=750 -meabi -mhard-float
LDFLAGS += $(MACHDEP) -Wl,-Map,$(notdir $(EXT_INTER_TARGET)).map
ifeq ($(BIG_STACK), 1)
LDFLAGS += -T bootstrap/gx/ogc.ld
endif
ifeq ($(EXTERNAL_LIBOGC), 1)
LIBS += -lfat
endif
ifeq ($(HAVE_LOGGER), 1)
LIBS += -lbba
endif
LIBS += -logc
CFLAGS += -DGEKKO -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
HAVE_RUNAHEAD := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_THREADS := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_IBXM := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
RARCH_CONSOLE = 1
HAVE_CHEATS := 1
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(PLATCFLAGS) $(INCLUDE)
INCLUDE += -I./libretro-common/include \
-Ideps \
-Ideps/stb
OBJ = griffin/griffin.o $(PLATOBJS)
ifeq ($(HAVE_GRIFFIN_CPP), 1)
OBJ += griffin/griffin_cpp.o
endif
ifeq ($(WANT_GLSLANG), 1)
OBJ += griffin/griffin_glslang.o
endif
ifeq ($(HAVE_LOGGER), 1)
CFLAGS += -DHAVE_LOGGER
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
endif
ifeq ($(HAVE_KERNEL_PRX), 1)
CFLAGS += -DHAVE_KERNEL_PRX
endif
ifeq ($(HAVE_WIIUSB_HID), 1)
CFLAGS += -DHAVE_WIIUSB_HID -DHAVE_HID
endif
ifeq ($(HAVE_LIBRETRODB), 1)
CFLAGS += -DHAVE_LIBRETRODB
endif
ifeq ($(BIG_STACK),1)
CFLAGS += -DBIG_STACK
endif
ifeq ($(HAVE_RJPEG), 1)
CFLAGS += -DHAVE_RJPEG
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
ifeq ($(HAVE_RARCH_EXEC), 1)
CFLAGS += -DHAVE_RARCH_EXEC
endif
ifeq ($(HAVE_ZLIB), 1)
CFLAGS += -DHAVE_ZLIB
CFLAGS += -I./libretro-common/include/compat/zlib
endif
ifeq ($(HAVE_RPNG), 1)
CFLAGS += -DHAVE_RPNG
endif
ifeq ($(HAVE_RBMP), 1)
CFLAGS += -DHAVE_RBMP
endif
ifeq ($(HAVE_RTGA), 1)
CFLAGS += -DHAVE_RTGA
endif
ifeq ($(HAVE_IMAGEVIEWER), 1)
CFLAGS += -DHAVE_IMAGEVIEWER
endif
ifeq ($(HAVE_BSV_MOVIE), 1)
CFLAGS += -DHAVE_BSV_MOVIE
endif
ifeq ($(HAVE_RUNAHEAD), 1)
CFLAGS += -DHAVE_RUNAHEAD
endif
ifeq ($(HAVE_7ZIP), 1)
CFLAGS += -DHAVE_7ZIP -D_7ZIP_ST
endif
ifeq ($(HAVE_SCREENSHOTS), 1)
CFLAGS += -DHAVE_SCREENSHOTS
endif
ifeq ($(HAVE_REWIND), 1)
CFLAGS += -DHAVE_REWIND
endif
ifeq ($(HAVE_AUDIOMIXER), 1)
CFLAGS += -DHAVE_AUDIOMIXER
endif
ifeq ($(HAVE_RWAV), 1)
CFLAGS += -DHAVE_RWAV
endif
ifeq ($(HAVE_OVERLAY), 1)
CFLAGS += -DHAVE_OVERLAY
endif
ifeq ($(HAVE_VIDEO_LAYOUT), 1)
CFLAGS += -DHAVE_VIDEO_LAYOUT
endif
ifeq ($(HAVE_NETWORKING), 1)
CFLAGS += -DHAVE_NETWORKING
endif
ifeq ($(HAVE_NETPLAYDISCOVERY), 1)
CFLAGS += -DHAVE_NETPLAYDISCOVERY
endif
ifeq ($(RARCH_CONSOLE), 1)
CFLAGS += -DRARCH_CONSOLE
endif
ifeq ($(RARCH_MOBILE), 1)
CFLAGS += -DRARCH_MOBILE
endif
CFLAGS += -std=gnu99 -DHAVE_RGUI -DHAVE_MENU -DHAVE_GRIFFIN=1 -Wno-char-subscripts -DRARCH_INTERNAL
ifeq ($(HAVE_MATERIALUI), 1)
CFLAGS += -DHAVE_MATERIALUI
endif
ifeq ($(HAVE_XMB), 1)
CFLAGS += -DHAVE_XMB
endif
ifeq ($(HAVE_STB_FONT), 1)
CFLAGS += -DHAVE_STB_FONT
endif
ifeq ($(HAVE_LANGEXTRA), 1)
CFLAGS += -DHAVE_LANGEXTRA
endif
ifeq ($(HAVE_DSP_FILTER), 1)
CFLAGS += -DHAVE_DSP_FILTER
endif
ifeq ($(HAVE_VIDEO_FILTER), 1)
CFLAGS += -DHAVE_VIDEO_FILTER
endif
ifeq ($(HAVE_FILTERS_BUILTIN), 1)
CFLAGS += -DHAVE_FILTERS_BUILTIN
endif
ifeq ($(HAVE_THREADS), 1)
CFLAGS += -DHAVE_THREADS
endif
ifeq ($(HAVE_CONFIGFILE), 1)
CFLAGS += -DHAVE_CONFIGFILE
endif
ifeq ($(HAVE_PATCH), 1)
CFLAGS += -DHAVE_PATCH
endif
ifeq ($(HAVE_CHEATS), 1)
CFLAGS += -DHAVE_CHEATS
endif
ifeq ($(HAVE_RSOUND), 1)
CFLAGS += -DHAVE_RSOUND
endif
ifeq ($(HAVE_GETOPT_LONG), 1)
CFLAGS += -DHAVE_GETOPT_LONG=1
endif
ifeq ($(HAVE_DYLIB), 1)
CFLAGS += -DHAVE_DYLIB
endif
ifeq ($(HAVE_NETWORK_CMD), 1)
CFLAGS += -DHAVE_NETWORK_CMD
endif
ifeq ($(HAVE_COMMAND), 1)
CFLAGS += -DHAVE_COMMAND
endif
ifeq ($(HAVE_STDIN_CMD), 1)
CFLAGS += -DHAVE_STDIN_CMD
endif
ifeq ($(HAVE_DYNAMIC), 1)
CFLAGS += -DHAVE_DYNAMIC
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g -DDEBUG
else
CFLAGS += -O3
endif
OBJOUT = -o
LINKOUT = -o
LINK = $(CXX)
all: $(EXT_TARGET)
%.dol: %.elf
$(ELF2DOL) $< $@
$(EXT_INTER_TARGET): $(OBJ)
$(LINK) $(LINKOUT)$@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) $(LIBS)
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.binobj: %.bin
$(LD) -r -b binary $(OBJOUT)$@ $<
clean:
rm -f $(EXT_TARGET)
rm -f $(EXT_INTER_TARGET)
rm -f $(OBJ)
.PHONY: clean
print-%:
@echo '$*=$($*)'
+10 -14
View File
@@ -1,10 +1,8 @@
BUILD_FOR_PCSX2 = 0
DEBUG = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_THREADS = 0
MUTE_WARNINGS = 1
PS2_IP = 192.168.1.150
PS2_IP = 192.168.1.10
TARGET = retroarchps2-debug.elf
TARGET_RELEASE = retroarchps2.elf
@@ -21,7 +19,7 @@ else
endif
ifeq ($(MUTE_WARNINGS), 1)
DISABLE_WARNINGS := -Wno-sign-compare -Wno-unused -Wno-parentheses
DISABLE_WARNINGS := -Wno-unused -Wno-format -Wno-format-truncation
endif
INCDIR = -I$(PS2DEV)/gsKit/include -I$(PS2SDK)/ports/include
@@ -31,13 +29,13 @@ CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-const
ASFLAGS = $(CFLAGS)
RARCH_DEFINES += -DPS2 -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI
RARCH_DEFINES += -DHAVE_ZLIB -DHAVE_NO_BUILTINZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
RARCH_DEFINES += -DHAVE_ZLIB -DHAVE_NO_BUILTINZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_CC_RESAMPLER -DHAVE_AUDIOMIXER
RARCH_DEFINES += -DHAVE_DSP_FILTER
RARCH_DEFINES += -DHAVE_VIDEO_FILTER
LDFLAGS += -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ports/lib -L.
# Lib cdvd is needed to get proper time
LIBS += -lretro_ps2 -lpatches -lpoweroff -lgskit -ldmakit -laudsrv -lpadx -lmtap -lz -lcdvd -lelf-loader
LIBS += -lretro_ps2 -lpatches -lgskit -ldmakit -laudsrv -lmtap -lpadx -lz -lcdvd -lelf-loader
ifeq ($(BUILD_FOR_PCSX2), 1)
RARCH_DEFINES += -DBUILD_FOR_PCSX2
@@ -47,20 +45,18 @@ ifeq ($(HAVE_THREADS), 1)
RARCH_DEFINES += -DHAVE_THREADS
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
CFLAGS += $(RARCH_DEFINES)
# All the IRX objects
EE_OBJS += $(IRX_DIR)/freemtap_irx.o $(IRX_DIR)/freepad_irx.o $(IRX_DIR)/freesio2_irx.o $(IRX_DIR)/iomanX_irx.o
EE_OBJS += $(IRX_DIR)/fileXio_irx.o $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o $(IRX_DIR)/usbd_irx.o
EE_OBJS += $(IRX_DIR)/usbhdfsd_irx.o $(IRX_DIR)/freesd_irx.o $(IRX_DIR)/audsrv_irx.o $(IRX_DIR)/poweroff_irx.o
EE_OBJS += $(IRX_DIR)/sio2man_irx.o $ $(IRX_DIR)/iomanX_irx.o $(IRX_DIR)/fileXio_irx.o
EE_OBJS += $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o
EE_OBJS += $(IRX_DIR)/usbd_irx.o $(IRX_DIR)/usbhdfsd_irx.o
EE_OBJS += $(IRX_DIR)/libsd_irx.o $(IRX_DIR)/audsrv_irx.o
EE_OBJS += $(IRX_DIR)/cdfs_irx.o
EE_OBJS += $(IRX_DIR)/mtapman_irx.o $(IRX_DIR)/padman_irx.o
# Missing objecst on the PS2SDK
EE_OBJS += ps2/compat_files/ps2_devices.o
EE_OBJS += ps2/compat_files/ps2_devices.o
EE_OBJS += griffin/griffin.o
+5 -11
View File
@@ -1,6 +1,5 @@
BUILD_FOR_PCSX2 = 0
DEBUG = 0
HAVE_FILE_LOGGER = 0
MUTE_WARNINGS = 1
PS2_IP = 192.168.1.150
@@ -31,16 +30,12 @@ RARCH_DEFINES += -DPS2 -DIS_SALAMANDER -DRARCH_CONSOLE
LIBDIR =
LDFLAGS =
LIBS = -lm -lelf-loader -lpatches -lpoweroff
LIBS = -lelf-loader -lpatches
ifeq ($(BUILD_FOR_PCSX2), 1)
RARCH_DEFINES += -DBUILD_FOR_PCSX2
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
CFLAGS += $(RARCH_DEFINES)
EE_OBJS = frontend/frontend_salamander.o \
@@ -59,16 +54,15 @@ EE_OBJS = frontend/frontend_salamander.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
ps2/compat_files/ps2_devices.o
# Needed IRX objects
EE_OBJS += $(IRX_DIR)/freesio2_irx.o $(IRX_DIR)/iomanX_irx.o $(IRX_DIR)/cdfs_irx.o
EE_OBJS += $(IRX_DIR)/fileXio_irx.o $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o $(IRX_DIR)/usbd_irx.o
EE_OBJS += $(IRX_DIR)/usbhdfsd_irx.o $(IRX_DIR)/freesd_irx.o $(IRX_DIR)/poweroff_irx.o
EE_OBJS += $(IRX_DIR)/sio2man_irx.o $ $(IRX_DIR)/iomanX_irx.o $(IRX_DIR)/fileXio_irx.o
EE_OBJS += $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o $(IRX_DIR)/usbd_irx.o $(IRX_DIR)/usbhdfsd_irx.o
EE_OBJS += $(IRX_DIR)/cdfs_irx.o
EE_CFLAGS = $(CFLAGS)
EE_CXXFLAGS = $(CFLAGS)
-207
View File
@@ -1,207 +0,0 @@
include version.all
#which compiler to build with - GCC or SNC
#set to GCC for debug builds for use with debugger
CELL_BUILD_TOOLS = SNC
CELL_GPU_TYPE = RSX
CELL_PSGL_VERSION = opt
ASSETS_DIR := media/assets
# options
DOWNLOAD_SHADERS = 1
STRIPPING_ENABLE = 0
DEBUG = 0
HAVE_GCMGL = 0
HAVE_LOGGER = 0
HAVE_FREETYPE = 0
WHOLE_ARCHIVE_LINK = 0
CONTENT_ID_FULL = UP0001-SSNE10000_00-0000000000000001
CONTENT_ID = SSNE10000
PC_DEVELOPMENT_IP_ADDRESS = "192.168.1.7"
PC_DEVELOPMENT_UDP_PORT = 3490
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
include $(CELL_MK_DIR)/sdk.makedef.mk
PPU_TARGET = retroarch_ps3.elf
SALAMANDER_TARGET = retroarch-salamander_ps3.elf
EBOOT_PATH = pkg/ps3/USRDIR/EBOOT.BIN
CORE_PATH = pkg/ps3/USRDIR/cores/CORE.SELF
LDDIRS = -L. -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/ultra-opt
INCDIRS = -I. \
-Idefines \
-Ideps \
-Ideps/stb \
-Ideps/rcheevos/include \
-Ilibretro-common/include \
-Ilibretro-common/include/compat/zlib
# system platform
system_platform = unix
ifeq ($(shell uname -a),)
EXE_EXT = .exe
system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -a)),)
system_platform = win
endif
PKG_SCRIPT = tools/ps3/ps3py/pkg.py
ifeq ($(shell uname), Linux)
PKG_FINALIZE = package_finalize
MAKE_SELF_WC = make_self_wc
MAKE_SELF = make_self_npdrm
PYTHON2 = python2
GIT = git
else
PKG_FINALIZE = package_finalize.exe
MAKE_SELF_WC = make_self_wc.exe
MAKE_SELF = make_self_npdrm.exe
PYTHON2 = python2.exe
GIT = git.exe
endif
PPU_SRCS = griffin/griffin.c
DEFINES += -DHAVE_VIDEO_LAYOUT
DEFINES += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_GFX_WIDGETS -DHAVE_RGUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
DEFINES += -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES
ifeq ($(DEX_BUILD), 1)
DEFINES += -DDEX_BUILD
endif
ifeq ($(CEX_BUILD), 1)
DEFINES += -DCEX_BUILD
endif
ifeq ($(ODE_BUILD), 1)
DEFINES += -DODE_BUILD
endif
ifeq ($(HAVE_GCMGL), 1)
DEFINES += -DHAVE_GCMGL
GL_LIBS := -L. -lrgl_ps3
else
GL_LIBS := -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/ultra-opt -lPSGL -lPSGLcgc
endif
ifeq ($(HAVE_FREETYPE), 1)
DEFINES += -DHAVE_FREETYPE
FONT_LIBS := -lfontFT_stub -lfreetype_stub
endif
ifeq ($(CELL_BUILD_TOOLS), SNC)
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
PPU_CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
else ifneq ($(system_platform), win)
PPU_CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
PPU_CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
PPU_CXXLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
PPU_CCLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl, --whole-archive
WHOLE_END := -Wl, --no-whole-archive
endif
PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) $(WHOLE_START) -lretro_ps3 $(WHOLE_END) -lcgc -lgcm_cmdasm -lgcm_sys_stub -lresc_stub -lm -lio_stub -lfs_stub -lsysutil_stub -lsysutil_game_stub -lsysutil_screenshot_stub -lsysutil_np_stub -lpngdec_stub -lsysmodule_stub -laudio_stub -lnet_stub -lnetctl_stub -lpthread
PPU_RANLIB = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ranlib.exe
DEFINES += -DHAVE_THREADS -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_HEADSET -DHAVE_LANGEXTRA -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_7Z -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_FILTERS_BUILTIN -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_DSP_FILTER -DHAVE_VIDEO_FILTER
#DEFINES += -DHAVE_IMAGEVIEWER
ifeq ($(DEBUG), 1)
PPU_OPTIMIZE_LV := -O0 -g
else
PPU_OPTIMIZE_LV := -O2 -g
endif
ifeq ($(HAVE_LOGGER), 1)
DEFINES += -DHAVE_LOGGER
endif
PPU_CFLAGS := $(PPU_OPTIMIZE_LV) $(INCDIRS) $(DEFINES)
PPU_CXXFLAGS := $(PPU_OPTIMIZE_LV) $(INCDIRS) $(DEFINES)
EXIST_EBOOT_WILDCARD := $(wildcard $(EBOOT_PATH))
EXIST_CORE_WILDCARD := $(wildcard $(CORE_PATH))
EBOOT_EXISTS = 1
CORE_EXISTS = 1
ifneq ($(strip $(EXIST_EBOOT_WILDCARD)),)
EBOOT_EXISTS = 0
endif
ifneq ($(strip $(EXIST_CORE_WILDCARD)),)
CORE_EXISTS = 0
endif
include $(CELL_MK_DIR)/sdk.target.mk
MAKE_FSELF = $(CELL_SDK)/host-win32/bin/make_fself.exe
MAKE_FSELF_NPDRM = $(CELL_SDK)/host-win32/bin/make_fself_npdrm.exe
MAKE_PACKAGE_NPDRM = $(CELL_SDK)/host-win32/bin/make_package_npdrm.exe
.PHONY: create-npdrm-core create-core create-npdrm-salamander create-shaders clean-selfs create-salamander
create-npdrm-core:
$(MAKE_FSELF_NPDRM) $(PPU_TARGET) $(CORE_PATH)
create-core:
$(MAKE_SELF_WC) $(PPU_TARGET) $(CORE_PATH)
create-npdrm-salamander:
$(MAKE_FSELF_NPDRM) $(SALAMANDER_TARGET) $(EBOOT_PATH)
create-salamander:
$(MAKE_SELF) $(SALAMANDER_TARGET) $(EBOOT_PATH) $(CONTENT_ID_FULL)
copy-media-files:
@cp -r $(ASSETS_DIR)/glui pkg/ps3/USRDIR/cores/assets
@cp -r $(ASSETS_DIR)/xmb pkg/ps3/USRDIR/cores/assets
create-shaders:
make -f Makefile.griffin platform=ps3 shaders-deploy
pkg: $(PPU_TARGET) create-shaders copy-media-files create-npdrm-salamander create-npdrm-core
$(MAKE_PACKAGE_NPDRM) pkg/ps3/package.conf pkg/ps3
pkg-signed: $(PPU_TARGET) create-shaders copy-media-files create-salamander create-core
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
pkg-signed-standalone: $(PPU_TARGET) create-shaders copy-media-files create-core
$(MAKE_SELF) $(PPU_TARGET) $(EBOOT_PATH) $(CONTENT_ID)
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
pkg-signed-cfw: $(PPU_TARGET) create-shaders copy-media-files create-salamander create-core
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
$(PKG_FINALIZE) retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
pkg-signed-cfw-standalone: $(PPU_TARGET) create-shaders copy-media-files create-core
$(MAKE_SELF) $(PPU_TARGET) $(EBOOT_PATH) $(CONTENT_ID)
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
$(PKG_FINALIZE) retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
clean-selfs:
ifeq ($(EBOOT_EXISTS),1)
@echo "WARNING: Couldn't find file to delete: [$(EBOOT_PATH)], skipping this step."
else
rm $(EBOOT_PATH)
endif
ifeq ($(CORE_EXISTS),1)
@echo "WARNING: Couldn't find file to delete: [$(CORE_PATH)], skipping this step."
else
rm $(CORE_PATH)
endif
-196
View File
@@ -1,196 +0,0 @@
include version.all
#which compiler to build with - GCC or SNC
#set to GCC for debug builds for use with debugger
CELL_BUILD_TOOLS = GCC
CELL_GPU_TYPE = RSX
CELL_PSGL_VERSION = ultra-opt
# options
DOWNLOAD_SHADERS = 1
STRIPPING_ENABLE = 0
DEBUG = 0
HAVE_GCMGL = 1
HAVE_LOGGER = 0
HAVE_FREETYPE = 0
WHOLE_ARCHIVE_LINK = 0
CONTENT_ID_FULL = UP0001-SSNE10000_00-0000000000000001
CONTENT_ID = SSNE10000
PC_DEVELOPMENT_IP_ADDRESS = "192.168.1.7"
PC_DEVELOPMENT_UDP_PORT = 3490
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
include $(CELL_MK_DIR)/sdk.makedef.mk
PPU_TARGET = retroarch_ps3.elf
SALAMANDER_TARGET = retroarch-salamander_ps3.elf
EBOOT_PATH = pkg/ps3/USRDIR/EBOOT.BIN
CORE_PATH = pkg/ps3/USRDIR/cores/CORE.SELF
LDDIRS = -L. -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/ultra-opt
INCDIRS = -I. -Idefines -Ideps -Ideps/stb
# system platform
system_platform = unix
ifeq ($(shell uname -a),)
EXE_EXT = .exe
system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -a)),)
system_platform = win
endif
PKG_SCRIPT = tools/ps3/ps3py/pkg.py
ifeq ($(shell uname), Linux)
PKG_FINALIZE = package_finalize
MAKE_SELF_WC = make_self_wc
MAKE_SELF = make_self_npdrm
PYTHON2 = python2
GIT = git
else
PKG_FINALIZE = package_finalize.exe
MAKE_SELF_WC = make_self_wc.exe
MAKE_SELF = make_self_npdrm.exe
PYTHON2 = python2.exe
GIT = git.exe
endif
PPU_SRCS = griffin/griffin.c
DEFINES += -DHAVE_RGUI -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_MENU -DRARCH_INTERNAL
ifeq ($(DEX_BUILD), 1)
DEFINES += -DDEX_BUILD
endif
ifeq ($(CEX_BUILD), 1)
DEFINES += -DCEX_BUILD
endif
ifeq ($(ODE_BUILD), 1)
DEFINES += -DODE_BUILD
endif
ifeq ($(HAVE_GCMGL), 1)
DEFINES += -DHAVE_GCMGL
GL_LIBS := -L. -lrgl_ps3
else
GL_LIBS := -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/ultra-opt -lPSGL -lPSGLcgc
endif
ifeq ($(HAVE_FREETYPE), 1)
DEFINES += -DHAVE_FREETYPE
FONT_LIBS := -lfontFT_stub -lfreetype_stub
endif
ifeq ($(CELL_BUILD_TOOLS), SNC)
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
PPU_CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
else ifneq($(system_platform), win)
PPU_CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
PPU_CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
PPU_CXXLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
PPU_CCLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl, --whole-archive
WHOLE_END := -Wl, --no-whole-archive
endif
PPU_LDLIBS = $(FONT_LIBS) $(GL_LIBS) $(WHOLE_START) -lretro_ps3 $(WHOLE_END) -lcgc -lgcm_cmdasm -lgcm_sys_stub -lresc_stub -lm -lio_stub -lfs_stub -lsysutil_stub -lsysutil_game_stub -lsysutil_screenshot_stub -lsysutil_np_stub -lpngdec_stub -ljpgdec_stub -lsysmodule_stub -laudio_stub -lnet_stub -lnetctl_stub -lpthread
PPU_RANLIB = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ranlib.exe
#DEFINES += -DHAVE_VIDEO_LAYOUT
DEFINES += -DHAVE_THREADS -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_PATCH -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_OPENGLES -DHAVE_OPENGLES1 -DHAVE_PSGL -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_RSOUND -DHAVE_ZLIB -DHAVE_RPNG -D__CELLOS_LV2__ -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DHAVE_MOUSE -DHAVE_GRIFFIN=1 -DHAVE_MULTIMAN=0 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -DHAVE_STB_VORBIS
ifeq ($(DEBUG), 1)
PPU_OPTIMIZE_LV := -O0 -g
else
PPU_OPTIMIZE_LV := -O3 -g
endif
ifeq ($(HAVE_LOGGER), 1)
DEFINES += -DHAVE_LOGGER
endif
PPU_CFLAGS := $(PPU_OPTIMIZE_LV) $(INCDIRS) $(DEFINES)
PPU_CXXFLAGS := $(PPU_OPTIMIZE_LV) $(INCDIRS) $(DEFINES)
EXIST_EBOOT_WILDCARD := $(wildcard $(EBOOT_PATH))
EXIST_CORE_WILDCARD := $(wildcard $(CORE_PATH))
EBOOT_EXISTS = 1
CORE_EXISTS = 1
ifneq ($(strip $(EXIST_EBOOT_WILDCARD)),)
EBOOT_EXISTS = 0
endif
ifneq ($(strip $(EXIST_CORE_WILDCARD)),)
CORE_EXISTS = 0
endif
include $(CELL_MK_DIR)/sdk.target.mk
MAKE_FSELF = $(CELL_SDK)/host-win32/bin/make_fself.exe
MAKE_FSELF_NPDRM = $(CELL_SDK)/host-win32/bin/make_fself_npdrm.exe
MAKE_PACKAGE_NPDRM = $(CELL_SDK)/host-win32/bin/make_package_npdrm.exe
.PHONY: create-npdrm-core create-core create-npdrm-salamander create-shaders clean-selfs create-salamander
create-npdrm-core:
$(MAKE_FSELF_NPDRM) $(PPU_TARGET) $(CORE_PATH)
create-core:
$(MAKE_SELF_WC) $(PPU_TARGET) $(CORE_PATH)
create-npdrm-salamander:
$(MAKE_FSELF_NPDRM) $(SALAMANDER_TARGET) $(EBOOT_PATH)
create-salamander:
$(MAKE_SELF) $(SALAMANDER_TARGET) $(EBOOT_PATH) $(CONTENT_ID_FULL)
copy-media-files:
@cp -r $(ASSETS_DIR)/glui pkg/ps3/USRDIR/cores/assets
@cp -r $(ASSETS_DIR)/xmb pkg/ps3/USRDIR/cores/assets
create-shaders:
make -f Makefile.shaders deploy-ps3
pkg: $(PPU_TARGET) create-shaders copy-media-files create-npdrm-salamander create-npdrm-core
$(MAKE_PACKAGE_NPDRM) pkg/ps3/package.conf pkg/ps3
pkg-signed: $(PPU_TARGET) create-shaders copy-media-files create-salamander create-core
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
pkg-signed-standalone: $(PPU_TARGET) create-shaders copy-media-files create-core
$(MAKE_SELF) $(PPU_TARGET) $(EBOOT_PATH) $(CONTENT_ID)
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
pkg-signed-cfw: $(PPU_TARGET) create-shaders copy-media-files create-salamander create-core
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
$(PKG_FINALIZE) retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
pkg-signed-cfw-standalone: $(PPU_TARGET) create-shaders copy-media-files create-core
$(MAKE_SELF) $(PPU_TARGET) $(EBOOT_PATH) $(CONTENT_ID)
$(PYTHON2) $(PKG_SCRIPT) --contentid $(CONTENT_ID_FULL) pkg/ps3 retroarch-ps3-cfw-$(PACKAGE_VERSION).pkg
$(PKG_FINALIZE) retroarch-ps3-cfw-$(PACKAGE_VERSION)-kmeaw.pkg
clean-selfs:
ifeq ($(EBOOT_EXISTS),1)
@echo "WARNING: Couldn't find file to delete: [$(EBOOT_PATH)], skipping this step."
else
rm $(EBOOT_PATH)
endif
ifeq ($(CORE_EXISTS),1)
@echo "WARNING: Couldn't find file to delete: [$(CORE_PATH)], skipping this step."
else
rm $(CORE_PATH)
endif
-92
View File
@@ -1,92 +0,0 @@
CELL_BUILD_TOOLS = GCC
CELL_SDK ?= /usr/local/cell
HAVE_LOGGER = 0
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
include $(CELL_MK_DIR)/sdk.makedef.mk
# system platform
system_platform = unix
ifeq ($(shell uname -a),)
EXE_EXT = .exe
system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -a)),)
system_platform = win
endif
ifeq ($(DEBUG), 1)
PPU_OPTIMIZE_LV := -O0 -g
else
PPU_OPTIMIZE_LV := -O2 -DNDEBUG
endif
STRIP = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-strip.exe
INCFLAGS = -I. -Idefines -Ilibretro-common/include -Ilibretro-common/include/compat/zlib
DEFINES = -D__CELLOS_LV2__ -DIS_SALAMANDER -DRARCH_CONSOLE -DHAVE_SYSUTILS -DHAVE_SYSMODULES -DHAVE_RARCH_EXEC
ifeq ($(DEX_BUILD), 1)
DEFINES += -DDEX_BUILD
endif
ifeq ($(CEX_BUILD), 1)
DEFINES += -DCEX_BUILD
endif
ifeq ($(ODE_BUILD), 1)
DEFINES += -DODE_BUILD
endif
PPU_CFLAGS := $(PPU_OPTIMIZE_LV) $(INCFLAGS) $(DEFINES)
PPU_CXXFLAGS := $(PPU_OPTIMIZE_LV) $(INCFLAGS) $(DEFINES)
PPU_SRCS = frontend/frontend_salamander.c \
frontend/frontend_driver.c \
frontend/drivers/platform_ps3.c \
libretro-common/file/file_path.c \
libretro-common/file/file_path_io.c \
libretro-common/lists/dir_list.c \
libretro-common/lists/string_list.c \
libretro-common/file/retro_dirent.c \
libretro-common/hash/rhash.c \
libretro-common/string/stdstring.c \
libretro-common/encodings/encoding_utf.c \
libretro-common/compat/compat_strl.c \
libretro-common/compat/compat_strcasestr.c \
libretro-common/compat/fopen_utf8.c \
libretro-common/streams/file_stream.c \
libretro-common/vfs/vfs_implementation.c \
libretro-common/file/config_file.c \
libretro-common/time/rtime.c \
file_path_str.c \
verbosity.c
ifeq ($(HAVE_LOGGER), 1)
PPU_CFLAGS += -DHAVE_LOGGER
PPU_SRCS += network/net_logger.c \
libretro-common/net/net_compat.c \
libretro-common/net/net_socket.c
endif
PPU_TARGET = retroarch-salamander_ps3.elf
ifeq ($(CELL_BUILD_TOOLS),SNC)
PPU_CFLAGS += -Xbranchless=1 -Xfastmath=1 -Xassumecorrectsign=1 -Xassumecorrectalignment=1 -Xunroll=1 -Xautovecreg=1
PPU_CXXFLAGS += -Xbranchless=1 -Xfastmath=1 -Xassumecorrectsign=1 -Xassumecorrectalignment=1 -Xunroll=1 -Xautovecreg=1
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
else
PPU_CFLAGS += -std=gnu99
PPU_CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
PPU_CLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
endif
PPU_LDLIBS += -lm -lnet_stub -lnetctl_stub -lio_stub -lsysmodule_stub -lsysutil_stub -lsysutil_game_stub -lfs_stub -lsysutil_np_stub
MAKE_FSELF = $(CELL_SDK)/host-win32/bin/make_fself.exe
include $(CELL_MK_DIR)/sdk.target.mk
+3 -3
View File
@@ -27,13 +27,13 @@ ELF_TARGET := retroarch_psl1ght.elf
SELF_TARGET := $(ELF_TARGET:.elf=.self)
CORE_PATH = pkg/psl1ght/pkg/USRDIR/cores/CORE.SELF
INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude
INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
LIBDIRS += -L.
MACHDEP := -D__CELLOS_LV2__ -D__PSL1GHT__ -mcpu=cell
MACHDEP := -D__PSL1GHT__ -mcpu=cell
CFLAGS += -Wall $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP)
LIBS := -lretro_psl1ght -laudio -lrsx -lgcm_sys -lnet -lio -lsysutil -lsysmodule -lm -ljpgdec -lpngdec -llv2 -lnet -lnetctl
LIBS := -lretro_psl1ght -laudio -lrsx -lgcm_sys -lnet -lio -lsysutil -lsysmodule -lm -ljpgdec -lpngdec -llv2 -lnet -lnetctl -lsysfs
# system platform
system_platform = unix
+4 -5
View File
@@ -30,7 +30,7 @@ EBOOT_PATH = pkg/psl1ght/pkg/USRDIR/EBOOT.BIN
INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude
LIBDIRS += -L.
MACHDEP := -D__CELLOS_LV2__ -D__PSL1GHT__ -mcpu=cell -mhard-float -fmodulo-sched -ffunction-sections -fdata-sections
MACHDEP := -D__PSL1GHT__ -mcpu=cell -mhard-float -fmodulo-sched -ffunction-sections -fdata-sections
CFLAGS += -Wall $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP)
LIBS := -lgcm_sys -lrsx -lsysutil -lio -lnet -lsysmodule -lrt -llv2 -lm
@@ -61,7 +61,7 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/lists/dir_list.o \
libretro-common/lists/string_list.o \
libretro-common/file/retro_dirent.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/string/stdstring.o \
libretro-common/encodings/encoding_utf.o \
libretro-common/compat/compat_strl.o \
@@ -70,9 +70,8 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/file/config_file.o \
libretro-common/time/rtime.c \
file_path_str.o \
verbosity.o
libretro-common/time/rtime.o \
verbosity.o
ifeq ($(HAVE_LOGGER), 1)
CFLAGS += -DHAVE_LOGGER
+1 -7
View File
@@ -2,8 +2,6 @@ BUILD_PRX = 0
PSP_LARGE_MEMORY = 1
DEBUG = 0
HAVE_KERNEL_PRX = 1
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_THREADS = 1
BIG_STACK = 0
WHOLE_ARCHIVE_LINK = 0
@@ -25,7 +23,7 @@ INCDIR = deps deps/stb deps/7zip deps/pthreads deps/pthreads/platform/psp deps/p
CFLAGS = $(OPTIMIZE_LV) -G0 -std=gnu99 -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_AUDIOMIXER -DHAVE_RWAV -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_DSP_FILTER -DHAVE_VIDEO_FILTER -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_AUDIOMIXER -DHAVE_RWAV -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_DSP_FILTER -DHAVE_VIDEO_FILTER -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_CC_RESAMPLER
LIBDIR =
LDFLAGS =
@@ -35,10 +33,6 @@ ifeq ($(HAVE_THREADS), 1)
RARCH_DEFINES += -DHAVE_THREADS
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
ifeq ($(HAVE_KERNEL_PRX), 1)
CFLAGS += -DHAVE_KERNEL_PRX
endif
+1 -7
View File
@@ -1,6 +1,5 @@
BUILD_PRX = 0
PSP_LARGE_MEMORY = 1
HAVE_FILE_LOGGER = 0
DEBUG = 0
TARGET = retroarchpsp_salamander
@@ -21,10 +20,6 @@ LIBDIR =
LDFLAGS =
LIBS = -lstdc++ -lm -lpsppower
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
CFLAGS += $(RARCH_DEFINES)
EXTRA_TARGETS = EBOOT.PBP
@@ -48,9 +43,8 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
bootstrap/psp1/kernel_functions.o
+229
View File
@@ -0,0 +1,229 @@
#########################
## Toolchain variables ##
#########################
# Default toolchain directory
TOOLCHAIN_DIR=/opt/gcw0-toolchain
# All toolchain-related variables may be
# overridden via the command line
ifdef GCW0_CC
CC = $(GCW0_CC)
else
CC = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-gcc
endif
ifdef GCW0_CXX
CXX = $(GCW0_CXX)
else
CXX = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-g++
endif
ifdef GCW0_STRIP
STRIP = $(GCW0_STRIP)
else
STRIP = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-strip
endif
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config
GCW0_MK_SQUASH_FS ?= $(TOOLCHAIN_DIR)/usr/bin/mksquashfs
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
#########################
#########################
PACKAGE_NAME = retroarch
DEBUG ?= 0
DINGUX = 1
HAVE_SCREENSHOTS = 0
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 1
# ALSA freezes when switching back from menu
HAVE_ALSA = 0
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 0
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_CHD = 1
HAVE_COMMAND = 0
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
HAVE_EGL = 0
HAVE_FREETYPE = 0
HAVE_GDI = 1
HAVE_GETADDRINFO = 0
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 0
HAVE_HID = 1
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 1
HAVE_LANGEXTRA = 0
HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 0
HAVE_MMAP = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0
HAVE_OPENGLES = 0
HAVE_OPENGLES3 = 0
HAVE_OPENGL_CORE = 0
HAVE_OPENSSL = 1
HAVE_OVERLAY = 0
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 1
HAVE_SDL_DINGUX = 1
HAVE_SHADERPIPELINE = 0
HAVE_STB_FONT = 0
HAVE_STB_IMAGE = 1
HAVE_STB_VORBIS = 1
HAVE_STDIN_CMD = 0
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 1
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 1
OS = Linux
TARGET = retroarch
OPK_NAME = retroarch_rg350.opk
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -ffast-math -fomit-frame-pointer
DEF_FLAGS += -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -MMD
DEF_FLAGS += -Wall -Wno-unused-variable
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE -flto
LIBS := -ldl -lz -lrt -ludev -pthread
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
LDFLAGS := -Wl,--gc-sections
INCLUDE_DIRS = -I$(GCW0_INC_DIR)
LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_AL=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_UDEV=1
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
FREETYPE_CFLAGS := $(shell $(GCW0_FREETYPE_CONFIG) --cflags)
FREETYPE_LIBS := $(shell $(GCW0_FREETYPE_CONFIG) --libs)
AL_LIBS := -lopenal
MMAP_LIBS = -lc
OBJDIR_BASE := obj-unix
ifeq ($(DEBUG), 1)
OBJDIR := $(OBJDIR_BASE)/debug
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
else
OBJDIR := $(OBJDIR_BASE)/release
DEF_FLAGS += -O2 -DNDEBUG
endif
include Makefile.common
DEF_FLAGS += $(INCLUDE_DIRS)
LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS)
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
define DESKTOP_ENTRY
[Desktop Entry]
Name=RetroArch
Comment=Frontend for emulators, game engines
Exec=retroarch
Terminal=false
Type=Application
StartupNotify=true
Icon=retroarch
Categories=emulators;
X-OD-NeedsDownscaling=true
endef
export DESKTOP_ENTRY
all: $(TARGET) opk
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
rm -rf $(OPK_NAME)
opk: $(TARGET)
echo "$$DESKTOP_ENTRY" > default.gcw0.desktop
rm -f $(OPK_NAME)
cp media/ico_src/icon32.png retroarch.png
if [ $$STRIP_BIN -eq 1 ]; then $(STRIP) --strip-unneeded retroarch; fi
$(GCW0_MK_SQUASH_FS) retroarch default.gcw0.desktop retroarch.png $(OPK_NAME) -all-root -no-xattrs -noappend -no-exports
rm -f default.gcw0.desktop retroarch.png
.PHONY: all clean opk
print-%:
@echo '$*=$($*)'
+229
View File
@@ -0,0 +1,229 @@
#########################
## Toolchain variables ##
#########################
# Default toolchain directory
TOOLCHAIN_DIR=/opt/gcw0-toolchain
# All toolchain-related variables may be
# overridden via the command line
ifdef GCW0_CC
CC = $(GCW0_CC)
else
CC = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-gcc
endif
ifdef GCW0_CXX
CXX = $(GCW0_CXX)
else
CXX = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-g++
endif
ifdef GCW0_STRIP
STRIP = $(GCW0_STRIP)
else
STRIP = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-strip
endif
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config
GCW0_MK_SQUASH_FS ?= $(TOOLCHAIN_DIR)/usr/bin/mksquashfs
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
#########################
#########################
PACKAGE_NAME = retroarch
DEBUG ?= 0
DINGUX = 1
DINGUX_BETA = 1
HAVE_SCREENSHOTS = 0
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 1
# ALSA freezes when switching back from menu
HAVE_ALSA = 0
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_BUILTINMBEDTLS = 0
HAVE_BUILTINZLIB = 1
HAVE_C99 = 1
HAVE_CC = 1
HAVE_CC_RESAMPLER = 1
HAVE_CHD = 1
HAVE_COMMAND = 0
HAVE_CXX = 1
HAVE_DR_MP3 = 1
HAVE_DYNAMIC = 1
HAVE_EGL = 0
HAVE_FREETYPE = 0
HAVE_GDI = 1
HAVE_GETADDRINFO = 0
HAVE_GETOPT_LONG = 1
HAVE_GLSL = 0
HAVE_HID = 1
HAVE_IBXM = 1
HAVE_IMAGEVIEWER = 1
HAVE_LANGEXTRA = 0
HAVE_LIBRETRODB = 1
HAVE_MENU = 1
HAVE_MENU_COMMON = 1
HAVE_GFX_WIDGETS = 0
HAVE_MMAP = 1
HAVE_OPENDINGUX_FBDEV = 0
HAVE_OPENGL = 0
HAVE_OPENGL1 = 0
HAVE_OPENGLES = 0
HAVE_OPENGLES3 = 0
HAVE_OPENGL_CORE = 0
HAVE_OPENSSL = 1
HAVE_OVERLAY = 0
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 1
HAVE_SDL_DINGUX = 1
HAVE_SHADERPIPELINE = 0
HAVE_STB_FONT = 0
HAVE_STB_IMAGE = 1
HAVE_STB_VORBIS = 1
HAVE_STDIN_CMD = 0
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 1
HAVE_RGUI = 1
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_OZONE = 0
HAVE_ZLIB = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 1
OS = Linux
TARGET = retroarch
OPK_NAME = retroarch_rg350_odbeta.opk
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -DDINGUX_BETA=1 -MMD
DEF_FLAGS += -Wall -Wno-unused-variable
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE -flto
LIBS := -ldl -lz -lrt -ludev -pthread
CFLAGS :=
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
ASFLAGS :=
LDFLAGS := -Wl,--gc-sections
INCLUDE_DIRS = -I$(GCW0_INC_DIR)
LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
DEFINES += -DHAVE_AL=1
DEFINES += -DHAVE_FILTERS_BUILTIN
DEFINES += -DHAVE_UDEV=1
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
FREETYPE_CFLAGS := $(shell $(GCW0_FREETYPE_CONFIG) --cflags)
FREETYPE_LIBS := $(shell $(GCW0_FREETYPE_CONFIG) --libs)
AL_LIBS := -lopenal
MMAP_LIBS = -lc
OBJDIR_BASE := obj-unix
ifeq ($(DEBUG), 1)
OBJDIR := $(OBJDIR_BASE)/debug
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
else
OBJDIR := $(OBJDIR_BASE)/release
DEF_FLAGS += -O2 -DNDEBUG
endif
include Makefile.common
DEF_FLAGS += $(INCLUDE_DIRS)
LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS)
CFLAGS += $(DEF_FLAGS)
CXXFLAGS += $(DEF_FLAGS)
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
Q := @
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
define DESKTOP_ENTRY
[Desktop Entry]
Name=RetroArch
Comment=Frontend for emulators, game engines
Exec=retroarch
Terminal=false
Type=Application
StartupNotify=true
Icon=retroarch
Categories=emulators;
X-OD-NeedsDownscaling=true
endef
export DESKTOP_ENTRY
all: $(TARGET) opk
-include $(RARCH_OBJ:.o=.d)
SYMBOL_MAP := -Wl,-Map=output.map
$(TARGET): $(RARCH_OBJ)
@$(if $(Q), $(shell echo echo LD $@),)
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
$(OBJDIR)/%.o: %.c
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CC $<),)
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
$(OBJDIR)/%.o: %.cpp
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.m
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo OBJC $<),)
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(OBJDIR)/%.o: %.S $(HEADERS)
@mkdir -p $(dir $@)
@$(if $(Q), $(shell echo echo AS $<),)
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
clean:
rm -rf $(OBJDIR_BASE)
rm -f $(TARGET)
rm -f *.d
rm -rf $(OPK_NAME)
opk: $(TARGET)
echo "$$DESKTOP_ENTRY" > default.gcw0.desktop
rm -f $(OPK_NAME)
cp media/ico_src/icon32.png retroarch.png
if [ $$STRIP_BIN -eq 1 ]; then $(STRIP) --strip-unneeded retroarch; fi
$(GCW0_MK_SQUASH_FS) retroarch default.gcw0.desktop retroarch.png $(OPK_NAME) -all-root -no-xattrs -noappend -no-exports
rm -f default.gcw0.desktop retroarch.png
.PHONY: all clean opk
print-%:
@echo '$*=$($*)'
+1
View File
@@ -40,6 +40,7 @@ else
HAVE_DYNAMIC = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_IBXM = 1
include Makefile.common
CFLAGS += $(DEF_FLAGS)
+35 -14
View File
@@ -12,6 +12,7 @@ PC_DEVELOPMENT_UDP_PORT =
OBJ :=
SCE_LIBC_SIZE := 4194304
DEFINES := -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS
INCDIRS :=
@@ -42,8 +43,20 @@ else
HAVE_RTGA := 1
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_VITA2D := 1
HAVE_VITAGL := 1
ifeq ($(HAVE_VITAGLES), 1)
HAVE_VITA2D := 0
HAVE_VITAGL := 0
HAVE_VITAGLES := 1
HAVE_OPENGL := 1
HAVE_OPENGLES := 1
HAVE_OPENGLES2 := 1
HAVE_EGL := 1
HAVE_GLSL := 1
HAVE_SHADERPIPELINE := 1
else
HAVE_VITA2D := 1
HAVE_VITAGL := 0
endif
HAVE_NETWORKING := 1
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
@@ -95,11 +108,11 @@ AR := $(PREFIX)ar
OBJCOPY := $(PREFIX)objcopy
STRIP := $(PREFIX)strip
NM := $(PREFIX)nm
LD := $(CC)
LD := $(CXX)
LIBDIRS := -L.
ARCHFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=hard -DVITA
ARCHFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=hard -DVITA -DSCE_LIBC_SIZE=$(SCE_LIBC_SIZE)
CFLAGS += $(ARCHFLAGS) -mword-relocations -fno-optimize-sibling-calls -O2
ifeq ($(DEBUG), 1)
@@ -132,7 +145,15 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
VITA_LIBS := -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub -lSceAppUtil_stub \
-lSceSysmodule_stub -lSceCtrl_stub -lSceHid_stub -lSceTouch_stub -lSceAudio_stub \
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub -lSceMotion_stub \
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lstdc++ -lpthread -lpng -lz -lSceShaccCg_stub
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lpthread -lpng -lz -lSceShaccCg_stub
ifeq ($(HAVE_VITAGLES), 1)
VITA_LIBS += -llibScePiglet_stub -ltaihen_stub
FSELF_FLAGS := -ss
else
VITA_LIBS += -lvitaGL -lvitashark
FSELF_FLAGS := -s
endif
LIBS := $(WHOLE_START) -lretro_vita $(WHOLE_END) $(VITA_LIBS) -lm -lc
@@ -165,13 +186,13 @@ all: $(TARGETS)
%.depend: ;
libSceShaccCg_stub.a:
mkdir -p deps/vitaShaRK/SceShaccCg
vita-libs-gen deps/vitaShaRK/SceShaccCg.yml deps/vitaShaRK/SceShaccCg
make -C deps/vitaShaRK/SceShaccCg ARCH=arm-vita-eabi
cp deps/vitaShaRK/SceShaccCg/libSceShaccCg_stub.a .
liblibScePiglet_stub.a:
mkdir -p deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
vita-libs-gen deps/Pigs-In-A-Blanket/piglet_stub/nids.yml deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
make -C deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet ARCH=arm-vita-eabi
cp deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet/liblibScePiglet_stub.a .
$(TARGET).elf: $(OBJ) libretro_vita.a libSceShaccCg_stub.a
$(TARGET).elf: $(OBJ) libretro_vita.a liblibScePiglet_stub.a
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
@@ -180,15 +201,15 @@ $(TARGET).elf: $(OBJ) libretro_vita.a libSceShaccCg_stub.a
vita-elf-create $< $@
%.self: %.velf
vita-make-fself -c -s $< $@
vita-make-fself -c $(FSELF_FLAGS) $< $@
%.vpk: %.self
vita-mksfoex -s TITLE_ID=$(VITA_TITLE_ID) "$(VITA_TITLE_NAME)" -d ATTRIBUTE2=12 param.sfo
vita-pack-vpk -s param.sfo -b $< $@
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk libSceShaccCg_stub.a
rm -rf deps/vitaShaRK/SceShaccCg
rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk
rm -rf deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
rm -f $(OBJ:.o=.depend)
# Useful for developers
+2 -3
View File
@@ -48,15 +48,14 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/file/config_file.o \
libretro-common/streams/file_stream.o \
libretro-common/vfs/vfs_implementation.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o
all: $(TARGET).vpk
%.vpk: eboot.bin
vita-mksfoex -s TITLE_ID=$(TITLE_ID) "$(TARGET)" -d ATTRIBUTE2=12 param.sfo
vita-mksfoex -s TITLE_ID=$(TITLE_ID) "RetroArch" -d ATTRIBUTE2=12 param.sfo
vita-pack-vpk -s param.sfo -b eboot.bin $@
eboot.bin: $(TARGET).velf
+385
View File
@@ -0,0 +1,385 @@
ROOT_DIR := .
DEPS_DIR := $(ROOT_DIR)/deps
DEBUG ?= 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_CC_RESAMPLER = 1
WHOLE_ARCHIVE_LINK = 0
BIG_STACK = 1
PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255
PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
SPACE :=
SPACE := $(SPACE) $(SPACE)
BACKSLASH :=
BACKSLASH := \$(BACKSLASH)
filter_out1 = $(filter-out $(firstword $1),$1)
filter_out2 = $(call filter_out1,$(call filter_out1,$1))
# system platform
system_platform = unix
ifeq ($(shell uname -s),)
EXE_EXT = .exe
system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -s)),)
system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -s)),)
system_platform = win
endif
TARGET_NAME := retroarch
INCLUDE :=
LDFLAGS :=
LIBDIRS :=
ifeq ($(LIBRETRO), nxengine)
WHOLE_ARCHIVE_LINK = 1
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
LIBS := $(WHOLE_START) -lretro_wii $(WHOLE_END)
libogc_platform := 1
EXTERNAL_LIBOGC ?= 0
GX_PTHREAD_LEGACY ?= 1
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
LD = $(DEVKITPPC)/bin/powerpc-eabi-ld$(EXE_EXT)
ELF2DOL = $(DEVKITPPC)/bin/elf2dol$(EXE_EXT)
EXT_TARGET := $(TARGET_NAME)_wii.dol
EXT_INTER_TARGET := $(TARGET_NAME)_wii.elf
# Check whether ELF2DOL executable exists
# (path has changed in more recent toolchains)
ifeq ("$(wildcard $(ELF2DOL))","")
ELF2DOL = $(DEVKITPRO)/tools/bin/elf2dol$(EXE_EXT)
endif
INCLUDE += -I. -I$(DEVKITPRO)/libogc/include -Iwii/libogc/include
ifeq ($(EXTERNAL_LIBOGC), 1)
CFLAGS += -DEXTERNAL_LIBOGC
CXXFLAGS += -DEXTERNAL_LIBOGC
LIBDIRS += -L$(DEVKITPRO)/libogc/lib/wii
else
CFLAGS += -DINTERNAL_LIBOGC
CXXFLAGS += -DINTERNAL_LIBOGC
LIBDIRS += -Lwii/libogc/libs/wii
endif
ifeq ($(GX_PTHREAD_LEGACY), 1)
CFLAGS += -DGX_PTHREAD_LEGACY
CXXFLAGS += -DGX_PTHREAD_LEGACY
endif
MACHDEP := -DHW_RVL -mrvl
LIBDIRS += -L.
MACHDEP += -DGEKKO -mcpu=750 -meabi -mhard-float
LDFLAGS += $(MACHDEP) -Wl,-Map,$(notdir $(EXT_INTER_TARGET)).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,strdup,-wrap,strndup,-wrap,malloc_usable_size
ifeq ($(BIG_STACK), 1)
LDFLAGS += -T bootstrap/gx/rvl.ld
endif
ifeq ($(EXTERNAL_LIBOGC), 1)
LIBS += -lfat
endif
LIBS += -lwiiuse -lbte
ifeq ($(USBGECKO), 1)
LIBS += -ldb
endif
LIBS += -logc
CFLAGS += -DGEKKO -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
HAVE_RUNAHEAD := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_THREADS := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_IBXM := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
RARCH_CONSOLE = 1
#HAVE_LANGEXTRA := 1
HAVE_WIIUSB_HID := 1
HAVE_RARCH_EXEC := 1
HAVE_RSOUND := 1
APP_BOOTER_DIR = wii/app_booter
PLATOBJS := $(APP_BOOTER_DIR)/app_booter.binobj
ifeq ($(USBGECKO), 1)
CFLAGS += -DUSBGECKO
endif
HAVE_CHEATS := 1
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(PLATCFLAGS) $(INCLUDE)
INCLUDE += -I./libretro-common/include \
-Ideps \
-Ideps/stb
OBJ = griffin/griffin.o $(PLATOBJS)
ifeq ($(HAVE_GRIFFIN_CPP), 1)
OBJ += griffin/griffin_cpp.o
endif
ifeq ($(WANT_GLSLANG), 1)
OBJ += griffin/griffin_glslang.o
endif
ifeq ($(HAVE_LOGGER), 1)
CFLAGS += -DHAVE_LOGGER
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
endif
CFLAGS += -DHAVE_SOCKET_LEGACY
ifeq ($(HAVE_KERNEL_PRX), 1)
CFLAGS += -DHAVE_KERNEL_PRX
endif
ifeq ($(HAVE_WIIUSB_HID), 1)
CFLAGS += -DHAVE_WIIUSB_HID -DHAVE_HID
endif
ifeq ($(HAVE_LIBRETRODB), 1)
CFLAGS += -DHAVE_LIBRETRODB
endif
ifeq ($(BIG_STACK),1)
CFLAGS += -DBIG_STACK
endif
ifeq ($(HAVE_RJPEG), 1)
CFLAGS += -DHAVE_RJPEG
endif
ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS += -DHAVE_FILE_LOGGER
endif
ifeq ($(HAVE_RARCH_EXEC), 1)
CFLAGS += -DHAVE_RARCH_EXEC
endif
ifeq ($(HAVE_ZLIB), 1)
CFLAGS += -DHAVE_ZLIB
CFLAGS += -I./libretro-common/include/compat/zlib
endif
ifeq ($(HAVE_RPNG), 1)
CFLAGS += -DHAVE_RPNG
endif
ifeq ($(HAVE_RBMP), 1)
CFLAGS += -DHAVE_RBMP
endif
ifeq ($(HAVE_RTGA), 1)
CFLAGS += -DHAVE_RTGA
endif
ifeq ($(HAVE_IMAGEVIEWER), 1)
CFLAGS += -DHAVE_IMAGEVIEWER
endif
ifeq ($(HAVE_BSV_MOVIE), 1)
CFLAGS += -DHAVE_BSV_MOVIE
endif
ifeq ($(HAVE_RUNAHEAD), 1)
CFLAGS += -DHAVE_RUNAHEAD
endif
ifeq ($(HAVE_7ZIP), 1)
CFLAGS += -DHAVE_7ZIP -D_7ZIP_ST
endif
ifeq ($(HAVE_SCREENSHOTS), 1)
CFLAGS += -DHAVE_SCREENSHOTS
endif
ifeq ($(HAVE_REWIND), 1)
CFLAGS += -DHAVE_REWIND
endif
ifeq ($(HAVE_AUDIOMIXER), 1)
CFLAGS += -DHAVE_AUDIOMIXER
endif
ifeq ($(HAVE_RWAV), 1)
CFLAGS += -DHAVE_RWAV
endif
ifeq ($(HAVE_OVERLAY), 1)
CFLAGS += -DHAVE_OVERLAY
endif
ifeq ($(HAVE_VIDEO_LAYOUT), 1)
CFLAGS += -DHAVE_VIDEO_LAYOUT
endif
ifeq ($(HAVE_NETWORKING), 1)
CFLAGS += -DHAVE_NETWORKING
endif
ifeq ($(HAVE_NETPLAYDISCOVERY), 1)
CFLAGS += -DHAVE_NETPLAYDISCOVERY
endif
ifeq ($(RARCH_CONSOLE), 1)
CFLAGS += -DRARCH_CONSOLE
endif
ifeq ($(RARCH_MOBILE), 1)
CFLAGS += -DRARCH_MOBILE
endif
CFLAGS += -std=gnu99 -DHAVE_RGUI -DHAVE_MENU -DHAVE_GRIFFIN=1 -Wno-char-subscripts -DRARCH_INTERNAL
ifeq ($(HAVE_MATERIALUI), 1)
CFLAGS += -DHAVE_MATERIALUI
endif
ifeq ($(HAVE_XMB), 1)
CFLAGS += -DHAVE_XMB
endif
ifeq ($(HAVE_STB_FONT), 1)
CFLAGS += -DHAVE_STB_FONT
endif
ifeq ($(HAVE_LANGEXTRA), 1)
CFLAGS += -DHAVE_LANGEXTRA
endif
ifeq ($(HAVE_DSP_FILTER), 1)
CFLAGS += -DHAVE_DSP_FILTER
endif
ifeq ($(HAVE_VIDEO_FILTER), 1)
CFLAGS += -DHAVE_VIDEO_FILTER
endif
ifeq ($(HAVE_FILTERS_BUILTIN), 1)
CFLAGS += -DHAVE_FILTERS_BUILTIN
endif
ifeq ($(HAVE_THREADS), 1)
CFLAGS += -DHAVE_THREADS
endif
ifeq ($(HAVE_CONFIGFILE), 1)
CFLAGS += -DHAVE_CONFIGFILE
endif
ifeq ($(HAVE_PATCH), 1)
CFLAGS += -DHAVE_PATCH
endif
ifeq ($(HAVE_CHEATS), 1)
CFLAGS += -DHAVE_CHEATS
endif
ifeq ($(HAVE_RSOUND), 1)
CFLAGS += -DHAVE_RSOUND
endif
ifeq ($(HAVE_GETOPT_LONG), 1)
CFLAGS += -DHAVE_GETOPT_LONG=1
endif
ifeq ($(HAVE_DYLIB), 1)
CFLAGS += -DHAVE_DYLIB
endif
ifeq ($(HAVE_NETWORK_CMD), 1)
CFLAGS += -DHAVE_NETWORK_CMD
endif
ifeq ($(HAVE_COMMAND), 1)
CFLAGS += -DHAVE_COMMAND
endif
ifeq ($(HAVE_STDIN_CMD), 1)
CFLAGS += -DHAVE_STDIN_CMD
endif
ifeq ($(HAVE_DYNAMIC), 1)
CFLAGS += -DHAVE_DYNAMIC
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g -DDEBUG
else
CFLAGS += -O3
endif
OBJOUT = -o
LINKOUT = -o
LINK = $(CXX)
all: $(EXT_TARGET)
%.dol: %.elf
$(ELF2DOL) $< $@
$(EXT_INTER_TARGET): $(OBJ)
$(LINK) $(LINKOUT)$@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(PLATEXTRA) $(LIBS)
%.o: %.c
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.cpp
$(CXX) $(CFLAGS) -c $(OBJOUT)$@ $<
%.o: %.S
$(CC) $(CFLAGS) -c $(OBJOUT)$@ $<
%.binobj: %.bin
$(LD) -r -b binary $(OBJOUT)$@ $<
$(APP_BOOTER_DIR)/app_booter.bin:
export EXTERNAL_LIBOGC
$(MAKE) -C $(APP_BOOTER_DIR)
clean:
rm -f $(EXT_TARGET)
rm -f $(EXT_INTER_TARGET)
rm -f $(OBJ)
$(MAKE) -C $(APP_BOOTER_DIR) clean
.PHONY: clean
print-%:
@echo '$*=$($*)'
+18 -6
View File
@@ -3,10 +3,11 @@
# Makefile for RetroArch Wii.
##
DEBUG = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
EXTERNAL_LIBOGC = 0
DEBUG = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
EXTERNAL_LIBOGC ?= 0
GX_PTHREAD_LEGACY ?= 1
# system platform
system_platform = unix
@@ -27,6 +28,12 @@ CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
LD = $(DEVKITPPC)/bin/powerpc-eabi-ld$(EXE_EXT)
ELF2DOL = $(DEVKITPPC)/bin/elf2dol$(EXE_EXT)
# Check whether ELF2DOL executable exists
# (path has changed in more recent toolchains)
ifeq ("$(wildcard $(ELF2DOL))","")
ELF2DOL = $(DEVKITPRO)/tools/bin/elf2dol$(EXE_EXT)
endif
DOL_TARGET := retroarch-salamander_wii.dol
ELF_TARGET := retroarch-salamander_wii.elf
@@ -39,6 +46,11 @@ INCLUDE += -Iwii/libogc/include
LIBDIRS := -Lwii/libogc/libs/wii -L.
endif
ifeq ($(GX_PTHREAD_LEGACY), 1)
CFLAGS += -DGX_PTHREAD_LEGACY
CXXFLAGS += -DGX_PTHREAD_LEGACY
endif
MACHDEP := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP) -Wl,-Map,$(notdir $(ELF_TARGET)).map
@@ -57,7 +69,7 @@ OBJ = frontend/frontend_salamander.o \
frontend/drivers/platform_wii.o \
libretro-common/file/file_path.o \
libretro-common/file/file_path_io.o \
libretro-common/hash/rhash.o \
libretro-common/hash/lrc_hash.o \
libretro-common/string/stdstring.o \
libretro-common/lists/string_list.o \
libretro-common/lists/dir_list.o \
@@ -70,7 +82,6 @@ OBJ = frontend/frontend_salamander.o \
libretro-common/compat/fopen_utf8.o \
libretro-common/file/config_file.o \
libretro-common/time/rtime.o \
file_path_str.o \
verbosity.o \
$(APP_BOOTER_DIR)/app_booter.binobj
@@ -128,6 +139,7 @@ $(ELF_TARGET): $(OBJ)
$(LD) -r -b binary -o $@ $<
$(APP_BOOTER_DIR)/app_booter.bin:
export EXTERNAL_LIBOGC
$(MAKE) -C $(APP_BOOTER_DIR)
pkg: all
+1 -2
View File
@@ -66,9 +66,8 @@ ifeq ($(SALAMANDER_BUILD),1)
OBJ += libretro-common/file/config_file.o
OBJ += libretro-common/streams/file_stream.o
OBJ += libretro-common/vfs/vfs_implementation.o
OBJ += libretro-common/hash/rhash.o
OBJ += libretro-common/hash/lrc_hash.o
OBJ += libretro-common/time/rtime.o
OBJ += file_path_str.o
OBJ += verbosity.o
# $(SALAMANDER_BUILD),0
+1 -1
View File
@@ -77,11 +77,11 @@ enum audio_mixer_state
typedef struct audio_statistics
{
unsigned samples;
float average_buffer_saturation;
float std_deviation_percentage;
float close_to_underrun;
float close_to_blocking;
unsigned samples;
} audio_statistics_t;
RETRO_END_DECLS
+10 -8
View File
@@ -31,6 +31,16 @@ typedef struct audio_thread
sthread_t *thread;
slock_t *lock;
scond_t *cond;
const char *device;
unsigned *new_rate;
int inited;
/* Initialization options. */
unsigned out_rate;
unsigned latency;
unsigned block_frames;
bool alive;
bool stopped;
bool stopped_ack;
@@ -38,14 +48,6 @@ typedef struct audio_thread
bool is_shutdown;
bool use_float;
int inited;
/* Initialization options. */
const char *device;
unsigned *new_rate;
unsigned out_rate;
unsigned latency;
unsigned block_frames;
} audio_thread_t;
static void audio_thread_loop(void *data)
+4 -4
View File
@@ -28,8 +28,8 @@ typedef struct alsa
{
snd_pcm_t *pcm;
size_t buffer_size;
bool nonblock;
unsigned int frame_bits;
bool nonblock;
bool has_float;
bool can_pause;
bool is_paused;
@@ -83,12 +83,12 @@ static void *alsa_init(const char *device, unsigned rate, unsigned latency,
if (snd_pcm_hw_params_malloc(&params) < 0)
goto error;
alsa->has_float = find_float_format(alsa->pcm, params);
format = alsa->has_float ? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
if (snd_pcm_hw_params_any(alsa->pcm, params) < 0)
goto error;
alsa->has_float = find_float_format(alsa->pcm, params);
format = alsa->has_float ? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
if (snd_pcm_hw_params_set_access(
alsa->pcm, params, SND_PCM_ACCESS_RW_INTERLEAVED) < 0)
goto error;
+3 -3
View File
@@ -29,18 +29,18 @@
typedef struct alsa
{
uint8_t **buffer;
snd_pcm_t *pcm;
uint8_t *buffer_chunk;
unsigned buffer_index;
unsigned buffer_ptr;
volatile unsigned buffered_blocks;
snd_pcm_t *pcm;
unsigned buf_size;
unsigned buf_count;
bool nonblock;
bool has_float;
bool can_pause;
bool is_paused;
unsigned buf_size;
unsigned buf_count;
} alsa_qsa_t;
typedef long snd_pcm_sframes_t;
+9 -10
View File
@@ -33,20 +33,18 @@
typedef struct alsa_thread
{
snd_pcm_t *pcm;
bool nonblock;
bool is_paused;
bool has_float;
volatile bool thread_dead;
size_t buffer_size;
size_t period_size;
snd_pcm_uframes_t period_frames;
fifo_buffer_t *buffer;
sthread_t *worker_thread;
slock_t *fifo_lock;
scond_t *cond;
slock_t *cond_lock;
size_t buffer_size;
size_t period_size;
snd_pcm_uframes_t period_frames;
bool nonblock;
bool is_paused;
bool has_float;
volatile bool thread_dead;
} alsa_thread_t;
static void alsa_worker_thread(void *data)
@@ -175,10 +173,11 @@ static void *alsa_thread_init(const char *device,
TRY_ALSA(snd_pcm_open(&alsa->pcm, alsa_dev, SND_PCM_STREAM_PLAYBACK, 0));
TRY_ALSA(snd_pcm_hw_params_malloc(&params));
TRY_ALSA(snd_pcm_hw_params_any(alsa->pcm, params));
alsa->has_float = alsathread_find_float_format(alsa->pcm, params);
format = alsa->has_float ? SND_PCM_FORMAT_FLOAT : SND_PCM_FORMAT_S16;
TRY_ALSA(snd_pcm_hw_params_any(alsa->pcm, params));
TRY_ALSA(snd_pcm_hw_params_set_access(
alsa->pcm, params, SND_PCM_ACCESS_RW_INTERLEAVED));
TRY_ALSA(snd_pcm_hw_params_set_format(alsa->pcm, params, format));
+2 -2
View File
@@ -36,9 +36,9 @@ static void *audioio_init(const char *device, unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_out_rate)
{
int *fd = (int*)calloc(1, sizeof(int));
const char *audiodev = device ? device : DEFAULT_DEV;
struct audio_info info;
const char *audiodev = device ? device : DEFAULT_DEV;
int *fd = (int*)calloc(1, sizeof(int));
if (!fd)
return NULL;
+2 -4
View File
@@ -38,18 +38,16 @@ typedef struct coreaudio
{
slock_t *lock;
scond_t *cond;
#if (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__)))
ComponentInstance dev;
#else
AudioComponentInstance dev;
#endif
fifo_buffer_t *buffer;
size_t buffer_size;
bool dev_alive;
bool is_paused;
fifo_buffer_t *buffer;
bool nonblock;
size_t buffer_size;
} coreaudio_t;
#if TARGET_OS_IOS
+2 -1
View File
@@ -23,6 +23,7 @@
#include <memory.h>
#include "../../retroarch.h"
#include "../../verbosity.h"
#pragma mark - ringbuffer
@@ -30,9 +31,9 @@ typedef struct ringbuffer
{
float *buffer;
size_t cap;
atomic_int len;
size_t write_ptr;
size_t read_ptr;
atomic_int len;
} ringbuffer_t;
typedef ringbuffer_t * ringbuffer_h;
+4 -3
View File
@@ -23,8 +23,8 @@
typedef struct
{
bool nonblock;
bool playing;
uint64_t cpu_ticks_last;
int16_t* l;
int16_t* r;
@@ -34,7 +34,8 @@ typedef struct
uint32_t pos;
uint32_t playpos;
uint64_t cpu_ticks_last;
bool nonblock;
bool playing;
} ctr_csnd_audio_t;
#define CTR_CSND_AUDIO_COUNT (1u << 11u)
+12 -4
View File
@@ -22,12 +22,11 @@
typedef struct
{
ndspWaveBuf dsp_buf; /* TODO/FIXME - find out alignment */
int channel;
uint32_t pos;
bool nonblock;
bool playing;
int channel;
ndspWaveBuf dsp_buf;
uint32_t pos;
} ctr_dsp_audio_t;
#define CTR_DSP_AUDIO_COUNT (1u << 11u)
@@ -108,6 +107,15 @@ static ssize_t ctr_dsp_audio_write(void *data, const void *buf, size_t size)
{
do{
svcSleepThread(100000);
/* Run aptMainLoop to update APT state if DSP state
* changed, this prevents a hang on sleep. */
if(!aptMainLoop())
{
command_event(CMD_EVENT_QUIT, NULL);
return true;
}
sample_pos = ndspChnGetSamplePos(ctr->channel);
}while (((sample_pos - (ctr->pos + (size >>2))) & CTR_DSP_AUDIO_COUNT_MASK) > (CTR_DSP_AUDIO_COUNT >> 1)
|| (((ctr->pos - (CTR_DSP_AUDIO_COUNT >> 4) - sample_pos) & CTR_DSP_AUDIO_COUNT_MASK) > (CTR_DSP_AUDIO_COUNT >> 1)));
+339
View File
@@ -0,0 +1,339 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2020 - Justin Weiss
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <3ds.h>
#include <string.h>
#include <malloc.h>
#include <queues/fifo_queue.h>
#include <rthreads/rthreads.h>
#include "../../retroarch.h"
#include "../../ctr/ctr_debug.h"
typedef struct
{
fifo_buffer_t* fifo;
size_t fifo_size;
slock_t* fifo_lock;
scond_t* fifo_avail;
scond_t* fifo_done;
sthread_t* thread;
volatile bool running;
bool nonblocking;
bool playing;
retro_time_t frame_time;
int channel;
ndspWaveBuf dsp_buf;
uint32_t pos;
} ctr_dsp_thread_audio_t;
// PCM16 stereo
#define DSP_BYTES_TO_SAMPLES(bytes) (bytes / (2 * sizeof(uint16_t)))
#define DSP_SAMPLES_TO_BYTES(samples) (samples * 2 * sizeof(uint16_t))
static void ctr_dsp_audio_loop(void* data)
{
uint32_t pos, buf_pos;
ctr_dsp_thread_audio_t *ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr)
return;
while (1)
{
size_t buf_avail, avail, to_write;
slock_lock(ctr->fifo_lock);
do {
avail = FIFO_READ_AVAIL(ctr->fifo);
if (!avail) {
scond_wait(ctr->fifo_avail, ctr->fifo_lock);
}
} while (!avail && ctr->running);
slock_unlock(ctr->fifo_lock);
if (!ctr->running)
break;
pos = ctr->pos;
buf_pos = DSP_SAMPLES_TO_BYTES(ndspChnGetSamplePos(ctr->channel));
buf_avail = buf_pos >= pos ? buf_pos - pos : ctr->fifo_size - pos;
to_write = MIN(avail, buf_avail);
slock_lock(ctr->fifo_lock);
if (to_write > 0) {
fifo_read(ctr->fifo, ctr->dsp_buf.data_pcm8 + pos, to_write);
DSP_FlushDataCache(ctr->dsp_buf.data_pcm8 + pos, to_write);
scond_signal(ctr->fifo_done);
}
slock_unlock(ctr->fifo_lock);
if (buf_pos == pos) {
svcSleepThread(100000);
}
ctr->pos = (pos + to_write) % ctr->fifo_size;
}
}
static void ctr_dsp_thread_audio_free(void *data);
static void *ctr_dsp_thread_audio_init(const char *device, unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_rate)
{
ctr_dsp_thread_audio_t *ctr = NULL;
(void)device;
(void)rate;
if (ndspInit() < 0)
return NULL;
ctr = (ctr_dsp_thread_audio_t*)calloc(1, sizeof(ctr_dsp_thread_audio_t));
if (!ctr)
return NULL;
*new_rate = 32728;
ctr->running = true;
ctr->channel = 0;
ndspSetOutputMode(NDSP_OUTPUT_STEREO);
ndspSetClippingMode(NDSP_CLIP_SOFT); /* ?? */
ndspSetOutputCount(2);
ndspChnReset(ctr->channel);
ndspChnSetFormat(ctr->channel, NDSP_FORMAT_STEREO_PCM16);
ndspChnSetInterp(ctr->channel, NDSP_INTERP_NONE);
ndspChnSetRate(ctr->channel, 32728.0f);
ndspChnWaveBufClear(ctr->channel);
ctr->fifo_size = DSP_SAMPLES_TO_BYTES((*new_rate * MAX(latency, 8)) / 1000);
ctr->dsp_buf.data_pcm16 = linearAlloc(ctr->fifo_size);
memset(ctr->dsp_buf.data_pcm16, 0, ctr->fifo_size);
DSP_FlushDataCache(ctr->dsp_buf.data_pcm16, ctr->fifo_size);
ctr->dsp_buf.looping = true;
ctr->dsp_buf.nsamples = DSP_BYTES_TO_SAMPLES(ctr->fifo_size);
ndspChnWaveBufAdd(ctr->channel, &ctr->dsp_buf);
ctr->fifo = fifo_new(ctr->fifo_size);
if (!(ctr->fifo_lock = slock_new()) ||
!(ctr->fifo_avail = scond_new()) ||
!(ctr->fifo_done = scond_new()) ||
!(ctr->thread = sthread_create(ctr_dsp_audio_loop, ctr)))
{
RARCH_LOG("[Audio]: thread creation failed.\n");
ctr->running = false;
ctr_dsp_thread_audio_free(ctr);
return NULL;
}
ctr->pos = 0;
ctr->playing = true;
ctr->frame_time = (retro_time_t)roundf(1000000 * 4481134.0 / (*new_rate * 8192.0));
ndspSetMasterVol(1.0);
return ctr;
}
static void ctr_dsp_thread_audio_free(void *data)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr)
return;
if (ctr->running)
{
ctr->running = false;
scond_signal(ctr->fifo_avail);
}
if (ctr->thread)
sthread_join(ctr->thread);
scond_free(ctr->fifo_avail);
scond_free(ctr->fifo_done);
slock_free(ctr->fifo_lock);
if (ctr->fifo)
{
fifo_free(ctr->fifo);
ctr->fifo = NULL;
}
ndspChnWaveBufClear(ctr->channel);
linearFree(ctr->dsp_buf.data_pcm16);
free(ctr);
ndspExit();
ctr = NULL;
}
static ssize_t ctr_dsp_thread_audio_write(void *data, const void *buf, size_t size)
{
size_t avail, written;
ctr_dsp_thread_audio_t * ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr || !ctr->running)
return 0;
if (ctr->nonblocking)
{
slock_lock(ctr->fifo_lock);
avail = FIFO_WRITE_AVAIL(ctr->fifo);
written = MIN(avail, size);
if (written > 0)
{
fifo_write(ctr->fifo, buf, written);
scond_signal(ctr->fifo_avail);
}
slock_unlock(ctr->fifo_lock);
}
else
{
written = 0;
while (written < size && ctr->running)
{
slock_lock(ctr->fifo_lock);
avail = FIFO_WRITE_AVAIL(ctr->fifo);
if (avail == 0)
{
if (ctr->running)
{
/* Wait a maximum of one frame, skip the write if the thread is still busy */
if (!scond_wait_timeout(ctr->fifo_done, ctr->fifo_lock, ctr->frame_time)) {
slock_unlock(ctr->fifo_lock);
break;
}
}
slock_unlock(ctr->fifo_lock);
}
else
{
size_t write_amt = MIN(size - written, avail);
fifo_write(ctr->fifo, (const char*)buf + written, write_amt);
scond_signal(ctr->fifo_avail);
slock_unlock(ctr->fifo_lock);
written += write_amt;
}
}
}
return written;
}
static bool ctr_dsp_thread_audio_stop(void *data)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr)
return false;
ndspSetMasterVol(0.0);
ctr->playing = false;
return true;
}
static bool ctr_dsp_thread_audio_alive(void *data)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr)
return false;
return ctr->playing;
}
static bool ctr_dsp_thread_audio_start(void *data, bool is_shutdown)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
if (!ctr)
return false;
/* Prevents restarting audio when the menu
* is toggled off on shutdown */
if (is_shutdown)
return true;
ndspSetMasterVol(1.0);
ctr->playing = true;
return true;
}
static void ctr_dsp_thread_audio_set_nonblock_state(void *data, bool state)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
if (ctr)
ctr->nonblocking = state;
}
static bool ctr_dsp_thread_audio_use_float(void *data)
{
(void)data;
return false;
}
static size_t ctr_dsp_thread_audio_write_avail(void *data)
{
size_t val;
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
slock_lock(ctr->fifo_lock);
val = FIFO_WRITE_AVAIL(ctr->fifo);
slock_unlock(ctr->fifo_lock);
return val;
}
static size_t ctr_dsp_thread_audio_buffer_size(void *data)
{
ctr_dsp_thread_audio_t* ctr = (ctr_dsp_thread_audio_t*)data;
return ctr->fifo_size;
}
audio_driver_t audio_ctr_dsp_thread = {
ctr_dsp_thread_audio_init,
ctr_dsp_thread_audio_write,
ctr_dsp_thread_audio_stop,
ctr_dsp_thread_audio_start,
ctr_dsp_thread_audio_alive,
ctr_dsp_thread_audio_set_nonblock_state,
ctr_dsp_thread_audio_free,
ctr_dsp_thread_audio_use_float,
"dsp_thread",
NULL,
NULL,
ctr_dsp_thread_audio_write_avail,
ctr_dsp_thread_audio_buffer_size
};
+1 -3
View File
@@ -32,13 +32,11 @@
typedef struct
{
size_t write_ptr;
uint32_t data[BLOCKS][CHUNK_FRAMES];
volatile unsigned dma_busy;
volatile unsigned dma_next;
volatile unsigned dma_write;
size_t write_ptr;
bool nonblock;
bool is_paused;
} gx_audio_t;
+66 -70
View File
@@ -35,23 +35,44 @@ typedef struct jack
{
jack_client_t *client;
jack_port_t *ports[2];
jack_ringbuffer_t *buffer[2];
volatile bool shutdown;
bool nonblock;
bool is_paused;
jack_ringbuffer_t *buffer;
#ifdef HAVE_THREADS
scond_t *cond;
slock_t *cond_lock;
#endif
size_t buffer_size;
volatile bool shutdown;
bool nonblock;
bool is_paused;
} jack_t;
static size_t read_deinterleaved(float *dst[2], jack_nframes_t dst_offset,
jack_ringbuffer_data_t buf, jack_nframes_t nframes)
{
int i;
jack_nframes_t j, frames_avail;
const float *src = (const float *)buf.buf;
if (nframes <= 0)
return 0;
frames_avail = FRAMES(buf.len);
nframes = nframes < frames_avail ? nframes : frames_avail;
for (j = 0; j < nframes; j++)
for (i = 0; i < 2; i++)
dst[i][dst_offset + j] = *src++;
return nframes;
}
static int process_cb(jack_nframes_t nframes, void *data)
{
int i;
jack_nframes_t avail[2], min_avail;
jack_nframes_t read = 0;
jack_t *jd = (jack_t*)data;
jack_ringbuffer_data_t buf[2];
float *dst[2];
if (nframes <= 0)
{
@@ -61,23 +82,20 @@ static int process_cb(jack_nframes_t nframes, void *data)
return 0;
}
avail[0] = jack_ringbuffer_read_space(jd->buffer[0]);
avail[1] = jack_ringbuffer_read_space(jd->buffer[1]);
min_avail = ((avail[0] < avail[1]) ? avail[0] : avail[1]) / sizeof(jack_default_audio_sample_t);
for (i = 0; i < 2; i++)
dst[i] = (float *)jack_port_get_buffer(jd->ports[i], nframes);
if (min_avail > nframes)
min_avail = nframes;
jack_ringbuffer_get_read_vector(jd->buffer, buf);
for (i = 0; i < 2; i++)
{
jack_nframes_t f;
jack_default_audio_sample_t *out = (jack_default_audio_sample_t*)jack_port_get_buffer(jd->ports[i], nframes);
read += read_deinterleaved(dst, read, buf[i], nframes - read);
jack_ringbuffer_read(jd->buffer[i], (char*)out, min_avail * sizeof(jack_default_audio_sample_t));
jack_ringbuffer_read_advance(jd->buffer, read * sizeof(float) * 2);
for (; read < nframes; read++)
for (i = 0; i < 2; i++)
dst[i][read] = 0.0f;
for (f = min_avail; f < nframes; f++)
out[f] = 0.0f;
}
#ifdef HAVE_THREADS
scond_signal(jd->cond);
#endif
@@ -194,14 +212,12 @@ static void *ja_init(const char *device,
jd->buffer_size = bufsize;
RARCH_LOG("[JACK]: Internal buffer size: %d frames.\n", (int)(bufsize / sizeof(jack_default_audio_sample_t)));
for (i = 0; i < 2; i++)
jd->buffer = jack_ringbuffer_create(bufsize);
if (!jd->buffer)
{
jd->buffer[i] = jack_ringbuffer_create(bufsize);
if (!jd->buffer[i])
{
RARCH_ERR("[JACK]: Failed to create buffers.\n");
goto error;
}
RARCH_ERR("[JACK]: Failed to create buffers.\n");
goto error;
}
parsed = parse_ports(dest_ports, jports);
@@ -236,65 +252,46 @@ error:
return NULL;
}
static size_t write_buffer(jack_t *jd, const float *buf, size_t size)
static ssize_t ja_write(void *data, const void *buf_, size_t size)
{
int i;
size_t j, written = 0;
jack_default_audio_sample_t out_deinterleaved_buffer[2][AUDIO_CHUNK_SIZE_NONBLOCKING * AUDIO_MAX_RATIO];
size_t frames = FRAMES(size);
jack_t *jd = (jack_t*)data;
const char *buf = (const char *)buf_;
size_t written = 0;
/* Avoid buffer overflow if a DSP plugin generated a huge number of frames. */
if (frames > AUDIO_CHUNK_SIZE_NONBLOCKING * AUDIO_MAX_RATIO)
frames = AUDIO_CHUNK_SIZE_NONBLOCKING * AUDIO_MAX_RATIO;
for (i = 0; i < 2; i++)
for (j = 0; j < frames; j++)
out_deinterleaved_buffer[i][j] = buf[j * 2 + i];
while (written < frames)
while (size > 0)
{
size_t avail[2], min_avail, write_frames;
size_t avail, to_write;
if (jd->shutdown)
return 0;
avail[0] = jack_ringbuffer_write_space(jd->buffer[0]);
avail[1] = jack_ringbuffer_write_space(jd->buffer[1]);
avail = jack_ringbuffer_write_space(jd->buffer);
min_avail = avail[0] < avail[1] ? avail[0] : avail[1];
min_avail /= sizeof(float);
to_write = size < avail ? size : avail;
/* make sure to only write multiples of the sample size */
to_write = (to_write / sizeof(float)) * sizeof(float);
write_frames = frames - written > min_avail ? min_avail : frames - written;
if (write_frames > 0)
if (to_write > 0)
{
for (i = 0; i < 2; i++)
{
jack_ringbuffer_write(jd->buffer[i], (const char*)&out_deinterleaved_buffer[i][written],
write_frames * sizeof(jack_default_audio_sample_t));
}
written += write_frames;
jack_ringbuffer_write(jd->buffer, buf, to_write);
buf += to_write;
size -= to_write;
written += to_write;
}
#ifdef HAVE_THREADS
else
else if (!jd->nonblock)
{
#ifdef HAVE_THREADS
slock_lock(jd->cond_lock);
scond_wait(jd->cond, jd->cond_lock);
slock_unlock(jd->cond_lock);
}
#endif
if (jd->nonblock)
continue;
}
else
break;
}
return written * sizeof(float) * 2;
}
static ssize_t ja_write(void *data, const void *buf, size_t size)
{
jack_t *jd = (jack_t*)data;
return write_buffer(jd, (const float*)buf, size);
return written;
}
static bool ja_stop(void *data)
@@ -341,9 +338,8 @@ static void ja_free(void *data)
jack_client_close(jd->client);
}
for (i = 0; i < 2; i++)
if (jd->buffer[i])
jack_ringbuffer_free(jd->buffer[i]);
if (jd->buffer)
jack_ringbuffer_free(jd->buffer);
#ifdef HAVE_THREADS
if (jd->cond_lock)
@@ -363,7 +359,7 @@ static bool ja_use_float(void *data)
static size_t ja_write_avail(void *data)
{
jack_t *jd = (jack_t*)data;
return jack_ringbuffer_write_space(jd->buffer[0]);
return jack_ringbuffer_write_space(jd->buffer);
}
static size_t ja_buffer_size(void *data)
+6 -9
View File
@@ -43,17 +43,14 @@ typedef struct al
ALuint source;
ALuint *buffers;
ALuint *res_buf;
size_t res_ptr;
ALenum format;
size_t num_buffers;
int rate;
uint8_t tmpbuf[BUFSIZE];
size_t tmpbuf_ptr;
ALCdevice *handle;
ALCcontext *ctx;
size_t res_ptr;
size_t num_buffers;
size_t tmpbuf_ptr;
int rate;
ALenum format;
uint8_t tmpbuf[BUFSIZE];
bool nonblock;
bool is_paused;
} al_t;
+5 -5
View File
@@ -37,9 +37,6 @@ typedef struct sl
{
uint8_t **buffer;
uint8_t *buffer_chunk;
unsigned buffer_index;
unsigned buffer_ptr;
volatile unsigned buffered_blocks;
SLObjectItf engine_object;
SLEngineItf engine;
@@ -51,10 +48,13 @@ typedef struct sl
slock_t *lock;
scond_t *cond;
bool nonblock;
bool is_paused;
unsigned buf_size;
unsigned buf_count;
unsigned buffer_index;
unsigned buffer_ptr;
volatile unsigned buffered_blocks;
bool nonblock;
bool is_paused;
} sl_t;
static void opensl_callback(SLAndroidSimpleBufferQueueItf bq, void *ctx)
+44 -34
View File
@@ -42,22 +42,27 @@
#define DEFAULT_OSS_DEV "/dev/dsp"
#endif
static bool oss_is_paused = false;
typedef struct oss_audio
{
int fd;
bool is_paused;
} oss_audio_t;
static void *oss_init(const char *device, unsigned rate, unsigned latency,
static void *oss_init(const char *device,
unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_out_rate)
{
int frags, frag, channels, format, new_rate;
int *fd = (int*)calloc(1, sizeof(int));
oss_audio_t *ossaudio = (oss_audio_t*)calloc(1, sizeof(oss_audio_t));
const char *oss_device = device ? device : DEFAULT_OSS_DEV;
if (!fd)
if (!ossaudio)
return NULL;
if ((*fd = open(oss_device, O_WRONLY)) < 0)
if ((ossaudio->fd = open(oss_device, O_WRONLY)) < 0)
{
free(fd);
free(ossaudio);
perror("open");
return NULL;
}
@@ -65,21 +70,21 @@ static void *oss_init(const char *device, unsigned rate, unsigned latency,
frags = (latency * rate * 4) / (1000 * (1 << 10));
frag = (frags << 16) | 10;
if (ioctl(*fd, SNDCTL_DSP_SETFRAGMENT, &frag) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_SETFRAGMENT, &frag) < 0)
RARCH_WARN("Cannot set fragment sizes. Latency might not be as expected ...\n");
channels = 2;
format = is_little_endian() ? AFMT_S16_LE : AFMT_S16_BE;
if (ioctl(*fd, SNDCTL_DSP_CHANNELS, &channels) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_CHANNELS, &channels) < 0)
goto error;
if (ioctl(*fd, SNDCTL_DSP_SETFMT, &format) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_SETFMT, &format) < 0)
goto error;
new_rate = rate;
if (ioctl(*fd, SNDCTL_DSP_SPEED, &new_rate) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_SPEED, &new_rate) < 0)
goto error;
if (new_rate != (int)rate)
@@ -88,11 +93,12 @@ static void *oss_init(const char *device, unsigned rate, unsigned latency,
*new_out_rate = new_rate;
}
return fd;
return ossaudio;
error:
close(*fd);
free(fd);
close(ossaudio->fd);
if (ossaudio)
free(ossaudio);
perror("ioctl");
return NULL;
}
@@ -100,14 +106,14 @@ error:
static ssize_t oss_write(void *data, const void *buf, size_t size)
{
ssize_t ret;
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (size == 0)
return 0;
if ((ret = write(*fd, buf, size)) < 0)
if ((ret = write(ossaudio->fd, buf, size)) < 0)
{
if (errno == EAGAIN && (fcntl(*fd, F_GETFL) & O_NONBLOCK))
if (errno == EAGAIN && (fcntl(ossaudio->fd, F_GETFL) & O_NONBLOCK))
return 0;
return -1;
@@ -118,58 +124,62 @@ static ssize_t oss_write(void *data, const void *buf, size_t size)
static bool oss_stop(void *data)
{
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (ioctl(*fd, SNDCTL_DSP_RESET, 0) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_RESET, 0) < 0)
return false;
oss_is_paused = true;
ossaudio->is_paused = true;
return true;
}
static bool oss_start(void *data, bool is_shutdown)
{
(void)data;
oss_is_paused = false;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (!ossaudio)
return false;
ossaudio->is_paused = false;
return true;
}
static bool oss_alive(void *data)
{
(void)data;
return !oss_is_paused;
oss_audio_t *ossaudio = (oss_audio_t*)data;
return !ossaudio->is_paused;
}
static void oss_set_nonblock_state(void *data, bool state)
{
int rc;
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (state)
rc = fcntl(*fd, F_SETFL, fcntl(*fd, F_GETFL) | O_NONBLOCK);
rc = fcntl(ossaudio->fd, F_SETFL,
fcntl(ossaudio->fd, F_GETFL) | O_NONBLOCK);
else
rc = fcntl(*fd, F_SETFL, fcntl(*fd, F_GETFL) & (~O_NONBLOCK));
rc = fcntl(ossaudio->fd, F_SETFL,
fcntl(ossaudio->fd, F_GETFL) & (~O_NONBLOCK));
if (rc != 0)
RARCH_WARN("Could not set nonblocking on OSS file descriptor. Will not be able to fast-forward.\n");
}
static void oss_free(void *data)
{
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (ioctl(*fd, SNDCTL_DSP_RESET, 0) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_RESET, 0) < 0)
return;
close(*fd);
free(fd);
close(ossaudio->fd);
free(data);
}
static size_t oss_write_avail(void *data)
{
audio_buf_info info;
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (ioctl(*fd, SNDCTL_DSP_GETOSPACE, &info) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_GETOSPACE, &info) < 0)
{
RARCH_ERR("[OSS]: SNDCTL_DSP_GETOSPACE failed ...\n");
return 0;
@@ -181,9 +191,9 @@ static size_t oss_write_avail(void *data)
static size_t oss_buffer_size(void *data)
{
audio_buf_info info;
int *fd = (int*)data;
oss_audio_t *ossaudio = (oss_audio_t*)data;
if (ioctl(*fd, SNDCTL_DSP_GETOSPACE, &info) < 0)
if (ioctl(ossaudio->fd, SNDCTL_DSP_GETOSPACE, &info) < 0)
{
RARCH_ERR("[OSS]: SNDCTL_DSP_GETOSPACE failed ...\n");
return 1; /* Return something non-zero to avoid SIGFPE. */
+1 -11
View File
@@ -15,7 +15,6 @@
#include <stdint.h>
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <kernel.h>
@@ -32,26 +31,17 @@ typedef struct ps2_audio
/* TODO/FIXME - nonblock is not implemented */
bool nonblock;
bool running;
} ps2_audio_t;
static void audioConfigure(ps2_audio_t *ps2, unsigned rate)
{
int err;
struct audsrv_fmt_t format;
format.bits = AUDIO_BITS;
format.freq = rate;
format.channels = AUDIO_CHANNELS;
err = audsrv_set_format(&format);
if (err)
{
printf("set format returned %d\n", err);
printf("audsrv returned error string: %s\n", audsrv_get_error_string());
}
audsrv_set_format(&format);
audsrv_set_volume(MAX_VOLUME);
}
+67 -72
View File
@@ -28,52 +28,52 @@
typedef struct
{
uint32_t audio_port;
bool nonblock;
bool started;
volatile bool quit_thread;
fifo_buffer_t *buffer;
sys_ppu_thread_t thread;
sys_lwmutex_t lock;
sys_lwmutex_t cond_lock;
sys_lwcond_t cond;
uint32_t audio_port;
bool nonblock;
bool started;
volatile bool quit_thread;
} ps3_audio_t;
#ifdef __PSL1GHT__
static void event_loop(void *data)
#else
static void event_loop(uint64_t data)
#endif
{
float out_tmp[CELL_AUDIO_BLOCK_SAMPLES * AUDIO_CHANNELS]
float out_tmp[AUDIO_BLOCK_SAMPLES * AUDIO_CHANNELS]
__attribute__((aligned(16)));
sys_event_queue_t id;
sys_ipc_key_t key;
sys_event_t event;
ps3_audio_t *aud = (ps3_audio_t*)(uintptr_t)data;
cellAudioCreateNotifyEventQueue(&id, &key);
cellAudioSetNotifyEventQueue(key);
audioCreateNotifyEventQueue(&id, &key);
audioSetNotifyEventQueue(key);
while (!aud->quit_thread)
{
sys_event_queue_receive(id, &event, SYS_NO_TIMEOUT);
sysEventQueueReceive(id, &event, PS3_SYS_NO_TIMEOUT);
sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
sysLwMutexLock(&aud->lock, PS3_SYS_NO_TIMEOUT);
if (FIFO_READ_AVAIL(aud->buffer) >= sizeof(out_tmp))
fifo_read(aud->buffer, out_tmp, sizeof(out_tmp));
else
memset(out_tmp, 0, sizeof(out_tmp));
sys_lwmutex_unlock(&aud->lock);
sys_lwcond_signal(&aud->cond);
sysLwMutexUnlock(&aud->lock);
sysLwCondSignal(&aud->cond);
cellAudioAddData(aud->audio_port, out_tmp,
CELL_AUDIO_BLOCK_SAMPLES, 1.0);
audioAddData(aud->audio_port, out_tmp,
AUDIO_BLOCK_SAMPLES, 1.0);
}
cellAudioRemoveNotifyEventQueue(key);
sys_ppu_thread_exit(0);
audioRemoveNotifyEventQueue(key);
sysThreadExit(0);
}
static void *ps3_audio_init(const char *device,
@@ -81,67 +81,63 @@ static void *ps3_audio_init(const char *device,
unsigned block_frames,
unsigned *new_rate)
{
CellAudioPortParam params;
ps3_audio_t *data = calloc(1, sizeof(*data));
if (!data)
return NULL;
(void)latency;
(void)device;
(void)rate;
cellAudioInit();
params.numChannels = AUDIO_CHANNELS;
params.numBlocks = AUDIO_BLOCKS;
#if 0
#ifdef HAVE_HEADSET
if(global->console.sound.mode == SOUND_MODE_HEADSET)
params.param_attrib = CELL_AUDIO_PORTATTR_OUT_SECONDARY;
else
#endif
#endif
params.param_attrib = 0;
if (cellAudioPortOpen(&params, &data->audio_port) != CELL_OK)
{
cellAudioQuit();
free(data);
return NULL;
}
data->buffer = fifo_new(CELL_AUDIO_BLOCK_SAMPLES *
AUDIO_CHANNELS * AUDIO_BLOCKS * sizeof(float));
audioPortParam params;
ps3_audio_t *data = NULL;
#ifdef __PSL1GHT__
sys_lwmutex_attr_t lock_attr =
sys_lwmutex_attr_t lock_attr =
{SYS_LWMUTEX_ATTR_PROTOCOL, SYS_LWMUTEX_ATTR_RECURSIVE, "\0"};
sys_lwmutex_attr_t cond_lock_attr =
{SYS_LWMUTEX_ATTR_PROTOCOL, SYS_LWMUTEX_ATTR_RECURSIVE, "\0"};
sys_lwcond_attribute_t cond_attr = {"\0"};
sys_lwcond_attr_t cond_attr = {"\0"};
#else
sys_lwmutex_attribute_t lock_attr;
sys_lwmutex_attribute_t cond_lock_attr;
sys_lwcond_attribute_t cond_attr;
sys_lwmutex_attr_t lock_attr;
sys_lwmutex_attr_t cond_lock_attr;
sys_lwcond_attr_t cond_attr;
sys_lwmutex_attribute_initialize(lock_attr);
sys_lwmutex_attribute_initialize(cond_lock_attr);
sys_lwcond_attribute_initialize(cond_attr);
#endif
sys_lwmutex_create(&data->lock, &lock_attr);
sys_lwmutex_create(&data->cond_lock, &cond_lock_attr);
sys_lwcond_create(&data->cond, &data->cond_lock, &cond_attr);
data = calloc(1, sizeof(*data));
if (!data)
return NULL;
cellAudioPortStart(data->audio_port);
audioInit();
params.numChannels = AUDIO_CHANNELS;
params.numBlocks = AUDIO_BLOCKS;
params.param_attrib = 0;
#if 0
#ifdef HAVE_HEADSET
if(global->console.sound.mode == SOUND_MODE_HEADSET)
params.param_attrib = CELL_AUDIO_PORTATTR_OUT_SECONDARY;
#endif
#endif
if (audioPortOpen(&params, &data->audio_port) != CELL_OK)
{
audioQuit();
free(data);
return NULL;
}
data->buffer = fifo_new(AUDIO_BLOCK_SAMPLES *
AUDIO_CHANNELS * AUDIO_BLOCKS * sizeof(float));
sysLwMutexCreate(&data->lock, &lock_attr);
sysLwMutexCreate(&data->cond_lock, &cond_lock_attr);
sysLwCondCreate(&data->cond, &data->cond_lock, &cond_attr);
audioPortStart(data->audio_port);
data->started = true;
sys_ppu_thread_create(&data->thread, event_loop,
sysThreadCreate(&data->thread, event_loop,
#ifdef __PSL1GHT__
data,
#else
(uint64_t)data,
#endif
1500, 0x1000, SYS_PPU_THREAD_CREATE_JOINABLE, (char*)"sound");
1500, 0x1000, SYS_THREAD_CREATE_JOINABLE, (char*)"sound");
return data;
}
@@ -157,11 +153,11 @@ static ssize_t ps3_audio_write(void *data, const void *buf, size_t size)
}
while (FIFO_WRITE_AVAIL(aud->buffer) < size)
sys_lwcond_wait(&aud->cond, 0);
sysLwCondWait(&aud->cond, 0);
sys_lwmutex_lock(&aud->lock, SYS_NO_TIMEOUT);
sysLwMutexLock(&aud->lock, PS3_SYS_NO_TIMEOUT);
fifo_write(aud->buffer, buf, size);
sys_lwmutex_unlock(&aud->lock);
sysLwMutexUnlock(&aud->lock);
return size;
}
@@ -171,7 +167,7 @@ static bool ps3_audio_stop(void *data)
ps3_audio_t *aud = data;
if (aud->started)
{
cellAudioPortStop(aud->audio_port);
audioPortStop(aud->audio_port);
aud->started = false;
}
return true;
@@ -182,7 +178,7 @@ static bool ps3_audio_start(void *data, bool is_shutdown)
ps3_audio_t *aud = data;
if (!aud->started)
{
cellAudioPortStart(aud->audio_port);
audioPortStart(aud->audio_port);
aud->started = true;
}
return true;
@@ -210,29 +206,28 @@ static void ps3_audio_free(void *data)
aud->quit_thread = true;
ps3_audio_start(aud, false);
sys_ppu_thread_join(aud->thread, &val);
sysThreadJoin(aud->thread, &val);
ps3_audio_stop(aud);
cellAudioPortClose(aud->audio_port);
cellAudioQuit();
audioPortClose(aud->audio_port);
audioQuit();
fifo_free(aud->buffer);
sys_lwmutex_destroy(&aud->lock);
sys_lwmutex_destroy(&aud->cond_lock);
sys_lwcond_destroy(&aud->cond);
sysLwMutexDestroy(&aud->lock);
sysLwMutexDestroy(&aud->cond_lock);
sysLwCondDestroy(&aud->cond);
free(data);
}
static bool ps3_audio_use_float(void *data)
{
(void)data;
return true;
}
static size_t ps3_audio_write_avail(void *data)
{
(void)data;
/* TODO/FIXME - implement? */
return 0;
}
+9 -9
View File
@@ -44,23 +44,23 @@
typedef struct psp_audio
{
bool nonblock;
uint32_t* buffer;
uint32_t* zeroBuffer;
SceUID thread;
int rate;
volatile bool running;
volatile uint16_t read_pos;
volatile uint16_t write_pos;
sthread_t *worker_thread;
slock_t *fifo_lock;
scond_t *cond;
slock_t *cond_lock;
SceUID thread;
int rate;
volatile uint16_t read_pos;
volatile uint16_t write_pos;
volatile bool running;
bool nonblock;
} psp_audio_t;
#define AUDIO_OUT_COUNT 512u
+5 -5
View File
@@ -27,14 +27,14 @@
typedef struct rsd
{
rsound_t *rd;
fifo_buffer_t *buffer;
slock_t *cond_lock;
scond_t *cond;
bool nonblock;
bool is_paused;
volatile bool has_error;
fifo_buffer_t *buffer;
slock_t *cond_lock;
scond_t *cond;
} rsd_t;
static ssize_t rsound_audio_cb(void *data, size_t bytes, void *userdata)
+26 -33
View File
@@ -30,76 +30,69 @@ void RWebAudioSetNonblockState(bool state);
void RWebAudioFree(void);
size_t RWebAudioWriteAvail(void);
size_t RWebAudioBufferSize(void);
static bool rwebaudio_is_paused;
typedef struct rweb_audio
{
bool is_paused;
} rweb_audio_t;
static void rwebaudio_free(void *data)
{
RWebAudioFree();
free(data);
}
static void *rwebaudio_init(const char *device, unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_rate)
{
void *data = RWebAudioInit(latency);
(void)device;
(void)rate;
if (data)
rweb_audio_t *rwebaudio = (rweb_audio_t*)calloc(1, sizeof(rweb_audio_t));
if (!rwebaudio)
return NULL;
if (RWebAudioInit(latency) == 1)
*new_rate = RWebAudioSampleRate();
return data;
return rwebaudio;
}
static ssize_t rwebaudio_write(void *data, const void *buf, size_t size)
{
(void)data;
return RWebAudioWrite(buf, size);
}
static bool rwebaudio_stop(void *data)
{
(void)data;
rwebaudio_is_paused = true;
rweb_audio_t *rwebaudio = (rweb_audio_t*)data;
if (!rwebaudio)
return false;
rwebaudio->is_paused = true;
return RWebAudioStop();
}
static void rwebaudio_set_nonblock_state(void *data, bool state)
{
(void)data;
RWebAudioSetNonblockState(state);
}
static bool rwebaudio_alive(void *data)
{
(void)data;
return !rwebaudio_is_paused;
rweb_audio_t *rwebaudio = (rweb_audio_t*)data;
if (!rwebaudio)
return false;
return !rwebaudio->is_paused;
}
static bool rwebaudio_start(void *data, bool is_shutdown)
{
(void)data;
rwebaudio_is_paused = false;
rweb_audio_t *rwebaudio = (rweb_audio_t*)data;
if (!rwebaudio)
return false;
rwebaudio->is_paused = false;
return RWebAudioStart();
}
static size_t rwebaudio_write_avail(void *data)
{
(void)data;
return RWebAudioWriteAvail();
}
static size_t rwebaudio_buffer_size(void *data)
{
(void)data;
return RWebAudioBufferSize();
}
static bool rwebaudio_use_float(void *data)
{
(void)data;
return true;
}
static size_t rwebaudio_write_avail(void *data) {return RWebAudioWriteAvail();}
static size_t rwebaudio_buffer_size(void *data) {return RWebAudioBufferSize();}
static bool rwebaudio_use_float(void *data) { return true; }
audio_driver_t audio_rwebaudio = {
rwebaudio_init,
+13 -10
View File
@@ -33,14 +33,13 @@
typedef struct sdl_audio
{
bool nonblock;
bool is_paused;
#ifdef HAVE_THREADS
slock_t *lock;
scond_t *cond;
#endif
fifo_buffer_t *buffer;
bool nonblock;
bool is_paused;
} sdl_audio_t;
static void sdl_audio_cb(void *data, Uint8 *stream, int len)
@@ -75,19 +74,24 @@ static void *sdl_audio_init(const char *device,
int frames;
size_t bufsize;
SDL_AudioSpec out;
SDL_AudioSpec spec = {0};
void *tmp = NULL;
sdl_audio_t *sdl = NULL;
SDL_AudioSpec spec = {0};
void *tmp = NULL;
sdl_audio_t *sdl = NULL;
uint32_t sdl_subsystem_flags = SDL_WasInit(0);
(void)device;
if (SDL_WasInit(0) == 0)
/* Initialise audio subsystem, if required */
if (sdl_subsystem_flags == 0)
{
if (SDL_Init(SDL_INIT_AUDIO) < 0)
return NULL;
}
else if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
return NULL;
else if ((sdl_subsystem_flags & SDL_INIT_AUDIO) == 0)
{
if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
return NULL;
}
sdl = (sdl_audio_t*)calloc(1, sizeof(*sdl));
if (!sdl)
@@ -228,7 +232,6 @@ static void sdl_audio_free(void *data)
sdl_audio_t *sdl = (sdl_audio_t*)data;
SDL_CloseAudio();
SDL_QuitSubSystem(SDL_INIT_AUDIO);
if (sdl)
{
+1 -1
View File
@@ -86,7 +86,7 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size)
uint32_t num;
if (switch_audio_ipc_output_get_released_buffer(swa, num) != 0)
{
RARCH_LOG("Failed to get released buffer?\n");
RARCH_ERR("[Audio]: Failed to get released buffer?\n");
return -1;
}
+9 -12
View File
@@ -1208,21 +1208,18 @@ static int pcm_mmap_begin(struct pcm *pcm, void **areas, unsigned int *offset,
static int pcm_mmap_commit(struct pcm *pcm, unsigned int offset, unsigned int frames)
{
int ret;
int ret;
/* not used */
(void) offset;
/* not used */
(void) offset;
/* update the application pointer in userspace and kernel */
pcm_mmap_appl_forward(pcm, frames);
ret = pcm_sync_ptr(pcm, 0);
if (ret != 0)
{
printf("%d\n", ret);
return ret;
}
/* update the application pointer in userspace and kernel */
pcm_mmap_appl_forward(pcm, frames);
ret = pcm_sync_ptr(pcm, 0);
if (ret != 0)
return ret;
return frames;
return frames;
}
static void pcm_mmap_appl_forward(struct pcm *pcm, int frames)
+5 -5
View File
@@ -28,16 +28,16 @@
typedef struct
{
bool exclusive;
bool nonblock;
bool running;
size_t frame_size; /* 4 or 8 only */
size_t engine_buffer_size;
HANDLE write_event;
IMMDevice *device;
IAudioClient *client;
IAudioRenderClient *renderer;
fifo_buffer_t *buffer; /* NULL in unbuffered shared mode */
size_t frame_size; /* 4 or 8 only */
size_t engine_buffer_size;
bool exclusive;
bool nonblock;
bool running;
} wasapi_t;
static IMMDevice *wasapi_init_device(const char *id)
+2 -3
View File
@@ -31,11 +31,10 @@ typedef struct
AXMVoice* mvoice;
uint16_t* buffer_l;
uint16_t* buffer_r;
bool nonblock;
OSSpinLock spinlock;
uint32_t pos;
uint32_t written;
OSSpinLock spinlock;
bool nonblock;
} ax_audio_t;
/* 3072 samples main buffer, 64ms total */
+30 -16
View File
@@ -60,9 +60,9 @@ typedef struct xaudio2 xaudio2_t;
typedef struct
{
xaudio2_t *xa;
size_t bufsize;
bool nonblock;
bool is_paused;
size_t bufsize;
} xa_t;
/* Forward declarations */
@@ -180,6 +180,10 @@ static void xaudio2_free(xaudio2_t *handle)
#else
free(handle);
#endif
#if !defined(_XBOX) && !defined(__WINRT__)
CoUninitialize();
#endif
}
static xaudio2_t *xaudio2_new(unsigned samplerate, unsigned channels,
@@ -188,16 +192,28 @@ static xaudio2_t *xaudio2_new(unsigned samplerate, unsigned channels,
int32_t idx_found = -1;
WAVEFORMATEX wfx = {0};
struct string_list *list = NULL;
xaudio2_t *handle = NULL;
#if !defined(_XBOX) && !defined(__WINRT__)
if (FAILED(CoInitialize(NULL)))
goto error;
#endif
#if defined(__cplusplus) && !defined(CINTERFACE)
xaudio2_t *handle = new xaudio2;
handle = new xaudio2;
#else
xaudio2_t *handle = (xaudio2_t*)calloc(1, sizeof(*handle));
handle = (xaudio2_t*)calloc(1, sizeof(*handle));
#endif
if (!handle)
{
#if !defined(_XBOX) && !defined(__WINRT__)
CoUninitialize();
#endif
goto error;
}
list = (struct string_list*)xa_list_new(NULL);
list = (struct string_list*)xa_list_new(NULL);
#if !defined(__cplusplus) || defined(CINTERFACE)
handle->lpVtbl = &voice_vtable;
@@ -296,34 +312,34 @@ static void *xa_init(const char *device, unsigned rate, unsigned latency,
unsigned *new_rate)
{
size_t bufsize;
xa_t *xa = (xa_t*)calloc(1, sizeof(*xa));
xa_t *xa = (xa_t*)calloc(1, sizeof(*xa));
if (!xa)
return NULL;
if (latency < 8)
latency = 8; /* Do not allow shenanigans. */
bufsize = latency * rate / 1000;
RARCH_LOG("[XAudio2]: Requesting %u ms latency, using %d ms latency.\n",
latency, (int)bufsize * 1000 / rate);
latency = 8; /* Do not allow shenanigans. */
bufsize = latency * rate / 1000;
xa->bufsize = bufsize * 2 * sizeof(float);
xa->xa = xaudio2_new(rate, 2, xa->bufsize, device);
if (!xa->xa)
{
RARCH_ERR("Failed to init XAudio2.\n");
RARCH_ERR("[XAudio2] Failed to init driver.\n");
free(xa);
return NULL;
}
RARCH_LOG("[XAudio2]: Requesting %u ms latency, using %d ms latency.\n",
latency, (int)bufsize * 1000 / rate);
return xa;
}
static ssize_t xa_write(void *data, const void *buf, size_t size)
{
unsigned bytes;
unsigned bytes = size;
xa_t *xa = (xa_t*)data;
xaudio2_t *handle = xa->xa;
const uint8_t *buffer = (const uint8_t*)buf;
@@ -335,11 +351,9 @@ static ssize_t xa_write(void *data, const void *buf, size_t size)
if (avail == 0)
return 0;
if (avail < size)
size = avail;
bytes = size = avail;
}
bytes = size;
while (bytes)
{
unsigned need = MIN(bytes, handle->bufsize - handle->bufptr);
+11 -6
View File
@@ -29,6 +29,12 @@
#include <audio/audio_resampler.h>
#if (defined(__ARM_NEON__) && !defined(DONT_WANT_ARM_OPTIMIZATIONS)) || defined(HAVE_NEON)
#ifndef HAVE_ARM_NEON_OPTIMIZATIONS
#define HAVE_ARM_NEON_OPTIMIZATIONS
#endif
#endif
/* Since SSE and NEON don't provide support for trigonometric functions
* we approximate those with polynoms
*
@@ -49,10 +55,9 @@
typedef struct rarch_CC_resampler
{
audio_frame_float_t buffer[4];
float distance;
void (*process)(void *re, struct resampler_data *data);
audio_frame_float_t buffer[4];
float distance;
} rarch_CC_resampler_t;
#ifdef _MIPS_ARCH_ALLEGREX
@@ -345,7 +350,7 @@ static void resampler_CC_upsample(void *re_, struct resampler_data *data)
data->output_frames = outp - (audio_frame_float_t*)data->data_out;
}
#elif defined (__ARM_NEON__) && !defined(DONT_WANT_ARM_OPTIMIZATIONS)
#elif defined(HAVE_ARM_NEON_OPTIMIZATIONS)
#define CC_RESAMPLER_IDENT "NEON"
@@ -357,13 +362,13 @@ size_t resampler_CC_upsample_neon (float *outp, const float *inp,
static void resampler_CC_downsample(void *re_, struct resampler_data *data)
{
data->output_frames = resampler_CC_downsample_neon(
data->data_out, data->data_in, re_, data->input_frames, data->ratio);
data->data_out, data->data_in, (struct rarch_CC_resampler*)re_, data->input_frames, data->ratio);
}
static void resampler_CC_upsample(void *re_, struct resampler_data *data)
{
data->output_frames = resampler_CC_upsample_neon(
data->data_out, data->data_in, re_, data->input_frames, data->ratio);
data->data_out, data->data_in, (struct rarch_CC_resampler*)re_, data->input_frames, data->ratio);
}
#else
+31 -22
View File
@@ -31,16 +31,21 @@
#include "drivers/rsound.h"
#if defined(__CELLOS_LV2__)
#ifdef __PS3__
#ifdef __PSL1GHT__
#include <sysmodule/sysmodule.h>
#include <sys/systime.h>
#include <net/net.h>
#else
#include <cell/sysmodule.h>
#include <sys/timer.h>
#include <sys/sys_time.h>
/* Network headers */
#include <netex/net.h>
#include <netex/errno.h>
#define NETWORK_COMPAT_HEADERS 1
#elif defined(GEKKO)
#endif
#endif
#if defined(GEKKO)
#include <network.h>
#else
#define NETWORK_COMPAT_HEADERS 1
@@ -52,8 +57,12 @@
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#ifdef __CELLOS_LV2__
#ifdef __PS3__
#ifdef __PSL1GHT__
#include <net/poll.h>
#else
#include <sys/poll.h>
#endif
#else
#include <poll.h>
#endif
@@ -107,7 +116,7 @@ enum rsd_conn_type
#define RSD_ERR(fmt, args...)
#define RSD_DEBUG(fmt, args...)
#if defined(__CELLOS_LV2__)
#if defined(__PS3__)
static int init_count = 0;
#define pollfd_fd(x) x.fd
#define net_send(a,b,c,d) send(a,b,c,d)
@@ -254,7 +263,7 @@ static int rsnd_connect_server( rsound_t *rd )
/* Uses non-blocking IO since it performed more deterministic with poll()/send() */
#ifdef __CELLOS_LV2__
#ifdef __PS3__
setsockopt(rd->conn.socket, SOL_SOCKET, SO_NBIO, &i, sizeof(int));
setsockopt(rd->conn.ctl_socket, SOL_SOCKET, SO_NBIO, &i, sizeof(int));
#else
@@ -700,11 +709,11 @@ static ssize_t rsnd_recv_chunk(int socket, void *buf, size_t size, int blocking)
static int rsnd_poll(struct pollfd *fd, int numfd, int timeout)
{
for(;;)
for (;;)
{
if ( socketpoll(fd, numfd, timeout) < 0 )
if (socketpoll(fd, numfd, timeout) < 0)
{
if ( errno == EINTR )
if (errno == EINTR)
continue;
perror("poll");
@@ -725,8 +734,8 @@ static int64_t rsnd_get_time_usec(void)
if (!QueryPerformanceCounter(&count))
return 0;
return count.QuadPart * 1000000 / freq.QuadPart;
#elif defined(__CELLOS_LV2__)
return sys_time_get_system_time();
#elif defined(__PS3__)
return sysGetSystemTime();
#elif defined(GEKKO)
return ticks_to_microsecs(gettime());
#elif defined(__MACH__) // OSX doesn't have clock_gettime ...
@@ -938,15 +947,15 @@ static int rsnd_close_ctl(rsound_t *rd)
int index = 0;
char buf[RSD_PROTO_MAXSIZE*2] = {0};
for(;;)
for (;;)
{
if ( rsnd_poll(&fd, 1, 2000) < 0 )
if (rsnd_poll(&fd, 1, 2000) < 0)
return -1;
if ( fd.revents & POLLHUP )
if (fd.revents & POLLHUP)
break;
else if ( fd.revents & POLLIN )
if (fd.revents & POLLIN)
{
const char *subchar;
@@ -1102,7 +1111,7 @@ static void rsnd_thread ( void * thread_data )
/* Two (;;) for loops! :3 Beware! */
for (;;)
{
for(;;)
for (;;)
{
_TEST_CANCEL();
@@ -1375,7 +1384,7 @@ int rsd_exec(rsound_t *rsound)
rsnd_stop_thread(rsound);
#if defined(__CELLOS_LV2__)
#ifdef __PS3__
int i = 0;
setsockopt(rsound->conn.socket, SOL_SOCKET, SO_NBIO, &i, sizeof(int));
#else
@@ -1567,11 +1576,11 @@ int rsd_init(rsound_t** rsound)
rsd_set_param(*rsound, RSD_HOST, RSD_DEFAULT_HOST);
rsd_set_param(*rsound, RSD_PORT, RSD_DEFAULT_PORT);
#ifdef __CELLOS_LV2__
#ifdef __PS3__
if (init_count == 0)
{
cellSysmoduleLoadModule(CELL_SYSMODULE_NET);
sys_net_initialize_network();
sysModuleLoad(SYSMODULE_NET);
netInitialize();
init_count++;
}
#endif
+6 -3
View File
@@ -4,7 +4,6 @@
#include <psp2/kernel/sysmem.h>
#include <psp2/kernel/threadmgr.h>
#define RAM_THRESHOLD 0x1000000 // Memory left to the system for threads and other internal stuffs
int _newlib_heap_memblock;
unsigned _newlib_heap_size;
@@ -16,6 +15,8 @@ static int _newlib_vm_memblock;
extern int _newlib_heap_size_user __attribute__((weak));
extern int _newlib_vm_size_user __attribute__((weak));
#define ALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1))
void * _sbrk_r(struct _reent *reent, ptrdiff_t incr) {
if (sceKernelLockLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, 1, 0) < 0)
goto fail;
@@ -37,8 +38,8 @@ void _init_vita_heap(void) {
int _newlib_vm_size = 0;
if (&_newlib_vm_size_user != NULL) {
_newlib_vm_size = _newlib_vm_size_user;
_newlib_vm_memblock = sceKernelAllocMemBlockForVM("code", _newlib_vm_size_user);
_newlib_vm_size = ALIGN(_newlib_vm_size_user, 0x100000);
_newlib_vm_memblock = sceKernelAllocMemBlockForVM("code", _newlib_vm_size);
if (_newlib_vm_memblock < 0){
//sceClibPrintf("sceKernelAllocMemBlockForVM failed\n");
@@ -58,6 +59,8 @@ void _init_vita_heap(void) {
info.size = sizeof(SceKernelFreeMemorySizeInfo);
sceKernelGetFreeMemorySize(&info);
printf("sceKernelGetFreeMemorySize %x\n", info.size_user);
if (&_newlib_heap_size_user != NULL) {
_newlib_heap_size = _newlib_heap_size_user;
}else{
-229
View File
@@ -1,229 +0,0 @@
// This provides support for __getreent() as well as implementation of our thread-related wrappers
#include <reent.h>
#include <stdio.h>
#include <string.h>
#include <vitasdk/utils.h>
#include <psp2/kernel/threadmgr.h>
#define MAX_THREADS 256
typedef struct reent_for_thread {
int thread_id;
int needs_reclaim;
void *tls_data_ext;
void *pthread_data_ext;
struct _reent reent;
} reent_for_thread;
static reent_for_thread reent_list[MAX_THREADS];
static int _newlib_reent_mutex;
static struct _reent _newlib_global_reent;
#define TLS_REENT_THID_PTR(thid) sceKernelGetThreadTLSAddr(thid, 0x88)
#define TLS_REENT_PTR sceKernelGetTLSAddr(0x88)
#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
int __vita_delete_thread_reent(int thid)
{
struct reent_for_thread *for_thread;
// We only need to cleanup if reent is allocated, i.e. if it's on our TLS
// We also don't need to clean up the global reent
struct _reent **on_tls = NULL;
if (thid == 0)
on_tls = TLS_REENT_PTR;
else
on_tls = TLS_REENT_THID_PTR(thid);
if (!*on_tls || *on_tls == &_newlib_global_reent)
return 0;
for_thread = list_entry(*on_tls, struct reent_for_thread, reent);
// Remove from TLS
*on_tls = 0;
// Set thread id to zero, which means the reent is free
for_thread->thread_id = 0;
// We can't reclaim it here, will be done later in __getreent
for_thread->needs_reclaim = 1;
return 1;
}
int vitasdk_delete_thread_reent(int thid)
{
int res = 0;
// Lock the list because we'll be modifying it
sceKernelLockMutex(_newlib_reent_mutex, 1, NULL);
res = __vita_delete_thread_reent(thid);
sceKernelUnlockMutex(_newlib_reent_mutex, 1);
return res;
}
int _exit_thread_common(int exit_status, int (*exit_func)(int)) {
int res = 0;
int ret = 0;
int thid = sceKernelGetThreadId();
// Lock the list because we'll be modifying it
sceKernelLockMutex(_newlib_reent_mutex, 1, NULL);
res = __vita_delete_thread_reent(0);
ret = exit_func(exit_status);
if (res)
{
struct _reent **on_tls = TLS_REENT_PTR;
struct reent_for_thread *for_thread = list_entry(*on_tls, struct reent_for_thread, reent);
for_thread->thread_id = thid;
// And put it back on TLS
*on_tls = &for_thread->reent;
}
sceKernelUnlockMutex(_newlib_reent_mutex, 1);
return ret;
}
int vita_exit_thread(int exit_status) {
return _exit_thread_common(exit_status, sceKernelExitThread);
}
int vita_exit_delete_thread(int exit_status) {
return _exit_thread_common(exit_status, sceKernelExitDeleteThread);
}
static inline void __vita_clean_reent(void)
{
int i;
SceKernelThreadInfo info;
for (i = 0; i < MAX_THREADS; ++i)
{
info.size = sizeof(SceKernelThreadInfo);
if (sceKernelGetThreadInfo(reent_list[i].thread_id, &info) < 0)
{
reent_list[i].thread_id = 0;
reent_list[i].needs_reclaim = 1;
}
}
}
static inline struct reent_for_thread *__vita_allocate_reent(void)
{
int i;
struct reent_for_thread *free_reent = 0;
for (i = 0; i < MAX_THREADS; ++i)
if (reent_list[i].thread_id == 0) {
free_reent = &reent_list[i];
break;
}
return free_reent;
}
struct _reent *__getreent_for_thread(int thid) {
struct reent_for_thread *free_reent = 0;
struct _reent *returned_reent = 0;
// A pointer to our reent should be on the TLS
struct _reent **on_tls = NULL;
if (thid == 0)
on_tls = TLS_REENT_PTR;
else
on_tls = TLS_REENT_THID_PTR(thid);
if (*on_tls) {
return *on_tls;
}
sceKernelLockMutex(_newlib_reent_mutex, 1, 0);
// If it's not on the TLS this means the thread doesn't have a reent allocated yet
// We allocate one and put a pointer to it on the TLS
free_reent = __vita_allocate_reent();
if (!free_reent) {
// clean any hanging thread references
__vita_clean_reent();
free_reent = __vita_allocate_reent();
if (!free_reent) {
// we've exhausted all our resources
__builtin_trap();
}
} else {
// First, check if it needs to be cleaned up (if it came from another thread)
if (free_reent->needs_reclaim) {
_reclaim_reent(&free_reent->reent);
free_reent->needs_reclaim = 0;
}
memset(free_reent, 0, sizeof(struct reent_for_thread));
// Set it up
if(thid==0){
thid = sceKernelGetThreadId();
}
free_reent->thread_id = thid;
_REENT_INIT_PTR(&free_reent->reent);
returned_reent = &free_reent->reent;
}
// Put it on TLS for faster access time
*on_tls = returned_reent;
sceKernelUnlockMutex(_newlib_reent_mutex, 1);
return returned_reent;
}
struct _reent *__getreent(void) {
return __getreent_for_thread(0);
}
void *vitasdk_get_tls_data(SceUID thid)
{
struct reent_for_thread *for_thread;
struct _reent *reent = __getreent_for_thread(thid);
for_thread = list_entry(reent, struct reent_for_thread, reent);
return &for_thread->tls_data_ext;
}
void *vitasdk_get_pthread_data(SceUID thid)
{
struct reent_for_thread *for_thread;
struct _reent *reent = __getreent_for_thread(thid);
for_thread = list_entry(reent, struct reent_for_thread, reent);
return &for_thread->pthread_data_ext;
}
// Called from _start to set up the main thread reentrancy structure
void _init_vita_reent(void) {
memset(reent_list, 0, sizeof(reent_list));
_newlib_reent_mutex = sceKernelCreateMutex("reent list access mutex", 0, 0, 0);
reent_list[0].thread_id = sceKernelGetThreadId();
_REENT_INIT_PTR(&reent_list[0].reent);
*(struct _reent **)(TLS_REENT_PTR) = &reent_list[0].reent;
_REENT_INIT_PTR(&_newlib_global_reent);
}
void _free_vita_reent(void) {
sceKernelDeleteMutex(_newlib_reent_mutex);
}
+33 -35
View File
@@ -29,25 +29,25 @@
#include <features/features_cpu.h>
#ifdef HAVE_CONFIG_H
#include "../config.h"
#include "config.h"
#endif
#ifdef HAVE_MENU
#include "../menu/menu_driver.h"
#include "menu/menu_driver.h"
#endif
#ifdef HAVE_CHEEVOS
#include "../cheevos/cheevos.h"
#include "cheevos/cheevos.h"
#endif
#include "cheat_manager.h"
#include "../msg_hash.h"
#include "../configuration.h"
#include "../retroarch.h"
#include "../dynamic.h"
#include "../core.h"
#include "../verbosity.h"
#include "msg_hash.h"
#include "configuration.h"
#include "retroarch.h"
#include "dynamic.h"
#include "core.h"
#include "verbosity.h"
/* TODO/FIXME - public global variables */
cheat_manager_t cheat_manager_state;
@@ -108,11 +108,8 @@ void cheat_manager_apply_cheats(void)
}
#ifdef HAVE_CHEEVOS
if (idx != 0)
if ( rcheevos_hardcore_active
&& rcheevos_loaded
&& !rcheevos_hardcore_paused)
cheat_manager_pause_cheevos();
if (idx != 0 && rcheevos_hardcore_active())
cheat_manager_pause_cheevos();
#endif
}
@@ -143,7 +140,6 @@ bool cheat_manager_save(
{
bool ret;
unsigned i;
char buf[PATH_MAX_LENGTH];
char cheats_file[PATH_MAX_LENGTH];
config_file_t *conf = NULL;
cheat_manager_t *cheat_st = &cheat_manager_state;
@@ -167,7 +163,7 @@ bool cheat_manager_save(
(char*)"cheat%u_repeat_add_to_address"
};
buf[0] = cheats_file[0] = '\0';
cheats_file[0] = '\0';
if (!cheat_st->cheats || cheat_st->size == 0)
return false;
@@ -175,11 +171,10 @@ bool cheat_manager_save(
if (!cheat_database)
strlcpy(cheats_file, path, sizeof(cheats_file));
else
{
fill_pathname_join(buf, cheat_database, path, sizeof(buf));
fill_pathname_noext(cheats_file, buf, ".cht", sizeof(cheats_file));
}
fill_pathname_join_concat(cheats_file,
cheat_database, path,
".cht",
sizeof(cheats_file));
if (!overwrite)
conf = config_file_new_from_path_to_string(cheats_file);
@@ -626,7 +621,7 @@ void cheat_manager_toggle_index(bool apply_cheats_after_toggle,
return;
cheat_st->cheats[i].state = !cheat_st->cheats[i].state;
cheat_manager_update(&cheat_manager_state, i);
cheat_manager_update(cheat_st, i);
if (apply_cheats_after_toggle)
cheat_manager_apply_cheats();
@@ -640,7 +635,7 @@ void cheat_manager_toggle(void)
cheat_st->cheats[cheat_st->ptr].state ^= true;
cheat_manager_apply_cheats();
cheat_manager_update(&cheat_manager_state, cheat_st->ptr);
cheat_manager_update(cheat_st, cheat_st->ptr);
}
void cheat_manager_index_next(void)
@@ -650,7 +645,7 @@ void cheat_manager_index_next(void)
return;
cheat_st->ptr = (cheat_st->ptr + 1) % cheat_st->size;
cheat_manager_update(&cheat_manager_state, cheat_st->ptr);
cheat_manager_update(cheat_st, cheat_st->ptr);
}
void cheat_manager_index_prev(void)
@@ -664,7 +659,7 @@ void cheat_manager_index_prev(void)
else
cheat_st->ptr--;
cheat_manager_update(&cheat_manager_state, cheat_st->ptr);
cheat_manager_update(cheat_st, cheat_st->ptr);
}
const char *cheat_manager_get_code(unsigned i)
@@ -708,7 +703,7 @@ static bool cheat_manager_get_game_specific_filename(
return false;
core_name = system_info.library_name;
game_name = path_basename(global->name.cheatfile);
game_name = path_basename_nocompression(global->name.cheatfile);
if (string_is_empty(path_cheat_database) ||
string_is_empty(core_name) ||
@@ -742,8 +737,8 @@ void cheat_manager_load_game_specific_cheats(const char *path_cheat_database)
path_cheat_database,
false))
{
RARCH_LOG("[Cheats]: Load game-specific cheatfile: %s\n", cheat_file);
cheat_manager_load(cheat_file, true);
if (cheat_manager_load(cheat_file, true))
RARCH_LOG("[Cheats]: Load game-specific cheatfile: %s\n", cheat_file);
}
}
@@ -756,8 +751,8 @@ void cheat_manager_save_game_specific_cheats(const char *path_cheat_database)
path_cheat_database,
true))
{
RARCH_LOG("[Cheats]: Save game-specific cheatfile: %s\n", cheat_file);
cheat_manager_save(cheat_file, NULL, true);
if (cheat_manager_save(cheat_file, NULL, true))
RARCH_LOG("[Cheats]: Save game-specific cheatfile: %s\n", cheat_file);
}
}
@@ -1178,6 +1173,12 @@ int cheat_manager_search_eqminus(rarch_setting_t *setting, size_t idx, bool wrap
return cheat_manager_search(CHEAT_SEARCH_TYPE_EQMINUS);
}
unsigned cheat_manager_get_state_search_size(unsigned search_size)
{
uint32_t n[] = {1,3,15,255,0x0000ffff,0xffffffff};
return n[search_size];
}
bool cheat_manager_add_new_code(unsigned int memory_search_size, unsigned int address, unsigned int address_mask,
bool big_endian, unsigned int value)
{
@@ -1568,11 +1569,8 @@ void cheat_manager_apply_retro_cheats(void)
}
#ifdef HAVE_CHEEVOS
if (cheat_applied)
if ( rcheevos_hardcore_active
&& rcheevos_loaded
&& !rcheevos_hardcore_paused)
cheat_manager_pause_cheevos();
if (cheat_applied && rcheevos_hardcore_active())
cheat_manager_pause_cheevos();
#endif
}
+24 -18
View File
@@ -86,10 +86,14 @@ enum cheat_rumble_type
struct item_cheat
{
unsigned int idx;
/* Clock value for when rumbling should stop */
retro_time_t rumble_primary_end_time;
retro_time_t rumble_secondary_end_time;
char *desc;
bool state;
char *code;
unsigned int idx;
unsigned int handler;
/* Number of bits = 2^memory_search_size
* 0=1, 1=2, 2=4, 3=8, 4=16, 5=32
@@ -119,19 +123,16 @@ struct item_cheat
* 1 : 11110000
*/
unsigned int address_mask;
/* Whether to apply the cheat based on big-endian console memory or not */
bool big_endian;
unsigned int rumble_type;
unsigned int rumble_value;
unsigned int rumble_prev_value;
unsigned int rumble_initialized;
unsigned int rumble_port; /* 0-15 for specific port, anything else means "all ports" */
/* 0-15 for specific port, anything else means "all ports" */
unsigned int rumble_port;
unsigned int rumble_primary_strength; /* 0-65535 */
unsigned int rumble_primary_duration; /* in milliseconds */
retro_time_t rumble_primary_end_time; /* clock value for when rumbling should stop */
unsigned int rumble_secondary_strength; /* 0-65535 */
unsigned int rumble_secondary_duration; /* in milliseconds */
retro_time_t rumble_secondary_end_time; /* clock value for when rumbling should stop */
/*
* The repeat_ variables allow for a single cheat code to affect multiple memory addresses.
@@ -149,22 +150,28 @@ struct item_cheat
unsigned int repeat_add_to_value;
unsigned int repeat_add_to_address;
bool state;
/* Whether to apply the cheat based on big-endian console memory or not */
bool big_endian;
};
struct cheat_manager
{
struct item_cheat working_cheat; /* retro_time_t alignment */
struct item_cheat *cheats;
unsigned ptr;
unsigned size;
unsigned buf_size;
unsigned total_memory_size;
uint8_t *curr_memory_buf;
uint8_t *prev_memory_buf;
uint8_t *matches;
uint8_t **memory_buf_list;
unsigned *memory_size_list;
unsigned int delete_state;
unsigned int loading_cheat_size;
unsigned int loading_cheat_offset;
unsigned ptr;
unsigned size;
unsigned buf_size;
unsigned total_memory_size;
unsigned num_memory_buffers;
struct item_cheat working_cheat;
unsigned match_idx;
unsigned match_action;
unsigned search_bit_size;
@@ -173,15 +180,12 @@ struct cheat_manager
unsigned search_eqplus_value;
unsigned search_eqminus_value;
unsigned num_matches;
bool big_endian;
bool memory_initialized;
bool memory_search_initialized;
unsigned int delete_state;
unsigned browse_address;
char working_desc[CHEAT_DESC_SCRATCH_SIZE];
char working_code[CHEAT_CODE_SCRATCH_SIZE];
unsigned int loading_cheat_size;
unsigned int loading_cheat_offset;
bool big_endian;
bool memory_initialized;
bool memory_search_initialized;
};
typedef struct cheat_manager cheat_manager_t;
@@ -260,6 +264,8 @@ int cheat_manager_search_eqplus(rarch_setting_t *setting, size_t idx, bool wrapa
int cheat_manager_search_eqminus(rarch_setting_t *setting, size_t idx, bool wraparound);
unsigned cheat_manager_get_state_search_size(unsigned search_size);
int cheat_manager_add_matches(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx);
+8 -5
View File
@@ -36,7 +36,8 @@ void cheevos_reset_menu_badges(void)
video_driver_texture_unload(&cheevos_badge_menu_texture_list[index]);
}
memset(&cheevos_badge_menu_texture_list, 0, sizeof(cheevos_badge_menu_texture_list));
memset(&cheevos_badge_menu_texture_list, 0,
sizeof(cheevos_badge_menu_texture_list));
}
void cheevos_set_menu_badge(int index, const char *badge, bool locked)
@@ -49,7 +50,8 @@ void cheevos_set_menu_badge(int index, const char *badge, bool locked)
if (!settings || !settings->bools.cheevos_badges_enable)
cheevos_badge_menu_texture_list[index] = 0;
else
cheevos_badge_menu_texture_list[index] = cheevos_get_badge_texture(badge, locked);
cheevos_badge_menu_texture_list[index] =
cheevos_get_badge_texture(badge, locked);
}
uintptr_t cheevos_get_menu_badge_texture(int index)
@@ -71,13 +73,14 @@ uintptr_t cheevos_get_badge_texture(const char *badge, bool locked)
if (!badge)
return 0;
fullpath[0] = badge_file[0] = '\0';
strlcpy(badge_file, badge, sizeof(badge_file));
if (locked)
strlcat(badge_file, "_lock", sizeof(badge_file));
strlcat(badge_file, ".png", sizeof(badge_file));
strlcat(badge_file, FILE_PATH_PNG_EXTENSION, sizeof(badge_file));
fill_pathname_application_special(fullpath,
PATH_MAX_LENGTH * sizeof(char),
fill_pathname_application_special(fullpath, sizeof(fullpath),
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_CHEEVOS_BADGES);
if (!gfx_display_reset_textures_list(badge_file, fullpath,
+1367 -725
View File
File diff suppressed because it is too large. Load diff
+18 -11
View File
@@ -37,23 +37,33 @@ typedef struct rcheevos_ctx_desc
enum
{
RCHEEVOS_ACTIVE_SOFTCORE = 1 << 0,
RCHEEVOS_ACTIVE_HARDCORE = 1 << 1
RCHEEVOS_ACTIVE_HARDCORE = 1 << 1,
RCHEEVOS_ACTIVE_UNOFFICIAL = 1 << 2
};
bool rcheevos_load(const void *data);
size_t rcheevos_get_serialize_size(void);
bool rcheevos_get_serialized_data(void* buffer);
bool rcheevos_set_serialized_data(void* buffer);
void rcheevos_reset_game(void);
void rcheevos_reset_game(bool widgets_ready);
void rcheevos_populate_menu(void *data);
void rcheevos_populate_menu(void* data);
void rcheevos_populate_hardcore_pause_menu(void* data);
void rcheevos_get_achievement_state(unsigned index, char* buffer, size_t buffer_size);
bool rcheevos_get_description(rcheevos_ctx_desc_t *desc);
void rcheevos_pause_hardcore();
void rcheevos_pause_hardcore(void);
bool rcheevos_unload(void);
bool rcheevos_toggle_hardcore_mode(void);
void rcheevos_hardcore_enabled_changed(void);
void rcheevos_toggle_hardcore_paused(void);
void rcheevos_validate_config_settings(void);
void rcheevos_leaderboards_enabled_changed(void);
void rcheevos_test(void);
@@ -61,16 +71,13 @@ void rcheevos_set_support_cheevos(bool state);
bool rcheevos_get_support_cheevos(void);
int rcheevos_get_console(void);
const char* rcheevos_get_hash(void);
const char *rcheevos_get_richpresence(void);
extern bool rcheevos_loaded;
extern bool rcheevos_hardcore_active;
extern bool rcheevos_hardcore_paused;
extern bool rcheevos_state_loaded_flag;
uint8_t* rcheevos_patch_address(unsigned address);
bool rcheevos_hardcore_active(void);
RETRO_END_DECLS
+352
View File
@@ -0,0 +1,352 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2015-2016 - Andre Leiradella
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "cheevos_memory.h"
#include "util.h"
#include "../retroarch.h"
#include "../verbosity.h"
#include "../deps/rcheevos/include/rcheevos.h"
#include <stdio.h>
uint8_t* rcheevos_memory_find(
const rcheevos_memory_regions_t* regions, unsigned address)
{
unsigned i;
for (i = 0; i < regions->count; ++i)
{
const size_t size = regions->size[i];
if (address < size)
{
if (regions->data[i] == NULL)
break;
return &regions->data[i][address];
}
address -= size;
}
return NULL;
}
static const char* rcheevos_memory_type(int type)
{
switch (type)
{
case RC_MEMORY_TYPE_SAVE_RAM:
return "SRAM";
case RC_MEMORY_TYPE_VIDEO_RAM:
return "VRAM";
case RC_MEMORY_TYPE_UNUSED:
return "UNUSED";
default:
break;
}
return "SYSTEM RAM";
}
static void rcheevos_memory_register_region(rcheevos_memory_regions_t* regions,
int type, uint8_t* data, size_t size, const char* description)
{
if (size == 0)
return;
if (regions->count == MAX_MEMORY_REGIONS)
{
CHEEVOS_LOG(RCHEEVOS_TAG "Too many memory memory regions to register\n");
return;
}
if (!data && regions->count > 0 && !regions->data[regions->count - 1])
{
/* extend null region */
regions->size[regions->count - 1] += size;
}
else if (data && regions->count > 0 &&
data == (regions->data[regions->count - 1] + regions->size[regions->count - 1]))
{
/* extend non-null region */
regions->size[regions->count - 1] += size;
}
else
{
/* create new region */
regions->data[regions->count] = data;
regions->size[regions->count] = size;
++regions->count;
}
regions->total_size += size;
CHEEVOS_LOG(RCHEEVOS_TAG "Registered 0x%04X bytes of %s at $%06X (%s)\n", (unsigned)size,
rcheevos_memory_type(type), (unsigned)(regions->total_size - size), description);
}
static void rcheevos_memory_init_without_regions(
rcheevos_memory_regions_t* regions)
{
/* no regions specified, assume system RAM followed by save RAM */
char description[64];
retro_ctx_memory_info_t meminfo;
snprintf(description, sizeof(description), "offset 0x%06x", 0);
meminfo.id = RETRO_MEMORY_SYSTEM_RAM;
core_get_memory(&meminfo);
rcheevos_memory_register_region(regions, RC_MEMORY_TYPE_SYSTEM_RAM, (uint8_t*)meminfo.data, meminfo.size, description);
meminfo.id = RETRO_MEMORY_SAVE_RAM;
core_get_memory(&meminfo);
rcheevos_memory_register_region(regions, RC_MEMORY_TYPE_SAVE_RAM, (uint8_t*)meminfo.data, meminfo.size, description);
}
static const rarch_memory_descriptor_t* rcheevos_memory_get_descriptor(const rarch_memory_map_t* mmap, unsigned real_address)
{
const rarch_memory_descriptor_t* desc = mmap->descriptors;
const rarch_memory_descriptor_t* end = desc + mmap->num_descriptors;
if (mmap->num_descriptors == 0)
return NULL;
for (; desc < end; desc++)
{
if (desc->core.select == 0)
{
/* if select is 0, attempt to explcitly match the address */
if (real_address >= desc->core.start && real_address < desc->core.start + desc->core.len)
return desc;
}
else
{
/* otherwise, attempt to match the address by matching the select bits */
if (((desc->core.start ^ real_address) & desc->core.select) == 0)
{
/* sanity check - make sure the descriptor is large enough to hold the target address */
if (real_address - desc->core.start < desc->core.len)
return desc;
}
}
}
return NULL;
}
void rcheevos_memory_init_from_memory_map(rcheevos_memory_regions_t* regions, const rarch_memory_map_t* mmap, const rc_memory_regions_t* console_regions)
{
char description[64];
unsigned i;
uint8_t* region_start;
uint8_t* desc_start;
size_t desc_size;
size_t offset;
for (i = 0; i < console_regions->num_regions; ++i)
{
const rc_memory_region_t* console_region = &console_regions->region[i];
size_t console_region_size = console_region->end_address - console_region->start_address + 1;
unsigned real_address = console_region->real_address;
while (console_region_size > 0)
{
const rarch_memory_descriptor_t* desc = rcheevos_memory_get_descriptor(mmap, real_address);
if (!desc)
{
if (console_region->type != RC_MEMORY_TYPE_UNUSED)
{
CHEEVOS_LOG(RCHEEVOS_TAG "Could not map region starting at $%06X\n",
real_address - console_region->real_address + console_region->start_address);
}
rcheevos_memory_register_region(regions, console_region->type, NULL, console_region_size, "null filler");
break;
}
offset = real_address - desc->core.start;
snprintf(description, sizeof(description),
"descriptor %u, offset 0x%06X",
(int)(desc - mmap->descriptors) + 1, (int)offset);
if (desc->core.ptr)
{
desc_start = (uint8_t*)desc->core.ptr + desc->core.offset;
region_start = desc_start + offset;
}
else
region_start = NULL;
desc_size = desc->core.len - offset;
if (console_region_size > desc_size)
{
if (desc_size == 0)
{
if (console_region->type != RC_MEMORY_TYPE_UNUSED)
{
CHEEVOS_LOG(RCHEEVOS_TAG "Could not map region starting at $%06X\n",
real_address - console_region->real_address + console_region->start_address);
}
rcheevos_memory_register_region(regions, console_region->type, NULL, console_region_size, "null filler");
console_region_size = 0;
}
else
{
rcheevos_memory_register_region(regions, console_region->type, region_start, desc_size, description);
console_region_size -= desc_size;
real_address += desc_size;
}
}
else
{
rcheevos_memory_register_region(regions, console_region->type, region_start, console_region_size, description);
console_region_size = 0;
}
}
}
}
static unsigned rcheevos_memory_console_region_to_ram_type(int region_type)
{
switch (region_type)
{
case RC_MEMORY_TYPE_SAVE_RAM:
return RETRO_MEMORY_SAVE_RAM;
case RC_MEMORY_TYPE_VIDEO_RAM:
return RETRO_MEMORY_VIDEO_RAM;
default:
break;
}
return RETRO_MEMORY_SYSTEM_RAM;
}
static void rcheevos_memory_init_from_unmapped_memory(rcheevos_memory_regions_t* regions, const rc_memory_regions_t* console_regions, int console)
{
char description[64];
unsigned i;
for (i = 0; i < console_regions->num_regions; ++i)
{
size_t offset;
unsigned j;
retro_ctx_memory_info_t meminfo;
const rc_memory_region_t* console_region = &console_regions->region[i];
const size_t console_region_size =
console_region->end_address - console_region->start_address + 1;
unsigned base_address = 0;
meminfo.id = rcheevos_memory_console_region_to_ram_type(console_region->type);
for (j = 0; j <= i; ++j)
{
const rc_memory_region_t* console_region2 = &console_regions->region[j];
if (rcheevos_memory_console_region_to_ram_type(
console_region2->type) == meminfo.id)
{
base_address = console_region2->start_address;
break;
}
}
offset = console_region->start_address - base_address;
core_get_memory(&meminfo);
if (offset < meminfo.size)
{
meminfo.size -= offset;
if (meminfo.data)
{
snprintf(description, sizeof(description),
"offset 0x%06X", (int)offset);
meminfo.data = (uint8_t*)meminfo.data + offset;
}
else
snprintf(description, sizeof(description), "null filler");
}
else
{
if (console_region->type != RC_MEMORY_TYPE_UNUSED)
{
CHEEVOS_LOG(RCHEEVOS_TAG "Could not map region starting at $%06X\n", console_region->start_address);
}
meminfo.data = NULL;
meminfo.size = 0;
}
if (console_region_size > meminfo.size)
{
/* want more than what is available, take what we can and null fill the rest */
rcheevos_memory_register_region(regions, console_region->type, (uint8_t*)meminfo.data, meminfo.size, description);
rcheevos_memory_register_region(regions, console_region->type, NULL, console_region_size - meminfo.size, "null filler");
}
else
{
/* only take as much as we need */
rcheevos_memory_register_region(regions, console_region->type, (uint8_t*)meminfo.data, console_region_size, description);
}
}
}
void rcheevos_memory_destroy(rcheevos_memory_regions_t* regions)
{
memset(regions, 0, sizeof(*regions));
}
bool rcheevos_memory_init(rcheevos_memory_regions_t* regions, int console)
{
unsigned i;
const rc_memory_regions_t* console_regions = rc_console_memory_regions(console);
rcheevos_memory_regions_t new_regions;
bool has_valid_region = false;
if (!regions)
return false;
memset(&new_regions, 0, sizeof(new_regions));
if (console_regions == NULL || console_regions->num_regions == 0)
{
rcheevos_memory_init_without_regions(&new_regions);
}
else
{
rarch_system_info_t* system = runloop_get_system_info();
if (system->mmaps.num_descriptors != 0)
rcheevos_memory_init_from_memory_map(&new_regions, &system->mmaps, console_regions);
else
rcheevos_memory_init_from_unmapped_memory(&new_regions, console_regions, console);
}
/* determine if any valid regions were found */
for (i = 0; i < new_regions.count; i++)
{
if (new_regions.data[i])
{
has_valid_region = true;
break;
}
}
memcpy(regions, &new_regions, sizeof(*regions));
return has_valid_region;
}
+13 -17
View File
@@ -12,36 +12,32 @@
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __RARCH_CHEEVOS_FIXUP_H
#define __RARCH_CHEEVOS_FIXUP_H
#ifndef __RARCH_CHEEVOS_MEMORY_H
#define __RARCH_CHEEVOS_MEMORY_H
#include <stdint.h>
#include <stdlib.h>
#include <boolean.h>
#include <retro_common_api.h>
RETRO_BEGIN_DECLS
typedef struct
{
unsigned address;
const uint8_t* location;
} rcheevos_fixup_t;
#define MAX_MEMORY_REGIONS 32
typedef struct
{
rcheevos_fixup_t* elements;
unsigned capacity, count;
bool dirty;
} rcheevos_fixups_t;
uint8_t* data[MAX_MEMORY_REGIONS];
size_t size[MAX_MEMORY_REGIONS];
size_t total_size;
unsigned count;
} rcheevos_memory_regions_t;
void rcheevos_fixup_init(rcheevos_fixups_t* fixups);
void rcheevos_fixup_destroy(rcheevos_fixups_t* fixups);
bool rcheevos_memory_init(rcheevos_memory_regions_t* regions, int console);
void rcheevos_memory_destroy(rcheevos_memory_regions_t* regions);
const uint8_t* rcheevos_fixup_find(rcheevos_fixups_t* fixups, unsigned address, int console);
const uint8_t* rcheevos_patch_address(unsigned address, int console);
uint8_t* rcheevos_memory_find(const rcheevos_memory_regions_t* regions,
unsigned address);
RETRO_END_DECLS
+226 -318
View File
@@ -1,13 +1,14 @@
#include "parser.h"
#include "cheevos_parser.h"
#include "hash.h"
#include "util.h"
#include <encodings/utf.h>
#include <formats/jsonsax.h>
#include <formats/rjson.h>
#include <string/stdstring.h>
#include <compat/strl.h>
#include "../deps/rcheevos/include/rcheevos.h"
/* C89 wants only int values in enums. */
#define CHEEVOS_JSON_KEY_GAMEID 0xb4960eecU
#define CHEEVOS_JSON_KEY_ACHIEVEMENTS 0x69749ae1U
@@ -30,114 +31,118 @@
#define CHEEVOS_JSON_KEY_SUCCESS 0x110461deU
#define CHEEVOS_JSON_KEY_ERROR 0x0d2011cfU
typedef struct
{
char* value;
int is_key;
size_t length;
unsigned key_hash;
} rcheevos_getvalueud_t;
#define CHEEVOS_RJSON_OPTIONS \
/* Inside the field RichPresencePatch newlines are
* encoded as '\r\n'. This will filter the \r out. */ \
RJSON_OPTION_IGNORE_STRING_CARRIAGE_RETURN \
/* This matches the behavior of the previously used
* json parser. It is probably not required */ \
| RJSON_OPTION_ALLOW_TRAILING_DATA
/*****************************************************************************
Gets a value in a JSON
*****************************************************************************/
typedef struct
static uint32_t rcheevos_djb2(const char* str, size_t length)
{
unsigned key_hash;
int is_key;
const char* value;
size_t length;
} rcheevos_getvalueud_t;
const unsigned char* aux = (const unsigned char*)str;
uint32_t hash = 5381;
static int rcheevos_getvalue_key(void* userdata,
while (length--)
hash = (hash << 5) + hash + *aux++;
return hash;
}
static bool rcheevos_getvalue_key(void* userdata,
const char* name, size_t length)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
ud->is_key = rcheevos_djb2(name, length) == ud->key_hash;
return 0;
return true;
}
static int rcheevos_getvalue_string(void* userdata,
static bool rcheevos_getvalue_string(void* userdata,
const char* string, size_t length)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
if (ud->is_key)
if (ud->is_key && ud->length > length)
{
ud->value = string;
ud->length = length;
ud->is_key = 0;
strlcpy(ud->value, string, ud->length);
ud->is_key = 2;
return false;
}
return 0;
return true;
}
static int rcheevos_getvalue_boolean(void* userdata, int istrue)
static bool rcheevos_getvalue_boolean(void* userdata, bool istrue)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
if (ud->is_key)
{
if (istrue)
if (istrue && ud->length > 4)
{
ud->value = "true";
ud->length = 4;
strlcpy(ud->value, "true", ud->length);
ud->is_key = 2;
return false;
}
else
if (!istrue && ud->length > 5)
{
ud->value = "false";
ud->length = 5;
strlcpy(ud->value, "false", ud->length);
ud->is_key = 2;
return false;
}
ud->is_key = 0;
}
return 0;
return true;
}
static int rcheevos_getvalue_null(void* userdata)
static bool rcheevos_getvalue_null(void* userdata)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
if (ud->is_key )
if (ud->is_key && ud->length > 4)
{
ud->value = "null";
ud->length = 4;
ud->is_key = 0;
strlcpy(ud->value, "null", ud->length);
ud->is_key = 2;
return false;
}
return 0;
return true;
}
static int rcheevos_get_value(const char* json, unsigned key_hash,
char* value, size_t length)
{
static const jsonsax_handlers_t handlers =
{
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
rcheevos_getvalue_key,
NULL,
rcheevos_getvalue_string,
rcheevos_getvalue_string, /* number */
rcheevos_getvalue_boolean,
rcheevos_getvalue_null
};
rcheevos_getvalueud_t ud;
ud.key_hash = key_hash;
ud.is_key = 0;
ud.value = NULL;
ud.length = 0;
ud.value = value;
ud.length = length;
*value = 0;
if ((jsonsax_parse(json, &handlers, (void*)&ud) == JSONSAX_OK)
&& ud.value && ud.length < length)
{
strlcpy(value, ud.value, ud.length + 1);
return 0;
}
rjson_parse_quick(json, &ud, CHEEVOS_RJSON_OPTIONS,
rcheevos_getvalue_key,
rcheevos_getvalue_string,
rcheevos_getvalue_string, /* number */
NULL, NULL, NULL, NULL,
rcheevos_getvalue_boolean,
rcheevos_getvalue_null, NULL);
return -1;
return (ud.is_key == 2 ? 0 : -1);
}
/*****************************************************************************
@@ -174,16 +179,16 @@ typedef struct
unsigned lboard_count;
} rcheevos_countud_t;
static int rcheevos_count_end_array(void* userdata)
static bool rcheevos_count_end_array(void* userdata)
{
rcheevos_countud_t* ud = (rcheevos_countud_t*)userdata;
ud->in_cheevos = 0;
ud->in_lboards = 0;
return 0;
return true;
}
static int rcheevos_count_key(void* userdata,
static bool rcheevos_count_key(void* userdata,
const char* name, size_t length)
{
rcheevos_countud_t* ud = (rcheevos_countud_t*)userdata;
@@ -197,10 +202,10 @@ static int rcheevos_count_key(void* userdata,
else if (ud->field_hash == CHEEVOS_JSON_KEY_ERROR)
ud->has_error = 1;
return 0;
return true;
}
static int rcheevos_count_number(void* userdata,
static bool rcheevos_count_number(void* userdata,
const char* number, size_t length)
{
rcheevos_countud_t* ud = (rcheevos_countud_t*)userdata;
@@ -217,30 +222,14 @@ static int rcheevos_count_number(void* userdata,
else if (ud->in_lboards && ud->field_hash == CHEEVOS_JSON_KEY_ID)
ud->lboard_count++;
return 0;
return true;
}
static int rcheevos_count_cheevos(const char* json,
static bool rcheevos_count_cheevos(const char* json,
unsigned* core_count, unsigned* unofficial_count,
unsigned* lboard_count, int* has_error)
{
static const jsonsax_handlers_t handlers =
{
NULL,
NULL,
NULL,
NULL,
NULL,
rcheevos_count_end_array,
rcheevos_count_key,
NULL,
NULL,
rcheevos_count_number,
NULL,
NULL
};
int res;
bool res;
rcheevos_countud_t ud;
ud.in_cheevos = 0;
ud.in_lboards = 0;
@@ -249,7 +238,14 @@ static int rcheevos_count_cheevos(const char* json,
ud.unofficial_count = 0;
ud.lboard_count = 0;
res = jsonsax_parse(json, &handlers, (void*)&ud);
res = rjson_parse_quick(json, &ud, CHEEVOS_RJSON_OPTIONS,
rcheevos_count_key,
NULL,
rcheevos_count_number,
NULL, NULL, NULL,
rcheevos_count_end_array,
NULL, NULL, NULL);
*core_count = ud.core_count;
*unofficial_count = ud.unofficial_count;
@@ -263,163 +259,92 @@ static int rcheevos_count_cheevos(const char* json,
Parses the cheevos in the JSON
*****************************************************************************/
typedef struct
{
const char* string;
size_t length;
} rcheevos_field_t;
typedef struct
{
int in_cheevos;
int in_lboards;
int is_game_id;
int is_title;
int is_console_id;
int is_richpresence;
int lboard_had_id;
unsigned core_count;
unsigned unofficial_count;
unsigned lboard_count;
rcheevos_field_t* field;
rcheevos_field_t id, memaddr, title, desc, points, author;
rcheevos_field_t modified, created, badge, flags, format;
unsigned cheevo_flags;
const char* lboard_format;
const char** field_string;
unsigned* field_unsigned;
rcheevos_racheevo_t cheevo;
rcheevos_ralboard_t lboard;
rcheevos_rapatchdata_t* patchdata;
} rcheevos_readud_t;
static char* rcheevos_unescape_string(const char* string, size_t length)
{
const char* end = string + length;
char* buffer = (char*)malloc(length + 1);
char* buffer_it = buffer;
if (buffer == NULL)
return NULL;
while (string < end)
{
if (*string == '\\')
{
char escaped_char = string[1];
switch (escaped_char)
{
case 'r': /* Ignore carriage return */
string += 2;
break;
case 'n': /* Accept newlines */
*buffer_it++ = '\n';
string += 2;
break;
case 'u': /* Accept UTF-16 unicode characters */
{
#define MAX_SEQUENCES 16
uint16_t utf16[MAX_SEQUENCES];
char utf8[MAX_SEQUENCES * 4];
uint8_t i, j;
for (i = 1; i < MAX_SEQUENCES - 1; i++)
if (strncmp((string + 6 * i), "\\u", 2))
break;
/* Get escaped hex values and add them to the string */
for (j = 0; j < i; j++)
{
char temp[5];
string += 2;
memcpy(temp, string, 4);
temp[4] = '\0';
utf16[j] = string_hex_to_unsigned(temp);
string += 4;
}
utf16[j] = 0;
if (utf16_to_char_string(utf16, utf8, sizeof(utf8)))
{
size_t utf8_len = strlen(utf8);
memcpy(buffer_it, utf8, utf8_len);
buffer_it += utf8_len;
}
}
break;
default:
*buffer_it++ = escaped_char;
string += 2;
break;
}
}
else
*buffer_it++ = *string++;
}
*buffer_it = '\0';
return buffer;
}
static int rcheevos_new_cheevo(rcheevos_readud_t* ud)
static bool rcheevos_new_cheevo(rcheevos_readud_t* ud)
{
rcheevos_racheevo_t* cheevo = NULL;
unsigned flags = (unsigned)strtol(ud->flags.string, NULL, 10);
if (flags == 3)
if (ud->cheevo_flags == 3)
cheevo = ud->patchdata->core + ud->core_count++;
else if (flags == 5)
else if (ud->cheevo_flags == 5)
cheevo = ud->patchdata->unofficial + ud->unofficial_count++;
else
return 0;
ud->cheevo_flags = 0;
cheevo->title = rcheevos_unescape_string(ud->title.string, ud->title.length);
cheevo->description = rcheevos_unescape_string(ud->desc.string, ud->desc.length);
cheevo->badge = rcheevos_unescape_string(ud->badge.string, ud->badge.length);
cheevo->memaddr = rcheevos_unescape_string(ud->memaddr.string, ud->memaddr.length);
cheevo->points = (unsigned)strtol(ud->points.string, NULL, 10);
cheevo->id = (unsigned)strtol(ud->id.string, NULL, 10);
if ( !cheevo->title
|| !cheevo->description
|| !cheevo->badge
|| !cheevo->memaddr)
if (!cheevo
|| !ud->cheevo.title
|| !ud->cheevo.description
|| !ud->cheevo.badge
|| !ud->cheevo.memaddr)
{
CHEEVOS_FREE(cheevo->title);
CHEEVOS_FREE(cheevo->description);
CHEEVOS_FREE(cheevo->badge);
CHEEVOS_FREE(cheevo->memaddr);
return -1;
CHEEVOS_FREE(ud->cheevo.title);
CHEEVOS_FREE(ud->cheevo.description);
CHEEVOS_FREE(ud->cheevo.badge);
CHEEVOS_FREE(ud->cheevo.memaddr);
memset(&ud->cheevo, 0, sizeof(ud->cheevo));
return (cheevo ? false : true);
}
return 0;
*cheevo = ud->cheevo;
memset(&ud->cheevo, 0, sizeof(ud->cheevo));
return true;
}
static int rcheevos_new_lboard(rcheevos_readud_t* ud)
static bool rcheevos_new_lboard(rcheevos_readud_t* ud)
{
rcheevos_ralboard_t* lboard = ud->patchdata->lboards + ud->lboard_count++;
rcheevos_ralboard_t* lboard = NULL;
lboard->title = rcheevos_unescape_string(ud->title.string, ud->title.length);
lboard->description = rcheevos_unescape_string(ud->desc.string, ud->desc.length);
lboard->format = rcheevos_unescape_string(ud->format.string, ud->format.length);
lboard->mem = rcheevos_unescape_string(ud->memaddr.string, ud->memaddr.length);
lboard->id = (unsigned)strtol(ud->id.string, NULL, 10);
if (ud->lboard_had_id)
lboard = ud->patchdata->lboards + ud->lboard_count++;
ud->lboard_had_id = 0;
if ( !lboard->title
|| !lboard->description
|| !lboard->format
|| !lboard->mem)
if (!lboard
|| !ud->lboard.title
|| !ud->lboard.description
|| !ud->lboard.mem)
{
CHEEVOS_FREE(lboard->title);
CHEEVOS_FREE(lboard->description);
CHEEVOS_FREE(lboard->format);
CHEEVOS_FREE(lboard->mem);
return -1;
CHEEVOS_FREE(ud->lboard.title);
CHEEVOS_FREE(ud->lboard.description);
CHEEVOS_FREE(ud->lboard.mem);
memset(&ud->lboard, 0, sizeof(ud->lboard));
CHEEVOS_FREE(ud->lboard_format);
ud->lboard_format = NULL;
return (lboard ? false : true);
}
return 0;
*lboard = ud->lboard;
memset(&ud->lboard, 0, sizeof(ud->lboard));
if (ud->lboard_format)
{
lboard->format = rc_parse_format(ud->lboard_format);
CHEEVOS_FREE(ud->lboard_format);
ud->lboard_format = NULL;
}
return true;
}
static int rcheevos_read_end_object(void* userdata)
static bool rcheevos_read_end_object(void* userdata)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
@@ -429,26 +354,26 @@ static int rcheevos_read_end_object(void* userdata)
if (ud->in_lboards)
return rcheevos_new_lboard(ud);
return 0;
return true;
}
static int rcheevos_read_end_array(void* userdata)
static bool rcheevos_read_end_array(void* userdata)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
ud->in_cheevos = 0;
ud->in_lboards = 0;
return 0;
return true;
}
static int rcheevos_read_key(void* userdata,
static bool rcheevos_read_key(void* userdata,
const char* name, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
int common = ud->in_cheevos || ud->in_lboards;
uint32_t hash = rcheevos_djb2(name, length);
ud->field = NULL;
ud->field_unsigned = NULL;
ud->field_string = NULL;
switch (hash)
{
@@ -459,145 +384,121 @@ static int rcheevos_read_key(void* userdata,
ud->in_lboards = 1;
break;
case CHEEVOS_JSON_KEY_CONSOLE_ID:
ud->is_console_id = 1;
ud->field_unsigned = &ud->patchdata->console_id;
break;
case CHEEVOS_JSON_KEY_RICHPRESENCE:
ud->is_richpresence = 1;
ud->field_string = (const char**)&ud->patchdata->richpresence_script;
break;
case CHEEVOS_JSON_KEY_ID:
if (common)
ud->field = &ud->id;
if (ud->in_cheevos)
ud->field_unsigned = &ud->cheevo.id;
else if (ud->in_lboards)
{
ud->field_unsigned = &ud->lboard.id;
ud->lboard_had_id = 1;
}
else
ud->is_game_id = 1;
ud->field_unsigned = &ud->patchdata->game_id;
break;
case CHEEVOS_JSON_KEY_MEMADDR:
if (ud->in_cheevos)
ud->field = &ud->memaddr;
ud->field_string = &ud->cheevo.memaddr;
break;
case CHEEVOS_JSON_KEY_MEM:
if (ud->in_lboards)
ud->field = &ud->memaddr;
ud->field_string = &ud->lboard.mem;
break;
case CHEEVOS_JSON_KEY_TITLE:
if (common)
ud->field = &ud->title;
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.title;
else if (ud->in_lboards)
ud->field_string = &ud->lboard.title;
else
ud->is_title = 1;
ud->field_string = (const char**)&ud->patchdata->title;
break;
case CHEEVOS_JSON_KEY_DESCRIPTION:
if (common)
ud->field = &ud->desc;
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.description;
else if (ud->in_lboards)
ud->field_string = &ud->lboard.description;
break;
case CHEEVOS_JSON_KEY_POINTS:
if (ud->in_cheevos)
ud->field = &ud->points;
ud->field_unsigned = &ud->cheevo.points;
break;
/* UNUSED
case CHEEVOS_JSON_KEY_AUTHOR:
if (ud->in_cheevos)
ud->field = &ud->author;
ud->field_string = &ud->cheevo.author;
break;
case CHEEVOS_JSON_KEY_MODIFIED:
if (ud->in_cheevos)
ud->field = &ud->modified;
ud->field_string = &ud->cheevo.modified;
break;
case CHEEVOS_JSON_KEY_CREATED:
if (ud->in_cheevos)
ud->field = &ud->created;
break;
ud->field_string = &ud->cheevo.created;
break; */
case CHEEVOS_JSON_KEY_BADGENAME:
if (ud->in_cheevos)
ud->field = &ud->badge;
ud->field_string = &ud->cheevo.badge;
break;
case CHEEVOS_JSON_KEY_FLAGS:
if (ud->in_cheevos)
ud->field = &ud->flags;
ud->field_unsigned = &ud->cheevo_flags;
break;
case CHEEVOS_JSON_KEY_FORMAT:
if (ud->in_lboards)
ud->field = &ud->format;
ud->field_string = &ud->lboard_format;
break;
default:
break;
}
return 0;
return true;
}
static int rcheevos_read_string(void* userdata,
static bool rcheevos_read_string(void* userdata,
const char* string, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
if (ud->field)
if (ud->field_string)
{
ud->field->string = string;
ud->field->length = length;
}
else if (ud->is_title)
{
ud->patchdata->title = rcheevos_unescape_string(string, length);
ud->is_title = 0;
}
else if (ud->is_richpresence)
{
ud->patchdata->richpresence_script = rcheevos_unescape_string(string, length);
ud->is_richpresence = 0;
if (*ud->field_string)
CHEEVOS_FREE((*ud->field_string));
*ud->field_string = strdup(string);
ud->field_string = NULL;
}
return 0;
return true;
}
static int rcheevos_read_number(void* userdata,
static bool rcheevos_read_number(void* userdata,
const char* number, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
if (ud->field)
if (ud->field_unsigned)
{
ud->field->string = number;
ud->field->length = length;
}
else if (ud->is_game_id)
{
ud->patchdata->game_id = (unsigned)strtol(number, NULL, 10);
ud->is_game_id = 0;
}
else if (ud->is_console_id)
{
ud->patchdata->console_id = (unsigned)strtol(number, NULL, 10);
ud->is_console_id = 0;
*ud->field_unsigned = (unsigned)strtol(number, NULL, 10);
ud->field_unsigned = NULL;
}
return 0;
return true;
}
int rcheevos_get_patchdata(const char* json, rcheevos_rapatchdata_t* patchdata)
{
static const jsonsax_handlers_t handlers =
{
NULL,
NULL,
NULL,
rcheevos_read_end_object,
NULL,
rcheevos_read_end_array,
rcheevos_read_key,
NULL,
rcheevos_read_string,
rcheevos_read_number,
NULL,
NULL
};
rcheevos_readud_t ud;
int res;
bool res;
int has_error;
/* Count the number of achievements in the JSON file. */
res = rcheevos_count_cheevos(json, &patchdata->core_count,
&patchdata->unofficial_count, &patchdata->lboard_count, &has_error);
if (res != JSONSAX_OK || has_error)
if (!res || has_error)
return -1;
/* Allocate the achievements. */
@@ -626,19 +527,27 @@ int rcheevos_get_patchdata(const char* json, rcheevos_rapatchdata_t* patchdata)
patchdata->title = NULL;
/* Load the achievements. */
ud.in_cheevos = 0;
ud.in_lboards = 0;
ud.is_game_id = 0;
ud.is_title = 0;
ud.is_console_id = 0;
ud.is_richpresence = 0;
ud.field = NULL;
ud.core_count = 0;
ud.unofficial_count = 0;
ud.lboard_count = 0;
memset(&ud, 0, sizeof(ud));
ud.patchdata = patchdata;
if (jsonsax_parse(json, &handlers, (void*)&ud) != JSONSAX_OK)
res = rjson_parse_quick(json, &ud, CHEEVOS_RJSON_OPTIONS,
rcheevos_read_key,
rcheevos_read_string,
rcheevos_read_number,
NULL, rcheevos_read_end_object,
NULL, rcheevos_read_end_array,
NULL, NULL, NULL);
CHEEVOS_FREE(ud.cheevo.title);
CHEEVOS_FREE(ud.cheevo.description);
CHEEVOS_FREE(ud.cheevo.badge);
CHEEVOS_FREE(ud.cheevo.memaddr);
CHEEVOS_FREE(ud.lboard.title);
CHEEVOS_FREE(ud.lboard.description);
CHEEVOS_FREE(ud.lboard.mem);
CHEEVOS_FREE(ud.lboard_format);
if (!res)
{
rcheevos_free_patchdata(patchdata);
return -1;
@@ -683,7 +592,6 @@ void rcheevos_free_patchdata(rcheevos_rapatchdata_t* patchdata)
{
CHEEVOS_FREE(lboard->title);
CHEEVOS_FREE(lboard->description);
CHEEVOS_FREE(lboard->format);
CHEEVOS_FREE(lboard->mem);
}
@@ -698,6 +606,8 @@ void rcheevos_free_patchdata(rcheevos_rapatchdata_t* patchdata)
patchdata->core = NULL;
patchdata->unofficial = NULL;
patchdata->lboards = NULL;
patchdata->title = NULL;
patchdata->richpresence_script = NULL;
patchdata->core_count = 0;
patchdata->unofficial_count = 0;
patchdata->lboard_count = 0;
@@ -714,15 +624,23 @@ typedef struct
void* userdata;
} rcheevos_deactivate_t;
static int rcheevos_deactivate_index(void* userdata, unsigned int index)
static bool rcheevos_deactivate_elements_begin(void* userdata)
{
rcheevos_deactivate_t* ud = (rcheevos_deactivate_t*)userdata;
ud->is_element = 1;
return 0;
return true;
}
static int rcheevos_deactivate_number(void* userdata,
static bool rcheevos_deactivate_elements_stop(void* userdata)
{
rcheevos_deactivate_t* ud = (rcheevos_deactivate_t*)userdata;
ud->is_element = 0;
return true;
}
static bool rcheevos_deactivate_number(void* userdata,
const char* number, size_t length)
{
rcheevos_deactivate_t* ud = (rcheevos_deactivate_t*)userdata;
@@ -730,40 +648,30 @@ static int rcheevos_deactivate_number(void* userdata,
if (ud->is_element)
{
ud->is_element = 0;
id = (unsigned)strtol(number, NULL, 10);
ud->unlock_cb(id, ud->userdata);
}
return 0;
return true;
}
void rcheevos_deactivate_unlocks(const char* json, rcheevos_unlock_cb_t unlock_cb, void* userdata)
{
static const jsonsax_handlers_t handlers =
{
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
rcheevos_deactivate_index,
NULL,
rcheevos_deactivate_number,
NULL,
NULL
};
rcheevos_deactivate_t ud;
ud.is_element = 0;
ud.unlock_cb = unlock_cb;
ud.userdata = userdata;
jsonsax_parse(json, &handlers, (void*)&ud);
rjson_parse_quick(json, &ud, CHEEVOS_RJSON_OPTIONS,
NULL, NULL,
rcheevos_deactivate_number,
rcheevos_deactivate_elements_stop,
rcheevos_deactivate_elements_stop,
rcheevos_deactivate_elements_begin,
rcheevos_deactivate_elements_stop,
NULL, NULL, NULL);
}
/*****************************************************************************
+10 -7
View File
@@ -24,33 +24,36 @@
RETRO_BEGIN_DECLS
typedef struct {
typedef struct
{
const char* title;
const char* description;
const char* badge;
const char* memaddr;
unsigned points;
unsigned id;
unsigned active;
} rcheevos_racheevo_t;
typedef struct {
typedef struct
{
const char* title;
const char* description;
const char* format;
const char* mem;
unsigned id;
unsigned format;
} rcheevos_ralboard_t;
typedef struct {
unsigned game_id;
unsigned console_id;
typedef struct
{
char* title;
rcheevos_racheevo_t* core;
rcheevos_racheevo_t* unofficial;
rcheevos_ralboard_t* lboards;
char* richpresence_script;
unsigned game_id;
unsigned console_id;
unsigned core_count;
unsigned unofficial_count;
unsigned lboard_count;
-314
View File
@@ -1,314 +0,0 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2015-2018 - Andre Leiradella
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "fixup.h"
#include "cheevos.h"
#include "util.h"
#include "../retroarch.h"
#include "../core.h"
#include "../deps/rcheevos/include/rcheevos.h"
#include "../deps/rcheevos/include/rconsoles.h"
static int rcheevos_cmpaddr(const void* e1, const void* e2)
{
const rcheevos_fixup_t* f1 = (const rcheevos_fixup_t*)e1;
const rcheevos_fixup_t* f2 = (const rcheevos_fixup_t*)e2;
if (f1->address < f2->address)
return -1;
else if (f1->address > f2->address)
return 1;
return 0;
}
static size_t rcheevos_var_reduce(size_t addr, size_t mask)
{
while (mask)
{
size_t tmp = (mask - 1) & ~mask;
addr = (addr & tmp) | ((addr >> 1) & ~tmp);
mask = (mask & (mask - 1)) >> 1;
}
return addr;
}
static size_t rcheevos_var_highest_bit(size_t n)
{
n |= n >> 1;
n |= n >> 2;
n |= n >> 4;
n |= n >> 8;
n |= n >> 16;
return n ^ (n >> 1);
}
void rcheevos_fixup_init(rcheevos_fixups_t* fixups)
{
fixups->elements = NULL;
fixups->capacity = fixups->count = 0;
fixups->dirty = false;
}
void rcheevos_fixup_destroy(rcheevos_fixups_t* fixups)
{
CHEEVOS_FREE(fixups->elements);
rcheevos_fixup_init(fixups);
}
const uint8_t* rcheevos_fixup_find(
rcheevos_fixups_t* fixups, unsigned address, int console)
{
rcheevos_fixup_t key;
rcheevos_fixup_t* found;
const uint8_t* location;
if (fixups->dirty)
{
qsort(fixups->elements, fixups->count,
sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
fixups->dirty = false;
}
key.address = address;
found = (rcheevos_fixup_t*)bsearch(&key,
fixups->elements, fixups->count,
sizeof(rcheevos_fixup_t), rcheevos_cmpaddr);
if (found)
return found->location;
if (fixups->count == fixups->capacity)
{
unsigned new_capacity = fixups->capacity == 0 ? 16 : fixups->capacity * 2;
rcheevos_fixup_t* new_elements = (rcheevos_fixup_t*)
realloc(fixups->elements, new_capacity * sizeof(rcheevos_fixup_t));
if (!new_elements)
return NULL;
fixups->elements = new_elements;
fixups->capacity = new_capacity;
}
fixups->elements[fixups->count].address = address;
fixups->elements[fixups->count++].location = location =
rcheevos_patch_address(address, console);
fixups->dirty = true;
return location;
}
const uint8_t* rcheevos_patch_address(unsigned address, int console)
{
rarch_system_info_t* system = runloop_get_system_info();
const void* pointer = NULL;
unsigned original_address = address;
switch (console)
{
case RC_CONSOLE_NINTENDO:
if (address >= 0x0800 && address < 0x2000)
{
/* Address in the mirrorred RAM,
* adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "NES memory address in mirrorred RAM %X, adjusted to %X\n", address, address & 0x07ff);
address &= 0x07ff;
}
break;
case RC_CONSOLE_GAMEBOY_COLOR:
if (address >= 0xe000 && address <= 0xfdff)
{
/* Address in the echo RAM, adjust to real RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBC memory address in echo RAM %X, adjusted to %X\n", address, address - 0x2000);
address -= 0x2000;
}
break;
default:
break;
}
if (system->mmaps.num_descriptors != 0)
{
/* We have memory descriptors, use it. */
const rarch_memory_descriptor_t* desc = NULL;
const rarch_memory_descriptor_t* end = NULL;
/* Patch the address to correctly map it to the mmaps. */
switch (console)
{
case RC_CONSOLE_GAMEBOY_ADVANCE:
if (address < 0x8000)
{
/* Internal RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x3000000);
address += 0x3000000;
}
else
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "GBA memory address %X adjusted to %X\n", address, address + 0x2000000 - 0x8000);
address += 0x2000000 - 0x8000;
}
break;
case RC_CONSOLE_PC_ENGINE:
if (address < 0x002000)
{
/* RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1f0000);
address += 0x1f0000;
}
else if (address < 0x012000)
{
/* CD-ROM RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x100000 - 0x002000);
address += 0x100000 - 0x002000;
}
else if (address < 0x042000)
{
/* Super System Card RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x0d0000 - 0x012000);
address += 0x0d0000 - 0x012000;
}
else
{
/* CD-ROM battery backed RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "PCE memory address %X adjusted to %X\n", address, address + 0x1ee000 - 0x042000);
address += 0x1ee000 - 0x042000;
}
break;
case RC_CONSOLE_SUPER_NINTENDO:
if (address < 0x020000)
{
/* Work RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x7e0000);
address += 0x7e0000;
}
else
{
/* Save RAM. */
CHEEVOS_LOG(RCHEEVOS_TAG "SNES memory address %X adjusted to %X\n", address, address + 0x006000 - 0x020000);
address += 0x006000 - 0x020000;
}
break;
case RC_CONSOLE_SEGA_CD:
if (address < 0x010000)
{
/* Work RAM. */
address += 0xFF0000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
else
{
/* CD-ROM peripheral RAM - exposed at virtual address to avoid banking */
address += 0x80020000 - 0x010000;
CHEEVOS_LOG(RCHEEVOS_TAG "Sega CD memory address %X adjusted to %X\n", original_address, address);
}
break;
default:
break;
}
desc = system->mmaps.descriptors;
end = desc + system->mmaps.num_descriptors;
for (; desc < end; desc++)
{
if (((desc->core.start ^ address) & desc->core.select) == 0)
{
pointer = desc->core.ptr;
address -= desc->core.start;
if (desc->disconnect_mask)
address = (unsigned)rcheevos_var_reduce(
address & desc->disconnect_mask, desc->core.disconnect);
if (address >= desc->core.len)
address -= rcheevos_var_highest_bit(address);
address += desc->core.offset;
CHEEVOS_LOG(RCHEEVOS_TAG "address %X set to descriptor %d at offset %X\n", original_address,
(int)((desc - system->mmaps.descriptors) + 1), address);
break;
}
}
}
else if (console == RC_CONSOLE_GAMEBOY_ADVANCE)
{
/* The RetroAchievements implementation of memory access
* for GBA puts the save RAM first,
* so the default looping behavior below is backwards.
*
* If the core doesn't expose a
* memory map, say it isn't supported.
*/
pointer = NULL;
}
else
{
unsigned i;
for (i = 0; i < 4; i++)
{
retro_ctx_memory_info_t meminfo;
switch (i)
{
case 0:
meminfo.id = RETRO_MEMORY_SYSTEM_RAM;
break;
case 1:
meminfo.id = RETRO_MEMORY_SAVE_RAM;
break;
case 2:
meminfo.id = RETRO_MEMORY_VIDEO_RAM;
break;
case 3:
meminfo.id = RETRO_MEMORY_RTC;
break;
}
core_get_memory(&meminfo);
if (address < meminfo.size)
{
pointer = meminfo.data;
break;
}
/**
* HACK Subtract the correct amount of bytes to
* reach the save RAM as its size is not always
* set correctly in the core.
*/
if (i == 0 && console == RC_CONSOLE_NINTENDO)
address -= 0x6000;
else
address -= meminfo.size;
}
}
if (!pointer)
{
CHEEVOS_LOG(RCHEEVOS_TAG "address %X not supported\n", original_address);
return NULL;
}
return (const uint8_t*)pointer + address;
}
-12
View File
@@ -1,12 +0,0 @@
#include "hash.h"
uint32_t rcheevos_djb2(const char* str, size_t length)
{
const unsigned char* aux = (const unsigned char*)str;
uint32_t hash = 5381;
while (length--)
hash = ( hash << 5 ) + hash + *aux++;
return hash;
}
-30
View File
@@ -1,30 +0,0 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2015-2018 - Andre Leiradella
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __RARCH_CHEEVOS_HASH_H
#define __RARCH_CHEEVOS_HASH_H
#include <stdint.h>
#include <stddef.h>
#include <retro_common_api.h>
RETRO_BEGIN_DECLS
uint32_t rcheevos_djb2(const char* str, size_t length);
RETRO_END_DECLS
#endif
+535
View File
@@ -0,0 +1,535 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2021 - David G.F.
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#ifdef HAVE_NETWORKING
#include <net/net_compat.h>
#include <net/net_socket.h>
#endif
#include <streams/stdin_stream.h>
#include <string/stdstring.h>
#include "verbosity.h"
#include "command.h"
#define CMD_BUF_SIZE 4096
#if defined(HAVE_COMMAND)
/* Generic command parse utilities */
static bool command_get_arg(const char *tok,
const char **arg, unsigned *index)
{
unsigned i;
for (i = 0; i < ARRAY_SIZE(map); i++)
{
if (string_is_equal(tok, map[i].str))
{
if (arg)
*arg = NULL;
if (index)
*index = i;
return true;
}
}
for (i = 0; i < ARRAY_SIZE(action_map); i++)
{
const char *str = strstr(tok, action_map[i].str);
if (str == tok)
{
const char *argument = str + strlen(action_map[i].str);
if (*argument != ' ' && *argument != '\0')
return false;
if (arg)
*arg = argument + 1;
if (index)
*index = i;
return true;
}
}
return false;
}
static void command_parse_sub_msg(command_t *handle, const char *tok)
{
const char *arg = NULL;
unsigned index = 0;
if (command_get_arg(tok, &arg, &index))
{
if (arg)
{
if (!action_map[index].action(handle, arg))
RARCH_ERR("Command \"%s\" failed.\n", arg);
}
else
handle->state[map[index].id] = true;
}
else
RARCH_WARN("%s \"%s\" %s.\n",
msg_hash_to_str(MSG_UNRECOGNIZED_COMMAND),
tok,
msg_hash_to_str(MSG_RECEIVED));
}
static void command_parse_msg(
command_t *handle, char *buf)
{
char *save = NULL;
const char *tok = strtok_r(buf, "\n", &save);
while (tok)
{
command_parse_sub_msg(handle, tok);
tok = strtok_r(NULL, "\n", &save);
}
}
#if defined(HAVE_NETWORK_CMD)
typedef struct
{
/* Network socket FD */
int net_fd;
/* Source address for the command received */
struct sockaddr_storage cmd_source;
/* Size of the previous structure in use */
socklen_t cmd_source_len;
} command_network_t;
static void network_command_reply(
command_t *cmd,
const char * data, size_t len)
{
command_network_t *netcmd = (command_network_t*)cmd->userptr;
/* Respond (fire and forget since it's UDP) */
sendto(netcmd->net_fd, data, len, 0,
(struct sockaddr*)&netcmd->cmd_source, netcmd->cmd_source_len);
}
static void network_command_free(command_t *handle)
{
command_network_t *netcmd = (command_network_t*)handle->userptr;
if (netcmd->net_fd >= 0)
socket_close(netcmd->net_fd);
free(netcmd);
free(handle);
}
static void command_network_poll(command_t *handle)
{
fd_set fds;
struct timeval tmp_tv = {0};
command_network_t *netcmd = (command_network_t*)handle->userptr;
if (netcmd->net_fd < 0)
return;
FD_ZERO(&fds);
FD_SET(netcmd->net_fd, &fds);
if (socket_select(netcmd->net_fd + 1, &fds, NULL, NULL, &tmp_tv) <= 0)
return;
if (!FD_ISSET(netcmd->net_fd, &fds))
return;
for (;;)
{
ssize_t ret;
char buf[1024];
buf[0] = '\0';
netcmd->cmd_source_len = sizeof(struct sockaddr_storage);
ret = recvfrom(netcmd->net_fd, buf, sizeof(buf) - 1, 0,
(struct sockaddr*)&netcmd->cmd_source,
&netcmd->cmd_source_len);
if (ret <= 0)
break;
buf[ret] = '\0';
command_parse_msg(handle, buf);
}
}
command_t* command_network_new(uint16_t port)
{
struct addrinfo *res = NULL;
command_t *cmd = (command_t*)calloc(1, sizeof(command_t));
command_network_t *netcmd = (command_network_t*)calloc(
1, sizeof(command_network_t));
int fd = socket_init(
(void**)&res, port, NULL, SOCKET_TYPE_DATAGRAM);
RARCH_LOG("%s %hu.\n",
msg_hash_to_str(MSG_BRINGING_UP_COMMAND_INTERFACE_ON_PORT),
(unsigned short)port);
if (fd < 0)
goto error;
netcmd->net_fd = fd;
cmd->userptr = netcmd;
cmd->poll = command_network_poll;
cmd->replier = network_command_reply;
cmd->destroy = network_command_free;
if (!socket_nonblock(netcmd->net_fd))
goto error;
if (!socket_bind(netcmd->net_fd, (void*)res))
{
RARCH_ERR("%s.\n",
msg_hash_to_str(MSG_FAILED_TO_BIND_SOCKET));
goto error;
}
freeaddrinfo_retro(res);
return cmd;
error:
if (res)
freeaddrinfo_retro(res);
free(netcmd);
free(cmd);
return NULL;
}
#endif
#if defined(HAVE_STDIN_CMD)
typedef struct
{
/* Buffer and pointer for stdin reads */
size_t stdin_buf_ptr;
char stdin_buf[CMD_BUF_SIZE];
} command_stdin_t;
static void stdin_command_reply(
command_t *cmd,
const char * data, size_t len)
{
/* Just write to stdout! */
fwrite(data, 1, len, stdout);
}
static void stdin_command_free(command_t *handle)
{
free(handle->userptr);
free(handle);
}
static void command_stdin_poll(command_t *handle)
{
ptrdiff_t msg_len;
char *last_newline = NULL;
command_stdin_t *stdincmd = (command_stdin_t*)handle->userptr;
ssize_t ret = read_stdin(
stdincmd->stdin_buf + stdincmd->stdin_buf_ptr,
CMD_BUF_SIZE - stdincmd->stdin_buf_ptr - 1);
if (ret == 0)
return;
stdincmd->stdin_buf_ptr += ret;
stdincmd->stdin_buf[stdincmd->stdin_buf_ptr] = '\0';
last_newline = strrchr(stdincmd->stdin_buf, '\n');
if (!last_newline)
{
/* We're receiving bogus data in pipe
* (no terminating newline), flush out the buffer. */
if (stdincmd->stdin_buf_ptr + 1 >= CMD_BUF_SIZE)
{
stdincmd->stdin_buf_ptr = 0;
stdincmd->stdin_buf[0] = '\0';
}
return;
}
*last_newline++ = '\0';
msg_len = last_newline - stdincmd->stdin_buf;
command_parse_msg(handle, stdincmd->stdin_buf);
memmove(stdincmd->stdin_buf, last_newline,
stdincmd->stdin_buf_ptr - msg_len);
stdincmd->stdin_buf_ptr -= msg_len;
}
command_t* command_stdin_new(void)
{
command_t *cmd;
command_stdin_t *stdincmd;
#ifndef _WIN32
#ifdef HAVE_NETWORKING
if (!socket_nonblock(STDIN_FILENO))
return NULL;
#endif
#endif
cmd = (command_t*)calloc(1, sizeof(command_t));
stdincmd = (command_stdin_t*)calloc(1, sizeof(command_stdin_t));
cmd->userptr = stdincmd;
cmd->poll = command_stdin_poll;
cmd->replier = stdin_command_reply;
cmd->destroy = stdin_command_free;
return cmd;
}
#endif
#if defined(HAVE_LAKKA)
#include <sys/un.h>
#define MAX_USER_CONNECTIONS 4
typedef struct
{
/* File descriptor for the domain socket */
int sfd;
/* Client sockets */
int userfd[MAX_USER_CONNECTIONS];
/* Last received user socket */
int last_fd;
} command_uds_t;
static void uds_command_reply(
command_t *cmd,
const char * data, size_t len)
{
command_uds_t *subcmd = (command_uds_t*)cmd->userptr;
write(subcmd->last_fd, data, len);
}
static void uds_command_free(command_t *handle)
{
int i;
command_uds_t *udscmd = (command_uds_t*)handle->userptr;
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
if (udscmd->userfd[i] >= 0)
socket_close(udscmd->userfd[i]);
socket_close(udscmd->sfd);
free(handle->userptr);
free(handle);
}
static void command_uds_poll(command_t *handle)
{
int i;
fd_set fds;
command_uds_t *udscmd = (command_uds_t*)handle->userptr;
int maxfd = udscmd->sfd;
struct timeval tmp_tv = {0};
if (udscmd->sfd < 0)
return;
FD_ZERO(&fds);
FD_SET(udscmd->sfd, &fds);
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
{
if (udscmd->userfd[i] >= 0)
{
maxfd = MAX(udscmd->userfd[i], maxfd);
FD_SET(udscmd->userfd[i], &fds);
}
}
if (socket_select(maxfd + 1, &fds, NULL, NULL, &tmp_tv) <= 0)
return;
/* Read data from clients and process commands */
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
{
if (udscmd->userfd[i] >= 0 && FD_ISSET(udscmd->userfd[i], &fds))
{
while (1)
{
char buf[2048];
ssize_t ret = recv(udscmd->userfd[i], buf, sizeof(buf) - 1, 0);
if (ret < 0)
break; /* no more data */
if (!ret)
{
socket_close(udscmd->userfd[i]);
udscmd->userfd[i] = -1;
break;
}
buf[ret] = 0;
udscmd->last_fd = udscmd->userfd[i];
command_parse_msg(handle, buf);
}
}
}
if (FD_ISSET(udscmd->sfd, &fds))
{
/* Accepts new connections from clients */
int cfd = accept(udscmd->sfd, NULL, NULL);
if (cfd >= 0) {
if (!socket_nonblock(cfd))
socket_close(cfd);
else {
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
if (udscmd->userfd[i] < 0)
{
udscmd->userfd[i] = cfd;
break;
}
}
}
}
}
command_t* command_uds_new(void)
{
int i;
command_t *cmd;
command_uds_t *subcmd;
struct sockaddr_un addr;
const char *sp = "retroarch/cmd";
socklen_t addrsz = offsetof(struct sockaddr_un, sun_path) + strlen(sp) + 1;
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd < 0)
return NULL;
/* use an abstract socket for simplicity */
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strcpy(&addr.sun_path[1], sp);
if (bind(fd, (struct sockaddr*)&addr, addrsz) < 0 ||
listen(fd, MAX_USER_CONNECTIONS) < 0)
{
socket_close(fd);
return NULL;
}
if (!socket_nonblock(fd))
{
socket_close(fd);
return NULL;
}
cmd = (command_t*)calloc(1, sizeof(command_t));
subcmd = (command_uds_t*)calloc(1, sizeof(command_uds_t));
subcmd->sfd = fd;
subcmd->last_fd = -1;
for (i = 0; i < MAX_USER_CONNECTIONS; i++)
subcmd->userfd[i] = -1;
cmd->userptr = subcmd;
cmd->poll = command_uds_poll;
cmd->replier = uds_command_reply;
cmd->destroy = uds_command_free;
return cmd;
}
#endif
/* Routines used to invoke retroarch command ... */
#ifdef HAVE_NETWORK_CMD
static bool command_verify(const char *cmd)
{
unsigned i;
if (command_get_arg(cmd, NULL, NULL))
return true;
RARCH_ERR("Command \"%s\" is not recognized by the program.\n", cmd);
RARCH_ERR("\tValid commands:\n");
for (i = 0; i < ARRAY_SIZE(map); i++)
RARCH_ERR("\t\t%s\n", map[i].str);
for (i = 0; i < ARRAY_SIZE(action_map); i++)
RARCH_ERR("\t\t%s %s\n", action_map[i].str, action_map[i].arg_desc);
return false;
}
bool command_network_send(const char *cmd_)
{
char *command = NULL;
char *save = NULL;
const char *cmd = NULL;
if (!network_init())
return false;
if (!(command = strdup(cmd_)))
return false;
cmd = strtok_r(command, ";", &save);
if (cmd)
{
uint16_t port = DEFAULT_NETWORK_CMD_PORT;
const char *port_ = NULL;
const char *host = strtok_r(NULL, ";", &save);
if (host)
port_ = strtok_r(NULL, ";", &save);
else
{
#ifdef _WIN32
host = "127.0.0.1";
#else
host = "localhost";
#endif
}
if (port_)
port = strtoul(port_, NULL, 0);
RARCH_LOG("%s: \"%s\" to %s:%hu\n",
msg_hash_to_str(MSG_SENDING_COMMAND),
cmd, host, (unsigned short)port);
if (command_verify(cmd) && udp_send_packet(host, port, cmd))
{
free(command);
return true;
}
}
free(command);
return false;
}
#endif
#endif
+151 -7
View File
@@ -1,7 +1,7 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2016-2019 - Brad Parker
* Copyright (C) 2021 - David G.F.
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@@ -23,19 +23,45 @@
#include <boolean.h>
#include <retro_common_api.h>
#include "retroarch.h"
#include "input/input_defines.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
RETRO_BEGIN_DECLS
typedef struct command command_t;
#define MAX_CMD_DRIVERS 3
#define DEFAULT_NETWORK_CMD_PORT 55355
typedef struct command_handle
struct cmd_map
{
command_t *handle;
const char *str;
unsigned id;
} command_handle_t;
};
struct command_handler;
typedef void (*command_poller_t)(struct command_handler *cmd);
typedef void (*command_replier_t)(struct command_handler *cmd, const char * data, size_t len);
typedef void (*command_destructor_t)(struct command_handler *cmd);
struct command_handler
{
/* Interface to poll the driver */
command_poller_t poll;
/* Interface to reply */
command_replier_t replier;
/* Interface to delete the underlying command */
command_destructor_t destroy;
/* Underlying command storage */
void *userptr;
/* State received */
bool state[RARCH_BIND_LIST_END];
};
typedef struct command_handler command_t;
enum event_command
{
@@ -48,6 +74,7 @@ enum event_command
CMD_EVENT_LOAD_CORE,
CMD_EVENT_LOAD_CORE_PERSIST,
CMD_EVENT_UNLOAD_CORE,
CMD_EVENT_CLOSE_CONTENT,
CMD_EVENT_LOAD_STATE,
/* Swaps the current state with what's on the undo load buffer */
CMD_EVENT_UNDO_LOAD_STATE,
@@ -173,7 +200,6 @@ enum event_command
CMD_EVENT_AUDIO_REINIT,
/* Resizes windowed scale. Will reinitialize video driver. */
CMD_EVENT_RESIZE_WINDOWED_SCALE,
CMD_EVENT_LOG_FILE_DEINIT,
/* Toggles disk eject. */
CMD_EVENT_DISK_EJECT_TOGGLE,
/* Cycle to next disk. */
@@ -203,6 +229,7 @@ enum event_command
CMD_EVENT_OSK_TOGGLE,
CMD_EVENT_RECORDING_TOGGLE,
CMD_EVENT_STREAMING_TOGGLE,
CMD_EVENT_RUNAHEAD_TOGGLE,
CMD_EVENT_AI_SERVICE_TOGGLE,
CMD_EVENT_BSV_RECORDING_TOGGLE,
CMD_EVENT_SHADER_NEXT,
@@ -211,9 +238,25 @@ enum event_command
CMD_EVENT_CHEAT_INDEX_MINUS,
CMD_EVENT_CHEAT_TOGGLE,
CMD_EVENT_AI_SERVICE_CALL,
CMD_EVENT_SAVE_FILES
CMD_EVENT_SAVE_FILES,
CMD_EVENT_CONTROLLER_INIT
};
typedef struct command_handle
{
command_t *handle;
unsigned id;
} command_handle_t;
enum cmd_source_t
{
CMD_NONE = 0,
CMD_STDIN,
CMD_NETWORK
};
struct rarch_state;
/**
* command_event:
* @cmd : Command index.
@@ -224,6 +267,107 @@ enum event_command
**/
bool command_event(enum event_command action, void *data);
/* Constructors for the supported drivers */
command_t* command_network_new(uint16_t port);
command_t* command_stdin_new(void);
command_t* command_uds_new(void);
bool command_network_send(const char *cmd_);
/* These forward declarations need to be declared before
* the global state is declared */
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
bool command_set_shader(command_t *cmd, const char *arg);
#endif
#if defined(HAVE_COMMAND)
bool command_version(command_t *cmd, const char* arg);
bool command_get_status(command_t *cmd, const char* arg);
bool command_get_config_param(command_t *cmd, const char* arg);
bool command_show_osd_msg(command_t *cmd, const char* arg);
#ifdef HAVE_CHEEVOS
bool command_read_ram(command_t *cmd, const char *arg);
bool command_write_ram(command_t *cmd, const char *arg);
#endif
bool command_read_memory(command_t *cmd, const char *arg);
bool command_write_memory(command_t *cmd, const char *arg);
struct cmd_action_map
{
const char *str;
bool (*action)(command_t* cmd, const char *arg);
const char *arg_desc;
};
static const struct cmd_action_map action_map[] = {
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
{ "SET_SHADER", command_set_shader, "<shader path>" },
#endif
{ "VERSION", command_version, "No argument"},
{ "GET_STATUS", command_get_status, "No argument" },
{ "GET_CONFIG_PARAM", command_get_config_param, "<param name>" },
{ "SHOW_MSG", command_show_osd_msg, "No argument" },
#if defined(HAVE_CHEEVOS)
/* These functions use achievement addresses and only work if a game with achievements is
* loaded. READ_CORE_MEMORY and WRITE_CORE_MEMORY are preferred and use system addresses. */
{ "READ_CORE_RAM", command_read_ram, "<address> <number of bytes>" },
{ "WRITE_CORE_RAM", command_write_ram, "<address> <byte1> <byte2> ..." },
#endif
{ "READ_CORE_MEMORY", command_read_memory, "<address> <number of bytes>" },
{ "WRITE_CORE_MEMORY",command_write_memory, "<address> <byte1> <byte2> ..." },
};
static const struct cmd_map map[] = {
{ "FAST_FORWARD", RARCH_FAST_FORWARD_KEY },
{ "FAST_FORWARD_HOLD", RARCH_FAST_FORWARD_HOLD_KEY },
{ "SLOWMOTION", RARCH_SLOWMOTION_KEY },
{ "SLOWMOTION_HOLD", RARCH_SLOWMOTION_HOLD_KEY },
{ "LOAD_STATE", RARCH_LOAD_STATE_KEY },
{ "SAVE_STATE", RARCH_SAVE_STATE_KEY },
{ "FULLSCREEN_TOGGLE", RARCH_FULLSCREEN_TOGGLE_KEY },
{ "CLOSE_CONTENT", RARCH_CLOSE_CONTENT_KEY },
{ "QUIT", RARCH_QUIT_KEY },
{ "STATE_SLOT_PLUS", RARCH_STATE_SLOT_PLUS },
{ "STATE_SLOT_MINUS", RARCH_STATE_SLOT_MINUS },
{ "REWIND", RARCH_REWIND },
{ "BSV_RECORD_TOGGLE", RARCH_BSV_RECORD_TOGGLE },
{ "PAUSE_TOGGLE", RARCH_PAUSE_TOGGLE },
{ "FRAMEADVANCE", RARCH_FRAMEADVANCE },
{ "RESET", RARCH_RESET },
{ "SHADER_NEXT", RARCH_SHADER_NEXT },
{ "SHADER_PREV", RARCH_SHADER_PREV },
{ "CHEAT_INDEX_PLUS", RARCH_CHEAT_INDEX_PLUS },
{ "CHEAT_INDEX_MINUS", RARCH_CHEAT_INDEX_MINUS },
{ "CHEAT_TOGGLE", RARCH_CHEAT_TOGGLE },
{ "SCREENSHOT", RARCH_SCREENSHOT },
{ "MUTE", RARCH_MUTE },
{ "OSK", RARCH_OSK },
{ "FPS_TOGGLE", RARCH_FPS_TOGGLE },
{ "SEND_DEBUG_INFO", RARCH_SEND_DEBUG_INFO },
{ "NETPLAY_HOST_TOGGLE", RARCH_NETPLAY_HOST_TOGGLE },
{ "NETPLAY_GAME_WATCH", RARCH_NETPLAY_GAME_WATCH },
{ "VOLUME_UP", RARCH_VOLUME_UP },
{ "VOLUME_DOWN", RARCH_VOLUME_DOWN },
{ "OVERLAY_NEXT", RARCH_OVERLAY_NEXT },
{ "DISK_EJECT_TOGGLE", RARCH_DISK_EJECT_TOGGLE },
{ "DISK_NEXT", RARCH_DISK_NEXT },
{ "DISK_PREV", RARCH_DISK_PREV },
{ "GRAB_MOUSE_TOGGLE", RARCH_GRAB_MOUSE_TOGGLE },
{ "UI_COMPANION_TOGGLE", RARCH_UI_COMPANION_TOGGLE },
{ "GAME_FOCUS_TOGGLE", RARCH_GAME_FOCUS_TOGGLE },
{ "MENU_TOGGLE", RARCH_MENU_TOGGLE },
{ "RECORDING_TOGGLE", RARCH_RECORDING_TOGGLE },
{ "STREAMING_TOGGLE", RARCH_STREAMING_TOGGLE },
{ "RUNAHEAD_TOGGLE", RARCH_RUNAHEAD_TOGGLE },
{ "MENU_UP", RETRO_DEVICE_ID_JOYPAD_UP },
{ "MENU_DOWN", RETRO_DEVICE_ID_JOYPAD_DOWN },
{ "MENU_LEFT", RETRO_DEVICE_ID_JOYPAD_LEFT },
{ "MENU_RIGHT", RETRO_DEVICE_ID_JOYPAD_RIGHT },
{ "MENU_A", RETRO_DEVICE_ID_JOYPAD_A },
{ "MENU_B", RETRO_DEVICE_ID_JOYPAD_B },
{ "AI_SERVICE", RARCH_AI_SERVICE },
};
#endif
RETRO_END_DECLS
#endif
+201 -46
View File
@@ -37,6 +37,17 @@
#include "gfx/common/ctr_common.h"
#endif
/* Required for OpenDingux IPU filter + refresh
* rate settings */
#if defined(DINGUX)
#include "dingux/dingux_utils.h"
#endif
/* Required for menu screensaver animation */
#if defined(HAVE_MATERIALUI) || defined(HAVE_XMB) || defined(HAVE_OZONE)
#include "menu/menu_screensaver.h"
#endif
#if defined(HW_RVL)
#define MAX_GAMMA_SETTING 30
#elif defined(GEKKO)
@@ -45,7 +56,7 @@
#define MAX_GAMMA_SETTING 1
#endif
#if defined(XENON) || defined(_XBOX360) || defined(__CELLOS_LV2__)
#if defined(XENON) || defined(_XBOX360) || defined(__PSL1GHT__) || defined(__PS3__)
#define DEFAULT_ASPECT_RATIO 1.7778f
#elif defined(_XBOX1) || defined(GEKKO) || defined(ANDROID)
#define DEFAULT_ASPECT_RATIO 1.3333f
@@ -57,6 +68,8 @@
#define DEFAULT_MOUSE_SCALE 1
#endif
#define DEFAULT_TOUCH_SCALE 1
#if defined(RARCH_MOBILE) || defined(HAVE_LIBNX) || defined(__WINRT__)
#define DEFAULT_POINTER_ENABLE true
#else
@@ -67,7 +80,7 @@
* we need to extract to a user-writable directory on first boot.
*
* Examples include: Android, iOS/OSX) */
#if defined(ANDROID) || defined(IOS)
#if defined(ANDROID) || defined(__APPLE__)
#define DEFAULT_BUNDLE_ASSETS_EXTRACT_ENABLE true
#else
#define DEFAULT_BUNDLE_ASSETS_EXTRACT_ENABLE false
@@ -129,6 +142,8 @@
* thumbnails of different sizes */
#define DEFAULT_MATERIALUI_THUMBNAIL_BACKGROUND_ENABLE true
#define DEFAULT_SCREEN_BRIGHTNESS 100
#define DEFAULT_CRT_SWITCH_RESOLUTION CRT_SWITCH_NONE
#define DEFAULT_CRT_SWITCH_RESOLUTION_SUPER 2560
@@ -141,6 +156,8 @@
#define DEFAULT_PLAYLIST_ENTRY_RENAME true
#define DEFAULT_WIFI_ENABLE true
#define DEFAULT_ACCESSIBILITY_ENABLE false
#define DEFAULT_ACCESSIBILITY_NARRATOR_SPEECH_SPEED 5
@@ -177,8 +194,9 @@
/* To start in Fullscreen, or not. */
#ifdef HAVE_STEAM
/* Start in fullscreen mode for Steam build */
#if defined(HAVE_STEAM) || defined(DINGUX)
/* Start in fullscreen mode for Steam and
* Dingux builds */
#define DEFAULT_FULLSCREEN true
#else
#define DEFAULT_FULLSCREEN false
@@ -199,8 +217,16 @@
/* Fullscreen resolution. A value of 0 uses the desktop
* resolution. */
#if defined(DINGUX)
#define DEFAULT_FULLSCREEN_X 320
#define DEFAULT_FULLSCREEN_Y 240
#else
#define DEFAULT_FULLSCREEN_X 0
#define DEFAULT_FULLSCREEN_Y 0
#endif
/* Force 4k resolution */
#define DEFAULT_FORCE_RESOLUTION false
/* Number of threads to use for video recording */
#define DEFAULT_VIDEO_RECORD_THREADS 2
@@ -220,6 +246,15 @@
#endif
#define DEFAULT_CHECK_FIRMWARE_BEFORE_LOADING false
/* Specifies whether to cache core info
* into a single (compressed) file for improved
* load times on platforms with slow IO */
#if defined(RARCH_CONSOLE)
#define DEFAULT_CORE_INFO_CACHE_ENABLE true
#else
#define DEFAULT_CORE_INFO_CACHE_ENABLE false
#endif
/* Specifies whether to 'reload' (fork and quit)
* RetroArch when launching content with the
* currently loaded core
@@ -259,12 +294,13 @@
*/
#define DEFAULT_FRAME_DELAY 0
/* Inserts a black frame inbetween frames.
* Useful for 120 Hz monitors who want to play 60 Hz material with eliminated
* ghosting. video_refresh_rate should still be configured as if it
* is a 60 Hz monitor (divide refresh rate by 2).
/* Inserts black frame(s) inbetween frames.
* Useful for Higher Hz monitors (set to multiples of 60 Hz) who want to play 60 Hz
* material with eliminated ghosting. video_refresh_rate should still be configured
* as if it is a 60 Hz monitor (divide refresh rate by multiple of 60 Hz).
*/
#define DEFAULT_BLACK_FRAME_INSERTION false
#define DEFAULT_BLACK_FRAME_INSERTION 0
/* Uses a custom swap interval for VSync.
* Set this to effectively halve monitor refresh rate.
@@ -308,7 +344,7 @@
#endif
/* Smooths picture. */
#if defined(_3DS) || defined(GEKKO) || defined(HW_RVL) || defined(PSP) || defined(VITA) || defined(SN_TARGET_PSP2) || defined(PS2) || defined(_XBOX)
#if defined(_3DS) || defined(GEKKO) || defined(HW_RVL) || defined(PSP) || defined(VITA) || defined(SN_TARGET_PSP2) || defined(PS2) || defined(_XBOX) || defined(DINGUX)
#define DEFAULT_VIDEO_SMOOTH true
#else
#define DEFAULT_VIDEO_SMOOTH false
@@ -320,6 +356,10 @@
/* On resize and fullscreen, rendering area will stay 4:3 */
#define DEFAULT_FORCE_ASPECT true
/* Only applies to Android 9.0 (API 28) and up */
/* Choose if the screen will be able to write around the notch or not */
#define DEFAULT_NOTCH_WRITE_OVER_ENABLE false
/* Enable use of shaders. */
#ifdef RARCH_CONSOLE
#define DEFAULT_SHADER_ENABLE true
@@ -327,6 +367,10 @@
#define DEFAULT_SHADER_ENABLE false
#endif
/* When presets are saved they will be saved using the #reference
* directive by default */
#define DEFAULT_VIDEO_SHADER_PRESET_SAVE_REFERENCE_ENABLE true
#define DEFAULT_SHADER_DELAY 0
/* Only scale in integer steps.
@@ -340,7 +384,7 @@
/* 1:1 PAR */
#define DEFAULT_ASPECT_RATIO_AUTO false
#if defined(__CELLOS_LV2) || defined(_XBOX360)
#if defined(_XBOX360) || defined(__PS3__)
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_16_9
#elif defined(PSP) || defined(_3DS) || defined(HAVE_LIBNX) || defined(VITA)
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_CORE
@@ -350,12 +394,34 @@
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_CORE
#endif
#if defined(DINGUX)
/* Enables aspect ratio correction (1:1 PAR) when
* using the IPU hardware scaler in Dingux devices */
#define DEFAULT_DINGUX_IPU_KEEP_ASPECT true
/* Sets image filtering method when using the
* IPU hardware scaler in Dingux devices */
#define DEFAULT_DINGUX_IPU_FILTER_TYPE DINGUX_IPU_FILTER_BICUBIC
#if defined(DINGUX_BETA)
/* Sets refresh rate of integral LCD panel
* in Dingux devices */
#define DEFAULT_DINGUX_REFRESH_RATE DINGUX_REFRESH_RATE_60HZ
#endif
#endif
/* Save configuration file on exit. */
#define DEFAULT_CONFIG_SAVE_ON_EXIT true
#define DEFAULT_SHOW_HIDDEN_FILES false
/* Initialise file browser with the last used start directory */
#define DEFAULT_USE_LAST_START_DIRECTORY false
#define DEFAULT_OVERLAY_HIDE_IN_MENU true
/* Automatically disable overlays when a
* controller is connected in port 1 */
#define DEFAULT_OVERLAY_HIDE_WHEN_GAMEPAD_CONNECTED false
#define DEFAULT_OVERLAY_SHOW_MOUSE_CURSOR true
#define DEFAULT_DISPLAY_KEYBOARD_OVERLAY false
@@ -366,12 +432,32 @@
#define DEFAULT_INPUT_OVERLAY_OPACITY 0.7f
#endif
#define DEFAULT_INPUT_OVERLAY_SCALE_LANDSCAPE 1.0f
#define DEFAULT_INPUT_OVERLAY_ASPECT_ADJUST_LANDSCAPE 0.0f
#define DEFAULT_INPUT_OVERLAY_X_SEPARATION_LANDSCAPE 0.0f
#define DEFAULT_INPUT_OVERLAY_Y_SEPARATION_LANDSCAPE 0.0f
#define DEFAULT_INPUT_OVERLAY_X_OFFSET_LANDSCAPE 0.0f
#define DEFAULT_INPUT_OVERLAY_Y_OFFSET_LANDSCAPE 0.0f
#define DEFAULT_INPUT_OVERLAY_SCALE_PORTRAIT 1.0f
#define DEFAULT_INPUT_OVERLAY_ASPECT_ADJUST_PORTRAIT 0.0f
#define DEFAULT_INPUT_OVERLAY_X_SEPARATION_PORTRAIT 0.0f
#define DEFAULT_INPUT_OVERLAY_Y_SEPARATION_PORTRAIT 0.0f
#define DEFAULT_INPUT_OVERLAY_X_OFFSET_PORTRAIT 0.0f
#define DEFAULT_INPUT_OVERLAY_Y_OFFSET_PORTRAIT 0.0f
#if defined(RARCH_MOBILE)
#define DEFAULT_OVERLAY_AUTO_ROTATE true
#else
#define DEFAULT_OVERLAY_AUTO_ROTATE false
#endif
#if defined(RARCH_MOBILE)
#define DEFAULT_INPUT_OVERLAY_AUTO_SCALE true
#else
#define DEFAULT_INPUT_OVERLAY_AUTO_SCALE false
#endif
#include "runtime_file.h"
#ifdef HAVE_MENU
#include "menu/menu_driver.h"
@@ -409,6 +495,8 @@
#define DEFAULT_SETTINGS_SHOW_LOGGING true
#define DEFAULT_SETTINGS_SHOW_FILE_BROWSER true
#define DEFAULT_SETTINGS_SHOW_FRAME_THROTTLE true
#define DEFAULT_SETTINGS_SHOW_RECORDING true
@@ -419,6 +507,8 @@
#define DEFAULT_SETTINGS_SHOW_AI_SERVICE true
#define DEFAULT_SETTINGS_SHOW_ACCESSIBILITY true
#define DEFAULT_SETTINGS_SHOW_POWER_MANAGEMENT true
#define DEFAULT_SETTINGS_SHOW_ACHIEVEMENTS true
@@ -482,18 +572,20 @@ static const bool menu_show_quit_retroarch = true;
static const bool menu_show_restart_retroarch = true;
static const bool menu_show_reboot = true;
static const bool menu_show_shutdown = true;
#if defined(HAVE_LAKKA) || defined(VITA) || defined(_3DS)
#if defined(HAVE_LAKKA) || defined(VITA)
static const bool menu_show_core_updater = false;
#else
static const bool menu_show_core_updater = true;
#endif
static const bool menu_show_legacy_thumbnail_updater = false;
static const bool menu_show_sublabels = true;
static const bool menu_show_sublabels = true;
static const bool menu_dynamic_wallpaper_enable = true;
static const bool menu_scroll_fast = false;
static const bool menu_scroll_fast = false;
#define DEFAULT_MENU_SCROLL_DELAY 256
#define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_LOOP)
static const float menu_ticker_speed = 2.0f;
#define DEFAULT_MENU_TICKER_TYPE (TICKER_TYPE_LOOP)
static const float menu_ticker_speed = 2.0f;
#define DEFAULT_MENU_TICKER_SMOOTH true
@@ -505,6 +597,21 @@ static const bool menu_savestate_resume = false;
#define DEFAULT_MENU_INSERT_DISK_RESUME true
#define DEFAULT_QUIT_ON_CLOSE_CONTENT QUIT_ON_CLOSE_CONTENT_DISABLED
/* While the menu is active, supported drivers
* will display a screensaver after SCREENSAVER_TIMEOUT
* seconds of inactivity. A timeout of zero disables
* the screensaver */
#define DEFAULT_MENU_SCREENSAVER_TIMEOUT 0
#if defined(HAVE_MATERIALUI) || defined(HAVE_XMB) || defined(HAVE_OZONE)
/* When menu screensaver is enabled, specifies
* animation effect and animation speed */
#define DEFAULT_MENU_SCREENSAVER_ANIMATION MENU_SCREENSAVER_BLANK
#define DEFAULT_MENU_SCREENSAVER_ANIMATION_SPEED 1.0f
#endif
static const bool content_show_settings = true;
static const bool content_show_favorites = true;
#ifdef HAVE_IMAGEVIEWER
@@ -536,6 +643,8 @@ static const bool content_show_playlists = true;
#endif
#ifdef HAVE_XMB
#define DEFAULT_XMB_ANIMATION 0
static const unsigned xmb_alpha_factor = 75;
static const unsigned menu_font_color_red = 255;
static const unsigned menu_font_color_green = 255;
@@ -572,6 +681,7 @@ static const float menu_header_opacity = 1.000;
#define DEFAULT_SHOW_ADVANCED_SETTINGS false
#define DEFAULT_RGUI_COLOR_THEME RGUI_THEME_CLASSIC_GREEN
#define DEFAULT_RGUI_TRANSPARENCY true
static const bool rgui_inline_thumbnails = false;
static const bool rgui_swap_thumbnails = false;
@@ -584,6 +694,7 @@ static const unsigned rgui_aspect_lock = RGUI_ASPECT_RATIO_LOCK_NONE;
static const bool rgui_shadows = false;
static const unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
#define DEFAULT_RGUI_PARTICLE_EFFECT_SPEED 1.0f
#define DEFAULT_RGUI_PARTICLE_EFFECT_SCREENSAVER true
static const bool rgui_extended_ascii = false;
#define DEFAULT_RGUI_SWITCH_ICONS true
#endif
@@ -605,24 +716,27 @@ static const bool default_auto_shaders_enable = true;
static const bool default_sort_savefiles_enable = false;
static const bool default_sort_savestates_enable = false;
static const bool default_sort_savefiles_by_content_enable = false;
static const bool default_sort_savestates_by_content_enable = false;
static const bool default_sort_screenshots_by_content_enable = false;
static const bool default_savestates_in_content_dir = false;
static const bool default_savefiles_in_content_dir = false;
static const bool default_systemfiles_in_content_dir = false;
static const bool default_screenshots_in_content_dir = false;
#if defined(__CELLOS_LV2__) || defined(_XBOX1) || defined(_XBOX360) || defined(DINGUX)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L3_R3;
#if defined(_XBOX1) || defined(__PS3__) || defined(_XBOX360) || defined(DINGUX)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L3_R3
#elif defined(PS2) || defined(PSP)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_HOLD_START;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_HOLD_START
#elif defined(VITA)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L1_R1_START_SELECT;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L1_R1_START_SELECT
#elif defined(SWITCH) || defined(ORBIS)
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_START_SELECT;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_START_SELECT
#elif TARGET_OS_TV
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_DOWN_Y_L_R;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_DOWN_Y_L_R
#else
static const unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_NONE;
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_NONE
#endif
#if defined(VITA)
@@ -684,6 +798,10 @@ static const float message_bgcolor_opacity = 1.0f;
/* Watch shader files for changes and auto-apply as necessary. */
#define DEFAULT_VIDEO_SHADER_WATCH_FILES false
/* Initialise file browser with last used directory
* when selecting shader presets/passes via the menu */
#define DEFAULT_VIDEO_SHADER_REMEMBER_LAST_DIR false
/* Screenshots named automatically. */
#define DEFAULT_AUTO_SCREENSHOT_FILENAME true
@@ -756,16 +874,14 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_NOTIFICATION_SHOW_AUTOCONFIG true
#endif
#if defined(HAVE_SCREENSHOTS)
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN true
#else
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_TAKEN false
#endif
/* Display a notification when cheats are being
* applied */
#define DEFAULT_NOTIFICATION_SHOW_CHEATS_APPLIED true
/* Display a notification when applying an
* IPS/BPS/UPS patch file */
#define DEFAULT_NOTIFICATION_SHOW_PATCH_APPLIED true
/* Display a notification when loading an
* input remap file */
#define DEFAULT_NOTIFICATION_SHOW_REMAP_LOAD true
@@ -782,6 +898,7 @@ static const bool audio_enable_menu_bgm = false;
* content */
#define DEFAULT_NOTIFICATION_SHOW_FAST_FORWARD true
#if defined(HAVE_SCREENSHOTS)
/*Display a notification when taking a screenshot*/
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT true
@@ -791,6 +908,17 @@ static const bool audio_enable_menu_bgm = false;
/* Display a white flashing effect with the desired
* duration when taking a screenshot*/
#define DEFAULT_NOTIFICATION_SHOW_SCREENSHOT_FLASH 0
#endif
/* Display a notification when setting the refresh rate*/
#if defined(_3DS) || (defined(DINGUX) && defined(DINGUX_BETA))
/* 3DS and OpenDingux Beta devices set refresh rate
* on gfx driver init - set default notification
* state to 'false' in order to avoid OSD log spam */
#define DEFAULT_NOTIFICATION_SHOW_REFRESH_RATE false
#else
#define DEFAULT_NOTIFICATION_SHOW_REFRESH_RATE true
#endif
/* Output samplerate. */
#ifdef GEKKO
@@ -898,7 +1026,7 @@ static const bool audio_enable_menu_bgm = false;
/* Saves non-volatile SRAM at a regular interval.
* It is measured in seconds. A value of 0 disables autosave. */
#if defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN32) || defined(OSX) || defined(ANDROID) || defined(IOS)
#if defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN32) || defined(OSX) || defined(ANDROID) || defined(IOS) || defined(DINGUX)
/* Flush to file every 10 seconds on modern platforms by default */
#define DEFAULT_AUTOSAVE_INTERVAL 10
#else
@@ -951,6 +1079,15 @@ static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_PREFE
* to the highest existing value. */
static const bool savestate_auto_index = false;
/* Specifies the maximum number of savestates to keep
* when savestate auto index is enabled
* > When limit is exceeded, savestate with the lowest
* index will be deleted automatically when creating
* a new savestate
* > Setting value to zero disables the limit (no
* savestates will be deleted in this case) */
#define DEFAULT_SAVESTATE_MAX_KEEP 0
/* Automatically saves a savestate at the end of RetroArch's lifetime.
* The path is $SRAM_PATH.auto.
* RetroArch will automatically load any savestate with this path on
@@ -962,11 +1099,7 @@ static const bool savestate_thumbnail_enable = false;
/* When creating save (srm) files, compress
* written data */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_SAVE_FILE_COMPRESSION true
#else
#define DEFAULT_SAVE_FILE_COMPRESSION false
#endif
/* When creating save state files, compress
* written data */
@@ -1019,7 +1152,7 @@ static const uint16_t network_remote_base_port = 55400;
* a new one) */
#define DEFAULT_CORE_UPDATER_AUTO_BACKUP_HISTORY_SIZE 1
#if defined(ANDROID) || defined(IOS)
#if defined(ANDROID) || defined(__APPLE__)
#define DEFAULT_NETWORK_ON_DEMAND_THUMBNAILS true
#else
#define DEFAULT_NETWORK_ON_DEMAND_THUMBNAILS false
@@ -1039,11 +1172,7 @@ static const int default_content_favorites_size = 200;
#define DEFAULT_PLAYLIST_USE_OLD_FORMAT false
/* When creating/updating playlists, compress written data */
#if defined(__WINRT__) || defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
#define DEFAULT_PLAYLIST_COMPRESSION true
#else
#define DEFAULT_PLAYLIST_COMPRESSION false
#endif
#ifdef HAVE_MENU
/* Specify when to display 'core name' inline on playlist entries */
@@ -1077,7 +1206,11 @@ static const int default_content_favorites_size = 200;
/* Default scale factor for non-frambuffer-based display
* drivers and display widgets */
#if defined(VITA)
#define DEFAULT_MENU_SCALE_FACTOR 1.5f
#else
#define DEFAULT_MENU_SCALE_FACTOR 1.0f
#endif
/* Specifies whether display widgets should be scaled
* automatically using the default menu scale factor */
#define DEFAULT_MENU_WIDGET_SCALE_AUTO true
@@ -1122,13 +1255,31 @@ static const unsigned turbo_default_btn = RETRO_DEVICE_ID_JOYPAD_B;
* gamepads, plug-and-play style. */
static const bool input_autodetect_enable = true;
/* Enables accelerometer/gyroscope/illuminance
* sensor input, if supported */
#if defined(ANDROID)
/* Hardware sensors cause substantial battery
* drain on Android... */
#define DEFAULT_INPUT_SENSORS_ENABLE false
#else
#define DEFAULT_INPUT_SENSORS_ENABLE true
#endif
/* Automatically enable game focus when running or
* resuming content */
#define DEFAULT_INPUT_AUTO_GAME_FOCUS AUTO_GAME_FOCUS_OFF
/* Show the input descriptors set by the core instead
* of the default ones. */
static const bool input_descriptor_label_show = true;
static const bool input_descriptor_hide_unbound = false;
#if defined(DINGUX)
static const unsigned input_max_users = 1;
#else
static const unsigned input_max_users = 5;
#endif
static const unsigned input_poll_type_behavior = 2;
@@ -1183,7 +1334,7 @@ static const bool ui_companion_toggle = false;
#define DEFAULT_UI_MENUBAR_ENABLE true
#if defined(__QNX__) || defined(_XBOX1) || defined(_XBOX360) || defined(__CELLOS_LV2__) || (defined(__MACH__) && defined(IOS)) || defined(ANDROID) || defined(WIIU) || defined(HAVE_NEON) || defined(GEKKO) || defined(__ARM_NEON__)
#if defined(__QNX__) || defined(_XBOX1) || defined(_XBOX360) || (defined(__MACH__) && defined(IOS)) || defined(ANDROID) || defined(WIIU) || defined(HAVE_NEON) || defined(GEKKO) || defined(__ARM_NEON__) || defined(__PS3__)
static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWER;
#elif defined(PSP) || defined(_3DS) || defined(VITA) || defined(PS2) || defined(DINGUX)
static const enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWEST;
@@ -1204,6 +1355,12 @@ static const bool sustained_performance_mode = false;
static const bool vibrate_on_keypress = false;
static const bool enable_device_vibration = false;
/* Defines the strength of rumble effects
* on OpenDingux devices */
#if defined(DINGUX) && defined(HAVE_LIBSHAKE)
#define DEFAULT_DINGUX_RUMBLE_GAIN 50
#endif
#ifdef HAVE_VULKAN
#define DEFAULT_VULKAN_GPU_INDEX 0
#endif
@@ -1245,6 +1402,8 @@ static const bool enable_device_vibration = false;
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/apple/osx/x86_64/latest/"
#elif defined(__i386__) || defined(__i486__) || defined(__i686__)
#define DEFAULT_BUILDBOT_SERVER_URL "http://bot.libretro.com/nightly/apple/osx/x86/latest/"
#elif defined(__aarch64__)
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/apple/osx/arm64/latest/"
#else
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/apple/osx/ppc/latest/"
#endif
@@ -1302,12 +1461,8 @@ static const bool enable_device_vibration = false;
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/nintendo/wiiu/latest/"
#elif defined(HAVE_LIBNX)
#define DEFAULT_BUILDBOT_SERVER_URL "http://buildbot.libretro.com/nightly/nintendo/switch/libnx/latest/"
#elif defined(__CELLOS_LV2__) && defined(DEX_BUILD)
#define DEFAULT_BUILDBOT_SERVER_URL "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/dex-ps3/"
#elif defined(__CELLOS_LV2__) && defined(CEX_BUILD)
#define DEFAULT_BUILDBOT_SERVER_URL "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/cex-ps3/"
#elif defined(__CELLOS_LV2__) && defined(ODE_BUILD)
#define DEFAULT_BUILDBOT_SERVER_URL "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/ode-ps3/"
#elif defined(_3DS)
#define DEFAULT_BUILDBOT_SERVER_URL envIsHomebrew() ? "http://buildbot.libretro.com/nightly/nintendo/3ds/latest/3dsx/" : "http://buildbot.libretro.com/nightly/nintendo/3ds/latest/cia/"
#else
#define DEFAULT_BUILDBOT_SERVER_URL ""
#endif
+1919 -290
View File
File diff suppressed because it is too large. Load diff
+6
View File
@@ -350,6 +350,12 @@
#define SUPPORTS_CORETEXT false
#endif
#ifdef HAVE_CHECK
#define SUPPORTS_CHECK true
#else
#define SUPPORTS_CHECK false
#endif
#if !defined(_WIN32) && !defined(GLOBAL_CONFIG_DIR)
#if defined(__HAIKU__)
#define GLOBAL_CONFIG_DIR "/system/settings"
+831 -703
View File
File diff suppressed because it is too large. Load diff
+437 -349
View File
@@ -29,6 +29,10 @@
#include "input/input_defines.h"
#include "led/led_defines.h"
#ifdef HAVE_LAKKA
#include "lakka.h"
#endif
#define configuration_set_float(settings, var, newvar) \
{ \
settings->modified = true; \
@@ -78,6 +82,399 @@ RETRO_BEGIN_DECLS
typedef struct settings
{
struct
{
size_t placeholder;
size_t rewind_buffer_size;
} sizes;
video_viewport_t video_viewport_custom; /* int alignment */
struct
{
int placeholder;
int netplay_check_frames;
int location_update_interval_ms;
int location_update_interval_distance;
int state_slot;
int audio_wasapi_sh_buffer_length;
int crt_switch_center_adjust;
int crt_switch_porch_adjust;
#ifdef HAVE_VULKAN
int vulkan_gpu_index;
#endif
#ifdef HAVE_D3D10
int d3d10_gpu_index;
#endif
#ifdef HAVE_D3D11
int d3d11_gpu_index;
#endif
#ifdef HAVE_D3D12
int d3d12_gpu_index;
#endif
int content_favorites_size;
} ints;
struct
{
unsigned placeholder;
unsigned input_split_joycon[MAX_USERS];
unsigned input_joypad_map[MAX_USERS];
unsigned input_device[MAX_USERS];
unsigned input_mouse_index[MAX_USERS];
/* Set by autoconfiguration in joypad_autoconfig_dir.
* Does not override main binds. */
unsigned input_libretro_device[MAX_USERS];
unsigned input_analog_dpad_mode[MAX_USERS];
unsigned input_keymapper_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned input_remap_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned led_map[MAX_LEDS];
unsigned audio_out_rate;
unsigned audio_block_frames;
unsigned audio_latency;
unsigned fps_update_interval;
unsigned memory_update_interval;
unsigned input_block_timeout;
unsigned audio_resampler_quality;
unsigned input_turbo_period;
unsigned input_turbo_duty_cycle;
unsigned input_turbo_mode;
unsigned input_turbo_default_button;
unsigned input_bind_timeout;
unsigned input_bind_hold;
#ifdef GEKKO
unsigned input_mouse_scale;
#endif
unsigned input_touch_scale;
unsigned input_hotkey_block_delay;
unsigned input_menu_toggle_gamepad_combo;
unsigned input_keyboard_gamepad_mapping_type;
unsigned input_poll_type_behavior;
unsigned input_dingux_rumble_gain;
unsigned input_auto_game_focus;
unsigned netplay_port;
unsigned netplay_input_latency_frames_min;
unsigned netplay_input_latency_frames_range;
unsigned netplay_share_digital;
unsigned netplay_share_analog;
unsigned bundle_assets_extract_version_current;
unsigned bundle_assets_extract_last_version;
unsigned content_history_size;
unsigned frontend_log_level;
unsigned libretro_log_level;
unsigned rewind_granularity;
unsigned rewind_buffer_size_step;
unsigned autosave_interval;
unsigned savestate_max_keep;
unsigned network_cmd_port;
unsigned network_remote_base_port;
unsigned keymapper_port;
unsigned video_window_opacity;
unsigned crt_switch_resolution;
unsigned crt_switch_resolution_super;
unsigned screen_brightness;
unsigned video_monitor_index;
unsigned video_fullscreen_x;
unsigned video_fullscreen_y;
unsigned video_max_swapchain_images;
unsigned video_swap_interval;
unsigned video_hard_sync_frames;
unsigned video_frame_delay;
unsigned video_viwidth;
unsigned video_aspect_ratio_idx;
unsigned video_rotation;
unsigned screen_orientation;
unsigned video_msg_bgcolor_red;
unsigned video_msg_bgcolor_green;
unsigned video_msg_bgcolor_blue;
unsigned video_stream_port;
unsigned video_record_quality;
unsigned video_stream_quality;
unsigned video_record_scale_factor;
unsigned video_stream_scale_factor;
unsigned video_3ds_display_mode;
unsigned video_dingux_ipu_filter_type;
unsigned video_dingux_refresh_rate;
#ifdef HAVE_VIDEO_LAYOUT
unsigned video_layout_selected_view;
#endif
#ifdef GEKKO
unsigned video_overscan_correction_top;
unsigned video_overscan_correction_bottom;
#endif
unsigned video_shader_delay;
#ifdef HAVE_SCREENSHOTS
unsigned notification_show_screenshot_duration;
unsigned notification_show_screenshot_flash;
#endif
/* Accessibility */
unsigned accessibility_narrator_speech_speed;
unsigned menu_timedate_style;
unsigned menu_timedate_date_separator;
unsigned gfx_thumbnails;
unsigned menu_left_thumbnails;
unsigned gfx_thumbnail_upscale_threshold;
unsigned menu_rgui_thumbnail_downscaler;
unsigned menu_rgui_thumbnail_delay;
unsigned menu_rgui_color_theme;
unsigned menu_xmb_animation_opening_main_menu;
unsigned menu_xmb_animation_horizontal_highlight;
unsigned menu_xmb_animation_move_up_down;
unsigned menu_xmb_layout;
unsigned menu_xmb_shader_pipeline;
unsigned menu_xmb_alpha_factor;
unsigned menu_xmb_theme;
unsigned menu_xmb_color_theme;
unsigned menu_xmb_thumbnail_scale_factor;
unsigned menu_materialui_color_theme;
unsigned menu_materialui_transition_animation;
unsigned menu_materialui_thumbnail_view_portrait;
unsigned menu_materialui_thumbnail_view_landscape;
unsigned menu_materialui_landscape_layout_optimization;
unsigned menu_ozone_color_theme;
unsigned menu_font_color_red;
unsigned menu_font_color_green;
unsigned menu_font_color_blue;
unsigned menu_rgui_internal_upscale_level;
unsigned menu_rgui_aspect_ratio;
unsigned menu_rgui_aspect_ratio_lock;
unsigned menu_rgui_particle_effect;
unsigned menu_ticker_type;
unsigned menu_scroll_delay;
unsigned menu_content_show_add_entry;
unsigned menu_screensaver_timeout;
unsigned menu_screensaver_animation;
unsigned playlist_entry_remove_enable;
unsigned playlist_show_inline_core_name;
unsigned playlist_sublabel_runtime_type;
unsigned playlist_sublabel_last_played_style;
unsigned camera_width;
unsigned camera_height;
unsigned input_overlay_show_physical_inputs_port;
unsigned run_ahead_frames;
unsigned midi_volume;
unsigned streaming_mode;
unsigned window_position_x;
unsigned window_position_y;
unsigned window_position_width;
unsigned window_position_height;
unsigned video_record_threads;
unsigned libnx_overclock;
unsigned ai_service_mode;
unsigned ai_service_target_lang;
unsigned ai_service_source_lang;
unsigned core_updater_auto_backup_history_size;
unsigned video_black_frame_insertion;
unsigned quit_on_close_content;
#ifdef HAVE_LAKKA
unsigned cpu_scaling_mode;
unsigned cpu_min_freq;
unsigned cpu_max_freq;
#endif
} uints;
struct
{
float placeholder;
float video_scale;
float video_aspect_ratio;
float video_refresh_rate;
float crt_video_refresh_rate;
float video_font_size;
float video_msg_pos_x;
float video_msg_pos_y;
float video_msg_color_r;
float video_msg_color_g;
float video_msg_color_b;
float video_msg_bgcolor_opacity;
float menu_scale_factor;
float menu_widget_scale_factor;
float menu_widget_scale_factor_windowed;
float menu_wallpaper_opacity;
float menu_framebuffer_opacity;
float menu_footer_opacity;
float menu_header_opacity;
float menu_ticker_speed;
float menu_rgui_particle_effect_speed;
float menu_screensaver_animation_speed;
float audio_max_timing_skew;
float audio_volume; /* dB scale. */
float audio_mixer_volume; /* dB scale. */
float input_overlay_opacity;
float input_overlay_scale_landscape;
float input_overlay_aspect_adjust_landscape;
float input_overlay_x_separation_landscape;
float input_overlay_y_separation_landscape;
float input_overlay_x_offset_landscape;
float input_overlay_y_offset_landscape;
float input_overlay_scale_portrait;
float input_overlay_aspect_adjust_portrait;
float input_overlay_x_separation_portrait;
float input_overlay_y_separation_portrait;
float input_overlay_x_offset_portrait;
float input_overlay_y_offset_portrait;
float slowmotion_ratio;
float fastforward_ratio;
float input_analog_deadzone;
float input_analog_sensitivity;
} floats;
struct
{
char placeholder;
char video_driver[32];
char record_driver[32];
char camera_driver[32];
char bluetooth_driver[32];
char wifi_driver[32];
char led_driver[32];
char location_driver[32];
char menu_driver[32];
char cheevos_username[32];
char cheevos_password[256];
char cheevos_token[32];
char cheevos_leaderboards_enable[32];
char video_context_driver[32];
char audio_driver[32];
char audio_resampler[32];
char input_driver[32];
char input_joypad_driver[32];
char midi_driver[32];
char midi_input[32];
char midi_output[32];
char input_keyboard_layout[64];
char audio_device[255];
char camera_device[255];
char netplay_mitm_server[255];
char translation_service_url[2048];
char bundle_assets_src[PATH_MAX_LENGTH];
char bundle_assets_dst[PATH_MAX_LENGTH];
char bundle_assets_dst_subdir[PATH_MAX_LENGTH];
char youtube_stream_key[PATH_MAX_LENGTH];
char twitch_stream_key[PATH_MAX_LENGTH];
char facebook_stream_key[PATH_MAX_LENGTH];
char discord_app_id[PATH_MAX_LENGTH];
char ai_service_url[PATH_MAX_LENGTH];
char crt_switch_timings[255];
#ifdef HAVE_LAKKA
char timezone[TIMEZONE_LENGTH];
char cpu_main_gov[32];
char cpu_menu_gov[32];
#endif
} arrays;
struct
{
char placeholder;
char username[32];
char netplay_password[128];
char netplay_spectate_password[128];
char netplay_server[255];
char network_buildbot_url[255];
char network_buildbot_assets_url[255];
char browse_url[4096];
char path_stream_url[8192];
char path_menu_xmb_font[PATH_MAX_LENGTH];
char menu_content_show_settings_password[PATH_MAX_LENGTH];
char kiosk_mode_password[PATH_MAX_LENGTH];
char path_cheat_database[PATH_MAX_LENGTH];
char path_content_database[PATH_MAX_LENGTH];
char path_overlay[PATH_MAX_LENGTH];
#ifdef HAVE_VIDEO_LAYOUT
char path_video_layout[PATH_MAX_LENGTH];
#endif
char path_record_config[PATH_MAX_LENGTH];
char path_stream_config[PATH_MAX_LENGTH];
char path_menu_wallpaper[PATH_MAX_LENGTH];
char path_audio_dsp_plugin[PATH_MAX_LENGTH];
char path_softfilter_plugin[PATH_MAX_LENGTH];
char path_core_options[PATH_MAX_LENGTH];
char path_content_favorites[PATH_MAX_LENGTH];
char path_content_history[PATH_MAX_LENGTH];
char path_content_image_history[PATH_MAX_LENGTH];
char path_content_music_history[PATH_MAX_LENGTH];
char path_content_video_history[PATH_MAX_LENGTH];
char path_libretro_info[PATH_MAX_LENGTH];
char path_cheat_settings[PATH_MAX_LENGTH];
char path_font[PATH_MAX_LENGTH];
char path_rgui_theme_preset[PATH_MAX_LENGTH];
char directory_audio_filter[PATH_MAX_LENGTH];
char directory_autoconfig[PATH_MAX_LENGTH];
char directory_video_filter[PATH_MAX_LENGTH];
char directory_video_shader[PATH_MAX_LENGTH];
char directory_libretro[PATH_MAX_LENGTH];
char directory_cursor[PATH_MAX_LENGTH];
char directory_input_remapping[PATH_MAX_LENGTH];
char directory_overlay[PATH_MAX_LENGTH];
#ifdef HAVE_VIDEO_LAYOUT
char directory_video_layout[PATH_MAX_LENGTH];
#endif
char directory_resampler[PATH_MAX_LENGTH];
char directory_screenshot[PATH_MAX_LENGTH];
char directory_system[PATH_MAX_LENGTH];
char directory_cache[PATH_MAX_LENGTH];
char directory_playlist[PATH_MAX_LENGTH];
char directory_content_favorites[PATH_MAX_LENGTH];
char directory_content_history[PATH_MAX_LENGTH];
char directory_content_image_history[PATH_MAX_LENGTH];
char directory_content_music_history[PATH_MAX_LENGTH];
char directory_content_video_history[PATH_MAX_LENGTH];
char directory_runtime_log[PATH_MAX_LENGTH];
char directory_core_assets[PATH_MAX_LENGTH];
char directory_assets[PATH_MAX_LENGTH];
char directory_dynamic_wallpapers[PATH_MAX_LENGTH];
char directory_thumbnails[PATH_MAX_LENGTH];
char directory_menu_config[PATH_MAX_LENGTH];
char directory_menu_content[PATH_MAX_LENGTH];
char streaming_title[PATH_MAX_LENGTH];
char log_dir[PATH_MAX_LENGTH];
} paths;
bool modified;
struct
{
bool placeholder;
@@ -88,16 +485,18 @@ typedef struct settings
bool video_vsync;
bool video_adaptive_vsync;
bool video_hard_sync;
bool video_black_frame_insertion;
bool video_vfilter;
bool video_smooth;
bool video_ctx_scaling;
bool video_force_aspect;
bool video_crop_overscan;
bool video_aspect_ratio_auto;
bool video_dingux_ipu_keep_aspect;
bool video_scale_integer;
bool video_shader_enable;
bool video_shader_watch_files;
bool video_shader_remember_last_dir;
bool video_shader_preset_save_reference_enable;
bool video_threaded;
bool video_font_enable;
bool video_disable_composition;
@@ -113,9 +512,11 @@ typedef struct settings
bool video_memory_show;
bool video_msg_bgcolor_enable;
bool video_3ds_lcd_bottom;
bool video_notch_write_over_enable;
#ifdef HAVE_VIDEO_LAYOUT
bool video_layout_enable;
#endif
bool video_force_resolution;
/* Accessibility */
bool accessibility_enable;
@@ -136,12 +537,15 @@ typedef struct settings
/* Input */
bool input_remap_binds_enable;
bool input_autodetect_enable;
bool input_sensors_enable;
bool input_overlay_enable;
bool input_overlay_enable_autopreferred;
bool input_overlay_hide_in_menu;
bool input_overlay_hide_when_gamepad_connected;
bool input_overlay_show_physical_inputs;
bool input_overlay_show_mouse_cursor;
bool input_overlay_auto_rotate;
bool input_overlay_auto_scale;
bool input_descriptor_label_show;
bool input_descriptor_hide_unbound;
bool input_menu_swap_ok_cancel_buttons;
@@ -149,6 +553,9 @@ typedef struct settings
bool input_backtouch_toggle;
bool input_small_keyboard_enable;
bool input_keyboard_gamepad_enable;
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
bool input_nowinkey_enable;
#endif
/* Frame time counter */
bool frame_time_counter_reset_after_fastforwarding;
@@ -161,11 +568,15 @@ typedef struct settings
bool menu_show_load_content_animation;
bool notification_show_autoconfig;
bool notification_show_cheats_applied;
bool notification_show_patch_applied;
bool notification_show_remap_load;
bool notification_show_config_override_load;
bool notification_show_set_initial_disk;
bool notification_show_fast_forward;
#ifdef HAVE_SCREENSHOTS
bool notification_show_screenshot;
#endif
bool notification_show_refresh_rate;
bool menu_widget_scale_auto;
bool menu_show_start_screen;
bool menu_pause_libretro;
@@ -216,11 +627,13 @@ typedef struct settings
bool menu_rgui_border_filler_thickness_enable;
bool menu_rgui_border_filler_enable;
bool menu_rgui_full_width_layout;
bool menu_rgui_transparency;
bool menu_rgui_shadows;
bool menu_rgui_inline_thumbnails;
bool menu_rgui_swap_thumbnails;
bool menu_rgui_extended_ascii;
bool menu_rgui_switch_icons;
bool menu_rgui_particle_effect_screensaver;
bool menu_xmb_shadows_enable;
bool menu_xmb_vertical_thumbnails;
bool menu_content_show_settings;
@@ -246,11 +659,13 @@ typedef struct settings
bool settings_show_configuration;
bool settings_show_saving;
bool settings_show_logging;
bool settings_show_file_browser;
bool settings_show_frame_throttle;
bool settings_show_recording;
bool settings_show_onscreen_display;
bool settings_show_user_interface;
bool settings_show_ai_service;
bool settings_show_accessibility;
bool settings_show_power_management;
bool settings_show_achievements;
bool settings_show_network;
@@ -311,7 +726,6 @@ typedef struct settings
bool cheevos_enable;
bool cheevos_test_unofficial;
bool cheevos_hardcore_mode_enable;
bool cheevos_leaderboards_enable;
bool cheevos_richpresence_enable;
bool cheevos_badges_enable;
bool cheevos_verbose_enable;
@@ -327,6 +741,7 @@ typedef struct settings
/* WiFi */
bool wifi_allow;
bool wifi_enabled;
/* Location */
bool location_allow;
@@ -371,6 +786,7 @@ typedef struct settings
bool network_remote_enable_user[MAX_USERS];
bool load_dummy_on_core_shutdown;
bool check_firmware_before_loading;
bool core_info_cache_enable;
#ifndef HAVE_DYNAMIC
bool always_reload_core_on_run_content;
#endif
@@ -383,8 +799,12 @@ typedef struct settings
bool sort_savefiles_enable;
bool sort_savestates_enable;
bool sort_savefiles_by_content_enable;
bool sort_savestates_by_content_enable;
bool sort_screenshots_by_content_enable;
bool config_save_on_exit;
bool show_hidden_files;
bool use_last_start_directory;
bool savefiles_in_content_dir;
bool savestates_in_content_dir;
@@ -426,353 +846,6 @@ typedef struct settings
bool ai_service_pause;
} bools;
struct
{
float placeholder;
float video_scale;
float video_aspect_ratio;
float video_refresh_rate;
float crt_video_refresh_rate;
float video_font_size;
float video_msg_pos_x;
float video_msg_pos_y;
float video_msg_color_r;
float video_msg_color_g;
float video_msg_color_b;
float video_msg_bgcolor_opacity;
float menu_scale_factor;
float menu_widget_scale_factor;
float menu_widget_scale_factor_windowed;
float menu_wallpaper_opacity;
float menu_framebuffer_opacity;
float menu_footer_opacity;
float menu_header_opacity;
float menu_ticker_speed;
float menu_rgui_particle_effect_speed;
float audio_max_timing_skew;
float audio_volume; /* dB scale. */
float audio_mixer_volume; /* dB scale. */
float input_overlay_opacity;
float input_overlay_scale;
float input_overlay_center_x;
float input_overlay_center_y;
float slowmotion_ratio;
float fastforward_ratio;
float input_analog_deadzone;
float input_analog_sensitivity;
} floats;
struct
{
int placeholder;
int netplay_check_frames;
int location_update_interval_ms;
int location_update_interval_distance;
int state_slot;
int audio_wasapi_sh_buffer_length;
int crt_switch_center_adjust;
int crt_switch_porch_adjust;
#ifdef HAVE_VULKAN
int vulkan_gpu_index;
#endif
#ifdef HAVE_D3D10
int d3d10_gpu_index;
#endif
#ifdef HAVE_D3D11
int d3d11_gpu_index;
#endif
#ifdef HAVE_D3D12
int d3d12_gpu_index;
#endif
int content_favorites_size;
} ints;
struct
{
unsigned placeholder;
unsigned audio_out_rate;
unsigned audio_block_frames;
unsigned audio_latency;
unsigned fps_update_interval;
unsigned memory_update_interval;
unsigned input_block_timeout;
unsigned audio_resampler_quality;
unsigned input_turbo_period;
unsigned input_turbo_duty_cycle;
unsigned input_turbo_mode;
unsigned input_turbo_default_button;
unsigned input_bind_timeout;
unsigned input_bind_hold;
#ifdef GEKKO
unsigned input_mouse_scale;
#endif
unsigned input_hotkey_block_delay;
unsigned input_menu_toggle_gamepad_combo;
unsigned input_keyboard_gamepad_mapping_type;
unsigned input_poll_type_behavior;
unsigned netplay_port;
unsigned netplay_input_latency_frames_min;
unsigned netplay_input_latency_frames_range;
unsigned netplay_share_digital;
unsigned netplay_share_analog;
unsigned bundle_assets_extract_version_current;
unsigned bundle_assets_extract_last_version;
unsigned content_history_size;
unsigned frontend_log_level;
unsigned libretro_log_level;
unsigned rewind_granularity;
unsigned rewind_buffer_size_step;
unsigned autosave_interval;
unsigned network_cmd_port;
unsigned network_remote_base_port;
unsigned keymapper_port;
unsigned video_window_opacity;
unsigned crt_switch_resolution;
unsigned crt_switch_resolution_super;
unsigned video_monitor_index;
unsigned video_fullscreen_x;
unsigned video_fullscreen_y;
unsigned video_max_swapchain_images;
unsigned video_swap_interval;
unsigned video_hard_sync_frames;
unsigned video_frame_delay;
unsigned video_viwidth;
unsigned video_aspect_ratio_idx;
unsigned video_rotation;
unsigned screen_orientation;
unsigned video_msg_bgcolor_red;
unsigned video_msg_bgcolor_green;
unsigned video_msg_bgcolor_blue;
unsigned video_stream_port;
unsigned video_record_quality;
unsigned video_stream_quality;
unsigned video_record_scale_factor;
unsigned video_stream_scale_factor;
unsigned video_3ds_display_mode;
#ifdef HAVE_VIDEO_LAYOUT
unsigned video_layout_selected_view;
#endif
#ifdef GEKKO
unsigned video_overscan_correction_top;
unsigned video_overscan_correction_bottom;
#endif
unsigned video_shader_delay;
unsigned notification_show_screenshot_duration;
unsigned notification_show_screenshot_flash;
/* Accessibility */
unsigned accessibility_narrator_speech_speed;
unsigned menu_timedate_style;
unsigned menu_timedate_date_separator;
unsigned gfx_thumbnails;
unsigned menu_left_thumbnails;
unsigned gfx_thumbnail_upscale_threshold;
unsigned menu_rgui_thumbnail_downscaler;
unsigned menu_rgui_thumbnail_delay;
unsigned menu_rgui_color_theme;
unsigned menu_xmb_animation_opening_main_menu;
unsigned menu_xmb_animation_horizontal_highlight;
unsigned menu_xmb_animation_move_up_down;
unsigned menu_xmb_layout;
unsigned menu_xmb_shader_pipeline;
unsigned menu_xmb_alpha_factor;
unsigned menu_xmb_theme;
unsigned menu_xmb_color_theme;
unsigned menu_xmb_thumbnail_scale_factor;
unsigned menu_materialui_color_theme;
unsigned menu_materialui_transition_animation;
unsigned menu_materialui_thumbnail_view_portrait;
unsigned menu_materialui_thumbnail_view_landscape;
unsigned menu_materialui_landscape_layout_optimization;
unsigned menu_ozone_color_theme;
unsigned menu_font_color_red;
unsigned menu_font_color_green;
unsigned menu_font_color_blue;
unsigned menu_rgui_internal_upscale_level;
unsigned menu_rgui_aspect_ratio;
unsigned menu_rgui_aspect_ratio_lock;
unsigned menu_rgui_particle_effect;
unsigned menu_ticker_type;
unsigned menu_content_show_add_entry;
unsigned playlist_entry_remove_enable;
unsigned playlist_show_inline_core_name;
unsigned playlist_sublabel_runtime_type;
unsigned playlist_sublabel_last_played_style;
unsigned camera_width;
unsigned camera_height;
unsigned input_overlay_show_physical_inputs_port;
unsigned input_split_joycon[MAX_USERS];
unsigned input_joypad_map[MAX_USERS];
unsigned input_device[MAX_USERS];
unsigned input_mouse_index[MAX_USERS];
/* Set by autoconfiguration in joypad_autoconfig_dir.
* Does not override main binds. */
unsigned input_libretro_device[MAX_USERS];
unsigned input_analog_dpad_mode[MAX_USERS];
unsigned input_keymapper_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned input_remap_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned led_map[MAX_LEDS];
unsigned run_ahead_frames;
unsigned midi_volume;
unsigned streaming_mode;
unsigned window_position_x;
unsigned window_position_y;
unsigned window_position_width;
unsigned window_position_height;
unsigned video_record_threads;
unsigned libnx_overclock;
unsigned ai_service_mode;
unsigned ai_service_target_lang;
unsigned ai_service_source_lang;
unsigned core_updater_auto_backup_history_size;
} uints;
struct
{
size_t placeholder;
size_t rewind_buffer_size;
} sizes;
struct
{
char placeholder;
char video_driver[32];
char record_driver[32];
char camera_driver[32];
char bluetooth_driver[32];
char wifi_driver[32];
char led_driver[32];
char location_driver[32];
char menu_driver[32];
char cheevos_username[32];
char cheevos_password[32];
char cheevos_token[32];
char video_context_driver[32];
char audio_driver[32];
char audio_resampler[32];
char input_driver[32];
char input_joypad_driver[32];
char midi_driver[32];
char midi_input[32];
char midi_output[32];
char input_keyboard_layout[64];
char audio_device[255];
char camera_device[255];
char netplay_mitm_server[255];
char translation_service_url[2048];
char bundle_assets_src[PATH_MAX_LENGTH];
char bundle_assets_dst[PATH_MAX_LENGTH];
char bundle_assets_dst_subdir[PATH_MAX_LENGTH];
char youtube_stream_key[PATH_MAX_LENGTH];
char twitch_stream_key[PATH_MAX_LENGTH];
char discord_app_id[PATH_MAX_LENGTH];
char ai_service_url[PATH_MAX_LENGTH];
} arrays;
struct
{
char placeholder;
char username[32];
char netplay_password[128];
char netplay_spectate_password[128];
char netplay_server[255];
char network_buildbot_url[255];
char network_buildbot_assets_url[255];
char browse_url[4096];
char path_stream_url[8192];
char path_menu_xmb_font[PATH_MAX_LENGTH];
char menu_content_show_settings_password[PATH_MAX_LENGTH];
char kiosk_mode_password[PATH_MAX_LENGTH];
char path_cheat_database[PATH_MAX_LENGTH];
char path_content_database[PATH_MAX_LENGTH];
char path_overlay[PATH_MAX_LENGTH];
#ifdef HAVE_VIDEO_LAYOUT
char path_video_layout[PATH_MAX_LENGTH];
#endif
char path_record_config[PATH_MAX_LENGTH];
char path_stream_config[PATH_MAX_LENGTH];
char path_menu_wallpaper[PATH_MAX_LENGTH];
char path_audio_dsp_plugin[PATH_MAX_LENGTH];
char path_softfilter_plugin[PATH_MAX_LENGTH];
char path_core_options[PATH_MAX_LENGTH];
char path_content_history[PATH_MAX_LENGTH];
char path_content_favorites[PATH_MAX_LENGTH];
char path_content_music_history[PATH_MAX_LENGTH];
char path_content_image_history[PATH_MAX_LENGTH];
char path_content_video_history[PATH_MAX_LENGTH];
char path_libretro_info[PATH_MAX_LENGTH];
char path_cheat_settings[PATH_MAX_LENGTH];
char path_font[PATH_MAX_LENGTH];
char path_rgui_theme_preset[PATH_MAX_LENGTH];
char directory_audio_filter[PATH_MAX_LENGTH];
char directory_autoconfig[PATH_MAX_LENGTH];
char directory_video_filter[PATH_MAX_LENGTH];
char directory_video_shader[PATH_MAX_LENGTH];
char directory_content_history[PATH_MAX_LENGTH];
char directory_content_favorites[PATH_MAX_LENGTH];
char directory_libretro[PATH_MAX_LENGTH];
char directory_cursor[PATH_MAX_LENGTH];
char directory_input_remapping[PATH_MAX_LENGTH];
char directory_overlay[PATH_MAX_LENGTH];
#ifdef HAVE_VIDEO_LAYOUT
char directory_video_layout[PATH_MAX_LENGTH];
#endif
char directory_resampler[PATH_MAX_LENGTH];
char directory_screenshot[PATH_MAX_LENGTH];
char directory_system[PATH_MAX_LENGTH];
char directory_cache[PATH_MAX_LENGTH];
char directory_playlist[PATH_MAX_LENGTH];
char directory_runtime_log[PATH_MAX_LENGTH];
char directory_core_assets[PATH_MAX_LENGTH];
char directory_assets[PATH_MAX_LENGTH];
char directory_dynamic_wallpapers[PATH_MAX_LENGTH];
char directory_thumbnails[PATH_MAX_LENGTH];
char directory_menu_config[PATH_MAX_LENGTH];
char directory_menu_content[PATH_MAX_LENGTH];
char streaming_title[PATH_MAX_LENGTH];
char log_dir[PATH_MAX_LENGTH];
} paths;
bool modified;
video_viewport_t video_viewport_custom;
} settings_t;
/**
@@ -944,8 +1017,23 @@ void config_set_defaults(void *data);
void config_load(void *data);
#if !defined(HAVE_DYNAMIC)
/* Salamander config file contains a single
* entry (libretro_path), which is linked to
* RARCH_PATH_CORE
* > Used to select which core to load
* when launching a salamander build */
void config_load_file_salamander(void);
void config_save_file_salamander(void);
#endif
settings_t *config_get_ptr(void);
#ifdef HAVE_LAKKA
const char *config_get_all_timezones(void);
void config_set_timezone(char *timezone);
#endif
RETRO_END_DECLS
#endif
+10 -1
View File
@@ -33,10 +33,10 @@ RETRO_BEGIN_DECLS
typedef struct content_ctx_info
{
int argc; /* Argument count. */
char **argv; /* Argument variable list. */
void *args; /* Arguments passed from callee */
environment_get_t environ_get; /* Function passed for environment_get function */
int argc; /* Argument count. */
} content_ctx_info_t;
/* Load a RAM state from disk to memory. */
@@ -51,6 +51,15 @@ bool content_load_state(const char* path, bool load_to_backup_buffer, bool autol
/* Save a state from memory to disk. */
bool content_save_state(const char *path, bool save_to_disk, bool autosave);
/* Gets the number of bytes required to serialize the state. */
size_t content_get_serialized_size(void);
/* Serializes the current state. buffer must be at least content_get_serialized_size bytes */
bool content_serialize_state(void* buffer, size_t buffer_size);
/* Deserializes the current state. */
bool content_deserialize_state(const void* serialized_data, size_t serialized_size);
/* Waits for any in-progress save state tasks to finish */
void content_wait_for_save_state_task(void);
+11 -20
View File
@@ -45,7 +45,7 @@ enum
typedef struct rarch_memory_descriptor
{
struct retro_memory_descriptor core;
struct retro_memory_descriptor core; /* uint64_t alignment */
size_t disconnect_mask;
} rarch_memory_descriptor_t;
@@ -57,33 +57,26 @@ typedef struct rarch_memory_map
typedef struct rarch_system_info
{
struct retro_system_info info;
unsigned rotation;
unsigned performance_level;
bool load_no_content;
struct retro_location_callback location_cb; /* ptr alignment */
disk_control_interface_t disk_control; /* ptr alignment */
struct retro_system_info info; /* ptr alignment */
rarch_memory_map_t mmaps; /* ptr alignment */
const char *input_desc_btn[MAX_USERS][RARCH_FIRST_META_KEY];
char valid_extensions[255];
bool supports_vfs;
disk_control_interface_t disk_control;
struct retro_location_callback location_cb;
struct
{
struct retro_subsystem_info *data;
unsigned size;
} subsystem;
struct
{
struct retro_controller_info *data;
unsigned size;
} ports;
rarch_memory_map_t mmaps;
unsigned rotation;
unsigned performance_level;
char valid_extensions[255];
bool load_no_content;
bool supports_vfs;
} rarch_system_info_t;
typedef struct retro_ctx_input_state_info
@@ -93,9 +86,9 @@ typedef struct retro_ctx_input_state_info
typedef struct retro_ctx_cheat_info
{
const char *code;
unsigned index;
bool enabled;
const char *code;
} retro_ctx_cheat_info_t;
typedef struct retro_ctx_api_info
@@ -154,8 +147,6 @@ typedef struct retro_callbacks
retro_input_poll_t poll_cb;
} retro_callbacks_t;
bool core_set_default_callbacks(struct retro_callbacks *cbs);
#ifdef HAVE_REWIND
bool core_set_rewind_callbacks(void);
#endif
+7 -6
View File
@@ -34,9 +34,9 @@
/* Holds all entries in a core backup list */
struct core_backup_list
{
core_backup_list_entry_t *entries;
size_t size;
size_t capacity;
core_backup_list_entry_t *entries;
};
/*********************/
@@ -163,11 +163,12 @@ bool core_backup_get_backup_path(
(unsigned)time_info.tm_sec,
crc,
(unsigned)backup_mode,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION));
FILE_PATH_CORE_BACKUP_EXTENSION);
if ((n < 0) || (n >= 128))
n = 0; /* Silence GCC warnings... */
(void)n;
/* Build final path */
fill_pathname_join(backup_path, backup_dir,
backup_filename, len);
@@ -199,7 +200,7 @@ enum core_backup_type core_backup_get_backup_type(const char *backup_path)
/* Check if this is an archived backup */
if (string_is_equal_noncase(backup_ext,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION_NO_DOT)))
FILE_PATH_CORE_BACKUP_EXTENSION_NO_DOT))
{
const char *backup_filename = NULL;
const char *src_ext = NULL;
@@ -516,7 +517,7 @@ core_backup_list_t *core_backup_list_init(
/* Get backup file list */
dir_list = dir_list_new(
backup_dir,
file_path_str(FILE_PATH_CORE_BACKUP_EXTENSION),
FILE_PATH_CORE_BACKUP_EXTENSION,
false, /* include_dirs */
false, /* include_hidden */
false, /* include_compressed */
@@ -742,7 +743,7 @@ bool core_backup_list_get_entry_timestamp_str(
if ((n < 0) || (n >= 32))
n = 0; /* Silence GCC warnings... */
(void)n;
return true;
}
@@ -762,6 +763,6 @@ bool core_backup_list_get_entry_crc_str(
if ((n < 0) || (n >= 32))
n = 0; /* Silence GCC warnings... */
(void)n;
return true;
}
+1 -1
View File
@@ -72,7 +72,7 @@ typedef struct
typedef struct
{
char *backup_path;
core_backup_list_date_t date;
core_backup_list_date_t date; /* unsigned alignment */
uint32_t crc;
enum core_backup_mode backup_mode;
} core_backup_list_entry_t;
+1925 -682
View File
File diff suppressed because it is too large. Load diff
+40 -52
View File
@@ -25,6 +25,14 @@
RETRO_BEGIN_DECLS
enum core_info_list_qsort_type
{
CORE_INFO_LIST_SORT_PATH = 0,
CORE_INFO_LIST_SORT_DISPLAY_NAME,
CORE_INFO_LIST_SORT_CORE_NAME,
CORE_INFO_LIST_SORT_SYSTEM_NAME
};
typedef struct
{
char *path;
@@ -37,30 +45,19 @@ typedef struct
/* Simple container/convenience struct for
* holding the 'id' of a core file
* > 'id' is the filename without extension or
* > 'str' is the filename without extension or
* platform-specific suffix
* > 'id' is used for core info searches - enables
* matching regardless of core file base path,
* and is platform-independent (e.g. an Android
* core file will be correctly identified on Linux)
* > 'len' is used to cache the length of 'str', for
* improved performance when performing string
* comparisons */
* > 'hash' is a hash key used for efficient core
* list searches */
typedef struct
{
char *str;
size_t len;
uint32_t hash;
} core_file_id_t;
typedef struct
{
bool supports_no_game;
bool database_match_archive_member;
bool is_experimental;
bool is_locked;
size_t firmware_count;
char *path;
void *config_data;
char *display_name;
char *display_version;
char *core_name;
@@ -85,25 +82,32 @@ typedef struct
struct string_list *licenses_list;
struct string_list *required_hw_api_list;
core_info_firmware_t *firmware;
core_file_id_t core_file_id;
void *userdata;
core_file_id_t core_file_id; /* ptr alignment */
size_t firmware_count;
bool has_info;
bool supports_no_game;
bool database_match_archive_member;
bool is_experimental;
bool is_locked;
bool is_installed;
} core_info_t;
/* A subset of core_info parameters required for
* core updater tasks */
typedef struct
{
bool is_experimental;
char *display_name;
char *description;
char *licenses;
bool is_experimental;
} core_updater_info_t;
typedef struct
{
core_info_t *list;
size_t count;
char *all_ext;
size_t count;
size_t info_count;
} core_info_list_t;
typedef struct core_info_ctx_firmware
@@ -115,20 +119,6 @@ typedef struct core_info_ctx_firmware
} directory;
} core_info_ctx_firmware_t;
typedef struct core_info_ctx_find
{
core_info_t *inf;
const char *path;
} core_info_ctx_find_t;
enum core_info_list_qsort_type
{
CORE_INFO_LIST_SORT_PATH = 0,
CORE_INFO_LIST_SORT_DISPLAY_NAME,
CORE_INFO_LIST_SORT_CORE_NAME,
CORE_INFO_LIST_SORT_SYSTEM_NAME
};
struct core_info_state
{
#ifdef HAVE_COMPRESSION
@@ -141,30 +131,21 @@ struct core_info_state
typedef struct core_info_state core_info_state_t;
size_t core_info_list_num_info_files(core_info_list_t *list);
/* Non-reentrant, does not allocate. Returns pointer to internal state. */
void core_info_list_get_supported_cores(core_info_list_t *list,
const char *path, const core_info_t **infos, size_t *num_infos);
bool core_info_list_get_display_name(core_info_list_t *list,
const char *path, char *s, size_t len);
bool core_info_get_display_name(const char *path, char *s, size_t len);
const char *core_path, char *s, size_t len);
/* Returns core_info parameters required for
* core updater tasks, read from specified file.
* Returned core_updater_info_t object must be
* freed using core_info_free_core_updater_info().
* Returns NULL if 'path' is invalid. */
core_updater_info_t *core_info_get_core_updater_info(const char *path);
core_updater_info_t *core_info_get_core_updater_info(const char *info_path);
void core_info_free_core_updater_info(core_updater_info_t *info);
void core_info_get_name(const char *path, char *s, size_t len,
const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files,
bool get_display_name);
core_info_t *core_info_get(core_info_list_t *list, size_t i);
void core_info_free_current_core(core_info_state_t *p_coreinfo);
@@ -176,29 +157,30 @@ bool core_info_get_current_core(core_info_t **core);
void core_info_deinit_list(void);
bool core_info_init_list(const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files);
const char *exts, bool show_hidden_files, bool enable_cache);
bool core_info_get_list(core_info_list_t **core);
/* Returns number of installed cores */
size_t core_info_count(void);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios);
bool core_info_find(core_info_ctx_find_t *info);
bool core_info_find(const char *core_path,
core_info_t **core_info);
bool core_info_load(
core_info_ctx_find_t *info,
bool core_info_load(const char *core_path,
core_info_state_t *p_coreinfo);
bool core_info_database_supports_content_path(const char *database_path, const char *path);
bool core_info_database_match_archive_member(const char *database_path);
bool core_info_unsupported_content_path(const char *path);
void core_info_qsort(core_info_list_t *core_info_list, enum core_info_list_qsort_type qsort_type);
bool core_info_list_get_info(core_info_list_t *core_info_list,
core_info_t *out_info, const char *path);
core_info_t *out_info, const char *core_path);
bool core_info_hw_api_supported(core_info_t *info);
@@ -220,7 +202,13 @@ bool core_info_get_core_lock(const char *core_path, bool validate_path);
core_info_state_t *coreinfo_get_ptr(void);
bool core_info_core_file_id_is_equal(const char* core_path_a, const char* core_path_b);
bool core_info_core_file_id_is_equal(const char *core_path_a, const char *core_path_b);
/* When called, generates a temporary file
* that will force an info cache refresh the
* next time that core info is initialised with
* caching enabled */
bool core_info_cache_force_refresh(const char *path_info);
RETRO_END_DECLS
@@ -23,7 +23,7 @@
#include <retro_common_api.h>
#include <lists/string_list.h>
#include "../../retroarch.h"
#include "retroarch.h"
RETRO_BEGIN_DECLS
+253 -144
View File
@@ -24,6 +24,7 @@
#include <string/stdstring.h>
#include <lists/string_list.h>
#include <net/net_http.h>
#include <array/rbuf.h>
#include <retro_miscellaneous.h>
#include "file_path_special.h"
@@ -34,9 +35,8 @@
/* Holds all entries in a core updater list */
struct core_updater_list
{
size_t size;
size_t capacity;
core_updater_list_entry_t *entries;
enum core_updater_list_type type;
};
/* Cached ('global') core updater list */
@@ -99,34 +99,18 @@ static void core_updater_list_free_entry(core_updater_list_entry_t *entry)
/* Creates a new, empty core updater list.
* Returns a handle to a new core_updater_list_t object
* on success, otherwise returns NULL. */
core_updater_list_t *core_updater_list_init(size_t max_size)
core_updater_list_t *core_updater_list_init(void)
{
core_updater_list_t *core_list = NULL;
core_updater_list_entry_t *entries = NULL;
/* Sanity check */
if (max_size < 1)
return NULL;
/* Create core updater list */
core_list = (core_updater_list_t*)malloc(sizeof(*core_list));
core_updater_list_t *core_list = (core_updater_list_t*)
malloc(sizeof(*core_list));
if (!core_list)
return NULL;
/* Create entries array */
entries = (core_updater_list_entry_t*)calloc(max_size, sizeof(*entries));
if (!entries)
{
free(core_list);
return NULL;
}
/* Initial configuration */
core_list->size = 0;
core_list->capacity = max_size;
core_list->entries = entries;
/* Initialise members */
core_list->entries = NULL;
core_list->type = CORE_UPDATER_LIST_TYPE_UNKNOWN;
return core_list;
}
@@ -135,41 +119,29 @@ core_updater_list_t *core_updater_list_init(size_t max_size)
* updater list */
void core_updater_list_reset(core_updater_list_t *core_list)
{
size_t i;
if (!core_list)
return;
for (i = 0; i < core_list->size; i++)
if (core_list->entries)
{
core_updater_list_entry_t *entry = &core_list->entries[i];
size_t i;
if (entry)
core_updater_list_free_entry(entry);
for (i = 0; i < RBUF_LEN(core_list->entries); i++)
core_updater_list_free_entry(&core_list->entries[i]);
RBUF_FREE(core_list->entries);
}
core_list->size = 0;
core_list->type = CORE_UPDATER_LIST_TYPE_UNKNOWN;
}
/* Frees specified core updater list */
void core_updater_list_free(core_updater_list_t *core_list)
{
size_t i;
if (!core_list)
return;
for (i = 0; i < core_list->size; i++)
{
core_updater_list_entry_t *entry = &core_list->entries[i];
if (entry)
core_updater_list_free_entry(entry);
}
free(core_list->entries);
core_list->entries = NULL;
core_updater_list_reset(core_list);
free(core_list);
}
@@ -180,7 +152,7 @@ void core_updater_list_free(core_updater_list_t *core_list)
/* Creates a new, empty cached core updater list
* (i.e. 'global' list).
* Returns false in the event of an error. */
bool core_updater_list_init_cached(size_t max_size)
bool core_updater_list_init_cached(void)
{
/* Free any existing cached core updater list */
if (core_list_cached)
@@ -189,7 +161,7 @@ bool core_updater_list_init_cached(size_t max_size)
core_list_cached = NULL;
}
core_list_cached = core_updater_list_init(max_size);
core_list_cached = core_updater_list_init();
if (!core_list_cached)
return false;
@@ -223,17 +195,18 @@ size_t core_updater_list_size(core_updater_list_t *core_list)
if (!core_list)
return 0;
return core_list->size;
return RBUF_LEN(core_list->entries);
}
/* Returns maximum allowed number of entries in core
* updater list */
size_t core_updater_list_capacity(core_updater_list_t *core_list)
/* Returns 'type' (core delivery method) of
* specified core updater list */
enum core_updater_list_type core_updater_list_get_type(
core_updater_list_t *core_list)
{
if (!core_list)
return 0;
return CORE_UPDATER_LIST_TYPE_UNKNOWN;
return core_list->capacity;
return core_list->type;
}
/* Fetches core updater list entry corresponding
@@ -247,11 +220,10 @@ bool core_updater_list_get_index(
if (!core_list || !entry)
return false;
if (idx >= core_list->size)
if (idx >= RBUF_LEN(core_list->entries))
return false;
if (entry)
*entry = &core_list->entries[idx];
*entry = &core_list->entries[idx];
return true;
}
@@ -264,16 +236,19 @@ bool core_updater_list_get_filename(
const char *remote_filename,
const core_updater_list_entry_t **entry)
{
size_t num_entries;
size_t i;
if (!core_list || string_is_empty(remote_filename))
if (!core_list || !entry || string_is_empty(remote_filename))
return false;
if (core_list->size < 1)
num_entries = RBUF_LEN(core_list->entries);
if (num_entries < 1)
return false;
/* Search for specified filename */
for (i = 0; i < core_list->size; i++)
for (i = 0; i < num_entries; i++)
{
core_updater_list_entry_t *current_entry = &core_list->entries[i];
@@ -282,9 +257,7 @@ bool core_updater_list_get_filename(
if (string_is_equal(remote_filename, current_entry->remote_filename))
{
if (entry)
*entry = current_entry;
*entry = current_entry;
return true;
}
}
@@ -300,6 +273,8 @@ bool core_updater_list_get_core(
const char *local_core_path,
const core_updater_list_entry_t **entry)
{
bool resolve_symlinks;
size_t num_entries;
size_t i;
char real_core_path[PATH_MAX_LENGTH];
@@ -308,18 +283,27 @@ bool core_updater_list_get_core(
if (!core_list || !entry || string_is_empty(local_core_path))
return false;
if (core_list->size < 1)
num_entries = RBUF_LEN(core_list->entries);
if (num_entries < 1)
return false;
/* Resolve absolute pathname of local_core_path */
strlcpy(real_core_path, local_core_path, sizeof(real_core_path));
path_resolve_realpath(real_core_path, sizeof(real_core_path), true);
/* Can't resolve symlinks when dealing with cores
* installed via play feature delivery, because the
* source files have non-standard file names (which
* will not be recognised by regular core handling
* routines) */
resolve_symlinks = (core_list->type != CORE_UPDATER_LIST_TYPE_PFD);
path_resolve_realpath(real_core_path, sizeof(real_core_path),
resolve_symlinks);
if (string_is_empty(real_core_path))
return false;
/* Search for specified core */
for (i = 0; i < core_list->size; i++)
for (i = 0; i < num_entries; i++)
{
core_updater_list_entry_t *current_entry = &core_list->entries[i];
@@ -334,9 +318,7 @@ bool core_updater_list_get_core(
if (string_is_equal(real_core_path, current_entry->local_core_path))
{
#endif
if (entry)
*entry = current_entry;
*entry = current_entry;
return true;
}
}
@@ -353,36 +335,33 @@ bool core_updater_list_get_core(
static bool core_updater_list_set_date(
core_updater_list_entry_t *entry, const char *date_str)
{
struct string_list *date_list = NULL;
struct string_list date_list = {0};
if (!entry || string_is_empty(date_str))
goto error;
/* Split date string into component values */
date_list = string_split(date_str, "-");
if (!date_list)
goto error;
string_list_initialize(&date_list);
if (!string_split_noalloc(&date_list, date_str, "-"))
goto error;
/* Date string must have 3 values:
* [year] [month] [day] */
if (date_list->size < 3)
if (date_list.size < 3)
goto error;
/* Convert date string values */
entry->date.year = string_to_unsigned(date_list->elems[0].data);
entry->date.month = string_to_unsigned(date_list->elems[1].data);
entry->date.day = string_to_unsigned(date_list->elems[2].data);
entry->date.year = string_to_unsigned(date_list.elems[0].data);
entry->date.month = string_to_unsigned(date_list.elems[1].data);
entry->date.day = string_to_unsigned(date_list.elems[2].data);
/* Clean up */
string_list_free(date_list);
string_list_deinitialize(&date_list);
return true;
error:
if (date_list)
string_list_free(date_list);
string_list_deinitialize(&date_list);
return false;
}
@@ -415,24 +394,34 @@ static bool core_updater_list_set_paths(
const char *path_dir_libretro,
const char *path_libretro_info,
const char *network_buildbot_url,
const char *filename_str)
const char *filename_str,
enum core_updater_list_type list_type)
{
char *last_underscore = NULL;
char *tmp_url = NULL;
bool is_archive = true;
/* Can't resolve symlinks when dealing with cores
* installed via play feature delivery, because the
* source files have non-standard file names (which
* will not be recognised by regular core handling
* routines) */
bool resolve_symlinks = (list_type != CORE_UPDATER_LIST_TYPE_PFD);
char remote_core_path[PATH_MAX_LENGTH];
char local_core_path[PATH_MAX_LENGTH];
char local_info_path[PATH_MAX_LENGTH];
bool is_archive;
remote_core_path[0] = '\0';
local_core_path[0] = '\0';
local_info_path[0] = '\0';
if (!entry || string_is_empty(filename_str))
if (!entry ||
string_is_empty(filename_str) ||
string_is_empty(path_dir_libretro) ||
string_is_empty(path_libretro_info))
return false;
if (string_is_empty(path_dir_libretro) ||
string_is_empty(path_libretro_info) ||
/* Only buildbot cores require the buildbot URL */
if ((list_type == CORE_UPDATER_LIST_TYPE_BUILDBOT) &&
string_is_empty(network_buildbot_url))
return false;
@@ -448,20 +437,24 @@ static bool core_updater_list_set_paths(
entry->remote_filename = strdup(filename_str);
/* remote_core_path */
fill_pathname_join(
remote_core_path,
network_buildbot_url,
filename_str,
sizeof(remote_core_path));
/* remote_core_path
* > Leave blank if this is not a buildbot core */
if (list_type == CORE_UPDATER_LIST_TYPE_BUILDBOT)
{
fill_pathname_join(
remote_core_path,
network_buildbot_url,
filename_str,
sizeof(remote_core_path));
/* > Apply proper URL encoding (messy...) */
tmp_url = strdup(remote_core_path);
remote_core_path[0] = '\0';
net_http_urlencode_full(
remote_core_path, tmp_url, sizeof(remote_core_path));
if (tmp_url)
free(tmp_url);
/* > Apply proper URL encoding (messy...) */
tmp_url = strdup(remote_core_path);
remote_core_path[0] = '\0';
net_http_urlencode_full(
remote_core_path, tmp_url, sizeof(remote_core_path));
if (tmp_url)
free(tmp_url);
}
if (entry->remote_core_path)
{
@@ -481,7 +474,8 @@ static bool core_updater_list_set_paths(
if (is_archive)
path_remove_extension(local_core_path);
path_resolve_realpath(local_core_path, sizeof(local_core_path), true);
path_resolve_realpath(local_core_path, sizeof(local_core_path),
resolve_symlinks);
if (entry->local_core_path)
{
@@ -515,7 +509,7 @@ static bool core_updater_list_set_paths(
/* > Add proper file extension */
strlcat(
local_info_path,
file_path_str(FILE_PATH_CORE_INFO_EXTENSION),
FILE_PATH_CORE_INFO_EXTENSION,
sizeof(local_info_path));
if (entry->local_info_path)
@@ -627,22 +621,25 @@ static bool core_updater_list_push_entry(
core_updater_list_t *core_list, core_updater_list_entry_t *entry)
{
core_updater_list_entry_t *list_entry = NULL;
size_t num_entries;
if (!core_list || !entry)
return false;
/* Ensure there is enough space for the new entry */
if (core_list->capacity <= core_list->size)
/* Get current number of list entries */
num_entries = RBUF_LEN(core_list->entries);
/* Attempt to allocate memory for new entry */
if (!RBUF_TRYFIT(core_list->entries, num_entries + 1))
return false;
/* Get handle of new entry inside list */
list_entry = &core_list->entries[core_list->size];
/* Allocation successful - increment array size */
RBUF_RESIZE(core_list->entries, num_entries + 1);
if (!list_entry)
return false;
/* Ensure list entry is empty */
core_updater_list_free_entry(list_entry);
/* Get handle of new entry at end of list, and
* zero-initialise members */
list_entry = &core_list->entries[num_entries];
memset(list_entry, 0, sizeof(*list_entry));
/* Assign paths */
list_entry->remote_filename = entry->remote_filename;
@@ -662,9 +659,6 @@ static bool core_updater_list_push_entry(
/* Copy date */
memcpy(&list_entry->date, &entry->date, sizeof(core_updater_list_date_t));
/* Increment list size */
core_list->size++;
return true;
}
@@ -678,10 +672,11 @@ static void core_updater_list_add_entry(
const char *network_buildbot_url,
struct string_list *network_core_entry_list)
{
const char *date_str = NULL;
const char *crc_str = NULL;
const char *filename_str = NULL;
core_updater_list_entry_t entry = {0};
const char *date_str = NULL;
const char *crc_str = NULL;
const char *filename_str = NULL;
const core_updater_list_entry_t *search_entry = NULL;
core_updater_list_entry_t entry = {0};
if (!core_list || !network_core_entry_list)
goto error;
@@ -704,7 +699,8 @@ static void core_updater_list_add_entry(
/* Check whether core file is already included
* in the list (this is *not* an error condition,
* it just means we can skip the current listing) */
if (core_updater_list_get_filename(core_list, filename_str, NULL))
if (core_updater_list_get_filename(core_list,
filename_str, &search_entry))
goto error;
/* Parse individual listing strings */
@@ -719,7 +715,8 @@ static void core_updater_list_add_entry(
path_dir_libretro,
path_libretro_info,
network_buildbot_url,
filename_str))
filename_str,
CORE_UPDATER_LIST_TYPE_BUILDBOT))
goto error;
if (!core_updater_list_set_core_info(
@@ -742,7 +739,8 @@ error:
* (could be the case that the network buffer
* wasn't large enough to cache the entire
* string, so the last line was truncated)
* - The core updater list struct is at capacity
* - We had insufficient memory to allocate a new
* entry in the core updater list
* In either case, the current entry is discarded
* and we move on to the next one
* (network transfers are fishy business, so we
@@ -768,18 +766,21 @@ static int core_updater_list_qsort_func(
/* Sorts core updater list into alphabetical order */
static void core_updater_list_qsort(core_updater_list_t *core_list)
{
size_t num_entries;
if (!core_list)
return;
if (core_list->size < 2)
num_entries = RBUF_LEN(core_list->entries);
if (num_entries < 2)
return;
qsort(
core_list->entries,
core_list->size,
core_list->entries, num_entries,
sizeof(core_updater_list_entry_t),
(int (*)(const void *, const void *))
core_updater_list_qsort_func);
core_updater_list_qsort_func);
}
/* Reads the contents of a buildbot core list
@@ -793,10 +794,9 @@ bool core_updater_list_parse_network_data(
const char *network_buildbot_url,
const char *data, size_t len)
{
struct string_list *network_core_list = NULL;
struct string_list *network_core_entry_list = NULL;
char *data_buf = NULL;
size_t i;
char *data_buf = NULL;
struct string_list network_core_list = {0};
/* Sanity check */
if (!core_list || string_is_empty(data) || (len < 1))
@@ -817,12 +817,11 @@ bool core_updater_list_parse_network_data(
data_buf[len] = '\0';
/* Split network listing request into lines */
network_core_list = string_split(data_buf, "\n");
if (!network_core_list)
string_list_initialize(&network_core_list);
if (!string_split_noalloc(&network_core_list, data_buf, "\n"))
goto error;
if (network_core_list->size < 1)
if (network_core_list.size < 1)
goto error;
/* Temporary data buffer is no longer required */
@@ -830,15 +829,17 @@ bool core_updater_list_parse_network_data(
data_buf = NULL;
/* Loop over lines */
for (i = 0; i < network_core_list->size; i++)
for (i = 0; i < network_core_list.size; i++)
{
const char *line = network_core_list->elems[i].data;
struct string_list network_core_entry_list = {0};
const char *line = network_core_list.elems[i].data;
if (string_is_empty(line))
continue;
string_list_initialize(&network_core_entry_list);
/* Split line into listings info components */
network_core_entry_list = string_split(line, " ");
string_split_noalloc(&network_core_entry_list, line, " ");
/* Parse listings info and add to core updater
* list */
@@ -847,35 +848,143 @@ bool core_updater_list_parse_network_data(
path_dir_libretro,
path_libretro_info,
network_buildbot_url,
network_core_entry_list);
&network_core_entry_list);
/* Clean up */
string_list_free(network_core_entry_list);
network_core_entry_list = NULL;
string_list_deinitialize(&network_core_entry_list);
}
/* Sanity check */
if (core_list->size < 1)
if (RBUF_LEN(core_list->entries) < 1)
goto error;
/* Clean up */
string_list_free(network_core_list);
string_list_deinitialize(&network_core_list);
/* Sort completed list */
core_updater_list_qsort(core_list);
/* Set list type */
core_list->type = CORE_UPDATER_LIST_TYPE_BUILDBOT;
return true;
error:
if (network_core_list)
string_list_free(network_core_list);
if (network_core_entry_list)
string_list_free(network_core_entry_list);
string_list_deinitialize(&network_core_list);
if (data_buf)
free(data_buf);
return false;
}
/* Parses a single play feature delivery core
* listing and adds it to the specified core
* updater list */
static void core_updater_list_add_pfd_entry(
core_updater_list_t *core_list,
const char *path_dir_libretro,
const char *path_libretro_info,
const char *filename_str)
{
const core_updater_list_entry_t *search_entry = NULL;
core_updater_list_entry_t entry = {0};
if (!core_list || string_is_empty(filename_str))
goto error;
/* Check whether core file is already included
* in the list (this is *not* an error condition,
* it just means we can skip the current listing) */
if (core_updater_list_get_filename(core_list,
filename_str, &search_entry))
goto error;
/* Note: Play feature delivery cores have no
* timestamp or CRC info - leave these fields
* zero initialised */
/* Populate entry fields */
if (!core_updater_list_set_paths(
&entry,
path_dir_libretro,
path_libretro_info,
NULL,
filename_str,
CORE_UPDATER_LIST_TYPE_PFD))
goto error;
if (!core_updater_list_set_core_info(
&entry,
entry.local_info_path,
filename_str))
goto error;
/* Add entry to list */
if (!core_updater_list_push_entry(core_list, &entry))
goto error;
return;
error:
/* This is not a *fatal* error - it just
* means one of the following:
* - The core listing entry obtained from the
* play feature delivery interface is broken
* somehow
* - We had insufficient memory to allocate a new
* entry in the core updater list
* In either case, the current entry is discarded
* and we move on to the next one */
core_updater_list_free_entry(&entry);
}
/* Reads the list of cores currently available
* via play feature delivery (PFD) into the
* specified core_updater_list_t object.
* Returns false in the event of an error. */
bool core_updater_list_parse_pfd_data(
core_updater_list_t *core_list,
const char *path_dir_libretro,
const char *path_libretro_info,
const struct string_list *pfd_cores)
{
size_t i;
/* Sanity check */
if (!core_list || !pfd_cores || (pfd_cores->size < 1))
return false;
/* We're populating a list 'from scratch' - remove
* any existing entries */
core_updater_list_reset(core_list);
/* Loop over play feature delivery core list */
for (i = 0; i < pfd_cores->size; i++)
{
const char *filename_str = pfd_cores->elems[i].data;
if (string_is_empty(filename_str))
continue;
/* Parse core file name and add to core
* updater list */
core_updater_list_add_pfd_entry(
core_list,
path_dir_libretro,
path_libretro_info,
filename_str);
}
/* Sanity check */
if (RBUF_LEN(core_list->entries) < 1)
return false;
/* Sort completed list */
core_updater_list_qsort(core_list);
/* Set list type */
core_list->type = CORE_UPDATER_LIST_TYPE_PFD;
return true;
}
+30 -12
View File
@@ -32,9 +32,17 @@
RETRO_BEGIN_DECLS
/* Default maximum number of entries in
* a core updater list */
#define CORE_UPDATER_LIST_SIZE 9999
/* Defines all possible 'types' of core
* updater list - corresponds to core
* delivery method:
* > Buildbot
* > Play feature delivery (PFD) */
enum core_updater_list_type
{
CORE_UPDATER_LIST_TYPE_UNKNOWN = 0,
CORE_UPDATER_LIST_TYPE_BUILDBOT,
CORE_UPDATER_LIST_TYPE_PFD
};
/* Holds all date info for a core file
* on the buildbot */
@@ -56,9 +64,9 @@ typedef struct
char *display_name;
char *description;
struct string_list *licenses_list;
bool is_experimental;
core_updater_list_date_t date; /* unsigned alignment */
uint32_t crc;
core_updater_list_date_t date;
bool is_experimental;
} core_updater_list_entry_t;
/* Prevent direct access to core_updater_list_t
@@ -69,11 +77,10 @@ typedef struct core_updater_list core_updater_list_t;
/* Initialisation / De-Initialisation */
/**************************************/
/* Creates a new, empty core updater list with a
* maximum number of 'max_size' entries.
/* Creates a new, empty core updater list.
* Returns a handle to a new core_updater_list_t object
* on success, otherwise returns NULL. */
core_updater_list_t *core_updater_list_init(size_t max_size);
core_updater_list_t *core_updater_list_init(void);
/* Resets (removes all entries of) specified core
* updater list */
@@ -89,7 +96,7 @@ void core_updater_list_free(core_updater_list_t *core_list);
/* Creates a new, empty cached core updater list
* (i.e. 'global' list).
* Returns false in the event of an error. */
bool core_updater_list_init_cached(size_t max_size);
bool core_updater_list_init_cached(void);
/* Fetches cached core updater list */
core_updater_list_t *core_updater_list_get_cached(void);
@@ -104,9 +111,10 @@ void core_updater_list_free_cached(void);
/* Returns number of entries in core updater list */
size_t core_updater_list_size(core_updater_list_t *core_list);
/* Returns maximum allowed number of entries in core
* updater list */
size_t core_updater_list_capacity(core_updater_list_t *core_list);
/* Returns 'type' (core delivery method) of
* specified core updater list */
enum core_updater_list_type core_updater_list_get_type(
core_updater_list_t *core_list);
/* Fetches core updater list entry corresponding
* to the specified entry index.
@@ -147,6 +155,16 @@ bool core_updater_list_parse_network_data(
const char *network_buildbot_url,
const char *data, size_t len);
/* Reads the list of cores currently available
* via play feature delivery (PFD) into the
* specified core_updater_list_t object.
* Returns false in the event of an error. */
bool core_updater_list_parse_pfd_data(
core_updater_list_t *core_list,
const char *path_dir_libretro,
const char *path_libretro_info,
const struct string_list *pfd_cores);
RETRO_END_DECLS
#endif
+1 -2
View File
@@ -193,10 +193,9 @@ static GLint mix_loc;
static struct
{
double interpolate_fps;
unsigned width;
unsigned height;
double interpolate_fps;
unsigned sample_rate;
float aspect;
+3 -3
View File
@@ -19,14 +19,14 @@ enum kbStatus
struct video_buffer
{
int64_t head;
int64_t tail;
video_decoder_context_t *buffer;
enum kbStatus *status;
size_t capacity;
slock_t *lock;
scond_t *open_cond;
scond_t *finished_cond;
int64_t head;
int64_t tail;
size_t capacity;
};
video_buffer_t *video_buffer_create(
+1 -1
View File
@@ -43,7 +43,6 @@ RETRO_BEGIN_DECLS
*/
struct video_decoder_context
{
int index;
int64_t pts;
struct SwsContext *sws;
AVFrame *source;
@@ -55,6 +54,7 @@ struct video_decoder_context
ASS_Track *ass_track_active;
#endif
uint8_t *frame_buf;
int index;
};
typedef struct video_decoder_context video_decoder_context_t;
+1
View File
@@ -8,6 +8,7 @@
extern "C" {
#endif
void wait_for_input(void);
void error_and_quit(const char* errorStr);
void dump_result_value(Result val);
#ifdef __cplusplus
}
+1 -2
View File
@@ -201,8 +201,7 @@ void* linearMemAlign(size_t size, size_t alignment)
void* linearAlloc(size_t size)
{
#if 0
extern PrintConsole* currentConsole;
if(currentConsole->consoleInitialised)
if(ctrConsole && ctrConsole->consoleInitialised)
{
printf("linearAlloc : 0x%08X\n", size);
DEBUG_HOLD();
+6 -3
View File
@@ -141,9 +141,12 @@ void* _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
__heap_size += diff;
if (diff < 0)
svcControlMemory(&tmp, __heapBase + __heap_size,
0x0, -diff, MEMOP_FREE, MEMPERM_READ | MEMPERM_WRITE);
while (diff < 0) {
int size = -diff < 0x100000 ? -diff : 0x100000;
diff += size;
svcControlMemory(&tmp, __heapBase + __heap_size - diff,
0x0, size, MEMOP_FREE, 0);
}
sbrk_top += incr;
+9
View File
@@ -44,7 +44,9 @@ typedef struct
bool isNew3DS;
u32 kernel_fcram_mapping_offset;
#ifndef USE_CTRULIB_2
Handle arbiter;
#endif
volatile u32 alloc_address;
volatile u32 alloc_size;
u8* flush_buffer;
@@ -263,7 +265,9 @@ static void do_memchunkhax2(void)
svcCloseHandle(mch2.dummy_threads_lock);
#ifndef USE_CTRULIB_2
mch2.arbiter = __sync_get_arbiter();
#endif
svcControlMemory(&linear_buffer, 0, 0, 0x1000,
MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
@@ -327,9 +331,14 @@ static void do_memchunkhax2(void)
(ThreadFunc)alloc_thread_entry, (u32)&mch2,
mch2.threads[MCH2_THREAD_COUNT_MAX - 1].stack_top, 0x3F, 1);
#ifdef USE_CTRULIB_2
while ((u32) syncArbitrateAddress((s32 *)mch2.alloc_address,
ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT, 0) == 0xD9001814);
#else
while ((u32) svcArbitrateAddress(mch2.arbiter, mch2.alloc_address,
ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT, 0,
0) == 0xD9001814);
#endif
GX_TextureCopy((void*)linear_buffer, 0, (void*)dst_memchunk, 0, 16, 8);
memcpy(flush_buffer, flush_buffer + 0x4000, 0x4000);
+38 -2
View File
@@ -21,6 +21,8 @@ u32 __heapBase;
u32 __stack_bottom;
u32 __stack_size_extra;
u32 __saved_stack;
extern u32 __linear_heap_size_hbl;
extern u32 __heap_size_hbl;
extern void* __service_ptr;
@@ -74,6 +76,11 @@ void __system_allocateHeaps(void)
/* Allocate the linear heap */
svcControlMemory(&__linear_heap, 0x0, 0x0, __linear_heap_size, MEMOP_ALLOC_LINEAR, MEMPERM_READ | MEMPERM_WRITE);
#ifdef USE_CTRULIB_2
/* Mappable allocator init */
mappableInit(OS_MAP_AREA_BEGIN, OS_MAP_AREA_END);
#endif
/* Set up newlib heap */
fake_heap_end = (char*)0x13F00000;
}
@@ -102,15 +109,26 @@ extern char** __system_argv;
void __attribute__((noreturn)) __libctru_exit(int rc)
{
u32 tmp = 0;
int size = 0;
if (__system_argv)
free(__system_argv);
/* Unmap the linear heap */
svcControlMemory(&tmp, __linear_heap, 0x0, __linear_heap_size, MEMOP_FREE, 0x0);
/* Do this 1MB at a time to avoid kernel panics, see https://github.com/LumaTeam/Luma3DS/issues/1504 */
while (__linear_heap_size > 0) {
size = __linear_heap_size < 0x100000 ? __linear_heap_size : 0x100000;
__linear_heap_size -= size;
svcControlMemory(&tmp, __linear_heap + __linear_heap_size, 0x0, size, MEMOP_FREE, 0x0);
}
/* Unmap the application heap */
svcControlMemory(&tmp, __heapBase, 0x0, __heap_size, MEMOP_FREE, 0x0);
/* Do this 1MB at a time to avoid kernel panics */
while (__heap_size > 0) {
size = __heap_size < 0x100000 ? __heap_size : 0x100000;
__heap_size -= size;
svcControlMemory(&tmp, __heapBase + __heap_size, 0x0, size, MEMOP_FREE, 0x0);
}
if (__stack_size_extra)
svcControlMemory(&tmp, __stack_bottom, 0x0, __stack_size_extra, MEMOP_FREE, 0x0);
@@ -240,6 +258,9 @@ void __system_initArgv(void)
void initSystem(void (*retAddr)(void))
{
register u32 sp_val __asm__("sp");
__saved_stack = sp_val;
__libctru_init(retAddr);
__appInit();
__system_initArgv();
@@ -250,6 +271,7 @@ void __attribute__((noreturn)) __ctru_exit(int rc)
{
__libc_fini_array();
__appExit();
asm ("mov sp, %[saved_stack] \n\t" : : [saved_stack] "r" (__saved_stack) : "sp");
__libctru_exit(rc);
}
@@ -300,6 +322,20 @@ void wait_for_input(void)
}
}
void error_and_quit(const char* errorStr)
{
errorConf error;
#ifdef IS_SALAMANDER
gfxInitDefault();
#endif
errorInit(&error, ERROR_TEXT, CFG_LANGUAGE_EN);
errorText(&error, errorStr);
errorDisp(&error);
gfxExit();
exit(0);
}
long sysconf(int name)
{
switch (name)
Loaded 100 of 1960 files, more files were not shown because too many files have changed in this diff. Show more