Jun 21

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!

Oct 05

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.

Tagged with:
Oct 03

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 game.asm).

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 *****
                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
                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
                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 rock_score_table in game.asm.

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.

Jul 31

Windows binaries for the latest versions of xorcyst and xm2nes are now available at


Tagged with:
Jul 28

The source code to D-Pad Hero 2 has been released. Get it at


In order to build, you need to have xorcyst (from http://repo.or.cz/w/xorcyst.git) and xm2nes (from http://repo.or.cz/w/kents-nes-stuff.git) installed.

After cloning the dpadhero2 repository, first build tools/xm2btn:

cd tools/xm2btn && make

Then build dpadhero2.nes:

cd ../../src && make

If all goes well, there will be a dpadhero2.nes under src/build/.

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.


Tagged with:
Jul 28

In case you’d like to have D-Pad Hero 1 & 2 on real cartridges, this place can help you out:


BombSweeper also recommended.

May 15

What are you waiting for? Download the game already!

Getting Started

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:

D-Pad Hero 2 gameplay (1 player)

D-Pad Hero 2: Free Man - Expert - 98%

D-Pad Hero 2: Whip Man - Expert - 99%


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):


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

May 11

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.

Tagged with:
May 10

Another day, another rocker associated with a DH2 song. Actually, this is the last one.

Today’s rocker: LIFE MAN

Speciality: Coming of aage

Tagged with:
May 09

Another day, another rocker associated with a DH2 song.

Today’s rocker: FREE MAN

Speciality: Quicksilver poisoning

Tagged with:
preload preload preload