Name: | uberASM 1.2.0 (LevelASM replacement) |
Author: | p4plus2 |
Added: | |
Version History: | View |
Tool: | Asar |
Requires Free Space: | Yes |
Bug Fix: | No |
Featured: | Essential |
Description: | UberASM is a patch designed to be the successor of levelASM and OWASM. UberASM provides users with more hijacks and options, as well as making it easier for advanced ASMers to give users code that wouldn't work in ordinary levelASM. UberASM is designed to be fairly modular, and can be tweaked to suit the needs of the user. Important hijacks supported by this patch are as follows: *) Gamemode init/main - Adds code that runs prior to normal game mode execution. Init will run only once, every frame after main will run. This hijack also allows implementation of custom game modes. *) Global hijack code - Will always run once at the start of EVERY frame. *) Level init/main - Provides the original levelASM, but with the added ability to write to OAM mirror correctly. *) NMI hijack - Provides a hijack in NMI to allow code that must run in V-Blank to run, some as graphics uploading. *) OW init/main - Provides the functionality of OWASM with less confusion. *) Sprite hijack - This is a special hijack which lets sprite upload a pointer to RAM to execute at the start of a frame. *) Statusbar hijacks - Code that will run before and after SMW's status bar code, handy for custom statusbar tweaks. See the README.txt for basic usage and upgrading from levelASM instructions. This version fixes an incompatibility with a bunch of other patches. This version corrects two bugs, see readme for details. GHB's update: added sa-1 support. 2015/12/25 update: fix the gamemode error also fixed new game mode crashes. 2016/01/13: actually fixed some gamemode return address (again). 2016/06/15: actually fixed some gamemode return address (... ... once again). address in question is in hijacks/gamemode.asm line 16 2016/08/27 RPG Hacker: added a "status bar drawn" hijack that is executed AFTER SMW's status bar instead of before. |
Tags: | levelasm lorom needs remoderation nmi owasm sa-1 sprites status bar uberasm |
Comments: | 13 (jump to comments) |
Download
33.65 KiB | 3,045 downloads
Comments (13)
Alternatively, the original status bar hijack could be refactored to run at the end of the status bar routine instead. After all, the original idea behind that hijack was to allow the status bar to be tweaked, which is rather limited in functionality with the current version of uberASM (v1.1.1). The only reason I didn't do that is because I wasn't sure of all the implications that could have on version compatibility. As it currently stands, though, the current statusbar_code hijack is barely any different from a gamemode main or level main hijack, since it doesn't allow you to overwrite any status bar data those hijacks don't let you overwrite already, anyways, so in its current form, that hijack is mostly useless.
EDIT:
Changing sound effects and Mario's palette sounds useful enough to also warrant a late main hijack, though.
so I suggest to add a late version of main label instead.
it hijack $00A5E8 because this address has been finished almost process.
it can change status bar, mute SFX, and change mario palette from $7E0D82.
With the regular "status bar" hijack, you get something like this:
With the "status bar drawn" hijack, you get something like this:
This can be useful if you want to hide parts of the status bar in certain levels or use a specialized status bar for just a single level.
Alternatively, since a few level modes don't even render the status bar, a new hijack could be added, called "on_status_bar_drawn". This code would be executed whenever SMW's status bar code is finished (might get skipped in level modes like $C1, depending on how it's implemented). This could be used to overwrite status bar values SMW's original code has just written.
I might add this hijack myself if people don't see a problem.