
- #New super marisa land download how to#
- #New super marisa land download Patch#
- #New super marisa land download download#
You take a function call that deals with textures, and you replaces a parameter. Here is an example from D3D9/engine/MyD3D9.cpp: When one of our method is called, we just call the same method on the real Direct3D object. What we do instead is that our object have a copy of the real Direct3D object. Implement all the virtual methods in the interface: of course we don't want to reimplement everything, that would mean rewriting Direct3D9 ourselves. For some reason, it doesn't work with IDirect3DTexture9, but it works with IDirect3D9 and IDirect3DDevice9, which gives us quite a lot of functions to detour. On the other hand, since Direct3D objects are always accessed through an interface, we can detour its member functions quite easily we just have to return our own object derived from the interface, and to implement all the virtual methods in the interface. So we just need to call our DLL D3D9.dll, and to make sure it has a function called Direct3DCreate9.įunctions detouring works for C functions, but most of Direct3D is built around C++ object and calls to member functions. That's just how DLLs work ( kernel32.dll, user32.dll and a few other DLLs are special and are only looked for in system directories, but D3D9.dll and D3DX9_NN.dll aren't special). When the game calls Direct3DCreate9, it loads D3D9.dll (looking first in its directory and then in the system directories), looks for the Direct3DCreate9 function in it, and calls it. This is done for the configuration tool, in D3D9/game/BohoConfig/APatch.cpp.ĭetouring a Direct3D function isn't really hard. The result is that the window text is translated.
#New super marisa land download Patch#
This patch can detour the SetWindowTextA function (which means the game calls the patch's SetWindowTextA instead of the user32.dll's SetWindowTextA), and call SetWindowTextW by passing a translated window name instead of passing the SetWindowText original parameter. The game calls SetWindowTextA with a japanese window name. To use a basic example, let's take the SetWindowText function. This requirement led this patch to be built around detouring functions: wait until the game calls a function in a DLL, sneak in there, and change things just before they are displayed.

So, unlike a lot of translation patches, it was designed so that 99.9% of the work can be done without knowing assembly.
#New super marisa land download how to#
This project was designed when I didn't really know how to read assembly language. What follows is a technical description of this project. If you need more help open the README.txt in the release. Unzip everything into the game directory.
#New super marisa land download download#
Go to the Release tab and download the last release.It can also be expanded to support more games. A translation patch engine for Bouhou Koumakyou, Bouhou Youyoumu and Bouhou Koumakyou 2.
