> For the complete documentation index, see [llms.txt](https://8bitmods.gitbook.io/manuals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://8bitmods.gitbook.io/manuals/bitlink-dc-dongle/webui/button-mapping.md).

# Button mapping

The **Mapping** page sets which Dreamcast button each controller button presses. Each controller family has its own mapping:

| Family        | Controllers                                    |
| ------------- | ---------------------------------------------- |
| Xbox / 8BitDo | Xbox One, Series, 360, and 8BitDo controllers  |
| PlayStation   | DualSense and DualShock 4                      |
| Switch Pro    | Nintendo Switch Pro and 8BitDo in Switch mode  |
| Dreamcast     | Original controller via the BitLink DC Adapter |

Connect the controller first. Until one connects, the page shows **No controller connected** and cannot be changed. Only the connected controller's family can be edited.

<figure><img src="https://3745350575-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxE7fgXjmB9AkNFHd2vW0%2Fuploads%2Fgit-blob-d610f066cc90f913c8e119f733e3ff7b17d78cb9%2Fmapping-xbox.png?alt=media" alt="Mapping page for an Xbox controller with a list next to each button" width="936"><figcaption><p>Mapping for an Xbox controller</p></figcaption></figure>

## Changing the mapping

1. Connect the controller. Its family tab is selected and the other tabs are greyed out.
2. Pick a Dreamcast button from the list next to each controller button. The change works straight away and is kept.
3. To keep this layout as a preset, select **Save as...**, enter a name and select **Save**.

<figure><img src="https://3745350575-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxE7fgXjmB9AkNFHd2vW0%2Fuploads%2Fgit-blob-e039cf2cf94ead2e8a0a9a3fd932a54d18ad4993%2Fmapping-save-as.png?alt=media" alt="Preset name field with My layout entered" width="888"><figcaption><p>Saving a preset</p></figcaption></figure>

Choose a preset from the list to load it, or **Built-in default** for the standard layout. **Revert** undoes your edits and **Delete** removes the loaded preset. Each family holds up to 8 presets with names of up to 23 characters.

## Notes

* The sticks always drive the Dreamcast stick and cannot be remapped.
* A trigger can drive a Dreamcast analog trigger or any button.
* Two controller buttons set to the same Dreamcast button both press it. They are marked in amber.
* C, Z and D only exist on the Dreamcast Arcade Stick and are not assigned by default.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://8bitmods.gitbook.io/manuals/bitlink-dc-dongle/webui/button-mapping.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
