News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - PhOeNiX

Pages: 1 [2] 3 4 5
The only tool out there which is really able to properly recreate PSX ISO images, including XA streams is PIxel's cd-tool. Albeit complex to use and to find on the web.

Just run your PSX BIOS without inserting the disk. Once the first boot audio finishes, insert your disk without turning off your PSX and wait for the black logo to show up.

Programming / Re: Half-assed disc image input and output
« on: September 01, 2015, 05:02:06 am »
This is what you need

The most important one would be the "rebuildErrorCorrection" method.

Programming / Re: Half-assed disc image input and output
« on: August 30, 2015, 04:58:14 am »
This pretty much depends on the kind of data you are dealing with. Mind that sharing data between classes like the GUI one and another one is not circular dependency.

Circular dependency happens when a class holds a reference to another class and vice versa. That is, the GUI class holds a reference of class A and class A holds a reference of the GUI class.

Programming / Re: Half-assed disc image input and output
« on: August 29, 2015, 02:54:24 pm »
A lot of method parameters is usually a sign that some refactoring of your code will be needed. One solution would be to gather most of the parameters that you need in a separate class representing something meaningful like a file entry.
The class Entry might have a "name",  a "data struct" and a "length" for example.

Code: [Select]
public class Entry{
  private String name;
  private int length;
  private byte[] data;
  public Entry(String name, int length, byte[] data){;
  public String getName(){ return name; }
  public int getLength(){ return length; }
  public byte[] getDataStruct(){ return data; }

The you would pass a list of entries to your method.

Regarding the rest of data in the sectors. If you are dealing with MODE2 images, you will need at least to recalculate ECC/EDC integrity codes for each sector, in order for the iso image to work on hardware.

Newcomer's Board / Re: PSX Imager
« on: August 29, 2015, 08:09:42 am »
In the meanwhile you can try this

It allows you to change the LBA offset of the file you want to replace with another one. This way when replacing the file with cdmage, it will write the file to the new location.

You can also specify the new size of your file. You should find some free location in your iso file and change your file's LBA to that location.

Newcomer's Board / Re: PSX Imager
« on: August 28, 2015, 11:27:01 am »
You can use to extract and replace files in a psx cd image
and as a command line tool for replacing files.

Rebuilding the ISO image is needed only when files change their original size.  Since many games use an internal file table that 99% of the time has to be modified to account for file sizes changes,
just rebuild the ISO image is not enough.

Anyway, it seems this tool is linux only. Unfortunatelly, I have not a linux environment settled up at the moment.

Hi, sorry for necroposting, but I though you were interested on this:

I have been working on NUT files these days and all nut files I tried so far can now be viewed and exported to png with rainbow.
As for now, only "Open" and "Export" features are implemented: it remains to understand one last palette format and "Save" and "Import" features will be added as well.

The current development build can be downloaded at

The main problem I see in your code is this:
Code: [Select]
if (zipEntry.getName() == "tempItemData")
Java's "==" operator performs a "pointer" equality check. In order to correctly compare two strings, you must use the "equals" method instead.
Code: [Select]
I did not check the rest of the code, but as Kaioshin already said: everything you need to known is in the official javadoc. Just read it.

How big depends on your ram size. Otherwise, you don't need to divide it evenly, just construct a fixed size byte array. The method "read" of zis will return the number of bytes read.

You can iterate by calling "read" until it returns a negative number. There are plenty of tutorials about this online.

Check this for example:

You need to iterate over the ZipEntries of the ZipInputStream.

Something like this:
Code: [Select]
ZipEntry entry;
//if we could gather the next zip entry, now, the zip input stream will allow reading the data associated to the current entry (i.e. the current file)...
// so just call
// you may call entry.getName() and entry.getSize() to get the file name of the current file and its size.

So, you should iterate the zip entries, check with getName() whether it is the entry you want to read. Then, (assuming the file is not too big), create a byte array of length equal to entry.getSize(),
read with the file content to the byte array, and finally write it to the output stream.

Personal Projects / Re: Suikoden German Translation PSX
« on: July 22, 2015, 04:45:52 am »
Hi there,
me and my collaborators have been working on this for an italian translation of Suikoden.
We managed to properly change this graphics as well. If you want, we can send you the PSD template. This way your work on this should become easier.

Beware that it iwll still be a bit difficult to finish the job, but I think it is better than nothing.

Programming / Re: PGD file manipulation (PSP)
« on: March 03, 2015, 09:56:15 am »
If I recall well, there is no tool available that is able to re-encrypt pgd files.
But as far as I understand, it uses AES encryption, so, there should definitely be a way to adapt current DEcrypting tools
to also encrypt back your files..
The most documented and well written code I am aware of, for decrypting PGD files can be found at

Function decrypt_pgd in file is what you need to check.

Actual decrypting should take place in file

Programming / Re: PS1 (MIPS) random number generation?
« on: February 13, 2015, 01:37:41 pm »
Shouldn't the game have the C standard function "rand" included?

Newcomer's Board / Re: PSX VRAM - Compressed graphics
« on: February 13, 2015, 01:21:44 pm »
Using the VRAM will require the use of an emulator that can break during a DMA transfer. I am not aware of such emulators (maybe no$psx?). The best way is to dump the RAM instead, in search of the decompressed graphics.
Beware that the game may remove the decompressed graphics as soon as it gets transferred to VRAM.

Programming / Re: Command-line IPS generator for Windows?
« on: January 05, 2015, 11:01:42 am »

This one runs perfectly fine on my Windows 8 64-bit machine.

Altough the description of the old DOS version says it is a patching utility, it is actually able to create IPS patches.

Newcomer's Board / Re: How to export files from PS2 ISO? :D
« on: October 23, 2014, 06:58:27 am »
For editing PS2 ISO's, you should use either CDMage (the one with the import function) or Apache 3. Apache 3 can be found on this site at

CDMage can be found here

October 23, 2014, 06:59:55 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Both tools allow to reinsert files in the ISO, given that you don't change the size of the file you are going to insert. Rebuilding the whole ISO will require some more magic. Moreover, many games, do not use the standard ISO9660 file system to access files, thus, just rebuilding the ISO might not work properly.

ROM Hacking Discussion / Re: PSP image format using "xt." magic
« on: September 26, 2014, 05:47:23 am »
Well, I would just need some more xt files to understand better the header format. Maybe, via PM?

ROM Hacking Discussion / Re: PSP image format using "xt." magic
« on: September 25, 2014, 10:16:13 am »
If the format is not too complex, I may try to implement it into Rainbow, if you want: But, it would be better to have some other example files, to understand what the header bytes mean.

Hopefully that was easy to understand and I'm not telling you something you already knew...

Yes, I already knew how to reencode the image. I was mainly talking about the fact that it would require to write a custom tool, in order to encode the image back to this format. Since I don't remember tools like tile molester to support such an encoding with multiple palettes.

Pages: 1 [2] 3 4 5