marcrobledo / RomPatcher.js

An IPS/UPS/APS/BPS/RUP/PPF/xdelta ROM patcher made in HTML5.
https://www.marcrobledo.com/RomPatcher.js/
Other
653 stars 133 forks source link

Problem with parasite eve 1 #39

Closed Felipefpl closed 2 years ago

Felipefpl commented 2 years ago

I used the online patcher to apply this hack https://www.romhacking.net/hacks/1950/ and the browser crashed when i was patching the CD 2 of the game.

The patch works using ppf-o-matic 3.0

marcrobledo commented 2 years ago

It is working fine on my side. Are you using the correct track file crc32: 226EE2EE?

Felipefpl commented 2 years ago

Yes, i used a tool to check it. Got the images here https://cdromance.com/psx-iso/parasite-eve-usa/

marcrobledo commented 2 years ago

Which browser and version are you using? If the entire browser crashed, it might probably be a memory overflow.

Felipefpl commented 2 years ago

The browser didnt crash, only displayed an erro msg from the tool itself saying it failed to patch the game. I'm using waterfox, i'm also wondering if those errors could have something to do with it https://validator.w3.org/nu/?doc=https%3A%2F%2Fwww.romhacking.net%2Fpatch%2F

marcrobledo commented 2 years ago

It would help to know what error message appeared. Have you tried it again after a browser fresh reboot?

Felipefpl commented 2 years ago

Error msg: "There is no sufficient memory to complete the action you requested.

Quit some applications and try again."

This msg didnt show up when i patched the 1st CD.

After a fresh reboot the tab crashed.

marcrobledo commented 2 years ago

Which version of waterfox are you using? Maybe is it too old and/or ServiceWorkers are disabled for some reason?

Felipefpl commented 2 years ago

i always use the latest version of waterfox and serviceworkers is disabled, why serviceworkers are needed?

marcrobledo commented 2 years ago

Sorry, I meant Web Workers (not Service Workers, which are a completetly different thing).

Web Workers allow browsers to run JavaScript code in the background and in a different thread than the browser's renderization engine. Patching ROMs can become a heavy task in some cases (specially with big ISOs like this one), and a dedicated Web Worker facilitates the task.

If Web Workers are not enabled, Rom Patcher JS will try to patch using the old method, which is much more slow and consumes a lot of memory if patching a very big file like a PSX iso.

Please, let me know if you've got Web Workers enabled.

Felipefpl commented 2 years ago

I see, that's a good info to know. Could you please tell me the name of the function that i need to search in the about:config? There are several "workers" functions there and i dont know which one you are talking about.

marcrobledo commented 2 years ago

I don't know :-(

Web Workers should be enabled by default in all modern browsers.

Another way to check if Rom Patcher JS is using Web Workers is to check the value for CAN_USE_WEB_WORKERS variable. Just open Rom Patcher JS in a new tab and press F12 to open Web Development Console, then type CAN_USE_WEB_WORKERS and it will return true or false.

Felipefpl commented 2 years ago

Thanks for the tip, the answer is true, strange since the patch of cd 1 works without any problems.

marcrobledo commented 2 years ago

Are you using an old computer with little memory?

Felipefpl commented 2 years ago

I have a 1.8 Ghz sandy-bridge with 4 GB RAM and win7 x64. I dont think it's a problem, like i said, the patching of cd 1 works fine.

marcrobledo commented 2 years ago

4GB will probably be enough for the standalone PPF-o-matic, but there a lot of factors that could make it insufficient when running high-level code like JS under a web browser, which wasn't built specifically for binary data management.

Patching CD1 works probably because the patch isn't as complex and maybe doesn't relocate as much data as CD2.

I'm sorry but there isn't much I can do on this :-(

Felipefpl commented 2 years ago

Ok, thanks for the answers.