This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Theoretical way to implement a ddr like game on nes.

Theoretical way to implement a ddr like game on nes.
by on (#81110)
First of all this is more along the lines of a "thought experiment" then actually suggestion this be implemented. But assuming we already have some kind of ddr pad for nes (powerpad? Anyway that's besides the issue). Wouldnt it be possible to make a cart that hooks up to an mp3 player. Now the idea is that the left channel of the songs on the mp3 player contain a mono version of the song you want to play. Now the right channel would have the actual arrow data implemented. Similair to how data used to be stored on casettes. The only thing I can't completely think up is how you would time everything as the arrow has to scroll up of course after its been told to been drawn by the mp3 player signal...but that might lead to irregular timing...any thoughts on that?


edit: for clarity the data would be mixed in similair to how famicom extra audio works.

by on (#81111)
I'd say just get a huge ROM and make a mapper and engine that uses DPMC or whatever to stream the sound from that. You'd need a big ROM, but it'd be all self contained, and much more realistic to be made. And there's many types of MP3 players, so you'd need a different game per MP3 player. And that'd be insane to do.

by on (#81112)
The mp3 wouldnt interface with the nes any more then providing the audio and the data. You'd have to manually start it while the nes waits on at a "waiting screen"

by on (#81113)
Well that's what the C64 guitar hero did, I was unimressed myself when I saw that. I think putting it on cart would be the right way to go. You can put each song on external "cards" and do it that way, like a alladin deck enhancer.

by on (#81114)
Theoreticly speaking building an mp3 player ON the cart shouldnt be too hard as the decoder chips pretty much ask you to feed them data when they need more. So an avr + decoder chip should work. (sd cards?)

by on (#81122)
I guess this idea should be doable, it's a bit too gimmicky for my taste though, since the NES is only acting as a display. Also I think it should play the sound through $4011 (maybe with the help of an IRQ) so that people wouldn't have to mod their consoles.

3gengames wrote:
Well that's what the C64 guitar hero did, I was unimressed myself when I saw that.

Wait, what? (I assume you're talking about Shredz64.)

by on (#81130)
thefox wrote:
3gengames wrote:
Well that's what the C64 guitar hero did, I was unimressed myself when I saw that.

Wait, what? (I assume you're talking about Shredz64.)


I just re-watched the video, I guess it does play sound, but I swear I saw one before where a MP3 was played over it...oh well. My bad I guess?

by on (#81138)
Moero Pro Yakyuu (Japanese version of Bases Loaded) has a sound chip where the Famicom feeds it a track number and then it starts decoding audio. Back in the day, the memories on such chips were only big enough for sound effects, but nowadays they could probably be used for music. This would work on a Famicom or a modded NES.

To play on a stock NES, the samples would have to get fed to the NES APU. I can think of one efficient way for a mapper to make decoded audio available to the NES, though I haven't tried it. Have the mapper put a sample value from $01 to $7F on the data bus when the address bus equals $4011 and R/W is high, and raise an IRQ. Then the IRQ handler would do this:
Code:
irq_handler:
  dec $4011  ; read from cartridge, subtract 1, and write back to APU
  rti

I originally thought up these methods in the context of ROM-hacking games to play MP3 music (e.g. ripped from Brawl or OCRemix or sequels or the like) instead of the built-in music.

But I can think of two more problems you'll run into with the rhythm game genre:
  • Konami, Harmonix, Activision, and other companies hold broad patents on rhythm game concepts. Unless you also hold patents they want, they might not be willing to cross-license.
  • The major record labels might not be willing to license recordings to you.

by on (#81142)
A bit late to the party, but:
Jeroen wrote:
The only thing I can't completely think up is how you would time everything as the arrow has to scroll up of course after its been told to been drawn by the mp3 player signal...but that might lead to irregular timing...any thoughts on that?
If your data format is something like "Make [UDLR] arrow appear and hit target in [N] vsyncs" I think it should be fine, at the cost of needing different data for NTSC/PAL consoles.
Jeroen wrote:
Theoreticly speaking building an mp3 player ON the cart shouldnt be too hard as the decoder chips pretty much ask you to feed them data when they need more. So an avr + decoder chip should work. (sd cards?)
It seems likely that the NES would actually have enough spare time to copy data from a storage card and push it to a decoder IC, negating the need for a support microcontroller. Also, if you instead try streaming DPCM, CompactFlash supports a memory-mapped mode (section 6.1.3 in the spec) where 1kB of address space can be used to interface to DMA-like auto-address-increment hardware)
thefox wrote:
I guess this idea should be doable, it's a bit too gimmicky for my taste though, since the NES is only acting as a display.
How is that so different from the original PS1 versions of DDR? AFAIR, they just streamed audio off the CDROM after having preloaded the arrow timing.

by on (#81145)
lidnariq wrote:
thefox wrote:
I guess this idea should be doable, it's a bit too gimmicky for my taste though, since the NES is only acting as a display.
How is that so different from the original PS1 versions of DDR? AFAIR, they just streamed audio off the CDROM after having preloaded the arrow timing.

I don't know how to explain this properly. What I mean is there's a point at which stuff starts to be "non NES-like" enough that I wouldn't even bother trying to make it for NES. Also need for an external MP3 player adds to that, I'd rather see this self contained. But to each his own. :)

by on (#81156)
If the NES homebrew scene weren't plagued by the lack of economies of scale due to low volume, then it would be feasible to make it self-contained, much as the extra audio chip was contained in the Moero Pro Yakyuu cart.

by on (#81167)
I guess apu based streaming would work (shitton of memory needed I guess though) I do like the syncing way suggested but it wouldnt really work with the right channel is data idea. But I GUESS you could put all data on a cf card instead.

by on (#81169)
It's not a shitton at modern memory densities. DDR Konamix for PS1 contains 52 songs each about 100 seconds long. The game's entire soundtrack encoded with 32 kbps Vorbis would fit in about 20 MB. I've seen microSD cards 100 times that size for $2 on Google Product Search.

Besides, if you just want to make DDR, you don't even need mapper sound; you can just have someone cover the songs in Famitracker or something. You may have already heard what I've done to Butterfly and Maxx Unlimited.

by on (#81187)
As cool as nes renditions fo songs are I don't think it would work very well for a ddr style game. :P

edit: btw good job on those songs listening to them continuesly :P

by on (#81428)
Not sure if this is old news or off-topic but there is a pirate famicom game with a pretty cool DDR-like game called Street Dance that seem to be doing some of the things you guys are discussing about.. I was kind of blown away when I tried it... You can see a video of it http://www.youtube.com/watch?v=ivD6DYmKgMI
At first I didn't believe it and thought it was running on some kind of enhanced famiclone but then I found the dump in my pirate folder and tried it on nes EMU and sure enough, it ran.

by on (#82353)
Memory usage oft hat game must be huge...how big is it.

by on (#82423)
It's a massive 2Mb

by on (#82424)
Nowadays, 2MB isn't very massive. Some GBC games were bigger, as well as all GBA games.
But it is massive for a NES.