From c4c4fb8ce2d577a4f6a3022bf8b304a39931dc0e Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Fri, 11 Jul 2025 11:35:10 +0200 Subject: [PATCH 1/3] NintendoSDK: Update `nn::os::Tick` to struct --- include/time/seadTickSpan.h | 2 +- include/time/seadTickTime.h | 2 +- modules/src/thread/nin/seadEventNin.cpp | 3 ++- modules/src/thread/nin/seadThreadNin.cpp | 2 +- modules/src/time/seadTickSpan.cpp | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/time/seadTickSpan.h b/include/time/seadTickSpan.h index 52d76247f..ab60f6a41 100644 --- a/include/time/seadTickSpan.h +++ b/include/time/seadTickSpan.h @@ -15,7 +15,7 @@ class TickSpan TickSpan(s64 span = 0) : mSpan(span) {} s64 toS64() const { return mSpan; } - s64 toTicks() const { return mSpan; } + u64 toTicks() const { return mSpan; } s64 toNanoSeconds() const; diff --git a/include/time/seadTickTime.h b/include/time/seadTickTime.h index 497f6b367..c2f2d2a21 100644 --- a/include/time/seadTickTime.h +++ b/include/time/seadTickTime.h @@ -18,7 +18,7 @@ class TickTime u64 toTicks() const { return mTick; } #ifdef NNSDK - void setNow() { mTick = nn::os::GetSystemTick(); } + void setNow() { mTick = nn::os::GetSystemTick().value; } #else void setNow(); #endif diff --git a/modules/src/thread/nin/seadEventNin.cpp b/modules/src/thread/nin/seadEventNin.cpp index 6c79ff1df..00984d08e 100644 --- a/modules/src/thread/nin/seadEventNin.cpp +++ b/modules/src/thread/nin/seadEventNin.cpp @@ -60,7 +60,8 @@ bool Event::wait(TickSpan duration) #ifdef SEAD_DEBUG SEAD_ASSERT_MSG(mInitialized, "Event is not initialized."); #endif - return nn::os::TimedWaitLightEvent(&mEventInner, nn::os::ConvertToTimeSpan(duration.toTicks())); + return nn::os::TimedWaitLightEvent(&mEventInner, + nn::os::ConvertToTimeSpan({duration.toTicks()})); } void Event::setSignal() diff --git a/modules/src/thread/nin/seadThreadNin.cpp b/modules/src/thread/nin/seadThreadNin.cpp index c508b0704..0bdac10a7 100644 --- a/modules/src/thread/nin/seadThreadNin.cpp +++ b/modules/src/thread/nin/seadThreadNin.cpp @@ -126,7 +126,7 @@ void Thread::yield() void Thread::sleep(TickSpan howLong) { - nn::os::SleepThread(nn::os::ConvertToTimeSpan(howLong.toTicks())); + nn::os::SleepThread(nn::os::ConvertToTimeSpan({howLong.toTicks()})); } uintptr_t Thread::getStackCheckStartAddress_() const diff --git a/modules/src/time/seadTickSpan.cpp b/modules/src/time/seadTickSpan.cpp index 0b8eb9184..fc4cde0c6 100644 --- a/modules/src/time/seadTickSpan.cpp +++ b/modules/src/time/seadTickSpan.cpp @@ -10,7 +10,7 @@ namespace sead { #ifdef NNSDK -const s64 TickSpan::cFrequency = nn::os::GetSystemTickFrequency(); +const s64 TickSpan::cFrequency = nn::os::GetSystemTickFrequency().value; #else #error "Unknown platform" #endif From 9ac3eeda8bbc8efbd1343b6a4b941ca0ed582978 Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Sun, 13 Jul 2025 23:37:23 +0200 Subject: [PATCH 2/3] Remove `TickSpan::toTicks()` --- include/time/seadTickSpan.h | 1 - include/time/seadTickTime.h | 4 ++-- modules/src/thread/nin/seadEventNin.cpp | 4 ++-- modules/src/thread/nin/seadThreadNin.cpp | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/time/seadTickSpan.h b/include/time/seadTickSpan.h index ab60f6a41..666e6e66d 100644 --- a/include/time/seadTickSpan.h +++ b/include/time/seadTickSpan.h @@ -15,7 +15,6 @@ class TickSpan TickSpan(s64 span = 0) : mSpan(span) {} s64 toS64() const { return mSpan; } - u64 toTicks() const { return mSpan; } s64 toNanoSeconds() const; diff --git a/include/time/seadTickTime.h b/include/time/seadTickTime.h index c2f2d2a21..6fd3a40ae 100644 --- a/include/time/seadTickTime.h +++ b/include/time/seadTickTime.h @@ -28,13 +28,13 @@ class TickTime TickTime& operator+=(const TickSpan& span) { - mTick += span.toTicks(); + mTick += span.toS64(); return *this; } TickTime& operator-=(const TickSpan& span) { - mTick -= span.toTicks(); + mTick -= span.toS64(); return *this; } diff --git a/modules/src/thread/nin/seadEventNin.cpp b/modules/src/thread/nin/seadEventNin.cpp index 00984d08e..6cb2a3979 100644 --- a/modules/src/thread/nin/seadEventNin.cpp +++ b/modules/src/thread/nin/seadEventNin.cpp @@ -60,8 +60,8 @@ bool Event::wait(TickSpan duration) #ifdef SEAD_DEBUG SEAD_ASSERT_MSG(mInitialized, "Event is not initialized."); #endif - return nn::os::TimedWaitLightEvent(&mEventInner, - nn::os::ConvertToTimeSpan({duration.toTicks()})); + return nn::os::TimedWaitLightEvent( + &mEventInner, nn::os::ConvertToTimeSpan({static_cast(duration.toS64())})); } void Event::setSignal() diff --git a/modules/src/thread/nin/seadThreadNin.cpp b/modules/src/thread/nin/seadThreadNin.cpp index 0bdac10a7..bd09402b1 100644 --- a/modules/src/thread/nin/seadThreadNin.cpp +++ b/modules/src/thread/nin/seadThreadNin.cpp @@ -126,7 +126,7 @@ void Thread::yield() void Thread::sleep(TickSpan howLong) { - nn::os::SleepThread(nn::os::ConvertToTimeSpan({howLong.toTicks()})); + nn::os::SleepThread(nn::os::ConvertToTimeSpan({static_cast(howLong.toS64())})); } uintptr_t Thread::getStackCheckStartAddress_() const From 08346f87ee46e547bf28fb472ccc855948126cdf Mon Sep 17 00:00:00 2001 From: MonsterDruide1 <5958456@gmail.com> Date: Tue, 15 Jul 2025 10:48:09 +0200 Subject: [PATCH 3/3] adjust with `Tick::Tick(u64)` --- modules/src/thread/nin/seadEventNin.cpp | 3 +-- modules/src/thread/nin/seadThreadNin.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/src/thread/nin/seadEventNin.cpp b/modules/src/thread/nin/seadEventNin.cpp index 6cb2a3979..463b6576d 100644 --- a/modules/src/thread/nin/seadEventNin.cpp +++ b/modules/src/thread/nin/seadEventNin.cpp @@ -60,8 +60,7 @@ bool Event::wait(TickSpan duration) #ifdef SEAD_DEBUG SEAD_ASSERT_MSG(mInitialized, "Event is not initialized."); #endif - return nn::os::TimedWaitLightEvent( - &mEventInner, nn::os::ConvertToTimeSpan({static_cast(duration.toS64())})); + return nn::os::TimedWaitLightEvent(&mEventInner, nn::os::ConvertToTimeSpan(duration.toS64())); } void Event::setSignal() diff --git a/modules/src/thread/nin/seadThreadNin.cpp b/modules/src/thread/nin/seadThreadNin.cpp index bd09402b1..d80463fcc 100644 --- a/modules/src/thread/nin/seadThreadNin.cpp +++ b/modules/src/thread/nin/seadThreadNin.cpp @@ -126,7 +126,7 @@ void Thread::yield() void Thread::sleep(TickSpan howLong) { - nn::os::SleepThread(nn::os::ConvertToTimeSpan({static_cast(howLong.toS64())})); + nn::os::SleepThread(nn::os::ConvertToTimeSpan(howLong.toS64())); } uintptr_t Thread::getStackCheckStartAddress_() const