forked from TeamTofuShop/segatools
mai2: update all LED boards to use two boards
This commit is contained in:
@ -96,7 +96,8 @@ void led15093_config_load(struct led15093_config *cfg, const wchar_t *filename)
|
||||
memset(cfg->boot_chip_number, ' ', sizeof(cfg->boot_chip_number));
|
||||
|
||||
cfg->enable = GetPrivateProfileIntW(L"led15093", L"enable", 1, filename);
|
||||
cfg->port_no = 0;
|
||||
cfg->port_no[0] = GetPrivateProfileIntW(L"led15093", L"portNo1", 0, filename);
|
||||
cfg->port_no[1] = GetPrivateProfileIntW(L"led15093", L"portNo2", 0, filename);
|
||||
cfg->high_baudrate = GetPrivateProfileIntW(L"led15093", L"highBaud", 0, filename);
|
||||
cfg->fw_ver = GetPrivateProfileIntW(L"led15093", L"fwVer", 0x90, filename);
|
||||
cfg->fw_sum = GetPrivateProfileIntW(L"led15093", L"fwSum", 0xadf7, filename);
|
||||
|
@ -22,32 +22,23 @@
|
||||
COM4: 837-15396 "Gen 3" Aime Reader
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "amex/amex.h"
|
||||
|
||||
#include "board/sg-reader.h"
|
||||
#include "board/vfd.h"
|
||||
|
||||
#include "chuniio/chuniio.h"
|
||||
#include "chusanhook/config.h"
|
||||
#include "chusanhook/io4.h"
|
||||
#include "chusanhook/slider.h"
|
||||
|
||||
#include "chuniio/chuniio.h"
|
||||
|
||||
#include "hook/process.h"
|
||||
|
||||
#include "gfxhook/d3d9.h"
|
||||
#include "gfxhook/gfx.h"
|
||||
|
||||
#include "hook/process.h"
|
||||
#include "hooklib/serial.h"
|
||||
#include "hooklib/spike.h"
|
||||
|
||||
#include "platform/platform.h"
|
||||
|
||||
#include "util/dprintf.h"
|
||||
#include "util/env.h"
|
||||
|
||||
@ -55,8 +46,7 @@ static HMODULE chusan_hook_mod;
|
||||
static process_entry_t chusan_startup;
|
||||
static struct chusan_hook_config chusan_hook_cfg;
|
||||
|
||||
static DWORD CALLBACK chusan_pre_startup(void)
|
||||
{
|
||||
static DWORD CALLBACK chusan_pre_startup(void) {
|
||||
HMODULE d3dc;
|
||||
HMODULE dbghelp;
|
||||
HRESULT hr;
|
||||
@ -88,7 +78,7 @@ static DWORD CALLBACK chusan_pre_startup(void)
|
||||
chusan_hook_config_load(&chusan_hook_cfg, get_config_path());
|
||||
|
||||
/* Hook Win32 APIs */
|
||||
|
||||
|
||||
dvd_hook_init(&chusan_hook_cfg.dvd, chusan_hook_mod);
|
||||
gfx_hook_init(&chusan_hook_cfg.gfx);
|
||||
gfx_d3d9_hook_init(&chusan_hook_cfg.gfx, chusan_hook_mod);
|
||||
@ -154,19 +144,31 @@ static DWORD CALLBACK chusan_pre_startup(void)
|
||||
}
|
||||
}
|
||||
|
||||
if ( chuni_dll.led_init == NULL || chuni_dll.led_set_leds == NULL )
|
||||
{
|
||||
dprintf("IO DLL doesn't support led_init/led_set_leds, cannot start LED15093 hook\n");
|
||||
unsigned int led_port_no[2];
|
||||
|
||||
if (is_cvt) {
|
||||
led_port_no[0] = 2;
|
||||
led_port_no[1] = 3;
|
||||
} else {
|
||||
hr = led15093_hook_init(&chusan_hook_cfg.led15093,
|
||||
chuni_dll.led_init, chuni_dll.led_set_leds, first_port, 2, 2, 1);
|
||||
led_port_no[0] = 20;
|
||||
led_port_no[1] = 21;
|
||||
}
|
||||
|
||||
if (chuni_dll.led_init == NULL || chuni_dll.led_set_leds == NULL) {
|
||||
dprintf(
|
||||
"IO DLL doesn't support led_init/led_set_leds, cannot start "
|
||||
"LED15093 hook\n");
|
||||
} else {
|
||||
hr = led15093_hook_init(&chusan_hook_cfg.led15093, chuni_dll.led_init,
|
||||
chuni_dll.led_set_leds, led_port_no);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
hr = sg_reader_hook_init(&chusan_hook_cfg.aime, 4, is_cvt ? 2: 3, chusan_hook_mod);
|
||||
hr = sg_reader_hook_init(&chusan_hook_cfg.aime, 4, is_cvt ? 2 : 3,
|
||||
chusan_hook_mod);
|
||||
|
||||
if (FAILED(hr)) {
|
||||
goto fail;
|
||||
@ -186,8 +188,7 @@ fail:
|
||||
ExitProcess(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
BOOL WINAPI DllMain(HMODULE mod, DWORD cause, void *ctx)
|
||||
{
|
||||
BOOL WINAPI DllMain(HMODULE mod, DWORD cause, void *ctx) {
|
||||
HRESULT hr;
|
||||
|
||||
if (cause != DLL_PROCESS_ATTACH) {
|
||||
@ -199,7 +200,7 @@ BOOL WINAPI DllMain(HMODULE mod, DWORD cause, void *ctx)
|
||||
hr = process_hijack_startup(chusan_pre_startup, &chusan_startup);
|
||||
|
||||
if (!SUCCEEDED(hr)) {
|
||||
dprintf("Failed to hijack process startup: %x\n", (int) hr);
|
||||
dprintf("Failed to hijack process startup: %x\n", (int)hr);
|
||||
}
|
||||
|
||||
return SUCCEEDED(hr);
|
||||
|
Reference in New Issue
Block a user