Sanheiii / Mageki

一个在移动设备上模拟的音击控制器
Do What The F*ck You Want To Public License
283 stars 8 forks source link

Ongeki IO: Custom IO DLL does not provide function "mu3_io_led_init". Please contact your IO DLL's developer for further assistance. #24

Closed JamesLewisLiu closed 1 month ago

JamesLewisLiu commented 2 months ago

--- Begin mu3_pre_startup --- DVD: hook enabled. Reg hook init DipSw: DipSw1=1 set Epay: Init Ongeki IO: Using custom IO DLL: MU3Input.dll Ongeki IO: Custom IO DLL does not provide function "mu3_io_led_init". Please contact your IO DLL's developer for further assistance.

Game processes have terminated Press any key to continue . . .

without this segatool the game won't boot

Sanheiii commented 2 months ago

You must use the mu3hook.dll included in ongeki-io. I have made some changes in it that haven't been merged into other's branches, nor have I pulled in changes from others.

JamesLewisLiu commented 2 months ago

image After I replace all files in config.zip and MU3Input.zip the game stuck at here and wont boot, I can only boot with both path contains MU3Input.dll commented

Sanheiii commented 2 months ago

Please try running the command .\inject -d -k mu3hook.dll amdaemon.exe -f -c config_common.json config_server.json config_client.json in the package directory and report any errors back to me.

JamesLewisLiu commented 2 months ago
--- Begin mu3_pre_startup ---
DVD: hook enabled.
Reg hook init
DipSw: DipSw1=1 set
Epay: Init
VFD: hook enabled.
XInput: --- Begin configuration ---
XInput: Mouse lever emulation : 1
XInput: ---  End  configuration ---
Unity: Hook enabled.
---  End  mu3_pre_startup ---
Security: Opened handle
Pcbid: Get PCB serial
Security: nusec_ioctl_get_nvram_geometry
Security: nusec_ioctl_get_nearfull
Hwmon: Opened device
AmVideo: amDllVideoOpen
AmVideo: amDllVideoSetResolution
AmVideo: amDllVideoClose
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
SetupAPI: Interface {4d1e55b2-...} -> Device node $io4\vid_0ca3
USB I/O: Device opened
USB I/O: Get manufacturer string
USB I/O: Get product string
USB I/O: Clear board status
USB I/O: Set comm timeout
USB I/O: Set sampling count
NFC Assembly: Starting backend DLL
NFC 00: Reset
Netenv: GetBestRoute ip4 0.0.0.0 -> ip4 0.0.0.0
Clock: Returning JST timezone
Epay: my_ThincaPaymentGetInstance hit!
Epay: Thinca Initialize 0
Epay: Thinca Set Event Handler 00007FF683C62178
Epay: Thinca Set Resource H:\SDDT\SDDT_1.45\app\package\tfps-res-pro\
Epay: Thinca Set ICAS Client log 2 | y:\SDDT\log\emoney_log\icasclient.log
Epay: Thinca Set Paylog 2 | y:\SDDT\log\emoney_log\thincapayment.log | 10 | 20M
Epay: Thinca Set ICAS Client Config TfpsAimeRwAdapter,\\.\COM1:115200:00 | 60000
Epay: Thinca Set Goods Code 0990
Epay: my_ThincaPaymentGetInstance hit!
Epay: Thinca Unknown 220/228 1
Epay: Thinca Unknown 220/228 1
Epay: Thinca Unknown 220/228 2
Epay: Thinca Unknown 220/228 2
Epay: Thinca Unknown 220/228 3
Epay: Thinca Unknown 220/228 3
Epay: Thinca Unknown 220/228 5
Epay: Thinca Unknown 220/228 5
Epay: Thinca Unknown 220/228 6
Epay: Thinca Unknown 220/228 6
Epay: Thinca Unknown 220/228 8
Epay: Thinca Unknown 220/228 8
Epay: Thinca Unknown 220/228 7
Epay: Thinca Unknown 220/228 7
Epay: Thinca Unknown 220/228 9
Epay: Thinca Unknown 220/228 9
Epay: my_ThincaPaymentGetInstance hit!
Epay: Thinca Set Terminal Serial ACAE01A9999
Security: nusec_ioctl_get_billing_pubkey
>>> 00007FF683D601E1:0/1024
<<< 00007FF683D601E1:162/1024
Security: nusec_ioctl_get_play_limit
Security: nusec_ioctl_get_nearfull
Security: nusec_ioctl_get_play_count
NFC 00: Reset
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 17 2d 50 6f 77 65 72 20 6f 6e 20 ......-Power on
    00000010: 41 31 39 31 35 36 33 35 36 33 30 20 53 44 44 54 A1915635630 SDDT
    00000020: 20 31 2e 34 35 20 20 20 41 31 39 31 56 33 56 30  1.45   A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 1 T: 0
Netenv: GetBestRoute ip4 0.0.0.0 -> ip4 192.168.162.11
Netenv: GetBestRoute ip4 0.0.0.0 -> ip4 192.168.162.11
Security: nusec_ioctl_put_trace_log_data
    00000000: 82 18 08 11 0d 17 2d 00 00 00 01 01 00 01 01 01 ......-.........
    00000010: 01 01 01 01 01 01 21 05 41 31 39 31 56 33 56 30 ......!.A191V3V0
    00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000030: 00 00 00 00 00 00 00 00 00 00 00 00             ............

    H: 2 T: 0
Netenv: Virtualized ICMP Ping to ip4 192.168.162.254
RGB LED 08: Reset
Netenv: Virtualized ICMP Ping to ip4 192.168.162.254
Netenv: Virtualized ICMP Ping to ip4 192.168.162.254
RGB LED 08: Get info
Netenv: Virtualized ICMP Ping to ip4 70.24.37.59
Netenv: Virtualized ICMP Ping to ip4 70.24.37.59
Netenv: Virtualized ICMP Ping to ip4 70.24.37.59
Clock: Blocked timezone update
Clock: Blocked system time update
Clock: Blocked system time update
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 18 06 43 6c 6f 63 6b 20 32 34 30 .......Clock 240
    00000010: 38 31 37 32 32 32 34 30 35 20 32 34 30 38 31 37 817222405 240817
    00000020: 32 32 32 34 30 36 20 20 41 31 39 31 56 33 56 30 222406  A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 3 T: 0
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 18 06 43 6c 6f 63 6b 20 32 34 30 .......Clock 240
    00000010: 38 31 37 32 32 32 34 30 35 20 32 34 30 38 31 37 817222405 240817
    00000020: 32 32 32 34 30 36 20 20 41 31 39 31 56 33 56 30 222406  A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 4 T: 0
Security: nusec_ioctl_get_nvram_available: used=4 avail=7150
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 18 06 53 79 73 20 41 75 74 68 20 .......Sys Auth
    00000010: 4f 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OK
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 5 T: 0
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 18 10 41 75 74 68 20 72 65 74 72 .......Auth retr
    00000010: 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 6 T: 0
Security: nusec_ioctl_get_play_count
Security: nusec_ioctl_get_play_limit
Security: nusec_ioctl_get_billing_ca_cert
>>> 00007FF683D607D4:0/1024
<<< 00007FF683D607D4:817/1024
Security: nusec_ioctl_get_trace_log_state H: 6 T: 0
Security: nusec_ioctl_get_trace_log_state H: 6 T: 0
Security: nusec_ioctl_get_trace_log_data
    Params: 0 6 Buf: 429240
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 11 0d 18 12 41 75 74 68 20 4e 47 20 6e .......Auth NG n
    00000010: 65 74 77 6f 72 6b 20 20 20 20 20 20 20 20 20 20 etwork
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 7 T: 0
Security: nusec_ioctl_get_nvram_available: used=7 avail=7147

Then stucked

Sanheiii commented 2 months ago

The log shows that there was no attempt to load MU3IO, and it seems that you did not use the segatools.ini file I provided. However, this alone should not cause the game to fail to start.

JamesLewisLiu commented 2 months ago

Okay, now im using u provided dll and here's log

--- Begin mu3_pre_startup ---
DVD: hook enabled.
NFC Assembly: Using custom IO DLL: MU3Input.dll
Ongeki IO: Using custom IO DLL: MU3Input.dll
---  End  mu3_pre_startup ---
Security: Opened handle
Pcbid: Get PCB serial
Security: nusec_ioctl_get_nvram_geometry
Security: nusec_ioctl_get_nearfull
Hwmon: Opened device
AmVideo: amDllVideoOpen
AmVideo: amDllVideoSetResolution
AmVideo: amDllVideoClose
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
Netenv: GetAdaptersInfo: Virtualized LAN configuration:
Netenv: Interface IP :   192.168.162. 11
Netenv: Router IP    :   192.168.162.254
Netenv: MAC Address  : 01:02:03:04:05:06
SetupAPI: Interface {4d1e55b2-...} -> Device node $io4\vid_0ca3
VFD TX:
    00000000: 1b 0b 1b 21 01 1b 32 02                         ...!..2.

USB I/O: Device opened
USB I/O: Get manufacturer string
USB I/O: Get product string
Runtime exception occurred.
File: D:\Jenkins\workspace\amdaemon_all_build\libs\libamw\src\amw_registry.cpp
Line: 81
Function: bool __cdecl am::Registry::open(struct HKEY__ *,const wchar_t *,unsigned long,bool)
Message: RegCreateKeyExW(). ErrorCode 5.
Stack:
[0x00007ff650e4e06d] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff650e0aca7] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff65106857d] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff651083641] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff651083562] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff65104e46c] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff6510057a5] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff6510041ac] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff651002dc6] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff65105997a] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff6510670f5] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff651015424] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff650e02643] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff650e0233c] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff650e10ea4] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ff65108273a] <unknown symbol> @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\amdaemon.exe
[0x00007ffe5729c4e4] mu3_io_set_led @ <unknown file>:H:\SDDT\SDDT_1.45\mageki\package\mu3hook.dll
[0x00007ffe8e5b7374] BaseThreadInitThunk @ <unknown file>:C:\Windows\System32\KERNEL32.DLL
[0x00007ffe8f4bcc91] RtlUserThreadStart @ <unknown file>:C:\Windows\SYSTEM32\ntdll.dll
Clock: Returning JST timezone
USB I/O: Clear board status
USB I/O: Set comm timeout
USB I/O: Set sampling count
USB I/O: GPIO Out
NFC Assembly: Starting backend DLL
NFC 00: Reset
Netenv: GetBestRoute ip4 0 -> ip4 0
Security: nusec_ioctl_get_billing_pubkey
>>> 00007FF6517401E1:0/1024
<<< 00007FF6517401E1:162/1024
Security: nusec_ioctl_get_play_limit
Security: nusec_ioctl_get_nearfull
Security: nusec_ioctl_get_play_count
NFC 00: Reset
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 06 50 6f 77 65 72 20 6f 6e 20 .......Power on
    00000010: 41 31 39 31 35 36 33 35 36 33 30 20 53 44 44 54 A1915635630 SDDT
    00000020: 20 31 2e 34 35 20 20 20 41 31 39 31 56 33 56 30  1.45   A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 1 T: 0
Netenv: GetBestRoute ip4 0 -> ip4 c0a8a20b
Netenv: GetBestRoute ip4 0 -> ip4 c0a8a20b
Security: nusec_ioctl_put_trace_log_data
    00000000: 82 18 08 12 0e 1f 06 00 00 00 01 01 00 01 01 01 ................
    00000010: 01 01 01 01 01 01 21 05 41 31 39 31 56 33 56 30 ......!.A191V3V0
    00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00000030: 00 00 00 00 00 00 00 00 00 00 00 00             ............

    H: 2 T: 0
Netenv: Virtualized ICMP Ping to ip4 c0a8a2fe
Netenv: Virtualized ICMP Ping to ip4 c0a8a2fe
RGB LED 08: Reset
Netenv: Virtualized ICMP Ping to ip4 c0a8a2fe
RGB LED 08: Get info
Netenv: Virtualized ICMP Ping to ip4 4c464cec
Netenv: Virtualized ICMP Ping to ip4 4c464cec
Netenv: Virtualized ICMP Ping to ip4 4c464cec
Clock: Blocked timezone update
Clock: Blocked system time update
Clock: Blocked system time update
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 1b 43 6c 6f 63 6b 20 32 34 30 .......Clock 240
    00000010: 38 31 38 32 33 33 31 32 35 20 32 34 30 38 31 38 818233125 240818
    00000020: 32 33 33 31 32 37 20 20 41 31 39 31 56 33 56 30 233127  A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 3 T: 0
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 1b 43 6c 6f 63 6b 20 32 34 30 .......Clock 240
    00000010: 38 31 38 32 33 33 31 32 35 20 32 34 30 38 31 38 818233125 240818
    00000020: 32 33 33 31 32 37 20 20 41 31 39 31 56 33 56 30 233127  A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 4 T: 0
Security: nusec_ioctl_get_nvram_available: used=4 avail=7150
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 1b 53 79 73 20 41 75 74 68 20 .......Sys Auth
    00000010: 4f 4b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OK
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 5 T: 0
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 25 41 75 74 68 20 72 65 74 72 ......%Auth retr
    00000010: 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 6 T: 0
Security: nusec_ioctl_get_play_count
Security: nusec_ioctl_get_play_limit
Security: nusec_ioctl_get_billing_ca_cert
>>> 00007FF6517407D4:0/1024
<<< 00007FF6517407D4:817/1024
Security: nusec_ioctl_get_trace_log_state H: 6 T: 0
Security: nusec_ioctl_get_trace_log_state H: 6 T: 0
Security: nusec_ioctl_get_trace_log_data
    Params: 0 6 Buf: 429240
Security: nusec_ioctl_put_trace_log_data
    00000000: 81 18 08 12 0e 1f 28 41 75 74 68 20 4e 47 20 6e ......(Auth NG n
    00000010: 65 74 77 6f 72 6b 20 20 20 20 20 20 20 20 20 20 etwork
    00000020: 20 20 20 20 20 20 20 20 41 31 39 31 56 33 56 30         A191V3V0
    00000030: 21 05 00 00 00 00 00 00 00 00 00 00             !...........

    H: 7 T: 0
Security: nusec_ioctl_get_nvram_available: used=7 avail=7147

then stucked again

Sanheiii commented 2 months ago

After amdaemon gets stuck, if you run .\mu3.exe -screen-height 1920 -screen-width 1080 -adapter 1 -screen-fullscreen 1 -nolog, does it fail to load? Then check whether amdaemon has exited.

JamesLewisLiu commented 2 months ago

Now it can boot however some IO does not work properly, all buttons work fine but lever is not working at all Solved by delete the udp controller and add it back again. Also I've add keyboard in IOConfig however the keyboard is not working at all. I also checked the start.bat again

start "AM Daemon" /min inject -d -k mu3hook.dll amdaemon.exe -f -c config_common.json config_server.json config_client.json
inject -d -k mu3hook.dll mu3 -screen-fullscreen 0 -popupwindow -screen-width 1080 -screen-height 1920
taskkill /f /im amdaemon.exe > nul 2>&1

and found that it is injecting the mu3.exe, but yours don't. Kinda confused now

Sanheiii commented 2 months ago

Previously, Segatools only hooked some paths in mu3.exe, but after loading the mod, some issues arose, so it stopped hooking and completed the process through the mod. The current Segatools is gradually being improved, and before the next major version update of Ongeki, I will try to refactor the code to adapt to Dniel97's branch of Segatools.

Sanheiii commented 2 months ago

All items in the keyboard controller are set to "empty" by default. You need to go to "IOConfig" and click on "按键设定" to configure them.