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.
Recommend me a disassembler (or advice on making one)
-
Administrator Verified
- Admin / PSXDEV
- Posts: 2686
- Joined: Dec 31, 2012
- I am a: Shadow
- PlayStation Model: H2000/5502
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.
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.
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.
-
Administrator Verified
- Admin / PSXDEV
- Posts: 2686
- Joined: Dec 31, 2012
- I am a: Shadow
- PlayStation Model: H2000/5502
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.
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.
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?
-
Administrator Verified
- Admin / PSXDEV
- Posts: 2686
- Joined: Dec 31, 2012
- I am a: Shadow
- PlayStation Model: H2000/5502
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.
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.
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.
Who is online
Users browsing this forum: No registered users and 2 guests