TimedTrigger50 & TimedTrigger60 flags for countdown timed achievements primed on screen #1012
Replies: 1 comment 1 reply
-
Why not use a PauseLock?
The PauseIf doesn't affect whether the challenge indicator is shown. When You could also use a start flag similar to damageless achievements:
The flag would be captured at some point before the timer starts. If the timer expires, the flag is cleared. |
Beta Was this translation helpful? Give feedback.
-
This was something that I had in mind when Trigger flag came to reality in 2021 and I want to share this idea:
I imagined a future flag similar to Trigger one, but for timed achievements. Initially, the idea was just to call this as a "TimedTrigger" flag. Due to different framerates between NTSC and PAL games, thus, "TimedTrigger50" and "TimedTrigger60" emerged.
How would those flags work?
The Developer would put a value as Hitcount that indicates a expected time to beat an achievement when a condition there is met. Frame based.
For 60fps games:
TimedTrigger60 Mem [size] [address] = Value [val] (1800)
For 50fps games:
TimedTrigger50 Mem [size] [address] = Value [val] (1500)
I never used Trigger flag, but, as I could notice, it makes achievement prime when the rest of other conditions are True with only the Triggered flag condition being False. TimedTrigger would behave differently: It will manifest when its condition is True and will lock the achievement when all Hits are fullfilled, behaving like a PauseIf Lock, voiding the achievement since the "Time" requested has expired.
When that condition is True, the achievement icon will appear on right bottom of the screen - like what happens with Trigger flag - but followed by a Timer on [HH:MM:SS.mls] format on left side or on right side. (Example: 00:00:29.55). Since the intention is to inform the player how much time they have left, the Timer will count backwards.
This idea was fed up back in 2021/2022, when a Sonic Hack called S Factor Sonia and Silver set came to light and had a stage called Destron City Zone 3 whereas the Timer counted backwards. Leaderboard for that stage was working with some bugs since the Time Addresses for the original Sonic 1 game counts forwards instead of backwards, giving some inaccuracies.
With permission of the Developer (Raniejogos), I decided to make an experiment about counting the time backwards. At the end, it was a change on VALUE field like this:
Value: 0xH00fe24*-1_0xH00fe25*60_0xH00fe22*3600
Addresses involved:
0x00fe24 (8-bit) = Milisseconds
0x00fe25 (8-bit) = Seconds
0x00fe22 (8-bit) = Minutes
Since TimedTrigger50 and TimedTrigger60 flags would be fully frame based, thus, multiplying that value informed by -1 would give a backwarded counted time on screen followed by achievement icon. When it hits 00:00:00.00, achievement icon would disappear and, at same time, would be locked logically since this is something expected as the played failed on their mission! (Adding a blink effect as an Alert for the player to notice before achievement icon disappearance would be nice too!)
Applications:
This was everything that caught in my mind right now. In matter of programming, I didn't think too much about exceptions though...
Beta Was this translation helpful? Give feedback.
All reactions