Waltress (PPC Assembler)

The first ever PowerPC Assembler that's entirely handwritten in PowerPC. It is 100% Broadway compliant. Waltress is also a Gecko Cheat Code assembler.

Current version: 0.9
Created by Vega

[Image: waltressAPP.jpg]
[Image: waltressHBC.jpg]

Why the name Waltress? Waltress is one of Daysha's cats, and she is a shy black & brown long hair cat with a gigantic fluffy tail. Waltress is also the site mascot.

Created by Vega
Version 0.9
Release Date: March 24, 2024

Waltress is my own PPC Assembler that I have created using handwritten PPC Assembly. There is an HBC App version and a Desktop Version (QEMU required). There is full support for 04, 06, C0, and C2 Gecko codetypes. Anything that can be assembled can be disassembled, and vice versa. Read the README! Read the NOTES.txt!!!

Here's the Github Repo Link~

Here's the Waltress Package Download Links~
https://mariokartwii.com/downloads/Waltress03242024.zip (v0.9)
https://mariokartwii.com/downloads/Waltr...024sha.txt (sha256sum hash for verifying download if desired)

Once you have downloaded Waltress, extract the Download. There will be a "Waltress03242024" folder. Inside the folder is a README. Please READ the README to understand the rest of the files and document contained in the download, and also on how to run Waltress.

Also please READ the NOTES.txt document!

Quick Guide (HBC):
  • Extract Waltress03242024.zip
  • Inside Waltress03242024 folder is the HBC-Waltress folder.
  • Move that folder to the /apps folder of your SD/USB device
  • Place code.txt or source.s into /apps/HBC-Waltress
  • Launch HBC, launch App, follow on-screen instructions

Quick Guide (QEMU w/ Linux***; assumes QEMU is already installed and you know how to run it):
  • Extract Waltress03242024.zip
  • Inside Waltress03242024 folder is the DV folder.
  • Place code.txt or source.s into /DV
  • Make ./main executable and launch it. Follow on-screen instructions
    ***NOTE: Only verified to work on Debian 11 & 12.

Video demo of v0.6:

Old version downloads and hashes:









Version 0.2 released. Nothing major, added some more simplified mnemonics and did some clean up. Version 0.3 will be a bigger release, but I will be obligated with a lot of work, so it will have to be held off for some time.

Details of changes/updates for v0.2~

*Added in blr(l), bctr(l), sub(./o), and subc(./o) simplified mnemonics
*Re-did the initial process of creating the HBC application, saved a few lines of pre-generated Assembly code for the Inline file
*Got rid of the -33 error code in the HBC app (aka -3 in Assembler engine). If a source line is simply too long, we will let it output the same error as former -34.
*Engine files no longer hardcoded to certain function addr's that were specific to PAL MKWii. Empty reserved spots in lookup table now serve that job. Function addr's are written to reserved spots by software (HBC App)
*Fixed many typoes (lol)
Like always, great work by Vega
~MarioKartWii.com #1~
Version 0.3 has now been released.

New features:
  • Codes can now be assembled-to/disassembled-from a code.txt file. Binary file option is still available.
  • Added more error code returns for both assembler and disassembler engine due to added option of code.txt
  • Option added in to delete original input file after a successful assembly/disassembly.
  • More typo and code clean up
Version 0.4 has been released.

Here are the following new features~
  • Can now compile Gecko Cheat Codes. However, proper decompiling is not supported (example: a Gecko Opcode present at the start of code.bin/txt will be diassembled to its PPC instruction equivalent). Therefore, Waltress can still only disassemble in a 'raw style'. Raw assembling still available.
  • Gecko Cheat Codes supported (for compiling) are Mem80 32-bit RAM Write (04 Opcode), Mem80 String Write (06 Opcode), Execute ASM (C0 Opcode), and Insert ASM (C2 Opcode).
  • C0 compilation will auto add required blr for you. No need to include it in your source.s file.
Version 0.5 has been released.

Waltress can now decompile Gecko Cheat Codes. New secondary menu within App allows users to choose the disassembly/decompilation option.
Waltress is now on my Github Repo (finally remembered to do it lol)

~Huge Announcement!~

Version 0.6 has been released!!

Waltress has awaken from her hibernation, and she brings us a gift.   Heart

She is now at Version 0.6, well what's new? 

  • Desktop version now available (requires QEMU). Yes you can run Waltress on your computer withOUT Dolphin.  Blush
  • Both Engines completely overhauled
  • Waltress will notify you which instruction that she cannot assemble if such a case occurs (1st instruction, not all), and will give you a general reason as to why  Smile
  • Quirky SIMM ranges fixed
  • Super strict formatting removed
  • All simplified mnemonics (except clrlslwi, la, extlwi, extrwi, inslwi, & insrwi) are now supported, yes that means ALL branch simplified mnemonics work now!  Big Grin
  • Files can now have comments, albeit it with some restrictions
  • Files can now have extra spaces, enters, tabs, etc.
  • Two bugs fixed (mfsr not assembling correctly, and fmul(s)(.) + ps_mul(.) not assembling correctly)
  • No more quirky Error Code system. Error Text Messages specifying the problem are now displayed.
  • Binary file (code.bin) support removed
  • File Deletion support removed

Update: Waltress v0.6 has been added to my github

I goofed something up on the v0.5 repo so I had to delete and start the repo from scratch again, fyi.

Link - https://github.com/VegaASM/Waltress
I tried to disassemble a code but even in format I could not get it to work. I found out that it maybe is due to working on windows.
And Windows uses different form of newline characters (0D0A instead of only 0A).

After I changed the Windows to Linux newlines, it worked. Just to mention it.

And nice work! Maybe we get sometimes work it with labels too, that would be epic!

Forum Jump:

Users browsing this thread: 1 Guest(s)