Add support for GameCube glyphs.

It's kind of a bummer that L/R don't actually do anything... we should add ZL/ZR support at some point.

Also note that GameCube binds X to 'back' rather than B, this will be fixed by SDL_ActionSet for 2.5.
This commit is contained in:
Ethan Lee 2024-01-16 22:57:18 -05:00
parent ceaaea1597
commit afbcb3f867
7 changed files with 26 additions and 8 deletions

View File

@ -5,9 +5,9 @@
<height>10</height> <height>10</height>
<white_teeth>1</white_teeth> <white_teeth>1</white_teeth>
<chars> <chars>
<range start="0xEB00" end="0xEB2F"/> <range start="0xEB00" end="0xEB36"/>
</chars> </chars>
<special> <special>
<range start="0xEB00" end="0xEB2F" color="1"/> <range start="0xEB00" end="0xEB36" color="1"/>
</special> </special>
</font_metadata> </font_metadata>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -5,9 +5,9 @@
<height>12</height> <height>12</height>
<white_teeth>1</white_teeth> <white_teeth>1</white_teeth>
<chars> <chars>
<range start="0xEB00" end="0xEB2F"/> <range start="0xEB00" end="0xEB36"/>
</chars> </chars>
<special> <special>
<range start="0xEB00" end="0xEB2F" color="1"/> <range start="0xEB00" end="0xEB36" color="1"/>
</special> </special>
</font_metadata> </font_metadata>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -5,9 +5,9 @@
<height>8</height> <height>8</height>
<white_teeth>1</white_teeth> <white_teeth>1</white_teeth>
<chars> <chars>
<range start="0xEB00" end="0xEB2F"/> <range start="0xEB00" end="0xEB36"/>
</chars> </chars>
<special> <special>
<range start="0xEB00" end="0xEB2F" color="1"/> <range start="0xEB00" end="0xEB36" color="1"/>
</special> </special>
</font_metadata> </font_metadata>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -62,6 +62,15 @@ typedef enum
GLYPH_NINTENDO_GENERIC_STICK, GLYPH_NINTENDO_GENERIC_STICK,
GLYPH_UNKNOWN, GLYPH_UNKNOWN,
/* Added after 2.4 */
GLYPH_NINTENDO_GAMECUBE_A,
GLYPH_NINTENDO_GAMECUBE_B,
GLYPH_NINTENDO_GAMECUBE_X,
GLYPH_NINTENDO_GAMECUBE_Y,
GLYPH_NINTENDO_GAMECUBE_L,
GLYPH_NINTENDO_GAMECUBE_R,
GLYPH_NINTENDO_GAMECUBE_Z,
GLYPH_TOTAL GLYPH_TOTAL
} }
ButtonGlyphKey; ButtonGlyphKey;
@ -78,6 +87,9 @@ typedef enum
LAYOUT_XBOX, LAYOUT_XBOX,
LAYOUT_GENERIC, LAYOUT_GENERIC,
/* Added after 2.4 */
LAYOUT_GAMECUBE,
LAYOUT_TOTAL LAYOUT_TOTAL
} }
ButtonGlyphLayout; ButtonGlyphLayout;
@ -133,6 +145,13 @@ static const char* glyph_layout[LAYOUT_TOTAL][SDL_CONTROLLER_BUTTON_RIGHTSHOULDE
"SELECT", "GUIDE", "START", "SELECT", "GUIDE", "START",
glyph[GLYPH_NINTENDO_XBOX_LSTICK], glyph[GLYPH_NINTENDO_XBOX_RSTICK], glyph[GLYPH_NINTENDO_XBOX_LSTICK], glyph[GLYPH_NINTENDO_XBOX_RSTICK],
glyph[GLYPH_GENERIC_L], glyph[GLYPH_GENERIC_R] glyph[GLYPH_GENERIC_L], glyph[GLYPH_GENERIC_R]
},
{ // GAMECUBE
glyph[GLYPH_NINTENDO_GAMECUBE_A], glyph[GLYPH_NINTENDO_GAMECUBE_X],
glyph[GLYPH_NINTENDO_GAMECUBE_B], glyph[GLYPH_NINTENDO_GAMECUBE_Y],
glyph[GLYPH_UNKNOWN], glyph[GLYPH_UNKNOWN], "START",
glyph[GLYPH_UNKNOWN], glyph[GLYPH_UNKNOWN],
glyph[GLYPH_UNKNOWN], glyph[GLYPH_NINTENDO_GAMECUBE_Z]
} }
}; };
@ -215,8 +234,7 @@ void BUTTONGLYPHS_update_layout(SDL_GameController *c)
} }
else if (product == 0x0337) else if (product == 0x0337)
{ {
/* FIXME: GameCube glyphs? -flibit */ layout = LAYOUT_GAMECUBE;
layout = LAYOUT_XBOX;
} }
else else
{ {