Language…
15 users online: Aguiar Salsicha, EpicGamer1354, flips_bad, Giftshaven, hh0962430,  idol, Jest3r1984, Jolpengammler, l337f00l, LotuaStation, Nikono, sholmes, The Star Treker, Tulip Time Scholarship Games, WONIU - Guests: 84 - Bots: 164
Users: 66,452 (2,346 active)
Latest user: EpicGamer1354

Question Mark Blocks v2.0.0

SMW Blocks → Question Mark Blocks v2.0.0

Submission Details

Name: Question Mark Blocks v2.0.0
Authors: MarioFanGamer, lx5
Added:
Version History: View
Act As: 25 or 130
Includes GFX: Yes
Description: A pack with some very customisable question mark blocks including a power up dependent block (similar how the flower and feather ?-blocks from the original game act like), a block to spawn enemy sprites, Yoshi eggs, place an item to the item box, giant versions of them and a giant coin block.
You can change the sprite (obviously), the initial sprite state (for carryable and some other sprites), the power up out of block/ stun/ random sprite timer (depending on the sprite), the sound effect, some bounce block settings including properties too and even whether the block is dependand from the item memory or not (requires the included object).

Be aware that due to unoptimised routines (not my fault, really), the giant blocks can cause black lines on top of the screen or glitch the HDMA for one frame.
To minimise the chances of it happening, you can apply the VRAM optimisation patch.

Read the readme for more information.
Also thanks for LX5 for two routines and the Yoshi egg blocks.

NEW Made blocks compatible with the latest version of GPS.
NEW Modified blocks to use base blocks as well as ASM files which include these bases to remove as much logic as possible + makes expansions much easier.
NEW Fixed compatibility with the latest version of GPS.
NEW Changed logic of giant blocks to only have one block per type necessary + added support for upper corners as well.
NEW Added a question mark block which spawns another block and not a sprite.
NEW Included block duplication (no, really) and Bounce Block Underwater Push.
NEW Updated graphics.
Tags: 32x32 giant item box item memory lorom question block sa-1 yoshi egg
Comments: 42 (jump to comments)
Rating:
4.0 (2 ratings)
No rating
Download 44.78 KiB | 1,768 downloads

Screenshots

View all

Comments (42)

 MarioFanGamer Author Link
Fixed giant_question_block.asm which previously included question_block_base.asm rather than giant_question_block_base.asm as expected (bug report by LadiesMan217).
TheBourgyman Link
These blocks have several bugs, mostly related to when Mario kicks a sprite up, to hit the block from below:

- For the enemy question blocks (i.e. those where you can set the sprite as custom), kicking a shell upwards at them will result in the shell centering itself and lose it's X speed. Pushing $0F at the beginning of the SpawnThing routine, and pulling it back at the end of it fixes the issue.
- This fix however introduces another bug: If Mario double-carries two sprites and kicks them up so both sprites trigger the block from below on the same frame, the resulting brown block will duplicate itself on layer 2 (and vice versa if it's already on layer 2). The culprit may be around $185E and how Y is handled.
- Putting the sprite number of an enemy in a power-up question block (i.e. those without the custom sprite option) may result in 2 to 3 of that sprite coming out when hitting them from below with a P-Switch or a baby Yoshi.
- Finally, depending on specific yet seemingly arbitrary locations in the level, throwing a shell up to the question block will simply crash the game. This seems to happen more in screens 10 and over, and it's especially prone to crashing in tall horizontal levels. Commenting out STZ $185E in the base .asm file prevents the crash, but this ought to have consequences.

MM102 Link
The coin block uses the code:
Code
INC $17D0|!addr,x

This works fine in most normal cases, however if you manage to spawn more than 4 coins at the same time you can over increment the spin coin slots breaking coin spawning. Changing that to this seems to solve the issue.
Code
LDA #$01
STA $17D0|!addr,x
Hamilton64 Link
This block is not yet compatible with patch wall kick. Because the hack crashes when Mario hits it. Can you please fix this problem?
ShadowMistressYuko Link
I want 16x48 Question Mark Block.
 Major Flare Link
Tested with: GPS 1.4.3, Lunar Magic 3.33, ZMZ 1.08 and SA-1 1.40.

Have tested this before. But now I have found some time to actually moderate it. That being said, I've used several tests that I could think off, aside of the examples. I even coded a spinning coin sprite to test (which resulted in a bad sprite, but hey, I'm testing the new pixi as well).

All in all, all of my tests worked, sans one involving a custom sprite and extension bytes. However, I found it to be the sprite's fault, as the extra byte handling was made in the init routine, and I was trying to spawn the sprite at states $08 and $09 (which worked for the most part). That's being said, I conclude that there is no significant evidence enough to prevent the acceptance of this block pack. Cheers.
DasFueller Link
OK. I came back to this and now I understood and succesfully inserted question_block_single.asm with a key inside. It does spawn the key but after a second or so, it also spawns a koopa?!? Tested it on a clean rom as well.
 MarioFanGamer Author Link
This is what happens when you haven't set !1540_val to zero and the sprite doesn't unstun itself. I mentioned that at the F.A.Q. in the readme.
DasFueller Link
Same as in the other version: When trying to apply the simplest block (question_block_single.asm) with a normal sprite (P-Balloon) I get this error from GPS:
(E5088): Define 'sprite_extra_byte1' wasn't found
 MarioFanGamer Author Link
You're just inserting the wrong file. The latest version uses two files (with question_block_base.asm being mandatory but included in the file) and if question_block_single.asm doesn't contain a line with incsrc question_block_base.asm, you haven't updated it properly.
DasFueller From older version: Question Mark Blocks v1.3.0 Link
When trying to apply the base block (question_block.asm) with a normal sprite I get this error from GPS:
error: (E5088): Define 'sprite_extra_byte1' wasn't found
 MarioFanGamer Author From older version: Question Mark Blocks v1.3.0 Link
Incompatibility with the latest version of GPS. Use this version instead which also fixes a couple bugs.
ModernKiwi Link
Are there any plans to make this compatible with LX5's custom powerups?
Amomario123w Link
they arecompatible with LX5's custom power ups actually. let me find the code you need to insert on the blocks and i come back.
 MarioFanGamer Author Link
Originally posted by Elie Barnes
i keep getting errors when trying to insert this with GPS, is there a simple version available?

It would be nice if you mention, what kind of errors you're getting.
Elie Barnes Link
i keep getting errors when trying to insert this with GPS, is there a simple version available?
AmazingChest From older version: Question Mark Blocks v1.3.0 Link
These have a bug when used as invisible blocks where if bonked at one of their corners it's possible to activate the block but continue moving upward. It's easily fixed though, just by zeroing the player's Y speed right before the last RTL:

Code
	STZ $7D
	RTL
Amomario123w From older version: Question Mark Blocks v1.3.0 Link
what "MARIOBELOW:" code we must erase? for the giant top blocks?
armyofwin98 From older version: Question Mark Blocks v1.3.0 Link
del #smw{-_-}#lm{showprev}
Amomario123w From older version: Question Mark Blocks v1.3.0 Link
they aren't compatible with lx5 power up pack saddly the power ups look pretty glitchy. if you want to use it with the power-ups put this code:
Code
	lda $15E9|!addr
	pha
	stx $15E9|!addr	
	%init_item()
	pla
	sta $15E9|!addr
	lda #$00
	sta !7FAB10,x

below this code inside the asm of the question blocks line 169
Code
	LDA #!ExtraByte1
	STA !sprite_extra_byte1,x
	LDA #!ExtraByte2
	STA !sprite_extra_byte2,x
	LDA #!ExtraByte3
	STA !sprite_extra_byte3,x
	LDA #!ExtraByte4
	STA !sprite_extra_byte4,x
and now it would fixed the graphics issue.
don't blame me if this isn't woking for you i just tested it with the giant blocks.
also and for the propeller suit power up just erase the 2 last lines of the new code it should look like this
Code
	lda $15E9|!addr
	pha
	stx $15E9|!addr	
	%init_item()
	pla
	sta $15E9|!addr
this last part of code is just for the propellersuit to make it work to the other ones just use the first one
BreadWheatmann From older version: Question Mark Blocks v1.3.0 Link
Inserting the enemy question block (the one which comes with the files) with the newest update of GPS results in an error wherein the program reports a missing define for !sprite_extra_byte1 (presumably 1 through 4 considering that they only ever appear in one line in the whole script). This error has only occurred for me upon using the newest version of GPS 1.4.21 so I'm not sure why or how it's suddenly happening but, like, just so you know.

Edit: NinjaBoy found a fix! Replace the code:
LDA #!ExtraByte1
STA !sprite_extra_byte_1,x
LDA #!ExtraByte2
STA !sprite_extra_byte_2,x
LDA #!ExtraByte3
STA !sprite_extra_byte_3,x
LDA #!ExtraByte4
STA !sprite_extra_byte_4,x

With the following:
LDA #!ExtraByte1
STA !extra_byte_1,x
LDA #!ExtraByte2
STA !extra_byte_2,x
LDA #!ExtraByte3
STA !extra_byte_3,x
LDA #!ExtraByte4
STA !extra_byte_4,x

In the newest version of GPS (1.4.21), the names of these built-in defines were changed for some reason. Changing this code in the necessary blocks (those including the extra byte defines at the top) will solve the error issue.

On an unrelated note, these blocks work quite well once inserted properly. Very customizable and versatile. An issue I've found is that sometimes they'll appear to be invisible when certain sprites are set to spawn from them, but that might've been an error on my part in all honesty. Regardless, good block!
Gamma V From older version: Question Mark Blocks v1.3.0 Link
There doesn't seem to be a setting for the !sprite_extra_bytex defines.
Apple Boy From older version: Question Mark Blocks v1.3.0 Link
Originally posted by Redstonetech181
These look really good. Can you make the 16x48 ? Block, like seen in SM3DW?

Also in Super Mario 3D Land!
Redstonetech181 From older version: Question Mark Blocks v1.3.0 Link
These look really good. Can you make the 16x48 ? Block, like seen in SM3DW?
 Major Flare From older version: Question Mark Blocks v1.3.0 Link
Tested with: GPS 1.4.1, Lunar Magic 3.03, SA-1 1.31 and ZMZ 1.08.

Worked fine. There was only one typo in one of the blocks that made i t unable to be assembled, but I fixed it. Approved.
zacmario From older version: Question Mark Blocks v1.3.0 Link
Ok, thanks. I must have done something wrong they just act like 130 tiles and don't move or spawn anything. I read the read me, but I must be missing something.
 MarioFanGamer Author From older version: Question Mark Blocks v1.3.0 Link
Nope, just insert the blocks directly Map16 tiles. In fact, you should since the block is still affected by item memory, just that the block itself doesn't set item memory.
zacmario From older version: Question Mark Blocks v1.3.0 Link
if I dont need the "item_memory_dependent" option, do I still need object tool?
TheLegendaryOrb From older version: Question Mark Blocks v1.2.0 Link
Awesome, thanks!
Romano338 From older version: Question Mark Blocks v1.2.0 Link
How can I spawn a sprite with bit 0 set to 1? The thing you put in "extension" when you insert a sprite
turtlecat24 From older version: Question Mark Blocks v1.2.0 Link
cool
 Erik From older version: Question Mark Blocks v1.2.0 Link
They seem to work. That took a lot of time to test, but I didn't find any issues except for some blocks in the examples folder using %move_spawn_relative_to_block instead of the correct %move_spawn_relative. Also a typo in your block list, it said 30V instead if 30B. I corrected both in the submission.
TheJullasicFox From older version: Question Mark Blocks v1.1.1 Link
Originally posted by MarioFanGamer
Originally posted by TheJullasicFox
Those 32x32 block graphics are...
ugly

Thank you, I am not the best artist. The "harsh" criticism pretty much applies to it.

I didn't mean to be rude, it's just that I'm not a fan of those graphics.
 MarioFanGamer Author From older version: Question Mark Blocks v1.2.0 Link
Keep in mind that if you want to use these blocks, you have to use the latest version of GPS due to it featuring the necessary routines.
 MarioFanGamer Author From older version: Question Mark Blocks v1.1.1 Link
Originally posted by TheJack'oLanternFox
Those 32x32 block graphics are...
ugly

Thank you, I am not the best artist. The "harsh" critism pretty much applies to it.
TheJullasicFox From older version: Question Mark Blocks v1.1.1 Link
Those 32x32 block graphics are...
ugly
 MarioFanGamer Author From older version: Question Mark Blocks v1.1.1 Link
I have got an important note if you use custom power ups: The initial sprite state has to be set to 1 from then, not 8 like the vanilla power ups do.
Also, you have to replace the #$10 at LDA #$3E : STA $15AC,x on the bottom with #$3E, else the power up gets pushed out of the wall.
 MarioFanGamer Author From older version: Question Mark Blocks v1.1.1 Link
@Epic_Manky: Have you set the second value of "IsCustom:" to an odd number? If not then I'll look into it.
Epic_Manky From older version: Question Mark Blocks v1.1.1 Link
So...how do I use this, exactly? I'm trying to spawn a custom sprite, (an ice flower, more specifically) but the block either spawns a shelless Koopa when Mario is big.
 MarioFanGamer Author From older version: Question Mark Blocks v1.1.1 Link
@toad64: It's a patch which allows you to create custom object. The main purpose with the blocks is the item memory i.e. the game knows in the level whether the block and sometimes sprite were activated or not.
TheOrangeToad From older version: Question Mark Blocks v1.1.1 Link
What ObjecTool do.
DiscoTheBat From older version: Question Mark Blocks v1.1.1 Link
I love how it uses the ! Blocks and how it turns the Yoshi Eggs into something other than just one ups. Good work!