Language…
10 users online: 1LE,  Ahrion, DanMario24YT, Kiper, Lush_50, marmotaz, misclik, Moronsky, Nyngatin1234, reiyo_oki - Guests: 108 - Bots: 232
Users: 66,537 (2,380 active)
Latest user: wolfce

Custom Status Bar v0.3.1 (UberASM)

UberASM

Custom Status Bar

  

Download | Features

Customize your status bar with UberASM. Ideal for kaizo hacks.

Code and documentation are also available on GitHub.

Features:
  • Status bar in minimalistic style
  • Customize elements positions
  • Customize elements visibility
  • Per-level customization
  • Control settings at runtime
  • SA-1 compatible

How is this different from many other status bar patches?
  • This UberASM provides a decent degree of customization, from positioning, visibility, graphics, and behaviors
  • It allows for level-based configuration through UberASM, without the need to define huge tables storing values for each level
  • Almost every setting can be controlled at runtime, it's up to you what to do with that
Hey! It's pretty criminal this has no replies yet, but the forums have been pretty dead in the past few years unfortunately, and this one is especially rather niche (maybe this would get more visibility here?). I hope this wasn't too demotivating...

I haven't had the chance to test this out, but this is a massively organised project compared to most things I've seen. Excellent efforts with documentation as well!

And yes, this is absolutely useful. We have a lot of status bar patches, but I don't think any of them is as heavily customisable as this one seems to be. Also I personally don't like any of our available patches, so this is a fantastic option for me in case I end up too lazy to program my own (I might also look at this as a reference).

Regarding SA-1 compatibility, it usually isn't too hard. In most cases, all you need to do is to operate RAM addresses $0100-$1FFF with the |!addr define. Operating ROM addresses with |!bank is for speeding up calls when using FastROM and is optional (but always good to do). All sprite tables get remapped as well, but it doesn't seem like you've had to deal with those (and most tools have easy defines, i.e. you'd replace $AA with the define !AA). There are other things such as sometimes having to use SA-1's registers instead of the SNES', but UberASM runs on the SNES unless told otherwise, so a lot of things don't apply.

After a glance in your code, I noticed a few instances of STA $0000|!addr,y and similar which is incorrect - SA-1 remaps addesses $7E0000-$7E00FF somewhere different, which when using direct addressing modes (STA $00) doesn't need to be accounted for since the patch already handles the direct page register. When using absolute addressing though, |!dp is the one you should use instead.

When those are handled, I think it's safe for you to try testing your patch in a SA-1 ROM. There's a high chance it'll just work right away.

gl with this as well as any future endeavors #smrpg{y}
Thanks for the feedback!

I don't worry too much about not receiving replies, I know people have their own things to worry about, and inspecting a big ASM project is not usually on top of everyone's todo list. But I do appreciate that you took the time to give it a look :)

In the next few days I will try to implement the changes you described for SA-1 and see if it works.

I didn't post this in the releases forum because I thought it was only for full releases that have also been approved by a moderator. I think this project still needs some improvements: the code is well organized, but it lacks some performance optimizations, which I didn't implement either because I'm unaware of them, or because I chose to write the code in a way that makes it more readable by me (as my ASM knowledge is still rudimentary) even at the cost of performance.

If I manage to make it work on SA-1 and improve the code a bit, I might submit it for moderation.
ROM Hack Manager - SMW Resources - SMW Toolbox


Originally posted by zuccha
I didn't post this in the releases forum because I thought it was only for full releases that have also been approved by a moderator. I think this project still needs some improvements: the code is well organized, but it lacks some performance optimizations, which I didn't implement either because I'm unaware of them, or because I chose to write the code in a way that makes it more readable by me (as my ASM knowledge is still rudimentary) even at the cost of performance.

There is at least a project showoff thread on this forum that you can post WIPs to.

Being able to toggle and adjust positions does seem like it could be very useful, though. You could use it to do things like disabling the display of things like the timer or dragon coins in levels where those aren't relevant.

Professional frame-by-frame time wizard. YouTube - Twitter - SMW Glitch List - SMW Randomizer
wow, this is great and I think super useful! keep up the good work! gg
I made the code compatible with SA-1, so that's being taken care of.

In the meanwhile, I found a couple of bugs related to turning the status bar off entirely, but I plan to work on them.
ROM Hack Manager - SMW Resources - SMW Toolbox
This is a useful resource. Very versatile indeed.

Also think it would get more visibility if it was in the Resources & Tools Releases subfourm.
You're probably right. First, I want to revisit the code and fix some stuff, once I'm confident that the Custom Status Bar is solid enough, I will post it in Resources & Tools Releases.
ROM Hack Manager - SMW Resources - SMW Toolbox
The download link in the main post is not working.
Update v0.3.0

Added:
- Include example list file for UberASMTool.
- Include level files to enable and disable the status bar, and one with a version with only coins and time.
- Include a GPS block to toggle the status bar visibility.
- Allow to hide the status bar without disabling IRQ (and all problems that come with that).

Modified:
- Reorganize code folder structure.
- Refactor code to almost always operate in 8-bit mode.

Removed:
- Remove generic example level code.
Update v0.3.1

Fixed:
- Fix crash on startup.

UberASM