Language…
14 users online: Avadar Shadowsong, Caquetoose, Jamie,  KungFuFurby, LocoFuzzyPants, lolyoshi, Lush_50,  Nanako, Sarcose, SheikNorris, Space_Pig, stephenlong2000, T.CYAN.S-smwcentral,  Thomas - Guests: 92 - Bots: 211
Users: 66,482 (2,357 active)
Latest user: ItsduhToki

Dynamic X Open Beta V0.6

Link Thread Closed

Tool

Finally i finished the university then i have a lot of free time, i am working on Dynamic Z V3.7, it will be finished during august or october. What is new?

-Easier installation, it wont require manual !Freespace anymore to use its library.
-Dynamic sprites only upload graphics to the VRAM when it is necessary.
-Some optimizations.
-Now you can use 30fps and 60fps dynamic sprites on the screen, but each 60fps use 2 30fps slots.
-Better Giant Dynamic Sprites Support.
-Better Semi-Dynamic Sprites support.
-Better Custom Player support. (requires Player hijack)
-Now you can change the limit for graphics change (on the V3.5 the limit was 0x800 bytes per frame or 0xC00 bytes if you use 50% more mode, now you can change that limit depends on your necessities).
-Original Player Palette is uploaded only when is needed. (requires Player hijack)

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I'm so excited for this! The graphical changing capabilities look like a lot of fun to play with.
I finished the new system of Dynamic Z for 32x32 sprites, i am still working on the others sizes, the new system only loads graphics to the VRAM when it is necessary, also only send to the VRAM the necessary data to do the frame.

I am also working on Dyzen Sprite Maker's Dynamic Sprite Support, It recieves a Sprite Sheet and it generate the palette and all frames based on the sprite sheet then you save a lot of time, also the tool optimize tiles to use the minimum number of tiles and the minimum space on the VRAM, here an little preview:



Probably i will change a lot of things, Still is very experimental.

Here an image of the graphics generated:



And here some Gif about the sprite made:





------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I finished 48x48 Dynamic Sprite Support, my next step i work on 16x16 and 16x32 Dynamic Sprite support, my goal is the following Dynamic Sprite sizes:

Size: 16x16
Max Space Used on Vram: 16x16
Slots Used: 1

Size: 32x16
Max Space Used on Vram: 32x16
Slots Used: 2

Size: 32x32
Max Space Used on Vram: 64x16
Slots Used: 4

Size: 48x48
Max Space Used on Vram: 128x16
Slots Used: 8

Size: 64x64
Max Space Used on Vram: 128x32
Slots Used: 16

Size: 80x80
Max Space Used on Vram: 128x48
Slots Used: 24
(Require 50% more mode or SA-1 widescreen trick)

Size: 96x96
Max Space Used on Vram: 128x128 (SP3 and SP4)
Slots Used: All Slots
(Only 30FPS animation)

Size: 112x112
Max Space Used on Vram: 128x192 (SP2, SP3 and SP4)
Slots Used: All Slots
(Only 30FPS animation and require 50% more mode or SA-1 widescreen trick).

You can use 16 slots per frame (with 50% more mode or SA-1 widescreen trick, 24 slots), you can use any combination of 16 (or 24) slots, for example 2 Dynamic sprites of 48x48.

There are 2 kinds of animation frame rate, 60 fps (can update Dynamic graphic each frame) or 30 fps (can update Dynamic graphics every 2 frames). 30FPS Dynamic Sprites have slower frame rate but you can put the double of sprites, because they sincronize Dynamic routine between odd frames and even frame. For example if you use 60FPS Dynamic sprites you can have only 2 Dynamic sprites of 48x48 at the same time, but if they are 30 FPS you can use 4.

For now i finished 32x32 and 48x48 Dynamic Sprite support.



(Excuse me for the slowdown, have 6 sprites of 32x32 and 1 of 48x48 on the screen uses a lot of cycles, for that i recommend to use SA-1 or use less number of sprites, this is only a demonstration).

With the new Dynamic Sprite Support, the Dynamic Sprite load their graphics only when it is necessary, also they only send the necessary data to VRAM saving a lot of cycles on the NMI.

Also with the new Dynamic Sprite Support, Dyzen Tool can recieve a Sprite Sheet and make all frames of the Dynamic Sprite, then you only need to do animations and interaction.

Some extra features of the new Dynamic Sprite Support are:

-Now you can select how much space you want to use on the VRAM, the mínimum space is a half SP, if you allows more space on the vram you can have more Dynamic sprites on the screen, Max Space is 3 SP for normal Dynamic sprites. (this doesn't apply for 96x96 or 112x112 Dynamic sprites, Dynamic sprites of 80x80 requires a complete SP or more).

-Now you can select where the patch start to load the graphics, you can select between second half of SP3 or second half of SP4.

-If you use SA-1 you don't need 50% more mode to use 50% more Dynamic sprites, you only need the widescreen trick. Still 50% more mode i available if you dont want to use widescreen trick.

-Dynamic sprites now can be clusters, extended or overworld Sprite too, for overworld Sprite, Max Size is 64x64.


I am making a lot of Dynamic sprites for the next C3, some of them are from DKC, but also the bosses requested on the last C3.

-Klaptrap from DKC (includes cyan and purple versión, also allows hp)
-Zingers from DKC (includes normal and red versión, also allows hp, only can be killed with throwable items like shells, red versión only with bob omb)
-Sagat from Street Fighter (Boss).
-Magus from Chrono Trigger (Boss).
-Baby Bowser from YI (Boss, only first phase).
-And a more.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I finished cluster, extended and overworld sprite support, also 32x16 and 16x16 sprites.

This is an example of cluster of 16x16:





Both will be available when i release Dynamic Z V3.7, in the case of the butterfly it only use 1 tile of 16x16 and the fishes requiere 1 tile of 16x16 and 1 of 8x8 each kind. Both are dynamic cluster (butterflies are 16x16 and fishes are of 32x16).

In this case to save space, only one of each kind of sprite is dynamic and the others are coordinate to use the same graphics, then with only 1 dynamic sprite you can have a complete dynamic cluster effect.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
the progress is looking good, I like the butterflies. dyzen is coming along very well
64x64 Dynamic Sprite Support and Klump:



All graphics were ripped using Dyzen, this is the GFX:



Normaly this sprite with traditional way to do dynamic sprites should use 32 or 34 kb, but with new Dyzen and Dynamic Z only requires 21kb.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I remade LX5's Midway Flag to new Dynamic Z V3.7:



Here Old Graphics:



Here New Graphics:



Results:

-Old Graphics use 6 kb on the rom, New use 4.59 kb.
-Old version transfer graphics each frame, New version only transfer graphics every 6 frames. This means that new version saves 5/6 of dynamic routines.
-Old version require a buffer, New version don't use it this means that each dynamic routine of the old version produce the double of slowdown.
-Old version transfer 512 bytes to vram in 4 transfers. New version transfer between 384 and 448 bytes.

TL;DR

New version decrease slowdown 93.75% on Dynamic Routines and use 23.5% less space on the rom.


Remake Dynamic Sprites to Dynamic Z also allows to use more dynamic sprites on the screen, on DSX you only can use 4 dynamic sprites. On Dynamic Z there are 32 slots for dynamic sprites, dynamic sprites of 32x32 uses 4 slots then it allows 8 dynamic sprites of 32x32 (With 50% more mode there are 48 slots AKA 12 dynamic sprites of 32x32).

I will remake some old dynamic sprites to Dynamic Z.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
Bad news guys. I was working on all, but tbh is a lot of work and i don't have enough time to finish it before C3, I Will skip this C3 and release all on Summer C3.

The good news is that The Dark Warrior (StrikerForce) will give me graphics to do Omega Boss of FF, i will do it with the others bosses that i promised (magus, baby bowser and sagat).



------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
Lot of time without posting here. Well a lot of news about Dynamic Z.

First i remade almost all code to make it better, For now i

Finished features:

-Dynamic Sprite Support.
-Shared and Mixed Memory Dynamic Sprites.
-Real Time GFX and Tilemap Change.
-Real Time Player GFX and Color Palette Change.
-Real Time Color Palette Change.
-Player DMA Optimization.
-50% more mode.
-WideScreen (Only for SA-1).
-RGB Color Palette Effects.
-HSV Color Palette Effects.

Not Finished Features:

-Semi-Dynamic Sprites Support.
-2-Phase Dynamic Sprites Support.
-Rotation/Resize Dynamic Sprite Support (or how von farenheit wanna call them "Super Dynamic Sprite" Support, credits to Von Farenheit).
-New OAM System with priority that allows 128 OAM Tiles. AKA SUPER NMSTL.
-Block Change System (also known as the system to change a lot of blocks per frame without flickering because stripe image of SMW sux).

Complements:

-Dynamic Resource Adder (DRAdder): Tool to insert dynamic resources like palettes, gfxs and tilemaps and that allows them to be used by sprites, blocks or uberasm.

-Installer: A tool to install SA-1 and Dynamic Z easier.

Finished Dynamic Sprites that will be released with new Version:

-DKC's Klump.
-DKC's Klaptrap.
-DKC's Zinger.
-DKC's Butterflies Cluster Effect.
-DKC's Fishes Cluster Effect.

Not Finished Dynamic Sprites that will be released with new Version:

-Metal Slug X's Missils.
-DKC's Barrels.
-Roller Coaster Tycoon's Baloons
-DKC's Zinger (Boss Version).
-DKC's BiteSize.
-LX5's Midway Flag.

Patreon Only Sprites:

-Paper Mario's Putrid Piranha (Include Boss Version).
-Big Version of DKC2's Zingers Boss.

This version of Dynamic Z won't be compatible with any Dynamic Sprite uploaded to SMWC, It will need a remoderation of Dynamic Sprites, I hope that after release It I will receive support from staff, If not then i will try to remoderate Dynamic Sprites by myself.

Zingers:



Klump, Klaptrap, Butterflies and Fishes:



HSV System:





All will be available on the next C3.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I released Dynamic Z V3.75 Beta 3. It works very well and is stable, now probably i will do some little changes while it is on moderation (probably some things on the API or add some routines used by Shared Dynamic Sprites that i didn't include on the library).

DOWNLOAD LINK

This version was announced on my C3 thread where is basically i transform It SMW into DKCXNSMB with only this version and a lot of effort.

C3 Thread

This version allows:

-Dynamic Sprite Support: You can use sprites that loads their own graphics to the VRAM when is needed. They have a very Big Amount of frames if you have enough space on the ROM. They are restricted to the number of tiles available for Dynamic Sprites, By default you have 32 16x16 tiles available for Dynamic Sprites.

Here an example:



In this case both are Regular Dynamic Sprites, they have 52 frames each.

-Shared Dynamic Sprite Support: A variation of Dynamic Sprites where all copies of the Dynamic Sprite, Shares the same animation. They doesn't have restrictions, because They Share the Same Space on the VRAM.

Here an example:



(Swim Unagis are Shared Dynamic Sprites, They can be spawned a lot with Max Tile)



Fished and Butterflies are Shared Dynamic Clusters, as you can see, you can use a lot of them without problems. Also without slowdown because that gif was made in lorom.

-Mixed Dynamic Sprite: A variation of Dynamic Sprite that Mix the best of Regular Dynamic Sprites and Shared Dynamic Sprites. All copies of the sprite shares one of the sprite animations, for others animations, the sprite acts as a Dynamic Sprite. They doesn't have restrictions like regular Dynamic Sprites because the sprite only can change of animation if It is possible to change to a Regular Dynamic Sprite, in the worst case they just doesn't change of animation. They are a bit hard to code, but they worth it. I recommend to use them for sprites that doesn't need to change animation very often and keep almost always in the same animation.

Here an Example:



Zingers can be spawned a lot with Max Tile, you can have like 8 in the screen without problems and They are sprites of 48x48.

-Semi-Dynamic Sprites: They are normal sprites but they loads to vram all the graphics that They use when the first copy is spawned, after that, all copies of the sprite will use the same space in VRAM. This is one of my favorite Dynamic Sprite type because you can select where they will be spawned (Any place on SP1, SP2, SP3 or SP4) and also They can upload there palette in any of the sprite palettes (palette from 8 to 15). Also They doesn't have limitations on number and they are very handy to have a lot of differents types of enemies on the stage. I recommend use them always if the sprite doesn't a very big amount of frames and fit very well in VRAM.

Here an Example:



Mets are Semi-Dynamic Sprites and when they die spawn a Semi-Dynamic Cluster effect with the Megaman X Explosion.

-Graphic change: It is not showed on my C3 thread but basically all Dynamic Sprite support is made by this system. It is very flexible, allows to do a lot of Dynamic routines to VRAM from any sprite, uberasm or block.

I have an old video from V2.0 showing this:



-Palette Change: It allows to change color palettes dynamically. It can be used from Sprites, uberasm codes or blocks. This is used for example to load a sprite palette dynamically or for very cool effects.

Here an example from an old video of V2.0:



Hue-Saturation-Value (HSV) and Color Mix Support: It allows to change HSV for any color on the palette. In the case of Color Mix, it allows to Mix a base color with the color palette.

Here an example of HSV:

SEIZURE WARNING



Here an example of Color Mix:



In this case Hotario Mix colors black, red or blue with all FG/BG Palettes to get that effect on the BG and FG. Also it change color 00 to change windowing color. Hotario can't use a hdma effect for the BG and FG because it is already using color math for windowing and half is less flexible and doesn't allows blue or red in the BG/FG.

Player Features and Player Revolution Patch: WARNING: Player Features are incompatible with several resources that change player stuffs, like LX5's custom power ups, Player 8x8 tiles dmaer, Player 32x32, etc... They allows to change player graphics and palettes as you want. The graphics can be of any size but i don't recommend more than 48x48 because It can produce some flickering problems if you use a lot of Dynamic Sprites. Player features also optimize Dynamic Routine of Vanilla Player then it cause less flickering and slowdown.

Here an example of the player of my hack:



Player Revolution Patch allows you 127 differents players It has a lot of features, but it is still in development, now if you wanna check it you can download it here. I don't have documentation for this patch for now but i will do during the next months.

PLAYER REVOLUTION PATCH DOWNLOAD LINK

What is Next?

I will add some features that will be available on V4.0 that I hope It will be the last Dynamic Z version such:

-Block Change System: Allows to change several blocks of Layer 1 or Layer 2. The vanilla system for this sux a lot because with only 4 blocks It cause flickering. I don't know how many blocks you will be available to change with this. But i think that more than 20 is completly viable.

-Two-Phase Dynamic Sprites Support: This system allows to do very Big Dynamic Sprites, It allows up to 96x96 Dynamic Sprites (sacrifice all SP3 and SP4) if you don't use 50% more mode and up to 112x112 Dynamic Sprites (sacrifice SP2, SP3 and SP4) if you use 50% more mode. The name "Two-Phase" is because They are 30FPS Dynamic Sprites that loads the half of the frame in game loop and the other half in the next game loop.

Here 2 examples of V3.5, because yeah, this feature is from V3.5 but i will improve it for V4.0 and i didn't add it to V3.75:





-Widescreen mode (SA-1 version only): This use the Widescreen support provided by SA-1 Pack to use more Dynamic Sprites on the screen or do more Dynamic Transfers to VRAM or CGRAM and you only sacrifice some Scanlines on the top and the bottom of the screen. This system is used for videogames like Yoshi Island or Starfox.

-50% More mode: This feature is currently available but is not included on the library. It basically allows to sacrifice Vanilla Exanimations to have bigger (up to 80x80) or more Dynamic Sprites or do 50% more Dynamic Transfers to VRAM or CGRAM. If you wanna use it for now, use this uberasm code (Deactivate Vanilla Exanimations and all others exanimations in LM if you use it):

Code
!StartVRAMOffSet = $7400	;Could be $7000 or $7200 too

load:
    LDA #$00                    ;This line is not necessary
    STA DZ_DS_FindSpaceMethod	;It is to do that the patch find space
                                ;starting from top instead of bottom
                                ;Find starting from top reduce a bit 
				;of flickering specially on boss rooms.
    LDA #$30
    STA DZ_DS_MaxSpace          ;It set the space used by dynamic 
				;sprites to 48 16x16 tiles.

    LDA #$18
    STA DZ_MaxDataPerFrameIn16x16Tiles  ;It set the number of 16x16 tiles that the patch can 
					;send to VRAM per frame to 24

    LDA.b #((!StartVRAMOffSet-$6000)/$10)&$FF  ;This change the 
					;starting position of dynamic
    STA DZ_DS_StartingVRAMOffset8x8Tiles	;sprite space in vram 
						;to $7400 you can change
 						;!StartVRAMOffSet to 
						;start on $7200 or $7000

    REP #$20
    LDA #$0C00					;Similar to
				;DZ_MaxDataPerFrameIn16x16Tiles
    STA DZ_MaxDataPerFrame			;but in bytes. 
    LDA #!StartVRAMOffSet
    STA DZ_DS_StartingVRAMOffset		;Similar to
				;DZ_DS_StartingVRAMOffset8x8Tiles
    SEP #$20					;But in bytes.
RTL


-Add support to others popular patches that happends during NMI: Some patches are not compatible with Player features of Dynamic Z. I will include a Dynamic Z versions of popular patches like LX5's Power ups, Player 32x32 or Player 8x8 tiles dmaer and include them on the patch section, then you can use them without any problem. Also some patches that do changes during NMI Handler I will change them to use Dynamic Z System instead, Why? because I can optimize them to avoid flickering and save some slowdown, also to avoid any possible problem with future versions of the patch, specially when i finish NMI Hanlder Optimization.

-NMI Handler Optimization: This is the most ambitious feature and probably will be completly incompatible with a lot of others resources, basically it replace the whole Vanilla NMI Handler routine and replace it with a custom one that is very well optimized saving a lot of cycles during NMI. With this probably on the future we can have up to 64 16x16 tiles for Dynamic sprites available without almost any sacrifice, this means that all Dynamic sprites restrictions dissapear and you can even have 2 Dynamic Sprites of 96x96 or maybe have 4 Dynamic sprites of 64x64 or 8 of 48x48 or any combination of dynamic sprites that fits on 64 16x16 tiles. Also this can allows very big players or do very crazy things.
The other reason to change NMI Handler is to do more cool features, for example, change between SNES Modes very easy and give support to them or do SNES Modes HDMA to do very cool stuffs like use section of the screen with Mode 7 for BG, other with Mode 0 or mode 2, etc... They are unlimited options to change the game completly with this feature.
Now it is a very big feature and probably i won't include it on Dynamic Z V4.0 because requires a lot of job. When i finish this feature, Dynamic Z will change of name and will be called Dynamic X.

Dyzen for Dynamic Sprites

This is a version of Dyzen to do Dynamic Sprites, It autorip Sprite sheets. With this version, do Dynamic Sprites will be very fast if you have a sprite sheet, just 5 min and you have all the graphics.

Here an example of the Sprite Sheet Ripper:



Also here a video about How to Edit Dynamic Sprite Graphics:



Installation:

I did a guide for Dynamic Z Installation and Dyzen Dynamic Sprite Creation:



Sorry for my english, i know it is not very good.

Now i will do a Step by Step guide here:

Installation Guide:

1. Start With a Clear Rom.

2. Expand it to 2MB on LM (Don't do other change in LM, only expand it).

If you use SA-1:

SA-1 Extra Step 1: Go to sa1.asm and change the line:

Code
!DSX = 1


to:

Code
!DSX = 0


SA-1 Extra Step 2: Install SA-1 on the rom with asar.

3. Do any change in LM and save it.

4. Expand the ROM to the size that you want (Recommended 4MB, but can be more).

5. Open "Dynamic Z Installer.exe".



6. Select the features that you want and press "Next". By default "Dynamic Z Installer.exe" (DZI) only checks features that doesn't have any compatibility issue.

WARNING: Player Features are incompatible with several resources that change player stuffs, like LX5's custom power ups, Player 8x8 tiles dmaer, Player 32x32, etc...

7. Put the path of the ROM, of Pixi.exe and UberASMTool.



8. Press Install.

9(Optional). After Install the patch, you can Install it again, this sometime fix some problems with the Library set up. Sometimes if you don't do this, the Dynamic Sprites when appear on the screen doesn't point to Dynamic Z Library properly and can Crash, if you install twice that is fixed.

10. Now the patch is inserted.

What it install on your project?

-Insert the patch on the rom with ONLY the selected features.

-Add a Tool called "Dynamic Resource Adder.exe" (DRadder), used by Dynamic Resources such Dynamic sprites to insert Graphics, Tilemaps or Palettes on the ROM and have access to them from those ".asm" codes that use them. You can fine this Tool on the Rom Folder.

-Add Dynamic Z Library on Pixi and UberASMTool (in pixi/asm add the folder ExtraDefines and Macros, in UberASMTool is in folder other).

Installing Dynamic Resources

1. Open the file generated by Dynamic Z called "ResourceList.txt", It looks like this:

Code
PIXI:
.Normal
.Cluster
.Extended
OTHER:


2. On the label "PIXI:" below sublabels ".Normal, .Cluster or .Extended" you include All dynamic sprites that you want, put the name of the ".asm" file of that sprite. On the label OTHER: you include the complete path of any UberASM code, block or patch that use Dynamic Resources. Example:

Code
PIXI:
.Normal
Klaptrap
Klump
FakeWallJungle
Krusha
Gnawty
MasterGnawty
Zinger
NSMBMushroom
SMMMidwayFlag
.Cluster
DKCContactEffect
DKCExplosion
.Extended
KlumpGrenade
OTHER:
Patches\PlayerRevolution\Players\NSMBPlayer.asm


3. On the folder "Dynamic Resources" that was created by DZI. Include all the GFXs, Tilemaps or Palettes of your Dynamic Resources such Dynamic Sprites or UberASM Tool Codes. Also include on their respective folders the ".asm" codes and "json" configs for pixi.





4. Open the Tool DRAdder ("Dynamic Resource Adder.exe") and write the Rom path, Pixi path and "ResourceList.txt" and press Enter. All Dynamic Resources will be inserted on the ROM.



You also can use Command line like this:

Code
DynamicResourceAdder <rom path> <Resource list.txt path> <pixi folder path> 


<Resource list.txt path> and <pixi folder path> are optative

5. Insert All the resources with their respective tools, for example, insert Dynamic Sprites with Pixi or UberASM codes with UberASMTool. And done, all should work properly.

Use DRAdder for your own resources:

1. on the first line of the ".asm" file, add a line with the resources that you want to include like this:

Code
;@Klump.bin,KlumpPal1.bin,KlumpPal2.bin


2. Now you can use the following defines to get the Address of the resources.

Code
!GFXYY


Where YY is the ID of the resources, the ID depends on the order of the line that you added on the line of step 1. In this case:

Code
!GFX00 = Klump.bin Address
!GFX01 = KlumpPal1.bin Address
!GFX02 = KlumpPal2.bin Address


In this case, It includes 1 GFX (Klump.bin) and 2 palettes (KlumpPal1.bin and KlumpPal2.bin) To transform Color Palettes into ".bin" files that can be used for Dynamic Palette Routines I recommend to use my Tool Pal2Bin:

Pal2Bin Download Link

How to use the Defines? Well for example like this:

Code
LDA #!GFX00
STA !SourceLowByte
LDA #!GFX00>>8
STA !SourceHighByte
LDA #!GFX00>>16
STA !SourceBNK


Or something like this:

Code
REP #$20
LDA #!GFX00
STA !SourceAddress
SEP #$20

LDA #!GFX00>>16
STA !SourceBNK


Trouble Shooting:

Issue: I installed a Dynamic Sprite after install Dynamic Z and my ROM Crashes when i enter to the level that use the sprite.

Solution: Install Dynamic Z with DZI again then Reinsert Dynamic Resources with DRAdder and then Reinsert the sprite on the rom.

Issue: The sprite works but show Glitched Graphics like this:



Solution: Reinsert the sprite with Pixi. That happends because you installed the sprite first and then you installed the Dynamic Resources with DRAdder, you must insert the Dynamic Resources with DRAdder and then insert the sprite. The same with UberASM Codes that use dynamic resources, first DRAdder and then UberASM codes.

Issue: Sometimes my hack has some flickering (black lines) on the top of the screen. Why this happends?

Solution: Probably you are using a lot of exanimations, If you use a lot of Dynamic Resources and a lot of Exanimations at the same time, you will have problems with flickering.

Issue: When my hack have flickering, some dynamic sprites in very weird cases, not very often and only for very very short time, shows glitched graphics, How can i solve it?

Solution: No solution for now, It is a desync of dynamic sprites that happends when NMI Handler routine is not executing Dynamic Z for more than 1 frame. This can happend because SMW deactivate some zones of NMI if detects lag. I recommend you to reduce Dynamic Resources used in that case or try to find what is the main reason of that Flickering and try to solve that. I am trying to find a solution to this Desync problem, but for now i still doesn't have any good idea. Now when i solve this problem, nothing will change on the API of Dynamic Z for Dynamic Sprites.

Issue: I was using HSV/Mix Color Support and the palette of others resources glitched when other similar resource was near that use HSV/Mix Color support.

Solution: That is because you probably used the same space on the buffer for "Base Palette", try to use differents buffers for both resources and that should work. I Will improve the API of that system later to avoid that kind of problems.

Issue: I was trying to use Dyzen for Dynamic Sprites, but the tool Freeze when i tried to Rip the graphics.

Solution: That version is still a beta, but That happends because the algorithm that rips graphics for Sprites is in Exponential Time, It is impossible do this algorithm in Polinomial Time, Exponential Time is very slow and i am trying to optimize that algorithm to be a lot faster and consumes less ram, for now, try with a spritesheet with smaller frames. Any sprite of 64x64 or less shoudln't have problems, sometimes some spritesheets needs more time than others.

Issue: Dynamic Sprites change palettes of others sprites or player when i use them.

Solution: Some Dynamic Sprites load their palette Dynamically. Read the Readme of that Dynamic Sprite and check the Extra Byte that used for Palette.

Issue: I want to use DSX (Dynamic Sprite Patch) Sprites with Dynamic Z.

Solution: No solution for now. DSX Dynamic Sprites are incompatible with Dynamic Z. I am trying to convince staff to do a Dynamic Sprite Remoderation, Check this thread:

Changing Dynamic Sprite Standard

I will try to do Dynamic Z's compatible and improved versions for those sprites.

Issue: I was trying to use Dyzen for Dynamic Sprites, but when i call the routine "ChangeAnimationFromStart", the sprite show a glitched frame for one frame.

Solution: In general you need to do a previous check before change the frame. For that I Recommend you use this Macro:

Code
	%CheckEvenOrOdd("DZ_DS_Loc_US_Normal")
	BEQ +

	JSR ChangeAnimationFromStart_Walk
+


"DZ_DS_Loc_US_Normal" is for normal sprites but for clusters you use "DZ_DS_Loc_US_Cluster", for Extended sprites you use "DZ_DS_Loc_US_Extended" and for Overworld Sprites you use "DZ_DS_Loc_US_OW".

You can do something like this if you use State Machines:

Code
IdleState:
	LDX !SpriteIndex

	LDA !AnimationIndex,x
	CMP #!AnimationThatYouWantForExampleWalkAnimation
	BEQ +

	%CheckEvenOrOdd("DZ_DS_Loc_US_Normal")
	BEQ ++

	JSR ChangeAnimationFromStart_Walk
++
RTS
+
	;State Code
RTS


That basically waits until the Sprite has the correct animation and then it can execute the normal code.

Issue: I installed Retry patch and it doesn't work properly with Dynamic Z

Solution: Install Retry patch after Install Dynamic Z. Some patches that hijack Player DMA Routine like Retry Patch must be installed after Dynamic Z.

Issue: After use Dyzen for Dynamic Sprites, When i try to insert the sprite, it fails.

Solution: Two options. You forgot to change the GFX name on the top of the generated File. (Replace ;@MyGFX.bin) or the name of the GFX has a space in between.

Issue: I tryed to use DRAdder without install Dynamic Z but it sends a weird error.

Solution: DRAdder depends on Dynamic Z, if you don't install Dynamic Z, DRAdder won't work.

Issue: I have the same problem But I already installed Dynamic Z before use DRAdder.

Solution: Check the generated file of Dynamic Z called "Variables.txt" and check if the patch was inserted correctly. If it was inserted properly and you followed all steps correctly send me a DM/PM. If It wasn't inserted properly also send me a DM/PM.

Issue: I want to use 6MB or 8MB rom with Dynamic Z, what should i do?

Solution: on DynamicZ.asm, header.asm and DynamicZDefines.asm, replace sa1rom by fullsa1rom. Do the same with the file that is on the folder "Dynamic Z/DRAdder/DRAAsm", called "ResourceAddress.asm". Also in Pixi and UberASMTool you will need to do the same and also you will need to replace the file "asar.dll" that is included in pixi or uberASMTool with the newest version (that is included on the tool Asar).
Otherwise you can just keep all as the start and use Dynamic Z as always (without replace any of sa1rom stuff), But the DRAdder will insert Dynamic Resources without use the best bnks and probably you want to use those bnks for dynamic resources because Dynamic Sprites usually use a lot of space on the ROM and is better keep code on lower bnks and those resources in higher bnks.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
Hi. I tried to insert the Klaptrap dynamic sprite you made. It does work, though when I jump on the Bonus Klaptrap for a 1-up, I might get the feeling it takes more stomps to destroy it. I checked your Klaptrap gif and it shouldn't take long, but my main concern is this:

Level looks all garbled, but the dynamic sprite works just fine.
I did find the culprit, as I wanted to insert more dynamic sprites.
Here's what I did:
1. Start With a Clear Rom.

2. Expand it to 2MB on LM (Don't do other change in LM, only expand it).
I decided to close LM here.

3. Do any change in LM and save it. I opened the ROM in LM, removed the first blue shelless koopa and then saved it.

4. Expand the ROM to the size that you want (Recommended 4MB, but can be more). I did that and then closed. Was I supposed to save here, too?

5. Open "Dynamic Z Installer.exe".

After doing that, I opened the ROM to see if I was in good condition, but got this bad result:

Any idea how this can be fixed?

Edit: when I attempt to insert zinger.json it complains that the Sin and Cos macros weren't found.

Edit2: What SA-1 version should I use? If I used the latest SA-1 MaxTile version and then use Dynamic Z Installer with sprites and all(now my ROM seems ok) and head to a level with Dynamic Z sprite, the game crashes.
Originally posted by Rykon-V73
Hi. I tried to insert the Klaptrap dynamic sprite you made. It does work, though when I jump on the Bonus Klaptrap for a 1-up, I might get the feeling it takes more stomps to destroy it. I checked your Klaptrap gif and it shouldn't take long, but my main concern is this:

Level looks all garbled, but the dynamic sprite works just fine.
I did find the culprit, as I wanted to insert more dynamic sprites.
Here's what I did:
1. Start With a Clear Rom.

2. Expand it to 2MB on LM (Don't do other change in LM, only expand it).
I decided to close LM here.

3. Do any change in LM and save it. I opened the ROM in LM, removed the first blue shelless koopa and then saved it.

4. Expand the ROM to the size that you want (Recommended 4MB, but can be more). I did that and then closed. Was I supposed to save here, too?

5. Open "Dynamic Z Installer.exe".

After doing that, I opened the ROM to see if I was in good condition, but got this bad result:

Any idea how this can be fixed?

Edit: when I attempt to insert zinger.json it complains that the Sin and Cos macros weren't found.

Edit2: What SA-1 version should I use? If I used the latest SA-1 MaxTile version and then use Dynamic Z Installer with sprites and all(now my ROM seems ok) and head to a level with Dynamic Z sprite, the game crashes.



Sa1 is not require, but almost everyone use it today.

Uhm, that looks very weird, can you send me a dm? Then i can help you better, i never had that kind of problem when i did the patch, you said that you start with a clear rom then is a bit strange. You installed sa1? Maybe you forgot to deactivate dsx.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I did change DSX to 0. I'll change to the former SA1 on the site, sine this version of yours isn't meant to work with MaxTile.
About the glitch, I figured out that step 9 is the culprit:

9(Optional). After Install the patch, you can Install it again, this sometime fix some problems with the Library set up. Sometimes if you don't do this, the Dynamic Sprites when appear on the screen doesn't point to Dynamic Z Library properly and can Crash, if you install twice that is fixed.

I know I didn't want to risk, so I installed it a 2nd time, but if I do this a 2nd time, then the title screen glitch occurs.
Originally posted by Rykon-V73
I did change DSX to 0. I'll change to the former SA1 on the site, sine this version of yours isn't meant to work with MaxTile.
About the glitch, I figured out that step 9 is the culprit:

9(Optional). After Install the patch, you can Install it again, this sometime fix some problems with the Library set up. Sometimes if you don't do this, the Dynamic Sprites when appear on the screen doesn't point to Dynamic Z Library properly and can Crash, if you install twice that is fixed.

I know I didn't want to risk, so I installed it a 2nd time, but if I do this a 2nd time, then the title screen glitch occurs.


You used SA-1 1.40? uhm Dynamic Z use channel 0 for DMA and vitor did a DMA Remap and said that patches that use channel 0 or 1 must be changed to channel 2, Test the patch in V1.32 for now, i will reupload the patch remapped to channel 2 later to avoid problems with new SA-1 Version.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
I attempted to use SA-1 v. 1.32 to see if it does work with your tool, but got this error now:

I just love how I keep getting this.
Originally posted by Rykon-V73
I attempted to use SA-1 v. 1.32 to see if it does work with your tool, but got this error now:

I just love how I keep getting this.


You cant use sa1 1.32 on a rom with sa1 1.40, try with a clear rom.

------------------------------------------------------

Youtube
Twitter
SMWControlLibX GitHub
My Discord Server
Snestorage where you can download my resources
It was a clean ROM. Okay, I'll try again.
No. Same error.

Tool

Link Thread Closed