Arkanoid DS analysis
Posted on 24th July 2008 by SebastianSo, while I was i vacationing in the Czech Republic this last week, I was playing a lot of DS. Among the games I played was Arkanoid DS.
First a little bit of reviewing of it; the engine is great, no excessive powerups, a great soundtrack. I believe Deceased Crab commented the best about the level design, however.
So, frustrated with the level design, as any sane person would be, I pondered how hard it’d be to make one’s own levels for the game. Not too hard, it turned out. Thusly, I here bring you a guide to make your own levels in Arkanoid DS:
- Obtain a ROM of Arkanoid DS. (why, legally, of course!)
- Download DSLazy.
- Open the ROM in DSLazy and unpack it.
- In the text editor of your choice, open NDS_UNPACK/data/data/DATA01.DAT.
- Scroll down to line 17 and you will see the level data.
Protip: Make sure you have your tab width set to at least 5 spaces. - Edit at will. (Guide below)
- Pack the ROM again in DSLazy.
- Enjoy your new levels!
Level data sample
$$ARKANOID$$0% ZONE@A-1 0 11 120 90 45 0 1 2 45 10 0 0 0 5 5 E 45•bˆÈ“à‚É10ŒÂ‚̃uƒƒbƒN‚ðÁ‚¹I 0 A B C D E F G H I J K 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 3 N800 N810 N800 0 N100 N100 N100 0 N800 N810 N800 4 0 0 0 0 0 0 0 0 0 0 0 5 N700 N700 N700 0 N300 N310 N300 0 N200 N200 N200 6 0 0 0 0 0 0 0 0 0 0 0 7 N400 N410 N400 0 N500 N500 N500 0 N400 N410 N400 8 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0
What I’ve been able to make out from the data
The format seems to be as follows:
$$ARKANOID$$<level number>% ZONE@<level name> <level number> <level width> <???> <???> <???> <???> <???> <???> <quest time limit> <quest blocks needed to destroy> <quest blocktype for "destroy all XXX blocks"> <???> <quest ball launch limit> <quest point award> <???> <???> <seems to be either the ball launch limit or time limit, whichever is relevant><seemingly garbage> <level map>
The level map format should be pretty obvious, save for a few details:
Each tile is either a 0 (no brick on it) or a 4 letter code.
The four letter code is composed of a 2-character blocktype prefix and a 2-character properties suffix.
Blocktypes:
N1: White
N2: Orange
N3: Cyan
N4: Green
N5: Red
N6: Blue
N7: Magenta/Purple
N8: Yellow
HW: Silver
GW: Gold
Properties:
The properties are composed of two flags, a powerup flag and a movement flag.
Powerup flags:
0-: Brick drops no powerup
1-: Brick drops a powerup
Movement flags:
-0: No movement
-B: Start moving left and right on impact
-L: Move left and right, starting left
-R: Move left and right, starting right
This means that, for instance, a block with the property flag 1R moves left and right, starting right, and drops a powerup.
Interesting sidenote: It is possible for gold blocks to have item drop flags, and they will in fact drop an item upon each impact.
Final comments
If anyone finds out anything new about this, feel free to inform me. This is just what I managed to gather from an hour or two of messing about, and I would love to have the gaps of my knowledge filled out.

