From d68c8ba65a9aef34365bdac63be18f774dbfae17 Mon Sep 17 00:00:00 2001 From: Thomas Jentzsch Date: Thu, 3 Sep 2020 19:35:38 +0200 Subject: [PATCH] QuadTari documentation --- Changes.txt | 2 +- docs/graphics/options_gameinfo_controller.png | Bin 4139 -> 4276 bytes docs/graphics/options_gameinfo_quadtari.png | Bin 0 -> 1669 bytes docs/index.html | 33 ++++++++++++++---- src/gui/GameInfoDialog.cxx | 13 ++++--- 5 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 docs/graphics/options_gameinfo_quadtari.png diff --git a/Changes.txt b/Changes.txt index ac82c7713..9fca8766a 100644 --- a/Changes.txt +++ b/Changes.txt @@ -37,7 +37,7 @@ are no longer corrupted/cut off. This includes properly supporting the 2600-daptor II, which is flashable to an AVox-USB converter. - * Added QuadTari controller support for several controllers (TODO: docs) + * Added QuadTari controller support. * Added option to select the audio device. diff --git a/docs/graphics/options_gameinfo_controller.png b/docs/graphics/options_gameinfo_controller.png index fe5adb275112aed7de598609cee65dedf983480f..5200f72119ebe0e163777436f8e3d069788c8450 100644 GIT binary patch literal 4276 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 literal 4139 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 bankswitching document or the documentation in each cartridge's source code file) types. Types marked as (¹) do currently have no reliable auto-detection, those marked as (²) - are not fully supported in the debugger: + are not fully supported in the debugger. @@ -4226,11 +4226,6 @@ Ms Pac-Man (Stella extended codes): - +
 Type DescriptionFile Extension
(to force type)
0840 8K ECONObanking .084, .0840
Controller.Left
Controller.Right
-
For QuadTari:
- Controller.Left1
- Controller.Left2
- Controller.Right1
- Controller.Right2
Indicates what type of controller the left and right player uses. The value must be either Auto or one of the following types. Types marked @@ -4254,7 +4249,7 @@ Ms Pac-Man (Stella extended codes):
LightgunAtari XG-1 compatible Light Gun
Mindlink ¹Mindlink controller.
KidVid ¹KidVid controller, limited support (8, 9 and 0 start the games).
QuadTariQuadTari controller, limited support (Joystick, Driving controller, SaveKey and AtariVox only).
QuadTariQuadTari controller, limited support (see below).
@@ -4316,6 +4311,30 @@ Ms Pac-Man (Stella extended codes):
+

+ +

+ + + + + +
+ Controller.Left1
+ Controller.Left2
+ Controller.Right1
+ Controller.Right2
+
Indicates which controllers are plugged into one of the four QuadTari ports. + The value must be one of the following types. + + + + + + +
 Type Description
JoystickAtari's famous black joystick that was originally included with the system.
DrivingLooks like a paddle, but allows 360° movement. Only one unit per connector, unlike paddles which were sold in pairs.
AtariVoxA SpeakJet based unlimited-vocabulary speech/sound synthesizer with 32K EEPROM.
SaveKeyA 32K EEPROM for saving high scores, etc. (the EEPROM portion of an AtariVox).
+
+

diff --git a/src/gui/GameInfoDialog.cxx b/src/gui/GameInfoDialog.cxx index a603a5a2d..e5eb1162c 100644 --- a/src/gui/GameInfoDialog.cxx +++ b/src/gui/GameInfoDialog.cxx @@ -249,21 +249,20 @@ GameInfoDialog::GameInfoDialog( pwidth, lineHeight, ctrls, "", 0, kRightCChanged); wid.push_back(myRightPort); - myQuadTariButton = new ButtonWidget(myTab, font, myRightPort->getRight() + fontWidth * 4, myRightPort->getTop() - 2, - "QuadTari" + ELLIPSIS, kQuadTariPressed); - wid.push_back(myQuadTariButton); - ypos += lineHeight + VGAP; myRightPortDetected = new StaticTextWidget(myTab, ifont, myRightPort->getLeft(), ypos, "Sega Genesis detected"); - ypos += ifont.getLineHeight() + VGAP + 4; mySwapPorts = new CheckboxWidget(myTab, font, myLeftPort->getRight() + fontWidth * 4, myLeftPort->getTop() + 1, "Swap ports"); wid.push_back(mySwapPorts); + myQuadTariButton = new ButtonWidget(myTab, font, myRightPort->getRight() + fontWidth * 4, myRightPort->getTop() - 2, + " QuadTari" + ELLIPSIS + " ", kQuadTariPressed); + wid.push_back(myQuadTariButton); + // EEPROM erase button for left/right controller - //ypos += lineHeight + VGAP + 4; + ypos += ifont.getLineHeight() + VGAP + 4; pwidth = myRightPort->getWidth(); //font.getStringWidth("Erase EEPROM ") + 23; myEraseEEPROMLabel = new StaticTextWidget(myTab, font, HBORDER, ypos, "AtariVox/SaveKey "); myEraseEEPROMButton = new ButtonWidget(myTab, font, myEraseEEPROMLabel->getRight(), ypos - 4, @@ -728,7 +727,7 @@ void GameInfoDialog::updateControllerStates() if(instance().hasConsole()) { label = (!swapPorts ? instance().console().leftController().name() - : instance().console().rightController().name() + " detected"); + : instance().console().rightController().name()) + " detected"; if(BSPF::startsWithIgnoreCase(label, "QUADTARI")) label = "QuadTari detected"; // remove plugged-in controller names }