Trying to locate graphics decompression routine

General Programming help in C, C++ or ASM, Compiling / Debugging, and R3000A Central Processing Unit (CPU) information
Post Reply
john83
Interested PSXDEV User
Interested PSXDEV User
Posts: 5
Joined: Aug 11, 2016

Trying to locate graphics decompression routine

Post by john83 » August 25th, 2016, 3:02 pm

I'm trying to find rockman x3's graphics decompression routine and
I could use a little help on how to locate it. I do have experience
finding decompression routines in snes games. I find them by tracing
backwards from where the graphics get stored in vram. Im not really
sure how graphics get stored to vram on the PlayStation because I'm
just now starting to learn playstation asm. Any help from someone
with experience tracing backwards from vram to find graphics
decompression routine would be much appreciated.

User avatar
LameGuy64
Verified
Psy-Q Enthusiast
Psy-Q Enthusiast
Posts: 388
Joined: Apr 10, 2013
I am a: Hobbyist Game Developer
Motto: Commercial or not, play it!
PlayStation Model: H2000/7000
Location: Philippines
Contact:

Post by LameGuy64 » August 27th, 2016, 12:35 am

PlayStation homebrew developer here, the way how graphics data is transferred between RAM and VRAM on the PSX is via DMA memory transfers. Also, the way how graphics data is interpreted on the PSX works like a large 1024x512 16-bit image, display/render buffers and textures are stored as rectangular images and textures of lower color depths (4/8 bit) taking up half or a quarter of its actual width as all pixels in the framebuffer are treated as 16-bit unsigned words.

For what you wanted to do, you could try placing a breakpoint into the function that performs the DMA memory transfer of graphics data (usually LoadImage) from RAM to VRAM. Then, you can study the pointers passed to the function by checking the argument registers (a0 should be the address to a structure of VRAM coordinates while a1 should be the address where the source graphics data is located.
Please don't forget to include my name if you share my work around. Credit where it is due.

Dev. Console: SCPH-7000 with SCPH-7501 ROM, MM3, PAL color fix, Direct AV ports, DB-9 port for Serial I/O, and a Xplorer FX with Caetla 0.35.

DTL-H2000 PC: Dell Optiplex GX110, Windows 98SE & Windows XP, Pentium III 933MHz, 384MB SDRAM, ATI Radeon 7000 VE 64MB, Soundblaster Audigy, 40GB Seagate HDD, Hitachi Lite-on CD-RW Drive, ZIP 250 and 3.5" Floppy.

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests