Views: 896,133,921
9 users online: 7 up, BigSmooch, cozyduck, JonnyManjiro,  KevinM, LouisDoucet, Nciktendo, OhMuramatsu, qantuum - Guests: 44 - Bots: 176 Users: 50,270 (2,281 active)
Latest: BigSmooch
Tip: Remaking levels from other Mario games is strongly discouraged, especially popular ones (World 1-1 from SMB or SMB3, for example), as their over-presence in Mario games, official or not, often makes them uninteresting to play.
Not logged in.
Posts by ArmAusStahl
ArmAusStahl's Profile - Posts by ArmAusStahl
Pages: « 1 »
Hello, i want to make a vertical level and i tested level Mode 7 and 8.

I want to use the triangle to run up walls and a moving layer 2 lava via asm. in level mode 7 the layer 2 is always in the background and i cant interact with it. (priority are set with prio for layer 2 tiles and no prio for layer 1 tiles). Here the triangle works fine.

in level mode 8 the purple triangle does not work and mario is glitching through the wall. But layer 2 works fine.

How can i combine both behaviors? Where can i chnage the game modes?

I tested this with an fresh file and no changes.
thx, works perfect
Hello, this is my first attempt with hacking and kaizo and I would like to get some feedback about my levels. It has a overworld and you have to beat the fist level to play the second.

I would like to get some feedback if you like the concept of my levels (the aesthetics are not great). Are they fun to play? Are they to easy or hard?

My levels:
In level one you have to ride bowsers bowling ball and avoid obstacles or beat small sections and keep up with it (you can spinjump from climbing nets)

In level two you have to climb a tower and be faster then the rising lava


I want to use the custom shooter to shot any sprite. As I unterstand i can set the extra bit with the shooter but not the extension (bytes). I want to shoot a bubble sprite. This bubble uses the extra bit to determine if the bubble uses the extra bytes (extension) to customize the x/y speed values. The extra bit works fine.

How can i set the extrabytes (extension) with an shooter and set those values to the sprite?

Bonus for me: If you find the time... could you explain how the solution works pls. Thx

Edit1: I can edit the .cfg of the shooter and so i can set the bytes. But now the behavior is super strange. It even spawns an other sprite.

Source for shooter:

Source for bubble:

The bubble code sets the extra bytes by this code:
LDA !extra_bits,x	;		
AND #$04		;
STA !157C,x		;this address can be easily set if used with shooter
BEQ InitReturn		;

LDA !extra_byte_1,x	;set speeds with extra bytes
STA !B6,x		;

LDA !extra_byte_2,x	;and since this it set in init and not in main code you can use shooter and set variable speed with just B6 and AA.
STA !AA,x		;

Hello, both solutions are working. Thx

I will start with workshops and learn assembler but i have to say this language is hard to read.

i want to reload the overworld with an button press and change the level destinations and if possible the level entry apparence. (from yellow dot to red dot e.g.).

I found two asm:
1: Level Depending On Ram Address

2: Bring Up Save Prompt by Pressing Start

I can use the patch 1 to change the level destination and works perfect. I should find an unused ram and use that. (it should be #$00 be default), but fpr testing i use $3019. (Mario small Level 1... Mario big Level 2)

Q1: Changes it also the behavior? e.g. the new Level shouldnt activate an event or the name needs to change aswell. There should be tables for this but I dont understand it.


That is an asm that changes level behavior. I will test it.

The second asm triggers when start is pressed. So i started here and changed it, i modified these two parts. It works and set the flag with start.

org $048383                     ;   swap action that happens when start was pressed
        LDA $13D9|!addr         ;\
        CMP #$03                ; | don't do anything if not in a level tile
        BNE +                   ;/
        autoclean JSL save      ;   save some other ow stuff
       LDA #$00 
       STA $3019

But The overworld doesnt reload and so the destination dont change. (When i go into an level and get an shroom and leave it works.)

Q2: Is it possible to reload the overworld with a button press?
(maybe as a hack load a dummy level and instant leave it or so, just in and out this should also trigger the reload)

Q3: can i also change the palett and make the yellow level points to an red one.

Goal: I want to explain the stuff in my levels via training levels. The player hits a button and changes every level in its training part and back again. The overworld should change in color and the yellow point for level entry is now red.
Reload on button press solved:
You can use this Code as an Overworld UberAsm to set a flag for the "Level Depending On Ram Address" and then trigger game mode 0B. This reloads the OW and because of the flag levels get a new destination. It is also possible to toggle 0 and 1.
	LDA $13D9|!addr        
    	CMP #$03                ; | don't do anything if not in a level tile
    	BNE Return
	LDA $16
	CMP #$20	;Press Select
	BEQ eventTrigger

	LDA $3019
	BNE jump				; if 0 move on if flag is 1 jump
	LDA #$01 
	STA $3019
	BNE reload


	LDA #$00
	STA $3019

	lda #$0B            ;\ Load OW gamemode.
	sta $0100|!addr

I think it can be usefull to make a hard and light versions of a level or day/night modus or ng+.

Change color (palette) of OW with button press:
You can use a code to change $0703 and after this change CG-RAM. When you put this in an UberAsm and let it run with GameMode 0D it is possible to change the palette with out showing the palette from LM. (In other gmemodes it shows LM palette for a sec or so) The next step is to use an UberAsm that changes the palette with an butten press and set a flag and trigger the reload. The flag changes the palette for the reload in game mode 0D. This solution is messy but works. So it is possible to change/set the palette of the ow with just UberASM. I think this concept can be used for levels as well but i didnt test it. I dont see a better solution for my problem, just programm a new routin for palettes is better i think.

I used two cycles i think it should be possible to use only one...i dont understand every line it is just working (its like a puzzle for me)

Open Q:
Change yellow point to red point (level entry)?
- Maybe also change the palette via uber asm?
Update level flags?
i would use this as an UberASM in gamemode 0B:

This code checks if mario has fire and when he has fire the palette row for mario is updated with colors u can define under PaletteTable0. Do you understand asm? If yes you can take this, change the colors and change the check at the beginning. If not i would help you but i need some time.
ok, i tested my code ist should work. Use it as a GameMode 0D UberASM.

What it does:

It checks if you have a fireflower and if you do the palette of mario (colors) are updated when u reload the overworld. (For example enter a level and leave it) If you want an other model (shape) for mario, this has do be done differently and im not sure how to do it.

How this palette thing works:
I changed the colors to firemario but maybe u find better ones. Open the overworld editor and click on the star symbol then u see this window. I highlighted the mario color area. So for example the first red is "Colour 3" in my code and the next red is "Colour 4" and so on. Here you can test your colors and see how it looks like, dont forget to revert. Look for the SNES RGB value e.g. 25AF on the picture. This represents the value of your colour, e.g. the first red is 0016. This SNES RGB value has to copied to the specific place..."Colour 3" and so on.

It seems there is a littel bug, when the overworld is loading mario (this picture on the upper left side) is black for a split second if you have a fire flower. Maybe my code is to slow, i dont know, sorry.

I found a fix for the black mario problem. The problem is that the code is running x times and blocks other code to load the palletes or so. So the code should only run once and then mario isnt black anymore. I will post a fix here for your code soon.

try to change the "main:" to "init:" in the code (at the beginning) this should also solve the problem.

I need someone that optimise my code than i could upload it.
Hello, the Patch thats changes the lvl entry number when a specific ram is set and the retry systems dont work together.

If i die in a lvl with a changed number then on retry i will start in the orginal lvl. It seems that the changed lvl number has to be stored in such way that the retry can us it.

Q: Is there a way to make both patches work together?

Change LVL number
Hello, this is my 2nd try for hacking. It contains one level and technical stuff i tryed. Pls let me know what you think. If you like it let me know, i will improve it further if you like it.

Link to patch:

Edit: the way tiles to the level should spawn now with the right palette.

Pictures from level and ow:

Pages: « 1 »
ArmAusStahl's Profile - Posts by ArmAusStahl

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Follow Us On

  • YouTube
  • Twitch
  • Twitter


  • Super Mario Bros. X Community
  • Mario Fan Games Galaxy
  • sm64romhacks