ROM Hack Discussion Astral Chain ROM Hacking Bible

  • Thread starter Thread starter masagrator
  • Start date Start date
  • Views Views 87,447
  • Replies Replies 79
  • Likes Likes 9
hmm i wonder if the lock can be disabled thru realtime cheat in edizon. gotta need to learn edizon again, has been months since last time i use it hahaha
Better not use Edizon for that. This is searching for whole memory and you can't change many values at once. Better use noexs.
 
  • Like
Reactions: orangpelupa
I didn't check resolution. I tried everything I could for FPS and only found that animations speed for gameplay is taking 1/60 float and one function is multiplying it by two. I couldn't disable FPS lock.

--------------------- MERGED ---------------------------

Sorry, wrong. I mixed other game with this multiplyier and float. For speed animations it's using getsystemtickfrequency(). Multiply it by two and you have 1s rendered in 60 frames, but because of lock it slows down game twice.

Can you explain how exactly you slowed down the game twice? I've only been able to speed it up by two times.
 
Can you explain how exactly you slowed down the game twice? I've only been able to speed it up by two times.
I made SaltyNX plugin, but I think you can patch that with IPS.
You need to make function GetSystemTickFrequency return 38400000 (0x249f000). By default it's 19200000
 
Does anyone have any intention of making a save editor for this game by any chance? Havent seen anything about that yet but figured I'd ask
 
I made SaltyNX plugin, but I think you can patch that with IPS.
You need to make function GetSystemTickFrequency return 38400000 (0x249f000). By default it's 19200000
Yeah, hmm, that didn't seem to really change anything except *some* animations? I really don't get how this game works, I've been able to set the vsync interval to 1, but the game just runs twice as fast as if it doesn't use delta time... except it does! I also found something that I *think* is an animation speed multiplier but with it set to 0.5 it looks smooth and is actually rendering (well, trying to at least) 60 frames per second but animations are slowed down twice. So with 1.0 it's two times as fast and with 0.5 it's two times as slow... go figure.
 
So what about 0.75 or 1/3? :P

--------------------- MERGED ---------------------------

If this is fmov, then 1/3 won't work... But 0.75 should work.

--------------------- MERGED ---------------------------

And I'm curious how you have found vsync interval.
 
So what about 0.75 or 1/3? :P

--------------------- MERGED ---------------------------

If this is fmov, then 1/3 won't work... But 0.75 should work.

--------------------- MERGED ---------------------------

And I'm curious how you have found vsync interval.

0.75 is still too fast, well, anyway, 0.5 works when it's actually hitting 60, which doesn't happen very often (or at all, outside of the training area that's with full overclock docked (I set it up properly this time))
Basically, I don't think it's worth it, the game won't really hit 60, more like 35-40 on a good day
And for vsync you can search for `nvnWindowSetPresentInterval` in the strings and you'll find a function where NVN API is set up, from there it's easy to find where it's used
 
  • Like
Reactions: masagrator
0.75 is still too fast, well, anyway, 0.5 works when it's actually hitting 60, which doesn't happen very often (or at all, outside of the training area that's with full overclock docked (I set it up properly this time))
Basically, I don't think it's worth it, the game won't really hit 60, more like 35-40 on a good day
And for vsync you can search for `nvnWindowSetPresentInterval` in the strings and you'll find a function where NVN API is set up, from there it's easy to find where it's used

How about using reversenx and runs Astral Chain docked but in portable profile AND overclocked?

Then use your 60 fps trick?
 
Last edited by orangpelupa, , Reason: Bloody auto incorrect
Probably will be no difference.

--------------------- MERGED ---------------------------

@MrComputerRevo can you explain exactly how did you found it? Because your "easily" is not easy for me. I know of this strings, but never couldn't understand where values of it are stored.

Edit: You mean I should try to find first string that has found reference before nvn* and try to check it's code for where is storing value?
 
Last edited by masagrator,
Astral chain in portable profile only runs up to 720p rather than 900p. It also disables AA. That's why I though it will help to run in 60 fps.

BTW turns out someone already found the speed cheat for Edison

[1.5 times faster]
580F0000 00DCA550
580F1000 00001C88
580F1000 00000170
580F1000 00000188
780F0000 00000160
640F0000 00000000 3

https://gbatemp.net/threads/astral-chain-cheat-code.547078/FC0000


So slow the game down to half speed, then double speed it using the Edison cheat?
 
Last edited by orangpelupa,
He is not using SaltyNX for it. He just can't, because this is not separate function, but rather part of function(s).
 
Last edited by masagrator,
Well, here it is. I worked on it some more yesterday and now it should actually work more or less fine? (man this game has a weird way of keeping pace) It will now appropriately speed up the animations when it's not hitting 60fps and slow down when it hits that target framerate (the speed multiplier range from 0.5 to 1.0, since this game has hardcoded frame time for animations of 0.03333, so it's either changing all of that, which is not fun, or making the original system work with 60fps which is what I attempted to do here). Cutscenes are still two times faster than they should be though, if anyone finds the multiplier for that, that would be nice. Well, at least it's actually playable now and doesn't slow down in larger areas.
 

Attachments

Well, here it is. I worked on it some more yesterday and now it should actually work more or less fine? (man this game has a weird way of keeping pace) It will now appropriately speed up the animations when it's not hitting 60fps and slow down when it hits that target framerate (the speed multiplier range from 0.5 to 1.0, since this game has hardcoded frame time for animations of 0.03333, so it's either changing all of that, which is not fun, or making the original system work with 60fps which is what I attempted to do here). Cutscenes are still two times faster than they should be though, if anyone finds the multiplier for that, that would be nice. Well, at least it's actually playable now and doesn't slow down in larger areas.
Tried it out a bit, seems awesome so far! Curious if the dynamic resolution floor is low enough for a stable 60 with max overclock, too bad there isn't a fps counter plugin for me to test myself.
 
Well, here it is. I worked on it some more yesterday and now it should actually work more or less fine? (man this game has a weird way of keeping pace) It will now appropriately speed up the animations when it's not hitting 60fps and slow down when it hits that target framerate (the speed multiplier range from 0.5 to 1.0, since this game has hardcoded frame time for animations of 0.03333, so it's either changing all of that, which is not fun, or making the original system work with 60fps which is what I attempted to do here). Cutscenes are still two times faster than they should be though, if anyone finds the multiplier for that, that would be nice. Well, at least it's actually playable now and doesn't slow down in larger areas.


Wow nice, how do i apply these on my switch running AMS.?
 
Works perfectly fine in handheld mode profile (except x2 cutscenes) ! thanks! Hopefully you cna fix cutscenes in x2.
Definitely smoother (even with max overclock) in handheld profile than docked profile with reverseNX. Stable 60fps it seems.
 
Last edited by alkar,

Site & Scene News

Popular threads in this forum