Author Topic: MIPS assembly language tools for Linux?  (Read 4030 times)

MysticLord

  • *
  • Posts: 79
    • View Profile
MIPS assembly language tools for Linux?
« on: 2017-08-07 12:24:23 »
What assemblers and disassemblers exist for Linux?

I think that binutils has what I need, but I'm unsure how to use them.

Maki

  • 0xBAADF00D
  • *
  • Posts: 624
  • 0xCCCCCCCC
    • View Profile
Re: MIPS assembly language tools for Linux?
« Reply #1 on: 2017-08-07 15:18:50 »
IDA through WINE
or I believe there's native Linux version in non-free edition.

MysticLord

  • *
  • Posts: 79
    • View Profile
Re: MIPS assembly language tools for Linux?
« Reply #2 on: 2017-08-07 17:26:40 »
Any advice on writing an assembler?  Are any existing MIPS assemblers open source?

Also I'm curious, but how would one attach a debugger/memory viewer to an emulator?
« Last Edit: 2017-08-07 17:29:26 by Wizard »

Maki

  • 0xBAADF00D
  • *
  • Posts: 624
  • 0xCCCCCCCC
    • View Profile
Re: MIPS assembly language tools for Linux?
« Reply #3 on: 2017-08-10 11:18:28 »
Also I'm curious, but how would one attach a debugger/memory viewer to an emulator?

You need special emulator with debugger built-in like no$psx or ePSXe debug edition.

MysticLord

  • *
  • Posts: 79
    • View Profile
Re: MIPS assembly language tools for Linux?
« Reply #4 on: 2017-08-10 14:46:45 »
For some reason half the posts in this thread were deleted.  I haven't tracked down the OP yet to determine why, but it's on my todo list.

https://www.romhacking.net/forum/index.php?topic=18596.msg266131#msg266131

Quote
How do you find these LBA tables? Well you need to run pSX with logging enabled and you need to log all CDROM IO. now just play the game as normal and save the log. Any time you see a line in the log such as

[015b009c] cdrom: setloc 00000000:00000002:00000005

it will be closely followed by lines such as these
[015b00a4] cdrom: read byte 07801800 = 09 (800584dc)
[015b00a4] cdrom: write byte 07801800 = 01 (800584ec)

Those address in the brackets
 (800584dc)
 (800584ec)
Are a part of the function "setloc". mark the entry point of that function in your disassembly.

There are three functions listed in the bit of code listed above - cdrom: setloc, read byte, and write byte.  Are they built into the PS1, or are they implemented via other assembly instructions?

If they are built in, where can I find more info about them and other functions?

You need special emulator with debugger built-in like no$psx or ePSXe debug edition.
From what I understand, emulator memory can be accessed using something like Cheat Engine or a hex editor that can view and edit processes.  How could I view memory on an emulator without a debugger?