Language…
16 users online: Abstract, Adsila,  Anorakun,  Donut, ForthRightMC, FrozenQuills, HeitorGamer,  idol, Lush_50, playagmes169, Rodrigonpt07,  RussianMan, Shiki_Makiro, The_Uber_Camper, yannick9090, Zavok - Guests: 171 - Bots: 117
Users: 65,904 (2,184 active)
Latest user: Rodrigonpt07

Posts by zuccha

zuccha's Profile → Posts

If somebody still stumbles upon this, Alcaro's solution makes it so that if you are holding any button while Mario moves on a destroyed castle tile, it automatically enters the level, which is different compared to the default behaviour where you have to press the button once you are already standing on the level tile.

To make it behave like any other level, I disabled the check on the destroyed castle, instead of tweaking the L+R check:

Code
org $049199
    NOP #6


Note that this still allows one to enter the destroyed castle via L+R.
ROM Hack Manager - SMW Resources - SMW Toolbox
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
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
Ok, I did this



(the first block you pay with coins, the second with score points, the third with bonus stars, the last one with lives)

I created some blocks that, when you interact with them, give you an instant power up or an item in the item box if you have enough bonus stars/coins/life/score points to pay with. The amounts can be configured in the block files.

There are two type of blocks: blocks go-through and blocks you hit from below. Blocks can be configured to either have an infinite amount of items for sale, or just one (if you reload the sublevel, it will reset). All blocks should work both for Mario and Luigi.

Blocks will not give you anything if you don't have enough funds or if you already have said item/powerup.

You can download the blocks here. The code and everything is also available on this GitHub repo.

The readme and the block files also contain explanation on how to configure them.

Let me know if this is what you were thinking of, or if I misinterpreted it. In case, feel free to un-claim the request. Also, if you have additional suggestions I'm open to them. I will submit this for moderation if you confirm that they work properly.
ROM Hack Manager - SMW Resources - SMW Toolbox
Alright, I think I see the error for bonus stars and score on SA-1. I admit I didn't test for SA-1, but I will now. I'll let you know once I fix it.

About the sound effects, I'm using channel $1DFC, which mirrors values from $1DF9, but the values of $1DF9 start from 35 instead of 1. So if you want "hit head" in $1DF9 you use value 0x01, if you want the same sound effect in $1DFC (used in the block) you use the equivalent 0x35 (and so on).
ROM Hack Manager - SMW Resources - SMW Toolbox
I haven't tried it myself, but Hiro-sofT already reported the sprite not working in 2018 (most recent comment in the sprite's page), and the sprite has not been updated since 2017. Do you encounter the same issue (PIXI crashing) or it simply doesn't appear when placed in the hack?
ROM Hack Manager - SMW Resources - SMW Toolbox
Sadly I haven't enough experience with PIXI to tell for sure what the problem is...

The only thing I noticed is that the sprite makes use of freeram, maybe you have other custom code that uses the same freeram address (!freeram_block = $7FC700)? To verify if that's the case, try adding the sprite in a clean ROM where you didn't add any other sprite, patch, etc. (if you didn't do that already).
ROM Hack Manager - SMW Resources - SMW Toolbox
To fully get rid of the item box, you need to do the following:

  1. Don't show stored item in the status bar
  2. Disable stored item functionality


1. Don't show stored item in the status bar

To hide the stored item in imamelia's status bar, you can change line 60 of "status_top.asm", "status_bottom.asm", or "status_double.asm" from

Code
!itembox = !status_tile+$12

to

Code
!itembox = 0

then reapply the patch.

Note that this will not show the stored item in the status bar, but it will not turn off the functionality. I have not tested it myself, but it's what the documentation in the code says.

2. Disable stored item functionality

To prevent the game from dropping a stored item when taking damage or when pressing select, you can use the following code

Code
org $028008
  db $6B

Put the code in a new file called "disable_item_box.asm" and patch it with Asar.

For more, you can check the documentation on the routine that drops the item here.

A few notes:

  • This won't prevent the item from being stored in the item box, it will prevent it from falling, but in most cases it doesn't matter.
  • I don't know exactly what custom power up patch you are using and if it interferes with the "drop item" routine in any way.

ROM Hack Manager - SMW Resources - SMW Toolbox
Solaire's Adventures

A 2D action-adventure game with characteristic Zelda elements, in the original Dark Souls setting.



What if Solaire was the chosen undead?

Play as the wanderer from Astora in an adventure that will bring you across the land of Lordran. The game focuses on the events of the original Dark Souls while combining aspects from different Fromsoftware games, as well as being a throwback at older The Lengend of Zelda titles.

Description

The game is only a demo, and I don't know if it will ever be anything more. For now, it has the following:

  • 5-10 minutes of gameplay featuring the first area of the game, the Northern Undead Asylum.
  • No audio/sound effects.
  • 2D pixel art made by me.

Any feedback is deeply appreciated #w{<3}

If enough people show interest in the project, I might keep working on it.

Download

The game is available for the following platforms:


ROM Hack Manager - SMW Resources - SMW Toolbox
I would suggest taking a look at Kevin's Retry System (UberASM), it's the most modern and versatile way of customizing what happens after Mario dies. In particular, it allows to restart the level as soon as the player dies, without going through the overworld (with a great degree of customization).
ROM Hack Manager - SMW Resources - SMW Toolbox
If you want to hide the item box in the original status bar, you need to do the following:

First, prevent the status bar from drawing the stored item

Code
; Replace routine that draws stored item with "no operations"
org $008FC5
	NOP #3

Then, you need to remove the item box borders

Code
; Erase item box top border
org $008C81
	db $FC, $00, $FC, $00, $FC, $00, $FC, $00

; Erase item box left border (top tile)
org $008CA1
	db $FC

; Erase item box right border (top tile)
org $008CA7
	db $FC

; Erase item box left border (bottom tile)
org $008CD7
	db $FC

; Erase item box right border (bottom tile)
org $008CDD
	db $FC

; Erase item box bottom border
org $008CF7
	db $FC, $00, $FC, $00, $FC, $00, $FC, $00

To see how the status bar tilemap works, you can check this and this.
ROM Hack Manager - SMW Resources - SMW Toolbox
So, most shop blocks don't work because they add an item to the item box, which is disabled by the RPG patch.

Luckily, I just created a shop block that has a variant that adds the power up directly to the player. You can find it here (bear in mind, it's still in the waiting section).

You can use "shop_powerup_from_below.asm" or "shop_powerup_through.asm" to pay for changing the current power up of the player.

If you have some knowledge of ASM and how to create custom blocks, you can also use the "ShopPay" routine in "shop__pay.asm" to create shop blocks for buying health, mana, etc.
ROM Hack Manager - SMW Resources - SMW Toolbox
Power ups are stored in address $7E0019. In vanilla they can have the following values:

  1. Small
  2. Big
  3. Cape
  4. Fire

but the Custom Powerups patch allows to support more

  1. Hammer
  2. Boomerang
  3. etc.

You can find the order of the custom power ups in the folder "powerups_files/powerups_defs". Power ups are in order and each one has its own file; you can find out which one is which by opening the file. For instance, we known Hammer is number 4 because it is defined in file "powerup_04.asm".

In the Better Powerdown patch, each power up (safe for Small) is reflected by one line under the "Actions" label at line 51:

Code
Actions:
dw .Mushroom	; .Shrink
dw .Cape	; .Smoke
dw .FireFlower	; .Palette

Their order is important!

  1. Mushroom
  2. Cape
  3. FireFlower

Note how the elements in the two lists are linked (they have the same number)!

Furthermore, the power down patch also defines some animations for transitioning from one power up to another: Shrink, Smoke, and Palette; they are defined at line 57, 75, and 86 respectively. Shrink makes Mario small, while Smoke and Palette make Mario big. For each animation, you will find the power up that uses it in the line following its definition. Mushroom uses Shrink, Cape uses Smoke, and FireFlower uses Palette.

Now, for every extra power up that the Custom powerups patch adds, we also need to add an action:

Code
Actions:
dw .Mushroom	; .Shrink
dw .Cape	; .Smoke
dw .FireFlower	; .Palette
dw .Hammer	; <- Add this
dw .Boomerang	; <- Add this
; etc.

and for each power up we add under "Actions", we also need to specify its animation. For simplicity, let every custom power up use the Smoke animation:

Code
.Smoke
.Cape
.Hammer		; <- Add this
.Boomerang	; <- Add this
; etc.


Summarizing, you nee to

  1. Figure out the order of the custom power ups
  2. For each custom power up, add a line after "dw FireFlower" under "Actions" (in the order determined in the previous point)
  3. For each custom power up, add its "Actions" label you just created under the animation of your choice

ROM Hack Manager - SMW Resources - SMW Toolbox
Then you can try with this patch. You will have to make a few changes though.

You can use "ShopMushroom.asm" as a template: duplicate the file for every power up you want to make shop block of, naming them something like "ShopBig.asm", "ShopCape.asm" and "ShopFire.asm". In every file you need to change these lines

Code
LDA #$01 ;Load mushroom sprite number
STA $0DC2 ;Store it in mario's item box

to

Code
LDA #$01 ;Load Mario big
STA $19 ;change Mario's power up

Instead of "LDA #$01", use "#$02" for cape and "#$03" for fire.

If you also want to make the blocks SA-1 compatible, you'll also need to add "|!addr" after every four-digits addresses in the form "$XXXX". For instance, "$0F34" would become "$0F34|!addr". Note that you don't need to do this for values prefixed by a "#" (e.g., "#$0064")!
ROM Hack Manager - SMW Resources - SMW Toolbox
Apparently it was simpler than what I thought. You can download it here.

The amount of button presses for triggering Mario's death is limited to 255, I hope that's not a problem (I can increase it if needed).

Let me know if it is ok, or if I should make some changes.
ROM Hack Manager - SMW Resources - SMW Toolbox