mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-09-30 18:58:01 +03:00
## Link to GitHub Issue or related Pull Request, if one exists #477 ## Description of change By default the game needs 4 monitors. With the new option to disable subscreens, you can now boot fullscreen with a single 4K monitor, with subscreen overlay enabled. Side monitors are not shown in the overlay; only the touch screen is emulated. ## Future work - [ ] custom resolution (-forceres) doesn't work properly (hooking ResetEx does allow the game to boot but will render incorrectly; probably needs hex edits) - [x] enable this automatically if the user has fewer than 4 monitors - [ ] ability to boot with a 4k main screen + small subscreen (with no side screens which do nothing gameplay wise), but this whole display emulation is a nightmare to work with & test thoroughly so it'll have to be in the future. ## Testing Checklist: - [x] fs on 1 monitor with option set - [x] fs on 2 monitor with option set - [x] windowed - default (4 windows, no overlay) - [x] windowed - with option set (1 window, overlay) - [x] fs with 4 monitors? - [x] check popn hc for regression
55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <optional>
|
|
|
|
#include "avs/game.h"
|
|
#include "games/game.h"
|
|
#include "util/socd_cleaner.h"
|
|
|
|
namespace games::gitadora {
|
|
|
|
// settings
|
|
extern bool TWOCHANNEL;
|
|
extern std::optional<unsigned int> CAB_TYPE;
|
|
extern bool P1_LEFTY;
|
|
extern bool P2_LEFTY;
|
|
extern std::optional<std::string> SUBSCREEN_OVERLAY_SIZE;
|
|
extern std::optional<socd::SocdAlgorithm> PICK_ALGO;
|
|
|
|
class GitaDoraGame : public games::Game {
|
|
public:
|
|
GitaDoraGame();
|
|
virtual void pre_attach() override;
|
|
virtual void attach() override;
|
|
};
|
|
|
|
static inline bool is_drum() {
|
|
return (
|
|
avs::game::is_model({ "J32", "K32", "L32" }) ||
|
|
(avs::game::is_model("M32") && (avs::game::SPEC[0] == 'B' || avs::game::SPEC[0] == 'D'))
|
|
);
|
|
}
|
|
static inline bool is_guitar() {
|
|
return (
|
|
avs::game::is_model({ "J33", "K33", "L33" }) ||
|
|
(avs::game::is_model("M32") && (avs::game::SPEC[0] == 'A' || avs::game::SPEC[0] == 'C'))
|
|
);
|
|
}
|
|
|
|
static inline bool is_arena_model() {
|
|
return (
|
|
avs::game::is_model("M32") &&
|
|
(avs::game::SPEC[0] == 'C' || avs::game::SPEC[0] == 'D')
|
|
);
|
|
}
|
|
|
|
static inline bool is_player_lefty(size_t player) {
|
|
if (player == 0) {
|
|
return P1_LEFTY;
|
|
} else if (player == 1) {
|
|
return P2_LEFTY;
|
|
}
|
|
return false;
|
|
}
|
|
}
|