Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ratchet & Clank 2 - Megaturret Doesn't Work Correctly #354

Closed
erwark opened this issue Nov 19, 2014 · 48 comments · Fixed by #7708
Closed

Ratchet & Clank 2 - Megaturret Doesn't Work Correctly #354

erwark opened this issue Nov 19, 2014 · 48 comments · Fixed by #7708

Comments

@erwark
Copy link

erwark commented Nov 19, 2014

Core issue?

Issue title: Ratchet & Clank 2 (PAL/Australia) Megaturret Not Working

-PCSX2 version: 1.2.1 Stable

-PCSX2 options: Defaults, no settings modifications affect the issue

-Plugins used: GSdx (SW or HW), SPU2-X, Lilypad, Linuz or Gigaherz CDVD,rest null plugins. Same issue under ZeroGS - ruling out Graphics.

-Plugin settings: Defaults, no settings modifications affect the issue

-Description: The turrets from the Megaturret Glove (the upgraded Miniturrent Glove) just bounce up and down with their starting sound and animation looping. They don't work (shoot anything).

-How to replicate: Upgrade the Miniturret Glove to the Megaturret glove and use it.

-Last known version to work: Never worked (checked back to 0.9.7). Also checked most recent testing build.

-PC specifications:
CPU: Intel Core i5 2500K @ 4.3Ghz
GPU: Gigabyte Radeon 6950 1GB
OS: Windows 7 x64 SP1

-Other comments: Aside from this issue, the game runs fine under Software Mode. No settings/gamefixes seem to make a difference. 2 other people have posted the issue in the past with no resolution (but they stopped following up the issue pretty quickly). These people seemed to have 64-bit Windows and PAL-Region games, like me. I have not tried the NTSC release.

I've filled out the required info as I understand it and welcome any ideas or requests for more information.

Thanks.

@Hirato
Copy link

Hirato commented Nov 13, 2015

This did happen on the consoles as well, but only occasionally.
The R&C wiki also suggests the issue plagues the NTSC version.

Something in PCSX2's operation seems to trigger the issue for every single turret, so they all end up stuck in an initialising state.
I've tried all the semi-relevant manual game hacks, as well as numerous combinations of the EE/VU precision options to no avail.
Is there anything I can do to help debug this?

@Nobbs66
Copy link
Contributor

Nobbs66 commented Apr 26, 2016

I'll look into this sometime tonight.

@FlatOutPS2
Copy link
Contributor

There's also bug report on the forum about this:
http://forums.pcsx2.net/Thread-Bug-Report-Ratchet-and-Clank-2-Megaturrets-PAL-Australia

@ghost
Copy link

ghost commented Jan 2, 2018

@RagnarokerXIII
Copy link

Has this bug been fixed yet?

@MrCK1
Copy link
Member

MrCK1 commented Apr 8, 2018

Nobody knows what causes it yet...

@NoShotz
Copy link

NoShotz commented Sep 26, 2019

This seems to no longer be an issue.

@Dreadmoth
Copy link
Contributor

Issue persists for me (PAL version) on current master: loud video

@NoShotz
Copy link

NoShotz commented Sep 26, 2019

I was playing on the NTSC version on the latest v1.5.0 build

@Legion495
Copy link

Legion495 commented Jan 8, 2021

Can confirm on 1.6.0 the PAL version of the game still got the issue.
I also have to confirm this was a bug which was caused by extensive use of the turrets on PS2 Hardware.
It was also later present in R&C3 but I did not look into that one yet on PCSX2.

If anything is needed I currently have time to provide some Information if needed.

@dualmacops
Copy link

Tried with: v1.7.0-dev-1163-ga6fac1e00
The problem still persists...

@ghost
Copy link

ghost commented Apr 4, 2021

This seems to have nothing to do with VU, game get incorrect data for FPU compare. Function that load $f0 also not take data from VU.

0x308140 move    $a0, $s4
0x308144 li.s    $f1, 6.5
0x30814C nop
0x308150 c.le.s  $f1, $f0 ($f0 at this point is 1.6 (0x3FCCCCCD))
0x308154 nop
0x308158 bc1f    def_307D34

Patching $f1 to 1.5 (0x3fc00000) make things work correctly. that what i was able to figure out. Real cause of bad data is still unknown. Also that can't be patched by pnach due to insane overlay system, and due to even more insane overlay loading system..
Only working way to hackfix it is patching iso with ppf, because every single game level have this function on different offset. And hooking loader not worked for me.

@Kwakoxium
Copy link

I was hoping to find a solution, but I see that the problem is still mysterious. :')

Surprisingly, while trying to finish the last objective on a planet, the weapon evolved in Megaturret and time to got to the end, it was working, but it didn't last long, I didn't escape it. The problem unfortunately appeared when I changed planet. :(

@Vogtinator
Copy link

Vogtinator commented Sep 23, 2021

Patching $f1 to 1.5 (0x3fc00000) make things work correctly. that what i was able to figure out. Real cause of bad data is still unknown. Also that can't be patched by pnach due to insane overlay system, and due to even more insane overlay loading system..
Only working way to hackfix it is patching iso with ppf, because every single game level have this function on different offset. And hooking loader not worked for me.

Great info, thanks a lot!

I used your disassembly to create a patch based on the mechanism used by #4541 (merged but got reverted later again):

           if (cpuRegs.code == 0x0280202d)
           {
                   if (*(int*)PSM(pc + 0x4) == 0x3c0140d0 && *(int*)PSM(pc + 0x8) == 0x44810800 && *(int*)PSM(pc + 0x10) == 0x46000836)
                   {
                           DevCon.Warning("Fixing RC2 Mega Turret at PC %x", cpuRegs.pc);
                           memWrite32(pc + 0x4, 0x3c013f80);
                   }
           }

Appears to work fine here with the PAL version (sces-51607, CRC 2f486e6f).

@Kwakoxium
Copy link

Could this fix the famous problem? :D

@ghost
Copy link

ghost commented Sep 28, 2021

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

Vogtinator added a commit to Vogtinator/pcsx2 that referenced this issue Sep 28, 2021
@Vogtinator
Copy link

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

I pushed the hack into a repo here: https://github.com/Vogtinator/pcsx2/tree/rc2hack. You can build from that branch to test it.

@ghost
Copy link

ghost commented Sep 28, 2021

After many building hardships, I managed to compile it! Works like a charm!

I still noticed the bug happening, when several turrets are placed rapidly.

EDIT: pinpointed it, having more than 5 turrets makes the first ones bug; there can only be 5 turrets coexisting properly.

@Vogtinator
Copy link

EDIT: pinpointed it, having more than 5 turrets makes the first ones bug; there can only be 5 turrets coexisting properly.

That matches my experience on console, that generous use of turrets breaks new ones at some point.

@evjm
Copy link

evjm commented Sep 30, 2021

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

I pushed the hack into a repo here: https://github.com/Vogtinator/pcsx2/tree/rc2hack. You can build from that branch to test it.

Well done in fixing the patch! For an absolute noob like myself, what is the easiest way to attach this patch or recode it? A step by step process if not too hard would be awesome thank you!

@Vogtinator
Copy link

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

I pushed the hack into a repo here: https://github.com/Vogtinator/pcsx2/tree/rc2hack. You can build from that branch to test it.

Well done in fixing the patch! For an absolute noob like myself, what is the easiest way to attach this patch or recode it? A step by step process if not too hard would be awesome thank you!

I enabled builds in my fork, so you can download windows binaries from here: https://github.com/Vogtinator/pcsx2/actions/runs/1292303171

@evjm
Copy link

evjm commented Sep 30, 2021

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

I pushed the hack into a repo here: https://github.com/Vogtinator/pcsx2/tree/rc2hack. You can build from that branch to test it.

Well done in fixing the patch! For an absolute noob like myself, what is the easiest way to attach this patch or recode it? A step by step process if not too hard would be awesome thank you!

I enabled builds in my fork, so you can download windows binaries from here: https://github.com/Vogtinator/pcsx2/actions/runs/1292303171

Thank you! I will replace the files in the original with these.

@Kwakoxium
Copy link

It seems to work!

@frogdude129
Copy link

frogdude129 commented Dec 7, 2021

@Vogtinator Nice! If you have the time, I'd need some help so I can know how to apply the patch, so then I can help testing it.

I pushed the hack into a repo here: https://github.com/Vogtinator/pcsx2/tree/rc2hack. You can build from that branch to test it.

Well done in fixing the patch! For an absolute noob like myself, what is the easiest way to attach this patch or recode it? A step by step process if not too hard would be awesome thank you!

I enabled builds in my fork, so you can download windows binaries from here: https://github.com/Vogtinator/pcsx2/actions/runs/1292303171

the download links for the binaries all say expired are you able to repost them.

Or is someone able to post a link or a step by step guide for complete beginners on how to turn the branch into a file i can apply to pcsx2 thank you

For reference i have the standalone version of pcsx2

@Vogtinator
Copy link

the download links for the binaries all say expired are you able to repost them.

I triggered another build: https://github.com/Vogtinator/pcsx2/actions/runs/1549681004

@Vogtinator
Copy link

@Vogtinator Thanks, it works for me, maybe now we should open a PR for this patch ?

Could be done, but the way the patch is applied is quite a hack. OTOH, #4541 did get merged temporarily...

@refractionpcsx2
Copy link
Member

I kinda want a better solution, I didn't like the hardcodedness of it, I kinda want a gamedb solution, but other stuff has gotten in the way.

Vogtinator added a commit to Vogtinator/pcsx2 that referenced this issue Dec 30, 2021
Vogtinator added a commit to Vogtinator/pcsx2 that referenced this issue Dec 30, 2021
@Vogtinator
Copy link

I cleaned it up a bit and opened #5235. I noticed that for some reason my patch changed 6.5 to 1.0 instead of 1.5, so I changed it to 1.5 in the PR. It appears to work fine still.

Maybe this could be patched better if there was a mechanism to patch content read from disk? That would only work well if it's uncompressed though.

@rushbushnocap
Copy link

hi, found this useful guide on how to solve the problem with megaturrets but the files are expired; can someone repost them?
(don't know if they work on 1.6.0 though)

@LingKuja
Copy link

LingKuja commented Apr 4, 2022

EDIT: pinpointed it, having more than 5 turrets makes the first ones bug; there can only be 5 turrets coexisting properly.

5 turrets is the max in the hardware as well, more than that and the game starts lagging hard, from what I recall from videos with someone messing around with it. IIRC, It really screwed up something in the memory too.

hi, found this useful guide on how to solve the problem with megaturrets but the files are expired; can someone repost them? (don't know if they work on 1.6.0 though)

Which guide? This thread? You're probably better off building the from source yourself.
I hope you can find a fix to this (or at least a pnach or whatever that can also just be added on a folder)

@RedPanda4552
Copy link
Contributor

In the interest of making the workaround more portable, I made an application using PINE to implement the workaround. Should work on any nightly builds which have PINE: https://github.com/RedPanda4552/RatchetTurretServer

@Karlthulu
Copy link

To further simplify the patch, i have made an application, that directly patches the game code permanently.
https://github.com/Karlthulu/RC2TurretPatch

@LingKuja
Copy link

To further simplify the patch, i have made an application, that directly patches the game code permanently. https://github.com/Karlthulu/RC2TurretPatch

Just tried it and it solved the megaturrets popping. Great job

@TheDiggster13
Copy link

To further simplify the patch, i have made an application, that directly patches the game code permanently. https://github.com/Karlthulu/RC2TurretPatch

Also worked for me!

Vogtinator added a commit to Vogtinator/pcsx2 that referenced this issue Sep 10, 2022
@Oskichi
Copy link

Oskichi commented Oct 16, 2022

It worked perfectly. Thank you very much!! :)

@kurokochee
Copy link

I patched it from 29/29 to 0/29 and then it closed automatically but I dont see the patched rom. Where is the directory or is the rom that I choosed became the patched rom?

@kurokochee
Copy link

I patched it from 29/29 to 0/29 and then it closed automatically but I dont see the patched rom. Where is the directory or is the rom that I choosed became the patched rom?

It should apply the patch to the rom that you chose, and change that file. There will not be any new file created

Is the name of the file the same? and is this for pcsx2 only?

@kurokochee
Copy link

Is there a different version of RC 2 Pal or any RC2 Pal rom can use this?

@stenzek
Copy link
Contributor

stenzek commented Nov 20, 2022

@Karlthulu Please refrain from discussing piracy on our issue tracker.

@refractionpcsx2
Copy link
Member

dunno if any of you are still around, but if you could try #7708 on an unpatched disc and see if the dynamic patch works for the mega turret.

I've basically implemented the original dynapatch idea but better and editable in the gamedb, so hopefully that works better for you.

@Vogtinator
Copy link

dunno if any of you are still around, but if you could try #7708 on an unpatched disc and see if the dynamic patch works for the mega turret.

Works! Not sure where the patch log lines end up (I don't see them in the terminal), but the miniturrets work fine.

I've basically implemented the original dynapatch idea but better and editable in the gamedb, so hopefully that works better for you.

I'm happy if something finally gets merged.

@refractionpcsx2
Copy link
Member

refractionpcsx2 commented Dec 28, 2022

The patch line appears in the console log window at the moment the patching happens, probably as you throw a turret, as long as you face verbose logging on.

@Vogtinator
Copy link

Works: [ 234,2560] Applying Dynamic Patch to address 0x003863E0

I had to find the option to enable the system console first - first time using the Qt GUI here.

@xXCpF01Xx
Copy link

is it possible to make a patch for aethersx2? Im playing the game in my s24 ultra and I would like to use megaturrets peepoSad

@LingKuja
Copy link

LingKuja commented Sep 8, 2024

is it possible to make a patch for aethersx2? Im playing the game in my s24 ultra and I would like to use megaturrets peepoSad

It would be best to either ask in the [redacted], or some other arm related community.

@F0bes
Copy link
Member

F0bes commented Sep 8, 2024

It would be best to either ask in the [redacted], or some other arm related community.

Please do not link to unofficial repositories. There are no known safe forks or redistributions of AetherSX2.

is it possible to make a patch for aethersx2? Im playing the game in my s24 ultra and I would like to use megaturrets peepoSad

AetherSX2 is not managed by us and is no longer under active development.

@PCSX2 PCSX2 locked as resolved and limited conversation to collaborators Sep 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.