Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Pcsx2] .pnach Compiler.v1.0
#1
--------------------------------------------------------
.pnach Compiler - v1.0 - Antix
--------------------------------------------------------
This program will compile many types of files into .pnach code formats.
Allowing for huge patches of memory.
--------------------------------------------------------


Quote:Add the import Folder to the emulation root folder.
Add the .exe to the emulation root folder.
This will contain your files to convert.

[Image: U6iaulO.png]

[Image: zh58E63.png]

Quote:This is an example of a routine used in my favorite disassembler. You can use anything that outputs a .bin or .raw formatted file. Code designer is a great mips compiler by Gtlcpimp over at cheaterslounge that I also use.
[Image: DlUacxX.png]

[Image: TELZ8qC.png]

[Image: tXU0bf7.png]

Anyone interested or need more information please let me know. I will be throughing up a download if anyone wants it.
Reply

Sponsored links

#2
first off just like to say great work! Can you specify more on what kind of files can be converted?
Reply
#3
(04-26-2013, 11:18 AM)xanthrax Wrote: first off just like to say great work! Can you specify more on what kind of files can be converted?

Thanks Xanthrax, The program can convert any file since it is aligning the byte code. An example of this, could be to replace an .Irx file of a game, picture, etc. You could then hack a code in the specified game and use the games libraries to output the file type. You can also use this tool as a way of creating the .pnach header for the game. The header contains the games serial, region and title.

You can think of it kinda like an include for any type of programming language.
Reply
#4
Although I can't say to have grasped the whole idea behind this project I have two things to suggest.

First and most important, avoid the usage of that old and deprecated explicit format. Use extended instead byte, short or word. If not for another reason because this format forces the change of the first digit at the address to 0 or 2 (it would be 1 if the code is a short) what may create serious problems identifying the code's nature afterward.

Second, patch=0 implies the code is to applied once, as opposed to at each frame. The Idea is good and has it's merit but was never totally implemented. The problem is pnach applies the patch=0 code the moment the game starts, sometimes before the game itself is loaded from memcard or sstate and then the actual cheat is lost and never actually applied. To resolve that issue, the feature must be tweaked to act in an intelligent way, analyzing situations and reacting on accord, what is easier to say than to do.

So, it should be patch=1 there for most cases (in the practice, all cases).

I leave any other objective judgement on that application to when I understand more clearly what is being proposed and attempted.
Imagination is where we are truly real
Reply
#5
(04-26-2013, 02:16 PM)nosisab Ken Keleh Wrote: Although I can't say to have grasped the whole idea behind this project I have two things to suggest.

First and most important, avoid the usage of that old and deprecated explicit format. Use extended instead byte, short or word. If not for another reason because this format forces the change of the first digit at the address to 0 or 2 (it would be 1 if the code is a short) what may create serious problems identifying the code's nature afterward.

Second, patch=0 implies the code is to applied once, as opposed to at each frame. The Idea is good and has it's merit but was never totally implemented. The problem is pnach applies the patch=0 code the moment the game starts, sometimes before the game itself is loaded from memcard or sstate and then the actual cheat is lost and never actually applied. To resolve that issue, the feature must be tweaked to act in an intelligent way, analyzing situations and reacting on accord, what is easier to say than to do.

So, it should be patch=1 there for most cases (in the practice, all cases).

I leave any other objective judgement on that application to when I understand more clearly what is being proposed and attempted.

Sorry I will try and explain a little better. I use two programs to develop asm codes for games. I use the ps2dis to search and map memory, then i use code designer to write asm functions and compile the code into a bin file. Each bin Is like one of my library files, by using this program i can convert all my fnc libraries into a cheat list format. The emulator is just injecting my asm for me, In an easy way. This method could work for more then just these file types since it is written to align bytes. Like injecting pictures into memory by a code instead of using a disc mod / .iso patch.
I will take that into mind when messing with the script to change it to extended and the address needs to be patched.
Reply
#6
(04-26-2013, 02:42 PM)taintedce0 Wrote: Sorry I will try and explain a little better. I use two programs to develop asm codes for games. I use the ps2dis to search and map memory, then i use code designer to write asm functions and compile the code into a bin file. Each bin Is like one of my library files, by using this program i can convert all my fnc libraries into a cheat list format. The emulator is just injecting my asm for me, In an easy way. This method could work for more then just these file types since it is written to align bytes. Like injecting pictures into memory by a code instead of using a disc mod / .iso patch.
I will take that into mind when messing with the script to change it to extended and the address needs to be patched.

I see, I begin to get the picture, that could become a customable cheat engine. I can foresee some pitfalls but probably they can be avoided.

One the pitfalls being the code being injected on the active PCSX2 memory, where conventional cheat engines, like codebreaker for example, takes over the memory and then put PS2 running under it, preserving the structure. To prevent that pitfall you need to grant that code does not introduce shifts to the game's address space.

Let's see how the project evolves. I wish you good luck with it.
Imagination is where we are truly real
Reply
#7
(04-26-2013, 03:29 PM)nosisab Ken Keleh Wrote: I see, I begin to get the picture, that could become a customable cheat engine. I can foresee some pitfalls but probably they can be avoided.

One the pitfalls being the code being injected on the active PCSX2 memory, where conventional cheat engines, like codebreaker for example, takes over the memory and then put PS2 running under it, preserving the structure. To prevent that pitfall you need to grant that code does not introduce shifts to the game's address space.

Let's see how the project evolves. I wish you good luck with it.

Thank you, Will continue to update. I could inject a cheat engine i wrote in asm. Use my app to steal the entry point from the logs of the emu. Then just hook my engine that way so it works for every game.
Reply




Users browsing this thread: 1 Guest(s)