Release New PSX4Pandora video


Vorporeal said:
One thing to consider is having a minimal user interface, but working together with Aimless_E so that it works well with ZiB, the emulator frontend that he's writing. If we actually can develop a frontend that works well with many emulators (and has support of the emulator developers), I feel like that might be a great solution (and potentially preferable to each emulator having its own, different interface).

Meh, if it works good, i would definately not mind if it has it's own icon (executable) and interface. That's the way i would install it anyway. But integration as an option is never bad ofcourse.

Anyway, Great to hear that it's still an active project. My favorite actually, i never owned a ps1 but played it a lot with friends :)
 
I'd love to see CSO format support for this. Even though the CSO format was originally designed for compressing PSP rips, theres no reason why it couldn't be applied to any ISO9660 image.

Its really easy to read and write. Basically each sector (1KB) is compressed individually using zlib (At whichever level the user chooses), and a table at the front of the file dictates which sector is in which location and what length it is.

I implemented a compressor for this format in UMDumper (For those who don't know, I'm an active PSP homebrew dev and this is my main project). So far there hasn't been any real documentation for the format but I would be happy to provide it. I think that the CSO format offers great compression with a very low processing overhead (The PSP still does it faster than it can read a UMD disk)

Code:
/*
	complessed ISO(9660) header format
*/
typedef struct ciso_header
{
	unsigned char magic[4];			/* +00 : 'C','I','S','O'                 */
	unsigned long header_size;		/* +04 : header size (==0x18)            */
	unsigned long long total_bytes;	/* +08 : number of original data size    */
	unsigned long block_size;		/* +10 : number of compressed block size */
	unsigned char ver;				/* +14 : version 01                      */
	unsigned char align;			/* +15 : align of index value            */
	unsigned char rsv_06[2];		/* +16 : reserved                        */
	#if 0
	// INDEX BLOCK
		unsigned int index[0];			/* +18 : block[0] index                  */
		unsigned int index[1];			/* +1C : block[1] index                  */
				 :
				 :
		unsigned int index[last];		/* +?? : block[last]                     */
		unsigned int index[last+1];		/* +?? : end of last data point          */
	// DATA BLOCK
		unsigned char data[];			/* +?? : compressed or plain sector data 
set MSB to 1 if compressed. */
	#endif
}CISO_H;

Thats pretty much all one needs to know really, that and...

Code:
file_pos_sector[n]  = (index[n]&0x7fffffff) << CISO_H.align
file_size_sector[n] = ( (index[n+1]&0x7fffffff) << CISO_H.align) - file_pos_sector[n]

To read the thing afterwards

Thoughts?
 
Back
Top