• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Game Modifications › Cheats, Hacks, & Game Patches v
1 2 3 4 5 ... 18 Next »

NTSC/JP Xenoblade 60fps and other mods
View New Posts | View Today's Posts

Pages (31): « Previous 1 2 3 4 5 ... 31 Next »
Jump to page 
Thread Rating:
  • 1 Vote(s) - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
NTSC/JP Xenoblade 60fps and other mods
08-26-2017, 08:00 AM
#21
Kurausukun Offline
Zeitgenössischer Wurst
*******
Posts: 1,034
Threads: 62
Joined: Mar 2014
Man, you never fail to impress. I can't wait to see how this looks.
Find
Reply
08-26-2017, 12:27 PM (This post was last modified: 08-26-2017, 12:40 PM by Resus.)
#22
Resus Offline
Member
***
Posts: 153
Threads: 5
Joined: Sep 2010
(08-25-2017, 11:40 PM)One More Try Wrote: Wow.  I had an odd idea that got it surprisingly close to 60fps movies. I paused the counter every other frame, like before, but when it wrote to a float I checked the counter and increased the float by 0.5 if it was paused.  This effectively caused the floats to count up by 0.5 every frame. Anything checking the counter as an integer just sees it get paused every other frame, without further modifications.  I wasn't sure what would happen, but apparently all the scene timings (like camera switches) work off the integer and don't need anything more than to be staggered. All the animations work off the floats and do need the 0.5s.  The only problems are some visual glitches. Check it out if you want to:

MovieTest: (Show Spoiler)
$full movie
0416A9E8 60000000
0416A9EC 60000000
0416A9F0 60000000
C216AA30 00000002
3E608000 82731824
7C049A14 00000000
C216AA38 00000001
7C039A14 00000000
C218626c 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C2186344 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C21846c4 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C2181940 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C2181978 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C21846c4 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C2186224 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C2182974 00000007
EC200828 3E808000
82741824 EE600024
FC019840 40810018
2C130001 41820010
EE60002A EE609824
EC21982A 60000000
60000000 00000000
C20BAD8C 00000003 //Grass double value if fraction
EEA1082A FE810878
FC34A86E C01F2F48
60000000 00000000
C248C048 00000006 //waterfall pause 2
C3C2CE5C 3E808081
62949E68 82940000
2C140002 41820018
3E808000 82941824 //Gr1824
2C140000 41A20008
EFDEF028 00000000
C244B714 00000004
3E808000 62941824
80140000 68000001
90140000 38630001
60000000 00000000 //waterfall end
C244B468 00000001 //disable run speed update
60000000 00000000
C2137DE8 00000003 //UI Speeds Half
EC01082A EC000824
EC210024 C0030010
60000000 00000000
C205C414 00000002 //Climb fix
EC1FF82A EFFF0024
EC01EFFA 00000000
04819e78 0000001E //set run speed manually
04819e68 00000002
04819e68 00000001 //60 fps
22CA54C0 00000000
04CA54C0 3F000000 //60 fps speed
0466766c 3F000000 //intro speed adjust
E0000000 80008000
20664268 808347D4 //intro 60fps
04819e68 00000001
E0000000 80008000

The reason the code is so long is because I had to copy and paste 7 lines of code every time the counter changes to a float.  I don't know if I can use a " bla " branch to just write the code once and continually link to it. Not sure about those.

Pretty darn good as always, the movies are indeed smooth at 60 fps with some glitches but you are getting there!

Now I have to admit, the intro movie with this 60 fps code is pretty demanding, not even my PC can keep up with this code and setting CPU clock override to 250% is not enough either, it still lags with all the particles effects in that intro movie. It goes from 60 fps to 30 in the heavy particles parts, not sure if the code is trying to revert back to 30 fps in those parts but my PC can't keep up with it. I probably need to upgrade to a GTX 1070 to maintain a constant 60 fps, my GTX 970 is starting to show its old age.

Either way, you are getting there mate, awesome job as always!

Edit:

Turning off Anti-Aliasing fixed almost all the lagging issue, I was using 2x SSAA so my GTX 970 wasn't able to keep up with this code.
[CPU]: Intel Core i7-4790K 4.0GHz
[GPU]: EVGA GeForce GTX 970 Superclocked ACX 2.0 4GB GDDR5
[PSU]: EVGA SuperNOVA G1 1000W (80 Plus Gold)
[RAM]: Corsair Vengeance 16GB (2x8GB) DDR3 1600MHz
[MOBO]: MSI Z97-GAMING 5
[PC CASE]: ENERMAX Ostrog GT (Red)
[CPU FAN]: Cooler Master: Hyper 212 EVO
[OS]: Windows 10 Pro (21H2)
Find
Reply
08-26-2017, 12:42 PM
#23
One More Try Offline
Posting Freak
*****
Posts: 886
Threads: 23
Joined: Dec 2014
Thanks. Not sure if I'll be able to find the glitches, the code starts branching like crazy.

Can/Have you used Vulkan to run it? I don't have too many issues with that.
Find
Reply
08-26-2017, 01:01 PM (This post was last modified: 08-26-2017, 01:53 PM by Resus.)
#24
Resus Offline
Member
***
Posts: 153
Threads: 5
Joined: Sep 2010
(08-26-2017, 12:42 PM)One More Try Wrote: Thanks. Not sure if I'll be able to find the glitches, the code starts branching like crazy.

Can/Have you used Vulkan to run it?  I don't have too many issues with that.

Oh I see, hopefully you are able to find the glitches and if you can't find them then don't worry, I have no issues in having 30 fps in the cutscenes as long as the gameplay stays at 60 fps.

Unfortunately I can't get Vulkan to work on Dolphin. It works in RPCS3 but not on Dolphin. Every time I select Vulkan it crashes the emulator.

Edit 1:

I figured out what was causing the crash on Vulkan, it was RivaTuner Statistics Server, setting that application detection level to None or quitting that application fixed the issue. I will try Vulkan now, never tried that out in Dolphin before. I figured this was the issue because RPCS3 doesn't run with RivaTuner Statistics Server either.

Edit 2:

Tested Vulkan and to my surprise it works better than OpenGL or DX11. Vulkan is definitely faster and I was lagging a lot less on the particle effects with 2x SSAA, the only downside is that I need to disable RivaTuner Statistics Server for Vulkan to work and I rather have that enabled to monitor my PC temps on-screen.
[CPU]: Intel Core i7-4790K 4.0GHz
[GPU]: EVGA GeForce GTX 970 Superclocked ACX 2.0 4GB GDDR5
[PSU]: EVGA SuperNOVA G1 1000W (80 Plus Gold)
[RAM]: Corsair Vengeance 16GB (2x8GB) DDR3 1600MHz
[MOBO]: MSI Z97-GAMING 5
[PC CASE]: ENERMAX Ostrog GT (Red)
[CPU FAN]: Cooler Master: Hyper 212 EVO
[OS]: Windows 10 Pro (21H2)
Find
Reply
08-27-2017, 04:42 AM (This post was last modified: 08-27-2017, 09:56 AM by One More Try.)
#25
One More Try Offline
Posting Freak
*****
Posts: 886
Threads: 23
Joined: Dec 2014
It's good that you figured it out. I can barely run it 60fps without Vulkan, so it's helpful to have that option.

I'm getting unorganized, so I'm going to use this post to organize my latest codes and back them up.
Codes: (Show Spoiler)
Halve screen dimming speed: (Show Spoiler)
044A083C 60000000
0466AB90 3F000000
Halve rare cutscene switch camera/screen speed: (Show Spoiler)
Future prediction scenes need this
044A083C 60000000
0466AB90 3F000000
Two timer pauses for intro, used elsewhere??: (Show Spoiler)
$timer pause 1818 Needs ReWrite
C216ADC4 00000004
3E808000 62941818
82B40000 7EB500D0
3AB50001 7C04AA14
60000000 00000000
C216ADCC 00000002
7C03AA14 92B40000
60000000 00000000
$Timer Halve Splash Better vers
C21669CC 00000003
EE421024 EE52902A
EC009024 D01E01E8
60000000 00000000
Alpha base code, compared to posted beta code, should be similar: (Show Spoiler)
C20BAD8C 00000003 //Grass double value if fraction
EEA1082A FE810878
FC34A86E C01F2F48
60000000 00000000
C248C048 00000006 //waterfall pause 2
C3C2CE5C 3E808081
62949E68 82940000
2C140002 41820018
3E808000 82941824 //Gr1824
2C140000 41A20008
EFDEF028 00000000
C244B714 00000004
3E808000 62941824
80140000 68000001
90140000 38630001
60000000 00000000 //waterfall end
C244B468 00000001 //disable run speed update
60000000 00000000
C2137DE8 00000003 //UI Speeds Half
EC01082A EC000824
EC210024 C0030010
60000000 00000000
C205C414 00000002 //Climb fix
EC1FF82A EFFF0024
EC01EFFA 00000000
04819e78 0000001E //set run speed manually
04819e68 00000002
22CA54C0 00000000
20664268 00000000
04CA54C0 3F000000 //60 fps speed
04819e68 00000001 //60 fps
0466766c 3F000000 //intro speed adjust
E0000000 80008000
20664268 808347D4 //intro 60fps
04819e68 00000001
E0000000 80008000
Half text Speed: (Show Spoiler)
$Pause text branch 1824 timer
0412e66c 41820008
C212E668 00000003
7F85E378 7F66DB78
3E608000 82731824
2C130001 00000000
Cutscene Text Pause: (Show Spoiler)
$Pause Cutscene Text 1824
041a3dec 41820008
C21A3DE8 00000003
807F0088 7FA4EB78
3E608000 82731824
2C130001 00000000

I can't find the instant cutscene text code, need to remake. I think it's just a one liner.

/edit Done, with optional cutscene instant text, putting it in first post.

/edit2 I've made good progress with 60fps menus. The map menu will probably remain at double speed, but I don't think that's too bad. The main work right now involves choosing how to modify certain speeds. There's a block of code I call the Main Speed loader, and I thought it just pulled from one address, but it turns out it'll infrequently load a variety of addresses. It's where I found the menu character animation speed - hiding in plain sight. I need to figure out if I want to blindly halve all the values that go through this function, or conditionally halve values only when I see something running too fast.

/edit3 It would help if one or two people would test this out:
Menu Test: (Show Spoiler)
$60fps menu test
C249A358 00000005
3FC080CA 63DE54B4
EE80002A EE80A024
7C03F000 41A20008
EC210532 83C10008
60000000 00000000
041C3904 3803FFFA
041C38EC 2800001A
041C3890 2800001A
041C38A8 3803FFFA
046687A0 41A00000
046687A8 40666667
C20BAD8C 00000003 //Grass double value if fraction
EEA1082A FE810878
FC34A86E C01F2F48
60000000 00000000
C248C048 00000006 //waterfall pause 2
C3C2CE5C 3E808081
62949E68 82940000
2C140002 41820018
3E808000 82941824 //Gr1824
2C140000 41A20008
EFDEF028 00000000
C244B714 00000004
3E808000 62941824
80140000 68000001
90140000 38630001
60000000 00000000 //waterfall end
C244B468 00000001 //disable run speed update
60000000 00000000
C2137DE8 00000003 //UI Speeds Half
EC01082A EC000824
EC210024 C0030010
60000000 00000000
C205C414 00000002 //Climb fix
EC1FF82A EFFF0024
EC01EFFA 00000000
04819e78 0000001E //set run speed manually
04819e68 00000002
04819e68 00000001 //60 fps
22CA54C0 00000000
04CA54C0 3F000000 //60 fps speed
0466766c 3F000000 //intro speed adjust
E0000000 80008000
20664268 808347D4 //intro 60fps
04819e68 00000001
E0000000 80008000
Find
Reply
08-28-2017, 09:17 AM
#26
tiwill14
Unregistered
 
This "Menu Test" code works phenomenally well under constant 60FPS gameplay. All the menus (and any animations within those) are acting both smooth and fast, plus in most instances loading times are vastly reduced (looking around 25-50%) sometimes a bit more or less depending on which menu I enter. Saving is also twice as fast compared to Cheats disabled. Doesn't seem to break anything graphically or physics-related, in fact it appears 'perfect' to my eyes. The map menu speed isn't really an issue, I couldn't have tell if not from your note. Sound is also on-par. Testing took place half an hour in Intro/Colony 9 areas.

Overall, this is excellent for what it aims to be. I don't know what could be improved for that matter alone.


Running on SSD with latest DDS texture pack. [CPU Clock Override 250%, Vulkan API w/ V-Sync enabled, 1080p 3x Native 2x SSAA, Ubershaders set at Hybrid]
Reply
08-28-2017, 09:33 AM (This post was last modified: 08-28-2017, 09:35 AM by One More Try.)
#27
One More Try Offline
Posting Freak
*****
Posts: 886
Threads: 23
Joined: Dec 2014
Thanks! I still haven't had time to test it myself. I guess unlocking 60 fps for menus does have a usage - faster loading. That's great. It's good to hear the blind speed adjustment I made is working ok.

At the last minute I was able to reduce the speed of the map menu. I was concerned that the cursor and its auto-movement when scrolling through locations would be too much work, but it wasn't.

This particular code is my test code that disables all 30 fps switches, so it always runs at 60 fps. The Movies will look a bit janky and the cutscenes can get buggy, so I wouldn't stick to using the test code.

I'm almost done debugging the 60 fps movies, and figuring out if I can remove the glitches or not. After that I'll compile everything I have into a final alpha code and start testing again.
Find
Reply
08-29-2017, 12:36 AM (This post was last modified: 08-30-2017, 02:36 PM by One More Try.)
#28
One More Try Offline
Posting Freak
*****
Posts: 886
Threads: 23
Joined: Dec 2014
Bit of analysis for anyone interested. About the Movie's model animation glitches in the 60fps code, which has certain body parts popping out of place for one frame.

Image: (Show Spoiler)
[Image: n8ErptB.jpg]
In the middle you see a list of values that determine the position/rotation of a part of a model. Each value is for a different frame.  The major jumps between two values are either for different body parts or something else that shouldn't be transitioned between. On closer inspection, the numbers on either side of the jump give similar results (the model doesn't change much), but the problem is that it leads to selecting a number halfway between the two values and that's entirely wrong.

The code is okay with fractional values, thankfully. For 60 fps we count 1, 1.5, 2, 2.5 etc.  What it does is say "oh, a fractional step - lets compare the difference between the current frame and the next frame, then select a value between them based on the fraction" -> Value = Frame 1 + Fraction x ( Frame 2 - Frame 1).  You can see it using the values on the left; f31 is the current frame and f0 is the "next" frame.  You can see the simple math on the right at the green highlight, and the check for a fractional step is above, in purple.   You can also see the bug.  It always assumes the next frame is simply the next value on the list, and in this case it's not, so it loads a wildly different value, which leads to the body part popping out of place.  Manually changing the values to be similar fixes the bug, but figuring out the correct way to code a fix will be a bit more involved.

/edit After a headache inducing crawl through the calculations, it looks to be circling 180 (understandable because these are for a rotation calc). 4 vs -176 is an effective difference of 8 0. It then transforms 0-180 into a hex value between 0-800, counting by 10, and loads 2 values, likely sine and cosine. Sooo... my only hope is including the 180 looping into the difference calculation. It that fails, I'll give up.

/edit2 It might be working... but I noticed it'll sometimes pop up above 180, so now I have to deal with that.
Find
Reply
08-29-2017, 06:20 AM
#29
Resus Offline
Member
***
Posts: 153
Threads: 5
Joined: Sep 2010
(08-29-2017, 12:36 AM)One More Try Wrote: Bit of analysis for anyone interested. About the Movie's model animation glitches in the 60fps code, which has certain body parts popping out of place for one frame.

Image: (Show Spoiler)
[Image: n8ErptB.jpg]
In the middle you see a list of values that determine the position/rotation of a part of a model. Each value is for a different frame.  The major jumps between two values are either for different body parts or something else that shouldn't be transitioned between.  On closer inspection, the numbers on either side of the jump give similar results (the model doesn't change much), but the problem is that it leads to selecting a number halfway between the two values and that's entirely wrong.

The code is okay with fractional values, thankfully. For 60 fps we count 1, 1.5, 2, 2.5 etc.  What it does is say "oh, a fractional step - lets compare the difference between the current frame and the next frame, then select a value between them based on the fraction" -> Value = Frame 1 + Fraction x ( Frame 2 - Frame 1).  You can see it using the values on the left; f31 is the current frame and f0 is the "next" frame.  You can see the simple math on the right at the green highlight, and the check for a fractional step is above, in purple.   You can also see the bug.  It always assumes the next frame is simply the next value on the list, and in this case it's not, so it loads a wildly different value, which leads to the body part popping out of place.  Manually changing the values to be similar fixes the bug, but figuring out the correct way to code a fix will be a bit more involved.

Even though I didn't understand nothing about any of this is still nice you posted this important information, hopefully other coders/hackers can figure out a way to fix it or point you to the right direction in this issue.

Anyway, like always you are doing God's work in this 60 fps code mate.
[CPU]: Intel Core i7-4790K 4.0GHz
[GPU]: EVGA GeForce GTX 970 Superclocked ACX 2.0 4GB GDDR5
[PSU]: EVGA SuperNOVA G1 1000W (80 Plus Gold)
[RAM]: Corsair Vengeance 16GB (2x8GB) DDR3 1600MHz
[MOBO]: MSI Z97-GAMING 5
[PC CASE]: ENERMAX Ostrog GT (Red)
[CPU FAN]: Cooler Master: Hyper 212 EVO
[OS]: Windows 10 Pro (21H2)
Find
Reply
08-29-2017, 07:42 AM
#30
djneo Offline
Above and Beyond
*******
Posts: 1,295
Threads: 30
Joined: Jan 2016
Wow, looks really interesting.
I like these instruments you're using, probably your work too?

Good stuff!
specs:

Windows 10
Intel i7-9900K @ 4.9Ghz
32 GB RAM
Nvidia 1080ti
Website Find
Reply
« Next Oldest | Next Newest »
Pages (31): « Previous 1 2 3 4 5 ... 31 Next »
Jump to page 


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode