mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 22:30:42 -07:00
0b5f7787be
## Link to GitHub Issue, if one exists #345 ## Description of change If `-exec` is specified, log a giant warning. Also, fix some compiler warnings in MFG. ## Testing Confirmed message being logged in log.txt.
74 lines
2.1 KiB
C++
74 lines
2.1 KiB
C++
#include "mfg.h"
|
|
|
|
#include <format>
|
|
#include "util/fileutils.h"
|
|
#include "util/unity_player.h"
|
|
#include "util/utils.h"
|
|
#include "util/execexe.h"
|
|
#include "acioemu/handle.h"
|
|
#include "misc/wintouchemu.h"
|
|
#include "hooks/graphics/graphics.h"
|
|
#include "bi2a_hook.h"
|
|
|
|
namespace games::mfg {
|
|
std::string MFG_INJECT_ARGS = "";
|
|
std::string MFG_CABINET_TYPE = "HG";
|
|
bool MFG_NO_IO = false;
|
|
|
|
static acioemu::ACIOHandle *acioHandle = nullptr;
|
|
static std::wstring portName;
|
|
|
|
void MFGGame::attach() {
|
|
Game::attach();
|
|
|
|
// create required files
|
|
fileutils::dir_create_recursive("dev/raw/log");
|
|
fileutils::bin_write("dev/raw/log/output_log.txt", nullptr, 0);
|
|
|
|
SetEnvironmentVariableA("VFG_CABINET_TYPE", MFG_CABINET_TYPE.c_str());
|
|
|
|
// add card reader
|
|
portName = (MFG_CABINET_TYPE == "UKS") ? std::wstring(L"\\\\.\\COM1") : std::wstring(L"\\\\.\\COM3");
|
|
acioHandle = new acioemu::ACIOHandle(portName.c_str(), 1);
|
|
devicehook_init_trampoline();
|
|
devicehook_add(acioHandle);
|
|
|
|
execexe::init();
|
|
execexe::init_port_hook(portName, acioHandle);
|
|
|
|
if (GRAPHICS_SHOW_CURSOR) {
|
|
unity_utils::force_show_cursor(true);
|
|
}
|
|
|
|
unity_utils::set_args(
|
|
std::format("{} {}{}",
|
|
GetCommandLineA(),
|
|
MFG_INJECT_ARGS,
|
|
unity_utils::get_unity_player_args()));
|
|
}
|
|
|
|
void MFGGame::post_attach() {
|
|
Game::post_attach();
|
|
|
|
execexe::load_library("libaio.dll");
|
|
execexe::load_library("libaio-iob.dll");
|
|
execexe::load_library("libaio-iob_video.dll");
|
|
execexe::load_library("libaio-iob2_video.dll");
|
|
execexe::load_library("win10actlog.dll");
|
|
|
|
if (!MFG_NO_IO) {
|
|
// insert BI2* hooks
|
|
if (MFG_CABINET_TYPE == "UKS") {
|
|
log_fatal("mfg", "UKS io is not supported");
|
|
} else {
|
|
bi2a_hook_init();
|
|
}
|
|
}
|
|
}
|
|
|
|
void MFGGame::detach() {
|
|
Game::detach();
|
|
|
|
devicehook_dispose();
|
|
}
|
|
} |