How records in asm code to be running while running the game?
#1
Hello friends, It is possible to see in console emulator version 0.9.8 all the records in asm code to be running while running the game?

For example:

mov eax, cpuRegs[0];
mov cpuRegs[1], eax;
mov eax, cpuRegs[3];
add eax, cpuRegs[2];
mov cpuRegs[4], eax;

Thank you.
Reply

Sponsored links

#2
I would guess that this is not easy in 0.9.8. The newest version supports a debugger which should provide easy-to-use features of what you are asking for.

Why would you like to see them?
Reply
#3
(11-16-2014, 11:41 AM)tictech1970 Wrote: Hello friends, It is possible to see in console emulator version 0.9.8 all the records in asm code to be running while running the game?

For example:

mov eax, cpuRegs[0];
mov cpuRegs[1], eax;
mov eax, cpuRegs[3];
add eax, cpuRegs[2];
mov cpuRegs[4], eax;

Thank you.

you can try it with 1.2.1 version using kingcom's debugger.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction
Reply
#4
I'm trying to disable back cull facing a ps2 game to extract the models completely, so I need to see the logs in asm code to try to modify them in some way, another option I have is to try to decrypt the iso image and thus extract the models . Is that possible?
Reply
#5
I would guess there are tons of asm code executed per second. How would you find the correct one?

And even if you disable backface culling in the asm code I don't know how you extract the model.
Is backface culling done in asm (on the cpu)? Sounds to me more dx/opengl-stuff...

Extracting the models from the iso:
If you are familiar with typical data containers of what you are looking for you probably have to find the file that contains the information (selection e.g. by filename), open it using a hexeditor, try to read the header, with this information try to understand what kind of container this is, and open it correspondingly. I guess it will be quite complicated.
Reply
#6
back face culling should be done on the VU. as said before, you can't simply disable them.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction
Reply
#7
Thank you very much for your answers, I tell you, I think the back facing culling runs on the vu1 unit vector using techniques Triangle Winding, or I think, if I can see all the executions of this vector unit I think I can disable a once disabled I can remove all the vertices pcsx2 displayed GSRasterizer easily by modifying the file to show me the console model (several mesh) in its version obj, if we multiply the z axis 0.01f is not flat.

Techniques Triangle Winding:
http://www.hsfortuna.pwp.blueyonder.co.u.../backf.htm
Reply
#8
(11-16-2014, 12:30 PM)tictech1970 Wrote: Thank you very much for your answers, I tell you, I think the back facing culling runs on the vu1 unit vector using techniques Triangle Winding, or I think, if I can see all the executions of this vector unit I think I can disable a once disabled I can remove all the vertices pcsx2 displayed GSRasterizer easily by modifying the file to show me the console model (several mesh) in its version obj, if we multiply the z axis 0.01f is not flat.

Techniques Triangle Winding:
http://www.hsfortuna.pwp.blueyonder.co.u.../backf.htm

try to pm one of the pcsx2 dev's about your idea. example: gregory, rama, refraction.
We're supposed to be working as a team, if we aren't helping and suggesting things to each other, we aren't working as a team.
- Refraction
Reply
#9
Many thanks, I already send a pm to the three, gregory replied me yesterday this.

"For me face culling is done inside the game engine. GS is basically a rasterizer & a fragment shader."

For that reason I want to see the code in asm live and records VU1 unit vector, to modify them if possible.

Thanks.
Reply
#10
you could try to open the games elf file in ps2disasm. find the code section for vu programs if they are available. then modify the vu code. the basic computation is tranforming the vertices. then perhaps packing them into a command stream or some bits for the gs. you could perhaps basicly remove the operations for culling. (i have no example right now but culling should be a signed vector operation with the normal and a check/subtraction with the view matrix's z axis. if it's signed it's culled or basicly just skipped.) nvm you got that code there. good luck with that vu asm.

other technique is to hijack the packets to the vif or dump the memory pretransformed and transform the vertices yourself - with help of the vu code. you might need an additional index list for the packet/triangle assembly since the code can use optimization techniques to not compute all the vertices as a stream all the time hence you gotta assemble the triangles primitives from a list.
Reply




Users browsing this thread: 3 Guest(s)