Dolphin, the GameCube and Wii emulator - Forums

Full Version: NTSC/JP Xenoblade 60fps and other mods
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
What controls are you using? Classic, nunchuck, etc? By "skip sentence" do you mean forcibly move past it before it's done, or does it happen after it pauses at the end of the sentence (if wait for input is turned on)?

I noticed I may have messed up transferring the Nunchuck Z button lag fix, so I'll do that again. The cutscene text also seems to readout faster than I thought it would. I don't see to have any problems skipping sentences myself, so you may have a different controller setting.

/edit Fixed JP curscene text speed (it's slower now). Added instant JP cutscene text code, in the extra code section of the post. Fixed the Z button Nunchuck lag code. I'm not sure any of these will help you, but see if the AR instant cutscene text code helps. I'd still like to fix the problem without extra AR hacks.
OMG! It works! Now the cutscene dialogue text is totally normal with new code, thanks!
Besides I am using Classic control with Xbox Controller, previous issue also happened at the end of the sentence (Yes, I turned on 'wait for input' in system settings).
Hi, sorry to trouble you again, I find a new bug with 60fps code. The special effects of Melia’s art ‘Elemental Discharge’ will disappear or corrupt under 60 fps, especially fire (Summon Flare) and poison(Summon Earth). Please check the attached picture. (My English is not well)
Oh great, so you didn't even need the AR code?

Thanks for pointing out the effects, I'll look into that too.

/edit The effects are messed up on English too, so I'll have to work on it.
The effects work correctly immediately after you apply the 60fps code, then a few seconds later they stop working.
They work correctly if you prep the spell during 30fps, then switch to 60fps and cast the spell. If I prep one during 30fps and one during 60fps, the first cast will bug and the second will work. This is a hard bug to track down, but getting there.
(12-16-2017, 09:36 PM)eOne More Try Wrote: [ -> ]Oh great, so you didn't even need the AR code?

Thanks for pointing out the effects, I'll look into that too.

/edit The effects are messed up on English too, so I'll have to work on it.
The effects work correctly immediately after you apply the 60fps code, then a few seconds later they stop working.

Yes, I didn't apply any AR code, input lag has been fixed with new Gecko code (Actually I didn't know about AR code Big Grin).
Finding the bug for Melia's skill effects was painful. In the end it was using the speed factor (0.5) to count down, but it needed to count down by 1.0 (30fps speed) instead. I think it couldn't write data or something when it counted too slowly. I'm not completely sure on what the safest fix is... I just need to work on how to fix it correctly now.

/edit Feel free to test this and watch for any extra lag or fps drops. Melia's bug fix affects all special effects, but for some reason only hers appeared buggy.

It's also used in movies, but I think I corrected any issues. Sometimes it skips using the speed factor and loads another value. If it ever naturally uses 0.5 in the count down, this code will force it to 1.0 and cause a bug.

Another thing I noticed is that the speed factor gets set to 0.5 during movies. It didn't seem to cause any issues (maybe a slower skip movie menu), but I changed it to 1.0 anyway. The speed factor is also 0.5 for all loading screens, but that doesn't appear to cause issues, so I will leave it.

/edit I forgot the speed factor doesn't get checked often enough to allow it to be 1.0. If it doesn't cause problems, I'll leave it at 0.5.
(12-19-2017, 05:41 AM)One More Try Wrote: [ -> ]Finding the bug for Melia's skill effects was painful. In the end it was using the speed factor (0.5) to count down, but it needed to count down by 1.0 (30fps speed) instead. I think it couldn't write data or something when it counted too slowly. I'm not completely sure on what the safest fix is... I just need to work on how to fix it correctly now.  

/edit Feel free to test this and watch for any extra lag or fps drops. Melia's bug fix affects all special effects, but for some reason only hers appeared buggy.

It's also used in movies, but I think I corrected any issues. Sometimes it skips using the speed factor and loads another value.  If it ever naturally uses 0.5 in the count down, this code will force it to 1.0 and cause a bug.

Another thing I noticed is that the speed factor gets set to 0.5 during movies. It didn't seem to cause any issues (maybe a slower skip movie menu), but I changed it to 1.0 anyway.  The speed factor is also 0.5 for all loading screens, but that doesn't appear to cause issues, so I will leave it.

I won't update the main post right away, because their could be increased lag.  Here's the updated code for now:

Hi, updated code appears to be unavailable on JP title, multiple error messages with “invalid read from: xxxxxx” will popup immediately when launching the title. It might be available for English title, I don't know. Could you please check it out? I added a picture of error message below.
Oh yeah, that was for English. I'll make one for JP right now. I don't know if other effects will break from it, but I think I found a way to minimize any extra lag. It looks like if the fire spell multi-hits, the main target gets the large fire effect and secondary targets get the small fire effect. Is that right?

/edit I messed up the JP conversion of the skill effect fix. Posting new codes in a new post.
(11-14-2017, 07:17 AM)One More Try Wrote: [ -> ]For those of you interested in 60fps movies, I'll post a 99% correct code. The other 1% is annoying glitches. This code is built on old 60fps code and should NOT be used to play the game with. Just use it to play around with 60fps movies.

Movie 60fps, Enable both (Full movie and Interpolate Animation) and leave on. Use no other codes.: (Show Spoiler)

/edit The bugs happen when the code loads fractional values  (for the extra 60fps frames) for the animation/rotation calculations. However, if the main animation calcs are set to ignore the fractions, the bugs still happen.  I haven't been able to track down exactly where they occur, so I don't know if they can be fixed. The bug isn't related to other parts of the code as far as I can tell.

/edit2 Some of the bugs are in 803e0fb0 ->803e0fd4, which is based off the same frame counter for angles and is used if it's a fraction.  Unfortunately there are other bugs besides that code, and some model pop-in seems to happen in a different area of code entirely.

The characters popping in for one frame are characters about to come onto the screen normally. Perhaps it's preloading the character and they are meant to be hidden until their location is set, or perhaps the location itself is just wrong for the first frame they are rendered. Maybe it just doesn't expect an extra frame. It appears it may happen on non fractional frames.

801846c4 sets the fractional frame counts, which feed into all animation values. I think all bugs are related to this counter, tested by following the gecko branch there and deleting the f1 = f1 +f29 line (forces it to only use whole numbers).  Would have to track it quite thoroughly to find the other bugs. There are other fractional counters for the camera, particles (I think), etc. I don't think those get bugs.

Hey there! It's been a while, but I have been putting some work into this on and off. I haven't actually looked at your assembly here - I assume it's based on your previous code that averaged the results of the trig lookups? I've managed to get my solution based on finding the correct intermediate angles that's pretty close to this, but it's still not quite there.

However, I've noticed something fairly discouraging; when the camera cuts between shots, it will always be bugged. I think this is because it tries to insert a frame between the two cuts, and if the camera just interpolates between the frames, it'll go halfway between the cuts, which isn't right. This affects both my wip code and yours. While I haven't looked into the issue you describe with characters about to come on screen, I believe it's closely related; if the character didn't have a set location before the next frame, for the intermediate frame the code will attempt to average the values of their proper starting point and a location that didn't exist, which I imagine would be 0's (though I can't imagine why it'd be doing this if it ignores the fractional frames - that's odd, and I may look into that myself).

Now, I haven't 100% confirmed any of this, but if the above is correct I don't see any way to solve these issues with interpolation. If you can confirm these issues, we're likely at a dead-end for movies.
Heya! Not much changed with that code I posted and what I ended with before - it is after the trig lookup. I just went frame by frame with my code and didn't notice any bugs with camera switching. I would need a video or screenshot with my code running to look into it. I'm not sure about the characters, as the bug happens outside the trig calcs and angle setup area. It would either require following the code from the initial counter, which seems like an ordeal, or finding the memory for a buggy character and trying to follow read/writes for it, which may or may not work out. Also, if you haven't fiddled with Symbols, you might want to. It makes it easier to jump around the code and whatnot. Older versions (5.0-3819) lets you tag single lines of code (right click -> add function then Symbols -> save symbol map).

With the new skill effect bug, I'll probably record the intro movies and every character skill and compare with my fix, to make sure nothing is breaking. It'll take awhile to get that done.

/edit I wrote a value finder. You probably want to use it during 30fps. I'll probably find the buggy soldier memory in a few minutes with this, but not sure I can follow it to the bug.
movie value finder: (Show Spoiler)

/edit2 Ok, I figured out the location bug. I had to crack open the game code in a text editor and do a regex for " psq_st.*qr3 ", which is how they round off the counter to see if it has a fractional component. I found each one and deleted it in game, until the game bugged out. There weren't that many to test, but I had trouble confirming what that code did until I adapted the soldier finder code to that area. In the end it's: 803e0c94 and below. The game sets asset locations here, but it's a bit tricky because it only does one value at a time and not x/y/z. I'm not even sure most things have y or z components, it seems they manage to make it 1 dimensional for many things. ANYWAY, the bug is that it appears to re-use models that have gone off-screen, by changing their location to a place they need a new model to appear. Since the code averages locations for fractional frames, the model only moves halfway to its new location, which puts it in the wrong place for one buggy frame. The fix will be to detect large variations in location and skip averaging if it is too large, and hopefully nothing moves across the screen too fast, or I'll have to do something more complex.

Buggy memory breakpoints: Range from 92753564 to 927536a8 during soldier intro movie, running from the hill to the sniping/scope part.

The other bug that I thought was easy, is more complicated. With Mechonis' fingers disappearing for a frame and also affecting stationary/dead soldiers being displayed. I don't think I need to look for where the bug occurs though.

/edit I've been back at work on the main code. Tweaking a few things. Probably be a few more days before I post a new update.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31