NES-Bit is a UK-based site that aims to catalogue every NES release for the UK, and also features articles, interviews, and reviews, among other things. Now there’s even a D-Pad Hero developers interview there, so make sure to have a look!
Gil Galad was kind enough to create NSFs for both games! Head on over to http://gilgalad.arc-nova.org to download (links are in the News section).
There’s a lot of other cool stuff worth checking out at his site, including an extensive NSF archive and a video game source code repository.
With the full D-Pad Hero 2 source code in hand, you might be interested in some more information on how it all works; what would it take to, say, add new playable songs? Let’s begin by examining the core of DH2: The song data.
The song data consists of two distinct parts: The music data, and the level data (AKA “object data” or “target data”). The music data is, unsurprisingly, the song (background music) itself. The level data defines the objects that come flying down the screen during play; their position (lane), timing and type.
Songs are composed as described in this video. At the composing stage, no consideration needs to be made with regards to how a song will be played in D-Pad Hero, i.e. the song can be composed freely.
Once the core song is ready, it must be “mapped” in order to make it playable in D-Pad Hero — that is, level data must be created. The mapping process is technically very similar to composing; instead of sequencing musical notes, you sequence the objects that the player can hit. In fact, we’re using the same tool (FastTracker 2) for creating both the music data and level data! The level data is placed in a separate channel (track), one per difficulty level (beginner - normal - expert). In such a channel, a note corresponds to one or more lanes in the game; for example, C corresponds to the left-most lane, E corresponds to the middle lane, and A corresponds to the two right-most lanes. Furthermore, the effect columns are used to encode the object type (0 = orb, 1 = skull, 2 = POW, and so on). It’s maybe not the most visually luxurious approach to mapping, and it’s not “realtime”; you typically map a small segment of the song, load up the game, try the song, make adjustments to the mapping; repeat. But it’s pretty effective once you get used to it (ask Andreas ).
Excerpt from “Whip Man”. Channels 0 through 4 contain the music (square 0, square 1, triangle, noise, DPCM). Channels 5 through 7 contain the mapping (beginner, normal, expert).
The xm2btn tool (part of the DH2 source code repository) extracts the song’s mapping and creates level data in a packed format that is essentially a list of (lane specifier(s), object type(s), time units until next occurrence) tuples. The level data is completely decoupled from the music data; the music is only used to drive the level data processing (by issuing a callback every time the song advances by one unit (row)). This means that changes can be made to a song or its mapping without affecting the other, and entirely new mappings can easily be accommodated (in order to support more difficulty levels, for instance).
Markers can be inserted in a mapping to define segments (”clips”) of a song. These segments are used in DH2’s final (”boss battle”) stage to create the “mega-mix” containing parts from all songs. FT2 effect 700 indicates the beginning/end of a segment in the mapping. The order of segments in the DH2 “mega-mix” is hard-coded (see the
clips label in
In D-Pad Hero 2 there are eight possible “challenges” that can be completed for each song (e.g. “Streak over 100″, “Blow up all POWs”). Care must be taken when designing a mapping to ensure that the challenges are actually possible to complete (e.g. are all letters that spell “D-PAD HERO” present?), and that there’s some balance between the various difficulty levels. To help with this, the xm2btn tool prints some statistics about the objects that occur in each lane, per difficulty level:
***** Statistics for targetdata/ripetargets.xm ***** EASY L R S B A Total Orb 75 56 49 53 62 295 Skull 22 17 6 16 16 77 POW 4 3 6 3 2 18 Star 1 0 1 0 1 3 Clock 4 0 2 0 1 7 Letter 1 2 3 0 2 8 F-skull 0 0 2 1 0 3 NORMAL L R S B A Total Orb 90 79 44 86 102 401 Skull 28 50 19 57 32 186 POW 3 1 10 1 0 15 Star 1 1 0 1 1 4 Clock 2 1 0 1 0 4 Letter 0 1 3 0 4 8 F-skull 0 2 0 0 1 3 HARD L R S B A Total Orb 113 92 46 128 133 512 Skull 70 69 30 78 56 303 POW 1 0 0 0 0 1 Star 0 0 0 1 1 2 Clock 1 0 0 0 1 2 Letter 4 2 2 0 0 8 F-skull 0 1 1 1 0 3
In D-Pad Hero 2, the challenges are the same for all songs; the only variable is the score limit in the “Score over XXXXX” challenge, which should reflect the difficulty and maximum obtainable score. These limits are defined in
That should cover the basics of song data in D-Pad Hero 2. The game engine takes care of the rest; I’ll leave that for a future behind-the-scenes special.
Windows binaries for the latest versions of xorcyst and xm2nes are now available at
The source code to D-Pad Hero 2 has been released. Get it at
After cloning the dpadhero2 repository, first build
cd tools/xm2btn && make
Then build dpadhero2.nes:
cd ../../src && make
If all goes well, there will be a dpadhero2.nes under
D-Pad Hero 2 should build on Linux, Mac and Windows/Cygwin. If you have problems, let me know.
Brief structural overview:
src/: Game code.
src/common/: Support (”library”) code.
src/sound/: Sound engine.
src/songs/: The game music.
src/targetdata/: “Level data” for the playable songs.
tools/xm2btn/: Converts target data to a packed format.
In case you’d like to have D-Pad Hero 1 & 2 on real cartridges, this place can help you out:
BombSweeper also recommended.
What are you waiting for? Download the game already!
We recommend playing D-Pad Hero 2 on the Nestopia emulator. Mac users, we recommend getting the Emulator Enhancer (for fullscreen mode and USB gamepad support). D-Pad Hero 2 has also been tested on FCEUX and NESticle (!).
We strongly recommend playing D-Pad Hero 2 with a proper controller (e.g. “Retrolink NES controller”). Warning: Playing with a keyboard is likely to cause great aggravation and stress. The emulator’s default keyboard layout has the D-pad mapped to the arrow keys on the right side of the keyboard, whereas the D-pad on a NES controller is on the left side. Either swap the sides mentally in realtime, or change the emulator settings.
How To Play
Please refer to the D-Pad Hero 2 manual. Inspired by Ubisoft’s green decision to ditch paper manuals, we will not be offering printed manuals. Oh yeah, that’s also why we’re not producing a cartridge.
Here are some video demonstrations:
Whew, a lot has happened since the first game. We’ve tried to incorporate as many of your suggestions as possible. We’ve tried to make a game that’s richer and longer lasting. In short, we’ve tried to make a game that we would have loved to play had it been released when we were kids (we don’t think it’s too shabby to play as grown-ups either, mind you!). Here are the 8 most notable additions and improvements:
- More songs. D-Pad Hero 2 has 50% more songs than the first game.
- Difficulty levels. You have the choice between Beginner, Normal and Expert.
- Challenge-based. In addition to playing a song till the end and aiming for the high score, there’s much more to do.
- Special items / power-ups. POW blocks, stars, and clocks can help you out in tricky spots.
- Slicker visuals. D-Pad Hero has gone 3-D (glasses sold separately). We hope you too find this view more lucid than the old one.
- Improved presentation. Menu screens and status screens have a cohesive design and interaction.
- Two can play. New exciting modes for two players: Co-operative and Versus. It’s possibly the coolest new feature; give it a try if you have a friend!
- Multiple endings. If you get a sub-par ending, you should try to complete more challenges on your next play.
Artists and Inspirations
Obviously we owe a lot to the artists whose music we’ve remixed and sprinkled with 8-bit flavor. Like with the first game, we’ve chosen artists and songs that we hold in the highest regard, and we’ve done our best to do them justice on the NES. Similarly, there are several games (old and new) that have inspired us in achieving the look, style and elements of the game. We recommend that everyone support the work of the following artists and companies (in alphabetical order):
- Activision (Guitar Hero)
- Capcom (Mega Man)
- Elvis Presley , Spotify
- Konami (Castlevania)
- Led Zeppelin
- Megadeth , Spotify
- Michael Jackson , Spotify
- Nintendo (The Legend of Zelda, Mario Bros, Punch Out!, Super Mario Bros, Super Mario 64, …)
- Queen , Spotify
- Van Halen , Spotify
- Åge Aleksandersen , Spotify
We’ve worked hard to ensure that there are no issues with this release. If you do find a bug or something else you think we should know about (e.g. glitches on certain emulators; experiences with other input devices; game is too easy), please let us know, so that we may consider making corrections in a future release.
Thanks to everyone who has supported us in one way or another. We hope you will get much enjoyment from the game!
- Kent and Andreas
Gearing up for the release, Andreas has updated the dpadhero.com design. Follow the release countdown on the Downloads page!
If you find issues with the site design or content let us know.
Another day, another rocker associated with a DH2 song. Actually, this is the last one.
Today’s rocker: LIFE MAN
Speciality: Coming of aage
Another day, another rocker associated with a DH2 song.
Today’s rocker: FREE MAN
Speciality: Quicksilver poisoning