Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Pain Ps3 game

Featured Replies

  • Localization

Hi

Here is some files from pain ps3

https://www.dropbox.com/scl/fi/3ewdo0gpj9x6bf0o0eyfr/Pain-Ps3-game.rar?rlkey=oi7unkbw2xjd9fz05dwhgj5q8&st=9rdjfgd5&dl=0

https://www.dropbox.com/scl/fi/vcctp9fxvnlmtx3kuzqty/Elvira.rar?rlkey=h2w4mmi6re6dyweyd9rvd17jr&st=fg76cxfk&dl=0

<link removed>

Can somebody try to make a blender plug-in or a Noesis plug-in

Thanks 🙂

Edited by DKDave
Full ISO link removed

  • Supporter

Here's code for decompression. You can decompress it with qbms.

//------------------------------------------------
//--- 010 Editor v14.0 Binary Template
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
// File Mask: 
//  ID Bytes: 
//   History: 
//------------------------------------------------
BigEndian();OutputPaneClear();

local uint32 i;

char SegsSign[4];
uint16 Unknown_0;
uint16 ChunkCount;
uint32 DecompressedSize;
uint32 FileSize;

struct
{
    uint16 ChunkCompSize;
    uint16 ChunkDecompSize; // if 0 = 65536
    uint32 ChunkOffset;
}ChunkToc[ChunkCount];

for (i=0; i < ChunkCount; i++)
{
    FSeek(ChunkToc[i].ChunkOffset - 1);
    struct
    {
        byte ChunkCompData[ChunkToc[i].ChunkCompSize];
    }ChunkData;
}

So here's decompressor. Now it should unpack both of them.

##############################
get BaseFileName basename
get FileSize asize
get FileExtension extension
comtype deflate

endian big
if FileExtension == "rsx"
	getdstring Dummy 0x8
	get SegsCount ushort
	getdstring Dummy 0xE
		
	for i = 0 < SegsCount
		get SegsCompressedSize[i] uint32
	next i
	
	for i = 0 < SegsCount
		savepos SegsBaseOffset
		idstring "segs"
		getdstring Dummy 0x2
		get ChunkCount ushort
		get TotalDecompressedSize uint32
		get FileSize uint32
		
		for j = 0 < ChunkCount
			get ChunkCompSize ushort
			get ChunkDecompressedSize ushort
			get ChunkOffset uint32
			xmath ChunkOffset "SegsBaseOffset + ChunkOffset - 1"
			
			append 0
			string Name p "%s.%s_d" BaseFileName FileExtension
			if ChunkDecompressedSize == 0
				clog Name ChunkOffset ChunkCompSize 65536
			else
				clog Name ChunkOffset ChunkCompSize ChunkDecompressedSize
			endif
		next j
		goto SegsBaseOffset
		getdstring Dummy SegsCompressedSize[i]
	next i
else
	idstring "segs"
	getdstring Dummy 0x2
	get ChunkCount ushort
	get TotalDecompressedSize uint32
	get FileSize uint32
	
	for i = 0 < ChunkCount
		get ChunkCompSize ushort
		get ChunkDecompressedSize ushort
		get ChunkOffset uint32
		math ChunkOffset - 1
		
		append 0
		string Name p "%s.%s_d" BaseFileName FileExtension
		if ChunkDecompressedSize == 0
			clog Name ChunkOffset ChunkCompSize 65536
		else
			clog Name ChunkOffset ChunkCompSize ChunkDecompressedSize
		endif
	next i
endif

Edited by h3x3r

  • Supporter

Thanks, works for .chl files. For .rsx the first 32 bytes need to be deleted, tested with Elvira_Swimsiut.rsx, but it has another segs block... texture obviously

mesh_viewer_4Sc2YzZDbw.pngmesh_viewer_FnWwWUjRXY.png

edit: the model from from Elvira.rsx, decompressed, looks a bit strange:

mesh_viewer_HppyuAwKzm.png

Edited by shak-otay

  • Supporter
On 7/11/2026 at 5:02 PM, shak-otay said:

For .rsx the first 32 bytes need to be deleted

I wouldn't recomend that because it's important. And thanks for telling me that. Looks like those 32 bytes holds info about segs count and offsets.

EDiT: Updated previous post with bms script. Now it decompress rsx.

But i think that segs should be joined. I output them as separate.

Edited by h3x3r

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.