Recommend me a disassembler (or advice on making one)

Post a topic about yourself to let others know your skills, hobbies, etc.
Post Reply
Misteek
Curious PSXDEV User
Curious PSXDEV User
Posts: 15
Joined: Aug 09, 2017

Recommend me a disassembler (or advice on making one)

Post by Misteek » January 2nd, 2021, 10:31 pm

I need a disassembler that I can feed a file and which generates armips compatible MIPS r3000a assembly code.

Naive disassembly - treating everything as assembly and ignoring text and data - is fine with me, though if it has options to do it intelligently that's great.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » January 5th, 2021, 10:35 pm

IDA or Ghidra.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

Misteek
Curious PSXDEV User
Curious PSXDEV User
Posts: 15
Joined: Aug 09, 2017

Post by Misteek » January 6th, 2021, 10:52 am

Shadow wrote: January 5th, 2021, 10:35 pmIDA or Ghidra.
Compatible with Armips?
https://github.com/Kingcom/armips

Since I made this thread (and one at RHDN), I've accepted that I'll probably need to do a deep dive in the source code of one of the disassemblers at RHDN that has most of the features I need, and alter the output so it can be assembled with Armips.

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » January 9th, 2021, 5:34 am

ARMIPS assembles MIPS code soooooooooooo yeah.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

Misteek
Curious PSXDEV User
Curious PSXDEV User
Posts: 15
Joined: Aug 09, 2017

Post by Misteek » January 9th, 2021, 11:56 am

Shadow wrote: January 9th, 2021, 5:34 am ARMIPS assembles MIPS code soooooooooooo yeah.
Looking at this screencap of Munch, it uses noop for no operation, whereas armips uses nop.

Granted "noop" to "nop" is literally just a Find/Replace in a text editor - and about as simple with terminal/python scripts - other things like the register syntax and of course other opcodes may vary so I'd rather have something that I know will work than do all the grunt work to find they're not compatible.

Meanwhile infval clearly isn't like the assembly I see in the psxfin debugger, it says it's "most compatible with the PSIG (PlayStation instructions generator)", and along with that throws an error when I try to disassemble BATTLE.OUT for Saga Frontier.

Am I being an asshole, acting autistic, posting cringe, or being a bother when I want to know what tools work best with one another when many of them are obviously not compatible?

Do you guys just not know about this and aren't willing to say so for some reason, and are waiting for someone like me to do the work and post my results?

User avatar
Shadow
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » January 11th, 2021, 9:08 pm

But at the low level, 'noop' or 'nop' will always translate to the same opcode that the CPU can understand in binary. The assembler will always spit out the same machine code for MIPS so any decompiler will still understand it.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

Misteek
Curious PSXDEV User
Curious PSXDEV User
Posts: 15
Joined: Aug 09, 2017

Post by Misteek » January 12th, 2021, 7:33 pm

True, however I'm talking about taking the output from a disassembler, manipulating it with python scripts to achieve my goals, and then feeding it to the Armips assembler. If the syntax of the disassembler output isn't accepted as valid input by Armips, I'm SOL and need to write more python scripts to massage it into a form the assembler will accept.

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests