-Super Mario World Random Revolution: First Blood DEMO.
-Player Revolution Patch.
-Dynamic Z V3.75 Beta 3.
-Dyzen for Dynamic Sprites Beta 1.
-Dyzen: Little Update of Normal Sprite Version.
-Sprites Release.
Video with Dynamic Z Installation Guide and Dyzen Sprite Creation Guide for Dynamic Sprites
Super Mario World Random Revolution: First Blood DEMO
This is a DEMO of my new Super Mario World hack, It is a collab project that includes several changes. I won't give a lot of details about Lore and all of that, but basically It is based in Only Prerrender Graphics Style, for now i only included DKC because It is the easier to do, but on the future It will include content of others games like NSMB or Killer Instinct.
This project is a small hack of only 13 levels and shows all the potential of Dynamic Z, Dyzen and Player Revolution Patch.
Some Months later after release the final version of this hack, all resources of the hack will be released, that will include:
-More than 60 Dynamic Sprites.
-10 or more Custom Bosses.
-2 or 3 Custom Players.
-Rips, Sound Effects, etc...
Credits:
ASM and Direction: anonimzwx
Sprites: anonimzwx and Codfish
Level Design: anonimzwx, Codfish and Metal Yoshi
Graphics: Codfish and Metal Yoshi
Title Screen: Metal Yoshi, anonimzwx
I know that the hack has a lot of glitches or bugs that i will fix later, but i didn't have enough time to finish all.
I was almost 4 days without sleep to finish it.
Controls:
B = Normal Jump
A = Spin Jump
L during air = Ground Pound
If mario Touch a Wall While pressing Y or X and the direction of the wall, it does Wall Grab and it can do a Wall Jump.
2 or 3 Consecutives Jumps at Max Speed = Double or Triple Jump.
Advisement: All flickering of the hack is caused by Sample Stream System, not for Dynamic Z. The version without Mario Voices doesn't have flickering.
Player Revolution Patch
This is a Patch to have custom players, you can have up to 127 differents Custom Players, for now it works as a Patch but i will transform It into a Tool similar to Pixi. It allows to change:
-Player Physics.
-Player Hitbox.
-Player Carry Item Routine.
-Player Hurt Routine.
-Player Dead Routine.
-Player Graphic and Dynamic Routine. Player can be of any size (recommended of 48x48 or less)
This patch Requires Dynamic Z to work, because It uses Dynamic Z Player Features to change Dynamic Routine and Palettes of player. It is very experimental for now, when it is finished it will be uploaded to Tool Section.
Dynamic Z is a Game Changer patch, It allows severals features for Graphic, Tilemap and Color Palette Change. It also include support for new Dynamic Sprites.
It Includes:
-Dynamic Sprite Support: Sprites that loads their graphics when is needed to the VRAM.
-Semi-Dynamic Sprite Support: Similar to Dynamic sprites but they load all their frames to VRAM when they are loaded to the level, Very useful for sprites without a lot of frames because you can select where load the palette and where load the graphics allowing you several types of differents sprites per level.
-Shared Dynamic Sprites: It is similar to Dynamic Sprites but all Shared Dynamic Sprites shares the same animation. This allows dynamic sprites that doesn't have restrictions of the number that you can put on the screen.
-Mixed Shared Dynamic Sprites: It is a variation of Shared Dynamic Sprites that is useful for sprites that have an animation that almost always is used, They doesn't have restriction on the number that you can use on the screen. Basically they are Shared Dynamic Sprites during Idle animation and Regular Dynamic Sprites for others animations.
-Dynamic Graphic Change.
-Dynamic Tilemap Change.
-Dynamic Color Palette Change.
-Several features for Color Palette change including: Change hue, Saturation and Value of color palette, also Mix colors on the palette with a base Color.
-Player Features: Optimize Dynamic Routine of Player loading its graphics or palettes only when is needed saving a lot of cycles during NMI. Also allows to Disable Player Dynamic Routine to do your own Dynamic Routine, having any graphics or color palette for Player Player.
All Dynamic Sprite Features are allowed for Normal, Cluster, Extended and Overworld Sprites.
1. Dynamic Z doesn't use a buffer, then it is a lot faster because doesn't require to load Graphic to a buffer and then load graphics to VRAM. It loads the graphics directly to VRAM. This saves a lot of cycles and reduce a lot of slowdown of Dynamic Sprites.
2. Dynamic Z only loads to VRAM the minimum amound of data possible. It doesn't use Fixed Sizes and Dyzen optimize the GFX to minimize the number of OAM Tiles and VRAM used. Here an example of Klump GFX.
3. Dynamic Z only loads the frames of sprites when they change. It doesn't load Frames each frame like DSX. This save a lot of cycles during nmi and reduce a lot the flickering.
4. Dynamic Z Has more support than DSX. Because Dynamic Z has Dyzen and with Dyzen you can do Dynamic Sprites in very short time. You just need a Sprite Sheet and the tool rip the graphics for you.
5. Dynamic Z allows a lot more sprites than DSX. By default Dynamic Z allows the double of Dynamic Sprites than DSX, now if you disable vanilla exanimation and use an uber asm to change some parameters of Dynamic Z, You can have up to 48 16x16 tiles for dynamic sprites on SP3 and SP4, With vanilla exanimation you can have up to 32 16x16 tiles.
6. Dynamic Z doesn't use fixed sizes for sprites, Each sprite request a number of tiles to use, and that number of tiles is the minimum possible for them.
7. Dynamic Z Has autodefragmentation system, this means that sprites try to use the minimum space in VRAM and the space used by dynamic sprites is compacted to use the lowest possible.
8. Dynamic Z allows dynamic sprites to load their palette dynamically and select what palette number use.
9. Dynamic Z allows you to select what space of SP3 or SP4 use for dynamic sprites, also you can select the size of the space for dynamic sprites.
10. Dynamic Z allows sprites to use color palettes effects like the effects showed on the DEMO.
11. Dynamic Z includes a tool to insert Dynamic resources such graphics, tilemaps or palettes. This allows an easier and standarized way to insert those resources and avoid "extra patches" to insert graphics for dynamic sprites that requires more than 1 bnk of graphics.
12. Dynamic Z has a tool to select its features and insert it easier on the ROM.
13. Dynamic Z will have a lot more sprites than DSX in the future (just think that just in this C3 i am releasing 14 sprites, in Sprite sections there are only 29 Dynamic Sprites)
14. Dynamic Z allows also variations of dynamic sprites like shared dynamic sprites, mixed dynamic sprites and semi-dynamic sprites.
15. Dynamic Z also can be used for dynamic graphic/palettes/tilemaps change.
16. Dynamic Z smells like lemon.
17. DSUX
Here an Example of potential of Dynamic Z, This is a boss of Wyatt's Casio Mario World. It was made with version V3.7:
V3.75 is a lot better than V3.7.
Thanks to Wyatt to allows me to show that on my thread.
Also Codfish was doing some experiments with Dynamic Z (Also Helped me with some sprites, Krusha and gnawty was coded between me and Codfish)
DOCUMENTATION ABOUT INSTALLATION AND USE SOON.
Dyzen for Dynamic Sprites Beta 1
This is a Tool to do Graphic, Dynamic, Animation and Hitbox Routine for sprites.
It Auto Rip Sprite Sheets in format "png" of 15 colors + 1 of transparency (Alfa 0)
With this tool you can do Dynamic Sprites in less of 5 mins if you have a Sheet.
It is a Cluster Effect that appears when the player touch one enemy, It is used for all the Dynamic Sprites, It is optional. To Display it, you must use the routine %DisplayContactEffect() from a sprite code after a Player Interaction. It will calculate the position to spawn the effect and display it. Check the routine DisplayContactEffect.asm. You must set the Cluster ID used for the sprite.
Code
!ContactEffect = $00 ;IF Of the cluster Sprite
!UseDefaultStarEffect = 1 ;0 = DKC effect, 1 = smw effect
Usage:
Code
LDA #$XX ;00 = Spawn the effect always
;01 = Spawn the effect when player is not flashing
%DisplayContactEffect()
By default the routine just spawn the vanilla White Star, you must put 1 to spawn the Cluster instead.
It basically can be killed by Spin Jump and only when Mario is big or using Yoshi.
In other case, it will knockback the player and put a pose of "protection".
Brown version throw grenades when it try to protects it.
Originally posted by README
Extra Bit: 2 = Green Version
Extra Bit: 3 = Brown Version
Extra Byte 1: Format ZZZ 0D PPP
ZZZ = Internal Use of Dynamic Z
D = 1 direction left, 0 direction right
PPP = Palette used
Extra Byte 2: X Speed (Max Value 7F)
Extra Byte 3: Time to make the grenade explode in Brown Version.
Extended Sprite Grenades that Explode after some time. They can be spawned with Brown version of Klump or with Grenade Spawner. You can configurate a lot of parameters of Grenade Spawner with Extra Bytes:
Originally posted by README
It has 2 Timers to have differents Spawn Rythms at the same time:
Extra Byte 1: Min Time for Timer 1
Extra Byte 2: Min Time for Timer 2
Extra Byte 3: Max Time for Timer 1
Extra Byte 4: Max Time for Timer 2
Extra Byte 5: Min X Speed for grenades
Extra Byte 6: Max X Speed for grenades
Extra Byte 7: Min Y Speed for grenades
Extra Byte 8: Max Y Speed for grenades
Extra Byte 9: X Offset to spawn grenades
Extra Byte 10: Y Offset to spawn grenades
Extra Byte 11:
Format: 0GGG 0EEE
GGG : Palette for Grenade
EEE : Palette for Explosion
Extra Byte 12:
Format: MMMM mmmm
MMMM : Max Time to grenade explosion
mmmm : Max Time to grenade explosion
The iconic enemy of Megaman X, Met. I did 4 versions, each of them throws differents projectiles. It is a semi-dynamic sprite and it's projectiles are extended sprites.
Originally posted by README
It uses 5 Extra bytes Semi-Dynamic Config
Format: LLLL PPPT
LLLL = Line of the GFX used as start position for Met. (Max Value A)
PPP = Palette
T = Page (0 = SP1/SP2, 1 = SP3/SP4)
Extra Byte 1:
Extra Byte 2: Type
Values between 0 and 3. Each type is of a different color and throws differents projectiles.
Extra Byte 3: Sprite X Speed (Max value 7F)
Extra Byte 4:
Format TTTT HHHH
TTTT = Max time to spawn bullets
HHHH = Hitpoints
Extra Byte 5: Semi-Dynamic Config for Megaman X Explosion:
Format: LLLL PPPT
LLLL = Line of the GFX used as start position for Met. (Max Value A)
Here we have 3 differents clusters effects that can be used with Dynamic Z. They are Shared-Dynamic Clusters this means that they doesn't have restrictions like the Dynamic Sprites.
It includes 3 Sprites:
-Butterflies
-Small fishes
-Spawner
Spawner is required to spawn the fishes and butterflies. In readme there is enough information about that. Also it already has 3 versions included on the .json.
Originally posted by README
Spawner has parameters to spawn them.
Extra Byte 1: Cluster Slot that you wanna spawn. (The slot where you inserted the butterflies or fishes)
Extra Byte 2: Cluster Property 1
For Fishes = 0000 PPP T
PPP = Palette used
T = Type (0 blue fish, 1 orange fish)
For Butterflies = 0000 PPP0
PPP = Palette 1 used by butterflies.
Extra Byte 3: Cluster Property 2
Unused in fishes.
For butterflies = PPP0 QQQ0
PPP = Palette 2
QQQ = PAlette three
Customizable Constants on ".asm" for butterflies and fishes:
!MinRespawnTime = $10 ;Min time to respawn a the sprite when it is out of screen.
!MaxRespawnTime = $40 ;Max Time to respawn a the sprite when it is out of screen.
!MaxSpawnTime = $80 ;Started time to spawn a new sprite.
!MaxSpawn = $03 ;Max number of sprites spawned.
An iconic enemy of Donkey Kong Country, It is a special kind of Dynamic Sprite, actually it is a Mixed Dynamic Sprite, This system is a bit experimental, but basically It is a system that allows a very big number of Dynamic Sprites if they fulfill some conditions, basically sprites that use almost always the same animation except in some specific cases can share an idle animation, then they acts as Shared Dynamic Sprites when they are in Idle animation but they Acts like Regular Dynamic Sprites during others animations, this allows to skip a lot of Dynamic Sprite Limitations and have a lot of them on the screen.
I was not sure to upload this sprite because It is very complex to use, but basically It has a movement System that allows millions of differents types of movements like:
-Circle
-Spiral
-Ellipse
-Follow Player in X, Y or Both Axys
-Wave Movement
-Arc Movement
-A lot of others indescriptible movements
Originally posted by README
Extra Byte 1: Format ZZZ 0D PPP
ZZZ = Internal Use of Dynamic Z
D = 1 direction left, 0 direction right
PPP = Palette used
Extra Byte 2: Movement Type, Format: XXXX YYYY
XXXX = Movement Type for X Axys
YYYY = Movement Type for Y Axys
0000 = No Movement
0001 = Constant Movement
0010 = Follow Player Movement
0011 = i + R*Sin(P + A*PI*a)
0100 = i + R*Cos(P + A*PI*a)
0101 = i + R*Sin(P + A*PI*Sin(a))
0110 = i + R*Sin(P + A*PI*Cos(a))
0111 = i + R*Cos(P + A*PI*Sin(a))
1000 = i + R*Cos(P + A*PI*Cos(a))
a = Angle
i = Coordinate
R = Ratio
P = Phase
A = Amplitude
Extra Byte 3: Speed (Max Speed for Follow Player Movement), It works on any movement type exept 0000
Format: XXXX YYYY
XXXX = Speed in X Axys
YYYY = Speed in Y Axys
The speed is the value * 0x10
Extra Byte 4: Acceleration used on follow player movement, IF it is not 0 in modes 0011 or more also follow player in that axys.
Format: XXXX YYYY
XXXX = Acceleration in X Axys
YYYY = Acceleration in Y Axys
Extra Byte 5: Phase Angle for Types 0011 or more (Min value $00, Max Value $B3)
Each Value are 2°. Interesting values: 0 = 0°, 0x2D = 90°, 0x5A = 180°, 0x87 = 270°
Extra Byte 6: Angle Speed for Types 0011 or more
Extra Byte 7: Amplitude for Types 0011 or more.
Format: XXXX YYYY
XXXX = Amplitude in X Axys
YYYY = Amplitude in Y Axys
Extra Byte 8: Ratio for Types 0011 or more
Format: XXXX YYYY
XXXX = Ratio in X Axys
YYYY = Ratio in Y Axys
Extra Byte 9: Ratio Increase for Types 0011 or more
Format: XXXX YYYY
XXXX = Ratio Increase in X Axys
YYYY = Ratio Increase in Y Axys
This allows to expand the Ratio, if the sprite get the maximum Ratio then decrease the ratio.
Extra Byte 10: Max Ratio for Types 0011 or more
Format: XXXX YYYY
XXXX = Max Ratio Increase in X Axys
YYYY = Max Ratio Increase in Y Axys
This was the entry of the Mad Scientist First Round. Unagi is an enemy of SM64. It includes 2 versions:
-Wall Unagi (Unagi.asm): It waits on the background wall and attacks player when it is near.
-Swiming version (Unagi2.asm): Its a version similar to a blurp that swims following player in Y Axys.
If it is out of a water level, it just keeps in the same space like if it is out of water.
For Wall Unagi you can customize the "Cool Down Time" after attack on the ".asm":
This was is my favorite. I wasn't very sure to upload it, It was my entry on Mad Scientist Contest Second Round, it is a very complex sprite that can be used for a whole level gimmick.
Originally posted by README
This version of Hotario has the following features:
-Makes all BG/FG Color Palette Darker.
-Display a Light Trail Effect.
-The Light Trail reveal hidden platforms.
-Blue Light Trail makes player very Slow.
-Red Light Trail makes player very Fast.
-Can go in 4 directions (Up, Down, Right and Left)
-Has 2 modes, one mode just cross the screen, the other mode stay on screen permanent.
-Autoscroll Screen to right, up or Down.
-Hidden Platform has a very high amount of movement options.
The platform in the same way than my Zingers, use my movement system then it is very flexible.
Easily the most impressive ASM thread thus far. This hack that you're working on seems to be the hack that is more distant to the vanilla Super Mario World than any other hack we've ever seen and these tools are extremely powerful. Great Work
Ngl, this kind of reminds me of a bootleg except made in a actually competent manner for some reason lol; think it's probably due to some of the animations and sprites honestly
Otherwise yeah, this is pretty good haha; seeing something like this in SMW especially is really nice, and I can't wait to see how others would be able to use this tool as well
Thanks guys . I am uploading a lot of stuff to the thread, i was like 3 hours doing the post. Still not Finished, now i am uploading the sprites.
------------------------------------------------------
Now you're playing with POWER. Really neat tools. I may try to use them someday, once I understand better the basics of ASM. Overall, I shall play your demo hack soon.
I was trying to beat the boss without save states/rewinds, I got a game over because of his super long jump and sometimes I jump on him and I take damage, and later this happened when I lost all HP after continuing, the game froze:
I was trying to beat the boss without save states/rewinds, I got a game over because of his super long jump and sometimes I jump on him and I take damage, and later this happened when I lost all HP after continuing, the game froze
Sadly the demo has some glitches and bugs that I must fix. That "interaction" bug is very weird and i am still trying to find why it happends.
About "take damage when you jump over it". That only should happends when It is red, Red = If you touched it, you get damage.
------------------------------------------------------
Very impressive demo. It's hard to believe that that's still Super Mario World. I hope that Dynamic Z and all its components will prove useful as well, especially if the new system is faster than dsx.asm. In particular, Dyzen should make setting up graphics routines for sprites with a lot of different XY offsets a lot less of a hassle, which is certainly handy. Does the tool generate or require a specific graphics routine, or does it just give you the data to use as you please? I'm curious about the animation and hitbox creation options, too. I'll definitely have to test those tools out later.
Very impressive demo. It's hard to believe that that's still Super Mario World. I hope that Dynamic Z and all its components will prove useful as well, especially if the new system is faster than dsx.asm. In particular, Dyzen should make setting up graphics routines for sprites with a lot of different XY offsets a lot less of a hassle, which is certainly handy. Does the tool generate or require a specific graphics routine, or does it just give you the data to use as you please? I'm curious about the animation and hitbox creation options, too. I'll definitely have to test those tools out later.
Dynamic Z is a lot faster than DSX, because Dynamic Z Doesn't use a buffer like DSX, also allows a lot more dynamic sprites on the screen, allows you to upload the palette of the sprite dynamically, it is a lot more safe than dsx, tbh it is like 100000 times better than DSX. I will do a Comparative between both systems and why it is a lot better than DSX in all cases.
About the tool in the case of dynamic sprites, the graphic routine is made automatically by Dyzen, the tool rip the graphics in the most efficient way possible. For example this is an example of Klump GFX:
You can do the animation and hitbox on Dyzen, that must be done manually. Also the tool allows 1 Hitbox per frame or use the same hitbox for all frames.
Here i have a video about the ripper:
About animations and interaction i have some videos about how it works i also did a thread about how to use dyzen and do sprites very fast:
This is definitely some impressive-looking technology! To be honest, I'm not quite sure if the DKC/pseudo-3D graphics style in a Mario hack is really for me, but just the ability of being able to pull off all this stuff is quite impressive on its own. DynamicZ hs really come quite a long way.
This is definitely some impressive-looking technology! To be honest, I'm not quite sure if the DKC/pseudo-3D graphics style in a Mario hack is really for me, but just the ability of being able to pull off all this stuff is quite impressive on its own. DynamicZ hs really come quite a long way.
Well i did "pseudo-3D" graphics because they looks nice for me, but you can use any graphics for dynamic sprites, if your sprite has to much frames, you can do it dynamic and save space on vram.
I think i will remake some of the dynamic sprites of SMWC's sprite section, Yoshi island has a lot of sprites that can be Dynamic.
------------------------------------------------------
This is incredible. I can't wait until I finish up some of my projects and start working on sprites using your tools.
If you use it, contact me by DM in discord and i can help you with any doubt that you have, I have documentation for all but almost all is in spanish, then until finish the documentation in English anyone who wanna use them i recommend to contact me by DM in discord.
------------------------------------------------------
Follow Us On