Repository navigation
Releases: inada-s/zdxsv
Release list
v1.3.2
What's Changed
- Lobby: build battle info from the players' platform info at match time by @inada-s-ai[bot] in #164
- lobby API: POST /lbs/login answers the login result in JSON by @inada-s-ai[bot] in #165
Full Changelog: v1.3.1...v1.3.2
v1.3.1
v1.3.0
v1.2.1
What's Changed
- DEPLOY.md: the migration is done; keep only what still applies by @inada-s in #123
- website: zproxy download button from GitHub Releases by @inada-s in #124
- lobby: lobby TCP source IP as a GGPO peer candidate by @inada-s-ai[bot] in #125
- lobby: replay upload API in the lobby (as gdxsv), retire the Cloud Function by @inada-s-ai[bot] in #127
- Bump go.opentelemetry.io/otel/sdk from 1.36.0 to 1.45.0 by @dependabot[bot] in #130
- ci: run the smoke test's DNS on port 10053 instead of freeing port 53 by @inada-s-ai[bot] in #128
- Bump google.golang.org/grpc from 1.74.2 to 1.83.2 by @dependabot[bot] in #132
- Bump github.com/go-jose/go-jose/v4 from 4.1.4 to 4.1.6 by @dependabot[bot] in #129
- lobby: random ggpo_session per battle, live input frame cap by @inada-s-ai[bot] in #133
- AGENTS.md: comment rules for agents by @inada-s in #134
- Trim code comments to AGENTS.md rules by @inada-s-ai[bot] in #135
- lobby: close a live session on a player's battle end when its uplink is silent by @inada-s-ai[bot] in #137
- lobby: one emulator platform for every CPU by @inada-s-ai[bot] in #136
- lobby: battle info and match report as protobuf by @inada-s-ai[bot] in #138
- server: TLS ports for emulators (dnas, lobby, battle) by @inada-s-ai[bot] in #139
- lobby: match report carries per-peer ping and disconnected positions by @inada-s-ai[bot] in #140
- lobby: ban logins by user id, machine id or ip; ops API to manage bans by @inada-s-ai[bot] in #141
- deploy: the lobby's GGPO relay on UDP 8204 in the .env template and port table by @inada-s-ai[bot] in #142
- lobby: a lobby battle starts only among players with the same sync fingerprint by @inada-s-ai[bot] in #143
- proto: rollback budget (learned and used) in the match report by @inada-s-ai[bot] in #144
- lobby: regional relays ranked per battle by the players' region latencies, up to 4 by @inada-s-ai[bot] in #145
- lobby: refuse pcsx2 below m_server_setting min_pcsx2_version (PLEASE UPDATE PCSX2) by @inada-s-ai[bot] in #146
- infra/udptest: Cloud Function for the UDP reachability test by @inada-s-ai[bot] in #147
- lobby: relay the live battle's round results to spectators by @inada-s-ai[bot] in #148
- relay: zdxsv relay registers with the lobby and gets the battle session tokens by @inada-s-ai[bot] in #150
- Bump github.com/cloudevents/sdk-go/v2 from 2.6.1 to 2.15.2 in /infra/udptest by @dependabot[bot] in #149
- infra/udptest: module path with a dot and the go127 runtime by @inada-s in #151
- relay: lobby starts regional relays on demand and shuts idle ones down by @inada-s-ai[bot] in #152
- tls-keys.sh: keep Git Bash from rewriting -subj into a Windows path by @inada-s in #153
- docs/TLS.md: install the server key under /etc/zdxsv/tls, owned by root by @inada-s in #154
- P2PMatchingReport: timesync, input blocks, fps history, packet loss by @inada-s-ai[bot] in #155
- P2PMatchingReport round_data -> battle records' used_ms, replay search by MS by @inada-s-ai[bot] in #156
- Battle info: users[].team by @inada-s-ai[bot] in #157
- Replay play count: /lbs/replay_played by @inada-s-ai[bot] in #158
- zproxy: restart itself after a self-update by @inada-s in #159
Full Changelog: v1.2.0...v1.2.1
v1.2.0
Changelog
- 8b0cf6c Build releases in CI; the server deploys by downloading them
- 3cf629b DEPLOY.md: name the tag when the latest release has no server tarball
- 4a5ce2e Make zproxy-release-needed.sh executable
- b373586 Run every server in one process with
zdxsv all - eb52157 Run every server when zdxsv is given no command
- 43c0206 Run zdxsv as a systemd service instead of docker
- 8331821 Ship zproxy in a release only when its code changed
- a2e1cc5 Update the sample .env for the one-container stack
- 55e4070 website: split status panel into PS2 and emulator sections
v1.1.0
Changelog
- 3431e61 Bump github.com/golang/glog
- fa4889d Bump github.com/ulikunitz/xz from 0.5.9 to 0.5.14
- f14e861 Bump golang.org/x/crypto from 0.51.0 to 0.52.0
- 8e34ac3 Bump golang.org/x/net from 0.25.0 to 0.55.0
- ea9e900 Bump golang.org/x/oauth2
- 43a28ee Bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /infra/uploader
- fdcdad2 Bump google.golang.org/protobuf from 1.26.0 to 1.33.0
- 75df86a Bump ulikunitz/xz to v0.5.17 so zproxy builds for 32-bit targets
- 2baf5b9 Caddy: match the bound listener, redirect plain http; ZDXSV_DNS_ADDR; phase 1 notes
- a102820 Drop website/CNAME: ignored when Pages publishes from Actions
- f098344 MIGRATION.md: Search Console step is optional (domain property covers www)
- 27ede88 Measure Go test coverage (make cover, CI summary); bump x/net so tests link on macOS with Go 1.23+
- 2788fab Merge master into ai/ggpo-relay: keep both relayLine and battleInfoName (#62)
- 5b9d292 Merge remote-tracking branch 'origin/master' into ai/zproxy-fin-frames
- d38aa3e Remove docs/MIGRATION.md from the repo
- c774f2e Replay uploader Cloud Function (gdxsv infra/uploader) and lobby /ops/replay_uploaded
- 7031191 Split zdxsv.net: website to GitHub Pages, lobby /lbs/status, caddy site config
- e637fe2 Tests for lobby message codec, lobby model, battle rpc/room/logic and the battle TCP relay
- e3ddc00 Update go-sqlite3 version to fix build error
- c9b18fe battle TCP: close on fin data and zero size frames; lobby: no panic on an opponent position past the battle users
- 4e2259b battle: UDP server/peer tests over real UDP; Serve(conn) returns when the conn is closed
- 783b7b9 ci: build each image in its own step
- b8fdf99 ci: free port 53 without stopping systemd-resolved
- 09e3e0b config: test LoadConfig defaults and every env variable
- 80a42ac cover: count code reached from any package's tests (-coverpkg, covdata)
- cb77be7 db: login keys, user ids and session ids from crypto/rand; drop unused randInt
- 7d1174f db: migratedb keeps the battle_record indexes; test the replay_url migration
- 8cb27da db: tests use a fresh temp DB per run (pass with -count=N and -shuffle=on)
- 8a360fd dnas: Go DNAS server (zdxsv dnas), DNASrep data embedded; golden workflow (temporary)
- 3c6a2b2 docker: build router from source, restart policies, compose smoke test in CI; status page per platform
- c8f2b29 docker: dnas service (zdxsv dnas) replaces legacyweb (Apache/PHP DNASrep)
- 56f1321 docker: noninteractive legacyweb build; CI build step timeout + plain log
- 78dc17c docs, smoke: build the zdxsv image once before compose
- 20365ee go vet and gofmt clean; CI runs both
- a642819 lobby relay: test NAT rebinding and an address taken by another player
- 1c14470 lobby/message: one sync helper for MessageBodyWriter; ioutil -> io
- b624c4c lobby: 0x9951 p2p_=udp_addr,udp_local per bridged peer
- 513d99a lobby: GET /lbs/live lists the live spectating battles with their players
- f9b272d lobby: GGPO relay server for lobby GGPO battles (inada-s/ai-automation#43)
- 68357c6 lobby: STUN test socket on the RPC port + 1 for the emulator connectivity test (inada-s/ai-automation#43)
- 7b3a958 lobby: TCP client tests for login, lobby and room battles; Server.Serve(listener)
- 971d51d lobby: after room chat to peers in the room; dns: stop on empty IP; login: max-age=60
- 7291095 lobby: alive check in checkAlive, interval a field; test it
- 080c669 lobby: battle info adds battle_code; 0x9952 P2PMatchingReport from lobby GGPO emulators is logged (inada-s/ai-automation#43)
- a86f391 lobby: battle info adds ggpo_session (FNV-1 32 of the battle code, as gdxsv) and ggpo_ping_ms=7500 for the GGPO ping test (inada-s/ai-automation#43)
- 96a0fde lobby: battle info adds name_ (UTF-8) for the emulator's network status OSD (inada-s/ai-automation#43)
- e3654b8 lobby: battle info and battle record carry each player's pilot name
- bfa6134 lobby: battle info names are already UTF-8 (login's ReadEncryptedString decodes Shift-JIS); drop the second decode that garbled them (inada-s/ai-automation#43)
- 8f2058b lobby: battle info notice 0x9951 for emulator UDP bridges; bench -bridge
- ee565c3 lobby: battle info notice lists each bridge's GGPO port (ggpo_=port; inada-s/ai-automation#43)
- 6dede3a lobby: battle info p2p_ also lists udp_addr6 (the emulator's IPv6) for dual-stack GGPO (inada-s/ai-automation#43)
- b2aa8fc lobby: battle info sync_ = each player's sync-settings fingerprint (platform info sync)
- afa155b lobby: functional test of chat scope (lobby, room, room exit/removal) and the test battle without a proxy
- bb7ae93 lobby: functional test of the lobby 3/4 explain payloads and w0/w1 chat
- be5f40d lobby: functional test of the win/kill ranking pages (paging, links, sides, scores)
- efa2d6e lobby: functional test of the zproxy RPC (register, battle info, status)
- 1f64bb1 lobby: keep emulator and real PS2 players apart
- 9f860af lobby: live auto-next picks the newest running battle the spectator has not watched (gdxsv's pick)
- 9e440ec lobby: live spectating over the lobby UDP socket (gdxsv SpectatorInputPush/Ack/Subscribe, go-back-N streams)
- 435688d lobby: live streams carry no start state (spectators use the hosted common state)
- f1f49d8 lobby: public /lbs/replay API (ZDXSV_LOBBY_API_ADDR) to find uploaded replays (as gdxsv)
- 6acb4d7 lobby: relay maintenance stops with Serve; test relay setup split out and tested
- 298ee0f lobby: room/rule/battle-rule handlers no longer panic on a peer without room or lobby, or an unknown rule id
- 5b4f728 lobby: test the lobby 1 test battle with a registered proxy
- 29ce095 lobby: wait up to 5 s for the handler in TestDispatchMessage
- 7e71a37 login: HTTP tests for top/register/login; register returns after a DB error
- 533e616 proto: UDP client ping/pong, subscribe/unsubscribe and ReadLoop shutdown test
- 843a215 router: routing tests (dnas, https-portal + PROXY header, short hello, backend down)
- b499e9d sessionid: one decoder for lobby 0x6101 and battle join; reject values below 100001
- fb663ae status: count lobby and battle users per platform
- d3b7d6d status: lobby poll step in updateStatus; test it
- 9f32afd status: test updateStatus against a hung lobby
- 21872de tests: one temp SQLite DB helper (pkg/db/dbtest) for lobby and login
- 28b973c zdxsv dns: handlers on newDNSMux instead of the global mux; test the answers over UDP
- e0223f5 zdxsv login: handler built by newLoginHandler; test health and asset serving
- 6c994e7 zdxsv relay : the GGPO relay alone, for rigs without a lobby (inada-s/ai-automation#43)
- d50f679 zdxsv relay test mode: log the session's forwarded count every 10 s (inada-s/ai-automation#43)
- 24f4107 zproxy fin: skip the PS2 join like the battle TCP peer; e2e sends size-prefixed frames
- e482e16 zproxy test: serve the battle server on the reserved conn (no port race)
- 4460fba zproxy: ServeBattle tests through the real battle UDP server; parse flags in main
- 89a8770 zproxy: errors.New for the lobby message (vet printf check from go 1.24)
- 416d2a1 zproxy: find the fin frame in coalesced and split PS2 reads
- ef14151 zproxy: functional test of PollLobby against a local lobby RPC
- f543ef8 zproxy: honor -upnp=false
- bae7d57 zproxy: local IP probe in localIP, address a field; test Setup
- ea48d32 zproxy: send to 127.0.0.1 for a local battle server
v1.0.4
Changelog
163646e Quit when get SIGINT SIGTERM SIGQUIT
e8e1b42 Update README.md
1fd56d5 Update lobby.go
201ef5b add discord frame
2cbbf41 add gdxsv dns
56701a3 delete debug page
d9e112a fix iframe layout
accd26a fix imformation page to write dummy response
6e1778b fix jumbtron style
901afad fix lag to 5f
5a38e5c fix tab style
92aa476 fix test
89561a6 fix to calculate battle count each side
4fbf02b fix to update battle count
39d5935 fix-information-page-2
0db305b ranking
6020b37 tiny fix
ef407eb update circleci golang image
d5f11eb update goupnp and zproxy to support many routers
6f74006 update website
41cdcc5 update website
v1.0.3
Changelog
59c2cf5 Id to ID
28b3949 Move lobby hack functions to another file
2b4b689 add comments
62b54e6 add entrypoint script
2ca8412 add index
7aa1b2c add migration command
ca1a3f0 add top message
cb85f9d add widescreen patch
5118683 buffer overflow hack. fix max delay to 6fr
9da0216 bugfix
b1e37ea bugfix invalid buttle conut
a3dd765 delete unused method
c72a8a3 disable topinfo
d81f4e7 disable verbose log
6196604 display battle count when battle start
579a91d display personal record
9c6291f fix
d397345 fix battle code and to calculate battle counts
9e06e41 fix broken entry user count
3d88047 fix ci Makefile to run tests
e44f3ea fix comment
041e998 fix comments
11c1ab2 fix docker-compose dev
197bd62 fix docker-compose to rebuild when restart
ef9f48e fix entrypoint of zdxsv
0450f8b fix entrypoint script
319b4b7 fix id problem
de7eb0f fix migration code
b2275a9 fix paddelay to 4f
28b552f fix test
817e764 fix test cases
1cbd858 fix unreachable code
cac5cb9 fix widescreen hack
6b4ce18 format
b4e656a introduce sqlx and display kill-count
9ac4333 quit when get any signal
7099468 ranking by entry side
eb6cb37 register user when login key is valid length but not found
c44ae97 replace mahonia with encoding/japanese
f0d29f4 rm unused code
13f4354 set aggregate flag
16daf32 store battle result into database
197168b testing
13bd718 update website news