As I already said, this change affects only episode runs in condition that at least one keyhole exit is being used. This change does NOT affects single-level runs and they should be fine to be accepted at new versions too. And also, this change does NOT affects the external real-time measurement. I.e. if you measure the playthrough using external timer, it will show the same result on all versions.
There is a small additional note from me: the keyhole fix will NOT affect single-level runs. Basically it will affect episode runs where player have to exit by a keyhole at least once. Also, this fix makes in-game timer being consistent with a real time, just because keyhole moment will no longer add extra seconds anymore.
Can you link me the direct download to 1.3.4?
All release downloads were here: https://wohlsoft.ru/forum/viewtopic.php?f=5&t=3677 If you want the list of links to every binary, I can provide (3 variants for Windows, 2 variants for macOS, and 3 variants for Ubuntu). Note that I don't suggest giving direct links to the archives, because once new versions getting out, the old one I move into my archive server to release the space on the main host (I have the 30 GB limit, and recently I had it being almost excited). Alternatively, you can link all archives from this GitHub release https://github.com/Wohlstand/TheXTech/releases/tag/v.1.3.4, they will live a very long here.
Gonna on to do that, anyway, against dev builds, I made the convenient page: https://github.com/Wohlstand/TheXTech/wiki/Fresh-devel-builds mainly because the https://builds.wohlsoft.ru is the hive of dev builds for many other projects, so, it's easy to get lost if you don't know what do you want.
Yes, that would be very convenient =)
Made: https://github.com/Wohlstand/TheXTech/commit/75dd239bdfdc5e65151c2325245825150f9c0eb6
I can just say that they need to add the time they spend outside if they accidentally unfocus the window. That's what we've been doing
On TheXTech that is easy to make: I need to place the hook at the "CheckActive()" call, but wait, I can make some of that much easier! I can add the check of SDL_Window at the time ticker, and when the window is inactive, do count that time. I'll make the issue for a future version at GitHub to don't forget (I'll give the link), you can comment on it with suggestions/tips if you want, etc.
Btw, for speed-run modes, I can automatically enable the FPS showing and the disabling of the on-focus-lost pause, should I do that? this makes it very very easy by adding the little startup condition.
Can I have the links to the newest builds on each platform?
Do you want to have links for release versions or for the latest dev builds? (they all equal to the current repository state)
@Eclipsed So, once you'll confirm everything in most is fine, I'll officially release TheXTech 1.3.4, right now I have nothing to fix up for the right now except new works for the next versions and the Android support polishing that will go even after the 1.3.4 release.
P.S. Just now I made a quick fix:
- Making the "fix-keyhole-framerate" compat.ini option https://github.com/Wohlstand/TheXTech/commit/bda8d37a785c6d2e5444c2928f4c80609bc22dec which is true by default, but false while mode 2 and 3.
- Changed the count of keyhole frames to 192 as this is more accurate by Rednaxela's words
Feel free to test once this build will finish: https://github.com/Wohlstand/TheXTech/actions/runs/553554607
Once Rednaxela will fix the keyhole framerate at SMBX2, I'll make this option being false at Mode 3 only, or, if needed, I'll keep it always true.
Perfect! If anything will be also, I'll check after the sleep, at my time zone is too late (4:19 AM at the moment I posted this).
tfw when I download the build a few seconds before it finishes
If you try to download the build while CI is working, here are the next risks:
- you'll just get the old version
- you'll get the damaged archive because it was uploaded by CI to the server partially
- the chance you'll get the valid archive of a new version if CI had finished its upload, but didn't finish the last clean-up processing and uploading of other archives
The newest build should fix issues 1 and 3 right?
Yes! Issue 1 (accuracy) and 3 ("Boss Dead" event to stop the stopwatch without game end).
The 2 (keyhole) is the issue of SMBX2, I had to suggest a workaround for that.
Can you give me a link to the latest build again, lost it in the thread. It's here: https://builds.wohlsoft.ru/win32/thextech-super-mario-bros-x-win64-dev.7z Be careful, do download it once the CI build will finish.
EDIT: Seems the build was completed, feel free to take this ;-)
Issue 1: Is there a way to more accurately count this for XTech? About the path waiter, that was a missing stopwatch iterator call, I fixed this just now. Are there are any other issues?
Issue 2: Is there a way to make the key exit in SMBX2 work more like the key exit in Xtech That a request to @Rednaxela, recently I explained to him about this mess through Discord. Optionally, I can make the same frames counting after keyhole as SMBX2 now (until Red will fix that), by adding 300 frames to the common time. However, here is the universal workaround for SMBX2 how to make the timer be fair after keyhole: When you do catch the WinCode as 3 (keyhole exit), pause the total stopwatch, and just add 195 frames into the total time.
Issue 3: Can you make the event name that the timer stops on something the player can choose? Recently I added the "Boss Dead" trigger that should do that work.
Get the fix and "Boss Dead" event hook support, wait until this build will complete: https://github.com/Wohlstand/TheXTech/actions/runs/553063476
EDIT3: Sorry, the @Rednaxela I had mentioned, probably is not Rednaxela we know: he lives in the USA, not in England. Sorry for the confusion.
After watching 0lhi's videos, I have one small idea why the almost whole second didn't count, it's a possible conditional mess, lemme to check...
EDIT: I Confirmed, that a bug, I forgot to put the stopwatch iteration code into the path waiter...
EDIT2: Fixed just now, @0lhi, please re-run the TheXTech test with an updated pull.
In Real Time, it's ~1.23 seconds, and in Xtech it's displaying 0.530 seconds.
blame Redigit's code on how the path-opening code is processing.
is it possible to have the timer for Xtech end at a specific event name or does it have to be at "Game End"
It's possible to introduce the keyword to trigger the speedrun timer to finish the counting easily, mainly if you want to stop the timer to count without the game being completed. Mainly the "Game End" event is intended to be a way to stop the timer. I can use the same "Boss Dead" as a codename for the event, or it's also possible to have other keywords as aliases: the event will work by its normal, but will stop the stopwatch to count.
The XTech is way faster on the world map when new tiles start appearing.
I need to compose another unit test to check this more detail... I may guess that it's one of not patched at SMBX2 code pieces to don't 100% overload CPU. Graphically it may go slower, but it does the SAME cycle count: between every cell appear step, there are 24 frames wait constantly.
About the keyhole, I confirm that SMBX2 still has the badness of SMBX 1.3 that runs the keyhole waiting with 100 FPS, and this is Redigit's block of code that runs a keyhole: https://github.com/smbx/smbx-legacy-source/blob/master/modMain.bas#L6624-L6644 In comparison, the normal framerate controller of a level running: https://github.com/smbx/smbx-legacy-source/blob/master/modMain.bas#L1780-L1822 the big and dirty block of FPS controller, Redigit has to put it multiple times rather than making a united module with using of function pointers. Blocks like this do run the game with ~65 FPS. Keyhole block runs 100 FPS instead. That problem makes the lua-based stopwatch count the timer faster as 1.5 fast-forward running than normal playthrough. That distorts the total time counting completely.
How keyhole waiting timer counts the time: https://imgur.com/hQSo00C , pay attention to the animation speed of BGOs and block rendering. Keyhole at TheXTech: https://imgur.com/EH73RL7, the animation and time counting goes the same as regular level playthrough. All SMBX 1.3, SMBX2, and TheXTech do 3 seconds waiting between key touching and the level exit.
EDIT: The video https://imgur.com/EW67H3k