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
DYNAMIC SPRITES REVOLUTION
Warning: This is SMW Hacking, Not DKC Hacking.
Summary:
-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.
Faqs and DEMO Boss Video
Video with Secret Exit of first level of the DEMO
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.
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.
DOWNLOAD LINK
Video:
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.
DOWNLOAD LINK
Dynamic Z V3.75 Beta 3
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.
Download Link
Why Dynamic Z is far superior than DSX?
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.
Download Link
Dyzen for Normal Sprites V1.0.0.5
It is basically the old Dyzen for Normal Sprites but compatible with Pixi, then you don't need to transform the sprite from giepy to Pixi.
Download Link
Dyzen Thread with Workshops
Sprite Release
I will Upload 14 Sprites this C3, all of them use Dynamic Z. Today I will upload 8 of them, the others I will upload during the C3.
Now you will need to put this Routines of Pixi to use them:
Routines
Those are routines that you must put on Pixi's routines folder.
Also you must add this to the folder "Pixi/asm/ExtraDefines" folder:
Extra Defines
DKC Contact Effect
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.
Usage:
By default the routine just spawn the vanilla White Star, you must put 1 to spawn the Cluster instead.
Gnawty
A pretty Simple sprite, it just moves to one or other side. It includes 2 Versions:
-Regular Version fall from Cliffs
-Darker version don't fall from cliffs.
Palette, Starter movement direction and X Speed can be changed with extra bytes.
Klaptrap
The one of the iconic enemies of DKC 1. It includes 2 versions:
Cyan Version: Just walk.
Purple Version: Jump when Player Jumps.
Both version include a Bonus variation, basically it can have Hitpoints and if you hurt it, it increase It's X Speed.
X Speed, Palette, Flash Time after Hit and Jump speed can be set using Extra Bytes.
Klump
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.
Klump Grenade
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:
DKC Explosion
A cluster sprite with DKC Explosion.
NSMB Mushroom
A regular mushroom but with smooth animation, also has the benefit that it is dynamic then you select what palette use for it.
Super Mario Maker Midway Flag
A Midway based on the version of Super Mario MAker.
Megaman X's Met
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.
Megaman X's Explosion
Just a Cluster effect of Explosion used in Megaman X when enemies dies, it is requires by Met. It is a Semi-Dynamic Cluster.
DKC's Butterflies and Smallfishes Cluster Effect
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.
DKC's Zingers
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
Unagi from SM64
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":
Megaman X's Hotario
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.
The platform in the same way than my Zingers, use my movement system then it is very flexible.
???????
I dont know, i just did this because i was bored.
Warning: This is SMW Hacking, Not DKC Hacking.
Summary:
-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.
Faqs and DEMO Boss Video
Video with Secret Exit of first level of the DEMO
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.
DOWNLOAD LINK
Video:
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.
DOWNLOAD LINK
Dynamic Z V3.75 Beta 3
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.
Download Link
Why Dynamic Z is far superior than DSX?
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.
Download Link
Dyzen for Normal Sprites V1.0.0.5
It is basically the old Dyzen for Normal Sprites but compatible with Pixi, then you don't need to transform the sprite from giepy to Pixi.
Download Link
Dyzen Thread with Workshops
Sprite Release
I will Upload 14 Sprites this C3, all of them use Dynamic Z. Today I will upload 8 of them, the others I will upload during the C3.
Now you will need to put this Routines of Pixi to use them:
Routines
Those are routines that you must put on Pixi's routines folder.
Also you must add this to the folder "Pixi/asm/ExtraDefines" folder:
Extra Defines
DKC Contact Effect
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.
Gnawty
A pretty Simple sprite, it just moves to one or other side. It includes 2 Versions:
-Regular Version fall from Cliffs
-Darker version don't fall from cliffs.
Palette, Starter movement direction and X Speed can be changed with extra bytes.
Originally posted by README
Extra Bit: 2 = Regular version (fall from cliff)
Extra Bit: 3 = Darker version (don't fall from cliff)
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 Bit: 2 = Regular version (fall from cliff)
Extra Bit: 3 = Darker version (don't fall from cliff)
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)
Klaptrap
The one of the iconic enemies of DKC 1. It includes 2 versions:
Cyan Version: Just walk.
Purple Version: Jump when Player Jumps.
Both version include a Bonus variation, basically it can have Hitpoints and if you hurt it, it increase It's X Speed.
X Speed, Palette, Flash Time after Hit and Jump speed can be set using Extra Bytes.
Originally posted by README
Extra Bit: 2 = Cyan Version (Don't jump)
Extra Bit: 3 = Purple Version (Jump With Player)
Extra Byte 1: Format ZZZ SSSSS
ZZZ = Internal Use of Dynamic Z
SSSSS = X Speed / 8
Extra Byte 2: 0PPP HHHH
PPP = Palette used
HHHH = Number of hitpoints + 1 (increase speed after each hit)
Extra Byte 3: Flash time after recieve damage (doesn't apply if HP is 0)
Extra Byte 4: Jump Speed for purple version (between FF and 80)
You Can change SFX using defines in ".asm" file
!MunchSFX = $35
!MunchSFXAddress = $1DFC|!addr
!DeadSFX = $36
!DeadSFXAddress = $1DFC|!addr
Extra Bit: 2 = Cyan Version (Don't jump)
Extra Bit: 3 = Purple Version (Jump With Player)
Extra Byte 1: Format ZZZ SSSSS
ZZZ = Internal Use of Dynamic Z
SSSSS = X Speed / 8
Extra Byte 2: 0PPP HHHH
PPP = Palette used
HHHH = Number of hitpoints + 1 (increase speed after each hit)
Extra Byte 3: Flash time after recieve damage (doesn't apply if HP is 0)
Extra Byte 4: Jump Speed for purple version (between FF and 80)
You Can change SFX using defines in ".asm" file
!MunchSFX = $35
!MunchSFXAddress = $1DFC|!addr
!DeadSFX = $36
!DeadSFXAddress = $1DFC|!addr
Klump
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.
Extra Byte 4: palette of Explosion
You can change some stuffs on ".asm" using:
!KlumpGrenadeID = $00
!MaxResistTime = $30
!ResistXSpeed = $20
!RecoilXSpeed = $20
!RecoilYSpeed = $C0
!WalkSpeed = $18
!DeadSFX = $37
!DeadSFXAddress = $1DFC|!addr
!HitSFX = $38
!HitSFXAddress = $1DFC|!addr
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.
Extra Byte 4: palette of Explosion
You can change some stuffs on ".asm" using:
!KlumpGrenadeID = $00
!MaxResistTime = $30
!ResistXSpeed = $20
!RecoilXSpeed = $20
!RecoilYSpeed = $C0
!WalkSpeed = $18
!DeadSFX = $37
!DeadSFXAddress = $1DFC|!addr
!HitSFX = $38
!HitSFXAddress = $1DFC|!addr
Klump Grenade
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
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
DKC Explosion
A cluster sprite with DKC Explosion.
Originally posted by README
You can change explosion sound on ".asm" with this defines:
!ExplosionSFX = $09
!ExplosionSFXAddress = $1DFC|!addr
You can change explosion sound on ".asm" with this defines:
!ExplosionSFX = $09
!ExplosionSFXAddress = $1DFC|!addr
NSMB Mushroom
A regular mushroom but with smooth animation, also has the benefit that it is dynamic then you select what palette use for it.
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 1: Format ZZZ 0D PPP
ZZZ = Internal Use of Dynamic Z
D = 1 direction left, 0 direction right
PPP = Palette used
Super Mario Maker Midway Flag
A Midway based on the version of Super Mario MAker.
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 1: Format ZZZ 0D PPP
ZZZ = Internal Use of Dynamic Z
D = 1 direction left, 0 direction right
PPP = Palette used
Megaman X's Met
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)
PPP = Palette
T = Page (0 = SP1/SP2, 1 = SP3/SP4)
Require this sprites:
!MMXExplosion = $03 ;cluster
!MetProjectile = $00 ;Extended sprite
Also it uses freeram:
!HSVEffectCanBeDone = $0060|!dp
!HSVEffectHue = $146C|!addr
!HSVEffectValue = $0F3A|!addr
!HSVEffectAddOrDec = $1487|!addr
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)
PPP = Palette
T = Page (0 = SP1/SP2, 1 = SP3/SP4)
Require this sprites:
!MMXExplosion = $03 ;cluster
!MetProjectile = $00 ;Extended sprite
Also it uses freeram:
!HSVEffectCanBeDone = $0060|!dp
!HSVEffectHue = $146C|!addr
!HSVEffectValue = $0F3A|!addr
!HSVEffectAddOrDec = $1487|!addr
Megaman X's Explosion
Just a Cluster effect of Explosion used in Megaman X when enemies dies, it is requires by Met. It is a Semi-Dynamic Cluster.
DKC's Butterflies and Smallfishes Cluster Effect
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.
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.
DKC's Zingers
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
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
Unagi from SM64
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":
Originally posted by README
!AttackMaxTime = $20
!AttackMaxTime = $20
Megaman X's Hotario
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.
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.
???????
I dont know, i just did this because i was bored.