Waltress (PPC Assembler + Disassembler)
#1
Waltress

The first ever PPC Assembler+Disassembler that's entirely handwritten in PPC. It is 100% Broadway compliant. Waltress is also a Gecko Cheat Code compiler.

Current version: 0.5



[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.

Waltress is designed for raw PPC assembling+disassembling. She can also compile+decompile certain Gecko Cheat codes.

This was a personal 'proof-of-work' for me, that I have decided to release. Enjoy? (lol)

To run Waltress you will need the following~
  • The Waltress HBC Application (Waltress folder; included in the Download link further below)
  • code.txt or code.bin (if disassembling)
  • source.s (if assembling)

Please be aware that strict formatting is required for the source.s and code.txt files. The only requirements for the code.bin file is that it can only contain assembled PPC instructions (and Gecko related stuff if applicable), nothing else.

Regarding the compilation of Gecko Cheat Codes, Waltress requires "Gecko Headers" to be included in the source.s. These "Gecko Headers" are a unique aspect of Waltress. 

Here's the Waltress Package Download Links~

https://mariokartwii.com/downloads/Waltress07302022.zip (v0.5)
https://mariokartwii.com/downloads/Waltr...022sha.txt (sha256sum hash for verifying download if desired)

Here's the Github Repo Link~
https://github.com/VegaASM/Waltress

I cannot stress this enough... READ THE README and READ THE FORMAT.txt!!! Do not skim over those documents, read them.

--
Old version downloads and hashes:

v0.4
https://mariokartwii.com/downloads/Waltress07262022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt

v0.3
https://mariokartwii.com/downloads/Waltress07112022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt

v0.2
https://mariokartwii.com/downloads/Waltress07052022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt
v0.1
https://mariokartwii.com/downloads/Waltress07042022.zip
https://mariokartwii.com/downloads/Waltr...022sha.txt




Quick guide on how to run Waltress~

1. Download the Waltress07302022.zip package.
2 (optional). Verify download with provided Hash.
3. Unzip the Download, there will be the following folders & files...
  • Engine
  • Examples
  • Source-HBC
  • Waltress
  • ERRORS.txt
  • FORMAT.txt (***READ THIS***)
  • HISTORY.txt
  • LICENSE.txt
  • README (****READ THIS****)

4. Copy-paste Waltress folder inside the apps folder of your SD/USB device.
5. Place your code.txt/bin or source.s file into apps/Waltress of SD/USB device.
6. Plug SD/USB device into Wii. Launch HBC.
7. Launch Waltress, follow the on-screen instructions.

Waltress HBC App has only been tested on Wii and Dolphin Emulator (virtual SD). It has not been tested on the Wii-U. Yes, you can compile the HBC App from its source. Guide for that is in the README.



The handwritten source files (for the 'Engine') are in the Engine folder. They are main_asm.s and main_dasm.s. These files are HUGE!!! Have fun reading over them. There will also be leftover scrap notes and comments that may not make sense. You can assemble the handwritten source files using Legacy version of PyiiASMH (RAW option).



And finally...

**YES**, you CAN disassemble & re-assemble Waltress using Waltress!! Smile What would be the point of releasing this if she couldn't preform such a task? Guide for that is in the README.

Video demo:
Reply
#2
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)
Reply
#3
Like always, great work by Vega
~MarioKartWii.com #1~
Reply
#4
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
Reply
#5
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.
Reply
#6
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.
Reply
#7
Waltress is now on my Github Repo (finally remembered to do it lol)

https://github.com/VegaASM/Waltress
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)