Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Pokemon Sw/Sh] Daily events + Pokejobs broken #2430

Closed
SinFlame opened this issue Jun 30, 2021 · 16 comments · Fixed by #4822
Closed

[Pokemon Sw/Sh] Daily events + Pokejobs broken #2430

SinFlame opened this issue Jun 30, 2021 · 16 comments · Fixed by #4822
Labels
bug Something isn't working service:time Related to the time module (Ryujinx.HLE.HOS.Services.Time)

Comments

@SinFlame
Copy link

SinFlame commented Jun 30, 2021

Bug Report

What's the issue you encountered?

RTC doesn't run ingame. This affects majority of time based events, berry picking, den resets and pokejobs.
Changing clock in Ryu settings doesn't fix it. Although weirdly, Weather changes happen.

How can the issue be reproduced?

Register for a pokejob in pokemon centre and wait a few hours. Check back on the job and it will still state 24 hours remaining.

Log file

No log files given as it isn't crash related.

Environment?

  • Ryujinx version: 1.0.6945
  • Game version: 1.3.2
  • System Specs:
    • OS: Microsoft Windows 10.0.19042 (X64)
    • CPU: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz ; 8 logical
    • GPU: NVIDIA RTX 3060
    • RAM: 32GB
  • Applied Mods : Yes

Additional context?

Additional info about your environment:

@gdkchan gdkchan added bug Something isn't working service:time Related to the time module (Ryujinx.HLE.HOS.Services.Time) labels Jul 2, 2021
@Leischii
Copy link

Leischii commented Jul 6, 2021

This effects all events that need time to pass. So in addition to the Pokejobs problem, it also effects the respawning of berries, raids and wandering Pokemon.
Noteworthy behaviour: Pokejobs work as long as you don't close the emulator. If you close it, the time resets to the initial time.
E.g. Starting 2h Pokejob, waiting 1:59h without closing the emulator, restarting the game --> Time left is 2h again

Assumption here would be that when you start the emulator, the time of the last session is overwritten with current time.

Pokemon Sword and Shield have an anti cheat mechanism so you can't skip these times with time traveling. Maybe this anti cheat is triggered here on accident

@Elay2306
Copy link

few month later, when will it be fixed, its really not fun :/

@Aequitas101
Copy link

Exact same issue here. Any ATA on a fix or does someone know a workaround?

@da-welsh
Copy link

da-welsh commented Oct 30, 2021

Strangely enough, last night I updated from 1.0.7082 to 1.0.7093.

On doing so, when I launched I noticed it was night time in game, which seemed odd. Mostly due to me never having played at night.

However, it did cause me to check my pokejobs, and lo and behold, a job that was set for 1 hour - that had been active for weeks - was complete. This clearly was not because i had been running for an hour, i had just launched the emulator after an update. It did lead me to wonder if there was something in the updates that had messed with the clock.

After checking the log, i wondered if it had anything to do with the timezone implementation? Im off UTC by 1 hour, so that could be something? or maybe it was a freak action that forced it to complete?

Either way, something happened in those updates that caused a 1 hour pokejob to complete.

@KostaSaizo7
Copy link

Either way, something happened in those updates that caused a 1 hour pokejob to complete.

Nothing's changed for me. I have a 12-hour job active for months. I updated to the latest version (1.0.7096), saved my game again and reloaded the game 24 hours later. The job had still "12 hours remaining".

@SinFlame
Copy link
Author

SinFlame commented Feb 11, 2022

Just an update.
On Ryujinx 1.1.24 and it's still doesn't work.
Any workaround by changing the time on Ryu settings doesn't work either.

Edit: Just to proof that Clock does indeed work ingame(Current time is accurate):
image

This means, the anti-cheat system DOES get triggered.

@d3aths
Copy link

d3aths commented May 24, 2022

still having this problem, ive been searching around and it seems that the time gets reset everytime the game is started. the only fix people have been saying will work is by having the game open for said amount of hours (not ideal for whole day jobs)
i can confirm this works as i sent my pokemon for 24 hour jobs, came back after a while and it had decreased to 22 hours. so you can only do short jobs if you keep the game open for that time.

AcK77 pushed a commit that referenced this issue May 7, 2023
* time: Update for 15.0.0 changes

Last time we did an upgrade on the time service was during 9.x era, it was about time to take back that reverse again!

15.0.0 added a new structure on the shared memory to get steady clock raw timepoints with a granularity in nanoseconds.

This commit implements this new part.

I plan to write a follow up with a bit of refactoring of this ancient part of the emulator.

As always, reverse and work done by your truly.

PS: As a reminder, if this change is reused anywhere else, work should be credited as Ryujinx and not my person.

* time: Do not set setup value to posix time

This should fix local and network clock returning 0 under usage with
shared memory.

This probably fix #2430.

* Address gdkchan's comment

* Fix internal offset not working since changes and ensure that user clock have a valid clock id

* time: Report auto correcting clock and hardcode steady clock unique id

Fix Pokemon Sword Pokejobs for real.

* Address gdkchan's comment
@yuwenhua653
Copy link

This change doesn't seem to fix the issue, in-game time still doesn't work

@KostaSaizo7
Copy link

This change doesn't seem to fix the issue, in-game time still doesn't work

Second that, Pokejobs stay the same. I sent a pokemon to a job with "12 hours left", saved the game, closed the emulator. After 10 hours, I loaded the save and still "12 hours left".

@KostaSaizo7
Copy link

Interesting: I started a new save file, played until pokejobs are unlocked and it works!

So, I guess that save files, that were made before the pr was merged, are corrupted.

@SkyDragonV1
Copy link

Interesting: I started a new save file, played until pokejobs are unlocked and it works!

So, I guess that save files, that were made before the pr was merged, are corrupted.

I was able to fix the save file with PKHeX. The value of both of these should be 0 (A7301FBD and 33068788). I noticed this by comparing saves from the newest version of Ryujinx and the version prior to the fix.

2023-05-11_010723
2023-05-11_010640

@KostaSaizo7
Copy link

I was able to fix the save file with PKHeX. The value of both of these should be 0 (A7301FBD and 33068788). I noticed this by comparing saves from the newest version of Ryujinx and the version prior to the fix.

Thank you so much! This fixed my save file! @marysaka could this fix be implemented in Ryujinx?

@marysaka
Copy link
Contributor

I was able to fix the save file with PKHeX. The value of both of these should be 0 (A7301FBD and 33068788). I noticed this by comparing saves from the newest version of Ryujinx and the version prior to the fix.

Thank you so much! This fixed my save file! @marysaka could this fix be implemented in Ryujinx?

Not really as it's game specific... I did fixed that on my side by removing all pokemon from jobs and then readding them on my side.

@Lucas-Zxc
Copy link

Lucas-Zxc commented Sep 24, 2023

#4822
hey, about the 15.0.0 thing, it seems to have been solved in the past, but nowadays, the problem, at least in the Wild Area, seems to have returned

@Lucas-Zxc
Copy link

I'm still investigating, but whatever it is, I hope it can be resolved

@Double-0-seven7
Copy link

Interesting: I started a new save file, played until pokejobs are unlocked and it works!
So, I guess that save files, that were made before the pr was merged, are corrupted.

I was able to fix the save file with PKHeX. The value of both of these should be 0 (A7301FBD and 33068788). I noticed this by comparing saves from the newest version of Ryujinx and the version prior to the fix.

2023-05-11_010723 2023-05-11_010640

Is there a way to do something similar if you moved the save from yuzu to ryujinx?
Even doing this with pkhex didnt help me fix the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working service:time Related to the time module (Ryujinx.HLE.HOS.Services.Time)
Projects
None yet
Development

Successfully merging a pull request may close this issue.