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


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Site › dolphin-emu.org articles v
1 2 3 Next »

Game Modification: 60 FPS Hacks and Patches
View New Posts | View Today's Posts

Pages (84): « Previous 1 ... 23 24 25 26 27 ... 84 Next »
Jump to page 
Thread Rating:
  • 3 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Game Modification: 60 FPS Hacks and Patches
10-18-2016, 05:25 AM
#241
Meowmaritus Offline
Zelda Enthusiast
***
Posts: 111
Threads: 0
Joined: Oct 2016
(10-18-2016, 02:48 AM)Zerowalker Wrote: So wait, are you able to make Link move half as often by only calling the function half as much on 60fps?
As you said it looks weird, i assumed that you have seen it.

Yeah I have. I posted an AR code for it: https://forums.dolphin-emu.org/Thread-game-modification-60-fps-hacks-and-patches?pid=425415#pid425415
Find
Reply
10-18-2016, 06:33 AM
#242
theboy181 Offline
Member
***
Posts: 60
Threads: 6
Joined: Feb 2015
(10-18-2016, 05:25 AM)Meowmaritus Wrote: Yeah I have. I posted an AR code for it: https://forums.dolphin-emu.org/Thread-game-modification-60-fps-hacks-and-patches?pid=425415#pid425415

It does look weird. I think we need animators to fill in those 30 missing frames of animation.  Smile. 
Find
Reply
10-18-2016, 06:50 AM (This post was last modified: 10-18-2016, 07:37 AM by Zerowalker.)
#243
Zerowalker Offline
Member
***
Posts: 208
Threads: 19
Joined: Jan 2016
Ah missed that.

It's incredible that you are able to find this stuff, really need to learn some of this too.

EDIT:

Okay tried it, i see what you mean.
Basically it looks like he skips every other frame, so he kinda flickers.

EDIT 2:

But how do you even manage to find these values?

I myself am trying to modify Pikmin to play the Cutscenes at half speed (cause at 60fps it goes twice as fast).
The game itself works Kinda fine at 60fps except for some annoying triggers, but the Speed of the game what it should be.
Find
Reply
10-18-2016, 08:08 AM (This post was last modified: 10-18-2016, 10:03 AM by Meowmaritus. Edit Reason: because )
#244
Meowmaritus Offline
Zelda Enthusiast
***
Posts: 111
Threads: 0
Joined: Oct 2016
(10-18-2016, 06:33 AM)theboy181 Wrote: It does look weird. I think we need animators to fill in those 30 missing frames of animation.  Smile. 

I was waiting to post it on this thread because I'm not sure if I'll be able to do all the work required, but the animation system in this game actual does allow for time scaling animations without changing framerate. You just have to modify the arbitrary speed values of every single animation separately (for example, Link's crawl speed, which is read within the function daPy_lk_c::getCrawlMoveAnmSpeed() in da_player_main.o, is a float value of 3.0, which has to be modified to 1.5 for it to be slow motion without lowering framerate).

But yeah I've got a few Link animations working perfectly in 60 FPS. And if that wasn't awesome enough for you, Link's timings are based mostly on his animations so halfing their speeds seems to half a lot of link's overall actions to their proper speeds as well. There are still a few exceptions to this, such as Link's walking lateral speed (which I've already found out how to change separately) and of course his gravitational acceleration when falling (which I have not found quite yet).

I must thank Christopher Serr / CryZe, who does a ton of Wind Waker modding, for his Wind Waker symbol map demangler, which made the symbol map much easier to decipher and much easier to go through within Dolphin's alphabetically-organized symbol list.

Anyways, I'm only working on the Wind Waker 60 FPS mod as a side project so it's going to take me a while to get everything done. The next thing I'm working on is a code that makes both Link and the game's camera movement fully working 60 FPS but with all the other entities running at 30 FPS, which shouldn't be TOO hard to do and I can probably be done in a few days. And of course I'll be trying to work on finding some way to half NPCs'/enemies' animations but with all their different timing values I dunno if I'm going to be able to accomplish that on my own. If I realize it's going to be way too hard for myself to accomplish, I'll consider posting my notes about how do finish modding it, but if I do that it will be very reluctantly because I wanna take all the credit for modding Wind Waker to be 60 FPS (very humble, I know ( ͡° ͜ʖ ͡°))

Oh and one extra thing: As far as magical timing values that make the entire game run half speed without lowering the framerate go, there aren't any. I know because I tried modifying every single value in memory that wasn't an ASM function that was equal to any of the values on this list.


Edit: For those wondering if I'll be making this mod for other games:
  • Other regions of Wind Waker: Sorry but I probably won't do it because pretty much anyone emulating Wind Waker on Dolphin has played the game before and knows what everything says without having to read it. Furthermore, most people here seem to speak English. However, if people request it enough I might look into it, but after I do Twilight Princess (and the PAL version would be higher priority for me since it would cover 4 other languages at once).
  • Twilight Princess: I'll probably do it after I do Wind Waker. Since their game engines are about 95% similar it wouldn't require very much more work than doing one for a different region of Wind Waker would (and unlike different Wind Waker regions, this is actually a different game).
  • Other regions of Twilight Princess: you really want to make me suffer, don't you? Maaaaaaaaaaaaaaaaaaaaaaybe (and that is an extremely gargantuan maybe) I might possibly theoretically attempt to consider the idea of modding another region of Twilight Princess (don't hurt me).
  • Skyward Sword, Wind Waker HD, and Twilight Princess HD: No, don't expect me to ever publicly release any mods for these games. These games don't include symbol maps on the game disc, so it's going to be an extremely difficult if not impossible task (especially for the ones on Wii U, given the current modding tools). However, I'm of course going to try my hardest on modding Skyward Sword, even if I never do get anywhere with it, because it's one of my favorite games (don't hurt me).

Edit 2:
(10-18-2016, 06:50 AM)Zerowalker Wrote: -snip-
But how do you even manage to find these values?
-snip-
I loaded the symbol map files that the developers left, for whatever reason, on the discs of Wind Waker and Twilight Princess. Then, I ran the games and started breaking (like the debug feature breaking, not literally damaging lol) emulation at many different times and viewing the call stack. Additionally, I put breakpoints on the beginning of some specific functions I wanted to know more about, since breaking exactly on the function gives a more specific call stack from the correct game thread. In looking at all these functions, I took lots of notes of how the games worked such as what functions were called and when. Because most of these notes are mental notes, I end up having to re-evaluate a lot of these things when I go back to mod the game the next day lol.

For that specific code I made to half Link's update rate, it involved a lot of trial and error (like 50 or 60 total hours of messing with stuff/learning PowerPC ASM programming because this 60 FPS Wind Waker stuff is my very first time viewing or editing any type of ASM) to finally find out enough about the source code to locate where Link's update function is called. I then replaced the instruction that calls Link's update function with an instruction to call my own function that I wrote, which the AR codes "add" to the game (it modifies empty bytes in RAM that the game doesn't use into being ASM functions).
Here's what that function actually does:
  • Load the value I designated to be the frame timer value, located at 0x817F1000 (which is in one of those areas the game doesn't ever use).
  • Load the number 1
  • Check if both numbers are equal.
  • If they are equal: Run Link's update function.
And for some reason I had to add another function to half the gamepad-reading function's update rate as well, or Link would ignore a lot of the inputs. And THAT function, is where I actually SET the frame timer value thing (if its 1 currently, it sets it to 0, and vice-versa).

In the new mod I'm working on that makes everything except link remain 30 FPS, I've actually improved the way that timer works: Instead of switching from one to zero, it starts at 1 and increases until it hits the value set with one of the AR codes, then resets back to 1, and it only runs the update function if the timer is on 1. Therefore, if you set the max timer value to 2 it updates every other frame. Set it to 3 and it updates every 3rd frame, and so on. This actually allows my upcoming mod to support framerates higher than 60 FPS (but I must warn you that 30 FPS entities running in 120 or 240 FPS look really ugly).
Find
Reply
10-18-2016, 12:06 PM
#245
Zerowalker Offline
Member
***
Posts: 208
Threads: 19
Joined: Jan 2016
Quote:it involved a lot of trial and error (like 50 or 60 total hours of messing with stuff/learning PowerPC ASM programming because this 60 FPS Wind Waker stuff is my very first time viewing or editing any type of ASM) to finally find out enough about the source code to locate where Link's update function is called


Wow, now i have myself been looking ad the .map and debugging on Pikmin just now, after recommendations from another thread.

And as i don't understand ASM, i have No Clue at all what anything does, i can simply guess what the function is supposed to accomplish, but i have no idea of how to change it to my liking.

I truly admire your skills, and if this is your first time, and it only took 50-60 hours, now that is FAST. For me i can stare blind on different programming for weeks without getting anywhere.

Hmm, as what i am trying to do however is not Thaaat complex in theory, it's simply to play cutscenes at half speed.
And as cut scenes are basically made up of, well Scenes at a framecount, and each frame play, well each frame, the fps controls the speed.
So, my guess would be, that there must be some kind of function that says "next frame", and if it's possible, one could just make that function run every other frame.
That way the cutscene will be 30fps even at 60fps.

Now the problem is that it's a function that needs to be alterered with an "If", and i just know how to alter values (awesome right?).
Any tip at all is welcome, and of course please do write about your progress as you go forward (at whatever pace).

I am very much interested in this, and would love to help, but sadly as you can tell i am not worth any time,
so i will try to get out of what you say the best i can and hopefully understand atleast Something haha xd

Great job;U
Find
Reply
10-18-2016, 01:06 PM (This post was last modified: 10-18-2016, 01:06 PM by Meowmaritus.)
#246
Meowmaritus Offline
Zelda Enthusiast
***
Posts: 111
Threads: 0
Joined: Oct 2016
(10-18-2016, 12:06 PM)Zerowalker Wrote: Wow, now i have myself been looking ad the .map and debugging on Pikmin just now, after recommendations from another thread.

And as i don't understand ASM, i have No Clue at all what anything does, i can simply guess what the function is supposed to accomplish, but i have no idea of how to change it to my liking.

I truly admire your skills, and if this is your first time, and it only took 50-60 hours, now that is FAST. For me i can stare blind on different programming for weeks without getting anywhere.

Hmm, as what i am trying to do however is not Thaaat complex in theory, it's simply to play cutscenes at half speed.
And as cut scenes are basically made up of, well Scenes at a framecount, and each frame play, well each frame, the fps controls the speed.
So, my guess would be, that there must be some kind of function that says "next frame", and if it's possible, one could just make that function run every other frame.
That way the cutscene will be 30fps even at 60fps.

Now the problem is that it's a function that needs to be alterered with an "If", and i just know how to alter values (awesome right?).
Any tip at all is welcome, and of course please do write about your progress as you go forward (at whatever pace).

I am very much interested in this, and would love to help, but sadly as you can tell i am not worth any time,
so i will try to get out of what you say the best i can and hopefully understand atleast Something haha xd

Great job;U

Speaking of FAST, I just halved the speed of every animation in the entire game by altering only 1 function (lol)
Find
Reply
10-18-2016, 01:08 PM
#247
theboy181 Offline
Member
***
Posts: 60
Threads: 6
Joined: Feb 2015
Hats off to you sir, and a slow clap!

Great news and thanks for the details. I look forward to testing things out.


Grateful that you are dedicated to this kinda project.
Find
Reply
10-18-2016, 01:27 PM
#248
Super David Offline
Member
***
Posts: 126
Threads: 6
Joined: Jun 2015
(10-18-2016, 08:08 AM)Meowmaritus Wrote: Oh and one extra thing: As far as magical timing values that make the entire game run half speed without lowering the framerate go, there aren't any. I know because I tried modifying every single value in memory that wasn't an ASM function that was equal to any of the values on this list.

(10-18-2016, 01:06 PM)Meowmaritus Wrote: Speaking of FAST, I just halved the speed of every animation in the entire game by altering only 1 function (lol)
Not quite the same thing as a magical value for the entire game, but pretty close.
You've been doing some great work on getting the game to run in 60fps. I'm looking forward to seeing some more progress on this.
Find
Reply
10-18-2016, 01:28 PM
#249
Meowmaritus Offline
Zelda Enthusiast
***
Posts: 111
Threads: 0
Joined: Oct 2016
(10-18-2016, 01:08 PM)theboy181 Wrote: Hats off to you sir, and a slow clap!

Great news and thanks for the details. I look forward to testing things out.


Grateful that you are dedicated to this kinda project.

Speaking of great news,  I think I just figured out how to everything else in 60 FPS by modifying the change position and change rotation functions. So uhh, Wind Waker 60 FPS coming soon (most likely at least)
Find
Reply
10-18-2016, 01:56 PM
#250
karasuhebi Offline
Member
***
Posts: 142
Threads: 10
Joined: Aug 2014
OMG yes O_O!
Windows 10 Pro v2004 x64 | AMD Ryzen 5 5600X | Gigabyte AORUS GeForce GTX 1080 Ti | Crucial Ballistix DDR4-3600 16 GB (2x8 GB) RAM | Samsung 850 EVO 500 GB SSD | WD RED WD80EFAX-68KNBN0 8 TB HDD
[Image: 76561197975803477.png][Image: AddFriend.png]

jmc4789: Why the fuck is Pokémon using a spanish character
jmc4789: this is somé bullshit

Find
Reply
« Next Oldest | Next Newest »
Pages (84): « Previous 1 ... 23 24 25 26 27 ... 84 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