Code Designer[MIPS Assembler/Disassembler]
#1
Project Details

State
Almost ready for its first release.

Github link
https://github.com/TylerDev905/CodeDesigner

Code designer is a tool that can be used to assemble and disassemble MIPS32 assembly code into hexadecimal. This means that you can use this tool to create cheat codes for the playstation 2. Most if not all MIPS assembly instructions are supported as well as code designer syntax. Code designer syntax is a small set of commands that can make writing assembly much easier.

Features
  • Syntax highlighing of both the assembler and disassembler views
  • Supports EE, COP0, and C0P1
  • Code designer syntax
  • The parser can detail errors down to the argument
  • Single and multiline comments
  • Multiple projects can be open at a time.

Code designer syntax
Address
will tell the assembler, the the address it should start counting from. Labels are not supported with the address command.
Code:
address  $000a0000

Labels
can be used to define an address with a human readable string. Labels can then be used with some operations and some Code designer commands. 
Code:
label: //a label can be used to set an address. 
:targetlabel //target labels can be used to tell an instruction or command to use the labels address.

label: 
addiu a0, a0, $0001 
beq zero, zero, :label //will calculate the offet for the branch nop j :label <--will use the labels address for the jump operation

Setreg
will set a registers value to the word or label supplied. 
Code:
setreg a0, $12345678 
setreg a0, :label

Call
will pass the registers given and move them into argument registers then it will perform a jal instruction to the address or label specified. 
Code:
call $12345678(s0, s1, s2, s3) 
call :label(s0, s1, s2, s3)

Hexcode
will place a word at the current address of the assembler. The word can be defined in hex or it can come from a labels address.
Code:
hexcode $12345678 
hexcode :label

Print
will take a string and convert it into hexadecimal
Code:
print "hello world"

ToDO
  • Open/Saving for both the assembler and disassembler
  • Intellisense
  • Read/Write to emulator memory
  • Error markers for the assembler
  • import command for the assembler
  • Sharing labels and comments between windows
  • String dumper
  • Disassembler address formatting for .Byte .Halfword .Word .Float .Double .Quad
  • Hex search features.
  • Source search features
[Image: attachment.php?attachmentid=3505&d=1453869667]

[Image: attachment.php?attachmentid=3507&d=1453870222]

[Image: attachment.php?attachmentid=3508&d=1453870231]

Sponsored links

#2
Nice job. Don't know why you open a new thread each time instead of focusing on one thread and just updating it.

By the way, gamehacking.org attachments only shows to members of that site.
#3
The most recent post in this thread is more than 8 months old. Please create a new thread and refrain from posting in threads older than 8 months in the future. Please also review the forum rules. Thank you.
CPU : AMD Ryzen 7 3800X
Mobo : Asus PRIME B450-PLUS
GPU : NVIDIA GeForce RTX 3070
RAM : 16 Go




Users browsing this thread: 1 Guest(s)