libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.24k stars 1.83k forks source link

Accessibility: Add active accessibility resources into games #9920

Open devinprater opened 4 years ago

devinprater commented 4 years ago

First and foremost consider this:

Description

In Retroarch 1.8.2, accessibility mode was added so that blind users can now navigate the retroarch interface, enable the AI Service, and play games using sound and text. To break limits further, "accessibility packs" could be created, similar to Cheat/rumble codes, in order to actively read information, trigger sound, or vibrate the game pad to give further accessibility.

Here is how I envision it: We already have a cheat/rumble system, which can read memory locations, effect memory, and rumble the game pad. Accessibility packs, however, could focus on getting information in memory, from a project like This decompilation of Super Mario 64, like menus to be read as a user highlights menu options, health bars to be signaled through sound or vibration, maps and objects, so that a user can select something and be guided, using binaural sound, to the object, or in-game text, which can be automatically spoken on appearance by the accessibility system. This does not negate the need for the AI Service, as it will probably take a while before even many games have accessibility packs. Sound resources could either be managed by the pack, or a common set of sounds (foot step, hit wall, HP low, Limit break, etc., could be included within Retroarch to provide a common set of sounds for pack creators to work with.

For a great showcase of how this could work, see Pokemon Chrystal Access

Expected behavior

Retroarch could use accessibility packs to add active accessibility resources to games.

Actual behavior

For now, blind gamers use the AI Service to read in-game text.

Steps to reproduce the bug

N/A

Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

Environment information

devinprater commented 4 years ago

This may depend on this issue for scripting.