Language…
10 users online: Anas, cletus_deletus, GRIMMKIN, Gutawer, JezJitzu, masl,  Ringo,  RussianMan, Skewer, toady - Guests: 231 - Bots: 345
Users: 64,795 (2,375 active)
Latest user: mathew

ACHTUNG: REGARDING DYNAMIC SPRITES

i need a list of hacks that use dynamic sprites. the more recent the hack the better

if the dynamic sprites are in the first level/world, better. give me a .srm if theyre later

oh also: no SA-1 hacks

thanks
First hack to come to mind is Super Mario World: The Secret of the 7 Golden Statues. While it's not a new hack, there are dynamic sprites (Woozy Guys from Yoshi's Island) in the very first level, after a short intro. Head to the bottom left level icon in the overworld.

The hack's music will glitch out on Higan v095 Accuracy, though I was able to play the entirety of 1-1 without crashes, but with loud, glitchy music. It crashed after the goal. I tried to boot it in Higan v104, but I can't get it to start.

For some reason, it's hard to recall hacks that use dynamic sprites.
basically, from what ive tested, dynamic sprites (the current implementation of them) cause graphical glitchiness; something like random sprite tiles appearing and disappearing rapidly across the screen. i am way too lazy to test on higan but it happens on hardware definitely. well... not definitely; id still like to test more just in case

and yeah, it happens with those woozy guys
so apparently its just a freeram issue. dynamic sprites (most of the ones submitted?) use $0660-$0664, and $06FE. these arent really safe addresses. changing them to something else will fix their issues

specifically:

in dynamic sprites, you will find these or a variant
SLOTPTR = $0660 (2 bytes)
SLOTBANK = $0662
SLOTDEST = $0663 (2 bytes)
SLOTSUSED = $06FE

in dsx.asm, you will find this
!slots_used = $06FE (same as SLOTSUSED)

change them to safer addresses. which ones? i think we as a community should come to a consensus on that. so yeah

thoughts?

btw thanks to skewer for being my lab rat and helping out and sacrificing his hack basically
$010D-$0112. Part of the stack but I doubt someone will push 200 bytes to it so it should be safe to use. That being said it's not cleared at any time. The area around $0F5E seems nice but I've seen some patches use that commonly.
actually, from the looks of it, SLOTPTR, SLOTBANK, and SLOTDEST can easily be scratch ram, as theyre only used within the sprites and are written to before being read

SLOTSUSED is technically in a safe spot (ram map says LM uses 100 of the 108 bytes in the region), though i'd be more comfortable putting it at $0700 (nice even spot)
How many dynamic sprites can SMW hacks use at once?
@Drex: Four sprites with DSX.asm, up to six or eigth (depending on whether you disable SMW's dynamic graphics or not) with DynamicZ.
Just want to point out something here: A lot of the bugs in my hack, including the ones with dynamic sprites as pointed out here were the result of wrongly listed ram addresses marked as freeram. Its very unfortunate because when people found these bugs originally, I had no idea what was causing them until a lot later when the Ram Map started getting updated. If I had all my original files, I could have easily remedied all of them but I find it too much work to manually go through the rom and reverse engineer it. I'm just greatful the Ram Map is a lot more accurate now than it was back in 2009/10. Hopefully we can all get rid of more things like this occuring with other resources in the future.
Originally posted by MarioFanGamer
@Drex: Four sprites with DSX.asm, up to six or eigth (depending on whether you disable SMW's dynamic graphics or not) with DynamicZ.


What can I use to have 5,763,975 dynamic sprites onscreen?
Port your game to Nintendo 64.

A SNES doesn't even have 512 OAM slots, 512 dynamic sprites onscreen simultaneously is 100% impossible.

If you don't need all of them them onscreen at once, your only limit is how many sprites our spritetools support. I don't think that's as many as 512, but if you hit that limit, you're probably inserting way too many duplicates and/or doing level design wrong somehow.


e: he asked for 512 when I started writing this post, didn't notice he turned it into obvious garbage. let's not reply to this any further, I will consider it replying to spam.
<blm> zsnes users are the flatearthers of emulation
Originally posted by Drex
What can I use to have 5,763,975 dynamic sprites onscreen?

I just realised you talked about sprite tiles. What I and most others on SMWC refer to as sprites are entities and the dynamic sprites are 32x32 large and even then, that's excluding SMW's own dynamic sprites (Yoshi, baby Yoshi and vertical podobos)*. Basically, as long as there is enough v-blank time left, the amount of dynamic tiles you can have onscreen are limited by WRAM and SRAM (depending on whether you upload the tiles beforehand or use pointers instead), VRAM and OAM.
Of course, 5,763,975 is an arbitrary large number and Alcaro already explained why it doesn't work.

*Though IIRC, keep in mind that Yoshi's Island isn't much better with the amount of its own dynamic sprites (which are 32x32 too, btw) as only 64 8x8 tiles are reserved for them.

mod edit: fixed shitty html
I was joking obviously. I know that the SNES can't even show 512 sprites onscreen.


But I do know it can do 128 32x32 dynamic sprites as long you keep track of duplicates, and delay animation when more than 8 of them need to be updated at once. Well, 128 32x32 would cause flicker/drop out anyway, so it isn't very useful.
Both of my hacks use dynamic sprites. Mario's Strange Quest has 4 dynamic sprites:

- Koopapatrol, which is used in Bowser's Castle
- YI Door, which is used in Bowser's Castle
- YI Arrow Wheel, which is only used in the second half of Mt. Mushroom Cave
- YI P-switch, which is unused.

Use this .srm file to test this out, which conveniently puts you at Bowser's Castle. Mt. Mushroom Cave is found in world 4, and it shouldn't be too hard getting to the arrow wheel (it's found after the goal with the missing goal tape).

Yoshi's Strange Quest only has 1 dynamic sprite, which is the Giant Tap-Tap boss. You can find it by playing through Ruined Castle in World 6, or better yet, going into Yoshi's House, touching the green ? block, then heading left and entering the pipe that takes you to the boss rush version of it. Here is an .srm.

Although, I have tested YSQ with an SD2SNES flashcart and I didn't encounter the glitches you were mentioning. As far as I know, wouldn't $0660-$067F potentially get written to only when the level ending circle HDMA kicks in at level end? YSQ doesn't end the level when the tap-tap is beaten, but instead teleports you. And none of MSQ's dynamic sprites are found in a sublevel containing a goal tape/sphere.


Also, speaking of the tap-tap boss, An SMW Central Production uses it. I think it was in the castle before Bowser's Castle. .srm link ASMWCP might use other dynamic sprites, but that's one that I know it uses.
My Hacks:
Mario's Strange Quest V1.6
Yoshi's Strange Quest V1.3 / V1.3.1 Beta 4.6
Mario & Yoshi's Strange Quests (2/10/2023 Build)

Other stuff:
My SMW/SMAS/SMAS+W disassembly
Yoshifanatic's Discord Server: A place for fans of my stuff and/or Yoshi to chat with others.
I've used them before. There is one in this level, though it's not a full hack.

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

I'm working on a hack! Check it out here. Progress: 64/95 levels.