Skip to content

Latest commit

 

History

History
111 lines (58 loc) · 4.6 KB

UNSAFE_SPEEDUPS.md

File metadata and controls

111 lines (58 loc) · 4.6 KB

Unsafe Speedups

These are speedups that can provide extra speed increases, but may cause weird bugs or break GGST. These speedups have generally been tested, but may not work for everyone.

Use at your own risk.

-unga-bunga

(v1.2.0+)

Enable all below features.

-unsafe-async-stats-set

(v1.1.0+)

Totsugeki responds to GGST instantly to any /api/statistics/set calls with a mocked success response. Totsugeki will forward this to the GGST servers in the background so GGST doesn't have to wait.

These calls are used for updating your R-Code.

Speedup

10-20% speedup in the title screen compared to normal Totsugeki. R-Code updates should become instant which should speed things up in various places. You'll see a larger benefit if your upload speed is slow.

Known/Possible issues

Since this mocks a response back to GGST, the response isn't perfect. It's unknown what parts of the response are actually used by GGST, but most seems pretty static or unused. See HandleStatsSet() in proxy\async_stats_set.go. It's unknown if other API's expect /api/statistics/set to be complete before they get called. In testing GGST didn't behave any differently, but it's still unknown if there are any other side-effects.

Can cause your R-Code updates to be lost/corrupt if you close Totsugeki before it finishes uploading your R-Code.

-unsafe-predict-stats-get (@strudlez)

(v1.2.0+)

Totsugeki pre-fetches all /api/statistics/get calls on the title screen in parallel.

These calls are used for fetching your R-Code.

Speedup

40-80% speedup in the title screen compared to normal Totsugeki. R-Code fetches should become instant in the title screen. Only affects load time on the title screen (for now).

Known/Possible issues

Since Totsugeki makes all the requests in parallel, there's a chance that the ASW servers will rate limit you, but this was not observed in testing. Since the requests are generated by Totsugeki the requests may not be a perfect as not all parts of the request are fully understood. This may cause weird issues and may completely break in future updates of GGST, but worked fine in testing.

-unsafe-cache-news (@Borengar)

(v1.3.0+)

Totsugeki caches the /api/sys/get_news call on the first request. The same response is returned on subsequent requests.

Speedup

No speedup in the title screen compared to normal Totsugeki. Other actions which trigger a news request might be sped up by 1-3 seconds. (Going back to main menu; entering a floor in the tower; etc).

-unsafe-no-news (@Borengar)

(v1.3.0+)

Totsugeki returns an empty response on all /api/sys/get_news calls.

GGST will display some default news instead of the latest ones.

Speedup

1-3 seconds of time saved every time a news request is triggered. (Initial loading on title screen; going back to main menu; entering a floor in the tower; etc).

Known/Possible issues

Since this returns a completely empty body, it might break the game in future versions. If that happens this would have to be expanded to return some skeleton news entries.
Right now GGST seems to handle the empty body gracefully.

-unsafe-cache-env (@Borengar)

(v1.6.0+)

Totsugeki returns a hard-coded response for /api/sys/get_env calls.

This request gets called before every /api/user/login one. (Initial loading on title screen; replays; ranking; entering tower; etc).

Speedup

Up to 1 second every time when you enter the tower, open replays, open the ranking list, etc.
2 seconds on the initial title screen loading if you start fast enough.

-unsafe-predict-replay (@Borengar)

(v1.7.0+)

Totsugeki prefetches random celestial floor replays for the loading screen /api/catalog/get_replay calls.

The first batch of recommended replays will contain random replays when you open the replays dialog. A refresh will load actual replays that are recommended for you.

Speedup

2-3 seconds saved on the initial loading on title screen.

-unsafe-cache-follow (@Borengar)

(v1.8.0+)

Totsugeki caches the /api/catalog/get_follow and /api/catalog/get_block calls on the first request. The same response is returned on subsequent requests.

These requests return your follow/block list. Cache will be invalidated if you follow/unfollow/block/unblock other players. After that the next request will be cached again.

Speedup

Up to 1 second every time when you look at your follow/block list, enter the tower, open replays, open the ranking list, etc.