0xDC00 / agent

Universal script based text hooker (powered by FRIDA).
https://discord.gg/sWeFsmJYJc
181 stars 7 forks source link

Issues with using this alongside Yuzu #1

Closed ZDTL closed 3 years ago

ZDTL commented 3 years ago

I tried to use this with Tantei Bokumetsu (https://vndb.org/v30317) on Yuzu emulator.

The OCR worked fine with the first sentence. MEMORY_MAPPED was enabled. Out of JIS, UTF-16, UTF-8, only the last one produced some results.

Followed the instructions but either they didn't show anything or gave the error "Error: Invalid byte sequence in conversion input at onMatch (/agent.js:40:41)".

ZDTL commented 3 years ago

So I am reopening it because even though the original issue is not present in the current version, I have been facing a different problem. So I changed the encoding to UTF-8 in _MemoryWatch_Custom.js I OCR the first sentence in the VN, scan it through Cheat Engine 7.2 and it gives me 6 addresses. I tried all of them and 4/6 doesn't give me any result. One of them gives me output

[ 303.433682] Render.Vulkan video_core\renderer_vulkan\vk_pipeline_cache.cpp:GetGraphicsPipeline:231: Compile 0x9D7F5C52CD410222 [ 303.435180] Render.Vulkan video_core\renderer_vulkan\vk_pipeline_cache.cpp:GetGraphicsPipeline:231: Compile 0x0F7E60206AF9DA57

Other one is just

"-------

-------"

Agent_4DvV0WYAmn

0xDC00 commented 3 years ago

It's not about yuzu. Maybe the game use dynamic pointer for sentence (each time the sentence changes, pointer also changes). MemoryWatch just point to a fixed address.

Check latest ReadMe.md and MemoryWatch description.

ZDTL commented 3 years ago

I am sorry, I don't understand. So I know the concept of dynamic pointer, but I don't know what to do after this. Let me go through the process of what I need to do. I scan CE for address. I run the MemoryWatch_Custom and enter one of the addresses I received. After resuming the game and switching to next dialogue, do I scan for next text again in CE, select "save" in Agent and enter the new address?

0xDC00 commented 3 years ago

MemoryWatch just monitors at a fixed address. The address you entered, data does not change according to each of new sentence when the dialog was changed That is because Tantei Bokumetsu does not use a fixed buffer for every dialog. So, MemoryWatch does not support Tantei Bokumetsu.

Another script is coming (_ExecutionWatch). image

0xDC00 commented 3 years ago

@ZDTL Fixed with _ExecutionWatch + D-Code, please check last commit. Tutorial, wiki about creating D-Code will be update soon.

GameName: Tantei Bokumetsu GameVer: 1.0.0 YuzuVer: 682 D-Code: $utf-8,000?,450FB6640500450FB6E444896424304589E44D89674031C0448B6424304181FCEF000000F59F0F90C04189870801000048836C242003418B87080100009E752E48837C242000??????????????????????????????????????????????B8404E1308

ZDTL commented 3 years ago

I tried this and whenever I enter D code, it keeps asking me to enter it again and again. I used both Yuzu 682 from your video and other versions. Any idea how to solve it?

Added a video link: https://files.catbox.moe/jgqzie.mp4

Edit: Oh is this because my game version is 1.02? Edit 2: It works with 1.00 version. Thank you for putting in so much effort for my request.