Virtua Tennis Dreamcast / PVR Offsets found!

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
zgoro
Posts: 16
Joined: Sat May 02, 2020 12:46 pm

Virtua Tennis Dreamcast / PVR Offsets found!

Post by zgoro »

Hi guys!

I've finally mapped headerless PVRs inside Virtua Tennis for Dreamcast that allows for modification.
Unfortunately I couldn't find a simple script to "dump" binary data from specified offsets, is there any one I could use?

i.e.
File1 fm 0x00 to 0xD55
File2 fm 0XD56 to D5F
File3 fm ... to ....

Thank you very much! :)
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Virtua Tennis Dreamcast / PVR Offsets found!

Post by aluigi »

Code: Select all

math OFFSET     = 0xd56
math END_OFFSET = 0xd5f
math END_OFFSET - OFFSET
log "dump.dat" OFFSET END_OFFSET

But I guess it's more easy to use a "pattern" (do these files begin with the same sequence of bytes) or just from the hex editor.
zgoro
Posts: 16
Joined: Sat May 02, 2020 12:46 pm

Re: Virtua Tennis Dreamcast / PVR Offsets found!

Post by zgoro »

Image

It worked perfectly! Thank you very much! :D :D :D

I just got an issue on the script when adding a custom PVR header of 32bytes, it's probably a typo or a format issue but I can't figure it out, what's wrong:

Code: Select all

set MEMORY_FILE binary "/x47/x42/x49/x58/x08/x00/x00/x00/x01/x00/x00/x00/x00/x00/x00/x00/x50/x56/x52/x54/x5E/x0D/x00/x00/x01x/x04/x00/x00/x40/x00/x40/x00"
math OFFSET     = 0x0
math END_OFFSET = 0xd56
math END_OFFSET - OFFSET
append
log MEMORY_FILE 0 SIZE "1_colletto.pvr" OFFSET END_OFFSET
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Virtua Tennis Dreamcast / PVR Offsets found!

Post by aluigi »

Replace the last "append" and "log" lines with the following:

Code: Select all

get TMP asize MEMORY_FILE # take the size of the memory file
log "1_colletto.pvr" 0 TMP MEMORY_FILE # dump it in the output file
append # enable append mode
log "1_colletto.pvr" OFFSET END_OFFSET # dump the input file at the end of the output file