Breaking the 1114 limit in POC #6
Replies: 11 comments 6 replies
-
|
Hey, i think it's not going to be an exact value that you can replace in hex editor. It's more like they start at a random index to obfuscate stuff. My guess is that the POC variables related to the card limit are similar structured? Maybe this helps you. |
Beta Was this translation helpful? Give feedback.
-
|
Interesting. Viewing at the code, would those appear as values pretty close to eachother? Not sure what exact value would be BEGIN and END at 4007 and 7039+1 respectively. Perhaps if I translated these values into hex, find their format in the YGO2 exe and then search for a similar thing in POC, just with it's own values One things that does help is that there's a mentioned of the exact number of cards but without tokens and 1 other. So I could try to look for 1109 instead of 1114 in POC exe. Also, there are 5 tokens, so along with 5504, there should be 04 nearby. |
Beta Was this translation helpful? Give feedback.
-
|
What about this sting of numbers 55 04 8B C7 5F C1 E0 04 03 C2 5E 89 45 08 5D 5B 83 C4 0C C2 0C 00 8B 45 08 89 55 04 Starts at 50917.... You have 55 04 (1109), then 04 very close and then again 55 04 pretty close But honestly, even opening ygo2.exe from 2006, I couldn't find any sufficiently close appearance of values 4007, 2659 and 779...or to be more precise A70F, 630A and 0B03. |
Beta Was this translation helpful? Give feedback.
-
|
I even tried some light analysis of poc and ygo2 in ghidra...honestly, it's gonna take someone much smarter to figure this out... Seeing this uncompiled code from ygo2, I would say it's probably possible but finding it is like searching for a needle in a haystack without even knowing what a needle was. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Niiiice! |
Beta Was this translation helpful? Give feedback.
-
|
I can't find the exact addresses of the strings needed to break the limit. |
Beta Was this translation helpful? Give feedback.
-
|
Update - I managed to find the appropriate strings but after edit, I'm still at 1114 cards in the game. Perhaps I have the wrong version of the .exe? |
Beta Was this translation helpful? Give feedback.
-
|
@vjeko1701b I'm also trying to break the 1114 card limit. I'm using the free version of IDA combined with AI to analyze and reverse engineer the exe file. I've narrowed down about 4 to 5 suspected locations for the 5A04 limit. If you're still interested, I'd love to collaborate with you. |
Beta Was this translation helpful? Give feedback.
-
|
My plan is: first, I will try to break the 1114 card limit. The next step is to reverse engineer most of the important functions, especially those affecting card effects. The final step is to try adding new code by packaging it into libraries and importing them into the executable file. This will be a very long journey, so I would be very happy if anyone could join me. |
Beta Was this translation helpful? Give feedback.
-
|
Regarding breaking the 1114 card limit in POC, there's another important issue besides modifying the exe file (related to the data.dat file).
The problem is that the card_index.bin file has a fixed length of 4096 bytes, storing indexes for 2048 IDs. Why 2048 IDs and not 1114? In summary, we also need to try doubling the length of the card_intid.bin file to 2*4096 to see if POC works. |
Beta Was this translation helpful? Give feedback.



Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
So, since YGO 2005-11 .bin database files are fully compatible with all versions of the POC games, I've been trying to break the 1114 limit that is probably set in the engine. Can't be 100% sure, but no edit of any of the bin files made any difference.
So far, I've searched for any instance of 1114 in hex (5A04) in all three engines and there's quite a bit of results. Trough some elimination, I've tried replacing some with 2350 in hex (2E09) which is the size of 05-11 YGO card database. I skipped a fair number of instances with repeating patterns after 5A04.
I'm guessing a limit of this kind wouldn't have to be repeated over 20 times in the engine. Even if it was there for every bin file individually, which would be extremely superfluous, it would still need at best 8-9 repeats, especially since the engine references different languages not by separate strings to bins, but by an automatic extension recognition (eng, spa, ita...etc)
One instance crashed the game, others made no difference.
Next I tried the last line position in the .bin databases in hex (08B5 for 1114 cards and 125D for 2350 cards). I theory, the POC engine could be programmed to read up to a specific line in the bin files. Again, not much progress was made there. Another problem was that although POC engine had quite a few instances of 5A04 and 08B5, YGO engine ususally didn't have any for 2E09 or 125D but then again, by that time, perhaps they changed it to have no limit when it came to the card slot/database size.
Then last slotted card. POC - Slime Token (8307), YGO - Gear Golem (F30B)
Last I tried highest internal indexed cards in each game, for POC that would be Launcher Spider (5509 in hex) and for YGO it's Gear Golem (F30B in hex). Perhaps the POC games were limited to the highest inside index after which they stop. Again, no additioanl cards appeared.
This thread is mostly for brainstorming. Perhaps one of the mentioned methods was the solution, I just did it wrong, calculated the hex wrong or missed something. Perhaps someone will have a better idea based on these attempts.
Beta Was this translation helpful? Give feedback.
All reactions