Register - Login
Views: 95172386
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
09-21-18 04:10:20 AM

Jul - SM64 Hacking (Archive) - CajeASM - MIPS R4300i Assembler for N64 New poll - New thread - New reply
Next newer thread | Next older thread
Cajetan
Member
Level: 20


Posts: 71/86
EXP: 40686
For next: 1753

Since: 08-06-11

From: Binary

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 02-21-15 08:36:34 AM (last edited by Cajetan at 05-11-15 04:46:50 PM) Link | Quote
CajeASM - A MIPS R4300i Assembler
CajeASM is, as the title states, a MIPS R4300i Assembler and soon a PowerPC Assembler for GC and Wii. If you aren't aware yet, what exactly "Assembly" is, let me sum it up for you:

Assembly is basically a low-level language. With assembly we give the game or to be more specific the CPU "commands" to do something. That could be a very simple task like adding 1 and 1 or a more complex task like calling a subroutine(or better known as function) and passing arguments.

Download Link:
http://origami64.net/attachment.php?aid=73

To assemble something in CajeASM, just watch this video. It shows a sample ASM Code assembled to a SM64 ROM.

Tutorials:
SM64 Hacking - CajeASM : How to assemble an ASM File to your ROM

If you know assembly, you can do a lot of nice stuff.

Examples:

FLUDD by Kazeshin(aka Kaze):

(Full Video: FLUDD)

Shop Guy by Tarek701/Cajetan (aka me):

(Full Video + Download Link: Shop Guy v0.2)

More Objects Patch by Kazeshin(aka Kaze):

(Full Video + Download Link: More Objects Patch
Cajetan
Member
Level: 20


Posts: 84/86
EXP: 40686
For next: 1753

Since: 08-06-11

From: Binary

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 04-05-15 02:44:54 PM (last edited by Cajetan at 04-05-15 02:45:14 PM) Link | Quote

UPDATE(04/05/2015) - CajeASM v7.0b (r14) RELEASED!!

OMG OMG OMG OMG OMG It's here, even if no one cares (or only a few) I can tell you, it's finally here. As this is the "beta" version, this means that the disassembler and the listing file (command-line) update is still not available and will be probably done in a few days or weeks. However, the rest is completely done and therefore CajeASM is finally ready to be released. Actually a lot of updates are internal, which are way too complicated to explain, so I put them at the 2nd update list. The first update list just contains the stuff which is useful for the user.



UPDATES:

  • [IMPR]: Recoded and improved errors in code, writes errors now to a log file. (Logs/log.txt) Label and define errors are saved in two separate log files in Logs folder.

  • [IMPR]: CajeASM assembles 12-20 secs faster than before. Hyperspeed fucky fuck funky.

  • [ADD]: CajeASM is now able to assemble ASM code to big-endian (.z64), little-endian (.v64) and byteswapped/middle-endian (.n64).

  • [ADD]: Added new directives:

    • .incbin "binfile.bin" -> Let's you include binary files into your ASM code.

    • .byte/.halfword/.word/.float -> Let's you insert numeric values into your code.

    • .align alignment, (optional) fill -> Aligns your data/code to a byte boundary, optionally filling the skipped bytes with 'fill'.

    • .skip n, fill -> skips 'n' bytes, optionally filling them with 'fill'.


  • [FIX]: Fixed decimal, binary value conversion.

  • [FIX]: Fixed LI instruction to not use ADDI/ADDIU anymore for values which are in 16-bit range.

  • [FIX]: Fixed crashes caused if the immediate value didn't have a prefix or was too short.

  • [FIX]: Re-added missing instruction SYSCALL.

  • [FIX]: Rewritten label/define list code. This time it should work better and more efficient now and prevent mystical label errors.

  • [ADD]: New command-line options, new command-line argument parser.

  • [IMPR]: If no destination register is specified in pseudo-branch instructions, then on default AT register is used.

  • [FIX]: Fixed MTC2/MFC2 (RSP) instructions not reading the element. (ex.: mtc2 t0, v3[2])

  • [FIX]: Fixed vector load/store instructions not reading the address properly.

  • [ADD]: New CajeASM v7.0+ Manual. Better, explains all pseudo-stuff step-for-step and shows how they look like when translated to real MIPS code.

  • [FIX]: ROM and ASM Files close properly now.

  • [FIX]: include directive for ASM files didn't work properly before and didn't import all defines.

  • [FIX]: hex {} parser/lexer error and confusing it with labels. Has been finally fixed.

  • [FIX]: CajeASM v6.03 crashed when labels were called three times.

  • [DEL+REPL]: (internal) Deleted some old encoding algorithm (originally this was supposed to be a small, quick reader (encoding) for ASM code, fucked up crap which never worked in the end.
    This was replaced with an algorithm somewhat similiar to ( w(v') >= t + 1) )

  • [FIX]: Closing CajeASM console-command line by pressing "X" caused that rn64crc.exe and chksum64.exe didn't open.

  • [FIX]: CajeASM update checker sometimes didn't read the URL.

  • [FIX]: Fixed prefixes like "0X" not being recognized (forgot to uppercase that one in my check code)

  • [FIX]: Fixed inefficient use of my BitFields (some fields were left filled with bits of preceding instructions, sometimes causing horribly wrong instruction encodings)

  • [FIX]: Fixed instruction reader and code which passes the bits to it's fields, especially the FPU instructions were sometimes not written properly.

  • [FIX]: CajeASM GUI no longer crashes if file is in use (actually it shouldn't even crash before, but it still did for some others. )

  • [FIX]: BEQI/BNEI and BGEI/BLEI/BLTI/BGTI not being correctly translated. Fixed this finally.

  • [FIX]: Lexer errors sometimes crashed CajeASM, especially LI instructions once again.

  • [FIX]: Result of MIPS instructions (Appending BitFields) sometimes were out of range (leading zero's) causing errors.

  • [FIX]: Fixed CajeASM GUI being not properly getting the filepath sometimes (when space was used in filenames).

  • [FIX]: include directive for ASM files sometimes didn't assemble some instructions (forgot to point to visitor, blame me)

  • [FIX]: CajeASM didn't read RSP instructions properly sometimes (especially the scalar modes)

  • [IMPR]: Re-coded reader for scalar modes for RSP instructions (0q, 1q, 0h, 1h, 2h, 3h, 0w-7w)

  • [FIX]: Removed "URL not found" spam. (caused when link wasn't available or when some crap was wrong with the host)

  • [FIX]: Fixed crash when attempting to open a zero byte file.

  • [FIX]: Fixed various memory corruption issues (random crashing)

  • [FIX]: Fixed parser not recognizing RSP instruction VSUB.

  • [FIX]: Fixed endless loop if define didn't exist.

  • [FIX]: Fixed B instruction not being translated correctly to real MIPS ASM instruction.

  • [IMPR]: CajeASM GUI and CajeASM console-application merged to one.



Download-Link:

http://origami64.net/attachment.php?aid=52

Cajetan
Member
Level: 20


Posts: 85/86
EXP: 40686
For next: 1753

Since: 08-06-11

From: Binary

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 04-30-15 08:20:39 AM Link | Quote
UPDATE(04/29/2015) - CajeASM v7.2b (r301) RELEASED!!
Pseudo-Branch instruction assembling error fix.

UPDATES:

[FIX]: BLT, BGT, BLE, BGE didn't assemble correctly (they assembled R0, R0, offset, which was wrong)

Download-Link:
CajeASM v7.2
Cajetan
Member
Level: 20


Posts: 86/86
EXP: 40686
For next: 1753

Since: 08-06-11

From: Binary

Since last post: 3.0 years
Last activity: 1.0 years

Posted on 05-11-15 04:48:40 PM Link | Quote
UPDATE(05/11/2015) - CajeASM v7.24 (Stable) RELEASED!!
New fixes. Fixed include crashes + cajeasm auto-aligns code after .incbin (in case the bytes aren't multiple of 4).

UPDATES:

[FIX]: Fixed immediate crash when including an ASM or bin file from another folder outside of CajeASM.exe
[FIX]: After incbin the code is auto-aligned to 4 byte boundary so ASM code is not messed up when assembling.

Download-Link:
CajeASM v7.24
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - CajeASM - MIPS R4300i Assembler for N64 New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 5d36857 [2018-03-03]
©2000-2018 Acmlm, Xkeeper, Inuyasha, et al.

26 database queries, 3 query cache hits.
Query execution time: 0.149244 seconds
Script execution time: 0.013597 seconds
Total render time: 0.162841 seconds
Memory used: 786432