Image 01 Image 02

Arkanoid DS analysis

Posted on 24th July 2008 by Sebastian
0

So, 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.



Leave a reply...