Releases: QuickLava/PowerPC-Assembly-Functions
PowerPC Assembly Functions - Version 1.6.2
A moderate update, introducing further embellishments on the Addons system, stability improvements, and maintain support for prominent build configurations.
Notable Changes
- Updated some internal constants for compatibility with Project+ v3.1.0.
- Code Menu lines may now be hidden and/or locked at runtime using the 0b0010 and 0b0100 bits respectively of a line's Flags byte. This can offer some useful flexibility in controlling when and how lines can be interacted with.
- Constant Overrides may now write out specific portions of a line's value (eg. emitting just the bottom byte, or just the top half-word).
- Updated Random Angle Mode Toggle with an additional "Static Random" option, which when combined with the updated RandomAngleMode.asm found in the GCTRM Codes folder activates Eon's per-match randomization mode! Note: updated .asm file comes pre-installed in most v3.1.0+ Project+ based builds.
Addon Changes
- Addons no longer strictly require a Page Target to compile, making it easier to use Addons just for safe working space.
- Addons may now request Constant Overrides to write their line values out to specific locations in memory.
- Addons may now request that the Menu Builder additionally emit an "idx.dat" file in their output directory. This file notes the addresses of the Addon's working memory space (if any was requested) and constituent lines, which can be used to access and manipulate Addon content via non-GCTRM environments such as Syriinge plugins!
Full Changelog: v1.5.3...v1.6.2
PowerPC Assembly Functions - Version 1.5.3
A moderate update, bringing support for builds based on Project+ v3.0.0, further PSCC improvements, the introduction of the new Addons System, as well as new menu navigation sound effects!
For detailed use instructions, visit the wiki here!
Important Note: For both the Project+ and P+Ex configurations of the menu builder, there are two versions of the program attached to this release: one for builds based on P+ v3.0 and above, and another for builds based on previous versions. Be sure to download the one appropriate for your build, as the Post-3.0 builder configurations aren't fully compatible with builds based on earlier P+ versions!
Full Changelog: v1.4.0...v1.5.3
PowerPC Assembly Functions - Version 1.4.0
A moderate update, featuring fixes for long-standing improper memory usage issues, the ability to change the colors of menu lines, improved non-Ex Project+ support (up to date and fully compatible with v2.5), and further enhancements to XML menu configuration. For detailed use instructions, visit the wiki here!
Update (6/10/24): A Hotfix has been released for the P+Ex configuration of the builder to address crashes when a player is KO'd on P+Ex versions 1.26.1 and earlier! Please re-download if you downloaded prior to this update being posted, thank you!
Full Changelog: v1.3.5...v1.4.0
PowerPC Assembly Functions - Version 1.3.5
A moderate update featuring an under-the-hood overhaul to the Player Slot Color Code as well as various optimizations to both Menu CMNU and ASM size!
Full Changelog: v1.3.1...v1.3.5
PowerPC Assembly Functions - Version 1.3.1
A major update, featuring an overhaul to menu configuration, the ability to lock Code Menu lines, a complete rework to ASM output structuring, an upgrade to the Dash Attack Item Grab code, and brand new built-in codes for manipulating character jumpsquat lengths, and changing the colors associated with each player slot!
The New XML Config System
This release marks a move away from the multiple configuration file approach previously used to control things like EX Character declarations, additional CSS_Roster files, and Themes. Instead, the Menu Builder now makes use of a single unified configuration XML file, called "EX_Config.xml" for P+Ex based builds, and simply "Config.xml" for base P+ based builds.
In addition to rolling the functionality of those individual configuration files into a single place, it also offers an easy means of changing the Menu's in-game title, the comment text displayed beneath the title, as well as the name of your build's base folder.
Going forwards, it will also serve as a means of choosing whether or not to include certain optional features in menus you build. Presently, it offers the ability to include or exclude the menu's "Dash Attack Item Grab Toggle", and to configure (or exclude) the brand new "Player Slot Color Changer" code, and will expand to offer configuration options for further features as they're added!
Migrating to the New Config System
As a result of the move to the new menu configuration system, builds that previously made use of the "EX_Characters.txt", "EX_Rosters.txt", and "EX_Themes.xml" files will need to migrate their options to the new unified config document. To do this, for any of those files, simply simply copy any declarations from those files into the appropriate node of the new config document. After doing this, the next time you run the builder, it'll automatically convert any plain-text entries over to the new XML-style format; you do not need to manually convert your entries!
For instance, if I needed to migrate my declarations from an "EX_Characters.txt" like this one:

All I'd do is paste my declarations into the Character List node like so:

And run the builder! It'll detect those declarations, and auto-promote each entry to the new format, like so:

Other Notes
-
Previous versions of the builder utility offered three executables: one for consoles, one for offline Dolphin builds, and one for Netplay Dolphin builds. This has been reduced to two: an "Offline" executable intended for both consoles and offline Dolphin builds, and a "Netplay" executable intended specifically for Netplay Dolphin.
-
Another note on the Netplay executable, the builder actually supports using a secondary configuration file specifically for Netplay, if you'd like to use one. Simply make a copy of the config document and prefix its name with "Net-" (eg. "Net-EX_Config.xml"), and the builder will use that file instead when you build with the Netplay executable!
-
The builder's ASM output is now presented with full labeling, in readable PPC and annotated Gecko code! This should make it much easier to verify what codes are actually in your code menu's ASM file after building it, or to edit it after the fact, if necessary. Also, if you place a copy of Brawl's Dolphin Symbol Map (usually called "RSBE01.map") into the builder's folder and rename it to "symbols.map", the builder will additionally note what function each HOOK in the ASM output actually hooks! Can help illustrate a bit what each code is actually doing, if such information is ever needed.
-
Lastly, please note that there are now two offered versions of the menu builder, one for base P+, and one for P+Ex, so be sure to download the correct one for the build you're using!
Full Changelog: v1.0.4...v1.3.1
PowerPC Assembly Functions - Version 1.0.4
An update which provides proper P+EX Version 1.2+ support, as well as additional notation to clarify which version of P+EX the code menu is being built for.
Important Note: There are two versions of the program attached to this release: one for P+EX v1.2 and above, and another for P+EX v1.1 and below. Be sure to download the one appropriate to your build, as Pre-1.2 code menus aren't compatible with P+EX v1.2 and above.
PowerPC Assembly Functions - Version 1.0.3
An update which introduces support for command line arguments that can be used to override the interactive decisions provided by the program in normal use. Useful if you need to call the program from code, a script, etc. See the included "README.MD" file for details.
Full Changelog: v1.0.0...v1.0.3
PowerPC Assembly Functions - Version 1.0.0
Implements improved logging, interactive GCTRM and File Placement prompts, and several stability improvements. Also solves a configuration issue which had the program call for debug variants of certain system files which aren't readily available to some users.
Full Changelog: v0.5a...v1.0.0
Release v0.5a - ASMConvert and AutoGCTRM Update
Adds support for ASMConvert, AutoGCTRM, and dnet.cmnu (for Dolphin Netplay builds). Check the ReadMe for further details. Additionally, full credit to Kapedani for the original cpp implementations of these features. You can find the fork with their implmentations of these here.
Release v0.1b
Initial release version, working correctly as far as I can tell.