-Use the double of Dynamic Sprites than DSX.
-Use Dynamic Sprites of 80x80, 96x96 and 112x112
-Use Semi-Dynamic Sprites.
-Change graphics and palettes on the fly.
-Change graphics and palettes of Mario on the fly.
-Make your own custom player of 48x48.
-Retro-compatibility with DSX Dynamic Sprites.
The only change which was done there were a hijack change (it previously hijacked Mario's DMA routine which might cause incompatibilities with some resources) and better control of what can be included or not.
There are some improvements which I only let in because it is a simple update, though: If you have got two JSL2RTS behind each other which jump to the same bank, you can shorten it by using one JSL2RTS but also push the address for next subroutine before jumping to the first routine.* You also may want to change the shared subroutines. Shared subroutines are all and good but PIXI and GIEPY support shared subs, not to mention the dedicated shared subroutine patch hosted here (or rather an old version) also makes a better use of it (it doesn't help that PIXI and GIEPY use an improved version of GetDrawInfo and SubOffScreen). Finally, the manual freespace search should only apply for the dummy JMLs, not the whole code. We're in a time where manual freespace searching is only used when necessary. Other then that, automatic freespace searching must be used.
That's something you should consider for the next update.
*The double JSL2RTS in question is
Code
JSL DynamicZ
PHK
PEA.w .jslrtsreturn-1
PEA.w $0084CF-1 ; varies per bank, must point to RTL-1 in the same bank as the JML target (example: $0084CF-1)
JML $0085D2|!base3
.jslrtsreturn
PHK
PEA.w .jslrtsreturn2-1
PEA.w $0084CF-1 ; varies per bank, must point to RTL-1 in the same bank as the JML target (example: $0084CF-1)
JML $008449|!base3
.jslrtsreturn2
which equals to
Code
JSL DynamicZ
PHK
PEA.w .jslrtsreturn-1
PEA.w $0084CF-1 ; varies per bank, must point to RTL-1 in the same bank as the JML target (example: $0084CF-1)
PEA.W $008449-1
JML $0085D2|!base3
.jslrtsreturn
but is faster because multiple pushes and a JML have been compressed into a single one.
If you use Dynamic Z and SA-1 remember deactivate DSX from SA-1. For that you must open the file sa1.asm, go to this line:
Code
!DSX = 1 ; Put 0 if you want to turn off legacy (Dynamic Sprites) patch support.
; (as anoni's Dynamic Z should obsolete it soon.)
And change for:
Code
!DSX = 0 ; Put 0 if you want to turn off legacy (Dynamic Sprites) patch support.
; (as anoni's Dynamic Z should obsolete it soon.)
Also you must do this in a clear rom, if you are using a rom that had inserted SA-1 before and you didnt disable DSX, then you must use a new rom, because the hijack of SA-1 used for DSX wont be erase if you reinsert SA-1 with DSX deactivate again.
Follow Us On