Project Details
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
Code designer syntax
Address
will tell the assembler, the the address it should start counting from. Labels are not supported with the address command.
Labels
Should be lowercase(this may change soon)
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.
Setreg
will set a registers value to the word or label supplied.
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.
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.
Print
will take a string and convert it into hexadecimal
Bugs
Loading a dump
Loading source code





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 highlitghing 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
Should be lowercase(this may change soon)
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
will set a registers value to the word or label supplied.
Code:
setreg a0, $12345678 setreg a0, :label
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)
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
will take a string and convert it into hexadecimal
Code:
print "hello world"
- Branches that contain a label must be lowercase
- Disassembling some branches results in a 5 digit hex value
Loading a dump
- File > Open > select .bin memory dump
- Labels should be named the same as the dump but with a .txt extension. This file should be in regular code format with only on codes. remove jokers
Loading source code
- File > Open > select .asm source






Comment