Dance around early support (#897)

## Link to GitHub Issue or related Pull Request, if one exists
N/A

## Description of change
This PR add initial supports for running Dance aRound in window mode,
with keyboard, cardio supports.

## Testing
- Tested game play under Windows 10 using Kinect V1 with my visionpose
compatible layer (https://github.com/Avimitin/dance-around-anygear)


https://github.com/user-attachments/assets/4b821dcf-751d-4953-b626-4a9491569183

- Tested full game play, user profile saving with Asphyxia

Assisted by AI.

---------

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Jiongjia Lu
2026-09-13 00:51:23 +08:00
committed by GitHub
parent 4042b77065
commit 2b6e76730b
24 changed files with 1567 additions and 31 deletions
+25
View File
@@ -72,6 +72,7 @@
#include "games/qks/qks.h"
#include "games/mfg/mfg.h"
#include "games/pc/pc.h"
#include "games/udn/udn.h"
#include "games/museca/museca.h"
#include "hooks/avshook.h"
#include "hooks/audio/audio.h"
@@ -248,6 +249,7 @@ int main_implementation(int argc, char *argv[]) {
bool attach_qks = false;
bool attach_mfg = false;
bool attach_pc = false;
bool attach_udn = false;
bool attach_museca = false;
bool show_cursor_if_no_touch = false;
@@ -784,6 +786,9 @@ int main_implementation(int argc, char *argv[]) {
if (options[launcher::Options::LoadPCModule].value_bool()) {
attach_pc = true;
}
if (options[launcher::Options::LoadUDNModule].value_bool()) {
attach_udn = true;
}
if (options[launcher::Options::LoadMusecaModule].value_bool()) {
attach_museca = true;
}
@@ -1489,6 +1494,12 @@ int main_implementation(int argc, char *argv[]) {
if (options[launcher::Options::PCKnobMode].value_bool()) {
games::pc::PC_KNOB_MODE = true;
}
if (options[launcher::Options::UDNArgs].is_active()) {
games::udn::UDN_INJECT_ARGS = options[launcher::Options::UDNArgs].value_text();
}
if (options[launcher::Options::UDNNoIO].is_active()) {
games::udn::UDN_NO_IO = options[launcher::Options::UDNNoIO].value_bool();
}
if (options[launcher::Options::spice2x_EnableSMXStage].value_bool()) {
rawinput::ENABLE_SMX_STAGE = true;
}
@@ -2303,6 +2314,16 @@ int main_implementation(int argc, char *argv[]) {
break;
}
// DANCE aROUND
if (check_dll("kamunity.dll") && fileutils::dir_exists("game/dancearound_Data")) {
avs::game::DLL_NAME = "kamunity.dll";
attach_io = true;
attach_udn = true;
launcher::signal::USE_VEH_WORKAROUND = true;
show_cursor_if_no_touch = true;
break;
}
// Busou Shinki: Armored Princess Battle Conductor
if (check_dll("kamunity.dll") && fileutils::file_exists("game/bsac_app.exe")) {
avs::game::DLL_NAME = "kamunity.dll";
@@ -2468,6 +2489,10 @@ int main_implementation(int argc, char *argv[]) {
avs::core::HEAP_SIZE = 536870912; // 512MB
games.push_back(new games::pc::PCGame());
}
if (attach_udn) {
avs::core::HEAP_SIZE = 1073741824; // 1GB
games.push_back(new games::udn::UDNGame());
}
// apply user heap size, if defined
if (user_heap_size > 0) {