edit (2020-11-20):
Note I will submit the sprites and open source the code after I've released my hack. Until then if you want to re-create this here are the general steps:
1. I built a set of custom sprites for the arrows and A/B (non-interacting, act-like 25).
2. I based the movement off the 'Angry Sun' sprite to keep x/y positions on the screen constant while mario moves.
3. I chose the speed to be 0 in the x, and some value in the y corresponding to how frequently I am spawning the arrows (this is dependent on your BPM, so it will change depending on what song you sync it to).
4.I made my own level uberASM based on the shell shooter uberASM to dynamically spawn the sprites (status 08 instead of 09). It reads in a byte sequence to determine which sprite to spawn, and does so every x frames (where x is dependent on your BPM, for 90BPM I think I used 36.75 frames average).
5. I am checking if the user holds down the corresponding button when the sprite is in the y-range to determine if they hit the step early/on-time/late
6. I increment the score counter when the detection in 5 succeeds.
Note I have everything working except step 5 (detecting when the sprite is in a specific pixel range has proven difficult for me). When I solve it I will update this post again.
---
original post:
I am working on a proof of concept mario hack centered around music and controlling mario with a dance pad (think ddr-like). I am in the early stages but am looking for ideas on how to approach creating moving arrows that go from the bottom of the screen to the top. Even just a few nudges/hints in the right direction is helpful. I will also admit this is my first hack, so I am sorry if there is an obvious answer I have missed.
The requirements I think I need:
1. the arrows don't interact with mario or other sprites (display only)
2. can somehow represent button holds by either repeating the arrows (sprite limit?) or elongate them for the duration of the button press.
3. have the timings consistent so I can script them in time with the song (I assume if I set spawns to an absolute position on the screen and always spawn at the same y-position that this should be relatively easy to keep consistent).
I have a background in embedded software engineering (but admittedly haven't done any actual embedded software for a few years now) so even an idea in pure asm no matter how 'advanced' would be incredibly helpful.
See the image at the bottom for a reference to the types of arrows I am talking about.
My ideas so far:
1. Create an ExAnimation in layer 3 for each arrow and the jump buttons, and somehow control when they play and make multiple play at the same time.
2. Use the skull platform and somehow make it non-interactive, but I don't know how to make it variable length like in smm2.
Some more background on the project if anyone is interested:
I wanted to create something fun that would keep me active during winter. I am aware level design will be a challenge since 'hold right' doesn't exactly work well with ddr style games but that's part of the fun for me. I've been toying with procedural level generation for a while now, and the thing I am thinking of doing is choosing the song, getting the required choreography/inputs and timings, then generating a level around those inputs.
Note I will submit the sprites and open source the code after I've released my hack. Until then if you want to re-create this here are the general steps:
1. I built a set of custom sprites for the arrows and A/B (non-interacting, act-like 25).
2. I based the movement off the 'Angry Sun' sprite to keep x/y positions on the screen constant while mario moves.
3. I chose the speed to be 0 in the x, and some value in the y corresponding to how frequently I am spawning the arrows (this is dependent on your BPM, so it will change depending on what song you sync it to).
4.I made my own level uberASM based on the shell shooter uberASM to dynamically spawn the sprites (status 08 instead of 09). It reads in a byte sequence to determine which sprite to spawn, and does so every x frames (where x is dependent on your BPM, for 90BPM I think I used 36.75 frames average).
5. I am checking if the user holds down the corresponding button when the sprite is in the y-range to determine if they hit the step early/on-time/late
6. I increment the score counter when the detection in 5 succeeds.
Note I have everything working except step 5 (detecting when the sprite is in a specific pixel range has proven difficult for me). When I solve it I will update this post again.
---
original post:
I am working on a proof of concept mario hack centered around music and controlling mario with a dance pad (think ddr-like). I am in the early stages but am looking for ideas on how to approach creating moving arrows that go from the bottom of the screen to the top. Even just a few nudges/hints in the right direction is helpful. I will also admit this is my first hack, so I am sorry if there is an obvious answer I have missed.
The requirements I think I need:
1. the arrows don't interact with mario or other sprites (display only)
2. can somehow represent button holds by either repeating the arrows (sprite limit?) or elongate them for the duration of the button press.
3. have the timings consistent so I can script them in time with the song (I assume if I set spawns to an absolute position on the screen and always spawn at the same y-position that this should be relatively easy to keep consistent).
I have a background in embedded software engineering (but admittedly haven't done any actual embedded software for a few years now) so even an idea in pure asm no matter how 'advanced' would be incredibly helpful.
See the image at the bottom for a reference to the types of arrows I am talking about.
My ideas so far:
1. Create an ExAnimation in layer 3 for each arrow and the jump buttons, and somehow control when they play and make multiple play at the same time.
2. Use the skull platform and somehow make it non-interactive, but I don't know how to make it variable length like in smm2.
Some more background on the project if anyone is interested:
I wanted to create something fun that would keep me active during winter. I am aware level design will be a challenge since 'hold right' doesn't exactly work well with ddr style games but that's part of the fun for me. I've been toying with procedural level generation for a while now, and the thing I am thinking of doing is choosing the song, getting the required choreography/inputs and timings, then generating a level around those inputs.