PSP decompiler

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Griever
Posts: 6
Joined: Sat Jun 20, 2009 10:07 pm

Post by Griever »

Didn't anybody think about porting decomiler to windows? Just like it's done with prxtool. Much of potential users actually use abominable win32. Sad but true. And I guess, it's actually not very hard to compile it under gnu win compiler.
[wl]
Posts: 13
Joined: Fri May 05, 2006 2:16 am

Post by [wl] »

VERY slow git...
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

Griever, you are right it is easy to make a win version, I built it the last time git was updated and source changes are minimal (I corrected a single crash-causing-on-exit problem in main if I remember right, kudos to the TC/Author(s) on a great program... with portability no less!):
pspdecompiler_2009-05-20_win32.zip

binary and source ~ with minimal changes included ~ if anyone else stuck on win wants to see what this thing is capable of (note to newbs, it's not magic and doesn't do *everything* for you, you will still have to be able to check it's work against disassembly.)

Used msys with mingw installed, on a (bleh) vista x64 machine no less. If I can build it on here, it must not be that hard.

The "hardest" part really is tracking down libexpat.a/h for windows, I mentioned where to get it (prebuilt) in build txt (edit:/fixed) Probably a better, more maintainable way of doing win builds but for whatever reason msys wasn't co-operating with me on self-searching usr paths for libs/headers that day.
Last edited by cory1492 on Wed Jun 24, 2009 10:15 am, edited 1 time in total.
[wl]
Posts: 13
Joined: Fri May 05, 2006 2:16 am

Post by [wl] »

is it possible to do the same for usual BOOT.BIN files from UMD?
kralyk
Posts: 114
Joined: Sun Apr 06, 2008 8:18 pm
Location: Czech Republic, central EU

Post by kralyk »

Griever: I compiled without any problems with mingw. I only needed to install expat.

wl: Not sure, it crashed when I tried one umd... =/
...sorry for my english...
[wl]
Posts: 13
Joined: Fri May 05, 2006 2:16 am

Post by [wl] »

i think it's because of elf loader, but there is many "proper" loaders included in psp emulators, i.e. Potemkin or pspplayer
ne0h
Posts: 386
Joined: Thu Feb 21, 2008 2:15 am

Post by ne0h »

When I try to compile the src I've: "_spawnvp: Invalid argument".
I've expat installed!
ne0h
Posts: 386
Joined: Thu Feb 21, 2008 2:15 am

Post by ne0h »

I've some problems with a "jr", the code show a empty switch...
I'm using the version posted by cory1492 (maybe not the lastest) , I hope that this problem will be fixed soon!
Anyway, amazing work man!
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

The one I posted is based on the current public source, compiled likely the same day hnaves last updated it.

I updated the original file now that I've had a chance to review the license for libexpat, there is now a link to a much simpler zip with prebuilt win32 expat binary in it instead of the pre-built dll packages.

BOOT.BIN (when it isn't just NULL'ed or a phony) or decrypted EBOOT.BIN should be static ELF files, I think psp decompiler currently only takes care of prx/relocateable elfs? (see the tail of this discussion)
[wl]
Posts: 13
Joined: Fri May 05, 2006 2:16 am

Post by [wl] »

it's strange, but it not work properly when i compile sources under MVS2008.

first, in function
void propagate_constants (struct subroutine *sub); //file constants.c

variable "struct ssavar temp" is not fully initialized.

second, if i use -n option, i've got unhandled exception in function

void destroy_hashtable (void *ptr, void *arg); //file hash.c

at: free (ht->table);
m0skit0
Posts: 191
Joined: Tue Jun 02, 2009 8:58 pm

Post by m0skit0 »

This is an amazing project. I hope this gets continued, very very very good job. This will ease a lot PSP hacking. Congrats and keep it growing!!
The Incredible Bill Gates wrote:The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers.
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

[wl] wrote:it's strange, but it not work properly when i compile sources under MVS2008.
You will have to port the code, or set the right flags, or instruct MVS to use the Gnu C++ compiler instead of it's internal one. That kind of porting generally takes away portability, better to use msys with mingw (or cygwin I guess, though that will rely on cygwin dlls) to build with Gnu tools just like is done on the native build platform unless you want to either port it to MVS or keep mentioning problems with building it.
Griever
Posts: 6
Joined: Sat Jun 20, 2009 10:07 pm

Post by Griever »

Thanks for win build issue answers.
The only problem I have now: pspdecompiler does not recognize game's eboots, though prxtool disasembles all of them ok and creates elfs, which are entirely recognized by IDA. I checked out "Chessmaster The Art of Learning" and "Archer Maclean's Mercury" EBOOT.BINs.
ne0h
Posts: 386
Joined: Thu Feb 21, 2008 2:15 am

Post by ne0h »

ne0h wrote:I've some problems with a "jr", the code show a empty switch...
I'm using the version posted by cory1492 (maybe not the lastest) , I hope that this problem will be fixed soon!
Anyway, amazing work man!
I've reversed the code and I've seen that the switch are correct but you messed up the arguments of the switch, I think it's a bug...
This is a part of code:

Code: Select all

var6 = &#40;&#40;int *&#41;&#40;&#40;var5 << 0x00000002&#41; + 0x00000AB0&#41;&#41;&#91;0&#93;;

                        switch&#40;&#41;
                        &#123;
                            case 0&#58;
                                var4 = 0;
                                        goto label35;
                            case 1&#58;
                                &#40;&#40;int *&#41;var2&#41;&#91;10&#93; = var4;
                                        goto label32;
                            case 2&#58;
                                var4 = &#40;&#40;int *&#41;var2&#41;&#91;10&#93;;
                                        goto label32;
                            case 3&#58;
&#91;...&#93;
Probably you messed up the breaks at the end of each "case"...
victorprosa
Posts: 37
Joined: Wed Jan 14, 2009 5:53 am

Post by victorprosa »

Just a question...

How the makefile should look like when re-compiling the prx?

I mean, libraries, etc, cause it is supposed to have most libraries included, but i had problems when creating a makefile...
Dariusc123456
Posts: 388
Joined: Tue Aug 12, 2008 12:46 am

Post by Dariusc123456 »

victorprosa wrote:Just a question...

How the makefile should look like when re-compiling the prx?

I mean, libraries, etc, cause it is supposed to have most libraries included, but i had problems when creating a makefile...
Since this decompiler isnt fully finish, I dont think you should be worried about compiling it back into a prx.
PSHN - Playstation Hacking Network
PSX/PS1 - HACK - Game Shark
PS2 - HACK - Swap
PSP - HACK - Pandora
PS3 - ?
slasher2661996
Posts: 91
Joined: Sun Feb 22, 2009 8:32 am
Location: Melbourne Australia ZOMG

Post by slasher2661996 »

victorprosa wrote:Just a question...

How the makefile should look like when re-compiling the prx?

I mean, libraries, etc, cause it is supposed to have most libraries included, but i had problems when creating a makefile...
Trial & Error.
kralyk
Posts: 114
Joined: Sun Apr 06, 2008 8:18 pm
Location: Czech Republic, central EU

Post by kralyk »

Hi,
hows this project going? Any news? =)
...sorry for my english...
hnaves
Posts: 30
Joined: Tue Feb 03, 2009 3:01 am

Post by hnaves »

Hi,

I am very busy at the moment, and I will not be able to continue the development of this project during the next two months. I have a lot of plans (including FPU support) but have no time :-(
[wl]
Posts: 13
Joined: Fri May 05, 2006 2:16 am

Post by [wl] »

really bad news :(
i tryed to decompile BOOT.BIN, with small success, only 2-3 functions decompiled, looks like the app decompiles GP and exports only? how do u think, it's possible to add arbitrary address to command line instead GP, because GP in boot.bin just start main thread and exit
hlide
Posts: 739
Joined: Sun Sep 10, 2006 2:31 am

Post by hlide »

[wl] wrote:really bad news :(
i tryed to decompile BOOT.BIN, with small success, only 2-3 functions decompiled, looks like the app decompiles GP and exports only? how do u think, it's possible to add arbitrary address to command line instead GP, because GP in boot.bin just start main thread and exit
!? i cannot grab any of your words. Could you make some efforts to make yourself understandable ?

Some games use a small BOOT.BIN to load the true game executable as a PRX. If you want to decompile the right thing, you'll need to get the right PRX and decompile it. Isn't that simple ?

EDIT: and some UMD may also present a fake BOOT.BIN, so you need to look for EBOOT.BIN which is normally encrypted.
dark_hex
Posts: 18
Joined: Wed Dec 02, 2009 3:00 am

Post by dark_hex »

Someone can compile the last version and give me the link.
sauron_le_noir
Posts: 203
Joined: Sat Jul 05, 2008 8:03 am

Post by sauron_le_noir »

I have try to compile it against openwatom it generate code for windows,linux,dos and os/2 i haven"t found the include expat.he he is not present in the win32 port given by cory1492

expat.h is missing

Code: Select all

&#91;f731@port39 source&#93;$ wcl386 *.c
Open Watcom C/C++32 Compile and Link Utility Version 1.8
Portions Copyright &#40;c&#41; 1988-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
       wcc386 abi.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
abi.c&#58; 12 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 11
       wcc386 allefast.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
allefast.c&#40;700&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;701&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;702&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;703&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;704&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;705&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;706&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;707&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;708&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;709&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;710&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;711&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;712&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;713&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;714&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;715&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;716&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;717&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;718&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;719&#41;&#58; Error! E1175&#58; Too many initializers
allefast.c&#40;720&#41;&#58; Error! E1147&#58; Too many errors&#58; compilation aborted
Error&#58; Compiler returned a bad status compiling 'allefast.c'
       wcc386 allegrex.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
allegrex.c&#58; 1407 lines, included 2717, 0 warnings, 0 errors
Code size&#58; 3199
       wcc386 alloc.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
alloc.c&#58; 124 lines, included 1406, 0 warnings, 0 errors
Code size&#58; 353
       wcc386 analyser.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
analyser.c&#58; 159 lines, included 2860, 0 warnings, 0 errors
Code size&#58; 868
       wcc386 cfg.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
cfg.c&#58; 237 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 1160
       wcc386 constants.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
constants.c&#58; 195 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 912
       wcc386 dataflow.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
dataflow.c&#58; 151 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 756
       wcc386 decoder.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
decoder.c&#58; 173 lines, included 2383, 0 warnings, 0 errors
Code size&#58; 861
       wcc386 graph.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
graph.c&#58; 235 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 1027
       wcc386 hash.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
hash.c&#58; 311 lines, included 1994, 0 warnings, 0 errors
Code size&#58; 1290
       wcc386 lists.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
lists.c&#58; 248 lines, included 1169, 0 warnings, 0 errors
Code size&#58; 906
       wcc386 liveness.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
liveness.c&#58; 176 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 1217
       wcc386 main.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
main.c&#58; 136 lines, included 3860, 0 warnings, 0 errors
Code size&#58; 717
       wcc386 module.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
module.c&#58; 536 lines, included 1664, 0 warnings, 0 errors
Code size&#58; 3980
       wcc386 nids.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
nids.c&#40;8&#41;&#58; Error! E1055&#58; Unable to open 'expat.h'
nids.c&#40;192&#41;&#58; Error! E1011&#58; Symbol 'XML_Parser' has not been declared
nids.c&#40;192&#41;&#58; Error! E1009&#58; Expecting ';' but found 'p'
nids.c&#40;193&#41;&#58; Error! E1063&#58; Missing operand
nids.c&#40;193&#41;&#58; Warning! W111&#58; Meaningless use of an expression
nids.c&#40;193&#41;&#58; Error! E1009&#58; Expecting ';' but found 'struct'
nids.c&#40;193&#41;&#58; Error! E1011&#58; Symbol 'xml_data' has not been declared
nids.c&#40;193&#41;&#58; Error! E1009&#58; Expecting ';' but found 'data'
nids.c&#40;194&#41;&#58; Error! E1058&#58; Cannot use typedef 'size_t' as a variable
nids.c&#40;194&#41;&#58; Error! E1009&#58; Expecting ';' but found 'size'
nids.c&#40;195&#41;&#58; Error! E1077&#58; Missing '&#125;'
nids.c&#40;195&#41;&#58; Warning! W107&#58; Missing return value for function 'nids_load'
nids.c&#40;197&#41;&#58; Warning! W132&#58; No storage class or type specified
nids.c&#40;197&#41;&#58; Error! E1129&#58; Type does not agree with previous definition of 'buf'
nids.c&#40;197&#41;&#58; Note! I2002&#58; 'buf' defined in&#58; nids.c&#40;195&#41;
nids.c&#40;197&#41;&#58; Error! E1011&#58; Symbol 'xmlpath' has not been declared
nids.c&#40;197&#41;&#58; Warning! W102&#58; Type mismatch &#40;warning&#41;
nids.c&#40;197&#41;&#58; Note! I2003&#58; source conversion type is 'int '
nids.c&#40;197&#41;&#58; Note! I2004&#58; target conversion type is 'char const *'
nids.c&#40;197&#41;&#58; Error! E1011&#58; Symbol 'size' has not been declared
nids.c&#40;197&#41;&#58; Warning! E1181&#58; Parameter 2, sign specifier mismatch
nids.c&#40;197&#41;&#58; Note! I2003&#58; source conversion type is 'int *'
nids.c&#40;197&#41;&#58; Note! I2004&#58; target conversion type is 'unsigned int *'
nids.c&#40;197&#41;&#58; Note! I2002&#58; 'read_file' defined in&#58; utils.h&#40;22&#41;
nids.c&#40;197&#41;&#58; Warning! W102&#58; Type mismatch &#40;warning&#41;
nids.c&#40;197&#41;&#58; Note! I2003&#58; source conversion type is 'void *'
nids.c&#40;197&#41;&#58; Note! I2004&#58; target conversion type is 'int '
nids.c&#40;197&#41;&#58; Error! E1054&#58; Expression must be constant
nids.c&#40;198&#41;&#58; Error! E1099&#58; Statement must be inside function. Probable cause&#58; missing &#123;
nids.c&#58; 303 lines, included 2099, 6 warnings, 15 errors
Error&#58; Compiler returned a bad status compiling 'nids.c'
       wcc386 operations.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
operations.c&#58; 615 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 4686
       wcc386 outcode.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
outcode.c&#58; 317 lines, included 2791, 0 warnings, 0 errors
Code size&#58; 2036
       wcc386 outgraph.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
outgraph.c&#58; 240 lines, included 2663, 0 warnings, 0 errors
Code size&#58; 1670
       wcc386 output.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
output.c&#58; 781 lines, included 3521, 0 warnings, 0 errors
Code size&#58; 6247
       wcc386 prx.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
prx.c&#58; 506 lines, included 1687, 0 warnings, 0 errors
Code size&#58; 2917
       wcc386 relocs.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
relocs.c&#58; 622 lines, included 1664, 0 warnings, 0 errors
Code size&#58; 4168
       wcc386 ssa.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
ssa.c&#58; 273 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 1629
       wcc386 structures.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
structures.c&#58; 376 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 1953
       wcc386 subroutines.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
subroutines.c&#58; 402 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 2160
       wcc386 switches.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
switches.c&#58; 137 lines, included 1998, 0 warnings, 0 errors
Code size&#58; 777
       wcc386 utils.c 
Open Watcom C32 Optimizing Compiler Version 1.8
Portions Copyright &#40;c&#41; 1984-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http&#58;//www.openwatcom.org/ for details.
utils.c&#58; 129 lines, included 2151, 0 warnings, 0 errors
Code size&#58; 751
cory1492
Posts: 216
Joined: Fri Dec 10, 2004 1:49 pm

Post by cory1492 »

expat:
http://expat.sourceforge.net/
I believe I used a prebuilt bin for win32, like expat-win32bin-2.0.1.exe, to compile under msys/mingw.
willow :--)
Posts: 107
Joined: Sat Jan 13, 2007 11:50 am

Post by willow :--) »

Is there some central repository where people post their reverted C code? Assuming someone starts working on reversing a prx, it sounds like a waste of effort if somebody else already reverted it...

Or is it the kind of stuff people are reluctant to share? Or is it illegal maybe?

Also, I'm quite new with that kind of stuff, but what does it mean when the decompiler finds a function that does nothing?
here's a random example from a file in firmware 6.xx:

Code: Select all

/**
 * Subroutine at address 0x000001B8
 */
void sub_001B8 &#40;&#41;
&#123;
  return;
&#125;
Would that be a bug in the decompiler? A bug in the plugin? Something else?
phobox
Posts: 127
Joined: Mon Mar 24, 2008 6:22 pm

Post by phobox »

check the asm.. if pspdecompiler gave you that result the asm shouldn't be big.
Pspdecompiler is not working properly with return values...
Ciao! from Italy
willow :--)
Posts: 107
Joined: Sat Jan 13, 2007 11:50 am

Post by willow :--) »

Thanks, I'll check the asm file. (Note, other functions in the file actually contain things, but a few of them are, like this one, empty)
cualquiercosa327
Posts: 5
Joined: Wed Nov 25, 2009 2:52 am

Post by cualquiercosa327 »

hello.Thanks for this tool.
I had found two similar tool (rec and boomerang)
http://www.backerstreet.com/rec/rec.htm

http://boomerang.sourceforge.net/

The first seem also "undestand" MIPS R3000 code.
the problem it is not open source,but maybe could be some kind of coperation
Post Reply