Compare commits

...
Author SHA1 Message Date
Autechre 06a2367008 Bump to version 1.9.14 (#13327)
* * Bump to version 1.9.14
* Don't have unused function when HAVE_CORE_INFO_CACHE is undefined

* Addition to CHANGES.md
2021-12-05 07:12:23 +01:00
twinaphex 6f60ee9b6e Network: Only use a single interface for UPnP 2021-12-05 03:47:48 +01:00
github-actions 9f01ebf0a9 Fetch translations from Crowdin 2021-12-05 00:07:43 +00:00
Autechre fbbe351f7d UPnP cleanups and refactorings (#13325) 2021-12-04 21:16:34 +01:00
twinaphex bfeffb2423 Fix local header path includes 2021-12-04 16:11:02 +01:00
Autechre a44f5bbf78 Fix UPNP port mapping failed error - switch to a permanent lease time, (#13324)
but request it to be removed when we do netplay_free
2021-12-04 15:45:29 +01:00
Tony 09880e92d2 Logging cleanups (#13320) 2021-12-04 14:21:12 +01:00
gbluesandNathan Strong bf9706395d Fix gamepad disconnect on unrecognized HID device (#13321)
== DETAILS
So, the reason the gamepad was getting deregistered was
because adapter free code wasn't properly handling null-interface
adapters, causing the gamepad to match erroneously and get
deregistered.

This doesn't fix the weird "Generic SNES USB" detection issue,
but it should make it non-fatal.

Co-authored-by: Nathan Strong <[email protected]>
2021-12-04 12:43:58 +01:00
Autechre b6695d8921 Netplay changes proposed for 1.9.14 (#13314)
* Added setting to allow/disallow players other than the host from pausing the game.
* Added a sublabel for netplay max connections.
* Fixed port override macro from not being set immediately after the port setting.
* Fixed memory leaks.
2021-12-04 02:34:21 +01:00
David G. F 9b7270cb6a Minor improvements in PSP and CTR Makefiles (mostly for devs) (#13317) 2021-12-04 02:01:00 +01:00
Jamiras b6fef13109 disallow achievement when spectating netplay (#13318) 2021-12-04 02:00:53 +01:00
github-actions 69e4ea8d33 Fetch translations from Crowdin 2021-12-04 00:06:41 +00:00
Tony 41838ef544 Refresh rate switch addition on startup (#13316) 2021-12-03 17:52:46 +01:00
Ryan Kuba 1fc6f759c5 tweak to ensure that current versions of emsdk do not break the web player (#13310) 2021-12-03 16:20:12 +01:00
Hans-Kristian Arntzen ce8a3db4dc Avoid hard crash when capturing screenshot in emulating mailbox. (#13315)
The emulating mailbox infrastructure is very hacky and needs a rethink
to be able to properly support screenshots. emulating mailbox is pretty
nasty to begin with and should be considered a hack.
2021-12-03 16:19:49 +01:00
github-actions 4a39630c0f Fetch translations from Crowdin 2021-12-03 00:07:30 +00:00
gbluesandNathan Strong 1dd15ac516 WIIU: Fix keyboard support (#13308)
== DETAILS
The problem was caused by changing the driver lookup point. The deferred
lookup resulted in the WIIU trying to treat the keyboard as a gamepad which ...
didn't work.

This change short-circuits at the connection event by ignoring mouse &
keyboard connection events.

Tested this with a dev build.

Co-authored-by: Nathan Strong <[email protected]>
2021-12-02 12:43:19 +01:00
Tony 121ca3a482 'Automatic Frame Delay' improvements: (#13297)
- swap interval handling
- d3dx handling
2021-12-02 02:32:39 +01:00
github-actions 72e49d82d6 Fetch translations from Crowdin 2021-12-02 00:07:57 +00:00
PoligrafandPoligraf b4ef32cfce add oss audio to retrofw (#13303)
Co-authored-by: Poligraf <>
2021-12-01 17:19:39 +01:00
github-actions 621c3a7b7e Fetch translations from Crowdin 2021-12-01 00:08:06 +00:00
Autechre af4bdecef9 Show passworded rooms on lobby (#13301) 2021-11-30 22:06:13 +01:00
jdgleaver 67eb42a8c2 (Audio Mixer) Increase sample buffer padding (#13300) 2021-11-30 14:52:25 +01:00
github-actions a585e05a8a Fetch translations from Crowdin 2021-11-30 00:07:17 +00:00
Aaron Ramirez 97f3fca139 Fixes a bug where the Gyroscope and Accelerometer would not be re-enabled when the app regains focus or is resumed. (#13298) 2021-11-29 16:53:13 +01:00
github-actions ef8a14a968 Fetch translations from Crowdin 2021-11-29 00:07:04 +00:00
github-actions 05f95ad428 Fetch translations from Crowdin 2021-11-28 00:08:27 +00:00
twinaphex 1d26ed64a5 Update dist-cores.sh 2021-11-27 14:04:23 +01:00
github-actions 454fddb1dc Fetch translations from Crowdin 2021-11-27 00:07:02 +00:00
Abadede c1cbe68df7 Update retroarch.cfg (#13289)
Shifted indexes to correct value.
2021-11-26 18:07:00 +01:00
github-actions 019466e928 Fetch translations from Crowdin 2021-11-26 00:07:25 +00:00
jdgleaver 73b252a0d8 Fix display of midi driver menu entry (#13286) 2021-11-25 13:24:52 +01:00
Jamiras 99a1ffdb89 validate hashes for secondary discs in multi-disc games (#13283) 2021-11-25 07:15:37 +01:00
Jamiras 339feab15b add cheevos_custom_host setting (#13284) 2021-11-25 07:15:19 +01:00
github-actions 5069acd288 Fetch translations from Crowdin 2021-11-25 00:06:52 +00:00
Tony ecef757af9 Focus on current content entry in Disc Control append/insert (#13282) 2021-11-24 19:01:43 +01:00
Alberto Fustinoni 544c8c4e29 UWP compilation fix (#13280) 2021-11-24 14:24:48 +01:00
jdgleaver 3c4b39057f file_stream_transforms.c: Ensure correct return values + fix segfault when calling rfread() with zero elem_size (#13279) 2021-11-24 11:32:42 +01:00
github-actions 1077a6f3a8 Fetch translations from Crowdin 2021-11-24 00:07:14 +00:00
twinaphex adc325e908 Move command_get_config_param to command.c 2021-11-23 17:14:38 +01:00
twinaphex bc6433e0f9 Move menu_content_environment_get to task_content.c 2021-11-23 17:10:52 +01:00
twinaphex b4137915e8 Move code to proper locations 2021-11-23 16:58:36 +01:00
twinaphex 0a40e1f771 (gl_core/gl3) Rename gl_core internally to gl3 2021-11-23 08:45:54 +01:00
twinaphex 8a83ebec28 JSON handlers only necessary when HAVE_CORE_INFO_CACHE is defined 2021-11-23 05:13:36 +01:00
twinaphex e497da9cf4 (core_info.c) Cleanups - try to fit lines within 80-char limit, put one
function behind HAVE_CORE_INFO_CACHE so we won't get a unused function
for Steam build
2021-11-23 05:05:53 +01:00
github-actions d02d32fbe4 Fetch translations from Crowdin 2021-11-23 00:07:15 +00:00
Jamiras 228c5b83e2 ensure placard is initialized on main thread when game has no achievements (#13275) 2021-11-22 16:42:43 +01:00
twinaphex c2c36177b8 Move two variables to input_driver.c 2021-11-22 15:26:54 +01:00
Autechre 5bb4df3a42 Move translation task code to tasks/task_translation.c (#13274) 2021-11-22 15:19:20 +01:00
twinaphex 9982452c18 Move code from retroarch.c to runloop.c 2021-11-22 03:33:58 +01:00
Autechre 2b87cd9313 Create runloop.c and split up runloop code to this new file; (#13269)
* Create runloop.c and split up runloop code to this new file;
retroarch.c now 207Kb and runloop.c 301Kb

* Define empty runloop_secondary_core_destroy
2021-11-22 03:27:23 +01:00
github-actions 8dfaf84cc9 Fetch translations from Crowdin 2021-11-22 00:07:09 +00:00
twinaphex d3d7748f92 Move global error_on_init/error_string/sjlj jump to global
state - move g_extern out of p_rarch
2021-11-21 23:26:47 +01:00
Autechre 113e9340c1 Move ui_companion_driver code out of retroarch.c (#13268)
* Move ui_companion_driver code out of retroarch.c

* Buildfix

* Fix error - was reading the array out of (preinitialized) bounds

* Remove unused variable
2021-11-21 23:19:23 +01:00
Autechre 5f49899343 Bluetooth refactor (#13266)
* Use HAVE_BLUETOOTH ifdef to strip out this code when not defined

* Split up bluetooth code into its own file
2021-11-21 20:44:08 +01:00
Sage 85a256e2cb Make http header parsing case insensitive (#13267) 2021-11-21 20:43:58 +01:00
Autechre 71b30d7846 Split up wifi networking code - move it into separate file (#13262) 2021-11-21 12:37:39 +01:00
twinaphex ed437fdd8e (video_crt_switch) Cleanups and potential build fix 2021-11-21 12:08:31 +01:00
github-actions 2f9a8d7b3e Fetch translations from Crowdin 2021-11-21 00:07:13 +00:00
Autechre 9e40966dce Merge pull request #13249 from ToKe79/lakka2upstream
Upstream patches from Lakka
2021-11-20 22:07:47 +01:00
twinaphex 335c24a895 Remove unused variables 2021-11-20 21:43:40 +01:00
twinaphex 7a8b629746 (Steam Linux) Default to SDL input/joypad driver 2021-11-20 21:04:30 +01:00
twinaphex d04dee7ee0 (GL1) Update code so that GL Hard Sync will work with menu
enabled [Hard sync doesn't seem implemented for GL1 anyway]
2021-11-20 03:40:48 +01:00
twinaphex 282c8ddc5f (GL3) Allow Hard GPU Sync in menu 2021-11-20 03:26:54 +01:00
twinaphex e7e6b9977f (GL2) Backport https://github.com/neil4/RetroArch-Lite/commit/75a66be87b600842d826413583047f35c3d0eb77 - Allow Hard GPU sync in menu 2021-11-20 02:20:53 +01:00
github-actions 955bf08fcd Fetch translations from Crowdin 2021-11-20 00:06:32 +00:00
github-actions 4ffe9dc5b3 Fetch translations from Crowdin 2021-11-19 00:07:09 +00:00
github-actions 17c522bbb0 Fetch translations from Crowdin 2021-11-18 00:08:22 +00:00
Tomáš Kelemen (vudiq) fd5c718b48 buildfix: undefined srm.x_scale, srm.y_scale
srm.x_scale and srm.y_scale are undefined in this context/scope.

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-07-gpicase_buildfix.patch
2021-11-18 00:36:11 +01:00
Tomáš Kelemen (vudiq) 0cf437e375 Lakka/Nintendo Switch: disable rumble gain
Rumble gain breaks controlls on Nintendo Switch port of Lakka, probably
due to issue in the driver).

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-06-switch_disable_rumble_gain.patch
2021-11-18 00:36:11 +01:00
Tomáš Kelemen (vudiq) 44dcfb88b6 Lakka: do not add include for libdrm
Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-03-libdrm-include.patch
2021-11-18 00:36:11 +01:00
Jean-André Santoni 6a99832a4d Lakka: Patch to fix keyboard typing
Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-01-xkb-fix.patch
2021-11-18 00:36:11 +01:00
Tomáš Kelemen (vudiq) efad7a7dcc Lakka: CD-ROM eject menu item
Adds new entry (where the entry for dumping CD is) to eject the disc -
in case the CD drive has no physical button to eject the disc / the
button does not work. Useless for most, but quality of life improvement
for some.

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-99-eject_disc.patch
2021-11-18 00:36:01 +01:00
Tomáš Kelemen (vudiq) a2f9273979 Bluetooth: add option to remove pairing
Pressing the START button removes the device pairing. Useful in case
the device (e.g. gamepad) was paired with a different adapter/computer
and needs to be paired again with current adapter/computer.

To pair again, RetroArch needs to be restarted, so the device list is
populated again.

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-98-remove_bluetooth_pairing.patch
2021-11-17 22:15:35 +01:00
GavinDarkglider a60df14d81 Lakka/Nintendo Switch: disable cpu scaling for Nintendo Switch
Lakka on Nintendo Switch uses own cpu governor.

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-04-cpufreq-wip-disable-on-switch.patch
2021-11-17 22:15:35 +01:00
Tomáš Kelemen (vudiq) be92517b16 Lakka: use different shutdown/reboot system commands
To avoid any filesystem corruption during shutdown/reboot a sleep is
added before shutdown/reboot is called. Also no quit is called, as the
RetroArch process will be killed by systemd. Quitting RetroArch may
result in unwanted restart of RetroArch by systemd.

Upstream of patch used by Lakka at build time
https://github.com/libretro/Lakka-LibreELEC/blob/1943ad296eaf7c01040f02aa8f5dff3d2f37309f/packages/libretro/retroarch/patches/retroarch-02-graceful-shutdown-reboot-hack.patch
2021-11-17 22:15:35 +01:00
Autechre 0867227293 Merge pull request #13248 from ToKe79/honor_config_save_on_exit
Honor config_save_on_exit when Reboot/Shutdown is called
2021-11-17 19:32:22 +01:00
Autechre e9ca17ea41 Merge pull request #13247 from Jamiras/cheevos_placard_gl
(cheevos) ensure placard is initialized on main thread
2021-11-17 18:19:40 +01:00
Tomáš Kelemen (vudiq) 3fa1052dad Honor config_save_on_exit when Reboot/Shutdown is called
When Shutdown or Reboot are selected from the main menu, configuration
is saved regardless of checking the user setting. Showing the widget and
saving the configuration should be called only in case user wants to
save configuration on exit.
2021-11-17 17:44:27 +01:00
Jamiras 3a82485a80 add missing include 2021-11-17 09:07:42 -07:00
Jamiras 11d38421df ensure placard is initialized on main thread 2021-11-17 08:18:45 -07:00
Autechre b0c859557e Merge pull request #13246 from Jamiras/cheevos_game_placard
(cheevos) use widget for game loaded achievement progress
2021-11-17 03:21:37 +01:00
github-actions 15596f953e Fetch translations from Crowdin 2021-11-17 00:06:43 +00:00
Jamiras 2adf52a493 move achievement activation to background thread 2021-11-16 11:33:37 -07:00
Jamiras 4faf2f82f1 use task to write badge 2021-11-16 09:50:28 -07:00
Jamiras a3b508f136 show widget for loaded game 2021-11-16 08:26:42 -07:00
github-actions a410cf1377 Fetch translations from Crowdin 2021-11-16 00:06:32 +00:00
Autechre 0c45d96a99 Merge pull request #13229 from libretro/move-driver
Move driver code to driver.c file - move code outside of retroarch.c
2021-11-15 19:29:54 +01:00
Autechre 369e175e60 Merge pull request #13240 from Jamiras/cheevos_rewind
(cheevos) make sure loaded is set to true before re-enabling rewind
2021-11-15 19:25:24 +01:00
Autechre 86103b5cc1 Merge pull request #13238 from Jamiras/cheevos_menu_vis
(cheevos) audit achievement settings defaults and visibility
2021-11-15 19:25:04 +01:00
Jamiras 5c55a74655 make sure loaded is set to true before re-enabling rewind 2021-11-14 21:46:23 -07:00
Jamiras 1eade78654 audit achievement settings defaults and visibility 2021-11-14 18:00:20 -07:00
github-actions 7324c0d33b Fetch translations from Crowdin 2021-11-15 00:06:59 +00:00
github-actions d8098a5ad5 Fetch translations from Crowdin 2021-11-14 00:06:53 +00:00
github-actions 02898a4a79 Fetch translations from Crowdin 2021-11-13 00:06:22 +00:00
twinaphex b9c77a48c9 Buildfixes 2021-11-12 21:49:19 +01:00
Autechre fca72f67d1 Update CHANGES.md 2021-11-12 20:40:49 +01:00
Autechre a2fa243412 Merge pull request #13232 from Jamiras/cheevos_no_password
(cheevos) show error message when no password provided
2021-11-12 20:09:37 +01:00
twinaphex 680b631ad6 Revert "(Netplay) Cthulhu88 - Remove forced disconnection on unknown netplay command -"
This reverts commit 65a421d90f.
2021-11-12 19:08:34 +01:00
twinaphex 9e0b98cd89 Buildfix 2021-11-12 19:08:10 +01:00
twinaphex a6ed23d031 Revert "(cthulhu88) Add netplay chat command"
This reverts commit 6a490c0383.
2021-11-12 19:01:31 +01:00
twinaphex efa16a8fca Revert "(Netplay) Cthulhu88 -"
This reverts commit cb4028fd3d.
2021-11-12 19:00:42 +01:00
twinaphex 4025b678bf Revert "Add missing netplay_protocol.h"
This reverts commit 1fc73f11b5.
2021-11-12 19:00:33 +01:00
twinaphex d7a8bc55a3 Revert "(Cthulhu88) Add netplay hotkey bind"
This reverts commit deaf116d38.
2021-11-12 19:00:24 +01:00
twinaphex 3b6196144f Revert "Bump NETPLAY_PROTOCOL_VERSION up to 6"
This reverts commit 823c54a39d.
2021-11-12 19:00:16 +01:00
twinaphex 9c7a55352d Revert "(Cthulhu88) Netplay polishing patch"
This reverts commit 82b8c0a60e.
2021-11-12 18:59:59 +01:00
twinaphex 62a8b13b1a Revert "(Cthulhu88) Netplay - initial netplay tunnel"
This reverts commit 369cafe1ad.
2021-11-12 18:59:52 +01:00
twinaphex 9fe56d6865 Revert "(Cthulhu88) Fix build errors of previous commit"
This reverts commit 393f9bdd48.
2021-11-12 18:59:42 +01:00
twinaphex 753332ff18 Revert "(Cthulhu88) Fix for multi-char arrays"
This reverts commit e64cd24715.
2021-11-12 18:59:35 +01:00
twinaphex fc460dbb9c Revert "Fix final warning and remove unused variables"
This reverts commit 5dd0e90fca.
2021-11-12 18:59:29 +01:00
twinaphex 70ee3fbca7 Revert "(Cthulhu88) New Netplay MITM Part 2"
This reverts commit 34c374737c.
2021-11-12 18:58:40 +01:00
Jamiras f015ecdc03 show error message when no password provided 2021-11-12 10:06:05 -07:00
jdgleaver 196cc8b33d SDL1 buildfix 2021-11-12 12:35:31 +01:00
twinaphex 34c374737c (Cthulhu88) New Netplay MITM Part 2 2021-11-12 06:31:54 +01:00
twinaphex 2d5e090eb3 Move driver code to driver.c file - move code outside of retroarch.c 2021-11-12 04:45:09 +01:00
Autechre 109ab785ee Merge pull request #13225 from Jamiras/github_actions
run apt-get update before apt-get install
2021-11-12 02:19:50 +01:00
Jamiras eba1ed6d75 run apt-get update before apt-get install 2021-11-11 17:45:50 -07:00
github-actions 038a24ae34 Fetch translations from Crowdin 2021-11-12 00:06:50 +00:00
twinaphex 9e55654e72 Simplify recalc_step_based_on_length_of_action 2021-11-11 22:32:51 +01:00
twinaphex 13d662d76b Silence some warnings 2021-11-11 22:28:16 +01:00
Autechre 1d8930625a Merge pull request #13220 from libretro/move-camera-location
Move location state and camera state out of retroarch.c
2021-11-11 22:19:50 +01:00
twinaphex a3aed79b71 Merge branch 'move-camera-location' of https://github.com/libretro/RetroArch into move-camera-location 2021-11-11 17:54:46 +01:00
twinaphex 62c6d99163 Buildfixes 2021-11-11 17:53:54 +01:00
twinaphex dfb0e298c5 Buildfix 2021-11-11 07:49:43 +01:00
twinaphex b3a1a769b9 Move location state and camera state out of retroarch.c 2021-11-11 07:43:49 +01:00
twinaphex 5dd0e90fca Fix final warning and remove unused variables 2021-11-11 05:48:29 +01:00
twinaphex e64cd24715 (Cthulhu88) Fix for multi-char arrays 2021-11-11 05:38:45 +01:00
twinaphex 393f9bdd48 (Cthulhu88) Fix build errors of previous commit 2021-11-11 05:04:17 +01:00
twinaphex 369cafe1ad (Cthulhu88) Netplay - initial netplay tunnel 2021-11-11 04:55:37 +01:00
twinaphex 82b8c0a60e (Cthulhu88) Netplay polishing patch 2021-11-11 03:37:14 +01:00
Autechre 1280151d13 Merge pull request #13216 from libretro/splitup-record
Split up recording code
2021-11-11 02:00:52 +01:00
Autechre 771585f95d Update CHANGES.md 2021-11-11 01:46:29 +01:00
github-actions c93b3e7615 Fetch translations from Crowdin 2021-11-11 00:07:11 +00:00
twinaphex b6cd140528 Revert "Fix default overlay file - overlays were re-arranged and startup overlay"
This reverts commit 318f153012.
2021-11-10 16:04:33 +01:00
twinaphex 318f153012 Fix default overlay file - overlays were re-arranged and startup overlay
was not updated to reflect this
2021-11-10 15:49:26 +01:00
twinaphex 86f899c844 Revert "Shorten character arrays that are passed to fill_pathname_base_noext"
This reverts commit 318108ac82.
2021-11-10 08:22:19 +01:00
twinaphex f06b9ecf06 Revert "Reduce character arrays passed to fill_pathname_base"
This reverts commit a4a7c3bedf.
2021-11-10 08:21:59 +01:00
twinaphex 823c54a39d Bump NETPLAY_PROTOCOL_VERSION up to 6 2021-11-10 05:11:17 +01:00
twinaphex deaf116d38 (Cthulhu88) Add netplay hotkey bind 2021-11-10 04:58:59 +01:00
twinaphex 1fc73f11b5 Add missing netplay_protocol.h 2021-11-10 02:50:29 +01:00
twinaphex cb4028fd3d (Netplay) Cthulhu88 -
* Netplay Chat menu
* Toggleable bind for chat (bound to ~ [tilde] by default)
2021-11-10 02:41:02 +01:00
twinaphex 0b768d0460 Split up recording code 2021-11-10 02:34:04 +01:00
twinaphex 174ab373e4 Move runloop prototypes to runloop.h 2021-11-10 01:22:32 +01:00
twinaphex 28bef36c74 Remove retroarch_data.h and retroarch_fwd_decls.h 2021-11-10 01:18:24 +01:00
github-actions abd089e88e Fetch translations from Crowdin 2021-11-10 00:06:50 +00:00
twinaphex a4a7c3bedf Reduce character arrays passed to fill_pathname_base 2021-11-10 00:57:32 +01:00
twinaphex 318108ac82 Shorten character arrays that are passed to fill_pathname_base_noext 2021-11-10 00:09:33 +01:00
twinaphex 619398bbe4 Backport parts of https://github.com/neil4/RetroArch-Lite/commit/73c07602362471f2c82d866250e4b2015edafc07 2021-11-09 23:12:57 +01:00
Autechre 89002e6b72 Merge pull request #13214 from MrHuu/ctr_achievement_widget_fix
[3DS] Fix achievement widget
2021-11-09 20:18:30 +01:00
MrHuu 8171e513aa [3DS] Fix achievement widget 2021-11-09 19:47:45 +01:00
twinaphex 3cfab5ab88 Fix symbol conflict with quasi88 2021-11-09 17:07:10 +01:00
Autechre d6c25f153f Merge pull request #13211 from libretro/more-retroarch-cleaning
More retroarch cleaning
2021-11-09 16:37:28 +01:00
Autechre 4e1564da16 Merge pull request #13210 from libretro/netplay-chat
(cthulhu88) Add netplay chat command
2021-11-09 16:30:57 +01:00
twinaphex 2a5751ca0e Get rid of some getters 2021-11-09 07:06:04 +01:00
twinaphex f4c5852cfa Move state from global_t to input_state_t 2021-11-09 06:27:43 +01:00
twinaphex f671ce4f8c Move global->name to runloop_st 2021-11-09 06:03:00 +01:00
twinaphex fe2c3a5310 Move state from retroarch_data.h over to retroarch.c 2021-11-09 05:16:51 +01:00
Autechre a68b95690c Update CHANGES.md 2021-11-09 03:12:12 +01:00
twinaphex 1fccddc705 (Fix by radius/fr500) Networking - should not print country for
a local lobby
2021-11-09 02:58:28 +01:00
twinaphex 6a490c0383 (cthulhu88) Add netplay chat command 2021-11-09 02:52:04 +01:00
github-actions 12bab704eb Fetch translations from Crowdin 2021-11-09 00:09:35 +00:00
twinaphex d63c6b9706 main_thread_id initial value should be 0, not NULL 2021-11-08 20:08:32 +01:00
twinaphex 2886932968 Move menu global state code from global_t to menu_st 2021-11-08 20:04:55 +01:00
twinaphex bd5295ca76 Get rid of RARCH_TIMER_ macros 2021-11-08 19:54:27 +01:00
Autechre 8ee025636e Update CHANGES.md 2021-11-08 19:29:46 +01:00
Autechre 56e150d68f Merge pull request #13207 from Jamiras/cheevos_rewind_reset
(cheevos) don't queue rewind re-init if already on main thread
2021-11-08 19:24:18 +01:00
Autechre 17e490c424 Merge pull request #13208 from barbudreadmon/patch-4
always return false if rotation can't occur
2021-11-08 19:23:35 +01:00
Autechre 7c84a26563 Merge pull request #13206 from Jamiras/cheevos_softcore_active
(cheevos) fix need-to-activate achievement logic for non-hardcore
2021-11-08 18:10:00 +01:00
barbudreadmon 211e7d4094 always return false if rotation unavailable 2021-11-08 17:59:31 +01:00
Jamiras 84cab492b2 add task_in_on_main_thread function 2021-11-08 09:35:25 -07:00
twinaphex fc898d016b (GX2) wiiu_gfx_load_texture - make it safer - get rid of unused
wiiu pointer; do early return when image is NULL
2021-11-08 17:07:17 +01:00
Autechre d651c9ae02 Merge pull request #13205 from Jamiras/cheevos_hide_unofficial
(cheevos) ignore unofficial achievements unless setting is enabled
2021-11-08 16:37:19 +01:00
Jamiras af23c5c900 fix need-to-activate achievement logic for non-hardcore 2021-11-08 08:34:51 -07:00
Autechre edd446929b Merge pull request #13203 from farmerbb/master
[Android / Play Store] Implement MANAGE_EXTERNAL_STORAGE permission
2021-11-08 16:33:25 +01:00
Jamiras f2bc7caad9 ignore unofficial achievements unless setting is enabled 2021-11-08 07:15:56 -07:00
Braden Farmer 11de2ae1fe [Android / Play Store] Implement MANAGE_EXTERNAL_STORAGE permission 2021-11-07 23:08:24 -07:00
github-actions 5c75b683af Fetch translations from Crowdin 2021-11-08 00:07:11 +00:00
Autechre 446ed5f5b3 Merge pull request #13195 from guoyunhe/patch-10
Fix Crowdin Daily Action
2021-11-07 23:42:50 +01:00
twinaphex a93a2e3366 (MSVC2019 UWP) Buildfix 2021-11-07 05:54:23 +01:00
Guo Yunhe dc8b6a93d4 Fix Crowdin Daily Action
Python module installation
2021-11-07 10:55:35 +08:00
twinaphex 673d77284d BUmp up version to 1.9.13 2021-11-07 03:28:14 +01:00
twinaphex 88c771fc66 Cleanups 2021-11-07 01:44:45 +01:00
twinaphex c0585fed60 (winraw_input.c) Cleanups 2021-11-06 15:07:35 +01:00
twinaphex 9cdf00e7ee Global variable states - preinitialize to 0 2021-11-06 14:47:34 +01:00
twinaphex 139eaad627 Fix warning 2021-11-06 14:20:02 +01:00
twinaphex 8dcbd61eeb (Netplay) Fix memory leak - pointed out by Cthulhu88 2021-11-06 14:17:03 +01:00
Autechre 9883f11e10 Merge pull request #13194 from sonninnos/auto-frame-delay-fix
Crash fix for 'Automatic Frame Delay'
2021-11-06 13:42:19 +01:00
Autechre cf89152dea Merge pull request #13192 from guoyunhe/patch-9
Crowdin: Fix Python syntax error
2021-11-06 13:42:08 +01:00
sonninnos 75e16f684e Crash fix for 'Automatic Frame Delay' 2021-11-06 14:36:14 +02:00
Guo Yunhe 376dd7c1c3 Update crowdin-daily.yml 2021-11-06 14:11:30 +08:00
Guo Yunhe 08be8156c3 Crowdin: Fix Python syntax error 2021-11-06 14:08:12 +08:00
Jamiras 830960027e fix double free when rich presence update task fires while game is not loaded (#13191) 2021-11-06 06:03:16 +01:00
twinaphex 61d30cdc31 Move input code from retroarch.c to input_driver.c 2021-11-06 04:34:54 +01:00
twinaphex 0c0b86c4cf Buildfix #4 2021-11-06 03:56:34 +01:00
twinaphex 0e0b3bfc68 Buildfix #3 2021-11-06 03:52:02 +01:00
twinaphex cbe00cad57 Another buildfix (sigh) 2021-11-06 03:41:14 +01:00
twinaphex ae9ebf13d3 Potential buildfix 2021-11-06 03:38:41 +01:00
twinaphex 89fd900429 Define this for HAVE_TRANSLATE too 2021-11-06 02:24:28 +01:00
twinaphex a1165664a6 Buildfixes 2021-11-06 02:20:18 +01:00
twinaphex 6d9c9e2b2c Move more code around 2021-11-06 02:18:01 +01:00
twinaphex 5ef57909ef (menu_driver.c) Get rid of menu_state_get_ptr calls 2021-11-06 02:12:21 +01:00
twinaphex 3cea5996bc Move code from retroarch.c to menu_driver.c 2021-11-06 02:13:10 +01:00
twinaphex 538a334fe8 Remove unused variables 2021-11-06 02:04:07 +01:00
twinaphex a594ccd81c (Accessibility) Move out of p_rarch state 2021-11-06 01:59:03 +01:00
twinaphex 0af9b72388 (network) Cleanups 2021-11-06 00:27:51 +01:00
grant2258andgrant2258 1ae36ee9a7 udev fix dolphinbar and safeguard against not adding devices with no mouse or touch buttons detected (#13143)
* udev fixes

* updates

* small updates

* fix condition

Co-authored-by: grant2258 <[email protected]>
2021-11-05 23:59:17 +01:00
Tony 3137f8470b Add 'Automatic Frame Delay' option (#13190) 2021-11-05 23:42:23 +01:00
twinaphex 65a421d90f (Netplay) Cthulhu88 - Remove forced disconnection on unknown netplay command -
will be backwards compatible with any version that removed this
disconnect. instead of disconnecting, we just read the data and
ignore, like most network implementations do
2021-11-05 22:49:59 +01:00
twinaphex 0b16a64d40 Remove unused variables 2021-11-05 22:42:09 +01:00
twinaphex 6a0d7c63d5 Use C-style comment 2021-11-05 22:33:08 +01:00
twinaphex ae43a7e7cb (CLI) -C/--connect command-line fix 2021-11-05 22:25:06 +01:00
twinaphex c912619653 * Move port_map to runloop_state
* Get rid of p_rarch dependencies in functions
2021-11-05 22:03:13 +01:00
twinaphex 1f4123ba54 Don't include netplay.h header unless we have HAVE_NETWORKING
defined
2021-11-05 19:50:02 +01:00
twinaphex 0a209c4564 Last suggested fix 2021-11-05 19:22:22 +01:00
twinaphex a50cd1105e Hopefully fixes it 2021-11-05 19:18:26 +01:00
twinaphex 67c010394d Remove netplay_discovery.h - hopefully fixes other build issues 2021-11-05 19:12:55 +01:00
twinaphex aadedf39f2 Buildfixes as suggested by forum member - should hopefully fix
console builds as well as other issues
2021-11-05 19:04:52 +01:00
twinaphex 3bc6dd97d9 Revert "Revert "Move stray globals to networking state""
This reverts commit a796f1ce58.
2021-11-05 18:55:55 +01:00
twinaphex ac1f6ab599 Revert "Revert "Move some stray globals to netplay state""
This reverts commit 722f9bbfac.
2021-11-05 18:53:33 +01:00
twinaphex 7e7b2d826e Revert "Revert "Remove obsolete comment""
This reverts commit 3597643faa.
2021-11-05 18:53:20 +01:00
twinaphex 2820231dd0 Revert "Revert "remove unused variables""
This reverts commit 0c735e5c9c.
2021-11-05 18:53:09 +01:00
twinaphex 7f33a03423 Revert "Revert "Backport netplay changes from forum member""
This reverts commit 38a6b9f086.
2021-11-05 18:52:56 +01:00
twinaphex 38a6b9f086 Revert "Backport netplay changes from forum member"
This reverts commit 367ac6ce46.
2021-11-05 18:34:52 +01:00
twinaphex 0c735e5c9c Revert "remove unused variables"
This reverts commit cea8528929.
2021-11-05 18:34:43 +01:00
twinaphex 3597643faa Revert "Remove obsolete comment"
This reverts commit e8ed660ea1.
2021-11-05 18:34:32 +01:00
twinaphex 722f9bbfac Revert "Move some stray globals to netplay state"
This reverts commit f264d20d1e.
2021-11-05 18:34:24 +01:00
twinaphex a796f1ce58 Revert "Move stray globals to networking state"
This reverts commit 96053e14a7.
2021-11-05 18:34:11 +01:00
twinaphex 96053e14a7 Move stray globals to networking state 2021-11-05 18:07:41 +01:00
twinaphex f264d20d1e Move some stray globals to netplay state 2021-11-05 17:50:18 +01:00
twinaphex e8ed660ea1 Remove obsolete comment 2021-11-05 17:41:30 +01:00
twinaphex cea8528929 remove unused variables 2021-11-05 17:40:56 +01:00
twinaphex 367ac6ce46 Backport netplay changes from forum member 2021-11-05 17:17:10 +01:00
twinaphex 3ead1ac5df Move discord code to separate file 2021-11-05 14:00:37 +01:00
twinaphex 121174c9af (Discord) Remove stray discord_is_inited global - put it in
discord_state_t instead
2021-11-05 13:45:00 +01:00
Guo Yunhe 15321b2588 Fix Crowdin Daily GitHub Action (#13187)
* Update crowdin-daily.yml

* Update json2h.py
2021-11-05 11:38:35 +01:00
twinaphex 8af0c2755d Remove unused variables 2021-11-05 05:10:32 +01:00
twinaphex 9c3c547482 Need to be placed above this code block 2021-11-05 04:50:16 +01:00
twinaphex db9283b57c Silence some warnings 2021-11-05 04:49:26 +01:00
twinaphex 11defb4009 Move netplay/networking code to netplay_frontend.c - move it out of
retroarch.c
2021-11-05 04:42:03 +01:00
twinaphex 21beb6064a Silence some warnings 2021-11-05 03:58:26 +01:00
twinaphex fe0c0d73ff Move aspectratio_lut to video_driver.c 2021-11-05 03:47:04 +01:00
twinaphex f50df1acfb Buildfix 2021-11-05 03:15:17 +01:00
twinaphex c54aeffd9e Cleanups 2021-11-05 02:58:41 +01:00
twinaphex c17bcb8d91 Move code from retroarch.c to video_driver.c 2021-11-05 02:53:58 +01:00
twinaphex e4ccc2508e Move code over from retroarch.c to video_driver.c 2021-11-05 02:33:22 +01:00
twinaphex 18412e34c1 Some CXX_BUILD buildfixes for Mac 2021-11-05 02:16:40 +01:00
Autechre 97753bad7c Update retroarch.yml 2021-11-05 01:46:19 +01:00
twinaphex d97f05650d (YXML) Buildfix 2021-11-05 01:24:13 +01:00
twinaphex c8b69aa506 More preparation for being able to move code out of retroarch.c 2021-11-05 00:50:20 +01:00
twinaphex aea4b3e318 (yxml) Remove unused inline function; get rid of inline macro 2021-11-05 00:24:21 +01:00
twinaphex d3fd72ba63 Fix header include - should have been relative 2021-11-05 00:09:45 +01:00
Jamiras 088aa7dcb9 add github action for c89 build (#13186)
* add retroarch.yml

* fix c89 errors

* attempt to add dependencies

* update comments
2021-11-05 00:05:13 +01:00
twinaphex 574b850dd7 Preparations for being able to move discord and networking code
out of retroarch.c
2021-11-04 22:50:38 +01:00
github-actions 4b95c5dc84 Fetch translations from Crowdin 2021-11-04 00:06:05 +00:00
twinaphex be347e9d49 Move command_event_reinit to command.c 2021-11-04 00:38:18 +01:00
twinaphex c5b20dff41 (3DS/CTR) Cleanup 2021-11-03 22:01:01 +01:00
twinaphex f59b420fde * Move more code to command.c
* Buildfix for CTR/3DS
2021-11-03 21:59:58 +01:00
twinaphex 69e8416e45 (CTR) C89 conformity cleanups 2021-11-03 21:42:11 +01:00
twinaphex 514ed00f2d Move configuration state over to configuration.c - take it out of
p_rarch
2021-11-03 21:22:37 +01:00
Guo Yunhe 6ad91b2b37 Crowdin integration full (#13171)
* Create crowdin-daily.yml

* Update crowdin.yaml

* Update crowdin_sync.py

* Update fetch_progress.py
2021-11-03 18:44:08 +01:00
twinaphex cbfbd14268 (MSVC 2010 Griffin) Add HAVE_CHEEVOS to MSVC 2010 build 2021-11-03 17:11:20 +01:00
twinaphex af2e91fcfe (Cheevos) MSVC buildfix 2021-11-03 16:53:59 +01:00
twinaphex 1a78d91348 MSVC buildfix 2021-11-03 16:50:41 +01:00
Autechre 80e0114ccf Move collect_system_input to input_driver.c (#13183) 2021-11-03 16:48:57 +01:00
gblues 1ef78d3e3d Any pad can control the menu (#13173)
* Any pad can control the menu

== DETAILS
I am not sure I've quite got it so that any pad can *open* the
menu, but I do have it so any pad can control it.

- split out the input processing into a separate method
- track down and squish some hairy bugs that boiled down to
  bad pointer math
- it looks like `menu_driver.c` has a mix of line endings, so I
  ran it through `dos2unix` so it has consistent line endings
  again.
- verified that this change did not impact actual cores

* optimize out cumulative_bits

* Incorporate PR feedback

Many thanks to @jdgleaver for providing these optimizations.

* apply one more optimization
2021-11-03 16:32:15 +01:00
twinaphex 4b16b4fe9a Change this to gblues' implementation and leave a TODO/FIXME 2021-11-01 21:17:39 +01:00
twinaphex c88577850d (frontend_driver.c) Try to make the code more safe if the pointer
is NULL
2021-11-01 19:34:54 +01:00
twinaphex 05ca465aab (Cheevos) Style nits:
* single line code blocks - remove brackets
* Try to fit lines into 80 chars
* Etc
2021-11-01 18:38:56 +01:00
twinaphex b9df71b9d5 (cheevos) Silence warnings/remove unused variables 2021-11-01 18:06:36 +01:00
Jamiras 20264aaced replace coroutines with tasks (#13178) 2021-11-01 18:02:40 +01:00
twinaphex abce5e1c6f (retroarch.c) Cleanups - go through more pointers 2021-10-30 11:32:10 +02:00
twinaphex aaad65538c Move rarch_patch_blocked to runloop_state, and get rid of
RARCH_CTL_IS_PATCH_BLOCKED
2021-10-30 11:15:45 +02:00
Autechre 49e99266f8 Move frontend code to frontend_driver.c (#13170) 2021-10-29 19:43:37 +02:00
twinaphex c5688729c2 Move has_set_libretro_device to runloop_state 2021-10-29 18:24:19 +02:00
twinaphex 2e19dbe932 lastcmd_source and lastcmd_net_fd never used - get rid of them 2021-10-29 17:45:24 +02:00
twinaphex 5477e34815 Move stray globals subsystem_data and subsystem_current_count to
runloop_state
2021-10-29 17:41:31 +02:00
twinaphex bf8cae10a3 Move retroarch_get_shader_preset to video_shader_parse.c 2021-10-29 16:35:50 +02:00
Autechre e42f8228de Move cli_shader to video_state (#13168)
* Move cli_shader to video_state

* Formatting fixes
2021-10-29 15:35:43 +02:00
twinaphex ec7b7821fa Move code out of retroarch.c 2021-10-29 14:13:16 +02:00
twinaphex 18707da360 Move menu_driver_ctl to menu_driver.c 2021-10-29 13:31:10 +02:00
twinaphex 80e7e1adde Move state over 2021-10-28 06:03:54 +02:00
jdgleaver c67c7c944d Initialise 'Explore' menu on a background thread (#13162) 2021-10-27 17:51:22 +02:00
Tomáš Kelemen 8f88610d32 add define for HAVE_LAKKA_NIGHTLY when used as option (#13155) 2021-10-26 22:01:51 +02:00
Tomáš Kelemen 82d4cd9f19 do not sort FILE_TYPE_DOWNLOAD_LAKKA type list (#13156)
the `.index` file downloaded using the updater already has the files
sorted from latest version to oldest, so sorting is not wanted here
2021-10-26 22:01:38 +02:00
tunip3 d75127e9c2 Fix issue where files over 2.5gb approx would fail to load on uwp/xbox (#13150)
* fix issue where files over 2.5 gb would fail to read

* fix issue where trying to get the file size on excessively large files would fail
2021-10-26 01:43:44 +02:00
alphanu1andAntonio Giner f5d8d07cf1 Fixes for fractal scaling (#13149)
* CRT Fractal scalling fix for SR2

Added comment to remind me to add video core to SR2

fixed typo

* Addedd only x fractal scaling for super resolutions

* Properly handle fractional scale factors and fix some typos.

Co-authored-by: Antonio Giner <[email protected]>
2021-10-26 01:43:22 +02:00
Autechre 6b7f28761a Merge pull request #13148 from ToKe79/cpufreq-hdr
add header for cpufreq
2021-10-24 18:25:36 +02:00
Tomáš Kelemen (vudiq) 643a1c7e6f add header for cpufreq
functions using set_cpu_scaling_signal() (used by Lakka) have been
moved, but the header was not added
2021-10-24 12:41:23 +02:00
twinaphex e2b7c23902 Bump up version to 1.9.12 2021-10-24 03:55:08 +02:00
Autechre 4fe63e6f3f Update CHANGES.md 2021-10-24 03:50:42 +02:00
Autechre bec793b030 Merge pull request #13146 from IlDucci/translationsupdatewithscript
Fetch translations from Crowdin 23-Oct-2021
2021-10-24 03:10:14 +02:00
IlDucci 4a1dd3d80d Fetch translations from Crowdin 23-Oct-2021 2021-10-23 22:23:31 +02:00
twinaphex c79b60ba77 Change val_d back to 16 size 2021-10-21 04:34:04 +02:00
twinaphex 22ae6f23aa (menu displaylist/remapping) Increase val_s and val_d char arrays to 256 2021-10-21 04:16:26 +02:00
twinaphex 758eafa686 (SDL) Potential buildfix 2021-10-20 15:57:34 +02:00
twinaphex 5ec93d2493 (HID) Fix some warnings 2021-10-20 02:23:01 +02:00
twinaphex 1dc77507a8 Fix command stdin - courtesy of Cthulhu 2021-10-19 22:23:07 +02:00
Autechre 1e1919b236 Merge pull request #13138 from mahoneyt944/patch-1
Log new line
2021-10-19 19:31:06 +02:00
mahoneyt944 df6b1c306f Log 2021-10-19 09:46:40 -04:00
Autechre 514534f99b Move more state to runloop_state (#13124)
* Move more state to runloop state

* remove unused variable

* Cleanup

* Move more state to runloop_state

* Remove unused variable

* Cleanups

* move input_remapping functions over to input_driver.c

* Some buildfixes
2021-10-18 15:23:22 +02:00
Autechre 47a6df871a Merge pull request #13134 from grant2258/udev
add extra abs check for dolphinbar
2021-10-18 14:59:48 +02:00
jdgleaver 9a3be2ef2b (.gitlab-ci.yml) Detect Android build errors 2021-10-18 13:32:29 +02:00
grant2258 6e8a3945d5 add extra abs check for dolphinbar 2021-10-18 03:43:49 +01:00
twinaphex 8ff07916ec Backport netplay changes from Cthulhu 2021-10-18 01:13:35 +02:00
twinaphex edeb684712 (Android) Buildfix 2021-10-17 23:38:21 +02:00
twinaphex 4a834bda36 Set CODE_SIGN_IDENTITY and DEVELOPMENT_TEAM back - these should
not be altered
2021-10-17 23:30:26 +02:00
Autechre acd1ba0449 Merge pull request #13130 from gblues/gblues/kpad
Fix wiimotes regression
2021-10-17 15:05:52 +02:00
Nathan Strong c0719e737b build fix 2021-10-17 00:25:01 -07:00
Nathan Strong 12a44e0365 Fix crashes reported by ploggy
== DETAILS

The crashes he reported in the gbatemp thread are due to iface
being null (since it's an unsupported device) and unchecked
iface dereferences.
2021-10-17 00:13:48 -07:00
Nathan Strong 5b4b766459 Fix wiimotes regression
== DETAILS
- only call disconnect when we're actually disconnecting a remote
  (e.g. read errors or remote goes to sleep).
- clean up some compile warnings introduced by others (mainly
  unused variables)
2021-10-16 23:56:15 -07:00
Autechre 2f4cfe2a02 Merge pull request #13128 from gblues/gblues/osx-ds3
HID: get Sony Sixaxis (DualShock 3) working on Mac OSX
2021-10-17 03:15:07 +02:00
Nathan Strong 81c6d3809a Finish up the OSX DS3 driver
== DETAILS
Put the finishing touches on getting the DS3 to work on Mac OSX.

Basically, there's some differences in the HID interface bewtween
wiiu and osx where OSX expects the first byte of the report to be
the report ID, while wiiu expects that byte to be trimmed off.

I was able to put this behavior in the respective HID
implementations, which eliminated the confusing packet offset
ifdefs.

And, I was able to get the LEDs working again.
2021-10-16 14:52:56 -07:00
Nathan Strong 729c219f1a Rewrite DS3 driver
== DETAILS
The DS3 driver previously only worked with the Wii U HID implementation.

I adapted this driver from the Linux driver for the DS3. It's not quite
100%--I haven't got the LEDs to work properly--but it's functional.

Going to continue tweaking it to see if I can get the LEDs to work.
2021-10-16 14:52:56 -07:00
Nathan Strong 7ed3ca7f97 WIP commit
Start trying to adapt the linux DS3 driver instead of our
hacked-together support.
2021-10-16 14:52:56 -07:00
Autechre 840cca36fa Merge pull request #13126 from ofsaleem/master
feat: solarized light ozone theme (#5)
2021-10-16 22:30:19 +02:00
Omar Saleem b4878a8e7b feat: solarized light ozone theme (#5)
* feat: adding solarized dark theme to ozone

* fix: variable not defined in header

* fix: added string for selecting theme in menu

* fix: added message hash for string

* feat: copied solarized dark translations into msg hashes

* fix: forgot to change name of enum label after copying

* first pass of new colors

* added selection border and fixed sublabel color

* sublabel color from blue to muted gray

* trying cyan for sublabel

* adjusted selected text color to match philosophy from solarized website

* testing what the entries_ colors do

* chose colors for entries_, adjusted other border and bgs

* match selection border to sublabel color

* trying gray for sublabel

* accidentally put the color in the wrong place, reverting and updating

* trying to change selected option color to orange

* not feeling orange, lets try teal

* try for orange border

* try for magenta border

* try for violet border

* trying blue border again

* trying omar blue bc why not

* reverting to regular blue for icons and green for border

* try magenta for footer border

* trying font color for footer border

* trying to get message background to show

* can't get it to render, but changed message background to violet

* testing sidebar changes

* sidebar colors

* lighter sidebar color

* trying gray sidebar

* try a gradient

* screwed up one of the coordinates

* reversing gradient

* attempting gradient with colors i made up

* accidentally wrote gradient to dracula instead of solarized dark

* adding gradient to the top, reversing bottom gradient

* randomly trying shuffling bottom gradient coords

* moving top right coordinate somewhere else

* swapped top two bottom coords to see

* swapped them back, i got lucky and things were right

* think i figured out the order,  BL, BR, TL, TR

* making background gradient lil darker

* fixed coords

* lessening gradient effect

* lessening gradient effect, but by making darker instead of lighter

* of course, messed up two coords

* removed top and bottom gradients

* dark and flat sidebar

* forgot to change running background

* made running background a bit less transparent since this is a low contrast theme

* added underscore to theme name

* adjusting message background color

* fixing message background color

* fixed cursor color border

* adjusting text to be one notch brighter, base0 -> base1, base01 -> base0

* adjusting sublabel text to use base00 instead, its in between base01 and base0

* added message hashes for light theme name

* added defines and enums for the light theme

* added solarized light structs into ozone.c, theyre all clones of dark for now

* fixing solarized dark ozone theme

fixing name of theme in ozone.c so assets load properly, fixing cursor and message colors to be green instead of purple

* added message hashes for light theme name

* added defines and enums for the light theme

* added solarized light structs into ozone.c, theyre all clones of dark for now

* i had based this branch on the wrong branch, fixed

* first pass, only changing background and regular text

* trying orange and magenta highlights

* Revert "trying orange and magenta highlights"

This reverts commit 1f1e107888cee0e97c6354a8d114863b39af8d00.

* applying the new colors to the right theme this time :)

* trying red instead of pink

* trying magenta icons in a desperate attempt to justify the use of the color

* trying magenta icons, orange labels and selector

* back to orange and red, sigh

* trying sidebar colors

* fixing sidebar gradient

* light theme red animated border colors

* trying magenta for second border color

* that was bad, trying a less light red

* going even darker

* made cursor border get darker instead of lighter

* that was a little too dark

* changed light theme running background to be..light
2021-10-16 16:17:16 -04:00
Autechre 320f2308f6 Merge pull request #13121 from ofsaleem/master
fix: solarized dark ozone theme assets and color tweaks
2021-10-16 22:10:54 +02:00
Autechre c1b002e454 Merge pull request #13125 from grant2258/mouse
Udev pointer pressed update to support relative devices pointer pressed
2021-10-16 22:10:36 +02:00
grant2258 1fca7507dc cleanup 2021-10-16 19:36:35 +01:00
grant2258 a68e5205bd add relative left mouse button when pointer device is not abs 2021-10-16 19:26:40 +01:00
Omar Saleem 038b28c5f2 updating text labels to be brighter (#4)
* adjusting text to be one notch brighter, base0 -> base1, base01 -> base0

* adjusting sublabel text to use base00 instead, its in between base01 and base0
2021-10-16 12:42:45 -04:00
Omar Saleem 64dabb0388 Revert "Solarized light (#3)"
This reverts commit 485d07691d.
2021-10-15 23:51:25 -04:00
Omar Saleem 485d07691d Solarized light (#3)
* feat: adding solarized dark theme to ozone

* fix: variable not defined in header

* fix: added string for selecting theme in menu

* fix: added message hash for string

* feat: copied solarized dark translations into msg hashes

* fix: forgot to change name of enum label after copying

* first pass of new colors

* added selection border and fixed sublabel color

* sublabel color from blue to muted gray

* trying cyan for sublabel

* adjusted selected text color to match philosophy from solarized website

* testing what the entries_ colors do

* chose colors for entries_, adjusted other border and bgs

* match selection border to sublabel color

* trying gray for sublabel

* accidentally put the color in the wrong place, reverting and updating

* trying to change selected option color to orange

* not feeling orange, lets try teal

* try for orange border

* try for magenta border

* try for violet border

* trying blue border again

* trying omar blue bc why not

* reverting to regular blue for icons and green for border

* try magenta for footer border

* trying font color for footer border

* trying to get message background to show

* can't get it to render, but changed message background to violet

* testing sidebar changes

* sidebar colors

* lighter sidebar color

* trying gray sidebar

* try a gradient

* screwed up one of the coordinates

* reversing gradient

* attempting gradient with colors i made up

* accidentally wrote gradient to dracula instead of solarized dark

* adding gradient to the top, reversing bottom gradient

* randomly trying shuffling bottom gradient coords

* moving top right coordinate somewhere else

* swapped top two bottom coords to see

* swapped them back, i got lucky and things were right

* think i figured out the order,  BL, BR, TL, TR

* making background gradient lil darker

* fixed coords

* lessening gradient effect

* lessening gradient effect, but by making darker instead of lighter

* of course, messed up two coords

* removed top and bottom gradients

* dark and flat sidebar

* forgot to change running background

* made running background a bit less transparent since this is a low contrast theme

* added underscore to theme name

* adjusting message background color

* fixing message background color

* fixed cursor color border

* adjusting text to be one notch brighter, base0 -> base1, base01 -> base0

* adjusting sublabel text to use base00 instead, its in between base01 and base0

* added message hashes for light theme name

* added defines and enums for the light theme

* added solarized light structs into ozone.c, theyre all clones of dark for now

* fixing solarized dark ozone theme

fixing name of theme in ozone.c so assets load properly, fixing cursor and message colors to be green instead of purple

* added message hashes for light theme name

* added defines and enums for the light theme

* added solarized light structs into ozone.c, theyre all clones of dark for now

* i had based this branch on the wrong branch, fixed

* first pass, only changing background and regular text

* trying orange and magenta highlights

* Revert "trying orange and magenta highlights"

This reverts commit 1f1e107888cee0e97c6354a8d114863b39af8d00.

* applying the new colors to the right theme this time :)

* trying red instead of pink

* trying magenta icons in a desperate attempt to justify the use of the color

* trying magenta icons, orange labels and selector

* back to orange and red, sigh

* trying sidebar colors

* fixing sidebar gradient

* light theme red animated border colors

* trying magenta for second border color

* that was bad, trying a less light red

* going even darker

* made cursor border get darker instead of lighter

* that was a little too dark

* changed light theme running background to be..light
2021-10-15 23:44:42 -04:00
Omar Saleem 591467d247 fixing solarized dark ozone theme
fixing name of theme in ozone.c so assets load properly, fixing cursor and message colors to be green instead of purple
2021-10-15 16:37:32 -04:00
Omar Saleem 0c017a2c82 reverting so i can squash commits 2021-10-15 16:36:09 -04:00
Autechre f86c28afac Merge pull request #13120 from libretro/move-runloop2
move more state to runloop_state
2021-10-15 16:43:44 +02:00
twinaphex 9184d0e114 Move hid_data to input_st 2021-10-15 16:31:31 +02:00
twinaphex 5c6d92bb95 move more state to runloop_state 2021-10-15 16:13:21 +02:00
twinaphex b200ced199 Buildfix for --have-menu 2021-10-15 14:43:25 +02:00
Autechre eb4ed9b2f0 Merge pull request #13119 from ofsaleem/master
feat: new ozone theme - solarized dark
2021-10-15 14:40:06 +02:00
twinaphex 9b4636ff62 Fixes --disable-menu 2021-10-15 14:32:07 +02:00
Autechre 527eb86655 Merge pull request #13117 from libretro/move-runloop
Move state to runloop state
2021-10-15 14:05:46 +02:00
twinaphex 8db4e2a862 Get rid of HAVE_MENU ifdefs in menu_driver.c 2021-10-15 14:01:44 +02:00
twinaphex af40baa04d Address feedback 2021-10-15 13:54:04 +02:00
Omar Saleem 5226a0659a new ozone theme: solarized dark (#1)
* feat: adding solarized dark theme to ozone

* fix: variable not defined in header

* fix: added string for selecting theme in menu

* fix: added message hash for string

* feat: copied solarized dark translations into msg hashes

* fix: forgot to change name of enum label after copying

* first pass of new colors

* added selection border and fixed sublabel color

* sublabel color from blue to muted gray

* trying cyan for sublabel

* adjusted selected text color to match philosophy from solarized website

* testing what the entries_ colors do

* chose colors for entries_, adjusted other border and bgs

* match selection border to sublabel color

* trying gray for sublabel

* accidentally put the color in the wrong place, reverting and updating

* trying to change selected option color to orange

* not feeling orange, lets try teal

* try for orange border

* try for magenta border

* try for violet border

* trying blue border again

* trying omar blue bc why not

* reverting to regular blue for icons and green for border

* try magenta for footer border

* trying font color for footer border

* trying to get message background to show

* can't get it to render, but changed message background to violet

* testing sidebar changes

* sidebar colors

* lighter sidebar color

* trying gray sidebar

* try a gradient

* screwed up one of the coordinates

* reversing gradient

* attempting gradient with colors i made up

* accidentally wrote gradient to dracula instead of solarized dark

* adding gradient to the top, reversing bottom gradient

* randomly trying shuffling bottom gradient coords

* moving top right coordinate somewhere else

* swapped top two bottom coords to see

* swapped them back, i got lucky and things were right

* think i figured out the order,  BL, BR, TL, TR

* making background gradient lil darker

* fixed coords

* lessening gradient effect

* lessening gradient effect, but by making darker instead of lighter

* of course, messed up two coords

* removed top and bottom gradients

* dark and flat sidebar

* forgot to change running background

* made running background a bit less transparent since this is a low contrast theme
2021-10-15 03:16:13 -04:00
twinaphex a16df36b28 Don't use menu_state_get_ptr from inside menu_driver.c 2021-10-15 04:01:06 +02:00
twinaphex a291323467 Move some code to gfx/video_driver.c 2021-10-15 02:25:12 +02:00
twinaphex 40aa7dad10 Move code to menu_driver.c and rename retroarch_ function to runloop_
function
2021-10-15 02:14:43 +02:00
twinaphex 6f7b5a3f15 Buildfix for non-HAVE_DYNAMIC 2021-10-15 00:23:40 +02:00
twinaphex 70b337782d Fix MSVC build 2021-10-15 00:11:52 +02:00
twinaphex b9500ff729 Move state over to runloop state 2021-10-14 22:18:14 +02:00
twinaphex 5e8b2bfed1 Move variables to runloop state 2021-10-14 22:02:09 +02:00
twinaphex ba19dc3140 Move more related to core to runloop_state 2021-10-14 21:47:35 +02:00
twinaphex bf2c3902d4 Cleanups 2021-10-14 21:35:38 +02:00
twinaphex 2b41173cd5 Move more state to runloop_state 2021-10-14 21:22:07 +02:00
twinaphex 6d6ed11b60 remove unused p_rarch variables 2021-10-14 21:18:53 +02:00
twinaphex eef9668263 move runloop state from retroarch_data to runloop_state 2021-10-14 21:15:11 +02:00
Autechre 6ccac53d89 Merge pull request #13116 from jdgleaver/contentless-sram
Enable SRAM for contentless cores
2021-10-14 19:29:30 +02:00
twinaphex 6d13461948 Fix to earlier HAVE_CORE_INFO_CACHE commit 2021-10-14 16:46:48 +02:00
twinaphex a476910ca6 (Mac) BaseConfig.xcconfig - change formatting back 2021-10-14 16:06:17 +02:00
twinaphex 28cac5c5a4 Add HAVE_CORE_INFO_CACHE - disable this for Steam build 2021-10-14 15:57:28 +02:00
jdgleaver 40925baacd Enable SRAM for contentless cores 2021-10-14 13:59:23 +01:00
twinaphex c19b04e21e Cleanup emscripten_mainloop 2021-10-13 23:15:14 +02:00
twinaphex b5e7957260 Fix emscripten 2021-10-13 23:14:26 +02:00
twinaphex 7f2cc93cf5 Silence warning 2021-10-13 21:44:40 +02:00
twinaphex c098a321b4 silence more warnings 2021-10-13 20:27:31 +02:00
twinaphex a79bd56018 (WiiU) Prevent implicit declarations 2021-10-13 20:22:01 +02:00
Autechre af0746c6d7 Merge pull request #13113 from tim77/metainfo
Update metadata manifest (Linux)
2021-10-13 19:56:36 +02:00
twinaphex 8bab67ea9c Potential buildfix for targets without HAVE_AUDIOMIXER support 2021-10-13 19:51:28 +02:00
twinaphex aa6d3542d2 Prevent warning 2021-10-13 18:44:27 +02:00
Autechre 78b861a8e8 Merge pull request #13114 from libretro/move-widgetstate
Better compartmentalize state - better distinction between runloop and retroarch files
2021-10-13 18:43:23 +02:00
twinaphex 70606eab1e Buildfix for WiiU 2021-10-13 18:40:41 +02:00
twinaphex 22d70a64dd Move command_write_memory and command_read_memory to command.c 2021-10-13 18:15:35 +02:00
twinaphex 753a04c9c1 Move menu_driver_toggle to menu_driver.c 2021-10-13 17:59:45 +02:00
twinaphex caccc410c6 Move gfx_widgets_ready to gfx_widgets.h 2021-10-13 17:51:46 +02:00
twinaphex 68f0e50a2f rename a bunch of functions to runloop_ prefix instead of retroarch_ -
we need to make a better distinction between runloop and the 'retroarch
state'
2021-10-13 17:48:40 +02:00
twinaphex 0b66c81197 Move state variables to runloop_state 2021-10-13 17:37:24 +02:00
twinaphex e72a88a98e Move some variables to widget state 2021-10-13 17:25:31 +02:00
twinaphex d87e0c1744 * Fix implicit declaration
* Move more code to gfx/video_driver.c
2021-10-13 16:36:38 +02:00
twinaphex e47e9968ed Move audio_driver_menu_sample to audio_driver.c and turn
audio_driver_flush into static function
2021-10-13 16:29:41 +02:00
twinaphex f070da6dfc Move code to menu_driver.c and input_driver.c 2021-10-13 15:40:01 +02:00
twinaphex 99b09ce359 Move more code to gfx/video_driver.c 2021-10-13 15:20:09 +02:00
twinaphex 5f4d4fe678 Move more code from retroarch.c to video_driver.c - retroarch.c now
778kb
2021-10-13 15:15:24 +02:00
Autechre 0ca98195d9 Merge pull request #13096 from salvacam/miyoo-ifdef-fix
miyoo ifdef fix
2021-10-13 15:16:42 +02:00
Artem Polishchuk 9781caa20b chore: Update metadata manifest (Linux) 2021-10-13 16:08:58 +03:00
Autechre 0a888f7868 Move video state to gfx/video_driver.c - reduces filesize of retroarch.c to 809kb (#13104)
* Move video state to gfx/video_driver.c - reduces filesize of retroarch.c
to 809Kb
2021-10-13 14:56:22 +02:00
Autechre 0b2c80a402 Merge pull request #13112 from jdgleaver/dingux-joypad-defines-fix
(Dingux) Fix HAS_ANALOG/HAS_MENU_TOGGLE defines in sdl_dingux joypad driver
2021-10-13 14:25:42 +02:00
Autechre 2179bc8716 Merge pull request #13111 from jdgleaver/3ds-2d-fix
(3DS) Ensure parallax barrier is disabled when '3DS Display Mode' is '2D'
2021-10-13 14:00:23 +02:00
jdgleaver f1ac1ad9f9 (Dingux) Fix HAS_ANALOG/HAS_MENU_TOGGLE defines in sdl_dingux joypad driver 2021-10-13 12:53:54 +01:00
jdgleaver 1ebf821da3 (3DS) Ensure parallax barrier is disabled when '3DS Display Mode' is '2D' 2021-10-13 12:31:43 +01:00
Autechre ac1a280665 Merge pull request #13107 from markand/fix-wifi
Fix missing time.h header in wifi_driver.h
2021-10-12 14:11:38 +02:00
David Demelier a23a358dc9 Fix missing time.h header in wifi_driver.h 2021-10-12 13:55:29 +02:00
twinaphex cfb2ae7d2c need to use SetWindowText for LEGACY_WIN32 2021-10-12 12:41:05 +02:00
twinaphex 849ed7fc3d Buildfix for MSVC 2021-10-12 11:58:22 +02:00
Soar QinandSoar Qin 290bc214e3 win32: fix broken win9x builds caused by #13089 (#13106)
Co-authored-by: Soar Qin <[email protected]>
2021-10-12 11:24:58 +02:00
twinaphex e9d4fcc00c Buildfix 2021-10-11 18:06:25 +02:00
Bernhard Schelling a3d9201581 Add environment callback to get the rate retro_run is called (#13022)
* Add GET_THROTTLE_STATE environment callback

* Add RETRO_THROTTLE_UNBLOCKED
to report the case where neither vsync nor audio is limiting the call rate.
Also fix reporting of some special cases when the menu is open.

* Change throttle state mode to unsigned
Use #defines Instead of the untyped C enum to allow easier future additions.

* Spelling fixes

* Avoid any divide-by-zero
2021-10-11 18:05:13 +02:00
Autechre e7f182811a Split up audio code into new file audio/audio_driver.c (#13097)
* Split up audio code into new file audio/audio_driver.c

* Fix build issues #1

* Small cleanup

* Fix typo
2021-10-11 18:01:37 +02:00
Kirby Kevinson 177d05144a Fix keyboard input on Wayland (#13102)
Fixes #13036
2021-10-11 13:20:41 +02:00
gblues dd6c70a083 Fix a couple regressions (#13101)
== DETAILS

- rewrote the HID deregistration algorithm; it should no longer
  cause issues when dealing with multiple pads of the same HID/VID
  combo
- fix initialization bug that caused wiimotes to fail to register
  without an accessory attached
2021-10-11 09:39:13 +02:00
salvacam 757ba2f16d miyoo ifdef fix 2021-10-10 20:00:53 +02:00
Autechre a9125fffaa Update CHANGES.md 2021-10-09 16:25:25 +02:00
twinaphex bcc7581250 (joypad_connection.c) Cleanups - style nits - comment out some logs
that were generating warnings
2021-10-09 16:19:54 +02:00
twinaphex 107d315559 Bump up version 2021-10-09 16:14:46 +02:00
Soar Qin 39fd4677d9 win32: fix non-ASCII text display in window title (#13089) 2021-10-09 06:28:17 +02:00
jdgleaver a5a9393b26 (.gitlab-ci.yml) Add Miyoo target (#13088) 2021-10-08 14:28:27 +02:00
Salvador 58e7dd8a1a Add Miyoo target (#12860)
* add miyoo target
2021-10-08 13:53:49 +02:00
twinaphex 3d710db798 input_state_wrapper symbol name was causing collisions with certain
cores on statically linked platforms
2021-10-08 12:50:45 +02:00
twinaphex e39bc07e31 Fix implicit declaration 2021-10-08 06:57:37 +02:00
Autechre 00a5b5411f Merge pull request #13081 from gblues/gblues/osx-hid-gca
Get the WIIU GCA working on Mac OSX
2021-10-07 16:23:01 +02:00
Autechre 2e4d135704 Merge pull request #13079 from jdgleaver/api-set-core-option-value
Add enviroment callback to enable cores to notify the frontend that a core option value has changed
2021-10-07 15:18:00 +02:00
Nathan Strong ea249b3827 Get the WIIU GCA working on Mac OSX
== DETAILS
The GCA uses a weird HID class that our current filters don't
catch, so we add it.

Needed to do a small amount of tweaking on the GCA driver to
account for iohidmanager weirdness.
2021-10-06 23:11:22 -07:00
Autechre 3f179a5762 Merge pull request #12632 from Sunderland93/remove-xdg-shell-v6
[Wayland] Remove xdg-shell-v6 protocol
2021-10-07 05:10:53 +02:00
jdgleaver 534f8da487 Add enviroment callback to enable cores to notify the frontend that a core option value has changed 2021-10-06 16:45:14 +01:00
Autechre 54cbeecbb7 Merge pull request #13075 from libretro/move-more-code-to-input-driver
Move more code over to input_driver.c
2021-10-06 12:38:21 +02:00
Autechre a611469f94 Merge pull request #13076 from gblues/gblues/ds3-osx-crash-fix
Fix crash when connecting DS3 to Mac
2021-10-06 09:05:35 +02:00
Nathan Strong 01e96585a3 Fix crash when connecting DS3 to Mac
== DETAILS
The OSX HID driver doesn't implement `set_protocol()` and crashes
with an NPE, so we guard it.
2021-10-05 23:57:09 -07:00
Autechre 6739cf66ca Merge pull request #12572 from john-parton/feature/tinyalsa-opendingux
Enable tinyalsa for the RG350
2021-10-06 07:58:37 +02:00
twinaphex 682d45379c Buildfix 2021-10-06 06:03:33 +02:00
twinaphex 61ee2274e6 Move more code over to input_driver.c - BSV code in particular but
also input state function callbacks - retroarch.c code size reduced
to 874Kb
2021-10-06 05:57:39 +02:00
twinaphex 55bf2b0083 (input/connect) Style nits 2021-10-06 02:52:19 +02:00
twinaphex f81a231481 (joypad_connection) Cleanups - get rid of warning for old-style function
definition
2021-10-06 02:28:55 +02:00
Autechre f242ef6a7c Merge pull request #13073 from gblues/gblues/wiiu-unified-hid
Gblues/wiiu unified hid
2021-10-06 02:25:08 +02:00
twinaphex f4734d223c Another buildfix 2021-10-05 22:57:49 +02:00
Autechre 16b82a05e5 Merge pull request #13071 from IlDucci/ps2restypofix
Fixing a string typo in PR #13068
2021-10-05 22:44:37 +02:00
twinaphex 376b7a622c Fix NGC/Wii builds 2021-10-05 22:18:08 +02:00
Nathan Strong e8ec65ecf7 squelch format warning 2021-10-05 19:05:12 +00:00
Nathan Strong 3e91e3fbc9 fix up non-wiiu side of ifdefs for ds3 2021-10-05 18:15:19 +00:00
Nathan Strong 002c9a30c0 Implement button() for most HID drivers
== DETAILS
The HID drivers in `input/connect/` were missing an implementation
for button(), so I added it. The only exception is the wii driver,
which is really complicated and more than I wanted to try to tackle--
especially since WIIU has its own wiimote drivers.
2021-10-05 17:43:03 +00:00
Nathan Strong e02e345a28 Make GCA driver compatible with other HID drivers
== DETAILS
Use a little trickery to ensure the GCA driver continues working
with other HID implementation.

I've expanded the joypad implementation to support multi-pad devices.
However, this requires changes to each HID implementation to actually
function.

I've made the necessary changes for WIIU, but I don't have the means
of making the change in the other HID implementations.

So, I've built in a backwards-compatibilty mode for the driver.

The trick is to have an identifier byte at the top of both data structs
that the driver returns. We can then use that byte to determine which
of the structs has been passed to the pad functions and act accordingly.

In the GCA case, for non-wiiu platforms, it will simply expose port 1
of the GCA and the other 3 ports do nothing.
2021-10-05 09:47:03 -07:00
IlDucci b46daac334 Adding a missing ending period. 2021-10-05 18:38:22 +02:00
Nathan Strong 2715b4c9c0 get gamecube adapter working 2021-10-05 09:23:08 -07:00
Nathan Strong c832828ddb Figured out the cause of crash
== DETAILS
cause of crash: trying to deference init when it's null
the reason it was going into deregister: the HID/VID lookup was
failing because it wasn't getting initialized first
cause of 2nd crash: the "end of pad list" method looked for an entry
with a magic value, so we add an end marker
2021-10-05 09:23:08 -07:00
Nathan Strong a4d8ce7753 Try to support multi-pad HID devices
== DETAILS
I tried to modify the joypad connection interface to support
multi-pad HID devices ... it doesn't work. I'm not sure why.
2021-10-05 09:23:08 -07:00
Nathan Strong 9846ebb171 enable GCA adapter, minor cleanup
== DETAILS

I'm going to need to re-implement the abstraction between HID device
and gamepad; the changes here lay down some foundation for that work.

- reduce logging priority of some statements I modified while debugging
- factor out the pad driver lookup into its own method
- fix so the pad driver list isn't re-initialized every invocation
- add the button() method for the GCA driver
2021-10-05 09:23:08 -07:00
Nathan Strong 5da1cd08ff Unify the HID driver architecture
== DETAILS
When I first implemented the Wii U HID architecture, I ended up
having to design my own implementation because, at the time, I did
not have a way to read the HID device string to allow the existing
code to successfully detect the gamepad.

After spending some time experimenting, I've figured out how to
do this. And that means I can better align the HID driver with other
platforms.

change summary:

- create a single state structure for all three sub-types of wiiu pads
  (kpad, wpad, and hid)
- eliminate confusing duplicate pad lists
- eliminate confusing duplicate HID pad drivers (ds3, gamecube
  adapter, etc)
- ensure the ds3 driver still works
2021-10-05 09:23:08 -07:00
Nathan Strong 9edb449471 wip commit 2021-10-05 09:10:41 -07:00
IlDucci 41a9c46846 Fixing a string typo in PR #13068 2021-10-05 15:18:19 +02:00
Autechre a264cad19a Merge pull request #13068 from fjtrujy/ps2/change_res
Change Resolution for PS2 platform
2021-10-05 12:42:07 +02:00
Jean-André Santoni e839cf8434 Fix indentation in xmb.c 2021-10-05 11:29:48 +07:00
twinaphex 7e6a56dafc Show Windows 11 version string 2021-10-05 04:37:44 +02:00
Francisco Javier Trujillo Mata bc5a99ae34 Fix available resolution options and improve scaling together with pixel perfect 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata 52a939bc2f Add ps2sdk folders to vscode config 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata 9f96723dd0 Adding proper translations for changing resolution 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata 3bbfcf7b39 Adding to get_video_output_size 2 parameters for additional info 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata 216675919b Add PS2 Support for changing resolution and offset 2021-10-04 23:53:55 +02:00
Francisco Javier Trujillo Mata c8a46e6e69 Add option for change video windows offsets, from video output 2021-10-04 23:53:54 +02:00
Autechre 69ab4eee7a Merge pull request #13069 from jdgleaver/gitlab-msvc-env
(.gitlab-ci.yml) Remove unnecessary 'env.exe' commands from MSVC builds
2021-10-04 18:46:46 +02:00
jdgleaver e193f92cfd (.gitlab-ci.yml) Remove unnecessary 'env.exe' commands from MSVC builds 2021-10-04 15:53:34 +01:00
Autechre 2c355419bd Merge pull request #13066 from 3rd-fork/master
Remove usage of winrt storage files from uwp version
2021-10-03 23:12:28 +02:00
Autechre 24484e72d2 Merge pull request #13061 from libretro/put-back-scaler-object
Put scaler_ctx back in screenshot_state
2021-10-02 05:18:38 +02:00
twinaphex 6a4a5ae27c Put scaler_ctx back in screenshot_state 2021-10-02 04:19:46 +02:00
Autechre c38479d593 Merge pull request #13059 from IlDucci/translationsupdatewithscript
Fetch translations from Crowdin 01-Oct-2021
2021-10-02 02:26:55 +02:00
IlDucci cd8396edd4 Fetch translations from Crowdin 01-Oct-2021 2021-10-01 23:32:17 +02:00
p-sam 54d2ac9f43 libnx: Splitted Joycons button mapping
- Minus/Plus is always Plus when splitted (JOYPAD_START)
- StickR/StickL is always StickL when splitted (JOYPAD_L3)
2021-10-01 20:18:54 +02:00
Autechre 5a40d28f8f Merge pull request #13055 from libretro/fix-cheevos-regression
Fix Cheevos regression
2021-10-01 19:00:03 +02:00
twinaphex 732c38cc0b Fix Cheevos regression 2021-10-01 16:19:50 +02:00
Tunip3 be7d6832d3 strip out winrt storagefiles 2021-10-01 09:58:17 +01:00
Autechre f5a5a993ff Merge pull request #13054 from libretro/get-rid-of-getters-setters
Get rid of input_event_get_osk_ptr/get_osk_grid
2021-10-01 07:56:11 +02:00
twinaphex fde3406d1b Get rid of input_event_get_osk_ptr/get_osk_grid 2021-10-01 07:37:33 +02:00
Autechre 8807e2957e Input refactors pt3 (#13053)
* Move more internal state over to input_driver.c and menu_driver.c -
retroarch.c now down to 893kb
- Remove now unused p_rarch pointers in functions
2021-10-01 07:18:30 +02:00
Autechre bd76388fc5 Merge pull request #13048 from 3rd-fork/master
Make uwp vfs file implementation more like win32
2021-10-01 01:26:18 +02:00
Autechre 5d71138fd8 Merge pull request #13052 from libretro/input-refactors-pt2
Input refactors pt2
2021-10-01 01:25:40 +02:00
twinaphex b674b5362d Small cleanup - this macro is no longer used 2021-10-01 00:44:47 +02:00
twinaphex e9a4e811ac Move more code and variables from rarch_state out to input_driver
and menu_driver
2021-10-01 00:41:50 +02:00
Autechre 2d279df6e4 Merge pull request #13049 from libretro/input-refactor
Input refactor
2021-09-30 23:55:15 +02:00
twinaphex b4f09f7a55 Fix some header includes 2021-09-30 23:31:54 +02:00
twinaphex 49fbed2423 Get rid of input_mouse_grabbed - move retroarch types to
retroarch_types.h
2021-09-30 23:22:50 +02:00
twinaphex 878ad88e5b Buildfix 2021-09-30 21:34:36 +02:00
twinaphex 12c81bc073 Replace input_state_get_ptr call 2021-09-30 21:31:37 +02:00
twinaphex dbe414e1e1 move input_poll_overlay to input_driver.c 2021-09-30 21:29:35 +02:00
twinaphex ddceb51f89 Get rid of some needless getters/setters 2021-09-30 21:10:12 +02:00
twinaphex ef875f6102 Create input_state_get_ptr - move to input_driver.c -
also moved over the functions that had a dependence on this
state - retroarch.c reduced to 979kb now
2021-09-30 20:54:56 +02:00
Tunip3 d85919d0e3 delete functions that were commented out 2021-09-30 18:59:20 +01:00
Autechre 076440987b Merge pull request #13047 from libretro/fix-blargg-warning
Fix blargg warning + some cleanups
2021-09-30 19:30:19 +02:00
Autechre db6af919fb Merge pull request #13046 from libretro/gfx-thumb-move-state
Refactor - move gfx_thumb_state to gfx_thumbnail.c
2021-09-30 18:32:44 +02:00
twinaphex 689487dbee Fix blargg warning + some cleanups 2021-09-30 18:20:29 +02:00
twinaphex e13073c411 move gfx_thumb_state to gfx_thumbnail.c 2021-09-30 18:05:00 +02:00
Autechre 6a152f8917 Merge pull request #13045 from libretro/core-backup-warning
Fix warning in core_backup.c
2021-09-30 17:57:39 +02:00
Autechre 1d2a2adb61 Merge pull request #13044 from libretro/disp_refactors
Gfx_display refactors
2021-09-30 17:42:09 +02:00
twinaphex a0955d4fa6 Fix potentially bad regression - would crash on any platform where unsigned long is more than 32 bits (not sure if any platform has this, however) 2021-09-30 17:19:38 +02:00
twinaphex b1410c72e5 - Move disp_get_ptr to gfx_display.c
- Move menu_driver_init to menu_driver.c, and turn
menu_driver_init_internal into static function
2021-09-30 17:14:26 +02:00
Autechre d819251ffd Merge pull request #13043 from libretro/refactors
Refactors - moves dispwidget_get_ptr to gfx_widgets
2021-09-30 16:49:52 +02:00
twinaphex d39ea61109 Add HAVE_SCREENSHOTS ifdef 2021-09-30 15:55:31 +02:00
twinaphex b07d80efe1 gfx_widgets.h - add RETRO_BEGIN_DECLS/RETRO_END_DECLS 2021-09-30 15:29:57 +02:00
twinaphex 5ba8843354 Move dispwidget_get_ptr over to gfx_widgets.c 2021-09-30 04:40:15 +02:00
twinaphex 0e9b2179af move scaler object out of screenshot_task_state 2021-09-30 02:19:16 +02:00
twinaphex efe34f52af (gl_common.c) Add HAVE_CONFIG_H 2021-09-29 17:48:58 +02:00
twinaphex b5190b3662 Add glsym/glsym.h header for gl_common.c 2021-09-28 16:28:56 +02:00
twinaphex cc2fea4c85 (MSVC2019/D3D9) D3D9 works now - HAVE_HLSL and HAVE_D3DX both set now 2021-09-28 15:50:15 +02:00
twinaphex 4f8ca90dd0 Move code over to gfx/video_driver.c 2021-09-28 15:29:05 +02:00
twinaphex 0364a277e4 Fix function declaration 2021-09-28 15:22:33 +02:00
twinaphex 4c419466e6 Cleanups 2021-09-28 15:19:08 +02:00
twinaphex 9bb2359a86 More naming consistency changes - take 'retroarch_' prefix out of
functions that don't touch p_rarch state
2021-09-28 13:48:49 +02:00
twinaphex f90809d754 Move data out of retroarch_data.h and into retroarch.c 2021-09-28 13:02:14 +02:00
twinaphex e886e908d5 Create consistent naming conventions - use retroarch_ instead
of rarch_ for some functions for all functions coming from retroarch.h
2021-09-28 12:56:10 +02:00
twinaphex e4bec6739c Move code over to menu_driver.c 2021-09-28 12:07:29 +02:00
twinaphex 8ef9065c86 Get rid of menu_driver_is_alive - we don't want these one/two-line getters/setters anymore 2021-09-28 10:27:00 +02:00
twinaphex e31fbb8048 Move menu_driver_alive to menu_state 2021-09-28 10:11:13 +02:00
twinaphex 1e29ba3cd6 Move menu_driver_is_binding to menu_state 2021-09-28 09:52:46 +02:00
twinaphex 9e26012751 Move menu_driver_init_internal to menu_driver.c 2021-09-28 09:32:11 +02:00
twinaphex 9727be4de6 Cleanup 2021-09-28 04:03:15 +02:00
twinaphex 6a72403f0f (MSVC) Define HAVE_D3DX when HAVE_HLSL is defined 2021-09-28 03:37:08 +02:00
twinaphex 774dccca7c Move more code over to gfx/video_driver.c 2021-09-28 02:15:11 +02:00
twinaphex 3dee62ce62 Cleanups and buildfix 2021-09-28 01:16:53 +02:00
twinaphex 05e4aa8bfb move more code over to gfx/video_driver.c 2021-09-28 00:50:48 +02:00
twinaphex 4574a58683 (video_driver.c) Move some code over 2021-09-27 20:31:31 +02:00
twinaphex 0448afab96 Move video driver functions over to gfx/video_driver.c 2021-09-27 19:37:22 +02:00
twinaphex c3afd4b1a5 Buildfix for Emscripten 2021-09-26 23:07:51 +02:00
twinaphex e8dbcd4600 Fix griffin_cpp.cpp 2021-09-26 22:59:32 +02:00
twinaphex 31eaeb1a03 Create gl_flush 2021-09-26 22:28:28 +02:00
twinaphex 422e940bc4 Fix gl_common.h 2021-09-26 22:22:20 +02:00
twinaphex d4af68d2dd Add glsym/rglgen.h for x_ctx.c 2021-09-26 22:16:18 +02:00
twinaphex 76db3e02cf Create gl_clear 2021-09-26 22:10:53 +02:00
twinaphex 4aafbf2340 Create gl_common.c/gl_common.h 2021-09-26 19:57:08 +02:00
twinaphex 4b5951bda3 Rename gl_common.h to gl2_common.h and remove some file dependencies
on it
2021-09-26 17:42:12 +02:00
twinaphex 6f36e0a2dd Rename GL driver files + add some comments to D3D drivers - gl_core
becomes gl3, gl becomes gl2, etc
2021-09-26 14:16:09 +02:00
twinaphex 2a4862ad8d Rename mimpapgen_sm5.h to mipmapgen_sm5.h 2021-09-26 13:30:50 +02:00
twinaphex 8fa1f998c5 Move d3d9 headers to gfx/include/d3d9 2021-09-26 12:49:53 +02:00
twinaphex 0e21365be1 (MSVC) Add HAVE_HLSL to MSVC targets 2021-09-26 12:30:27 +02:00
twinaphex bbbc4452d7 (MSVC 2010) Add HAVE_HLSL 2021-09-26 09:48:57 +02:00
twinaphex ee97c2066a Make sure this is no longer a function behind a ifdef - too much
maintenance chores
2021-09-26 02:47:43 +02:00
twinaphex 89968333a4 Attempt to fix Mac build 2021-09-26 02:38:57 +02:00
Autechre 12540d750d Merge pull request #13037 from gblues/gblues/wiiu-fix-warnings
WIIU: Clean up a bunch of compiler warnings
2021-09-26 00:57:02 +02:00
MajorPainTheCactus e08cc6e260 Fixed up the d3d9 driver (#13038)
* Fixed d3d9 mvp matrix issue

* Fixed up the d3d9 driver to display the game now
2021-09-26 00:19:45 +02:00
Nathan Strong fb86ca6e33 Fix the snprintf warnings for everyone this time
== DETAILS
So, basically this back-and-forth is because we used fixed-size
data types (i.e. `uint32_t`) which maps to different primitive data
types on different platforms. So `uint32_t` might be a `long` on some
platforms (e.g. Wii U), while it's just a plain integer on others (PC).
And the format specifier works off primitive data type, not data type
size.

So, to resolve this, we:

- keep `%lx` as the format specifier
- cast the parameter to printf to unsigned long

This is better than the alternatives that could cause problems trying to
cast a long down to an int.
2021-09-25 15:08:34 -07:00
Nathan Strong a3241aa9b2 fix missing semicolon 2021-09-25 14:03:29 -07:00
Nathan Strong 9b2d4236ad WIIU: Clean up a bunch of compiler warnings
== DETAILS
These changes fall into a few broad categories:

1. Explicitly undefine things we want to re-define due to conflicts with
   the version of devkitpro we're using
2. Clean up hex format specifiers to use `%lx` or `%lX` when working with
   long integers
3. Move variables inside the ifdef they're used in to squelch "unused variable"
   messages
4. Add parenthesis to make Wii U shader declarations stop complaining

And then there's a weird "misleading indent" warning that I fixed by just
rewriting a block of code to use a switch statement instead of if-then-else.

These changes work fine on Wii U, but we'll need to keep an eye on CI/CD to see
if other platform builds break.
2021-09-25 13:25:39 -07:00
Tunip3 9d25ba7ac5 reimplent vfs files without using storagefile 2021-09-25 17:44:25 +01:00
Ömercan Kömür 714cfc581d android launcher logo (#13035)
This will fill the corners on the homescreen
2021-09-25 11:39:44 +02:00
grant2258andgrant2258 a327fdb6fe add mouse relative check and set appropiatley to fix issue (#12994)
* re add this after failed rebase

* update

* temp fix for device friendly naming as it is for testing

* add device friendly names in the appropiate place

* add/remove hotplug dev to ra input mouse port list

Co-authored-by: grant2258 <[email protected]>
2021-09-24 18:31:20 +02:00
Ben Hamilton (Ben Gertzfield) 1970786932 New feature: Use gamepad combo to quit Retroarch (#13017)
* Refactor menu toggle combo button logic to allow quit combo button

* Quit gamepad combo

* Fixes from @jdgleaver
2021-09-24 18:30:46 +02:00
jdgleaver 50bb7afa9d (.gitlab-ci.yml) Detect MSVC build errors 2021-09-24 12:39:20 +02:00
jdgleaver f52fbd32a0 (libretro-common/file_stream) Restore missing filestream_scanf() function 2021-09-24 12:12:52 +02:00
markwkidd 7b020f4cc5 correct vscode gitignore typo (#13029) 2021-09-23 18:40:26 +02:00
M4xw 6cadd47679 Lets not expect every vscode user on windows to use msys
They can change it locally
2021-09-23 13:45:22 +02:00
M4xw 931eb3221b [LIBNX] Fix Split Joycon 2021-09-23 13:45:22 +02:00
twinaphex 1ff024be26 Don't do rotate_z call for every draw_texture_slice call 2021-09-21 21:38:07 +02:00
twinaphex ecdf20ea49 Remove unused gfx_display_draw_polygon 2021-09-21 21:13:46 +02:00
twinaphex 6eeebeab25 Get rid of gfx_display_set_msg_force 2021-09-21 21:10:38 +02:00
twinaphex 522dd72bd0 Try to silence libnx warning (-Wstringop-overflow) 2021-09-21 19:20:21 +02:00
twinaphex 83ce4259a0 Have only one getter for runloop_state 2021-09-21 19:08:26 +02:00
twinaphex 550d3fa766 Create new header runloop.h 2021-09-21 18:38:53 +02:00
twinaphex f21641d898 Get rid of another 'getter' function 2021-09-21 18:30:56 +02:00
twinaphex 1b7dea7e8e Move code over to menu_driver.c 2021-09-21 18:14:01 +02:00
twinaphex c42f932c3f Moved code over to menu_driver.c 2021-09-21 18:04:48 +02:00
twinaphex 33f075191d Silence warning for libnx 2021-09-21 17:53:50 +02:00
twinaphex a950bfbe3e remove unused variable 2021-09-21 17:38:07 +02:00
twinaphex f11f892076 Put retroarch_apply_shader_preset behind ifdef 2021-09-21 17:31:51 +02:00
jdgleaver 6c5e17e5ae Fix file_stream_transforms:rfscanf() (#13023) 2021-09-21 17:04:34 +02:00
twinaphex b87bc46064 Add missing header for Android 2021-09-21 17:00:58 +02:00
twinaphex 7c8c53fb2d Get rid of menu_driver_get_ptr - we are going to be using only one
getter for each component state instead of several getters
2021-09-21 07:14:27 +02:00
twinaphex 44012ace47 move more menu state over to menu_driver.c 2021-09-21 06:05:25 +02:00
twinaphex 28e0b669d2 (menu) move more state over 2021-09-21 05:44:53 +02:00
twinaphex 58bc88d433 Move menu_driver_state over to menu_driver.c and move it out of
p_rarch
2021-09-21 05:33:46 +02:00
twinaphex 30353ac8f2 move more code out of retroarch.c/retroarch_data.h and into
menu_driver.c
2021-09-21 05:11:39 +02:00
twinaphex d68a138250 Move more menu state to menu_state_t - and move code from
retroarch.c to menu_driver.c
2021-09-21 04:51:38 +02:00
twinaphex c4b8fab0d0 Move menu_input_state to menu_state 2021-09-21 04:20:04 +02:00
twinaphex beea0e2c8d Fix header include 2021-09-21 00:52:05 +02:00
twinaphex f3b2e233bb Move more code to menu_driver.c 2021-09-21 00:51:15 +02:00
twinaphex abebf4a421 Cleanups 2021-09-21 00:41:52 +02:00
twinaphex ec55f8188a Move code out of retroarch.c and into menu/menu_driver.c 2021-09-21 00:12:26 +02:00
twinaphex e2e236f1bf Create menu_state_get_ptr() 2021-09-21 00:00:50 +02:00
twinaphex 94b5769375 Cleanups 2021-09-20 21:21:54 +02:00
twinaphex d2af43d457 Cleanups 2021-09-20 21:08:53 +02:00
twinaphex 295aa84a9e Cleanups 2021-09-20 20:43:05 +02:00
twinaphex fabdede667 Move anim_get_ptr to gfx_animation.c 2021-09-20 20:17:53 +02:00
twinaphex c412ecf7e9 Buildfix 2021-09-20 15:54:07 +02:00
twinaphex fa00455af1 Address feedback 2021-09-20 15:43:57 +02:00
Autechre cbfa8d6400 Move coreinfo_get_ptr internal state back to core_info.c (#13020) 2021-09-20 15:43:27 +02:00
twinaphex f587d28a0d Buildfix 2021-09-20 08:09:43 +02:00
twinaphex 9b5a60af53 Move location driver code to separate file 2021-09-20 06:26:14 +02:00
twinaphex 238eb649a2 Split up midi_driver code to midi_driver.c 2021-09-20 03:43:37 +02:00
twinaphex 5eb795bf5b (widgets) Get rid of dead code 2021-09-20 02:21:05 +02:00
Autechre ebe0d89de2 Update CHANGES.md 2021-09-19 05:35:20 +02:00
Autechre a64fa9c8d7 Update CHANGES.md 2021-09-19 05:24:24 +02:00
twinaphex d11ffdbb6b Bump version 2021-09-19 05:19:36 +02:00
Autechre b71d34068b Update CHANGES.md 2021-09-19 05:12:15 +02:00
gblues ae617c0ee6 Update some Wii U development metadata (#13013)
== DETAILS
- add a `WiiU` IntelliSense configuration for vscode
- rewrite the `net_listen.sh` script in python because the
  shell script approach just isn't portable enough and doesn't handle
  things like multiple network adapters gracefully at all.
2021-09-19 01:22:59 +02:00
twinaphex b3d724b7a3 Move code out of retroarch.c 2021-09-18 22:05:03 +02:00
twinaphex eb895f9947 move more code out of retroarch.c 2021-09-18 21:14:15 +02:00
twinaphex 1c546cb7fd move more code out of retroarch.c 2021-09-18 21:03:16 +02:00
twinaphex db3f0a8468 Move code out of retroarch.c - move it into
network/netplay/netplay_frontend.c
2021-09-18 06:15:02 +02:00
twinaphex 7c74e035b0 Small cleanups 2021-09-18 06:15:02 +02:00
Víctor "IlDucci 226f5fb456 Fetch translations from Crowdin 17-Sep-2021 (#13007) 2021-09-17 20:23:02 +02:00
tunip3andTunip3 895676430f make dir stuff more like the normal win32 stuff (#13006)
Co-authored-by: Tunip3 <[email protected]>
2021-09-17 17:41:56 +02:00
jdgleaver 0a5bb29c43 (libnx) Enable video filters (#13004) 2021-09-17 14:27:37 +02:00
jdgleaver bae6f8e097 (vfs_implementation.c) Place 'memmap.h' include behind '#if defined(HAVE_MMAP)' guard (#13003) 2021-09-17 14:25:44 +02:00
Autechre 62a66ff0e5 Prevent crash pointed out by LIJI - primary_joypad can be NULL (#13002) 2021-09-17 05:20:09 +02:00
Michael Burgardt d8db234df0 Concatinate some previously truncated strings for easier translation (#12120) 2021-09-16 19:00:14 +02:00
twinaphex 251bfdb302 Buildfix for prior PR 2021-09-16 01:15:36 +02:00
Tony 5aafe9eb0c Add distinct mouse zero index label for drivers that do not support multimouse (#13000) 2021-09-16 01:08:03 +02:00
Mats 6a59dad08c Add compile option to make unix use cwd as env (#12989)
Setting UNIX_CWD_ENV to 1 when compiling with the unix platform will make
the base path for the env the cwd. This is to be able to match the behavior on
Windows.
2021-09-15 21:48:11 +02:00
tunip3andTunip3 249e24fbe7 fix issues where provided paths could sometimes contain a double slash, this would cause issues as path formatting was disabled (#12999)
Co-authored-by: Tunip3 <[email protected]>
2021-09-15 21:44:58 +02:00
MrHuu 70376abe1b (3DS) Add unique ID's (#12996)
add gearboy
add gearcoleco
add gearsystem
2021-09-15 20:21:12 +02:00
jdgleaver 5b13047623 Add 'Picoscale_256x-320x240' video filter (#12997) 2021-09-15 20:20:56 +02:00
gblues 78858a9474 Fix analog inputs on HID devices (#12991)
== DETAILS

File this one under "I'm not sure how this ever worked."

I mean, it did (in 1.8.8). I'm not sure what changed, but ultimately what I did was
a bunch of comparative testing against 1.8.8:

- I confirmed the packet data was still being read successfully
- I confirmed that the axis value being passed into pad->get_axis() had
  not changed
- I confirmed the work done in `gamepad_read_axis_data()` was working the same
  between 1.8.8 and master

With the only difference between 1.8.8 and current being the return value from
`gamepad_read_axis_data()`, I just rewrote the method to work properly, and
also fixed up the default axis mapping.

I tested this with a sixaxis controller and GCA, configuring the analog-to-digital
control override to use the right stick.
2021-09-15 03:30:05 +02:00
MajorPainTheCactus 0e9f246b30 Fixed d3d9 mvp matrix issue (#12984) 2021-09-15 01:17:56 +02:00
jdgleaver 516dcb34d9 (Audio Mixer) Pad sample buffers to prevent potential heap-buffer-overflows when resampling (fixes crash when using 30 kHz menu audio files) (#12987) 2021-09-15 01:17:45 +02:00
twinaphex 868a4bf3fc Fix some warnings; set gfx_white_texture to 0 in deinit function at the
end
2021-09-13 20:52:57 +02:00
twinaphex 90775e7306 Silence warnings/errors 2021-09-13 20:30:22 +02:00
twinaphex 5e4ce74000 Get rid of duplicate code in gfx_widgets -
gfx_display_get_widget_dpi_scale made redundant
2021-09-13 20:21:36 +02:00
twinaphex 490233f3c5 wite_texture is now a static global variable inside gfx_display.c
- no longer referenced outside
2021-09-13 19:55:53 +02:00
twinaphex fe14274b96 Get rid of referencing of gfx_display_white_texture outside 2021-09-13 19:20:43 +02:00
twinaphex fc4d4c53cd Cleanup some references to gfx_display_white_texture and
don't assume NULL == 0 for uintptr_t
2021-09-13 19:07:09 +02:00
twinaphex 3c69a941da Move code over to input_driver.c 2021-09-13 18:33:53 +02:00
twinaphex 2b08ebb677 Cleanups 2021-09-13 18:09:44 +02:00
jdgleaver 12f787547c Add workaround to fix keyboard input when using x11+udev (#12981) 2021-09-13 18:02:40 +02:00
MajorPainTheCactusandtwinaphex 3c6bdfd0d8 Fixed numerous issues with HDR (#12979)
* Fix for warning and fix for incorrect comment

* Fixed contrast to be more correct - now scales from 0-10 linearly and behaves more the way you'd expect it to - changed name to ditch legacy settings users may have
Added ability to skip inverse tonemapper to the shader via the constant buffer using 'inverse_tonemap' - set to 0.0f to skip
Fixed potential bug when swapping between hdr and sdr and the bit depth not being set correctly
Fixed dx11's blend, rasterizer and topology states not being set to the sames when using hdr and leaving the menu - caused issues with PCSX2's Shadow of the Colossus
Added numerous helper functions to help create the correct values to colour the UI - normally the white UI elements should be rendered at paper white not max brightness for various reasons

* Fix stylistic issues - * Don't use camelcase for variables and function names * Use '(void)' for function declarations instead of () in C code * Declare variables at the top of a function or code block * Make sure functions that return a value always have a default return path that is not encapsulated by an else block * Use more unique names for retro_math functions which are less likely to overlap with other libraries' function symbols

Co-authored-by: twinaphex <[email protected]>
2021-09-13 16:54:50 +02:00
Autechre e24440d4a9 Merge pull request #12976 from grant2258/mouse_index
this function is called more than once dont use static
2021-09-13 11:44:28 +02:00
Autechre ed6f33b173 Merge pull request #12978 from 3rd-fork/master
Fix issues when opening file with extra long path name
2021-09-13 00:00:03 +02:00
grant2258 88b15c1b1d this function is called more than once dont use static 2021-09-12 20:58:49 +01:00
Tunip3 2991e82575 fix issue where it would fail to get a handle for a file as the path was too long 2021-09-12 20:26:09 +01:00
twinaphex ad4b51b903 Move cde from retroarch.c to input_driver.c 2021-09-12 19:27:12 +02:00
twinaphex b5138b6122 Move input_config_get_bind_string to input_driver.c 2021-09-12 17:41:00 +02:00
twinaphex ad39b1d115 Simplify osk_update_last_codepoint() 2021-09-12 17:36:22 +02:00
twinaphex 3d303a63df (Ozone) Reduce rotate_z calls 2021-09-12 17:14:03 +02:00
twinaphex c3cd3b34b0 (XMB) Reduce amount of times we call blend_begin/blend_end and
rotate_z
2021-09-12 17:06:59 +02:00
twinaphex 26b9439dbc C89_BUILD buildfix 2021-09-12 16:50:46 +02:00
Autechre cfcd0a7a0d Merge pull request #12795 from sonninnos/video-rate-switch
Automatic PAL/NTSC refresh rate switch where available
2021-09-12 16:15:04 +02:00
twinaphex 1b8d68c6e4 Another buildfix 2021-09-11 18:36:12 +02:00
twinaphex c4cbcb2ff4 Add ifdef around this 2021-09-11 18:22:07 +02:00
twinaphex 2490f6e215 Move code from retroarch.c to video_shader_parse.c 2021-09-11 18:15:35 +02:00
twinaphex f09be107c6 Cleanup some extra ifdefs 2021-09-11 17:56:44 +02:00
Autechre 589c72d9a8 Merge pull request #12966 from IlDucci/doublebeforefix
Fixing a typo at MENU_ENUM_SUBLABEL_MANUAL_CONTENT_SCAN_VALIDATE_ENTRIES
2021-09-11 12:57:25 +02:00
IlDucci 08f75ab195 Fixing a typo at MENU_ENUM_SUBLABEL_MANUAL_CONTENT_SCAN_VALIDATE_ENTRIES 2021-09-10 17:11:55 +02:00
Autechre dcf77c4d1e Merge pull request #12821 from markwkidd/config_h
standardize include paths for config.h
2021-09-10 16:59:15 +02:00
Autechre 27bd9868d7 Merge pull request #12963 from jdgleaver/playlist-refresh
(Playlist Manager) Add 'Refresh Playlist' option
2021-09-09 18:44:42 +02:00
Autechre f34c8865ee Merge pull request #12815 from markwkidd/vscode-fix
[VS Code IDE] set .h file association and add vscode configuration to gitignore
2021-09-09 18:44:09 +02:00
Autechre 84174598a4 Merge pull request #12858 from sonninnos/authors-script
Update AUTHORS.h and script
2021-09-09 18:35:26 +02:00
twinaphex c75bb549e5 Move another function over to menu_driver.c 2021-09-09 17:26:59 +02:00
twinaphex 4830150d22 Move function out of retroarch.c and into menu_driver.c 2021-09-09 17:21:48 +02:00
jdgleaver 6da778b934 (Playlist Manager) Add 'Refresh Playlist' option 2021-09-09 16:18:26 +01:00
twinaphex 8564b4f8e3 Fix compilation problem when HAVE_BSV_MOVIE is not defined 2021-09-09 16:58:52 +02:00
twinaphex 6a310ecfed Move more code to command.c 2021-09-09 16:55:14 +02:00
twinaphex 14cd338b97 Move code from retroarch.c to command.c 2021-09-09 16:31:35 +02:00
twinaphex 9b8145f05d Cleanups 2021-09-09 16:06:57 +02:00
twinaphex a11b1c3b72 (retroarch.c) Cleanups 2021-09-09 16:01:33 +02:00
twinaphex 772282eeec Move menu shader code over to menu_driver.c 2021-09-09 15:33:17 +02:00
twinaphex 28389d30e8 Move some code from retroarch.c over to menu_driver.c 2021-09-09 15:22:12 +02:00
twinaphex 6c79cebc6e Move input_overlay_auto_rotate_ out of retroarch.c and into
input_driver.c
2021-09-09 14:24:42 +02:00
twinaphex 81e7dab159 Move code out of retroarch.c and into input_driver.c 2021-09-09 14:11:46 +02:00
Autechre 49cce025c7 Merge pull request #12952 from DisasterMo/rumble
Rebase 'Add generic rumble gain to input settings' by davidgfnet
2021-09-09 13:52:00 +02:00
Autechre ace9267c7b Merge pull request #12960 from Jamiras/cheevos_cfg_overrides
(cheevos) don't write achievement credentials to overrides
2021-09-09 09:32:56 +02:00
Michael Burgardt 303d17e2e6 Rebase 'Add generic rumble gain to input settings' by davidgfnet 2021-09-08 19:52:32 +02:00
Jamiras f0a3ee6003 don't write achievement credentials to overrides 2021-09-08 11:34:19 -06:00
Jamiras 8a31b732dd disable slowmotion when enabling hardcore mode (#12958) 2021-09-08 18:57:19 +02:00
Tony 51b365b5e3 New regular widget message appearance (#12851) 2021-09-08 18:14:41 +02:00
bulzipke 8018be5c9b Fix ram states to file when core deinit (#12956)
* Fix ram states to file when core deinit

* Fix unterminated state_path
Call CMD_EVENT_RAM_STATE_TO_FILE when CMD_EVENT_UNLOAD_CORE too
2021-09-08 18:01:07 +02:00
twinaphex c9e587a5a7 Move more input code over to input_driver.c from retroarch.c 2021-09-07 14:55:37 +02:00
twinaphex ccbbf45760 retroarch.c - cleanups 2021-09-07 13:55:42 +02:00
twinaphex 276b4fd72c Move more code over from retroarch.c to input_driver.c 2021-09-07 13:08:31 +02:00
twinaphex 67defbcf26 Transfer code over from retroarch.c to input_driver.c 2021-09-07 12:42:03 +02:00
twinaphex 5b1872f6be retroarch.c - some cleanups - retroarch_set_frame_limit - return
value - other cleanups
2021-09-07 12:29:44 +02:00
twinaphex 10782f9abc Cleanups - move code over to menu_driver.c 2021-09-07 11:55:12 +02:00
twinaphex 3a78b46862 Move code to input_driver.c 2021-09-07 10:17:06 +02:00
twinaphex 138afafbb3 generic_menu_entry_action - cleanup 2021-09-07 08:35:27 +02:00
twinaphex 71067d8873 Preinitialize varaibles in video_driver_translate_coord_viewport 2021-09-07 08:11:32 +02:00
twinaphex a0856c9847 Move another function to menu_driver.c 2021-09-07 07:14:27 +02:00
twinaphex 722166cb15 Move functions from retroarch.c to input_driver.c 2021-09-07 07:11:42 +02:00
twinaphex 7c665702a8 Move input_driver_toggle_button_combo to input_driver.c 2021-09-07 06:50:18 +02:00
jdgleaver 1151504fa9 (OpenDingux Beta) Disable OpenAL + minor compilation flag optimisation (#12948) 2021-09-06 16:11:44 +02:00
tunip3andTunip3 5ae7bc2ce2 use findfirst file and manually get all items in a dir to reduce errors and increase access (#12947)
Co-authored-by: Tunip3 <[email protected]>
2021-09-06 14:27:49 +02:00
MrHuu 07600392df (3DS) Add bottom screen idle state (#12942) 2021-09-06 01:16:16 +02:00
MajorPainTheCactus 0ac542f1db Fix for warning and fix for incorrect comment (#12944) 2021-09-06 01:16:01 +02:00
Autechre 36888612eb Reduce gfx_display_rotate_z calls in menu drivers (#12937)
* (Ozone) Take out gfx_display_rotate_z out of ozone_draw_icon -
lots of matrix rotates and multiplies were happening when
just calling it once would suffice

* (MaterialUI) Reduce calls to gfx_display_rotate_z

* (XMB) Cleanup
2021-09-05 03:46:52 +02:00
twinaphex f597138827 Cleanups 2021-09-04 21:40:37 +02:00
twinaphex 623e09dc47 Fix wording 2021-09-04 21:38:33 +02:00
twinaphex b05a0d5aed * Enable HDR for WinRT/UWP (only works on PC UWP for now, won't work on Xbox yet swapchain
issues with both D3D11/12)
* Add sublabel for Expand Gamut
*
2021-09-04 21:36:48 +02:00
MajorPainTheCactusandAutechre 536d18778b Fixed up HDR for UWP/WinRT builds (#12936)
Fixed D3D11 validation warnings
Fixed up technically incorrect labels

Co-authored-by: Autechre <[email protected]>
2021-09-04 21:13:24 +02:00
twinaphex 28d1788e1e (HDR) Add sublabels 2021-09-04 19:59:16 +02:00
Víctor "IlDucci 017f9f8939 Fetch translations from Crowdin 04-Sep-2021 (#12934) 2021-09-04 17:43:20 +02:00
Víctor "IlDucci 916ebb98e7 Fixing a couple of minor typos related to the HDR PR. (#12935) 2021-09-04 17:43:11 +02:00
twinaphex 85c0607696 Add to CHANGES.md 2021-09-04 10:32:43 +02:00
twinaphex 43838dc4ea Bump version 2021-09-04 10:30:46 +02:00
twinaphex f905012376 Simplify float_to_s16/s16_to_float functions for ARM NEON ASM codepath 2021-09-04 00:39:49 +02:00
twinaphex 6d1c0e96a3 Simplify sinc NEON code 2021-09-04 00:35:45 +02:00
Autechre 9a5f4602cc Add intrinsic NEON versions for float_to_s16/s16_to_float (#12933)
* Add intrinsic NEON versions for float_to_s16/s16_to_float courtesy
of davidgfnet

* Define -DDONT_WANT_ARM_OPTIMIZATIONS for resampler sinc - this should
default to intrinsic versions

* Default to ARM NEON intrinsic codepath and make the ASM codepaths
optional by defining HAVE_ARM_NEON_ASM_OPTIMIZATIONS

* (Pkg/apple/Android) Take out ASM files being compiled in
2021-09-04 00:25:21 +02:00
twinaphex 19f4504943 Prevent collision with quasi88 in statically linked cores 2021-09-03 21:29:38 +02:00
bulzipke 8adc24ecbc (3DS) Add bottom screen menu (#12470)
* (3DS) Add bottom screen menu
 -> User can save/load state on botom screen with thumbnail.
 -> Call a save_state_to_file() when RAM state has data to write a disk.
 -> If the bottom screen needs updating, swap the bottom framebuffers.

Add: SAVE/LODE STATE TO RAM
 -> This is useful for devices with slow I/O
 -> 3DS bottom save state use CMD_EVENT_SAVE_STATE_TO_RAM
 -> 3DS bottom load state use CMD_EVENT_LOAD_STATE when RAM state has no data
 -> 3DS bottom load state use CMD_EVENT_LOAD_STATE_FROM_RAM when RAM sate has data

* Rewrite path_get_state to retroarch_get_current_savestate_path

* Fix unterminated state_path
2021-09-03 18:14:03 +02:00
Autechre 51dcad6cb3 Merge pull request #12932 from jdgleaver/cheat-search
Add enhanced search functionality to the 'Cheats' menu
2021-09-03 17:03:58 +02:00
Autechre 204834f88e Merge pull request #12927 from 3rd-fork/master
code clean up and simplification of uwp vfs driver
2021-09-03 17:03:34 +02:00
Autechre e39784189e Merge pull request #12772 from DisasterMo/core_option_translation
New example_translation core options sample
2021-09-03 16:59:42 +02:00
Autechre 87b40b7c57 Merge pull request #12930 from bslenul/master
Update menu toggle combo list in retroarch.cfg
2021-09-03 16:49:13 +02:00
Autechre 588c1305c8 Merge pull request #12931 from jdgleaver/runahead-cheats
Fix cheats when using second instance runahead
2021-09-03 16:48:30 +02:00
jdgleaver 508b0c2ee2 Add enhanced search functionality to the 'Cheats' menu 2021-09-03 14:58:33 +01:00
jdgleaver 743aea1810 Fix cheats when using second instance runahead 2021-09-03 11:27:12 +01:00
bslenul 76f114a9fe Update menu toggle combo list 2021-09-03 12:10:05 +02:00
twinaphex 274638b89e (D3D11) Look at D3D11 feature level - if we are 11.0 or above,
we use Shader Model 5.0 instead of the default SM 4.0 - this fixes
FSR on D3D11 which requires SM5.0
2021-09-03 07:51:44 +02:00
twinaphex b900555494 (D3D11) Add logging after device creation so we can see which
feature level it used
2021-09-03 07:15:53 +02:00
twinaphex a0e4d64c3b menu_bind_state struct definitions need to be moved over to menu_input.h 2021-09-03 06:48:06 +02:00
twinaphex 93dbd746db (Android) Buildfix 2021-09-03 06:31:40 +02:00
Autechre 7b9cbc08d7 Add HDR support for D3D12 (rebased PR from MajorPainTheCactus) (#12917)
* Add HDR support

* Attempt to fix Mingw build and Metal builds

* (D3D12) Fix relative header includes

* Add missing hdr_sm5.hlsl.h

* (d3d12_common.c) Some C89 build fixes

* Fix MSVC build

* - Attempt to fix build on mingw/msys unix with dirty hack
- Fix shader compilation of hdr_sm5.hlsl.h on MSVC/Visual Studio -
the define was seen as an error and was causing the first pipeline
to error out
- Make sure we manually set handle of backBuffer to NULL

* Moving the release of the texture above the freeing of desc.srv_heap
and desc.rtv_heap solves the hard crashes on teardown/setup in RA -
it was crashing hard in d3d12_release_texture before

* Add HAVE_D3D12_HDR ifdef - needs to be disabled for WinRT for now
because of several things that are Windows desktop-specific right now
(GetWindowRect)

* Add dirty GUID hack - should work for both mingw/msys on Windows/Linux
as well as MSVC/Visual Studio (hopefully)

* Change HAVE_D3D12_HDR to HAVE_DXGI_HDR

* Move away from camelcase named variables

* Fix RARCH_ERR logs - they need a newline at the end

* d3d12_check_display_hdr_support - make it return a bool on return
and set d3d12->hdr.support and d3d12->hdr.enable outside of the
function

* (DXGI) Remove D3D12 dependencies from dxgi_check_display_hdr_support and
move it to dxgi_common.c instead

* (DXGI) move d3d12_swapchain_color_space over to dxgi_common.c and
rename it dxgi_swapchain_color_space

* (DXGI) move d3d12_set_hdr_metadata to dxgi_common.c and
rename it dxgi_set_hdr_metadata

* (DXGI) dxgi_check_display_hdr_support - better error handling?

* Fix typo

* Remove video_force_resolution

* (D3D12) Address TODO/FIXME

* (D3D12) Backport
https://github.com/libretro/RetroArch/pull/12916/commits/c1b6c0bff2aa33cde035b43cb31ac7e78ff2a07a
- Fixed resource transition for present when HDR is off
Fixed cel shader displaying all black as blending was enabled when the hdr shader was being applied - turned off blending during this shader

* Move d3d12_hdr_uniform_t to dxgi_common.h and
rename it dxgi_hdr_uniform_t

* (D3D11) Add HDR support

* Add TODO/FIXME notes

* Cache hdr_enable in video_frame_info_t

* Update comment
2021-09-03 06:15:25 +02:00
Tunip3 9228a6f8ab disable cpu model check on xbox as it doesn't work and can even crash the app for some users 2021-09-02 18:21:16 +01:00
Michael Burgardt f6f7d145d2 Add core options translation scripts 2021-09-02 19:07:28 +02:00
twinaphex 868865c388 Include "config.h" before including msg_hash.h - we were
getting a crash at startup of the Qt desktop interface because
we didn't do this
2021-09-02 01:12:24 +02:00
Autechre ad01f5d5b6 Merge pull request #12923 from jdgleaver/mixer-reinit
Ensure than menu sounds are re-enabled when calling CMD_EVENT_AUDIO_REINIT
2021-09-01 19:10:53 +02:00
jdgleaver 48d9df6bb7 Ensure than menu sounds are re-enabled when calling CMD_EVENT_AUDIO_REINIT 2021-09-01 17:59:46 +01:00
Autechre 11b88c748e Merge pull request #12921 from jdgleaver/menu-sounds-fix
Fix menu sounds (audio mixing) when using the 'sinc' resampler with quality lower than 'normal'
2021-09-01 17:57:34 +02:00
jdgleaver 547f04b894 Fix menu sounds (audio mixing) when using the 'sinc' resampler with quality lower than 'normal' 2021-09-01 15:55:58 +01:00
sonninnos 19602d394f Update AUTHORS.h and script 2021-08-31 22:42:31 +03:00
twinaphex 9ea6f15c1d (Ozone) Forgot to add ozone.c file 2021-08-31 18:43:58 +02:00
twinaphex d0d495edc3 Combine all ozone files into one - discussed internally first -
allows us to modify the scope of the global variables from public
to static - also allows for easier refactors amongst
XMB/materialui/Ozone/RGUI later
2021-08-31 18:42:43 +02:00
twinaphex a785bd8d80 Remove HAVE_STRIPES - unfinished and unusable menu driver right
now
2021-08-31 17:50:24 +02:00
Autechre 256713e888 Merge pull request #12914 from libretro/move-code-over-to-menu-driver
Move lots of menu code over to menu/menu_driver.c
2021-08-31 14:20:42 +02:00
twinaphex fb35460c6d Move more code over 2021-08-31 01:47:57 +02:00
twinaphex 5677799faf Move more code over 2021-08-31 01:27:36 +02:00
twinaphex fc4081cd8f Fix some builds 2021-08-31 00:55:46 +02:00
twinaphex 0db409d5b5 Move lots of menu code over to menu/menu_driver.c - moved at least
44Kb of code over
2021-08-31 00:43:04 +02:00
twinaphex 70ebc85b6c Buildfix for targets with no HAVE_OVERLAY defined 2021-08-30 22:58:53 +02:00
twinaphex dbf3e278dd menu_driver_toggle - cleanups 2021-08-30 22:31:30 +02:00
twinaphex 03c54a9854 Cleanup menu_event and nested functions so that we remove p_rarch
dependencies
2021-08-30 21:59:35 +02:00
twinaphex 8460618666 menu_input_get_mouse_hw_state - horiz mouse wheel up/down were inverted 2021-08-30 21:17:08 +02:00
twinaphex c6f2e52d62 Simplify menu_driver_toggle 2021-08-30 21:11:43 +02:00
twinaphex 7e61c7ab32 Optimize menu_input_get_mouse_hw_state 2021-08-30 20:55:27 +02:00
twinaphex b68ace9e3d Simplify several menu poll functions 2021-08-30 20:46:07 +02:00
twinaphex 37aa13bb47 (X11) get_video_mode - make sure parameter does not hide global
variable of the same name
2021-08-30 18:39:02 +02:00
twinaphex e384c2b099 Fix some warnings in retroarch.c - local variables hiding parameter
of the same name, local variable being unused on one platform because
it's only used within an ifdef, etc.
2021-08-30 18:27:55 +02:00
twinaphex 1bafa70837 Simplify config_load_file - get rid of end label 2021-08-30 17:52:50 +02:00
Autechre 2406894329 Merge pull request #12913 from libretro/move-code-over-to-configuration
Move code in retroarch.c over to configuration file
2021-08-30 17:45:50 +02:00
twinaphex 220dfe4dbf Move code in retroarch.c over to configuration file 2021-08-30 16:52:05 +02:00
twinaphex bfc7e824fe Rmeove some obsolete comments 2021-08-30 16:13:47 +02:00
twinaphex 2f14d2e4e2 Move some command functions over from retroarch.c to command.c - the
other ones have some dependencies on static locals in retroarch.c so
can't be easily transferred over for now
2021-08-30 16:08:50 +02:00
Autechre cd126f0236 Merge pull request #12911 from Jamiras/rcheevos102
(cheevos) upgrade to rcheevos 10.2
2021-08-30 05:19:04 +02:00
twinaphex d2283a5237 Use better already existing race guard 'audio_suspended' instead
of 'video_driver_is_switching_mode'
2021-08-30 05:08:09 +02:00
twinaphex d429ecf304 Safer way of avoiding the race condition in
audio_driver_sample/audio_driver_sample_batch - we can check
is_display_mode_switching to see if we're doing a fs/windowed toggle
(full teardown/setup), no audio should be processed at this point in
time
2021-08-30 04:52:28 +02:00
twinaphex d45945cda2 When audio driver write callback function fails, don't
turn audio off completely - look if audio_driver_output_samples_conv_buf
is non-NULL first before we attempt to write audio
2021-08-30 02:13:19 +02:00
twinaphex 943e14051c Increased safety for non-batched audio sample callback - fixes audio_driver_sample crashing in PCSX2 when toggling fullscreen 2021-08-30 01:54:49 +02:00
Autechre 4b6a82a3b0 Merge pull request #12908 from libretro/input-robustness-for-threaded-cores
Input robustness for threaded cores
2021-08-29 23:00:48 +02:00
twinaphex bf2e7b93f0 (Vulkan) Fix Vulkan validation layer - fix thanks to flyinghead -
see comments
2021-08-29 20:39:22 +02:00
twinaphex 24721e6a1d C89 buildfix for MSVC 2021-08-29 20:37:09 +02:00
twinaphex 0a1affba7a Simplify menu_input_get_mouse_hw_state/menu_input_read_mouse_hw 2021-08-29 19:05:38 +02:00
twinaphex a9f1dd3647 input_driver_poll; remove shadowed variable
menu_input_read_mouse_hw - cleanup + go through local pointer
variable for primary_joypad
2021-08-29 18:41:58 +02:00
twinaphex 540d192ecb Buildfix for Apple + make sure primary_joypad/secondary_joypad goes through local pointers; cut down on HAVE_MFI ifdefs in retroarch.c 2021-08-29 18:34:52 +02:00
twinaphex f1f3998d28 Prevent joypad objects being destroyed before their pointers are being
NULLed. Another thread could access a "half destroyed" object before
2021-08-29 18:06:08 +02:00
twinaphex 46fb61bede input_state_wrap - do not attempt to access joypad or sec_joypad
pointers if non-NULL
2021-08-29 16:57:41 +02:00
twinaphex cf7b30481b Get rid of gfx_widgets_draw_icon_blend - was just a duplicate of
gfx_widgets_draw_icon with blend_begin and blend_end wrapped around it
2021-08-29 15:21:40 +02:00
Brian Weiss 30db7d8cd3 upgrade to rcheevos 10.2 2021-08-28 13:58:33 -06:00
Autechre 2474fe3c2e Updating CODING-GUIDELINES - typo fix 2021-08-28 17:24:32 +02:00
twinaphex 5b3e5f5daa Update CODING-GUIDELINES 2021-08-28 17:22:24 +02:00
Autechre 861cb2953a Merge pull request #12902 from 4th-fork/master
set background colour for splash screen to black
2021-08-28 15:12:23 +02:00
Tunip3 6dfe20e247 set background colour for splash screen to black rather than the default light gray 2021-08-28 13:47:57 +01:00
Tunip3 bb0fe6c2d1 fix extraction issues 2021-08-26 23:18:42 +01:00
Tunip3 45a16fab1b clean up retro_vfs_file_open_impl 2021-08-25 23:12:29 +01:00
Tunip3 8396bd599d strip out unneeded uwp specific file io functions 2021-08-25 15:54:09 +01:00
sonninnos b8188baeaf Automatic refresh rate switch where available 2021-08-21 01:15:41 +03:00
Mark W. Kidd 2b3dfeb10c standardize include path for config.h 2021-08-18 18:54:40 -04:00
Mark W. Kidd d87ae5b5d7 set vscode .h association and gitignore its configuration 2021-08-17 20:30:50 -04:00
John Parton 57bd538996 Enable tinyalsa on OpenDingux
Use same #define pattern to make OpenAL default as alsa branch
2021-07-10 19:20:53 -05:00
Aleksey Samoilov 6bc9181bc9 Remove xdg_shell_v6 from wayland_vk 2021-07-10 14:52:16 +04:00
Aleksey Samoilov b153087fa4 Remove xdg-shell-v6 fom Makefile.common 2021-07-10 14:44:04 +04:00
Aleksey Samoilov 146804fcbc Remove xdg_shell_v6 support 2021-07-10 14:22:58 +04:00
662 changed files with 96981 additions and 73012 deletions

No files matched your search

+33
View File
@@ -0,0 +1,33 @@
# Download translations from Crowdin and push to GitHub
name: Crowdin Daily Workflow
on:
schedule:
- cron: '0 0 * * *' # every day at midnight
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Setup Java JDK
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Setup Python
uses: actions/setup-python@v2
- name: Checkout
uses: actions/checkout@v2
- name: Crowdin Sync
shell: bash
env:
CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
run: |
cd intl
python3 -m pip install requests PyYAML
python3 crowdin_sync.py "$CROWDIN_API_KEY"
git config user.name github-actions
git config user.email [email protected]
git add .
git commit -m "Fetch translations from Crowdin"
git push
+26
View File
@@ -0,0 +1,26 @@
# Validates compilation of RetroArch binary
name: RetroArch CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
linux-c89: # Smoketest build using most restrictive compiler and default options
runs-on: ubuntu-latest
steps:
- name: Dependencies
run: |
sudo apt-get update -y
sudo apt-get install build-essential libxkbcommon-dev libx11-xcb-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev nvidia-cg-toolkit nvidia-cg-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm
- name: Checkout
uses: actions/checkout@v2
- name: Configure
run: ./configure
- name: Build
run: make C89_BUILD=1
+3
View File
@@ -225,3 +225,6 @@ param.sfo
*.vpk
/.vs
/deps/SPIRV-Cross/out/build/x64-Debug
# Visual Studio Code
.vscode/
+145 -83
View File
@@ -104,9 +104,10 @@ build-retroarch-windows-msvc10-x64:
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
MSVC_PLATFORM: windows_msvc2010_x64
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
- $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
@@ -114,26 +115,31 @@ build-retroarch-windows-msvc10-x64:
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
- |
$ErrorActionPreference = 'Stop'
# Build RetroArch
bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM"
if ($LastExitCode -ne 0){throw "Failed to build RetroArch"}
mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"}
rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"}
# 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 msvc builds should not have any, but this
# may change in the future)
copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"}
Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore
build-retroarch-windows-msvc10-i686:
tags:
@@ -147,9 +153,10 @@ build-retroarch-windows-msvc10-i686:
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
MSVC_PLATFORM: windows_msvc2010_x86
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
- $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
@@ -157,26 +164,31 @@ build-retroarch-windows-msvc10-i686:
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
- |
$ErrorActionPreference = 'Stop'
# Build RetroArch
bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM"
if ($LastExitCode -ne 0){throw "Failed to build RetroArch"}
mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"}
rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"}
# 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 msvc builds should not have any, but this
# may change in the future)
copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"}
Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore
build-retroarch-windows-msvc05-i686:
tags:
@@ -191,9 +203,10 @@ build-retroarch-windows-msvc05-i686:
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\
MSVC_PLATFORM: windows_msvc2005_x86
before_script:
- $Env:HOME = "."
- $Env:Path += -join(";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
- $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR")
artifacts:
paths:
- retroarch.exe
@@ -201,26 +214,31 @@ build-retroarch-windows-msvc05-i686:
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
- |
$ErrorActionPreference = 'Stop'
# Build RetroArch
bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM"
if ($LastExitCode -ne 0){throw "Failed to build RetroArch"}
mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1"
if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"}
rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico"
if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"}
# 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 msvc builds should not have any, but this
# may change in the future)
copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist"
if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"}
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
@@ -470,6 +488,29 @@ build-retroarch-retrofw-mips32:
- "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-miyoo-arm32:
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
- ${MEDIA_PATH}
expire_in: 10 min
dependencies: []
script:
- "make -j$NUMPROC -f Makefile.miyoo"
- "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/miyoo/20a-retroarch ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg"
build-retroarch-android-normal:
image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest
stage: build
@@ -478,10 +519,15 @@ build-retroarch-android-normal:
- 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/"
script:
- |
set -e
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
@@ -491,10 +537,14 @@ build-retroarch-android-aarch64:
- 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/"
- |
set -e
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
@@ -504,10 +554,14 @@ build-retroarch-android-ra32:
- 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/"
- |
set -e
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
@@ -517,10 +571,14 @@ build-retroarch-android-playstore-normal:
- 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/"
- |
set -e
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
@@ -530,10 +588,14 @@ build-retroarch-android-playstore-plus:
- 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/"
- |
set -e
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
+184 -148
View File
@@ -1,155 +1,191 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceRoot}/libretro-common/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceRoot}/libretro-common/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
]
},
{
"name": "Linux",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include",
"${workspaceRoot}/libretro-common/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
]
},
{
"name": "Linux",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include",
"${workspaceRoot}/libretro-common/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}",
"${workspaceFolder}/libretro-common/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
},
{
"name": "msys2-mingw32",
"includePath": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
"defines": [
"_DEBUG",
"UNICODE"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw64",
"includePath": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17",
"configurationProvider": "ms-vscode.makefile-tools"
},
{
"name": "msys2-mingw32",
"includePath": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Switch",
"includePath": [
"/opt/devkitpro/devkitA64/aarch64-none-elf/include",
"/opt/devkitpro/devkitA64/lib/gcc/aarch64-none-elf/8.3.0/include",
"/opt/devkitpro/libnx/include",
"/opt/devkitpro/portlibs/switch/include",
"/opt/devkitpro/portlibs/switch/include/freetype2",
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"__aarch64__",
"__SWITCH__",
"HAVE_LIBNX"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "/opt/devkitpro/devkitA64/bin/aarch64-none-elf-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw64",
"includePath": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Switch",
"includePath": [
"/opt/devkitpro/devkitA64/aarch64-none-elf/include",
"/opt/devkitpro/devkitA64/lib/gcc/aarch64-none-elf/8.3.0/include",
"/opt/devkitpro/libnx/include",
"/opt/devkitpro/portlibs/switch/include",
"/opt/devkitpro/portlibs/switch/include/freetype2",
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"__aarch64__",
"__SWITCH__",
"HAVE_LIBNX"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "/opt/devkitpro/devkitA64/bin/aarch64-none-elf-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
},
{
"name": "WiiU",
"includePath": [
"/opt/devkitpro/devkitPPC/powerpc-eabi/include",
"/opt/devkitpro/devkitPPC/lib/gcc/powerpc-eabi/6.3.0/include",
"/opt/devkitpro/portlibs/ppc/include",
"${workspaceFolder}/**"
],
"defines": [
"WIIU",
"WIIU_HID"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "/opt/devkitpro/devkitPPC/bin/powerpc-eabi-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
},
{
"name": "ps2sdk-ee",
"includePath": [
"${env:PS2DEV}/ps2sdk/common/include",
"${env:PS2DEV}/ps2sdk/ee/include",
"${env:PS2DEV}/gsKit/include",
"${workspaceFolder}/**"
],
"defines": [
"PS2",
"_EE"
],
"compilerPath": "${env:PS2DEV}/ee/bin/mips64r5900el-ps2-elf-gcc",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
+4 -33
View File
@@ -1,9 +1,9 @@
{
"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
/*"terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe",
"terminal.integrated.env.windows": {
"PATH": "/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:$PATH",
"MSYSTEM": "MINGW64",
},
},*/
"terminal.integrated.cursorBlinking": true,
"editor.tabSize": 3,
"editor.detectIndentation": false,
@@ -11,20 +11,15 @@
"editor.insertSpaces": true,
"editor.formatOnSave": false,
"files.associations": {
"frontend_driver.h": "c",
"*.h": "c",
"*.in": "c",
"*.rh": "c",
"array": "c",
"file_stream.h": "c",
"driver.h": "c",
"iosfwd": "c",
"xlocbuf": "c",
"xmemory0": "c",
"ios": "c",
"list": "c",
"input_driver.h": "c",
"menu_driver.h": "c",
"file_path.h": "c",
"unordered_map": "c",
"unordered_set": "c",
"sstream": "cpp",
@@ -33,39 +28,15 @@
"initializer_list": "c",
"string_view": "c",
"utility": "c",
"menu_input.h": "c",
"tasks_internal.h": "c",
"ozone.h": "c",
"ozone_theme.h": "c",
"ozone_texture.h": "c",
"string_list.h": "c",
"core_info.h": "c",
"thread": "c",
"xlocale": "c",
"gfx_widgets.h": "c",
"message_queue.h": "c",
"task_queue.h": "c",
"fifo_queue.h": "c",
"file_list.h": "c",
"strl.h": "c",
"configuration.h": "c",
"ozone_display.h": "c",
"verbosity.h": "c",
"retroarch.h": "c",
"gfx_animation.h": "c",
"netplay.h": "c",
"scaler.h": "c",
"deque": "c",
"vector": "c",
"xhash": "c",
"xiosbase": "c",
"xstring": "c",
"xtree": "c",
"xutility": "c",
"menu_input_dialog.h": "c",
"ozone_sidebar.h": "c",
"menu_thumbnail_path.h": "c",
"badges.h": "c"
"xutility": "c"
},
"C_Cpp.dimInactiveRegions": false,
}
+175 -40
View File
@@ -3,18 +3,26 @@ RetroArch and the libretro team would like to
acknowledge the following contributors:
1ch (L0sted)
Aaahh Ahh (Aaahh)
51eating (dnjstlr555)
6lackmag3
A Schain (aschain)
Aaron Oneal (aarononeal)
Adam Londero (alondero)
Adam Mechtley (amechtley)
AdrianoML
Adrien Moulin (elyosh)
Aethyrion
ajefr
AKuHAK
Alberto Alonso Ruibal (albertoruibal)
Alberto Simon (asimonf)
Alcaro
Aleksey Samoilov (Sunderland93)
Alessandro Mangone (Vektor) (zevektor)
Alessio Tosto (Rinnegatamante)
Alex Eckhart (alex34567)
Alex Folland (AlexFolland)
Alex Kornitzer (alexkornitzer)
Alexander Spady (alkaseltzerspadt)
Alexandre Garcia (Alexandre-Garcia)
Alfredo Monclus (alfrix)
@@ -23,98 +31,151 @@ alphanu1
altiereslima
Alwin Garside (Yogarine)
Amiga1200Gamer (amigagamer)
amtz
Andre Leiradella (leiradel)
Andrés (fr500)
Andy Nguyen (TheOfficialFloW)
Anthony J. Bentley (bentley)
Antonio Jose Ramos Marquez (psxdev)
AridRayne
ArnaudFaucher
arstn
Arto Vainiolehto (arakerlu)
asavah
Ash (QuarkTheAwesome)
Ashura (CoalaJoe)
Autechre64
Autechre (twinaphex)
Avton1
ayssia
barbudreadmon
Barry Rowe (BarryJRowe)
Bartłomiej Burdukiewicz (dev-0x7C6)
bearoso
benklop
benutzer193
Bernhard Schelling (schellingb)
blackgur
bmaupin
Bobby Smith (bslenul)
Boris Timofeev (btimofeev)
bparker06
Brandon Johnson (Denu8thell)
Brad (SpiralBrad)
Braden Farmer (farmerbb)
Brandon Johnson (BinaryFissionGames)
Breno Dantas Mendonça (brenodantas10)
Brian Hoem (ZornTaov)
Brian Koropoff (bkoropoff)
Brian S. Stephan (bsstephan)
BringerethOfLight
Brunnis
bsmith (DogParty)
bubuleur
bulzipke
C.W. Betts (MaddTheSane)
Casey Borders (CaseyB)
CatGreen90
ceb33
celerizer
Charlène (julianaito)
CheezeCake
Chris Merrett (chrisfu)
Christian Murphy (grimpunch)
christianhaitian
Christoffer Tibell (Brottweiler)
chu (9chu)
Chuck Smith (chucksmith)
CidVonHighwind
clienthax
cold-brewed
CompCom
ComradeEcho
confusedguy9
Conn O'Griofa (psyke83)
Connor McLaughlin (stenzek)
Conrad Kreyling (konistehrad)
CozmoP
Cpasjuste
cpsw
Cray Elliott (MP2E)
Crestwave
CrewMdk
Cristi Mitrana (cmitu)
Cristian Sandu (crazyquark)
ctult
crystalct
CTCaer
cucholix
cudencuden
cxd4
Cyan (44100hertz)
Daehan Kim (iAmGhost)
dalter
Dan Weiss (Dwedit)
danieljg
Daniil Zhilin (LaserMoai)
dankcushions
Darren Thompson (DiscoStarslayer)
Dave (freakdave)
Dave Leaver (danzel)
David CARLIER (devnexen)
David Demelier (markand)
David Erickson (daviderickson)
David Shah (daveshah1)
David G. F. (davidgfnet)
David Lawson (dmrlawson)
David Walters (hiddenasbestos)
DEX357
diablodiab
dibas
Diego A. (SuperrSonic)
Diego Viola (diegoviola)
digitalisland-nino
Diogo Barros (BlueKore)
DogParty
Dmitry Sergeenkov (DuMOHsmol)
dor3k
Doug Christman (dobyrch)
driver1998
Dudu Akiva (duduke)
duganchen
dukemiller
duskgao
Dylan Scott (dyscott)
eadmaster
Eduard Strehlau (Herdinger)
ekipan
Elvira Khabirova (parport0)
embercold
Emmanuel Martin (daliaetnano)
endrift
erbridge
Ethan Lee (flibitijibibo)
Exvat
extrowerk
Ezio-PS
F (erbridge)
Fabio (Oibaf66)
Fabio Ritrovato (Sephiroth87)
Fayne Aldan (FayneAldan)
fff (felinben)
FIX94
Flame Sage (chris062689)
flyinghead
FmT0
francescotintori
Francisco Javier Trujillo Mata (fjtrujy)
Francisco José García García (frangarcj)
FreeShippingParty
fuzzydunlops732 (JKoppel93)
Gabriel (Ghabry)
GameDragon2k
Garrett Brown (garbear)
gatecat (daveshah1)
GavinDarkglider
gblues
Geoffrey Plitt (GeoffreyPlitt)
Glenn Hevey (hevey)
Googer
gordon-fish
gouchi
grant2258
Gregor Richards (GregorR)
Grzegorz Raciborski (graciborski)
Gui Andrade (archshift)
Guillaume Thiolliere (thiolliere)
Guo Yunhe (guoyunhe)
Gustavo Maciel Dias Vieira (gmdvieira)
gvbr
H. İbrahim Güngör (igungor)
@@ -122,44 +183,61 @@ hadess
Hans-Kristian Arntzen (Themaister)
Henri Gomez (hgomez)
Henri Gomez (hgomez-sonarsource)
Higor Eurípedes (heuripedes)
Hisman Yosika (dnjstlr555)
Henry Castro (hcvcastro)
Higor E. (heuripedes)
hizzlekizzle
Hugo B. (hug0b)
Hugo Hromic (hhromic)
hunterk
hyarsan
Hyllian
HyperspaceMadness
i30817
iAmGhost
im4potato
ImJezze
Jack (jakcron)
Jacob (cubtekki)
Jacob Patterson (jacobpa)
jacobsson (Roet-Ivar)
Jake Stine (jstine35)
James Le Cuirot (chewi)
James Sexton (Bezier89)
Jamiras
Jan Holthuis (Holzhaus)
Jason Tomsic (plaidman)
Javier Martinez Canillas (martinezjavier)
Jay McCarthy (jeapostrophe)
jdgleaver
Jean-André Santoni (kivutar)
Jean-Paul Mari (djipi)
Jean-Sébastien Guay (Skylark13)
Jesse Bryan (winneon)
Jeff (jeffbdavenport)
Jeff Sousa (LordeIlluminati)
jess (winneon)
Joan Coll Cerdán (johanbcn)
Job Adrian Salinas Gonzalez (efylan)
Joe Osborn (JoeOsborn)
Joel (joel16)
Joerg Sonnenberger (jsonn)
Johannes Schickel (lordhoto)
John Parton (john-parton)
John Regan (jprjr)
Jon Maddox (maddox)
Jonathan (JonnyMe)
Jonathan Relf (jonathanrelf)
Joohan Lee (losernator)
Jools Wills (joolswills)
Jose Lage Miguez (Joselagem)
Joseph Carter (iKarith)
Joseph Conan Montgomery (Grotke)
Josh Palmer (ShiftyAxel)
jsd1982 (JamesDunne)
JuanVCS
Justin Jacobs (dorkster)
Justin Weiss (justinweiss)
JustMeDaFaq
Karl Forshaw (karlforshaw)
Keith Bowes (keithbowes)
Ken Rossato (rossato)
Kopert
krzys_h (krzys-h)
kurumushi
kwyxz
@@ -167,10 +245,12 @@ l3iggs
lambolighting
lasers
Lawrence Kesteloot (lkesteloot)
lifajucejo
liffy (lifning)
LazyBumHorse
LazyFunker
Lennard Kittner (Lennard599)
Lionel Flandrin (simias)
littleguy77
liushuyu
Logan (loganmc10)
lordashram
Lothar Serra Mari (lotharsm)
@@ -178,51 +258,63 @@ Lubosz Sarnecki (lubosz)
lucianposton
lxerandrew
m4xw
mahoneyt944
Mahyar Koshkouei (deltabeard)
Mai M. (lioncash)
maksun
Manuel Alfayate Corchete (vanfanel)
Marcelo Munhoz Pélos (mpelos)
Marcus Crisostomo (mcrisostomo)
markwkidd
Maschell
Mat M. (lioncash)
Mats A. (Datamats)
Mats (m4tsa)
Matt Sephton (gingerbeardman)
Matthew Bauer (matthewbauer)
Matthew Wang (asakous)
Max K. (langerhans)
Maxime Gauduin (alucryd)
mcrisostomo
meancoot
meepingsnesroms
meleu
Merry Mello (merryMellody)
micechal
Michael Burgardt (DisasterMo)
Michael K. (kuxii2016)
Michael Lelli (ToadKing)
Michał Durak (micechal)
mickski56
Mico Chopitea (micochops)
miguelpinheiro
Mike Swanson (chungy)
miqlas (extrowerk)
mikeOSX
minucce
misson20000
Monroe88
Morgane (Niouby)
mprobinson
MrHuu
MrJs (mrjschulte)
mudlord
Muhamed Hobi (mmhobi7)
muzuiget
mwtremblay
myfreeweb
Nargash
Nathan S. (natinusala)
NathanStrong-Tripwire
nattycleopatra
nayslayer
Nephilim
negativeExponent
Neil Barkhina (nbarkhina)
Nephilim (Nephil1m)
netux79
nfnty
nia (ensra)
nia (alarixnia)
Nicolas Adenis-Lamarre (nadenislamarre)
Nicolas Guillaumin (nguillaumin)
Nicolas Lopez Fernandez (pyroesp)
Nikita Vakhrushev (SwooodGa)
Nicolas Roehm (NicolasRoehm)
Nikita Vakhrushev (XF10C)
Nikola Kocić (nikola-kocic)
Niouby
Nikos Chantziaras (realnc)
Nils Hasenbanck (hasenbanck)
njordan64
nosh01
not6 (r-type)
notaz
@@ -231,51 +323,77 @@ nurupo
Oggom
Oleg Shevchenko (olsh)
opendata26
Ophidon
orbea
Oschowa
OsirizX
OV2
Palmic (mpalomas)
pamapa
Paolo Bonzini (bonzini)
Paul McCarty (notabeatle)
pcjco
Pedro Ferraz (ferrazpedro)
Pedro Ribeiro (pedrib)
pinumbernumber
pjft
pponso1
pyroesp
R-YaTian
Ramiro Morales (ramiro)
Raphaël Zumer (rzumer)
retro-wertz
Reid Kleckner (rnk)
repojohnray
retrotails
revvv
reztek
Richard Howell (rmaz)
rlnilsen
Rob Loach (RobLoach)
Robin de Rooij (rrooij)
Romain Gay (vikbez)
Romain Graillot (notnotme)
Romain TISSERAND (rtissera)
Roman Fomin (rfomin)
Roman Kalashnikov (lunixoid)
Royerson
rrooij
rsn8887
Ryan C. Gordon (icculus)
Ryunam
rz5
Saggi Mizrahi (ficoos)
SAKUJ0
Sam Pagenkopf (44100hertz)
Sam Lantinga (slouken)
Sam Stenvall (Jalle19)
Samuel P. (p-sam)
Sanaki
Scheiker
Sebastien Ronsse (sronsse)
SecularSteve
Sefa Eyeoglu (Scrumplex)
Sergei Nikitin (Kert)
Sergi Granell (xerpi)
Sergio Padrino (sergiou87)
sergio-br2 (sergiobenrocha2)
Seth Kingsley (sethk)
Shadow (ShadowOne333)
Shane Mouton (ismouton)
shantigilbert
Shfty
Shizeeg Unadequatov (shizeeg)
SimpleTease
SindenLightgun
Sirrempat
slotek
Soar Qin (soarqin)
sparklewind
spec-chum
Stefan (gizmo98)
stefan-gr
stellarporter
Steven M. Vascellaro (stevoisiak)
Stephanie Gawroriski (XerTheSquirrel)
Stevoisiak
stoofin
Stuart Carnie (stuartcarnie)
Sunguk Lee (d3m3vilurr)
Supernature2k
@@ -283,39 +401,56 @@ Sven (RetroSven)
Swingflip
Swizzy
Sylvain Colinet (Skarsnik)
Szunti
Tadek Kijkowski (monkeyman79)
Tatsuya79
Terry Lewis (terry-au)
thedax
theheroGAC
TheMrIron2
TheOfficialFloW
thiolliere
ThePhxRises
Thomas Lorblanchès (Zlika)
Tim Van den Langenbergh (tmtvl)
Tobias Gruetzmacher (TobiX)
Tobias Jakobi (tobiasjakobi)
Todd Laney (ToddLa)
Tomáš Kelemen (ToKe79)
Tony (sonninnos)
Tor Arne Vestbø (torarnv)
Torsten Paul (t-paul)
toshixm
TotalCaesar659
TroggleMonkey
Twinaphex
tunip3
Tyler Loch (TylerLoch)
unrelentingtech
URBANsUNITED
Valerio Proietti (kamicane)
vgmoose
Vicki Pfau (endrift)
Vicky C Lau (vickychenglau)
vin (suseme)
Vladimir Panteleev (CyberShadow)
Vladimir Serbinenko (phcoder)
Víctor "IlDucci" (IlDucci)
waitingmoon
Wang Vincent (susemm)
webgeek1234
Weedy Weed Smoker (WeedyWeedSmoker)
WerWolv
whorsemaster
Wiimpathy
Wiktor Strzębała (wiktorek140)
Woohyun Shin (sinusinu)
xenomorph-us
xhp-creations
Yari (hyarsan)
yesfish (huwpascoe)
Yongwoon Cho (ssangkong)
yoshisuga
Zer0xFF
zeromus
zlice
Zoran Vuckovic (casdevel)
Érico Nogueira Rolim (ericonr)
Ömercan Kömür (fpscan)
シーはディー四を取る (cxd4)
)";
+162
View File
@@ -1,5 +1,167 @@
# Future
# 1.9.14
- ANDROID/PLAYSTORE: Implement MANAGE_EXTERNAL_STORAGE permission
- ANDROID/PLAYSTORE: Bump up SDK level to 30 to comply with Play Store policies
- AUDIO/MIXER: Increase sample buffer padding
- CHEEVOS: Disallow achievements when spectating netplay
- CHEEVOS: Fix need-to-activate achievement logic for non-hardcore
- CHEEVOS: Don't queue rewind re-init if already on main thread
- CHEEVOS: Ignore unofficial achievements unless setting is enabled
- CHEEVOS: Use SSL host when available
- CHEEVOS: Validate hashes for secondary discs in multi-disc games
- CHEEVOS: Ensure placard is initialized on main thread when game has no achievements
- CHEEVOS: Audit achievement settings defaults and visibility
- CHEEVOS: Show error message when no password provided
- CHEEVOS: Use widget for game loaded achievement progress
- CONFIG: Honor config_save_on_exit when Reboot/Shutdown is called
- DISK CONTROL: Focus on current content entry in Disk Control append/insert
- FRAMEDELAY: Auto Frame Delay Improvements - swap interval handling, D3DX handling, and delay target resets also on core restart. It should now work with high refresh rates and also with Direct3D 10/11/12 drivers
- INPUT/GYRO/ACCELEROMETER/ANDROID: Re-enable Gyroscope & Accelerometer when RetroArch resumes or regains focus
- INPUT/HID: Fix gamepad disconnect on unrecognized HID device
- LAKKA: Patch to fix keyboard typing
- LAKKA: CD-ROM eject menu item
- LAKKA/BLUETOOTH: Add option to remove pairing
- LAKKA/SWITCH: Disable rumble gain
- LAKKA/SWITCH: Disable cpu scaling, uses its own CPU governor
- LOGGING: Logging cleanups. A bunch of unifications and reformattings (capitalizations, dots, quotes, prefixes etc). Also added a few missing things, such as Run-Ahead error logging and LED interface init logging when it is enabled.
- NETPLAY: Networking - should not print country for a local lobby
- NETPLAY: Added setting to allow/disallow players other than the host from pausing the game.
- NETPLAY: Added a sublabel for netplay max connections.
- NETPLAY: Fixed port override macro from not being set immediately after the port setting.
- NETPLAY: Show passworded rooms on lobby
- NETWORK: Make HTTP header parsing case insensitive
- NETWORK/UPNP: Fixed memory leaks
- NETWORK/UPNP: Added a task_queue_wait to prevent executing two nat tasks at once, so it's also thread safe now
- NETWORK/UPNP: Switch to a permanent lease time, but request it to be removed when we do netplay_free. Switch to a permanent lease time, but request it to be removed when we do netplay_free.
- NETWORK/UPNP: Only use a single interface for UPnP, return on the first one found instead of iterating over all of them and opening them one by one
- OVERLAYS: Revert changes
- RETROFW: Add OSS audio
- VIDEO/ROTATION: Always return false if rotation can't occur. RETRO_ENVIRONMENT_SET_ROTATION should return false when rotation has been forcefully disabled in frontend, that way the core can decide if aspect ratio should be rotated or not for vertical games. Useful for FBNeo for instance.
- VULKAN: Avoid hard crash when capturing screenshot in emulating mailbox.
- WIIU: Make wiiu_gfx_load_texture code safer
- WIIU: Fix keyboard support.
# 1.9.13
- CHEEVOS/MSVC2010: Add Cheevos support
- CRT/SWITCHRES: Fixes some issue where scaling is incorrect in some video modes for CRT output.
- FRAMEDELAY: Add 'Automatic Frame Delay' option
- INPUT: Add 'All users control the menu' setting - any gamepad can control the menu when this is enabled. Only limitation right now is that only player 1 can toggle the menu, but any set Menu Toggle Controller Combo will work fine for all users, so this should be acceptable for now
- INPUT/UDEV: Fix Dolphin bar and safeguard against not adding devices with no mouse or touch buttons detected
- NETPLAY/CLI: -C/--connect commandline fix
- NETPLAY: Other improvements
- NETPLAY: Remove forced disconnection on unknown netplay command -
will be backwards compatible with any version that removed this
disconnect. instead of disconnecting, we just read the data and
ignore, like most network implementations do
- TASKS/CHEEVOS: Replace coroutines with tasks/thread
- TASKS/DATABASE/EXPLORE: Initialise 'Explore' menu on a background thread - no more stall when hovering over the Explore tab
# 1.9.12
- 3DS: Ensure parallax barrier is disabled when '3DS Display Mode' is '2D'
- COMMAND: Command interface should work again
- INPUT/HID: Rewrote the HID deregistration algorithm; it should no longer cause issues when dealing with multiple pads of the same HID/VID combo
- INPUT/HID: Fix initialization bug that caused wiimotes to fail to register without an accessory attached
- INPUT/HID: Fix Wiimote regression
- INPUT/HID/MAC: Get Sony Sixaxis (DualShock 3) working on MacOS
- INPUT/UDEV: Add extra abs check for dolphinbar
- INPUT/UDEV: Add relative left mouse button when pointer device is not abs
- INPUT/WAYLAND: Fix keyboard input on Wayland - fixes 'Certain cores ignore user input'
- NETPLAY: Improvements from Cthulhu
- OPENDINGUX: Fix HAS_ANALOG/HAS_MENU_TOGGLE defines in sdl_dingux joypad driver
- LIBRETRO: Enable SRAM for contentless cores
- LIBRETRO: Add environment callback to get the rate retro_run is called - GET_THROTTLE_STATE and RETRO_THROTTLE_UNBLOCKED environment callback
- LINUX: Update metadata manifest
- MENU/OZONE: New themes - Solarized Light, Solarized Dark
- WINDOWS/WIN9X: Fix non-ASCII text display in window title
# 1.9.11
- ANDROID: New launcher logo - will fill the corners on the homescreen
- D3D9: Driver works again (RGUI only and software rendered cores work, no shader support yet)
- HID/MAC: WiiU GameCube Adapter now works
- HID/WIIU: WiiU and general HID subsystem unified/merged
- INPUT: Refactor menu toggle combo button logic to allow quit combo button
- INPUT/UDEV: Add mouse relative check and set appropriately to fix issue
- LIBNX/SWITCH: Splitted Joycon button mapping
- LIBRETRO: Add environment callback to enable cores to notify the frontend that a core otion value has changed
- MIYOO: Add initial port
- OPENDINGUX/RG350: Enable tinyalsa for the RG350
- PS2: Add 'Change Resolution' option
- PS2: Add option to change video windows offsets
- STEAM/LINUX: Move to new 'soldier' runtime
- WAYLAND: Remove xdg-shell-v6 protocol
- WINDOWS: Fix non-ASCII text display in window title
- WINDOWS 11: Shows Windows 11 version name now (Information -> System Information)
- UWP: Further improvements to WinRT VFS layer
# 1.9.10
- 3DS: Add bottom screen idle state
- 3DS: Add unique IDs for Gearboy/Gearcoleco/Gearsystem, correct CAP32 code
- 3DS/SAVESTATES: Fix RAM states to file when core deinits
- AUDIO/MIXER: Pad sample buffers to prevent potential heap-buffer-overflows when resampling (fixes crash when using 30 kHz menu audio files)
- AUDIO/LINUX/SNAP: Add JACK support
- CHEEVOS: Don't write achievement credentials to overrides
- CHEEVOS: Disable slowmotion when enabling hardcore mode
- D3D9: Fixed MVP matrix issue for RGUI texture (main game frame still won't show up though)
- D3D11/D3D12/HDR: Fixed contrast to be more correct - now scales from 0-10 linearly and behaves more the way you'd expect it to - changed name to ditch legacy settings users may have
- D3D11/HDR: Fixed D3D11's blend, rasterizer and topology states not being set to the sames when using HDR and leaving the menu - caused issues with PCSX2's Shadow of the Colossus
- D3D11/D3D12/HDR: Added ability to skip inverse tonemapper to the shader via the constant buffer using 'inverse_tonemap' - set to 0.0f to skip
- D3D11/D3D12/HDR: Fixed potential bug when swapping between hdr and sdr and the bit depth not being set correctly
- D3D11/D3D12/HDR: Added numerous helper functions to help create the correct values to colour the UI - normally the white UI elements should be rendered at paper white not max brightness for various reasons
- BUGFIX/ANDROID: Fix crash that could happen on Android with Sameboy core - would crash on rumble function
- GFX/WIDGETS: New regular widget message appearance
- INPUT/MOUSE: Add distinct mouse zero index label for drivers that do not support multimouse
- INPUT/RUMBLE: Add generic rumble gain to input settings
- INPUT/UDEV/X11: Add workaround to fix keyboard input when using X11 + Udev
- LIBNX/SWITCH: Add Video Filters support
- LOCALIZATION: Fetch translations from Crowdin
- OPENDINGUX/BETA: Disable OpenAL
- PLAYLISTS: Add 'Refresh Playlist' option
- STEAM: Initial release on Steam
- UWP/VFS/XBOX: Improvements and bugfixes to UWP VFS driver
- VIDEO/REFRESH RATE: Automatic PAL/NTSC refresh rate switch where available - as long as the platform display server allows changing refresh rates and the display has the desired refresh rate
- VIDEO FILTERS: Add 'Picoscale_256x-320x240' video filter
- WIIU/HID: Fix analog inputs on HID devices
# 1.9.9
- 3DS: Add bottom touchscreen menu
- 3DS/SAVESTATES: Save and load save states to and from RAM
- AUDIO/MIXER: Ensure than menu sounds are re-enabled when calling CMD_EVENT_AUDIO_REINIT
- AUDIO/RESAMPLER/MIXER: Fix menu sounds (audio mixing) when using the 'sinc' resampler with quality lower than 'normal'
- AUDIO/CONVERSION/ARM NEON: Add intrinsic NEON versions for float_to_s16/s16_to_float - should lead to optimized codepaths for AArch64/ARMv7 architectures without being dependent on ASM codepaths.
- AUDIO/RESAMPLER/ARM NEON: Add intrinsic NEON version for lanczos sinc function - should lead to optimized codepaths for AArch64/ARMv7 architectures without being dependent on ASM codepaths.
- CHEEVOS: Upgrade to rcheevos 10.2
- CHEATS: Add enhanced search functionality to the 'Cheats' menu
- CHEATS/RUNAHEAD: Fix cheats when using second instance runahead
- CONFIG: Add option to (force-)write current core options to disk (Quick Menu)
- CORE INFO CACHE: Remove core path from core info cache. Should make core info caches portable now (for example: you can move RetroArch to a separate dir and they would still work).
- D3D11: Use Shader Model 5.0 for frontend shaders if D3D11 Feature level is at least 11.0 or higher. Should fix some new shaders that require SM 5.0 (like AMD FSR)
- D3D11: Add HDR support (disabled for UWP for now)
- D3D12: Add HDR support (disabled for UWP for now)
- EMSCRIPTEN: Fixed web player bug with filesystem and runtime
- INPUT/OVERLAY: Fix overlay input when analog to digital mapping is enabled
- INPUT/UDEV: Look for "ID_INPUT_KEY", not "ID_INPUT_KEYBOARD"
- INPUT/WINRAW: Fix crash when overlay is enabled
- MAC/METAL: Add Discord RPC support
- MENU: Allow 'Custom Aspect Ratio (X Position)/(Y Position)/(Width)/(Height)' to be entered manually via keyboard
- MENU: Allow 'Vertical Refresh Rate' to be entered manually via keyboard
- MENU/SHADERS: Highlight currently selected value in Shader Parameter drop-down lists
- STABILITY: Safer way of avoiding the race condition in
audio_driver_sample/audio_driver_sample_batch - we can check
audio-suspended to see if we're doing a fs/windowed toggle - enhances stability when fullscreen toggling/tearing down context
- STABILITY: When audio driver write callback function fails, don't
turn audio off completely - look if audio_driver_output_samples_conv_buf
is non-NULL first before we attempt to write audio - enhances stability when fullscreen toggling/tearing down context
- STABILITY: Input robustness for cores that use internal threading
(full teardown/setup), no audio should be processed at this point in
time
- VIDEO: Screen resolution list sanitizing
- VULKAN: Fix some Vulkan validation layer errors
- UWP: Updated icons courtesy of Danp142
- UWP/XBOX: Disable CPU model check on Xbox as it doesn't work and can even crash
- UWP/VFS/XBOX: Code cleanup and simplification of UWP VFS driver
# 1.9.8
- AUDIO/WINDOWS/WASAPI: Stop deactivating audio on fast forward
- CHEEVOS: Hide challenge indicators when resetting
+86 -43
View File
@@ -3,64 +3,107 @@ 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)
* 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
[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.
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:
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;
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.
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.
* 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;
};
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].
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]. A balancing act here is necessary.
Be mindful that heap allocations are slow compared to stack.
Functions
---------
- Avoid doing small getter/setter functions. We want a function
to justify its function call overhead by doing a significant
body of work. Small one-line getter/setter functions for what
is predominantly C-style structs is not useful, plus it leads
to people thinking this function is more complex than it
actually is, thus obfuscating the sourcecode instead of it
being easier to read.
If you can find examples in the codebase that violate this
guideline, do not hesitate to point them out to us.
Variable declaration
--------------------
For C source files, we have to insist you stick to the following:
- Declare variables either at the start of a function or the start
of a code block, depending on the scope they need.
- Do not do initial for loop declarations. Refer to the bulletpoint above:
either declare them at the start of the function, or at the start
of the code block.
Not doing this would break compilation on platforms where we are compiling
these C source files in C89 compatibility mode. If such issues occur in pull
requests, we have to request that it be fixed.
VLA (Variable Length Array)
---------------------------
Do not use VLAs (Variable Length Array) in C source files. These are not
C89-compliant.
+1 -1
View File
@@ -110,7 +110,7 @@ endif
ifneq ($(CXX_BUILD), 1)
ifneq ($(C89_BUILD),)
CFLAGS += -std=c89 -ansi -pedantic -Werror=pedantic -Wno-long-long
CFLAGS += -std=c89 -ansi -pedantic -Werror=pedantic -Wno-long-long -Werror=declaration-after-statement
else ifeq ($(HAVE_C99), 1)
CFLAGS += $(C99_CFLAGS)
endif
+65 -61
View File
@@ -134,7 +134,6 @@ ifneq ($(findstring Darwin,$(OS)),)
MINVERFLAGS=
ifeq ($(shell uname -p),arm)
MINVERFLAGS = -mmacosx-version-min=10.15 -stdlib=libc++ # macOS (Metal, ARM 64bit)
MINVERFLAGS += -DDONT_WANT_ARM_ASM_OPTIMIZATIONS
else ifeq ($(HAVE_METAL),1)
MINVERFLAGS = -mmacosx-version-min=10.13 -stdlib=libc++ # macOS (Metal, x86 64bit)
else ifeq ($(shell uname -p),powerpc)
@@ -148,7 +147,6 @@ ifneq ($(findstring Darwin,$(OS)),)
# 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_ASM_OPTIMIZATIONS
ARCHFLAGS = -arch arm64
else ifeq ($(ARCH),x86_64)
ifeq ($(HAVE_METAL),1)
@@ -190,6 +188,10 @@ endif
ifeq ($(HAVE_UNIX), 1)
OBJ += frontend/drivers/platform_unix.o
ifeq ($(UNIX_CWD_ENV), 1)
DEF_FLAGS += -DRARCH_UNIX_CWD_ENV
endif
endif
ifeq ($(TARGET), retroarch_3ds)
@@ -232,8 +234,15 @@ endif
OBJ += frontend/frontend_driver.o \
retroarch.o \
runloop.o \
driver.o \
ui/ui_companion_driver.o \
camera/camera_driver.o \
record/record_driver.o \
command.o \
msg_hash.o \
midi_driver.o \
location_driver.o \
intl/msg_hash_us.o \
$(LIBRETRO_COMM_DIR)/queues/task_queue.o \
tasks/task_content.o
@@ -255,6 +264,7 @@ OBJ += \
ifeq ($(HAVE_TRANSLATE), 1)
OBJ += $(LIBRETRO_COMM_DIR)/encodings/encoding_base64.o
OBJ += tasks/task_translation.o
endif
OBJ += \
@@ -302,14 +312,16 @@ OBJ += \
$(LIBRETRO_COMM_DIR)/file/file_path_io.o \
file_path_special.o \
$(LIBRETRO_COMM_DIR)/hash/lrc_hash.o \
audio/audio_driver.o \
input/input_driver.o \
input/common/input_hid_common.o \
led/led_driver.o \
gfx/video_coord_array.o \
gfx/gfx_display.o \
gfx/video_driver.o \
gfx/gfx_display.o \
gfx/gfx_animation.o \
gfx/gfx_thumbnail_path.o \
gfx/gfx_thumbnail.o \
gfx/gfx_thumbnail_path.o \
gfx/gfx_thumbnail.o \
gfx/video_coord_array.o \
configuration.o \
$(LIBRETRO_COMM_DIR)/dynamic/dylib.o \
cores/dynamic_dummy.o \
@@ -335,6 +347,10 @@ ifeq ($(HAVE_CHEATS), 1)
OBJ += cheat_manager.o
endif
ifeq ($(HAVE_CORE_INFO_CACHE), 1)
DEFINES += -DHAVE_CORE_INFO_CACHE
endif
OBJ += \
core_info.o \
core_backup.o \
@@ -553,7 +569,8 @@ ifeq ($(HAVE_LIBRETRODB), 1)
tasks/task_database_cue.o
ifeq ($(HAVE_MENU), 1)
OBJ += menu/menu_explore.o
OBJ += menu/menu_explore.o \
tasks/task_menu_explore.o
endif
endif
@@ -759,22 +776,23 @@ ifeq ($(HAVE_EMSCRIPTEN), 1)
endif
ifeq ($(HAVE_BLUETOOTH), 1)
OBJ += bluetooth/bluetooth_driver.o
OBJ += bluetooth/drivers/bluetoothctl.o
endif
ifeq ($(HAVE_BLUETOOTH), 1)
OBJ += tasks/task_bluetooth.o
ifeq ($(HAVE_DBUS), 1)
OBJ += bluetooth/drivers/bluez.o
endif
endif
ifeq ($(HAVE_LAKKA), 1)
OBJ += wifi/drivers/connmanctl.o
OBJ += network/drivers_wifi/connmanctl.o
OBJ += misc/cpufreq/cpufreq.o
endif
ifeq ($(HAVE_WIFI), 1)
OBJ += wifi/drivers/nmcli.o
OBJ += network/wifi_driver.o
OBJ += tasks/task_wifi.o
OBJ += network/drivers_wifi/nmcli.o
DEFINES += -DHAVE_WIFI
endif
@@ -970,10 +988,6 @@ ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
HAVE_XMB = 1
endif
ifeq ($(HAVE_STRIPES),)
HAVE_STRIPES = 0
endif
ifeq ($(HAVE_OZONE),)
HAVE_OZONE = 1
endif
@@ -981,7 +995,6 @@ else
HAVE_RGUI ?= 0
HAVE_MATERIALUI ?= 0
HAVE_XMB ?= 0
HAVE_STRIPES ?= 0
HAVE_OZONE ?= 0
endif
@@ -1013,22 +1026,12 @@ ifeq ($(HAVE_MENU), 1)
endif
ifeq ($(HAVE_OZONE), 1)
OBJ += menu/drivers/ozone/ozone.o \
menu/drivers/ozone/ozone_entries.o \
menu/drivers/ozone/ozone_display.o \
menu/drivers/ozone/ozone_texture.o \
menu/drivers/ozone/ozone_theme.o \
menu/drivers/ozone/ozone_sidebar.o
OBJ += menu/drivers/ozone.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
@@ -1046,8 +1049,13 @@ ifeq ($(HAVE_LAKKA_SWITCH), 1)
DEFINES += -DHAVE_LAKKA_SWITCH
endif
ifeq ($(HAVE_LAKKA_NIGHTLY), 1)
DEFINES += -DHAVE_LAKKA_NIGHTLY
endif
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/menu_setting.o \
menu/menu_driver.o \
menu/cbs/menu_cbs_ok.o \
menu/cbs/menu_cbs_cancel.o \
menu/cbs/menu_cbs_select.o \
@@ -1092,13 +1100,13 @@ endif
ifeq ($(HAVE_VIDEO_LAYOUT), 1)
DEFINES += -DHAVE_VIDEO_LAYOUT
OBJ += \
gfx/video_layout.o \
gfx/video_layout/view.o \
gfx/video_layout/element.o \
gfx/video_layout/component.o \
gfx/video_layout/internal.o \
gfx/video_layout/scope.o \
gfx/video_layout/load.o
gfx/video_layout.o \
gfx/video_layout/view.o \
gfx/video_layout/element.o \
gfx/video_layout/component.o \
gfx/video_layout/internal.o \
gfx/video_layout/scope.o \
gfx/video_layout/load.o
endif
ifeq ($(HAVE_STB_FONT), 1)
@@ -1191,12 +1199,6 @@ ifeq ($(TARGET), retroarch_wiiu)
INCLUDE_DIRS += -Iinput/include
OBJ += input/drivers_joypad/wiiu/hidpad_driver.o
OBJ += input/drivers_hid/wiiu_hid.o
OBJ += input/connect/joypad_connection.o \
input/common/hid/hid_device_driver.o \
input/common/hid/device_wiiu_gca.o \
input/common/hid/device_ds3.o \
input/common/hid/device_ds4.o \
input/common/hid/device_null.o
endif
endif
@@ -1233,7 +1235,6 @@ ifeq ($(HAVE_WAYLAND), 1)
input/common/wayland_common.o \
input/drivers/wayland_input.o \
gfx/common/wayland/xdg-shell.o \
gfx/common/wayland/xdg-shell-unstable-v6.o \
gfx/common/wayland/idle-inhibit-unstable-v1.o \
gfx/common/wayland/xdg-decoration-unstable-v1.o
@@ -1437,7 +1438,9 @@ endif
ifeq ($(HAVE_PLAIN_DRM), 1)
OBJ += gfx/drivers/drm_gfx.o
INCLUDE_DIRS += -I/usr/include/libdrm
ifneq ($(HAVE_LAKKA), 1)
INCLUDE_DIRS += -I/usr/include/libdrm
endif
LIBS += -ldrm
endif
@@ -1454,12 +1457,13 @@ ifeq ($(HAVE_VITAGLES), 1)
endif
ifeq ($(HAVE_GL_CONTEXT), 1)
OBJ += gfx/common/gl_common.o
ifeq ($(HAVE_GL_MODERN), 1)
DEFINES += -DHAVE_OPENGL
OBJ += gfx/drivers/gl.o \
OBJ += gfx/drivers/gl2.o \
$(LIBRETRO_COMM_DIR)/gfx/gl_capabilities.o \
gfx/drivers_font/gl_raster_font.o \
gfx/drivers_display/gfx_display_gl.o
gfx/drivers_font/gl2_raster_font.o \
gfx/drivers_display/gfx_display_gl2.o
endif
OBJ += $(LIBRETRO_COMM_DIR)/glsym/rglgen.o
@@ -1468,7 +1472,7 @@ ifeq ($(HAVE_GL_CONTEXT), 1)
DEFINES += -DHAVE_OPENGL1
OBJ += gfx/drivers/gl1.o \
gfx/drivers_font/gl1_raster_font.o \
gfx/drivers_display/gfx_display_gl1.o
gfx/drivers_display/gfx_display_gl1.o
endif
ifeq ($(HAVE_VIDEOCORE), 1)
@@ -1582,6 +1586,8 @@ else ifeq ($(HAVE_SDL_DINGUX), 1)
ifeq ($(RS90), 1)
OBJ += gfx/drivers/sdl_rs90_gfx.o
else ifeq ($(MIYOO), 1)
OBJ += gfx/drivers/sdl_rs90_gfx.o
else
OBJ += gfx/drivers/sdl_dingux_gfx.o
endif
@@ -1636,10 +1642,10 @@ ifeq ($(HAVE_VULKAN), 1)
endif
ifeq ($(HAVE_OPENGL_CORE), 1)
OBJ += gfx/drivers/gl_core.o \
gfx/drivers_font/gl_core_raster_font.o \
gfx/drivers_shader/shader_gl_core.o \
gfx/drivers_display/gfx_display_gl_core.o
OBJ += gfx/drivers/gl3.o \
gfx/drivers_font/gl3_raster_font.o \
gfx/drivers_shader/shader_gl3.o \
gfx/drivers_display/gfx_display_gl3.o
DEFINES += -DHAVE_OPENGL_CORE
NEED_CXX_LINKER = 1
@@ -2081,9 +2087,7 @@ ifeq ($(HAVE_NETWORKING), 1)
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
tasks/task_netplay_nat_traversal.o \
tasks/task_bluetooth.o \
tasks/task_wifi.o \
tasks/task_pl_thumbnail_download.o \
tasks/task_pl_thumbnail_download.o \
tasks/task_netplay_find_content.o
ifeq ($(HAVE_MENU_COMMON), 1)
@@ -2111,10 +2115,9 @@ ifeq ($(HAVE_NETWORKING), 1)
# Netplay
DEFINES += -DHAVE_NETWORK_CMD
OBJ += network/netplay/netplay_handshake.o \
network/netplay/netplay_io.o \
network/netplay/netplay_discovery.o \
network/netplay/netplay_room_parse.o
OBJ += \
network/netplay/netplay_frontend.o \
network/netplay/netplay_room_parse.o
# RetroAchievements
ifeq ($(HAVE_CHEEVOS), 1)
@@ -2124,7 +2127,6 @@ ifeq ($(HAVE_NETWORKING), 1)
OBJ += cheevos/cheevos.o \
cheevos/cheevos_client.o \
cheevos/cheevos_menu.o \
cheevos/cheevos_parser.o \
$(LIBRETRO_COMM_DIR)/formats/cdfs/cdfs.o \
deps/rcheevos/src/rcheevos/alloc.o \
deps/rcheevos/src/rcheevos/compat.o \
@@ -2145,7 +2147,6 @@ ifeq ($(HAVE_NETWORKING), 1)
deps/rcheevos/src/rapi/rc_api_common.o \
deps/rcheevos/src/rapi/rc_api_runtime.o \
deps/rcheevos/src/rapi/rc_api_user.o \
deps/rcheevos/src/rurl/url.o
ifeq ($(HAVE_LUA), 1)
DEFINES += -DHAVE_LUA \
@@ -2203,6 +2204,8 @@ ifeq ($(HAVE_NETWORKING), 1)
deps/discord-rpc/src/rpc_connection.o \
deps/discord-rpc/src/serialization.o
OBJ += network/discord.o
ifneq ($(findstring Win32,$(OS)),)
OBJ += deps/discord-rpc/src/discord_register_win.o \
deps/discord-rpc/src/connection_win.o
@@ -2379,7 +2382,8 @@ ifeq ($(HAVE_STATIC_VIDEO_FILTERS), 1)
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
gfx/video_filters/upscale_256x_320x240.o \
gfx/video_filters/picoscale_256x_320x240.o
endif
ifeq ($(WANT_IOSUHAX), 1)
+15
View File
@@ -2,6 +2,7 @@ TARGET := retroarch_3ds
LIBRETRO =
DEBUG = 0
CONSOLE_LOG = 0
GRIFFIN_BUILD = 1
WHOLE_ARCHIVE_LINK = 0
BUILD_3DSX = 1
@@ -9,6 +10,7 @@ BUILD_3DS = 0
BUILD_CIA = 1
LIBCTRU_NO_DEPRECATION = 1
USE_CTRULIB_2 ?= 0
LOAD_WITHOUT_CORE_INFO ?= 0
APP_TITLE = RetroArch 3DS
APP_DESCRIPTION = RetroArch 3DS
@@ -60,6 +62,7 @@ ifeq ($(GRIFFIN_BUILD), 1)
DEFINES += -DHAVE_THREADS
DEFINES += -DHAVE_GFX_WIDGETS
DEFINES += -DHAVE_OVERLAY
DEFINES += -DHAVE_CORE_INFO_CACHE
#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
@@ -91,6 +94,7 @@ else
HAVE_THREADS = 1
#HAVE_SSL = 1
#HAVE_BUILTINMBEDTLS = 1
HAVE_CORE_INFO_CACHE = 1
include Makefile.common
CFLAGS += $(DEF_FLAGS)
@@ -103,6 +107,9 @@ endif
ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitpro")
endif
ifeq ($(strip $(DEVKITARM)),)
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitarm")
endif
ifeq ($(strip $(CTRULIB)),)
CTRULIB = $(DEVKITPRO)/libctru
@@ -112,6 +119,10 @@ ifeq ($(strip $(USE_CTRULIB_2)),1)
CFLAGS += -DUSE_CTRULIB_2
endif
ifeq ($(LOAD_WITHOUT_CORE_INFO),1)
CFLAGS += -DLOAD_WITHOUT_CORE_INFO
endif
ifeq ($(strip $(DEVKITTOOLS)),)
ifeq ($(strip $(USE_CTRULIB_2)),1)
DEVKITTOOLS = $(DEVKITPRO)/tools
@@ -154,6 +165,10 @@ else
CFLAGS += -O3
endif
ifeq ($(CONSOLE_LOG), 1)
CFLAGS += -DCONSOLE_LOG
endif
ifeq ($(LIBCTRU_NO_DEPRECATION), 1)
CFLAGS += -DLIBCTRU_NO_DEPRECATION
endif
+5
View File
@@ -2,6 +2,7 @@ TARGET := retroarch_3ds_salamander
LIBRETRO =
DEBUG = 0
CONSOLE_LOG = 0
BUILD_3DSX = 1
BUILD_3DS = 0
BUILD_CIA = 1
@@ -95,6 +96,10 @@ else
CFLAGS += -O3
endif
ifeq ($(CONSOLE_LOG), 1)
CFLAGS += -DCONSOLE_LOG
endif
CFLAGS += -I. -Ideps/7zip -Ideps/stb -Ilibretro-common/include -Ilibretro-common/include/compat/zlib
#CFLAGS += -DRARCH_INTERNAL
+1
View File
@@ -99,6 +99,7 @@ HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_LIBSHAKE = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
+1
View File
@@ -42,6 +42,7 @@ HAVE_STB_FONT = 1
HAVE_CONFIGFILE = 1
HAVE_CHEATS = 1
HAVE_IBXM = 1
HAVE_CORE_INFO_CACHE = 1
ASYNC ?= 0
ifeq ($(LIBRETRO), mupen64plus)
+18
View File
@@ -219,6 +219,7 @@ else ifeq ($(libogc_platform), 1)
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
RARCH_CONSOLE = 1
HAVE_CORE_INFO_CACHE := 1
ifeq ($(platform), wii)
#HAVE_LANGEXTRA := 1
@@ -286,6 +287,7 @@ else ifeq ($(platform), psp1)
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
ifeq ($(BUILD_PRX), 1)
LDFLAGS += $(addprefix -L,$(PSPSDK)/lib) -specs=$(PSPSDK)/lib/prxspecs -Wl,-q,-T$(PSPSDK)/lib/linkfile.prx $(LDFLAGS)
@@ -348,6 +350,7 @@ else ifeq ($(platform), vita)
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
else ifeq ($(platform), windows_msvc6_x86)
HAVE_RPNG := 1
HAVE_RJPEG := 1
@@ -374,6 +377,7 @@ else ifeq ($(platform), windows_msvc6_x86)
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -421,6 +425,7 @@ else ifeq ($(platform), windows_msvc2003_x86)
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_GFX_WIDGETS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -483,6 +488,7 @@ else ifeq ($(platform), windows_msvc2005_x86)
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_GFX_WIDGETS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -525,6 +531,7 @@ else ifeq ($(platform), windows_msvc2005_x86)
endif
else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_GDI := 1
HAVE_CHEEVOS := 1
HAVE_SCREENSHOTS := 1
HAVE_REWIND := 1
HAVE_AUDIOMIXER := 1
@@ -563,6 +570,7 @@ else ifneq (,$(findstring windows_msvc2010,$(platform)))
HAVE_VIDEO_FILTER := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_GFX_WIDGETS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -649,6 +657,7 @@ else ifneq (,$(findstring windows_msvc2012,$(platform)))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -733,6 +742,7 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -817,6 +827,7 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
@@ -915,6 +926,7 @@ else ifeq (qnx,$(platform))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
CC=qcc -Vgcc_ntoarmv7le
CXX=QCC -Vgcc_ntoarmv7le
@@ -959,6 +971,7 @@ else ifneq (,$(findstring unix,$(platform)))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
PLATCFLAGS += -D__MMX__ -D__SSE__ -DHAVE_OPENGL -DHAVE_OPENGL1 -DHAVE_GLSL -DHAVE_SHADERPIPELINE -DHAVE_OZONE -DHAVE_CC_RESAMPLER -DHAVE_CHEEVOS -DRC_DISABLE_LUA -DHAVE_FBO -DHAVE_GL_SYNC -DHAVE_SLANG -DHAVE_GLSLANG -DHAVE_BUILTINGLSLANG -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_RUNAHEAD -DHAVE_GFX_WIDGETS -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SPIRV_CROSS -DHAVE_STB_FONT -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_UPDATE_CORES -DHAVE_VULKAN -DHAVE_XMB -DRARCH_INTERNAL -DWANT_GLSLANG -DHAVE_X11 -DHAVE_XCB -DHAVE_UDEV -DHAVE_BSV_MOVIE -DHAVE_PULSE
EXT_TARGET := $(TARGET_NAME)
@@ -992,6 +1005,7 @@ else ifeq (dos,$(platform))
HAVE_CONFIGFILE := 1
HAVE_PATCH := 0
HAVE_CHEATS := 0
HAVE_CORE_INFO_CACHE := 1
CC=i586-pc-msdosdjgpp-gcc
CXX=i586-pc-msdosdjgpp-g++
@@ -1141,6 +1155,10 @@ ifeq ($(RARCH_CONSOLE), 1)
CFLAGS += -DRARCH_CONSOLE
endif
ifeq ($(HAVE_CORE_INFO_CACHE), 1)
CFLAGS += -DHAVE_CORE_INFO_CACHE
endif
ifeq ($(RARCH_MOBILE), 1)
CFLAGS += -DRARCH_MOBILE
endif
+6 -1
View File
@@ -40,6 +40,7 @@ HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_FILTERS_BUILTIN = 1
HAVE_MENU = 1
HAVE_CONFIGFILE = 1
HAVE_PATCH = 1
@@ -52,6 +53,7 @@ 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
HAVE_CORE_INFO_CACHE = 1
# RetroArch libnx useful flags
HAVE_THREADS = 1
@@ -78,7 +80,6 @@ else
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_OZONE = 0
HAVE_STRIPES = 0
endif
include Makefile.common
@@ -129,6 +130,10 @@ CFLAGS := -g -Wall -O3 -fcommon -ffast-math -ffunction-sections \
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
ifeq ($(HAVE_FILTERS_BUILTIN), 1)
CFLAGS += -DHAVE_FILTERS_BUILTIN
endif
ifeq ($(strip $(HAVE_STATIC_DUMMY)),1)
CFLAGS += -DHAVE_STATIC_DUMMY=1
endif
+209
View File
@@ -0,0 +1,209 @@
#########################
## Toolchain variables ##
#########################
# Default toolchain directory
TOOLCHAIN_DIR=/opt/miyoo
# All toolchain-related variables may be
# overridden via the command line
ifdef GCW0_CC
CC = $(GCW0_CC)
else
CC = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-gcc
endif
ifdef GCW0_CXX
CXX = $(GCW0_CXX)
else
CXX = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-g++
endif
ifdef GCW0_STRIP
STRIP = $(GCW0_STRIP)
else
STRIP = $(TOOLCHAIN_DIR)/usr/bin/arm-linux-strip
endif
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/bin/sdl-config
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/bin/freetype-config
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/include
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/lib
#########################
#########################
PACKAGE_NAME = retroarch
DEBUG ?= 0
MIYOO = 1
DINGUX = 1
HAVE_SCREENSHOTS = 0
HAVE_REWIND = 0
HAVE_7ZIP = 1
HAVE_AL = 0
# 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 = 0
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 = 0
HAVE_OVERLAY = 0
HAVE_RBMP = 1
HAVE_RJPEG = 1
HAVE_RPILED = 0
HAVE_RPNG = 1
HAVE_RUNAHEAD = 0
HAVE_SDL_DINGUX = 1
HAVE_SHADERPIPELINE = 0
HAVE_STB_FONT = 0
HAVE_STB_IMAGE = 0
HAVE_STB_VORBIS = 0
HAVE_STDIN_CMD = 0
HAVE_STRCASESTR = 1
HAVE_THREADS = 1
HAVE_UDEV = 0
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 = 0
HAVE_CORE_INFO_CACHE = 1
#HAVE_TINYALSA = 1
#HAVE_NEAREST_RESAMPLER = 1
OS = Linux
TARGET = retroarch
OBJ :=
LINK := $(CXX)
DEF_FLAGS := -march=armv5te -mtune=arm926ej-s -ffast-math -fomit-frame-pointer
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -I. -Ideps -Ideps/stb -DMIYOO=1 -DDINGUX -MMD
DEF_FLAGS += -Wall -Wno-unused-variable -flto
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE
LIBS := -ldl -lz -lrt -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_FILTERS_BUILTIN
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)
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))
all: $(TARGET)
-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)
ifeq ($(STRIP_BIN),1)
$(STRIP) --strip-unneeded $(TARGET)
endif
$(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
.PHONY: all clean
print-%:
@echo '$*=$($*)'
+1
View File
@@ -67,6 +67,7 @@ HAVE_SHADERPIPELINE := 1
HAVE_IMAGEVIEWER := 1
HAVE_BSV_MOVIE := 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
ifeq ($(HAVE_D3D8), 1)
D3D8_LIBS := -ld3d8
+5
View File
@@ -126,6 +126,7 @@ HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
RARCH_CONSOLE = 1
HAVE_CHEATS := 1
HAVE_CORE_INFO_CACHE := 1
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(PLATCFLAGS) $(INCLUDE)
INCLUDE += -I./libretro-common/include \
@@ -322,6 +323,10 @@ ifeq ($(HAVE_DYNAMIC), 1)
CFLAGS += -DHAVE_DYNAMIC
endif
ifeq ($(HAVE_CORE_INFO_CACHE), 1)
CFLAGS += -DHAVE_CORE_INFO_CACHE
endif
ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g -DDEBUG
else
+35 -14
View File
@@ -1,25 +1,46 @@
include version.all
DEBUG = 0
DEBUG = 0
CC = $(PNDSDK)/bin/arm-none-linux-gnueabi-gcc
LD = $(PNDSDK)/bin/arm-none-linux-gnueabi-gcc -o
CC = $(PNDSDK)/bin/arm-none-linux-gnueabi-gcc
LD = $(PNDSDK)/bin/arm-none-linux-gnueabi-gcc -o
TARGET := retroarch-pandora
TARGET := retroarch-pandora
LDDIRS = -L. -L$(PNDSDK)/usr/lib
INCDIRS = -I. -I$(PNDSDK)/usr/include
LDDIRS = -L. -L$(PNDSDK)/usr/lib
INCDIRS = -I. -I$(PNDSDK)/usr/include
OBJ = griffin/griffin.o audio/resamplers/sinc_resampler_neon.o libretro-common/conversion/s16_to_float_neon.o libretro-common/conversion/float_to_s16_neon.o
LDFLAGS = -L$(PNDSDK)/usr/lib -Wl,-rpath,$(PNDSDK)/usr/lib
OBJ = griffin/griffin.o audio/resamplers/sinc_resampler_neon.o libretro-common/conversion/s16_to_float_neon.o libretro-common/conversion/float_to_s16_neon.o
LDFLAGS = -L$(PNDSDK)/usr/lib -Wl,-rpath,$(PNDSDK)/usr/lib
LIBS = -lGLESv2 -lEGL -ldl -lm -lpthread -lrt -lasound
DEFINES = -std=gnu99 -DHAVE_THREADS -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -DRARCH_INTERNAL
DEFINES += -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SCREENSHOTS -DHAVE_REWIND -D__ARM_ARCH_6__ -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_GLSL -DHAVE_DYNAMIC -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_OVERLAY -DHAVE_VIDEO_LAYOUT -DHAVE_ALSA -DHAVE_ZLIB -D__linux__
DEFINES += -DHAVE_DSP_FILTER
DEFINES += -DHAVE_VIDEO_FILTER
LIBS = -lGLESv2 -lEGL -ldl -lm -lpthread -lrt -lasound
DEFINES = -std=gnu99
DEFINES += -DHAVE_THREADS \
-DHAVE_GETOPT_LONG=1 \
-DHAVE_GRIFFIN \
-DRARCH_INTERNAL \
-DHAVE_CONFIGFILE \
-DHAVE_PATCH \
-DHAVE_SCREENSHOTS \
-DHAVE_REWIND \
-D__ARM_ARCH_6__ \
-DHAVE_OPENGL \
-DHAVE_OPENGLES \
-DHAVE_OPENGLES2 \
-DHAVE_GLSL \
-DHAVE_DYNAMIC \
-DHAVE_RPNG \
-DHAVE_RJPEG \
-DHAVE_OVERLAY \
-DHAVE_VIDEO_LAYOUT \
-DHAVE_ALSA \
-DHAVE_ZLIB \
-D__linux__ \
-DHAVE_DSP_FILTER \
-DHAVE_VIDEO_FILTER \
-D__OPENPANDORA__ \
-DPANDORA
DEFINES += $(INCDIRS)
DEFINES += -D__OPENPANDORA__ -DPANDORA
DEFINES += -marm -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize
ifeq ($(DEBUG), 1)
+2
View File
@@ -19,6 +19,7 @@ ifeq ($(GRIFFIN_BUILD), 1)
DEFINES += -DHAVE_MENU -DHAVE_LIBRETRODB -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_SCREENSHOTS -DHAVE_CHEATS
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_CORE_INFO_CACHE
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
@@ -59,6 +60,7 @@ else
RARCH_CONSOLE := 1
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_CORE_INFO_CACHE := 1
ifeq ($(DEBUG), 1)
HAVE_NETLOGGER = 1
+25 -5
View File
@@ -28,10 +28,30 @@ INCDIR += -Ips2/include -Ilibretro-common/include -Ideps -Ideps/stb -Ideps/7zip
CFLAGS = $(OPTIMIZE_LV) $(DISABLE_WARNINGS) -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES += -DPS2 -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS
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_VIDEO_FILTER -DHAVE_RGUI
RARCH_DEFINES += -DHAVE_DSP_FILTER
RARCH_DEFINES += -DPS2 \
-DHAVE_GRIFFIN=1 \
-DRARCH_INTERNAL \
-DHAVE_SCREENSHOTS \
-DHAVE_REWIND \
-DRARCH_CONSOLE \
-DHAVE_MENU \
-DHAVE_CONFIGFILE \
-DHAVE_PATCH \
-DHAVE_CHEATS \
-DHAVE_ZLIB \
-DHAVE_NO_BUILTINZLIB \
-DHAVE_RPNG \
-DHAVE_RJPEG \
-DHAVE_FILTERS_BUILTIN \
-DHAVE_7ZIP \
-D_7ZIP_ST \
-DHAVE_CC_RESAMPLER \
-DHAVE_AUDIOMIXER \
-DHAVE_WINDOW_OFFSET \
-DHAVE_VIDEO_FILTER \
-DHAVE_RGUI \
-DHAVE_DSP_FILTER \
-DHAVE_CORE_INFO_CACHE
LDFLAGS += -L$(PS2DEV)/gsKit/lib -L$(PS2SDK)/ports/lib -L.
# Lib cdvd is needed to get proper time
@@ -58,7 +78,7 @@ EE_OBJS += $(IRX_DIR)/mcman_irx.o $(IRX_DIR)/mcserv_irx.o
EE_OBJS += $(IRX_DIR)/usbd_irx.o $(IRX_DIR)/bdm_irx.o $(IRX_DIR)/bdmfs_vfat_irx.o $(IRX_DIR)/usbmass_bd_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)/ps2dev9_irx.o $(IRX_DIR)/ps2atad_irx.o $(IRX_DIR)/ps2hdd_irx.o $(IRX_DIR)/ps2fs_irx.o $(IRX_DIR)/poweroff_irx.o
EE_OBJS += $(IRX_DIR)/ps2dev9_irx.o $(IRX_DIR)/ps2atad_irx.o $(IRX_DIR)/ps2hdd_irx.o $(IRX_DIR)/ps2fs_irx.o $(IRX_DIR)/poweroff_irx.o
EE_OBJS += $(IRX_DIR)/mtapman_irx.o $(IRX_DIR)/padman_irx.o
# Missing objecst on the PS2SDK
+28 -1
View File
@@ -66,7 +66,34 @@ endif
SHARED_FLAGS :=
SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DRARCH_CONSOLE -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_SYSMODULES -DHAVE_SYSUTILS -DHAVE_RARCH_EXEC -DHAVE_MOUSE -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_GRIFFIN=1 -DHAVE_NETWORKING=1 -DHAVE_SOCKET_LEGACY=1 -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) -Wno-char-subscripts -DHAVE_CC_RESAMPLER -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DHAVE_REWIND -DHAVE_MULTIMAN -DHAVE_RGUI
SHARED_FLAGS += -DHAVE_MENU \
-DHAVE_CONFIGFILE \
-DHAVE_PATCH \
-DHAVE_CHEATS \
-DRARCH_CONSOLE \
-DHAVE_OVERLAY \
-DHAVE_HEADSET \
-DHAVE_CG \
-DHAVE_CG_RUNTIME_COMPILER \
-DHAVE_SYSMODULES \
-DHAVE_SYSUTILS \
-DHAVE_RARCH_EXEC \
-DHAVE_MOUSE \
-DHAVE_ZLIB \
-DHAVE_RPNG \
-DHAVE_GRIFFIN=1 \
-DHAVE_NETWORKING=1 \
-DHAVE_SOCKET_LEGACY=1 \
-DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" \
-DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) \
-Wno-char-subscripts \
-DHAVE_CC_RESAMPLER \
-DRARCH_INTERNAL \
-DHAVE_SCREENSHOTS \
-DHAVE_REWIND \
-DHAVE_MULTIMAN \
-DHAVE_RGUI \
-DHAVE_CORE_INFO_CACHE
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
CXXFLAGS += $(SHARED_FLAGS)
+37 -8
View File
@@ -1,10 +1,11 @@
BUILD_PRX = 0
PSP_LARGE_MEMORY = 1
DEBUG = 0
HAVE_KERNEL_PRX = 1
HAVE_THREADS = 1
BIG_STACK = 0
WHOLE_ARCHIVE_LINK = 0
BUILD_PRX ?= 0
PSP_LARGE_MEMORY ?= 1
DEBUG ?= 0
HAVE_KERNEL_PRX ?= 1
HAVE_THREADS ?= 1
BIG_STACK ?= 0
WHOLE_ARCHIVE_LINK ?= 0
LOAD_WITHOUT_CORE_INFO ?= 0
TARGET = retroarchpsp
@@ -23,7 +24,31 @@ INCDIR = deps deps/stb deps/7zip libretro-common/include libretro-common/include
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 -D_7ZIP_ST -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 \
-DHAVE_CORE_INFO_CACHE
LIBDIR =
LDFLAGS =
@@ -41,6 +66,10 @@ ifeq ($(BIG_STACK), 1)
CFLAGS += -DBIG_STACK
endif
ifeq ($(LOAD_WITHOUT_CORE_INFO),1)
RARCH_DEFINES += -DLOAD_WITHOUT_CORE_INFO
endif
CFLAGS += $(RARCH_DEFINES)
EXTRA_TARGETS = EBOOT.PBP
+3 -4
View File
@@ -110,10 +110,8 @@ HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
#comment out for now not working
#HAVE_OSS =1
#HAVE_OSS_LIB =1
HAVE_CORE_INFO_CACHE = 1
HAVE_OSS =1
OS = Linux
TARGET = retroarch
@@ -138,6 +136,7 @@ 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_FILTERS_BUILTIN
DEFINES += -DHAVE_OSS=1
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
+1
View File
@@ -108,6 +108,7 @@ HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
+4 -2
View File
@@ -44,7 +44,7 @@ DINGUX_BETA = 1
HAVE_SCREENSHOTS = 0
HAVE_REWIND = 1
HAVE_7ZIP = 1
HAVE_AL = 1
HAVE_AL = 0
HAVE_ALSA = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
@@ -108,6 +108,8 @@ HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 1
HAVE_TINYALSA = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
@@ -117,6 +119,7 @@ OBJ :=
LINK := $(CXX)
DEF_FLAGS := -mplt -mno-shared
DEF_FLAGS += -ffunction-sections -fdata-sections
DEF_FLAGS += -ffast-math
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
@@ -131,7 +134,6 @@ 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
DEFINES += -DHAVE_ALSA
+1
View File
@@ -112,6 +112,7 @@ HAVE_CHEEVOS = 0
HAVE_LIBSHAKE = 0
HAVE_TINYALSA = 1
HAVE_NEAREST_RESAMPLER = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
+4 -3
View File
@@ -15,7 +15,7 @@ ifeq ($(GRIFFIN_BUILD), 1)
DEFINES += -DHAVE_RUNAHEAD -DHAVE_DYNAMIC
DEFINES += -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS
else
HAVE_REWIND = 1
HAVE_REWIND = 1
HAVE_AUDIOMIXER = 1
HAVE_RWAV = 1
HAVE_CC_RESAMPLER = 1
@@ -26,8 +26,8 @@ else
HAVE_RBMP = 1
HAVE_RGUI = 1
HAVE_ZLIB = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_DSP_FILTER = 1
HAVE_VIDEO_FILTER = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
HAVE_MATERIALUI = 0 # enable later?
@@ -41,6 +41,7 @@ else
HAVE_PATCH = 1
HAVE_CHEATS = 1
HAVE_IBXM = 1
HAVE_CORE_INFO_CACHE = 1
include Makefile.common
CFLAGS += $(DEF_FLAGS)
+51 -32
View File
@@ -18,22 +18,40 @@ INCDIRS :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_REWIND
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_GRIFFIN=1 \
-DHAVE_REWIND \
-DHAVE_NEON \
-DHAVE_MENU \
-DHAVE_CONFIGFILE \
-DHAVE_PATCH \
-DHAVE_CHEATS \
-DHAVE_XMB \
-DHAVE_MATERIALUI \
-DHAVE_LIBRETRODB \
-DHAVE_KEYMAPPER \
-DHAVE_ZLIB \
-DHAVE_RPNG \
-DHAVE_RJPEG \
-DHAVE_RBMP \
-DHAVE_RTGA \
-DHAVE_CC_RESAMPLER \
-DHAVE_CORE_INFO_CACHE
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
INCDIRS += -I. -Ideps/7zip -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -Ideps/stb
INCDIRS += -I. \
-Ideps/7zip \
-Ilibretro-common/include \
-Ilibretro-common/include/compat/zlib \
-Ideps/stb
else
HAVE_REWIND := 1
HAVE_UPDATE_ASSETS := 1
HAVE_ONLINE_UPDATER := 1
HAVE_REWIND := 1
HAVE_UPDATE_ASSETS := 1
HAVE_ONLINE_UPDATER := 1
HAVE_NEON := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_SCREENSHOTS := 1
HAVE_DSP_FILTER := 1
HAVE_VIDEO_FILTER := 1
HAVE_SCREENSHOTS := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 1
HAVE_RPNG := 1
@@ -43,29 +61,29 @@ else
HAVE_ZLIB := 1
HAVE_7ZIP := 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
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
HAVE_VITA2D := 1
HAVE_VITAGL := 0
endif
HAVE_NETWORKING := 1
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_GFX_WIDGETS := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_GFX_WIDGETS := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
HAVE_CHEATS := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
HAVE_VIDEO_LAYOUT := 0
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_RGUI := 1
@@ -80,16 +98,17 @@ else
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_AUDIOMIXER := 1
HAVE_RWAV := 1
HAVE_CORE_INFO_CACHE := 1
ifeq ($(DEBUG), 1)
HAVE_NETLOGGER = 1
HAVE_NETLOGGER = 1
endif
include Makefile.common
CFLAGS += $(DEF_FLAGS)
BLACKLIST :=
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
INCDIRS += $(INCLUDE_DIRS)
CFLAGS += $(DEF_FLAGS)
BLACKLIST :=
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
INCDIRS += $(INCLUDE_DIRS)
endif
ifeq ($(strip $(VITASDK)),)
+1
View File
@@ -113,6 +113,7 @@ HAVE_CHEEVOS = 1
HAVE_LIBSHAKE = 1
HAVE_UPDATE_ASSETS = 1
HAVE_UPDATE_CORES = 1
HAVE_CORE_INFO_CACHE = 1
OS = Linux
TARGET = retroarch
+1
View File
@@ -131,6 +131,7 @@ RARCH_CONSOLE = 1
#HAVE_LANGEXTRA := 1
HAVE_WIIUSB_HID := 1
HAVE_RARCH_EXEC := 1
HAVE_CORE_INFO_CACHE := 1
HAVE_RSOUND := 0
APP_BOOTER_DIR = wii/app_booter
+3
View File
@@ -7,6 +7,7 @@ GRIFFIN_BUILD = 0
SALAMANDER_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
WIIU_HID = 1
HAVE_HID = 1
HAVE_RUNAHEAD = 1
WIIU_LOG_RPX = 0
BUILD_DIR = objs/wiiu
@@ -123,6 +124,7 @@ endif
DEFINES += -DHAVE_XMB -DHAVE_MATERIALUI
DEFINES += -DHAVE_HID
DEFINES += -DWANT_LIBFAT -DHAVE_LIBFAT -DWANT_IOSUHAX -DHAVE_IOSUHAX
DEFINES += -DHAVE_CORE_INFO_CACHE
DEFINES += -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
# $(GRIFFIN_BUILD),0
@@ -166,6 +168,7 @@ endif
HAVE_STATIC_AUDIO_FILTERS = 1
WANT_LIBFAT = 1
WANT_IOSUHAX = 1
HAVE_CORE_INFO_CACHE = 1
include Makefile.common
DEFINES += $(DEF_FLAGS)
+1
View File
@@ -27,6 +27,7 @@ HAVE_VIDEO_FILTER = 1
HAVE_7ZIP = 1
HAVE_PYTHON = 0
DYNAMIC = 1
HAVE_CORE_INFO_CACHE = 1
HAVE_XINPUT = 1
HAVE_WINMM = 1
+59
View File
@@ -30,4 +30,63 @@
#include "config.h"
#endif
#include "configuration.h"
typedef struct
{
int ai_service_auto;
/* Is text-to-speech accessibility turned on? */
bool enabled;
} access_state_t;
bool is_accessibility_enabled(bool accessibility_enable, bool accessibility_enabled);
#ifdef HAVE_TRANSLATE
bool is_narrator_running(bool accessibility_enable);
#endif
/*
This function does all the stuff needed to translate the game screen,
using the URL given in the settings. Once the image from the frame
buffer is sent to the server, the callback will write the translated
image to the screen.
Supported client/services (thus far)
-VGTranslate client ( www.gitlab.com/spherebeaker/vg_translate )
-Ztranslate client/service ( www.ztranslate.net/docs/service )
To use a client, download the relevant code/release, configure
them, and run them on your local machine, or network. Set the
retroarch configuration to point to your local client (usually
listening on localhost:4404 ) and enable translation service.
If you don't want to run a client, you can also use a service,
which is basically like someone running a client for you. The
downside here is that your retroarch device will have to have
an internet connection, and you may have to sign up for it.
To make your own server, it must listen for a POST request, which
will consist of a JSON body, with the "image" field as a base64
encoded string of a 24bit-BMP/PNG that the will be translated.
The server must output the translated image in the form of a
JSON body, with the "image" field also as a base64 encoded
24bit-BMP, or as an alpha channel png.
"paused" boolean is passed in to indicate if the current call
was made during a paused frame. Due to how the menu widgets work,
if the ai service is called in "auto" mode, then this call will
be made while the menu widgets unpause the core for a frame to update
the on-screen widgets. To tell the ai service what the pause
mode is honestly, we store the runloop_paused variable from before
the handle_translation_cb wipes the widgets, and pass that in here.
*/
bool run_translation_service(settings_t *settings, bool paused);
bool accessibility_speak_priority(
bool accessibility_enable,
unsigned accessibility_narrator_speech_speed,
const char* speak_text, int priority);
access_state_t *access_state_get_ptr(void);
#endif
+1881
View File
File diff suppressed because it is too large. Load diff
+417
View File
@@ -0,0 +1,417 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* 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 __AUDIO_DRIVER__H
#define __AUDIO_DRIVER__H
#include <stdint.h>
#include <stdlib.h>
#include <stddef.h>
#include <sys/types.h>
#include <boolean.h>
#include <retro_common_api.h>
#include <retro_inline.h>
#include <libretro.h>
#include <retro_miscellaneous.h>
#ifdef HAVE_CONFIG_H
#include "../config.h"
#endif /* HAVE_CONFIG_H */
#ifdef HAVE_DSP_FILTER
#include <audio/dsp_filter.h>
#endif
#ifdef HAVE_AUDIOMIXER
#include <audio/audio_mixer.h>
#endif
#include <audio/audio_resampler.h>
#include "audio_defines.h"
#define AUDIO_BUFFER_FREE_SAMPLES_COUNT (8 * 1024)
RETRO_BEGIN_DECLS
#ifdef HAVE_AUDIOMIXER
typedef struct audio_mixer_stream
{
audio_mixer_sound_t *handle;
audio_mixer_voice_t *voice;
audio_mixer_stop_cb_t stop_cb;
void *buf;
char *name;
size_t bufsize;
float volume;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_type type;
enum audio_mixer_state state;
} audio_mixer_stream_t;
typedef struct audio_mixer_stream_params
{
void *buf;
char *basename;
audio_mixer_stop_cb_t cb;
size_t bufsize;
unsigned slot_selection_idx;
float volume;
enum audio_mixer_slot_selection_type slot_selection_type;
enum audio_mixer_stream_type stream_type;
enum audio_mixer_type type;
enum audio_mixer_state state;
} audio_mixer_stream_params_t;
#endif
typedef struct audio_driver
{
/* Creates and initializes handle to audio driver.
*
* Returns: audio driver handle on success, otherwise NULL.
**/
void *(*init)(const char *device, unsigned rate,
unsigned latency, unsigned block_frames, unsigned *new_rate);
/*
* @data : Pointer to audio data handle.
* @buf : Audio buffer data.
* @size : Size of audio buffer.
*
* Write samples to audio driver.
*
* Write data in buffer to audio driver.
* A frame here is defined as one combined sample of left and right
* channels. (I.e. 44.1kHz, 16-bit stereo has 88.2k samples/s, and
* 44.1k frames/s.)
*
* Samples are interleaved in format LRLRLRLRLR ...
* If the driver returns true in use_float(), a floating point
* format will be used, with range [-1.0, 1.0].
* If not, signed 16-bit samples in native byte ordering will be used.
*
* This function returns the number of frames successfully written.
* If an error occurs, -1 should be returned.
* Note that non-blocking behavior that cannot write at this time
* should return 0 as returning -1 will terminate the driver.
*
* Unless said otherwise with set_nonblock_state(), all writes
* are blocking, and it should block till it has written all frames.
*/
ssize_t (*write)(void *data, const void *buf, size_t size);
/* Temporarily pauses the audio driver. */
bool (*stop)(void *data);
/* Resumes audio driver from the paused state. */
bool (*start)(void *data, bool is_shutdown);
/* Is the audio driver currently running? */
bool (*alive)(void *data);
/* Should we care about blocking in audio thread? Fast forwarding.
*
* If state is true, nonblocking operation is assumed.
* This is typically used for fast-forwarding. If driver cannot
* implement nonblocking writes, this can be disregarded, but should
* log a message to stderr.
* */
void (*set_nonblock_state)(void *data, bool toggle);
/* Stops and frees driver data. */
void (*free)(void *data);
/* Defines if driver will take standard floating point samples,
* or int16_t samples.
*
* If true is returned, the audio driver is capable of using
* floating point data. This will likely increase performance as the
* resampler unit uses floating point. The sample range is
* [-1.0, 1.0].
* */
bool (*use_float)(void *data);
/* Human-readable identifier. */
const char *ident;
/* Optional. Get audio device list (allocates, caller has to free this) */
void *(*device_list_new)(void *data);
/* Optional. Frees audio device list */
void (*device_list_free)(void *data, void *data2);
/* Optional. */
size_t (*write_avail)(void *data);
size_t (*buffer_size)(void *data);
} audio_driver_t;
typedef struct
{
double source_ratio_original;
double source_ratio_current;
uint64_t free_samples_count;
struct string_list *devices_list;
float *output_samples_buf;
#ifdef HAVE_REWIND
int16_t *rewind_buf;
#endif
int16_t *output_samples_conv_buf;
#ifdef HAVE_DSP_FILTER
retro_dsp_filter_t *dsp;
#endif
const retro_resampler_t *resampler;
void *resampler_data;
const audio_driver_t *current_audio;
void *context_audio_data;
float *input_data;
#ifdef HAVE_AUDIOMIXER
struct audio_mixer_stream
mixer_streams[AUDIO_MIXER_MAX_SYSTEM_STREAMS];
#endif
struct retro_audio_callback callback; /* ptr alignment */
/* ptr alignment */
size_t chunk_size;
size_t chunk_nonblock_size;
size_t chunk_block_size;
#ifdef HAVE_REWIND
size_t rewind_ptr;
size_t rewind_size;
#endif
size_t buffer_size;
size_t data_ptr;
unsigned free_samples_buf[
AUDIO_BUFFER_FREE_SAMPLES_COUNT];
#ifdef HAVE_AUDIOMIXER
float mixer_volume_gain;
#endif
float rate_control_delta;
float input;
float volume_gain;
enum resampler_quality resampler_quality;
char resampler_ident[64];
bool active;
bool control;
bool mute_enable;
bool use_float;
bool suspended;
#ifdef HAVE_AUDIOMIXER
bool mixer_mute_enable;
bool mixer_active;
#endif
#ifdef HAVE_RUNAHEAD
bool hard_disable;
#endif
} audio_driver_state_t;
bool audio_driver_enable_callback(void);
bool audio_driver_disable_callback(void);
bool audio_driver_mixer_extension_supported(const char *ext);
void audio_driver_dsp_filter_free(void);
bool audio_driver_dsp_filter_init(const char *device);
void audio_driver_set_buffer_size(size_t bufsize);
bool audio_driver_get_devices_list(void **ptr);
void audio_driver_setup_rewind(void);
bool audio_driver_callback(void);
bool audio_driver_has_callback(void);
void audio_driver_frame_is_reverse(void);
void audio_set_float(enum audio_action action, float val);
float *audio_get_float_ptr(enum audio_action action);
bool *audio_get_bool_ptr(enum audio_action action);
#ifdef HAVE_AUDIOMIXER
audio_mixer_stream_t *audio_driver_mixer_get_stream(unsigned i);
bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params);
void audio_driver_mixer_play_stream(unsigned i);
void audio_driver_mixer_play_menu_sound(unsigned i);
void audio_driver_mixer_play_menu_sound_looped(unsigned i);
void audio_driver_mixer_play_stream_sequential(unsigned i);
void audio_driver_mixer_play_stream_looped(unsigned i);
void audio_driver_mixer_stop_stream(unsigned i);
float audio_driver_mixer_get_stream_volume(unsigned i);
void audio_driver_mixer_set_stream_volume(unsigned i, float vol);
void audio_driver_mixer_remove_stream(unsigned i);
enum audio_mixer_state audio_driver_mixer_get_stream_state(unsigned i);
const char *audio_driver_mixer_get_stream_name(unsigned i);
void audio_driver_load_system_sounds(void);
#endif
bool audio_driver_start(bool is_shutdown);
bool audio_driver_stop(void);
#ifdef HAVE_TRANSLATE
/* TODO/FIXME - Doesn't currently work. Fix this. */
bool audio_driver_is_ai_service_speech_running(void);
#endif
extern audio_driver_t audio_rsound;
extern audio_driver_t audio_audioio;
extern audio_driver_t audio_oss;
extern audio_driver_t audio_alsa;
extern audio_driver_t audio_alsathread;
extern audio_driver_t audio_tinyalsa;
extern audio_driver_t audio_roar;
extern audio_driver_t audio_openal;
extern audio_driver_t audio_opensl;
extern audio_driver_t audio_jack;
extern audio_driver_t audio_sdl;
extern audio_driver_t audio_xa;
extern audio_driver_t audio_pulse;
extern audio_driver_t audio_dsound;
extern audio_driver_t audio_wasapi;
extern audio_driver_t audio_coreaudio;
extern audio_driver_t audio_coreaudio3;
extern audio_driver_t audio_xenon360;
extern audio_driver_t audio_ps3;
extern audio_driver_t audio_gx;
extern audio_driver_t audio_ax;
extern audio_driver_t audio_psp;
extern audio_driver_t audio_ps2;
extern audio_driver_t audio_ctr_csnd;
extern audio_driver_t audio_ctr_dsp;
#ifdef HAVE_THREADS
extern audio_driver_t audio_ctr_dsp_thread;
#endif
extern audio_driver_t audio_switch;
extern audio_driver_t audio_switch_thread;
extern audio_driver_t audio_switch_libnx_audren;
extern audio_driver_t audio_switch_libnx_audren_thread;
extern audio_driver_t audio_rwebaudio;
audio_driver_state_t *audio_state_get_ptr(void);
extern audio_driver_t *audio_drivers[];
/**
* audio_compute_buffer_statistics:
*
* Computes audio buffer statistics.
*
**/
bool audio_compute_buffer_statistics(audio_statistics_t *stats);
float audio_driver_monitor_adjust_system_rates(
double input_sample_rate,
double input_fps,
float video_refresh_rate,
unsigned video_swap_interval,
float audio_max_timing_skew);
bool audio_driver_init_internal(
void *settings_data,
bool audio_cb_inited);
bool audio_driver_deinit(void);
bool audio_driver_find_driver(
void *settings_data,
const char *prefix,
bool verbosity_enabled);
/**
* audio_driver_sample:
* @left : value of the left audio channel.
* @right : value of the right audio channel.
*
* Audio sample render callback function.
**/
void audio_driver_sample(int16_t left, int16_t right);
/**
* audio_driver_sample_batch:
* @data : pointer to audio buffer.
* @frames : amount of audio frames to push.
*
* Batched audio sample render callback function.
*
* Returns: amount of frames sampled. Will be equal to @frames
* unless @frames exceeds (AUDIO_CHUNK_SIZE_NONBLOCKING / 2).
**/
size_t audio_driver_sample_batch(const int16_t *data, size_t frames);
#ifdef HAVE_REWIND
/**
* audio_driver_sample_rewind:
* @left : value of the left audio channel.
* @right : value of the right audio channel.
*
* Audio sample render callback function (rewind version).
* This callback function will be used instead of
* audio_driver_sample when rewinding is activated.
**/
void audio_driver_sample_rewind(int16_t left, int16_t right);
/**
* audio_driver_sample_batch_rewind:
* @data : pointer to audio buffer.
* @frames : amount of audio frames to push.
*
* Batched audio sample render callback function (rewind version).
*
* This callback function will be used instead of
* audio_driver_sample_batch when rewinding is activated.
*
* Returns: amount of frames sampled. Will be equal to @frames
* unless @frames exceeds (AUDIO_CHUNK_SIZE_NONBLOCKING / 2).
**/
size_t audio_driver_sample_batch_rewind(
const int16_t *data, size_t frames);
#endif
#ifdef HAVE_MENU
void audio_driver_menu_sample(void);
#endif
RETRO_END_DECLS
#endif /* __AUDIO_DRIVER__H */
+1
View File
@@ -21,6 +21,7 @@
#include <rthreads/rthreads.h>
#include "audio_thread_wrapper.h"
#include "audio_driver.h"
#include "../verbosity.h"
typedef struct audio_thread
+1 -1
View File
@@ -19,7 +19,7 @@
#include <boolean.h>
#include "../retroarch.h"
#include "audio_driver.h"
/**
* audio_init_thread:
+1 -1
View File
@@ -21,7 +21,7 @@
#include <alsa/asoundlib.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct alsa
+1 -1
View File
@@ -19,7 +19,7 @@
#include <sys/asoundlib.h>
#include <retro_math.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#define MAX_FRAG_SIZE 3072
#define DEFAULT_RATE 48000
+1 -1
View File
@@ -24,7 +24,7 @@
#include <queues/fifo_queue.h>
#include <string/stdstring.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#define TRY_ALSA(x) if (x < 0) \
+2 -2
View File
@@ -24,10 +24,10 @@
#include <sys/audioio.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#include "../../config.h"
#endif
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#define DEFAULT_DEV "/dev/audio"
+1 -1
View File
@@ -31,7 +31,7 @@
#include <retro_endianness.h>
#include <string/stdstring.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct coreaudio
+1 -1
View File
@@ -22,7 +22,7 @@
#include <stdlib.h>
#include <memory.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#pragma mark - ringbuffer
+1 -1
View File
@@ -19,7 +19,7 @@
#include <retro_miscellaneous.h>
#include <retro_timers.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
typedef struct
{
+1 -1
View File
@@ -17,7 +17,7 @@
#include <string.h>
#include <malloc.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../ctr/ctr_debug.h"
typedef struct
+1 -1
View File
@@ -19,7 +19,7 @@
#include <queues/fifo_queue.h>
#include <rthreads/rthreads.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../ctr/ctr_debug.h"
typedef struct
+1 -1
View File
@@ -39,7 +39,7 @@
#include <queues/fifo_queue.h>
#include <string/stdstring.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#ifdef _XBOX
+2 -1
View File
@@ -27,9 +27,10 @@
#include <boolean.h>
#include <retro_inline.h>
#include "../../retroarch.h"
#include <defines/gx_defines.h>
#include "../audio_driver.h"
typedef struct
{
size_t write_ptr;
+1 -1
View File
@@ -26,7 +26,7 @@
#include <rthreads/rthreads.h>
#include "../../configuration.h"
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#define FRAMES(x) (x / (sizeof(float) * 2))
+1 -1
View File
@@ -33,7 +33,7 @@
#include <retro_miscellaneous.h>
#include <retro_timers.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#define BUFSIZE 1024
+2 -2
View File
@@ -21,7 +21,7 @@
#include <rthreads/rthreads.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
/* Helper macros, COM-style. */
#define SLObjectItf_Realize(a, ...) ((*(a))->Realize(a, __VA_ARGS__))
@@ -116,7 +116,7 @@ static void *sl_init(const char *device, unsigned rate, unsigned latency,
if (!sl)
goto error;
RARCH_LOG("[OpenSL]: Requested audio latency: %u ms.", latency);
RARCH_LOG("[OpenSL]: Requested audio latency: %u ms.\n", latency);
GOTO_IF_FAIL(slCreateEngine(&sl->engine_object, 0, NULL, 0, NULL, NULL));
GOTO_IF_FAIL(SLObjectItf_Realize(sl->engine_object, SL_BOOLEAN_FALSE));
+7 -2
View File
@@ -30,10 +30,10 @@
#include <retro_endianness.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#include "../../config.h"
#endif
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#ifdef HAVE_OSS_BSD
@@ -126,8 +126,10 @@ static bool oss_stop(void *data)
{
oss_audio_t *ossaudio = (oss_audio_t*)data;
#if !defined(RETROFW)
if (ioctl(ossaudio->fd, SNDCTL_DSP_RESET, 0) < 0)
return false;
#endif
ossaudio->is_paused = true;
return true;
@@ -167,8 +169,11 @@ static void oss_free(void *data)
{
oss_audio_t *ossaudio = (oss_audio_t*)data;
/*RETROFW IOCTL always returns EINVAL*/
#if !defined(RETROFW)
if (ioctl(ossaudio->fd, SNDCTL_DSP_RESET, 0) < 0)
return;
#endif
close(ossaudio->fd);
free(data);
+1 -1
View File
@@ -20,7 +20,7 @@
#include <kernel.h>
#include <audsrv.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#define AUDIO_BUFFER 128 * 1024
#define AUDIO_CHANNELS 2
+2 -2
View File
@@ -19,10 +19,10 @@
#include <queues/fifo_queue.h>
#include "../../retroarch.h"
#include <defines/ps3_defines.h>
#include "../audio_driver.h"
#define AUDIO_BLOCKS 8
#define AUDIO_CHANNELS 2
+1 -1
View File
@@ -40,7 +40,7 @@
#define SceUID uint32_t
#endif
#include "../../retroarch.h"
#include "../audio_driver.h"
typedef struct psp_audio
{
+1 -1
View File
@@ -23,7 +23,7 @@
#include <retro_miscellaneous.h>
#include <retro_endianness.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct
+1 -1
View File
@@ -23,7 +23,7 @@
#include <boolean.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct
+1 -1
View File
@@ -21,7 +21,7 @@
#include <queues/fifo_queue.h>
#include <rthreads/rthreads.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "rsound.h"
typedef struct rsd
+1 -1
View File
@@ -18,7 +18,7 @@
#include <unistd.h>
#include <boolean.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
/* forward declarations */
unsigned RWebAudioSampleRate(void);
+3 -3
View File
@@ -25,12 +25,12 @@
#include <retro_inline.h>
#include <retro_math.h>
#include "../../retroarch.h"
#include "../../verbosity.h"
#include "SDL.h"
#include "SDL_audio.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct sdl_audio
{
#ifdef HAVE_THREADS
+1 -1
View File
@@ -20,7 +20,7 @@
#include <stdint.h>
#include "switch_audio_compat.h"
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#ifdef HAVE_LIBNX
+1 -1
View File
@@ -23,7 +23,7 @@
#include <switch.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#define BUFFER_COUNT 5
@@ -21,7 +21,8 @@
#include <switch.h>
#include <queues/fifo_queue.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#include "../../tasks/tasks_internal.h"
+2 -1
View File
@@ -28,7 +28,8 @@
#endif
#include <queues/fifo_queue.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#include "../../tasks/tasks_internal.h"
+1 -1
View File
@@ -64,7 +64,7 @@
#include <retro_inline.h>
#include <retro_endianness.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
/* Implementation tinyalsa pcm */
+1 -1
View File
@@ -22,7 +22,7 @@
#include "../common/mmdevice_common.h"
#include "../common/mmdevice_common_inline.h"
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#include "../../configuration.h"
+1 -1
View File
@@ -24,7 +24,7 @@
#include "../../wiiu/wiiu_dbg.h"
#include "../../wiiu/system/memory.h"
#include "../../retroarch.h"
#include "../audio_driver.h"
typedef struct
{
+1 -1
View File
@@ -42,7 +42,7 @@
#include "../common/mmdevice_common.h"
#endif
#include "../../retroarch.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
typedef struct xaudio2 xaudio2_t;
+1 -1
View File
@@ -21,7 +21,7 @@
#include <retro_inline.h>
#include "../../retroarch.h"
#include "../audio_driver.h"
#define SOUND_FREQUENCY 48000
#define MAX_BUFFER 2048
-6
View File
@@ -29,12 +29,6 @@
#include <audio/audio_resampler.h>
#if (defined(__ARM_NEON__) && !defined(DONT_WANT_ARM_ASM_OPTIMIZATIONS)) || defined(HAVE_NEON)
#ifndef HAVE_ARM_NEON_ASM_OPTIMIZATIONS
#define HAVE_ARM_NEON_ASM_OPTIMIZATIONS
#endif
#endif
/* Since SSE and NEON don't provide support for trigonometric functions
* we approximate those with polynoms
*
+206
View File
@@ -0,0 +1,206 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2021 - Daniel De Matteis
*
* 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 <stdint.h>
#ifdef HAVE_CONFIG_H
#include "../config.h"
#endif
#include "../driver.h"
#include "../list_special.h"
#include "../retroarch.h"
#include "../runloop.h"
#include "../verbosity.h"
#include "bluetooth_driver.h"
static bluetooth_driver_t bluetooth_null = {
NULL, /* init */
NULL, /* free */
NULL, /* scan */
NULL, /* get_devices */
NULL, /* device_is_connected */
NULL, /* device_get_sublabel */
NULL, /* connect_device */
NULL, /* remove_device */
"null",
};
const bluetooth_driver_t *bluetooth_drivers[] = {
#ifdef HAVE_BLUETOOTH
&bluetooth_bluetoothctl,
#ifdef HAVE_DBUS
&bluetooth_bluez,
#endif
#endif
&bluetooth_null,
NULL,
};
static bluetooth_driver_state_t bluetooth_driver_st = {0};
bluetooth_driver_state_t *bluetooth_state_get_ptr(void)
{
return &bluetooth_driver_st;
}
/**
* config_get_bluetooth_driver_options:
*
* Get an enumerated list of all bluetooth driver names,
* separated by '|'.
*
* Returns: string listing of all bluetooth driver names,
* separated by '|'.
**/
const char* config_get_bluetooth_driver_options(void)
{
return char_list_new_special(STRING_LIST_BLUETOOTH_DRIVERS, NULL);
}
void driver_bluetooth_scan(void)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if ( bt_st
&& bt_st->active
&& bt_st->drv->scan )
bt_st->drv->scan(bt_st->data);
}
void driver_bluetooth_get_devices(struct string_list* devices)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if ( bt_st
&& bt_st->active
&& bt_st->drv->get_devices )
bt_st->drv->get_devices(bt_st->data, devices);
}
bool driver_bluetooth_device_is_connected(unsigned i)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if ( bt_st
&& bt_st->active
&& bt_st->drv->device_is_connected )
return bt_st->drv->device_is_connected(bt_st->data, i);
return false;
}
void driver_bluetooth_device_get_sublabel(char *s, unsigned i, size_t len)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if ( bt_st
&& bt_st->active
&& bt_st->drv->device_get_sublabel )
bt_st->drv->device_get_sublabel(bt_st->data, s, i, len);
}
bool driver_bluetooth_connect_device(unsigned i)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if (bt_st->active)
return bt_st->drv->connect_device(bt_st->data, i);
return false;
}
bool driver_bluetooth_remove_device(unsigned i)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
if (bt_st->active)
return bt_st->drv->remove_device(bt_st->data, i);
return false;
}
bool bluetooth_driver_ctl(enum rarch_bluetooth_ctl_state state, void *data)
{
bluetooth_driver_state_t *bt_st = &bluetooth_driver_st;
settings_t *settings = config_get_ptr();
switch (state)
{
case RARCH_BLUETOOTH_CTL_DESTROY:
bt_st->drv = NULL;
bt_st->data = NULL;
bt_st->active = false;
break;
case RARCH_BLUETOOTH_CTL_FIND_DRIVER:
{
const char *prefix = "bluetooth driver";
int i = (int)driver_find_index(
"bluetooth_driver",
settings->arrays.bluetooth_driver);
if (i >= 0)
bt_st->drv = (const bluetooth_driver_t*)bluetooth_drivers[i];
else
{
if (verbosity_is_enabled())
{
unsigned d;
RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.bluetooth_driver);
RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; bluetooth_drivers[d]; d++)
RARCH_LOG_OUTPUT("\t%s\n", bluetooth_drivers[d]->ident);
RARCH_WARN("Going to default to first %s...\n", prefix);
}
bt_st->drv = (const bluetooth_driver_t*)bluetooth_drivers[0];
if (!bt_st->drv)
retroarch_fail(1, "find_bluetooth_driver()");
}
}
break;
case RARCH_BLUETOOTH_CTL_DEINIT:
if (bt_st->data && bt_st->drv)
{
if (bt_st->drv->free)
bt_st->drv->free(bt_st->data);
}
bt_st->data = NULL;
bt_st->active = false;
break;
case RARCH_BLUETOOTH_CTL_INIT:
/* Resource leaks will follow if bluetooth is initialized twice. */
if (bt_st->data)
return false;
bluetooth_driver_ctl(RARCH_BLUETOOTH_CTL_FIND_DRIVER, NULL);
if (bt_st->drv && bt_st->drv->init)
{
bt_st->active = true;
bt_st->data = bt_st->drv->init();
if (!bt_st->data)
{
RARCH_ERR("Failed to initialize bluetooth driver. Will continue without bluetooth.\n");
bt_st->active = false;
}
}
else
bt_st->active = false;
break;
default:
break;
}
return false;
}
+14
View File
@@ -43,6 +43,7 @@ typedef struct bluetooth_driver
bool (*device_is_connected)(void *data, unsigned i);
void (*device_get_sublabel)(void *data, char *s, unsigned i, size_t len);
bool (*connect_device)(void *data, unsigned i);
bool (*remove_device)(void *data, unsigned i);
const char *ident;
} bluetooth_driver_t;
@@ -50,6 +51,13 @@ typedef struct bluetooth_driver
extern bluetooth_driver_t bluetooth_bluetoothctl;
extern bluetooth_driver_t bluetooth_bluez;
typedef struct
{
const bluetooth_driver_t *drv;
void *data;
bool active;
} bluetooth_driver_state_t;
/**
* config_get_bluetooth_driver_options:
*
@@ -71,8 +79,14 @@ void driver_bluetooth_device_get_sublabel(char *s, unsigned i, size_t len);
bool driver_bluetooth_connect_device(unsigned i);
bool driver_bluetooth_remove_device(unsigned i);
bool bluetooth_driver_ctl(enum rarch_bluetooth_ctl_state state, void *data);
bluetooth_driver_state_t *bluetooth_state_get_ptr(void);
extern const bluetooth_driver_t *bluetooth_drivers[];
RETRO_END_DECLS
#endif
+40
View File
@@ -191,6 +191,45 @@ static bool bluetoothctl_connect_device(void *data, unsigned idx)
return true;
}
static bool bluetoothctl_remove_device(void *data, unsigned idx)
{
unsigned i;
bluetoothctl_t *btctl = (bluetoothctl_t*) data;
char device[18] = {0};
const char *line = btctl->lines->elems[idx].data;
static struct string_list* list = NULL;
/* bluetoothctl devices outputs lines of the format:
* $ bluetoothctl devices
* 'Device (mac address) (device name)'
*/
list = string_split(line, " ");
if (!list)
return false;
if (list->size == 0)
{
string_list_free(list);
return false;
}
strlcpy(device, list->elems[1].data, sizeof(device));
string_list_free(list);
snprintf(btctl->command, sizeof(btctl->command), "\
echo -e \"disconnect %s\\nremove %s\\n\" | bluetoothctl",
device, device);
pclose(popen(btctl->command, "r"));
runloop_msg_queue_push(msg_hash_to_str(MSG_BLUETOOTH_PAIRING_REMOVED),
1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT,
MESSAGE_QUEUE_CATEGORY_INFO);
btctl->bluetoothctl_counter[idx] = 0;
return true;
}
static void bluetoothctl_device_get_sublabel(
void *data, char *s, unsigned i, size_t len)
{
@@ -211,5 +250,6 @@ bluetooth_driver_t bluetooth_bluetoothctl = {
bluetoothctl_device_is_connected,
bluetoothctl_device_get_sublabel,
bluetoothctl_connect_device,
bluetoothctl_remove_device,
"bluetoothctl",
};
+22
View File
@@ -604,6 +604,27 @@ static bool bluez_connect_device(void *data, unsigned i)
return true;
}
static bool bluez_remove_device(void *data, unsigned i)
{
bluez_t *bluez = (bluez_t*)data;
bluez_dbus_connect(bluez);
/* Disconnect the device */
device_method(bluez, bluez->devices->data[i].path, "Disconnect");
/* Remove the device */
if (device_method(bluez, bluez->devices->data[i].path, "RemoveDevice"))
return false;
runloop_msg_queue_push(msg_hash_to_str(MSG_BLUETOOTH_PAIRING_REMOVED),
1, 180, true, NULL, MESSAGE_QUEUE_ICON_DEFAULT,
MESSAGE_QUEUE_CATEGORY_INFO);
bluez_dbus_disconnect(bluez);
bluez->bluez_cache_counter[i] = 0;
return true;
}
bluetooth_driver_t bluetooth_bluez = {
bluez_init,
bluez_free,
@@ -612,5 +633,6 @@ bluetooth_driver_t bluetooth_bluez = {
bluez_device_is_connected,
bluez_device_get_sublabel,
bluez_connect_device,
bluez_remove_device,
"bluez",
};
+146
View File
@@ -0,0 +1,146 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2021 - Daniel De Matteis
*
* 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 <stdint.h>
#include <libretro.h>
#include "../configuration.h"
#include "../driver.h"
#include "../list_special.h"
#include "../runloop.h"
#include "../verbosity.h"
#include "camera_driver.h"
static void *nullcamera_init(const char *device, uint64_t caps,
unsigned width, unsigned height) { return (void*)-1; }
static void nullcamera_free(void *data) { }
static void nullcamera_stop(void *data) { }
static bool nullcamera_start(void *data) { return true; }
static bool nullcamera_poll(void *a,
retro_camera_frame_raw_framebuffer_t b,
retro_camera_frame_opengl_texture_t c) { return true; }
static camera_driver_t camera_null = {
nullcamera_init,
nullcamera_free,
nullcamera_start,
nullcamera_stop,
nullcamera_poll,
"null",
};
const camera_driver_t *camera_drivers[] = {
#ifdef HAVE_V4L2
&camera_v4l2,
#endif
#ifdef EMSCRIPTEN
&camera_rwebcam,
#endif
#ifdef ANDROID
&camera_android,
#endif
&camera_null,
NULL,
};
static camera_driver_state_t camera_driver_st = {0};
camera_driver_state_t *camera_state_get_ptr(void)
{
return &camera_driver_st;
}
/**
* config_get_camera_driver_options:
*
* Get an enumerated list of all camera driver names,
* separated by '|'.
*
* Returns: string listing of all camera driver names,
* separated by '|'.
**/
const char *config_get_camera_driver_options(void)
{
return char_list_new_special(STRING_LIST_CAMERA_DRIVERS, NULL);
}
bool driver_camera_start(void)
{
camera_driver_state_t *camera_st = &camera_driver_st;
if ( camera_st
&& camera_st->data
&& camera_st->driver
&& camera_st->driver->start)
{
settings_t *settings = config_get_ptr();
bool camera_allow = settings->bools.camera_allow;
if (camera_allow)
return camera_st->driver->start(camera_st->data);
runloop_msg_queue_push(
"Camera is explicitly disabled.\n", 1, 180, false,
NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
return true;
}
void driver_camera_stop(void)
{
camera_driver_state_t *camera_st = &camera_driver_st;
if ( camera_st->driver
&& camera_st->driver->stop
&& camera_st->data)
camera_st->driver->stop(camera_st->data);
}
bool camera_driver_find_driver(const char *prefix,
bool verbosity_enabled)
{
settings_t *settings = config_get_ptr();
camera_driver_state_t
*camera_st = &camera_driver_st;
int i = (int)driver_find_index(
"camera_driver",
settings->arrays.camera_driver);
if (i >= 0)
camera_st->driver = (const camera_driver_t*)camera_drivers[i];
else
{
if (verbosity_enabled)
{
unsigned d;
RARCH_ERR("Couldn't find any %s named \"%s\"\n", prefix,
settings->arrays.camera_driver);
RARCH_LOG_OUTPUT("Available %ss are:\n", prefix);
for (d = 0; camera_drivers[d]; d++)
{
if (camera_drivers[d])
{
RARCH_LOG_OUTPUT("\t%s\n", camera_drivers[d]->ident);
}
}
RARCH_WARN("Going to default to first %s...\n", prefix);
}
if (!(camera_st->driver = (const camera_driver_t*)camera_drivers[0]))
return false;
}
return true;
}
+91
View File
@@ -0,0 +1,91 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2021 - Daniel De Matteis
*
* 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 _CAMERA_DRIVER_H
#define _CAMERA_DRIVER_H
#include <stdint.h>
#include <boolean.h>
#include <retro_common_api.h>
#ifdef HAVE_CONFIG_H
#include "../config.h"
#endif /* HAVE_CONFIG_H */
RETRO_BEGIN_DECLS
typedef struct camera_driver
{
/* FIXME: params for initialization - queries for resolution,
* framerate, color format which might or might not be honored. */
void *(*init)(const char *device, uint64_t buffer_types,
unsigned width, unsigned height);
void (*free)(void *data);
bool (*start)(void *data);
void (*stop)(void *data);
/* Polls the camera driver.
* Will call the appropriate callback if a new frame is ready.
* Returns true if a new frame was handled. */
bool (*poll)(void *data,
retro_camera_frame_raw_framebuffer_t frame_raw_cb,
retro_camera_frame_opengl_texture_t frame_gl_cb);
const char *ident;
} camera_driver_t;
typedef struct
{
struct retro_camera_callback cb; /* uint64_t alignment */
const camera_driver_t *driver;
void *data;
bool active;
} camera_driver_state_t;
extern const camera_driver_t *camera_drivers[];
extern camera_driver_t camera_v4l2;
extern camera_driver_t camera_android;
extern camera_driver_t camera_rwebcam;
extern camera_driver_t camera_avfoundation;
/**
* config_get_camera_driver_options:
*
* Get an enumerated list of all camera driver names,
* separated by '|'.
*
* Returns: string listing of all camera driver names,
* separated by '|'.
**/
const char* config_get_camera_driver_options(void);
bool driver_camera_start(void);
void driver_camera_stop(void);
bool camera_driver_find_driver(const char *prefix,
bool verbosity_enabled);
camera_driver_state_t *camera_state_get_ptr(void);
RETRO_END_DECLS
#endif
+2
View File
@@ -15,8 +15,10 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <libretro.h>
#include <glsym/glsym.h>
#include "../camera_driver.h"
#include "../../retroarch.h"
typedef struct android_camera
+2
View File
@@ -17,7 +17,9 @@
#include <stdint.h>
#include <boolean.h>
#include <libretro.h>
#include "../camera_driver.h"
#include "../../retroarch.h"
/* forward declarations */
+2
View File
@@ -42,9 +42,11 @@
#include <gfx/scaler/scaler.h>
#include <gfx/video_frame.h>
#include <file/file_path.h>
#include <libretro.h>
#include <compat/strl.h>
#include "../camera_driver.h"
#include "../../retroarch.h"
#include "../../verbosity.h"
+8 -7
View File
@@ -45,6 +45,7 @@
#include "msg_hash.h"
#include "configuration.h"
#include "retroarch.h"
#include "runloop.h"
#include "dynamic.h"
#include "core.h"
#include "verbosity.h"
@@ -693,17 +694,17 @@ static bool cheat_manager_get_game_specific_filename(
{
char s1[PATH_MAX_LENGTH];
struct retro_system_info system_info;
global_t *global = global_get_ptr();
const char *core_name = NULL;
const char *game_name = NULL;
runloop_state_t *runloop_st = runloop_state_get_ptr();
const char *core_name = NULL;
const char *game_name = NULL;
s1[0] = '\0';
s1[0] = '\0';
if (!global || !core_get_system_info(&system_info))
if (!core_get_system_info(&system_info))
return false;
core_name = system_info.library_name;
game_name = path_basename_nocompression(global->name.cheatfile);
game_name = path_basename_nocompression(runloop_st->name.cheatfile);
if (string_is_empty(path_cheat_database) ||
string_is_empty(core_name) ||
@@ -776,7 +777,7 @@ int cheat_manager_initialize_memory(rarch_setting_t *setting, size_t idx, bool w
retro_ctx_memory_info_t meminfo;
bool refresh = false;
bool is_search_initialization = (setting != NULL);
rarch_system_info_t *system = runloop_get_system_info();
rarch_system_info_t *system = &runloop_state_get_ptr()->system;
unsigned offset = 0;
cheat_manager_t *cheat_st = &cheat_manager_state;
+1032 -1261
View File
File diff suppressed because it is too large. Load diff
+3
View File
@@ -26,6 +26,8 @@
RETRO_BEGIN_DECLS
bool rcheevos_load(const void *data);
void rcheevos_change_disc(const char* new_disc_path, bool initial_disc);
size_t rcheevos_get_serialize_size(void);
bool rcheevos_get_serialized_data(void* buffer);
bool rcheevos_set_serialized_data(void* buffer);
@@ -42,6 +44,7 @@ void rcheevos_toggle_hardcore_paused(void);
bool rcheevos_hardcore_active(void);
void rcheevos_validate_config_settings(void);
void rcheevos_validate_netplay(int player_number);
void rcheevos_leaderboards_enabled_changed(void);
+1247 -108
View File
File diff suppressed because it is too large. Load diff
+16
View File
@@ -20,13 +20,29 @@
RETRO_BEGIN_DECLS
typedef void (*rcheevos_client_callback)(void* userdata);
void rcheevos_client_initialize(void);
void rcheevos_client_login_with_password(const char* username, const char* password,
rcheevos_client_callback callback, void* userdata);
void rcheevos_client_login_with_token(const char* username, const char* token,
rcheevos_client_callback callback, void* userdata);
void rcheevos_client_identify_game(const char* hash, rcheevos_client_callback callback, void* userdata);
void rcheevos_client_initialize_runtime(unsigned game_id, rcheevos_client_callback callback, void* userdata);
void rcheevos_client_start_session(unsigned game_id);
void rcheevos_client_award_achievement(unsigned achievement_id);
void rcheevos_client_submit_lboard_entry(unsigned leaderboard_id, int value);
void rcheevos_client_fetch_badges(rcheevos_client_callback callback, void* userdata);
void rcheevos_log_url(const char* api, const char* url);
void rcheevos_get_user_agent(rcheevos_locals_t *locals, char *buffer, size_t len);
RETRO_END_DECLS
#endif /* __RARCH_CHEEVOS_MENU_H */
+68 -22
View File
@@ -18,11 +18,8 @@
#define __RARCH_CHEEVOS_LOCALS_H
#include "../deps/rcheevos/include/rc_runtime.h"
#include "../deps/rcheevos/src/rcheevos/rc_libretro.h"
#include <../command.h>
#include <../verbosity.h>
#include <boolean.h>
#include <queues/task_queue.h>
@@ -32,6 +29,9 @@
#include <retro_common_api.h>
#include "../command.h"
#include "../verbosity.h"
RETRO_BEGIN_DECLS
/************************************************************************
@@ -61,7 +61,8 @@ enum
{
RCHEEVOS_ACTIVE_SOFTCORE = 1 << 0,
RCHEEVOS_ACTIVE_HARDCORE = 1 << 1,
RCHEEVOS_ACTIVE_UNOFFICIAL = 1 << 2
RCHEEVOS_ACTIVE_UNOFFICIAL = 1 << 2,
RCHEEVOS_ACTIVE_UNSUPPORTED = 1 << 3
};
typedef struct rcheevos_racheevo_t
@@ -94,20 +95,56 @@ typedef struct rcheevos_ralboard_t
unsigned format;
} rcheevos_ralboard_t;
typedef struct rcheevos_rapatchdata_t
{
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;
} rcheevos_rapatchdata_t;
enum rcheevos_load_state
{
RCHEEVOS_LOAD_STATE_NONE,
RCHEEVOS_LOAD_STATE_IDENTIFYING_GAME,
RCHEEVOS_LOAD_STATE_FETCHING_GAME_DATA,
RCHEEVOS_LOAD_STATE_STARTING_SESSION,
RCHEEVOS_LOAD_STATE_FETCHING_BADGES,
RCHEEVOS_LOAD_STATE_DONE,
RCHEEVOS_LOAD_STATE_UNKNOWN_GAME,
RCHEEVOS_LOAD_STATE_NETWORK_ERROR,
RCHEEVOS_LOAD_STATE_LOGIN_FAILED,
RCHEEVOS_LOAD_STATE_ABORTED
};
typedef struct rcheevos_load_info_t
{
enum rcheevos_load_state state;
int hashes_tried;
int outstanding_requests;
#ifdef HAVE_THREADS
slock_t* request_lock;
#endif
} rcheevos_load_info_t;
typedef struct rcheevos_hash_entry_t
{
uint32_t path_djb2;
int game_id;
struct rcheevos_hash_entry_t* next;
char hash[33];
} rcheevos_hash_entry_t;
typedef struct rcheevos_game_info_t
{
int id;
int console_id;
char* title;
char badge_name[16];
char* hash;
rcheevos_hash_entry_t* hashes;
rcheevos_racheevo_t* achievements;
rcheevos_ralboard_t* leaderboards;
unsigned achievement_count;
unsigned leaderboard_count;
} rcheevos_game_info_t;
#ifdef HAVE_MENU
@@ -124,18 +161,15 @@ void rcheevos_menu_reset_badges(void);
typedef struct rcheevos_locals_t
{
rc_runtime_t runtime; /* rcheevos runtime state */
rcheevos_rapatchdata_t patchdata; /* achievement/leaderboard data from the server */
rcheevos_game_info_t game; /* information about the current game */
rc_libretro_memory_regions_t memory;/* achievement addresses to core memory mappings */
retro_task_t* task; /* load task */
#ifdef HAVE_THREADS
slock_t* task_lock; /* mutex for starting/stopping load task */
enum event_command queued_command; /* action queued by background thread to be run on main thread */
#endif
char username[32]; /* case-corrected username */
char token[32]; /* user's session token */
char hash[33]; /* retroachievements hash for current content */
char user_agent_prefix[128]; /* RetroArch/OS version information */
char user_agent_core[256]; /* RetroArch/OS/Core version information */
@@ -145,16 +179,28 @@ typedef struct rcheevos_locals_t
unsigned menuitem_count; /* current number of items in the menuitems array */
#endif
rcheevos_load_info_t load_info; /* load info */
bool hardcore_active; /* hardcore functionality is active */
bool loaded; /* load task has completed */
bool core_supports; /* false if core explicitly disables achievements */
bool network_error; /* hash lookup or login failed with network error */
bool leaderboards_enabled; /* leaderboards are enabled */
bool leaderboard_notifications; /* leaderboard notifications are enabled */
bool leaderboard_trackers; /* leaderboard trackers are enabled */
} rcheevos_locals_t;
rcheevos_locals_t* get_rcheevos_locals(void);
void rcheevos_begin_load_state(enum rcheevos_load_state state);
int rcheevos_end_load_state(void);
bool rcheevos_load_aborted(void);
#ifdef HAVE_THREADS
#define CHEEVOS_LOCK(l) do { slock_lock(l); } while (0)
#define CHEEVOS_UNLOCK(l) do { slock_unlock(l); } while (0)
#else
#define CHEEVOS_LOCK(l)
#define CHEEVOS_UNLOCK(l)
#endif
RETRO_END_DECLS
+60 -110
View File
@@ -28,6 +28,7 @@
#include "../menu/menu_entries.h"
#include <features/features_cpu.h>
#include <retro_assert.h>
enum rcheevos_menuitem_bucket
{
@@ -35,6 +36,7 @@ enum rcheevos_menuitem_bucket
RCHEEVOS_MENUITEM_BUCKET_LOCKED,
RCHEEVOS_MENUITEM_BUCKET_UNLOCKED,
RCHEEVOS_MENUITEM_BUCKET_UNSUPPORTED,
RCHEEVOS_MENUITEM_BUCKET_UNOFFICIAL,
RCHEEVOS_MENUITEM_BUCKET_RECENTLY_UNLOCKED,
RCHEEVOS_MENUITEM_BUCKET_ACTIVE_CHALLENGE,
RCHEEVOS_MENUITEM_BUCKET_ALMOST_THERE
@@ -44,7 +46,7 @@ static void rcheevos_menu_update_bucket(rcheevos_racheevo_t* cheevo)
{
cheevo->menu_progress = 0;
if (!cheevo->memaddr)
if (cheevo->active & RCHEEVOS_ACTIVE_UNSUPPORTED)
{
/* non-active unsupported achievement */
cheevo->menu_bucket = RCHEEVOS_MENUITEM_BUCKET_UNSUPPORTED;
@@ -67,7 +69,10 @@ static void rcheevos_menu_update_bucket(rcheevos_racheevo_t* cheevo)
}
/* active achievement */
cheevo->menu_bucket = RCHEEVOS_MENUITEM_BUCKET_LOCKED;
if (cheevo->active & RCHEEVOS_ACTIVE_UNOFFICIAL)
cheevo->menu_bucket = RCHEEVOS_MENUITEM_BUCKET_UNOFFICIAL;
else
cheevo->menu_bucket = RCHEEVOS_MENUITEM_BUCKET_LOCKED;
trigger = rc_runtime_get_achievement(&rcheevos_locals->runtime, cheevo->id);
if (trigger)
@@ -88,29 +93,17 @@ static void rcheevos_menu_update_bucket(rcheevos_racheevo_t* cheevo)
}
}
static void rcheevos_menu_update_buckets(bool cheevos_test_unofficial)
static void rcheevos_menu_update_buckets(void)
{
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
rcheevos_racheevo_t* cheevo = rcheevos_locals->patchdata.core;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->patchdata.core_count;
rcheevos_racheevo_t* cheevo = rcheevos_locals->game.achievements;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->game.achievement_count;
while (cheevo < stop)
{
rcheevos_menu_update_bucket(cheevo);
++cheevo;
}
if (cheevos_test_unofficial)
{
cheevo = rcheevos_locals->patchdata.unofficial;
stop = cheevo + rcheevos_locals->patchdata.unofficial_count;
while (cheevo < stop)
{
rcheevos_menu_update_bucket(cheevo);
++cheevo;
}
}
}
bool rcheevos_menu_get_state(unsigned menu_offset, char *buffer, size_t len)
@@ -123,15 +116,11 @@ bool rcheevos_menu_get_state(unsigned menu_offset, char *buffer, size_t len)
if (cheevo)
{
if (cheevo->menu_progress)
{
snprintf(buffer, len, "%s - %d%%",
msg_hash_to_str(menuitem->state_label_idx),
cheevo->menu_progress);
}
else
{
strlcpy(buffer, msg_hash_to_str(menuitem->state_label_idx), len);
}
return true;
}
@@ -165,18 +154,8 @@ bool rcheevos_menu_get_sublabel(unsigned menu_offset, char *buffer, size_t len)
void rcheevos_menu_reset_badges(void)
{
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
rcheevos_racheevo_t* cheevo = rcheevos_locals->patchdata.core;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->patchdata.core_count;
while (cheevo < stop)
{
if (cheevo->menu_badge_texture)
video_driver_texture_unload(&cheevo->menu_badge_texture);
++cheevo;
}
cheevo = rcheevos_locals->patchdata.unofficial;
stop = cheevo + rcheevos_locals->patchdata.unofficial_count;
rcheevos_racheevo_t* cheevo = rcheevos_locals->game.achievements;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->game.achievement_count;
while (cheevo < stop)
{
@@ -201,9 +180,7 @@ static rcheevos_menuitem_t* rcheevos_menu_allocate(
rcheevos_locals->menuitem_capacity * sizeof(rcheevos_menuitem_t));
if (new_menuitems)
{
rcheevos_locals->menuitems = new_menuitems;
}
else
{
/* realloc failed */
@@ -250,6 +227,7 @@ static void rcheevos_menu_update_badge(rcheevos_racheevo_t* cheevo)
switch (cheevo->menu_bucket)
{
case RCHEEVOS_MENUITEM_BUCKET_LOCKED:
case RCHEEVOS_MENUITEM_BUCKET_UNOFFICIAL:
case RCHEEVOS_MENUITEM_BUCKET_UNSUPPORTED:
case RCHEEVOS_MENUITEM_BUCKET_ALMOST_THERE:
case RCHEEVOS_MENUITEM_BUCKET_ACTIVE_CHALLENGE:
@@ -292,27 +270,14 @@ static void rcheevos_menu_update_badge(rcheevos_racheevo_t* cheevo)
}
static void rcheevos_menu_append_items(rcheevos_locals_t* rcheevos_locals,
bool cheevos_test_unofficial, enum rcheevos_menuitem_bucket bucket)
enum rcheevos_menuitem_bucket bucket)
{
const settings_t *settings = config_get_ptr();
rcheevos_racheevo_t* cheevo = rcheevos_locals->patchdata.core;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->patchdata.core_count;
bool processing_unofficial = false;
rcheevos_racheevo_t* cheevo = rcheevos_locals->game.achievements;
rcheevos_racheevo_t* stop = cheevo + rcheevos_locals->game.achievement_count;
const unsigned first_index = rcheevos_locals->menuitem_count;
do
while (cheevo < stop)
{
if (cheevo == stop)
{
if (!cheevos_test_unofficial || processing_unofficial)
break;
processing_unofficial = true;
cheevo = rcheevos_locals->patchdata.unofficial;
stop = cheevo + rcheevos_locals->patchdata.unofficial_count;
continue;
}
if (cheevo->menu_bucket == bucket)
{
rcheevos_menuitem_t* menuitem = rcheevos_menu_allocate(rcheevos_locals, cheevo);
@@ -371,7 +336,7 @@ static void rcheevos_menu_append_items(rcheevos_locals_t* rcheevos_locals,
/* fallthrough to default */
default:
if (processing_unofficial)
if (cheevo->active & RCHEEVOS_ACTIVE_UNOFFICIAL)
menuitem->state_label_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNOFFICIAL_ENTRY;
else if (!(cheevo->active & RCHEEVOS_ACTIVE_SOFTCORE))
menuitem->state_label_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY;
@@ -380,15 +345,18 @@ static void rcheevos_menu_append_items(rcheevos_locals_t* rcheevos_locals,
break;
}
if (cheevo->badge && cheevo->badge[0] && settings &&
settings->bools.cheevos_badges_enable)
if (cheevo->badge && cheevo->badge[0])
{
rcheevos_menu_update_badge(cheevo);
#ifndef HAVE_GFX_WIDGETS
const settings_t* settings = config_get_ptr();
if (settings && settings->bools.cheevos_badges_enable)
#endif
rcheevos_menu_update_badge(cheevo);
}
}
++cheevo;
} while (true);
}
}
uintptr_t rcheevos_menu_get_badge_texture(unsigned menu_offset)
@@ -460,7 +428,6 @@ void rcheevos_menu_populate(void* data)
menu_displaylist_info_t* info = (menu_displaylist_info_t*)data;
rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
const settings_t* settings = config_get_ptr();
const bool cheevos_test_unofficial = settings->bools.cheevos_test_unofficial;
unsigned num_locked = 0;
unsigned num_unlocked = 0;
unsigned num_recently_unlocked = 0;
@@ -472,7 +439,6 @@ void rcheevos_menu_populate(void* data)
{
const retro_time_t now = cpu_features_get_time_usec();
const retro_time_t recent_unlock_time = now - (10 * 60 * 1000000); /* 10 minutes ago */
bool processing_unofficial = false;
rcheevos_racheevo_t* cheevo = NULL;
rcheevos_racheevo_t* stop = NULL;
@@ -494,25 +460,14 @@ void rcheevos_menu_populate(void* data)
}
/* update the bucket for each achievement */
rcheevos_menu_update_buckets(cheevos_test_unofficial);
rcheevos_menu_update_buckets();
/* count items in each bucket */
cheevo = rcheevos_locals->patchdata.core;
stop = cheevo + rcheevos_locals->patchdata.core_count;
cheevo = rcheevos_locals->game.achievements;
stop = cheevo + rcheevos_locals->game.achievement_count;
do
while (cheevo < stop)
{
if (cheevo == stop)
{
if (!cheevos_test_unofficial || processing_unofficial)
break;
processing_unofficial = true;
cheevo = rcheevos_locals->patchdata.unofficial;
stop = cheevo + rcheevos_locals->patchdata.unofficial_count;
continue;
}
switch (cheevo->menu_bucket)
{
case RCHEEVOS_MENUITEM_BUCKET_UNLOCKED:
@@ -522,12 +477,11 @@ void rcheevos_menu_populate(void* data)
++num_recently_unlocked;
}
else
{
++num_unlocked;
}
break;
case RCHEEVOS_MENUITEM_BUCKET_LOCKED:
case RCHEEVOS_MENUITEM_BUCKET_UNOFFICIAL:
++num_locked;
break;
@@ -545,14 +499,12 @@ void rcheevos_menu_populate(void* data)
}
++cheevo;
} while(true);
}
if (!rcheevos_locals->menuitems)
{
/* reserve space for all achievements and up to 6 headers before we need to realloc */
rcheevos_locals->menuitem_capacity = rcheevos_locals->patchdata.core_count + 6;
if (cheevos_test_unofficial)
rcheevos_locals->menuitem_capacity += rcheevos_locals->patchdata.unofficial_count;
rcheevos_locals->menuitem_capacity = rcheevos_locals->game.achievement_count + 6;
rcheevos_locals->menuitems = (rcheevos_menuitem_t*)
malloc(rcheevos_locals->menuitem_capacity * sizeof(rcheevos_menuitem_t));
@@ -570,7 +522,7 @@ void rcheevos_menu_populate(void* data)
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_ACTIVE_CHALLENGES_ENTRY);
rcheevos_menu_append_items(rcheevos_locals, cheevos_test_unofficial,
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_ACTIVE_CHALLENGE);
}
@@ -580,7 +532,7 @@ void rcheevos_menu_populate(void* data)
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_RECENTLY_UNLOCKED_ENTRY);
rcheevos_menu_append_items(rcheevos_locals, cheevos_test_unofficial,
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_RECENTLY_UNLOCKED);
}
@@ -590,7 +542,7 @@ void rcheevos_menu_populate(void* data)
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_ALMOST_THERE_ENTRY);
rcheevos_menu_append_items(rcheevos_locals, cheevos_test_unofficial,
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_ALMOST_THERE);
}
@@ -598,45 +550,53 @@ void rcheevos_menu_populate(void* data)
if (num_locked)
{
if (rcheevos_locals->menuitem_count > 0)
{
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_LOCKED_ENTRY);
}
rcheevos_menu_append_items(rcheevos_locals, cheevos_test_unofficial,
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_LOCKED);
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_UNOFFICIAL);
}
/* unsupported */
if (num_unsupported)
{
if (rcheevos_locals->menuitem_count > 0)
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_UNSUPPORTED_ENTRY);
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_UNSUPPORTED);
}
/* unlocked */
if (num_unlocked)
{
if (rcheevos_locals->menuitem_count > 0)
{
rcheevos_menu_append_header(rcheevos_locals,
MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY);
}
rcheevos_menu_append_items(rcheevos_locals, cheevos_test_unofficial,
rcheevos_menu_append_items(rcheevos_locals,
RCHEEVOS_MENUITEM_BUCKET_UNLOCKED);
}
if (rcheevos_locals->menuitem_count > 0)
{
/* convert to menu entries */
rcheevos_menuitem_t* menuitem = rcheevos_locals->menuitems;
rcheevos_menuitem_t* stop = menuitem + rcheevos_locals->menuitem_count;
char buffer[128];
unsigned idx = 0;
/* convert to menu entries */
rcheevos_menuitem_t* menuitem = rcheevos_locals->menuitems;
rcheevos_menuitem_t* stop = menuitem +
rcheevos_locals->menuitem_count;
do
{
if (menuitem->cheevo)
{
menu_entries_append_enum(info->list, menuitem->cheevo->title,
menuitem->cheevo->description,
MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + idx, 0, 0);
}
else
{
snprintf(buffer, sizeof(buffer), "----- %s -----",
@@ -655,45 +615,35 @@ void rcheevos_menu_populate(void* data)
{
/* no achievements found */
if (!rcheevos_locals->core_supports)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
msg_hash_to_str(MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
FILE_TYPE_NONE, 0, 0);
}
else if (rcheevos_locals->network_error)
{
else if (rcheevos_locals->load_info.state == RCHEEVOS_LOAD_STATE_NETWORK_ERROR)
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETWORK_ERROR),
msg_hash_to_str(MENU_ENUM_LABEL_NETWORK_ERROR),
MENU_ENUM_LABEL_NETWORK_ERROR,
FILE_TYPE_NONE, 0, 0);
}
else if (!rcheevos_locals->patchdata.game_id)
{
else if (!rcheevos_locals->game.id)
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNKNOWN_GAME),
msg_hash_to_str(MENU_ENUM_LABEL_UNKNOWN_GAME),
MENU_ENUM_LABEL_UNKNOWN_GAME,
FILE_TYPE_NONE, 0, 0);
}
else if (!rcheevos_locals->token[0])
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_LOGGED_IN),
msg_hash_to_str(MENU_ENUM_LABEL_NOT_LOGGED_IN),
MENU_ENUM_LABEL_NOT_LOGGED_IN,
FILE_TYPE_NONE, 0, 0);
}
else
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ACHIEVEMENTS_TO_DISPLAY),
msg_hash_to_str(MENU_ENUM_LABEL_NO_ACHIEVEMENTS_TO_DISPLAY),
MENU_ENUM_LABEL_NO_ACHIEVEMENTS_TO_DISPLAY,
FILE_TYPE_NONE, 0, 0);
}
}
}
@@ -708,6 +658,9 @@ uintptr_t rcheevos_get_badge_texture(const char *badge, bool locked)
if (!badge)
return 0;
/* OpenGL driver crashes if gfx_display_reset_textures_list is called on a background thread */
retro_assert(task_is_on_main_thread());
snprintf(badge_file, sizeof(badge_file), "%s%s%s", badge,
locked ? "_lock" : "", FILE_PATH_PNG_EXTENSION);
@@ -716,10 +669,7 @@ uintptr_t rcheevos_get_badge_texture(const char *badge, bool locked)
if (!gfx_display_reset_textures_list(badge_file, fullpath,
&tex, TEXTURE_FILTER_MIPMAP_LINEAR, NULL, NULL))
{
tex = 0;
}
return 0;
return tex;
}
-692
View File
@@ -1,692 +0,0 @@
#include "cheevos_parser.h"
#include "cheevos_locals.h"
#include <encodings/utf.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
#define CHEEVOS_JSON_KEY_ID 0x005973f2U
#define CHEEVOS_JSON_KEY_MEMADDR 0x1e76b53fU
#define CHEEVOS_JSON_KEY_TITLE 0x0e2a9a07U
#define CHEEVOS_JSON_KEY_DESCRIPTION 0xe61a1f69U
#define CHEEVOS_JSON_KEY_POINTS 0xca8fce22U
#define CHEEVOS_JSON_KEY_AUTHOR 0xa804edb8U
#define CHEEVOS_JSON_KEY_MODIFIED 0xdcea4fe6U
#define CHEEVOS_JSON_KEY_CREATED 0x3a84721dU
#define CHEEVOS_JSON_KEY_BADGENAME 0x887685d9U
#define CHEEVOS_JSON_KEY_CONSOLE_ID 0x071656e5U
#define CHEEVOS_JSON_KEY_TOKEN 0x0e2dbd26U
#define CHEEVOS_JSON_KEY_USERNAME 0x7c8da264U
#define CHEEVOS_JSON_KEY_FLAGS 0x0d2e96b2U
#define CHEEVOS_JSON_KEY_LEADERBOARDS 0xf1247d2dU
#define CHEEVOS_JSON_KEY_RICHPRESENCE 0xf18dd230U
#define CHEEVOS_JSON_KEY_MEM 0x0b8807e4U
#define CHEEVOS_JSON_KEY_FORMAT 0xb341208eU
#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
*****************************************************************************/
static 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;
}
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 true;
}
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 && ud->length > length)
{
strlcpy(ud->value, string, ud->length);
ud->is_key = 2;
return false;
}
return true;
}
static bool rcheevos_getvalue_boolean(void* userdata, bool istrue)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
if (ud->is_key)
{
if (istrue && ud->length > 4)
{
strlcpy(ud->value, "true", ud->length);
ud->is_key = 2;
return false;
}
if (!istrue && ud->length > 5)
{
strlcpy(ud->value, "false", ud->length);
ud->is_key = 2;
return false;
}
}
return true;
}
static bool rcheevos_getvalue_null(void* userdata)
{
rcheevos_getvalueud_t* ud = (rcheevos_getvalueud_t*)userdata;
if (ud->is_key && ud->length > 4)
{
strlcpy(ud->value, "null", ud->length);
ud->is_key = 2;
return false;
}
return true;
}
static int rcheevos_get_value(const char* json, unsigned key_hash,
char* value, size_t length)
{
rcheevos_getvalueud_t ud;
ud.key_hash = key_hash;
ud.is_key = 0;
ud.value = value;
ud.length = length;
*value = 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 (ud.is_key == 2 ? 0 : -1);
}
/*****************************************************************************
Returns the token or the error message
*****************************************************************************/
int rcheevos_get_token(const char* json, char* username, size_t username_length,
char* token, size_t length)
{
rcheevos_get_value(json, CHEEVOS_JSON_KEY_ERROR, token, length);
if (!string_is_empty(token))
return -1;
return rcheevos_get_value(json, CHEEVOS_JSON_KEY_TOKEN, token, length) +
rcheevos_get_value(json, CHEEVOS_JSON_KEY_USERNAME, username, username_length);
}
int rcheevos_get_json_error(const char* json, char* token, size_t length)
{
return rcheevos_get_value(json, CHEEVOS_JSON_KEY_ERROR, token, length);
}
/*****************************************************************************
Count number of achievements in a JSON file
*****************************************************************************/
typedef struct
{
int in_cheevos;
int in_lboards;
int has_error;
uint32_t field_hash;
unsigned core_count;
unsigned unofficial_count;
unsigned lboard_count;
} rcheevos_countud_t;
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 true;
}
static bool rcheevos_count_key(void* userdata,
const char* name, size_t length)
{
rcheevos_countud_t* ud = (rcheevos_countud_t*)userdata;
ud->field_hash = rcheevos_djb2(name, length);
if (ud->field_hash == CHEEVOS_JSON_KEY_ACHIEVEMENTS)
ud->in_cheevos = 1;
else if (ud->field_hash == CHEEVOS_JSON_KEY_LEADERBOARDS)
ud->in_lboards = 1;
else if (ud->field_hash == CHEEVOS_JSON_KEY_ERROR)
ud->has_error = 1;
return true;
}
static bool rcheevos_count_number(void* userdata,
const char* number, size_t length)
{
rcheevos_countud_t* ud = (rcheevos_countud_t*)userdata;
if (ud->in_cheevos && ud->field_hash == CHEEVOS_JSON_KEY_FLAGS)
{
long flags = strtol(number, NULL, 10);
if (flags == 3)
ud->core_count++; /* Core achievements */
else if (flags == 5)
ud->unofficial_count++; /* Unofficial achievements */
}
else if (ud->in_lboards && ud->field_hash == CHEEVOS_JSON_KEY_ID)
ud->lboard_count++;
return true;
}
static bool rcheevos_count_cheevos(const char* json,
unsigned* core_count, unsigned* unofficial_count,
unsigned* lboard_count, int* has_error)
{
bool res;
rcheevos_countud_t ud;
ud.in_cheevos = 0;
ud.in_lboards = 0;
ud.has_error = 0;
ud.core_count = 0;
ud.unofficial_count = 0;
ud.lboard_count = 0;
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;
*lboard_count = ud.lboard_count;
*has_error = ud.has_error;
return res;
}
/*****************************************************************************
Parses the cheevos in the JSON
*****************************************************************************/
typedef struct
{
int in_cheevos;
int in_lboards;
int lboard_had_id;
unsigned core_count;
unsigned unofficial_count;
unsigned lboard_count;
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 bool rcheevos_new_cheevo(rcheevos_readud_t* ud)
{
rcheevos_racheevo_t* cheevo = NULL;
if (ud->cheevo_flags == 3)
cheevo = ud->patchdata->core + ud->core_count++;
else if (ud->cheevo_flags == 5)
cheevo = ud->patchdata->unofficial + ud->unofficial_count++;
ud->cheevo_flags = 0;
if (!cheevo
|| !ud->cheevo.title
|| !ud->cheevo.description
|| !ud->cheevo.badge
|| !ud->cheevo.memaddr)
{
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);
}
*cheevo = ud->cheevo;
memset(&ud->cheevo, 0, sizeof(ud->cheevo));
return true;
}
static bool rcheevos_new_lboard(rcheevos_readud_t* ud)
{
rcheevos_ralboard_t* lboard = NULL;
if (ud->lboard_had_id)
lboard = ud->patchdata->lboards + ud->lboard_count++;
ud->lboard_had_id = 0;
if (!lboard
|| !ud->lboard.title
|| !ud->lboard.description
|| !ud->lboard.mem)
{
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);
}
*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 bool rcheevos_read_end_object(void* userdata)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
if (ud->in_cheevos)
return rcheevos_new_cheevo(ud);
if (ud->in_lboards)
return rcheevos_new_lboard(ud);
return true;
}
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 true;
}
static bool rcheevos_read_key(void* userdata,
const char* name, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
uint32_t hash = rcheevos_djb2(name, length);
ud->field_unsigned = NULL;
ud->field_string = NULL;
switch (hash)
{
case CHEEVOS_JSON_KEY_ACHIEVEMENTS:
ud->in_cheevos = 1;
break;
case CHEEVOS_JSON_KEY_LEADERBOARDS:
ud->in_lboards = 1;
break;
case CHEEVOS_JSON_KEY_CONSOLE_ID:
ud->field_unsigned = &ud->patchdata->console_id;
break;
case CHEEVOS_JSON_KEY_RICHPRESENCE:
ud->field_string = (const char**)&ud->patchdata->richpresence_script;
break;
case CHEEVOS_JSON_KEY_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->field_unsigned = &ud->patchdata->game_id;
break;
case CHEEVOS_JSON_KEY_MEMADDR:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.memaddr;
break;
case CHEEVOS_JSON_KEY_MEM:
if (ud->in_lboards)
ud->field_string = &ud->lboard.mem;
break;
case CHEEVOS_JSON_KEY_TITLE:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.title;
else if (ud->in_lboards)
ud->field_string = &ud->lboard.title;
else
ud->field_string = (const char**)&ud->patchdata->title;
break;
case CHEEVOS_JSON_KEY_DESCRIPTION:
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_unsigned = &ud->cheevo.points;
break;
/* UNUSED
case CHEEVOS_JSON_KEY_AUTHOR:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.author;
break;
case CHEEVOS_JSON_KEY_MODIFIED:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.modified;
break;
case CHEEVOS_JSON_KEY_CREATED:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.created;
break; */
case CHEEVOS_JSON_KEY_BADGENAME:
if (ud->in_cheevos)
ud->field_string = &ud->cheevo.badge;
break;
case CHEEVOS_JSON_KEY_FLAGS:
if (ud->in_cheevos)
ud->field_unsigned = &ud->cheevo_flags;
break;
case CHEEVOS_JSON_KEY_FORMAT:
if (ud->in_lboards)
ud->field_string = &ud->lboard_format;
break;
default:
break;
}
return true;
}
static bool rcheevos_read_string(void* userdata,
const char* string, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
if (ud->field_string)
{
if (*ud->field_string)
CHEEVOS_FREE((*ud->field_string));
*ud->field_string = strdup(string);
ud->field_string = NULL;
}
return true;
}
static bool rcheevos_read_number(void* userdata,
const char* number, size_t length)
{
rcheevos_readud_t* ud = (rcheevos_readud_t*)userdata;
if (ud->field_unsigned)
{
*ud->field_unsigned = (unsigned)strtol(number, NULL, 10);
ud->field_unsigned = NULL;
}
return true;
}
int rcheevos_get_patchdata(const char* json, rcheevos_rapatchdata_t* patchdata)
{
rcheevos_readud_t ud;
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 || has_error)
return -1;
/* Allocate the achievements. */
patchdata->core = (rcheevos_racheevo_t*)
calloc(patchdata->core_count, sizeof(rcheevos_racheevo_t));
patchdata->unofficial = (rcheevos_racheevo_t*)
calloc(patchdata->unofficial_count, sizeof(rcheevos_racheevo_t));
patchdata->lboards = (rcheevos_ralboard_t*)
calloc(patchdata->lboard_count, sizeof(rcheevos_ralboard_t));
if (!patchdata->core ||
!patchdata->unofficial ||
!patchdata->lboards)
{
CHEEVOS_FREE(patchdata->core);
CHEEVOS_FREE(patchdata->unofficial);
CHEEVOS_FREE(patchdata->lboards);
return -1;
}
patchdata->richpresence_script = NULL;
patchdata->title = NULL;
/* Load the achievements. */
memset(&ud, 0, sizeof(ud));
ud.patchdata = patchdata;
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;
}
return 0;
}
/*****************************************************************************
Frees the patchdata
*****************************************************************************/
void rcheevos_free_patchdata(rcheevos_rapatchdata_t* patchdata)
{
unsigned i = 0, count = 0;
const rcheevos_racheevo_t* cheevo = NULL;
const rcheevos_ralboard_t* lboard = NULL;
cheevo = patchdata->core;
for (i = 0, count = patchdata->core_count; i < count; i++, cheevo++)
{
CHEEVOS_FREE(cheevo->title);
CHEEVOS_FREE(cheevo->description);
CHEEVOS_FREE(cheevo->badge);
CHEEVOS_FREE(cheevo->memaddr);
}
cheevo = patchdata->unofficial;
for (i = 0, count = patchdata->unofficial_count; i < count; i++, cheevo++)
{
CHEEVOS_FREE(cheevo->title);
CHEEVOS_FREE(cheevo->description);
CHEEVOS_FREE(cheevo->badge);
CHEEVOS_FREE(cheevo->memaddr);
}
lboard = patchdata->lboards;
for (i = 0, count = patchdata->lboard_count; i < count; i++, lboard++)
{
CHEEVOS_FREE(lboard->title);
CHEEVOS_FREE(lboard->description);
CHEEVOS_FREE(lboard->mem);
}
CHEEVOS_FREE(patchdata->core);
CHEEVOS_FREE(patchdata->unofficial);
CHEEVOS_FREE(patchdata->lboards);
CHEEVOS_FREE(patchdata->richpresence_script);
CHEEVOS_FREE(patchdata->title);
patchdata->game_id = 0;
patchdata->console_id = 0;
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;
}
/*****************************************************************************
Deactivates unlocked cheevos
*****************************************************************************/
typedef struct
{
int is_element;
rcheevos_unlock_cb_t unlock_cb;
void* userdata;
} rcheevos_deactivate_t;
static bool rcheevos_deactivate_elements_begin(void* userdata)
{
rcheevos_deactivate_t* ud = (rcheevos_deactivate_t*)userdata;
ud->is_element = 1;
return true;
}
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;
unsigned id = 0;
if (ud->is_element)
{
id = (unsigned)strtol(number, NULL, 10);
ud->unlock_cb(id, ud->userdata);
}
return true;
}
void rcheevos_deactivate_unlocks(const char* json, rcheevos_unlock_cb_t unlock_cb, void* userdata)
{
rcheevos_deactivate_t ud;
ud.is_element = 0;
ud.unlock_cb = unlock_cb;
ud.userdata = userdata;
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);
}
/*****************************************************************************
Returns the game ID
*****************************************************************************/
unsigned chevos_get_gameid(const char* json)
{
char gameid[32];
if (rcheevos_get_value(json, CHEEVOS_JSON_KEY_GAMEID, gameid, sizeof(gameid)) != 0)
return 0;
return (unsigned)strtol(gameid, NULL, 10);
}
-39
View File
@@ -1,39 +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_PARSER_H
#define __RARCH_CHEEVOS_PARSER_H
#include "cheevos_locals.h"
RETRO_BEGIN_DECLS
typedef void (*rcheevos_unlock_cb_t)(unsigned id, void* userdata);
int rcheevos_get_json_error(const char* json, char* token, size_t length);
int rcheevos_get_token(const char* json, char* username, size_t username_length,
char* token, size_t length);
int rcheevos_get_patchdata(const char* json, rcheevos_rapatchdata_t* patchdata);
void rcheevos_free_patchdata(rcheevos_rapatchdata_t* patchdata);
void rcheevos_deactivate_unlocks(const char* json, rcheevos_unlock_cb_t unlock_cb, void* userdata);
unsigned chevos_get_gameid(const char* json);
RETRO_END_DECLS
#endif
-75
View File
@@ -1,75 +0,0 @@
#ifndef __RARCH_CHEEVOS_CORO_H
#define __RARCH_CHEEVOS_CORO_H
/*
Released under the CC0: https://creativecommons.org/publicdomain/zero/1.0/
*/
/* Use at the beginning of the coroutine, you must have declared a variable rcheevos_coro_t* coro */
#define CORO_ENTER() \
{ \
CORO_again: ; \
switch ( coro->step ) { \
case CORO_BEGIN: ;
/* Use to define labels which are targets to GOTO and GOSUB */
#define CORO_SUB( x ) \
case x: ;
/* Use at the end of the coroutine */
#define CORO_LEAVE() \
} } \
do { return 0; } while ( 0 )
/* Go to the x label */
#define CORO_GOTO( x ) \
do { \
coro->step = ( x ); \
goto CORO_again; \
} while ( 0 )
/* Go to a subroutine, execution continues until the subroutine returns via RET */
#define CORO_GOSUB( x ) \
do { \
coro->stack[ coro->sp++ ] = __LINE__; \
coro->step = ( x ); \
goto CORO_again; \
case __LINE__: ; \
} while ( 0 )
/* Returns from a subroutine */
#define CORO_RET() \
do { \
coro->step = coro->stack[ --coro->sp ]; \
goto CORO_again; \
} while ( 0 )
/* Yields to the caller, execution continues from this point when the coroutine is resumed */
#define CORO_YIELD() \
do { \
coro->step = __LINE__; \
return 1; \
case __LINE__: ; \
} while ( 0 )
/* The coroutine entry point, never use 0 as a label */
#define CORO_BEGIN 0
/* Sets up the coroutine */
#define CORO_SETUP() \
do { \
coro->step = CORO_BEGIN; \
coro->sp = 0; \
} while ( 0 )
#define CORO_STOP() \
do { \
return 0; \
} while ( 0 )
/* Add this macro to your rcheevos_coro_t structure containing the variables for the coroutine */
#define CORO_FIELDS \
int step, sp; \
int stack[ 8 ];
#endif /* __RARCH_CHEEVOS_CORO_H */
File diff suppressed because it is too large. Load diff
+1160 -6
View File
File diff suppressed because it is too large. Load diff
+157 -12
View File
@@ -23,13 +23,17 @@
#include <boolean.h>
#include <retro_common_api.h>
#include "retroarch.h"
#include "input/input_defines.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <streams/interface_stream.h>
#include "retroarch_types.h"
#include "input/input_defines.h"
#include "configuration.h"
RETRO_BEGIN_DECLS
#define MAX_CMD_DRIVERS 3
@@ -73,16 +77,22 @@ enum event_command
/* Loads core. */
CMD_EVENT_LOAD_CORE,
CMD_EVENT_LOAD_CORE_PERSIST,
#if defined(HAVE_RUNAHEAD) && (defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB))
CMD_EVENT_LOAD_SECOND_CORE,
#endif
CMD_EVENT_UNLOAD_CORE,
CMD_EVENT_CLOSE_CONTENT,
CMD_EVENT_LOAD_STATE,
CMD_EVENT_LOAD_STATE_FROM_RAM,
/* Swaps the current state with what's on the undo load buffer */
CMD_EVENT_UNDO_LOAD_STATE,
/* Rewrites a savestate on disk */
CMD_EVENT_UNDO_SAVE_STATE,
CMD_EVENT_SAVE_STATE,
CMD_EVENT_SAVE_STATE_TO_RAM,
CMD_EVENT_SAVE_STATE_DECREMENT,
CMD_EVENT_SAVE_STATE_INCREMENT,
CMD_EVENT_RAM_STATE_TO_FILE,
/* Takes screenshot. */
CMD_EVENT_TAKE_SCREENSHOT,
/* Quits RetroArch. */
@@ -274,12 +284,113 @@ 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 */
#ifdef HAVE_BSV_MOVIE
struct bsv_state
{
/* Movie playback/recording support. */
char movie_path[PATH_MAX_LENGTH];
/* Immediate playback/recording. */
char movie_start_path[PATH_MAX_LENGTH];
bool movie_start_recording;
bool movie_start_playback;
bool movie_playback;
bool eof_exit;
bool movie_end;
};
struct bsv_movie
{
intfstream_t *file;
uint8_t *state;
/* A ring buffer keeping track of positions
* in the file for each frame. */
size_t *frame_pos;
size_t frame_mask;
size_t frame_ptr;
size_t min_file_pos;
size_t state_size;
bool playback;
bool first_rewind;
bool did_rewind;
};
typedef struct bsv_movie bsv_movie_t;
#endif
#ifdef HAVE_CONFIGFILE
bool command_event_save_config(
const char *config_path,
char *s, size_t len);
#endif
void command_event_undo_save_state(char *s, size_t len);
void command_event_undo_load_state(char *s, size_t len);
void command_event_set_mixer_volume(
settings_t *settings,
float gain);
bool command_event_resize_windowed_scale(settings_t *settings,
unsigned window_scale);
bool command_event_save_auto_state(
bool savestate_auto_save,
const enum rarch_core_type current_core_type);
/**
* event_set_volume:
* @gain : amount of gain to be applied to current volume level.
*
* Adjusts the current audio volume level.
*
**/
void command_event_set_volume(
settings_t *settings,
float gain,
bool widgets_active,
bool audio_driver_mute_enable);
/**
* command_event_init_controllers:
*
* Initialize libretro controllers.
**/
void command_event_init_controllers(rarch_system_info_t *info,
settings_t *settings, unsigned num_active_users);
void command_event_load_auto_state(void);
void command_event_set_savestate_auto_index(
settings_t *settings);
void command_event_set_savestate_garbage_collect(
unsigned max_to_keep,
bool show_hidden_files
);
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
bool command_set_shader(command_t *cmd, const char *arg);
#endif
#ifdef HAVE_CHEATS
void command_event_init_cheats(
bool apply_cheats_after_load,
const char *path_cheat_db,
void *bsv_movie_data);
#endif
#if defined(HAVE_COMMAND)
struct cmd_action_map
{
const char *str;
bool (*action)(command_t* cmd, const char *arg);
const char *arg_desc;
};
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);
@@ -290,13 +401,13 @@ 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;
};
uint8_t *command_memory_get_pointer(
const rarch_system_info_t* system,
unsigned address,
unsigned int* max_bytes,
int for_write,
char *reply_at,
size_t len);
static const struct cmd_action_map action_map[] = {
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
@@ -368,6 +479,40 @@ static const struct cmd_map map[] = {
};
#endif
#ifdef HAVE_CONFIGFILE
/**
* command_event_save_core_config:
*
* Saves a new (core) configuration to a file. Filename is based
* on heuristics to avoid typing.
*
* Returns: true (1) on success, otherwise false (0).
**/
bool command_event_save_core_config(
const char *dir_menu_config,
const char *rarch_path_config);
/**
* command_event_save_current_config:
*
* Saves current configuration file to disk, and (optionally)
* autosave state.
**/
void command_event_save_current_config(enum override_type type);
#endif
/**
* command_event_disk_control_append_image:
* @path : Path to disk image.
*
* Appends disk image to disk image list.
**/
bool command_event_disk_control_append_image(const char *path);
void command_event_reinit(const int flags);
bool command_event_main_state(unsigned cmd);
RETRO_END_DECLS
#endif
+57 -16
View File
@@ -280,6 +280,12 @@
#define DEFAULT_FULLSCREEN_Y 0
#endif
#if defined(HAVE_WINDOW_OFFSET)
/* Screen offsets to center content in CTRs */
#define DEFAULT_WINDOW_OFFSET_X 0
#define DEFAULT_WINDOW_OFFSET_Y 0
#endif
/* Number of threads to use for video recording */
#define DEFAULT_VIDEO_RECORD_THREADS 2
@@ -338,6 +344,7 @@
*/
#define DEFAULT_FRAME_DELAY 0
#define MAXIMUM_FRAME_DELAY 19
#define DEFAULT_FRAME_DELAY_AUTO false
/* Inserts black frame(s) inbetween frames.
* Useful for Higher Hz monitors (set to multiples of 60 Hz) who want to play 60 Hz
@@ -412,6 +419,21 @@
#define DEFAULT_SHADER_ENABLE false
#endif
/* Should we enable hdr when its supported*/
#define DEFAULT_VIDEO_HDR_ENABLE false
/* The maximum nunmber of nits the actual display can show - needs to be calibrated */
#define DEFAULT_VIDEO_HDR_MAX_NITS 1000.0f
/* The number of nits that paper white is at */
#define DEFAULT_VIDEO_HDR_PAPER_WHITE_NITS 200.0f
/* The contrast setting for hdr used to calculate the display gamma by dividing this value by gamma 2.2 */
#define DEFAULT_VIDEO_HDR_CONTRAST 5.0f
/* Should we expand the colour gamut when using hdr */
#define DEFAULT_VIDEO_HDR_EXPAND_GAMUT true
/* When presets are saved they will be saved using the #reference
* directive by default */
#define DEFAULT_VIDEO_SHADER_PRESET_SAVE_REFERENCE_ENABLE true
@@ -458,7 +480,7 @@
* in Dingux devices */
#define DEFAULT_DINGUX_REFRESH_RATE DINGUX_REFRESH_RATE_60HZ
#endif
#if defined(RS90)
#if defined(RS90) || defined(MIYOO)
/* Sets image filtering method on the RS90
* when integer scaling is disabled */
#define DEFAULT_DINGUX_RS90_SOFTFILTER_TYPE DINGUX_RS90_SOFTFILTER_POINT
@@ -624,6 +646,9 @@ static const bool menu_show_load_content = true;
#ifdef HAVE_CDROM
static const bool menu_show_load_disc = true;
static const bool menu_show_dump_disc = true;
#ifdef HAVE_LAKKA
static const bool menu_show_eject_disc = true;
#endif /* HAVE_LAKKA */
#endif
static const bool menu_show_information = true;
static const bool menu_show_configurations = true;
@@ -785,22 +810,24 @@ 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(RS90) || defined(RETROFW)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_START_SELECT
#if defined(RS90) || defined(RETROFW) || defined(MIYOO)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_START_SELECT
#elif defined(_XBOX1) || defined(__PS3__) || defined(_XBOX360) || defined(DINGUX)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L3_R3
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_L3_R3
#elif defined(PS2) || defined(PSP)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_HOLD_START
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_HOLD_START
#elif defined(VITA)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_L1_R1_START_SELECT
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_L1_R1_START_SELECT
#elif defined(SWITCH) || defined(ORBIS)
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_START_SELECT
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_START_SELECT
#elif TARGET_OS_TV
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_DOWN_Y_L_R
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_DOWN_Y_L_R
#else
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_TOGGLE_NONE
#define DEFAULT_MENU_TOGGLE_GAMEPAD_COMBO INPUT_COMBO_NONE
#endif
#define DEFAULT_QUIT_GAMEPAD_COMBO INPUT_COMBO_NONE
#if defined(VITA)
static const unsigned input_backtouch_enable = false;
static const unsigned input_backtouch_toggle = false;
@@ -818,14 +845,18 @@ static const unsigned input_backtouch_toggle = false;
#define DEFAULT_OVERLAY_SHOW_INPUTS_PORT 0
#define DEFAULT_ALL_USERS_CONTROL_MENU false
#if defined(ANDROID) || defined(_WIN32)
#define DEFAULT_MENU_SWAP_OK_CANCEL_BUTTONS true
#else
#define DEFAULT_MENU_SWAP_OK_CANCEL_BUTTONS false
#endif
#if defined(WIIU)
#define DEFAULT_ALL_USERS_CONTROL_MENU true
#else
#define DEFAULT_ALL_USERS_CONTROL_MENU false
#endif
#define DEFAULT_QUIT_PRESS_TWICE true
#define DEFAULT_LOG_TO_FILE false
@@ -992,10 +1023,14 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_NOTIFICATION_SHOW_REFRESH_RATE true
#endif
#ifdef HAVE_NETWORKING
#define DEFAULT_NOTIFICATION_SHOW_NETPLAY_EXTRA false
#endif
/* Output samplerate. */
#ifdef GEKKO
#define DEFAULT_OUTPUT_RATE 32000
#elif defined(_3DS) || defined(RETROFW)
#elif defined(_3DS) || defined(RETROFW) || defined(MIYOO)
#define DEFAULT_OUTPUT_RATE 32730
#else
#define DEFAULT_OUTPUT_RATE 48000
@@ -1006,7 +1041,7 @@ static const bool audio_enable_menu_bgm = false;
/* Desired audio latency in milliseconds. Might not be honored
* if driver can't provide given latency. */
#if defined(ANDROID) || defined(EMSCRIPTEN) || defined(RETROFW)
#if defined(ANDROID) || defined(EMSCRIPTEN) || defined(RETROFW) || defined(MIYOO)
/* For most Android devices, 64ms is way too low. */
#define DEFAULT_OUT_LATENCY 128
#else
@@ -1080,7 +1115,7 @@ static const bool audio_enable_menu_bgm = false;
#define DEFAULT_APPLY_CHEATS_AFTER_LOAD false
#if defined(RETROFW)
#if defined(RETROFW) || defined(MIYOO)
/*RETROFW jz4760 has signficant slowdown with default settings */
#define DEFAULT_REWIND_BUFFER_SIZE (1 << 20)
#define DEFAULT_REWIND_BUFFER_SIZE_STEP 1
@@ -1119,6 +1154,9 @@ static const bool audio_enable_menu_bgm = false;
/* Start netplay in spectator mode */
static const bool netplay_start_as_spectator = false;
/* Allow players (other than the host) to pause */
static const bool netplay_allow_pausing = false;
/* Allow connections in slave mode */
static const bool netplay_allow_slaves = true;
@@ -1143,6 +1181,7 @@ static const bool netplay_use_mitm_server = false;
#define DEFAULT_NETPLAY_MITM_SERVER "nyc"
#ifdef HAVE_NETWORKING
static const unsigned netplay_max_connections = 3;
static const unsigned netplay_share_digital = RARCH_NETPLAY_SHARE_DIGITAL_NO_PREFERENCE;
static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_PREFERENCE;
@@ -1379,7 +1418,7 @@ static const unsigned menu_left_thumbnails_default = 0;
static const unsigned gfx_thumbnail_upscale_threshold = 0;
#ifdef HAVE_MENU
#if defined(RS90)
#if defined(RS90) || defined(MIYOO)
/* The RS-90 has a hardware clock that is neither
* configurable nor persistent, rendering it useless.
* We therefore hide it in the menu by default. */
@@ -1449,7 +1488,9 @@ 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
#define DEFAULT_RUMBLE_GAIN 50
#else
#define DEFAULT_RUMBLE_GAIN 100
#endif
#ifdef HAVE_VULKAN
+814 -100
View File
File diff suppressed because it is too large. Load diff
+72 -1
View File
@@ -25,6 +25,10 @@
#include <retro_common_api.h>
#include <retro_miscellaneous.h>
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "gfx/video_defines.h"
#include "input/input_defines.h"
#include "led/led_defines.h"
@@ -33,6 +37,8 @@
#include "lakka.h"
#endif
#include "msg_hash.h"
#define configuration_set_float(settings, var, newvar) \
{ \
settings->modified = true; \
@@ -63,6 +69,8 @@
strlcpy(var, newvar, sizeof(var)); \
}
#define INPUT_CONFIG_BIND_MAP_GET(i) ((const struct input_bind_map*)&input_config_bind_map[(i)])
enum crt_switch_type
{
CRT_SWITCH_NONE = 0,
@@ -82,6 +90,25 @@ enum override_type
RETRO_BEGIN_DECLS
/* Input config. */
struct input_bind_map
{
const char *base;
enum msg_hash_enums desc;
/* Meta binds get input as prefix, not input_playerN".
* 0 = libretro related.
* 1 = Common hotkey.
* 2 = Uncommon/obscure hotkey.
*/
uint8_t meta;
uint8_t retro_key;
bool valid;
};
typedef struct settings
{
struct
@@ -113,6 +140,10 @@ typedef struct settings
#endif
#ifdef HAVE_D3D12
int d3d12_gpu_index;
#endif
#ifdef HAVE_WINDOW_OFFSET
int video_window_offset_x;
int video_window_offset_y;
#endif
int content_favorites_size;
} ints;
@@ -160,14 +191,16 @@ typedef struct settings
#endif
unsigned input_touch_scale;
unsigned input_hotkey_block_delay;
unsigned input_quit_gamepad_combo;
unsigned input_menu_toggle_gamepad_combo;
unsigned input_keyboard_gamepad_mapping_type;
unsigned input_poll_type_behavior;
unsigned input_dingux_rumble_gain;
unsigned input_rumble_gain;
unsigned input_auto_game_focus;
unsigned input_max_users;
unsigned netplay_port;
unsigned netplay_max_connections;
unsigned netplay_input_latency_frames_min;
unsigned netplay_input_latency_frames_range;
unsigned netplay_share_digital;
@@ -318,6 +351,9 @@ typedef struct settings
float video_msg_color_g;
float video_msg_color_b;
float video_msg_bgcolor_opacity;
float video_hdr_max_nits;
float video_hdr_paper_white_nits;
float video_hdr_display_contrast;
float menu_scale_factor;
float menu_widget_scale_factor;
@@ -373,6 +409,7 @@ typedef struct settings
char cheevos_password[256];
char cheevos_token[32];
char cheevos_leaderboards_enable[32];
char cheevos_custom_host[64];
char video_context_driver[32];
char audio_driver[32];
char audio_resampler[32];
@@ -498,6 +535,7 @@ typedef struct settings
bool video_smooth;
bool video_ctx_scaling;
bool video_force_aspect;
bool video_frame_delay_auto;
bool video_crop_overscan;
bool video_aspect_ratio_auto;
bool video_dingux_ipu_keep_aspect;
@@ -526,6 +564,8 @@ typedef struct settings
#ifdef HAVE_VIDEO_LAYOUT
bool video_layout_enable;
#endif
bool video_hdr_enable;
bool video_hdr_expand_gamut;
/* Accessibility */
bool accessibility_enable;
@@ -556,6 +596,7 @@ typedef struct settings
bool input_overlay_auto_scale;
bool input_descriptor_label_show;
bool input_descriptor_hide_unbound;
bool input_all_users_control_menu;
bool input_menu_swap_ok_cancel_buttons;
bool input_backtouch_enable;
bool input_backtouch_toggle;
@@ -586,6 +627,7 @@ typedef struct settings
bool notification_show_screenshot;
#endif
bool notification_show_refresh_rate;
bool notification_show_netplay_extra;
bool menu_widget_scale_auto;
bool menu_show_start_screen;
bool menu_pause_libretro;
@@ -612,6 +654,9 @@ typedef struct settings
bool menu_show_load_content;
bool menu_show_load_disc;
bool menu_show_dump_disc;
#ifdef HAVE_LAKKA
bool menu_show_eject_disc;
#endif
bool menu_show_information;
bool menu_show_configurations;
bool menu_show_help;
@@ -712,6 +757,7 @@ typedef struct settings
/* Netplay */
bool netplay_public_announce;
bool netplay_start_as_spectator;
bool netplay_allow_pausing;
bool netplay_allow_slaves;
bool netplay_require_slaves;
bool netplay_stateless_mode;
@@ -1042,6 +1088,10 @@ void config_load_file_salamander(void);
void config_save_file_salamander(void);
#endif
void rarch_config_init(void);
void rarch_config_deinit(void);
settings_t *config_get_ptr(void);
#ifdef HAVE_LAKKA
@@ -1049,6 +1099,27 @@ const char *config_get_all_timezones(void);
void config_set_timezone(char *timezone);
#endif
bool input_config_bind_map_get_valid(unsigned bind_index);
void input_config_parse_joy_button(
char *s,
void *data, const char *prefix,
const char *btn, void *bind_data);
void input_config_parse_joy_axis(
char *s,
void *conf_data, const char *prefix,
const char *axis, void *bind_data);
void input_config_parse_mouse_button(
char *s,
void *conf_data, const char *prefix,
const char *btn, void *bind_data);
const char *input_config_get_prefix(unsigned user, bool meta);
extern const struct input_bind_map input_config_bind_map[RARCH_BIND_LIST_END_NULL];
RETRO_END_DECLS
#endif
+12
View File
@@ -45,12 +45,24 @@ bool content_load_ram_file(unsigned slot);
/* Save a RAM state from memory to disk. */
bool content_save_ram_file(unsigned slot, bool compress);
/* Load a state from memory. */
bool content_load_state_from_ram(void);
/* Save a state to memory. */
bool content_save_state_to_ram(void);
/* Save a ram state from memory to disk. */
bool content_ram_state_to_file(const char *path);
/* Load a state from disk to memory. */
bool content_load_state(const char* path, bool load_to_backup_buffer, bool autoload);
/* Save a state from memory to disk. */
bool content_save_state(const char *path, bool save_to_disk, bool autosave);
/* Check a ram state write to disk. */
bool content_ram_state_pending(void);
/* Gets the number of bytes required to serialize the state. */
size_t content_get_serialized_size(void);
+9 -121
View File
@@ -23,130 +23,10 @@
#include <retro_common_api.h>
#include "core_type.h"
#include "input/input_defines.h"
#include "disk_control_interface.h"
#include "retroarch_types.h"
RETRO_BEGIN_DECLS
enum
{
/* Polling is performed before
* call to retro_run. */
POLL_TYPE_EARLY = 0,
/* Polling is performed when requested. */
POLL_TYPE_NORMAL,
/* Polling is performed on first call to
* retro_input_state per frame. */
POLL_TYPE_LATE
};
typedef struct rarch_memory_descriptor
{
struct retro_memory_descriptor core; /* uint64_t alignment */
size_t disconnect_mask;
} rarch_memory_descriptor_t;
typedef struct rarch_memory_map
{
rarch_memory_descriptor_t *descriptors;
unsigned num_descriptors;
} rarch_memory_map_t;
typedef struct rarch_system_info
{
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];
struct
{
struct retro_subsystem_info *data;
unsigned size;
} subsystem;
struct
{
struct retro_controller_info *data;
unsigned size;
} ports;
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
{
retro_input_state_t cb;
} retro_ctx_input_state_info_t;
typedef struct retro_ctx_cheat_info
{
const char *code;
unsigned index;
bool enabled;
} retro_ctx_cheat_info_t;
typedef struct retro_ctx_api_info
{
unsigned version;
} retro_ctx_api_info_t;
typedef struct retro_ctx_region_info
{
unsigned region;
} retro_ctx_region_info_t;
typedef struct retro_ctx_controller_info
{
unsigned port;
unsigned device;
} retro_ctx_controller_info_t;
typedef struct retro_ctx_memory_info
{
void *data;
size_t size;
unsigned id;
} retro_ctx_memory_info_t;
typedef struct retro_ctx_load_content_info
{
struct retro_game_info *info;
const struct string_list *content;
const struct retro_subsystem_info *special;
} retro_ctx_load_content_info_t;
typedef struct retro_ctx_serialize_info
{
const void *data_const;
void *data;
size_t size;
} retro_ctx_serialize_info_t;
typedef struct retro_ctx_size_info
{
size_t size;
} retro_ctx_size_info_t;
typedef struct retro_ctx_environ_info
{
retro_environment_t env;
} retro_ctx_environ_info_t;
typedef struct retro_callbacks
{
retro_video_refresh_t frame_cb;
retro_audio_sample_t sample_cb;
retro_audio_sample_batch_t sample_batch_cb;
retro_input_state_t state_cb;
retro_input_poll_t poll_cb;
} retro_callbacks_t;
#ifdef HAVE_REWIND
bool core_set_rewind_callbacks(void);
#endif
@@ -187,6 +67,14 @@ bool core_set_controller_port_device(retro_ctx_controller_info_t *pad);
bool core_has_set_input_descriptor(void);
/**
* core_set_default_callbacks:
* @data : pointer to retro_callbacks object
*
* Binds the libretro callbacks to default callback functions.
**/
bool core_set_default_callbacks(void *data);
RETRO_END_DECLS
#endif
Loaded 100 of 662 files, more files were not shown because too many files have changed in this diff. Show more