ROM Hack Discussion Astral Chain ROM Hacking Bible

MrComputerRevo

Well-Known Member
Newcomer
Joined
May 13, 2013
Messages
93
Trophies
0
Age
27
XP
1,068
Country
Ukraine
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.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,280
Trophies
3
XP
12,046
Country
Poland
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
 

WaitWhatBro

Well-Known Member
Member
Joined
Jul 15, 2016
Messages
123
Trophies
0
Age
34
XP
409
Country
United States
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
 

MrComputerRevo

Well-Known Member
Newcomer
Joined
May 13, 2013
Messages
93
Trophies
0
Age
27
XP
1,068
Country
Ukraine
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.
 

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,280
Trophies
3
XP
12,046
Country
Poland
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.
 

MrComputerRevo

Well-Known Member
Newcomer
Joined
May 13, 2013
Messages
93
Trophies
0
Age
27
XP
1,068
Country
Ukraine
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

orangpelupa

Well-Known Member
Member
Joined
Aug 7, 2009
Messages
388
Trophies
1
XP
1,183
Country
Indonesia
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

masagrator

The patches guy
OP
Developer
Joined
Oct 14, 2018
Messages
6,280
Trophies
3
XP
12,046
Country
Poland
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,

orangpelupa

Well-Known Member
Member
Joined
Aug 7, 2009
Messages
388
Trophies
1
XP
1,183
Country
Indonesia
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,

MrComputerRevo

Well-Known Member
Newcomer
Joined
May 13, 2013
Messages
93
Trophies
0
Age
27
XP
1,068
Country
Ukraine
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

  • astral_chain_60fps.zip
    509 bytes · Views: 843

Niko_of_Death

Well-Known Member
Member
Joined
Aug 10, 2016
Messages
151
Trophies
0
Age
29
XP
1,205
Country
United States
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.
 

vastrolorde

Well-Known Member
Newcomer
Joined
Mar 22, 2015
Messages
91
Trophies
0
Age
39
XP
1,752
Country
United States
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.?
 

alkar

Well-Known Member
Member
Joined
Apr 30, 2013
Messages
329
Trophies
1
Age
94
XP
1,243
Country
United States
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

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: I did use a bot for Diablo III though but no ban there lol