pokken: Game Server and LAN doesn't work when communicating with ARTEMiS ALL.NET server, no sign of communication #4

Open
opened 2024-06-16 18:11:48 +00:00 by dsync · 4 comments

Currently this only support Single Player mode. Game Server and LAN network doesn't work when communicating with ARTEMiS server, despite ARTEMiS server support it. I didn't see any logs from the server either so it is confirm the loader inject.exe didn't attempt to ping the ARTEMiS server.

Both All.NET and Card Reader icon indicator doesn't light up in game.

However, the physical card reader does works, just that the card icon didn't lit up probably because it can't communicate with ALL.NET server like ARTEMiS. ! Hope the author will release another update to this tool that allow communicating with ARTEMiS server.

Following is the bananatools.ini I used::

192.168.1.29 is my server IP address. Using version 25.03 as suggested.

; Controls the virtual file system hooks. These redirect file i/o
; requests to a folder specified below, instead of the drive.
; These are all required, even if the game doesn't use one of them.
[vfs]
path=vfs

[dns]
default=192.168.1.29

; Security dongle emulation, disable if you have a 
; real dongle connected that you want to use
[dongle]
enable=1
serial=274713190001

; Set the network environment. Most games seem to want 192.168.123.X
[netenv]
enable=1
subnet=192.168.1.0
addrSuffix=88

; Graphics hook, may cause crashes in some games
[gfx]
enable=0
windowed=1
framed=0
monitor=0

[misc]
systemVersion=PKF100-1-NA-SYS0-A01

; Control the AMCUS replacement class
[amcus]
enable=1
game_id=SDAK
game_cd=PKF1
am_game_ver=1.00
cacfg_game_ver=25.03
server_uri=192.168.1.29
server_host=192.168.1.29

; Controlls the xinput hooks
[xinput]
enable=1

[reader]
enable=0
access_code=00000000000000000000

; JVS config
[jvs]
enable=1
port=3

; Mappings for the najv4 IO board. To disable JVS emulation and use
; a real board, set enable to 0 in the "jvs" section.
[najv4]
; "Home" key
test=0x24 
; "Insert" key
coin=0x2D 
; "Delete" key
service=0x2E 
; Up arrow
up=0x26 
; Down arrow
down=0x28 
; Spacebar
enter=0x20

; Mappings for the gamepad
[gamepad]
; W
dpad_up=0x57
; A
dpad_down=0x53
; S
dpad_left=0x41
; D
dpad_right=0x44
; O
button_a=0x4F
; K
button_b=0x4B
; I
button_x=0x49
; J
button_y=0x4A
; Q
trigger_l=0x51
; E
trigger_r=0x45
; Left Shift
button_start=0xA0
Currently this only support Single Player mode. Game Server and LAN network doesn't work when communicating with ARTEMiS server, despite ARTEMiS server support it. I didn't see any logs from the server either so it is confirm the loader inject.exe didn't attempt to ping the ARTEMiS server. Both All.NET and Card Reader icon indicator doesn't light up in game. However, the physical card reader does works, just that the card icon didn't lit up probably because it can't communicate with ALL.NET server like ARTEMiS. ! Hope the author will release another update to this tool that allow communicating with ARTEMiS server. Following is the `bananatools.ini` I used:: `192.168.1.29` is my server IP address. Using version `25.03` as suggested. ``` ; Controls the virtual file system hooks. These redirect file i/o ; requests to a folder specified below, instead of the drive. ; These are all required, even if the game doesn't use one of them. [vfs] path=vfs [dns] default=192.168.1.29 ; Security dongle emulation, disable if you have a ; real dongle connected that you want to use [dongle] enable=1 serial=274713190001 ; Set the network environment. Most games seem to want 192.168.123.X [netenv] enable=1 subnet=192.168.1.0 addrSuffix=88 ; Graphics hook, may cause crashes in some games [gfx] enable=0 windowed=1 framed=0 monitor=0 [misc] systemVersion=PKF100-1-NA-SYS0-A01 ; Control the AMCUS replacement class [amcus] enable=1 game_id=SDAK game_cd=PKF1 am_game_ver=1.00 cacfg_game_ver=25.03 server_uri=192.168.1.29 server_host=192.168.1.29 ; Controlls the xinput hooks [xinput] enable=1 [reader] enable=0 access_code=00000000000000000000 ; JVS config [jvs] enable=1 port=3 ; Mappings for the najv4 IO board. To disable JVS emulation and use ; a real board, set enable to 0 in the "jvs" section. [najv4] ; "Home" key test=0x24 ; "Insert" key coin=0x2D ; "Delete" key service=0x2E ; Up arrow up=0x26 ; Down arrow down=0x28 ; Spacebar enter=0x20 ; Mappings for the gamepad [gamepad] ; W dpad_up=0x57 ; A dpad_down=0x53 ; S dpad_left=0x41 ; D dpad_right=0x44 ; O button_a=0x4F ; K button_b=0x4B ; I button_x=0x49 ; J button_y=0x4A ; Q trigger_l=0x51 ; E trigger_r=0x45 ; Left Shift button_start=0xA0 ```
dsync changed title from Game Server and LAN doesn't work when communicating with ARTEMiS ALL.NET server, no sign of communication to pokken: Game Server and LAN doesn't work when communicating with ARTEMiS ALL.NET server, no sign of communication 2024-06-16 18:11:59 +00:00
Owner

This is due to a misconfiguration. With amcus emulation enabled, the game will skip communicating with ALL.net and mucha, and the server uri and host are pulled from the config file. You must have the uri and host in the form below:

server_uri=https://192.168.1.29:443/pokken
server_host=192.168.1.29:443/pokken

Pokken will only talk over https, so you must have something proxying https requests to artemis, such as nginx.

This is due to a misconfiguration. With amcus emulation enabled, the game will skip communicating with ALL.net and mucha, and the server uri and host are pulled from the config file. You must have the uri and host in the form below: ``` server_uri=https://192.168.1.29:443/pokken server_host=192.168.1.29:443/pokken ``` Pokken will only talk over https, so you must have something proxying https requests to artemis, such as nginx.
Author

This is due to a misconfiguration. With amcus emulation enabled, the game will skip communicating with ALL.net and mucha, and the server uri and host are pulled from the config file. You must have the uri and host in the form below:

server_uri=https://192.168.1.29:443/pokken
server_host=192.168.1.29:443/pokken

Pokken will only talk over https, so you must have something proxying https requests to artemis, such as nginx.

Thanks for the reply and this is very revealing! I’ve been fervently testing all supported games in ARTEMiS to see if physical card reader works. And this being one of the game I’ve tested.

Perhaps after setting this right I can finally get Pokken to work, and it can read my card reader and save progress. Will report back here as I haven’t seen any post of video showing Pokken with card save progress using ARTEMiS or any All.Net server.

Just a side topic, I realized I didn’t see any logs from ARTEMIiS as well from Sword Art Online, perhaps it’s also related to this, and I’ll need to proxy https to Artemis.

P/S: I’ve been following your work closely and will submit any bugs or findings I found during my arcade game testing. Thanks for releasing these that allow us to reproduce Arcade experience in home, especially getting the card reader and server support to make the time spent playing these games worthwhile.

> This is due to a misconfiguration. With amcus emulation enabled, the game will skip communicating with ALL.net and mucha, and the server uri and host are pulled from the config file. You must have the uri and host in the form below: > ``` > server_uri=https://192.168.1.29:443/pokken > server_host=192.168.1.29:443/pokken > ``` > Pokken will only talk over https, so you must have something proxying https requests to artemis, such as nginx. Thanks for the reply and this is very revealing! I’ve been fervently testing all supported games in ARTEMiS to see if physical card reader works. And this being one of the game I’ve tested. Perhaps after setting this right I can finally get Pokken to work, and it can read my card reader and save progress. Will report back here as I haven’t seen any post of video showing Pokken with card save progress using ARTEMiS or any All.Net server. Just a side topic, I realized I didn’t see any logs from ARTEMIiS as well from Sword Art Online, perhaps it’s also related to this, and I’ll need to proxy https to Artemis. P/S: I’ve been following your work closely and will submit any bugs or findings I found during my arcade game testing. Thanks for releasing these that allow us to reproduce Arcade experience in home, especially getting the card reader and server support to make the time spent playing these games worthwhile.
Author

Would also appreciate if you could update the readme file again for the known games that work with bananatools with Artemis, since it only mentioned Taiko and Pokken for now. I’m guessing there might be more games that are supported?

Would also appreciate if you could update the readme file again for the known games that work with bananatools with Artemis, since it only mentioned Taiko and Pokken for now. I’m guessing there might be more games that are supported?
Author

Hey there @Hay1tsme , I've tried setting up nginx reverse proxy, configured it to production mode, and modified artemis core.yaml to follow the production mode guideline, but I still fail to see any communication log to the server, and during game boot it shows LAN error.

Note:

  • 192.168.1.29 is my server IP, which is the same as the PC where I start the Pokken Tournament game.
  • apollo.local is the hostname I added to point to my PC. Already added 192.168.1.29 apollo.local to my windows hosts file so it can resolve the domain.
  • I've tried enable and disable netenv, but same result. I noticed once I disable netenv, it can then resolve the domain or IP.
  • Confirmed nginx reverse proxy is proxying https://... to the right upstream server, so https://192.168.1.26:443/pokken works.

nginx reverse proxy

nginx.conf

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {

    # Allnet
    server {
        listen 80;
        server_name naominet.jp;
        
        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_request_headers on;
            proxy_pass http://127.0.0.1:8080/;
        }
    }

    # Non-SSL titles
    server {
        listen 80;
        server_name apollo.local;

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_request_headers on;
            proxy_pass http://127.0.0.1:8080/;
        }
    }

    # SSL titles, comment out if you don't plan on accepting SSL titles
    server {
        listen 443 ssl;
        server_name apollo.local;

        ssl_certificate ../ssl/apollo-local.crt;
        ssl_certificate_key ../ssl/apollo-local.key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers "ALL:@SECLEVEL=0";
        ssl_prefer_server_ciphers off;

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_request_headers on;
            proxy_pass http://127.0.0.1:8080/;
        }
    }

    # Billing, comment this out if running billing standalone
    server {
        listen 8443 ssl;	
        server_name ib.naominet.jp;
        
        ssl_certificate ../ssl/apollo-local.crt;
        ssl_certificate_key ../ssl/apollo-local.key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers "ALL:@SECLEVEL=0";
        ssl_prefer_server_ciphers off;

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_request_headers on;
            proxy_pass http://127.0.0.1:8080/;
        }
    }

    # Frontend, set to redirect to HTTPS. Comment out if you don't intend to use the frontend
    # server {
    #     listen 80;
    #     server_name apollo.local;

    #     location / {
    #         return 301 https://$host$request_uri;
    #         # If you don't want https redirection, or are using something like cloudflare to manage HTTPS, comment out the line above and uncomment the line below
    #         # proxy_pass http://127.0.0.1:8090/;
    #     }
    # }

    # Frontend HTTPS. Comment out if you on't intend to use the frontend, or have cloudflare or something managing https for you.
    # server {
    #     listen 443 ssl;
    #     server_name apollo.local;

    #     ssl_certificate ../ssl/apollo-local.crt;
    #     ssl_certificate_key ../ssl/apollo-local.key;
    #     ssl_session_timeout 1d;
    #     ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    #     ssl_session_tickets off;

    #     # intermediate configuration
    #     ssl_protocols TLSv1.2 TLSv1.3;
    #     ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    #     ssl_prefer_server_ciphers off;

    #     # HSTS (ngx_http_headers_module is required) (63072000 seconds)
    #     add_header Strict-Transport-Security "max-age=63072000" always;

    #     location / {
    #         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #         proxy_pass_request_headers on;
    #         proxy_pass http://127.0.0.1:8090/;
    #     }
    # }
}

ARTEMiS Server

core.yaml

server:
  listen_address: "0.0.0.0"  
  hostname: "192.168.1.29"  
  port: 8080
  ssl_key: "cert/title.key"
  ssl_cert: "cert/title.crt"
  allow_user_registration: True
  allow_unregistered_serials: True
  name: "ARTEMiS"
  is_develop: False
  is_using_proxy: True
  proxy_port: 80
  proxy_port_ssl: 443
  log_dir: "logs"
  check_arcade_ip: False
  strict_ip_checking: False

title:
  loglevel: "debug"
  reboot_start_time: "04:00"
  reboot_end_time: "05:00"
  hostname: "192.168.1.29"

database:
  host: "localhost"
  username: "aime"
  password: "password"
  name: "aime"
  port: 3306
  protocol: "mysql"
  sha2_password: False
  loglevel: "info"
  enable_memcached: True
  memcached_host: "localhost"

frontend:
  enable: False
  port: 8090
  loglevel: "debug"
  secret: ""

allnet:
  standalone: False
  port: 80
  loglevel: "debug"
  allow_online_updates: False
  update_cfg_folder: ""

billing:
  standalone: False
  loglevel: "info"
  port: 8443
  ssl_key: "cert/server.key"
  ssl_cert: "cert/server.pem"
  signing_key: "cert/billing.key"

aimedb:
  enable: True
  listen_address: 0.0.0.0
  loglevel: "info"
  port: 22345
  key: "Copyright(C)SEGA"
  id_secret: ""
  id_lifetime_seconds: 86400

mucha:
  loglevel: "debug"

pokken.yaml

  • Not sure where the default port 9000 and 9001 is used.
server:
  hostname: "192.168.1.29"
  enable: True
  loglevel: "debug"
  auto_register: True
  enable_matching: True
  stun_server_host: "stunserver.stunprotocol.org"
  stun_server_port: 3478

ports:
  game: 9000
  admission: 9001

Client Side

bananatools.ini

; Controls the virtual file system hooks. These redirect file i/o
; requests to a folder specified below, instead of the drive.
; These are all required, even if the game doesn't use one of them.
[vfs]
path=vfs

[dns]
default=192.168.1.29

; Security dongle emulation, disable if you have a 
; real dongle connected that you want to use
[dongle]
enable=1
serial=274713190001

; Set the network environment. Most games seem to want 192.168.123.X
[netenv]
enable=0
subnet=192.168.1.0
; addrSuffix=88

; Graphics hook, may cause crashes in some games
[gfx]
enable=0
windowed=1
framed=0
monitor=0

[misc]
systemVersion=PKF100-1-NA-SYS0-A01

; Control the AMCUS replacement class
[amcus]
enable=1
game_id=SDAK
game_cd=PKF1
am_game_ver=1.00
cacfg_game_ver=25.03
server_uri=https://192.168.1.29:443/pokken
server_host=192.168.1.29:443/pokken

; Controlls the xinput hooks
[xinput]
enable=1

[reader]
enable=0
access_code=00000000000000000000

; JVS config
[jvs]
enable=1
port=3

; Mappings for the najv4 IO board. To disable JVS emulation and use
; a real board, set enable to 0 in the "jvs" section.
[najv4]
; "Home" key
test=0x24 
; "Insert" key
coin=0x2D 
; "Delete" key
service=0x2E 
; Up arrow
up=0x26 
; Down arrow
down=0x28 
; Spacebar
enter=0x20

; Mappings for the gamepad
[gamepad]
; W
dpad_up=0x57
; A
dpad_down=0x53
; S
dpad_left=0x41
; D
dpad_right=0x44
; O
button_a=0x4F
; K
button_b=0x4B
; I
button_x=0x49
; J
button_y=0x4A
; Q
trigger_l=0x51
; E
trigger_r=0x45
; Left Shift
button_start=0xA0

ferrum_hook log

--- Begin ferrum_pre_startup ---
Netenv: init
Locale: Init
DNS: init
JVS I/O: init
Misc: init
Reg hook init
ES3 Dongle: init        VID: 0B9A | PID: 0C10 | Manufacturer: BM | Product: RUDI04GBN-274713 | S/N: 274713190001
Epay: Init
Xinput: init
AMCUS: init
debug: hook enabled.
---  End  ferrum_pre_startup ---
Misc: Block BlockInput -> 1
onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(2156)\directxdatabasehelper.dll!00007FFF51D91048: (caller: 00007FFF579A4596) ReturnHr(1) tid(15d58) 80070057 The parameter is incorrect.
Ferrum IO: Gamepad Init
JVS I/O: Starting backend
Ferrum JVS: Starting IO backend
Ferrum IO: JVS Init
AMCUS: CoCreateInstance GUID match
Misc: Block ShowCursor -> 0
IAuth: IAuth_Func30 hit!
IAuth: IAuth_Func23 hit! 0
Locale: returning Japanese LANGID
Locale: returning Japan GeoID
JVS I/O: Reset (param d9)
JVS I/O: Reset (param d9)
Misc: Block ShowCursor -> 1
JVS I/O: Assign addr 01 sense 0
JVS I/O: Get command format version
JVS I/O: Get JVS version
JVS I/O: Get communication version
JVS I/O: Read ID
JVS I/O: Get features
JVS I/O: PCB Info BNGI.;WinArc;Ver"2.2.3.1";JPN
JVS I/O: Namco Extended Command 0x18 param: 14D0        ;WinAr
JVS I/O: Namco Extended Command 0x18 param: 143C        second param: 8008
JVS I/O: Namco Extended Command 0x18 param: 143C        second param: 8008
JVS I/O: Namco Extended Command 0x18 param: 143C        second param: 8008
JVS I/O: Namco Extended Command 0x18 param: 143C        second param: 8008
Misc: Block ShowCursor -> 0
SetupAPI: Interface {3abf6f2d-...} -> Device node $hub
ES3 Dongle: Open USB Hub
ES3 Dongle: Close Hub
ES3 Dongle: Get Hub Driver Key
ES3 Dongle: Get Hub Device Description
ES3 Dongle: Open USB Hub
ES3 Dongle: Get Hub connection Info EX
ES3 Dongle: Get Hub Config Descriptor from Node Connection
ES3 Dongle: Get Hub Config Descriptor from Node Connection
ES3 Dongle: Get Hub String Descriptor For Dongle Manufacturer
ES3 Dongle: Get Hub String Descriptor For Dongle Product Name
ES3 Dongle: Get Hub String Descriptor For Dongle Serial Number
ES3 Dongle: Get Hub Connection Driver Key size
ES3 Dongle: Get Hub Connection Driver Key
ES3 Dongle: Get Hub Driver Key
ES3 Dongle: Close Hub
ES3 Dongle: Get Hub Driver Key
ES3 Dongle: Get Hub Device Description
ES3 Dongle: Get Hub Driver Key
ES3 Dongle: Get Hub Driver Key
ES3 Dongle: Get Hub Driver Key
Xinput: my_driverUtilGetControllerUsbIdPairs hit!
IAuth: IAuth_Func30 hit!
IAuth: IAuth_Func23 hit! 0
Misc: Block ShowCursor -> 1
Misc: Block ShowCursor -> 0
Misc: Block ShowCursor -> 1
Misc: Block ShowCursor -> 0
Misc: Block ShowCursor -> 1
IAuth: IAuth_Func30 hit!
IAuth: IAuth_Func23 hit! 0
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
debug: IsDebuggerPresent hooked.
name=
icon=
guid=93da9a8641478ebe9e5749b9b133d964
state=1
debug: IsDebuggerPresent hooked.
name=
icon=
guid=93da9a8641478ebe9e5749b9b133d964
state=1

from the game folder vfs/j/NWComponentLog.log. Not sure why there is this server URL http://dummy:8888

2024/06/19 07:24:40 (GMT) : [network][Manager]: アドレス取得OK.

2024/06/19 07:24:42 (GMT) : [network][Manager]: コンテンツルータチェックOK.

2024/06/19 07:24:42 (GMT) : [network][Manager]: AMAuthdとの接続OK.

2024/06/19 07:24:42 (GMT) : [network][GameServer]:Initialize succeed.
2024/06/19 07:24:42 (GMT) : [network][GameServer]:ResolveHost succeed.
2024/06/19 07:24:42 (GMT) : [network][GameServer]:Ping(SS) send succeed.
2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping(SS) response received.
2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping(SS) response error. code=%d.3
2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping API実行. 経過時間(ms)=2779
2024/06/19 07:24:45 (GMT) : [network][Manager]: ゲームサーバチェックNG.

2024/06/19 07:24:45 (GMT) : [network][Manager]: マッチングサーバの設定JSON: [{"MatchingServer":{"host":"http://dummy","port":8888,"url":"/game",},"StunServer":{"addr":"dummy","port":3333,},"TurnServer":{"addr":"dummy","port":4444,},"AdmissionUrl":"ws://dummy:1111","locationId":DUMMY,"logfilename":"JackalMatchingLibrary.log","biwalogfilename":"./biwa.log",}].

2024/06/19 07:24:46 (GMT) : [network][Manager]: ケーブル接続が切断されました. テストモードから復旧させるまで通信出来ません.

2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: checkCableConnection() start.
2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: checkCableConnection() end.
2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: cable disconnected.
2024/06/19 07:25:47 (GMT) : [network][GameServer]:LoadRanking(SS) send succeed.
2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking(SS) response received.
2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking(SS) response error. code=%d.3
2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking API実行. 経過時間(ms)=2716
Hey there @Hay1tsme , I've tried setting up nginx reverse proxy, configured it to production mode, and modified artemis `core.yaml` to follow the production mode guideline, but I still fail to see any communication log to the server, and during game boot it shows `LAN error`. Note: - `192.168.1.29` is my server IP, which is the same as the PC where I start the Pokken Tournament game. - `apollo.local` is the hostname I added to point to my PC. Already added `192.168.1.29 apollo.local` to my windows hosts file so it can resolve the domain. - I've tried enable and disable `netenv`, but same result. I noticed once I disable `netenv`, it can then resolve the domain or IP. - Confirmed nginx reverse proxy is proxying `https://...` to the right upstream server, so `https://192.168.1.26:443/pokken` works. ## nginx reverse proxy nginx.conf ``` #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { # Allnet server { listen 80; server_name naominet.jp; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080/; } } # Non-SSL titles server { listen 80; server_name apollo.local; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080/; } } # SSL titles, comment out if you don't plan on accepting SSL titles server { listen 443 ssl; server_name apollo.local; ssl_certificate ../ssl/apollo-local.crt; ssl_certificate_key ../ssl/apollo-local.key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers "ALL:@SECLEVEL=0"; ssl_prefer_server_ciphers off; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080/; } } # Billing, comment this out if running billing standalone server { listen 8443 ssl; server_name ib.naominet.jp; ssl_certificate ../ssl/apollo-local.crt; ssl_certificate_key ../ssl/apollo-local.key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers "ALL:@SECLEVEL=0"; ssl_prefer_server_ciphers off; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://127.0.0.1:8080/; } } # Frontend, set to redirect to HTTPS. Comment out if you don't intend to use the frontend # server { # listen 80; # server_name apollo.local; # location / { # return 301 https://$host$request_uri; # # If you don't want https redirection, or are using something like cloudflare to manage HTTPS, comment out the line above and uncomment the line below # # proxy_pass http://127.0.0.1:8090/; # } # } # Frontend HTTPS. Comment out if you on't intend to use the frontend, or have cloudflare or something managing https for you. # server { # listen 443 ssl; # server_name apollo.local; # ssl_certificate ../ssl/apollo-local.crt; # ssl_certificate_key ../ssl/apollo-local.key; # ssl_session_timeout 1d; # ssl_session_cache shared:MozSSL:10m; # about 40000 sessions # ssl_session_tickets off; # # intermediate configuration # ssl_protocols TLSv1.2 TLSv1.3; # ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; # ssl_prefer_server_ciphers off; # # HSTS (ngx_http_headers_module is required) (63072000 seconds) # add_header Strict-Transport-Security "max-age=63072000" always; # location / { # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_pass_request_headers on; # proxy_pass http://127.0.0.1:8090/; # } # } } ``` ## ARTEMiS Server core.yaml ``` server: listen_address: "0.0.0.0" hostname: "192.168.1.29" port: 8080 ssl_key: "cert/title.key" ssl_cert: "cert/title.crt" allow_user_registration: True allow_unregistered_serials: True name: "ARTEMiS" is_develop: False is_using_proxy: True proxy_port: 80 proxy_port_ssl: 443 log_dir: "logs" check_arcade_ip: False strict_ip_checking: False title: loglevel: "debug" reboot_start_time: "04:00" reboot_end_time: "05:00" hostname: "192.168.1.29" database: host: "localhost" username: "aime" password: "password" name: "aime" port: 3306 protocol: "mysql" sha2_password: False loglevel: "info" enable_memcached: True memcached_host: "localhost" frontend: enable: False port: 8090 loglevel: "debug" secret: "" allnet: standalone: False port: 80 loglevel: "debug" allow_online_updates: False update_cfg_folder: "" billing: standalone: False loglevel: "info" port: 8443 ssl_key: "cert/server.key" ssl_cert: "cert/server.pem" signing_key: "cert/billing.key" aimedb: enable: True listen_address: 0.0.0.0 loglevel: "info" port: 22345 key: "Copyright(C)SEGA" id_secret: "" id_lifetime_seconds: 86400 mucha: loglevel: "debug" ``` pokken.yaml - Not sure where the default port `9000` and `9001` is used. ``` server: hostname: "192.168.1.29" enable: True loglevel: "debug" auto_register: True enable_matching: True stun_server_host: "stunserver.stunprotocol.org" stun_server_port: 3478 ports: game: 9000 admission: 9001 ``` ## Client Side bananatools.ini ``` ; Controls the virtual file system hooks. These redirect file i/o ; requests to a folder specified below, instead of the drive. ; These are all required, even if the game doesn't use one of them. [vfs] path=vfs [dns] default=192.168.1.29 ; Security dongle emulation, disable if you have a ; real dongle connected that you want to use [dongle] enable=1 serial=274713190001 ; Set the network environment. Most games seem to want 192.168.123.X [netenv] enable=0 subnet=192.168.1.0 ; addrSuffix=88 ; Graphics hook, may cause crashes in some games [gfx] enable=0 windowed=1 framed=0 monitor=0 [misc] systemVersion=PKF100-1-NA-SYS0-A01 ; Control the AMCUS replacement class [amcus] enable=1 game_id=SDAK game_cd=PKF1 am_game_ver=1.00 cacfg_game_ver=25.03 server_uri=https://192.168.1.29:443/pokken server_host=192.168.1.29:443/pokken ; Controlls the xinput hooks [xinput] enable=1 [reader] enable=0 access_code=00000000000000000000 ; JVS config [jvs] enable=1 port=3 ; Mappings for the najv4 IO board. To disable JVS emulation and use ; a real board, set enable to 0 in the "jvs" section. [najv4] ; "Home" key test=0x24 ; "Insert" key coin=0x2D ; "Delete" key service=0x2E ; Up arrow up=0x26 ; Down arrow down=0x28 ; Spacebar enter=0x20 ; Mappings for the gamepad [gamepad] ; W dpad_up=0x57 ; A dpad_down=0x53 ; S dpad_left=0x41 ; D dpad_right=0x44 ; O button_a=0x4F ; K button_b=0x4B ; I button_x=0x49 ; J button_y=0x4A ; Q trigger_l=0x51 ; E trigger_r=0x45 ; Left Shift button_start=0xA0 ``` ferrum_hook log ``` --- Begin ferrum_pre_startup --- Netenv: init Locale: Init DNS: init JVS I/O: init Misc: init Reg hook init ES3 Dongle: init VID: 0B9A | PID: 0C10 | Manufacturer: BM | Product: RUDI04GBN-274713 | S/N: 274713190001 Epay: Init Xinput: init AMCUS: init debug: hook enabled. --- End ferrum_pre_startup --- Misc: Block BlockInput -> 1 onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(2156)\directxdatabasehelper.dll!00007FFF51D91048: (caller: 00007FFF579A4596) ReturnHr(1) tid(15d58) 80070057 The parameter is incorrect. Ferrum IO: Gamepad Init JVS I/O: Starting backend Ferrum JVS: Starting IO backend Ferrum IO: JVS Init AMCUS: CoCreateInstance GUID match Misc: Block ShowCursor -> 0 IAuth: IAuth_Func30 hit! IAuth: IAuth_Func23 hit! 0 Locale: returning Japanese LANGID Locale: returning Japan GeoID JVS I/O: Reset (param d9) JVS I/O: Reset (param d9) Misc: Block ShowCursor -> 1 JVS I/O: Assign addr 01 sense 0 JVS I/O: Get command format version JVS I/O: Get JVS version JVS I/O: Get communication version JVS I/O: Read ID JVS I/O: Get features JVS I/O: PCB Info BNGI.;WinArc;Ver"2.2.3.1";JPN JVS I/O: Namco Extended Command 0x18 param: 14D0 ;WinAr JVS I/O: Namco Extended Command 0x18 param: 143C second param: 8008 JVS I/O: Namco Extended Command 0x18 param: 143C second param: 8008 JVS I/O: Namco Extended Command 0x18 param: 143C second param: 8008 JVS I/O: Namco Extended Command 0x18 param: 143C second param: 8008 Misc: Block ShowCursor -> 0 SetupAPI: Interface {3abf6f2d-...} -> Device node $hub ES3 Dongle: Open USB Hub ES3 Dongle: Close Hub ES3 Dongle: Get Hub Driver Key ES3 Dongle: Get Hub Device Description ES3 Dongle: Open USB Hub ES3 Dongle: Get Hub connection Info EX ES3 Dongle: Get Hub Config Descriptor from Node Connection ES3 Dongle: Get Hub Config Descriptor from Node Connection ES3 Dongle: Get Hub String Descriptor For Dongle Manufacturer ES3 Dongle: Get Hub String Descriptor For Dongle Product Name ES3 Dongle: Get Hub String Descriptor For Dongle Serial Number ES3 Dongle: Get Hub Connection Driver Key size ES3 Dongle: Get Hub Connection Driver Key ES3 Dongle: Get Hub Driver Key ES3 Dongle: Close Hub ES3 Dongle: Get Hub Driver Key ES3 Dongle: Get Hub Device Description ES3 Dongle: Get Hub Driver Key ES3 Dongle: Get Hub Driver Key ES3 Dongle: Get Hub Driver Key Xinput: my_driverUtilGetControllerUsbIdPairs hit! IAuth: IAuth_Func30 hit! IAuth: IAuth_Func23 hit! 0 Misc: Block ShowCursor -> 1 Misc: Block ShowCursor -> 0 Misc: Block ShowCursor -> 1 Misc: Block ShowCursor -> 0 Misc: Block ShowCursor -> 1 IAuth: IAuth_Func30 hit! IAuth: IAuth_Func23 hit! 0 debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. debug: IsDebuggerPresent hooked. name= icon= guid=93da9a8641478ebe9e5749b9b133d964 state=1 debug: IsDebuggerPresent hooked. name= icon= guid=93da9a8641478ebe9e5749b9b133d964 state=1 ``` from the game folder `vfs/j/NWComponentLog.log`. Not sure why there is this server URL `http://dummy:8888` ``` 2024/06/19 07:24:40 (GMT) : [network][Manager]: アドレス取得OK. 2024/06/19 07:24:42 (GMT) : [network][Manager]: コンテンツルータチェックOK. 2024/06/19 07:24:42 (GMT) : [network][Manager]: AMAuthdとの接続OK. 2024/06/19 07:24:42 (GMT) : [network][GameServer]:Initialize succeed. 2024/06/19 07:24:42 (GMT) : [network][GameServer]:ResolveHost succeed. 2024/06/19 07:24:42 (GMT) : [network][GameServer]:Ping(SS) send succeed. 2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping(SS) response received. 2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping(SS) response error. code=%d.3 2024/06/19 07:24:45 (GMT) : [network][GameServer]:Ping API実行. 経過時間(ms)=2779 2024/06/19 07:24:45 (GMT) : [network][Manager]: ゲームサーバチェックNG. 2024/06/19 07:24:45 (GMT) : [network][Manager]: マッチングサーバの設定JSON: [{"MatchingServer":{"host":"http://dummy","port":8888,"url":"/game",},"StunServer":{"addr":"dummy","port":3333,},"TurnServer":{"addr":"dummy","port":4444,},"AdmissionUrl":"ws://dummy:1111","locationId":DUMMY,"logfilename":"JackalMatchingLibrary.log","biwalogfilename":"./biwa.log",}]. 2024/06/19 07:24:46 (GMT) : [network][Manager]: ケーブル接続が切断されました. テストモードから復旧させるまで通信出来ません. 2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: checkCableConnection() start. 2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: checkCableConnection() end. 2024/06/19 07:25:47 (GMT) : [JobTitle][network][LanChecker]: cable disconnected. 2024/06/19 07:25:47 (GMT) : [network][GameServer]:LoadRanking(SS) send succeed. 2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking(SS) response received. 2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking(SS) response error. code=%d.3 2024/06/19 07:25:49 (GMT) : [network][GameServer]:LoadRanking API実行. 経過時間(ms)=2716 ```
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Hay1tsme/bananatools#4
No description provided.