Arkanoid (NES) - RAM

From ROM Detectives Wiki
Jump to navigation Jump to search
Label-Main.pngLabel-RAM.pngLabel-ROM.pngLabel-Text.png


USA

USA

Arkanoid - NES - USA.png

Memory Addresses

000D - Current Player's Lives
000E - Lives displayed on the screen
000F - Number of bricks remaining

001C - Current Player's Round
001D - P1 Lives
001E - P2 Lives

0021 - Current Player's Round (00-24)
0023 - P1 Round
0024 - P2 Round

008C - Capsule Type
	01 - Slow
	02 - Catch
	03 - Extend
	04 - Disrupt
	05 - Laser
	06 - Break
	07 - Player Extend
008D - Capsule Animation Delay x4
008E - Capsule Animation Delay x1
008F - Capsule Graphic Position
0090 - Capsule Graphic Position
0091 - Capsule Y Position
0092 - Capsule Animation Offset
0093 - Capsule Palette
0094 - Capsule X Position

0100 - Ball Speed (Updates when ball hits Vaus or wall)
0101 - Ball Speed Copy
0102 - Hit counter. Increments each time the ball or laser hits something. Changed when ball it's back of stage.

010C - Ball Grid Y
010D - Ball Grid X

011A - Vaus very left bloc X Pos
011B - Vaus left bloc X Pos
011C - Vaus middle left bloc X Pos
011D - Vaus middle right bloc X Pos
011E - Vaus right bloc X Pos
011F - Vaus very right bloc X Pos

0128 - Catch flag
0129 - Set Vaus Status To (Use this to set Vaus size)
	01 - Normal
	02 - Extended
	04 - Laser
012A - Vaus Status
	01 - Normal
	02 - Extended
	04 - Laser

012E - Ball Grid Y
012F - Ball Grid X

0138 - Delay before ball automatically releases
013B - Screen Change Delay counter
0166 - Hits on Doh (Set to 0F and next hit will kill)
0167 - Hits on Doh - Copy

03A0-03AA - Bricks Row 1
03AB-03B6 - Bricks Row 2
03B7-03C0 - Bricks Row 3
03C1-03CB - Bricks Row 4
03CC-03D6 - Bricks Row 5
03D7-03E1 - Bricks Row 6
03E2-03EC - Bricks Row 7
03ED-03F7 - Bricks Row 8
03F8-0403 - Bricks Row 9
0404-040D - Bricks Row 10
040E-0418 - Bricks Row 11
0419-0423 - Bricks Row 12
0424-042E - Bricks Row 13
042F-0439 - Bricks Row 14
043A-0444 - Bricks Row 15
0445-044F - Bricks Row 16
0450-045A - Bricks Row 17
045B-0465 - Bricks Row 18
0466-0470 - Bricks Row 19
0471-047B - Bricks Row 20
047C-0486 - Bricks Row 21
0487-0491 - Bricks Row 22
0492-049C - Bricks Row 23
049D-04A7 - Bricks Row 24

	Brick values are broken out by nybble.

	High nybble is the color/type
	0 - No brick
	1-D - Color assigned by level
	E - Silver
	F - Gold

	Low nybble is the number of hits the brick will take.
	If it is a 9 the brick will break at the first hit and drop a capsule.
	Anything else will decrement the low nybble.

0366 - Hi Score: 9xxxxx
0367 - Hi Score: x9xxxx
0368 - Hi Score: xx9xxx
0369 - Hi Score: xxx9xx
036A - Hi Score: xxxx9x
036B - Hi Score: xxxxx9
0370 - P1 Score: 9xxxxx
0371 - P1 Score: x9xxxx
0372 - P1 Score: xx9xxx
0373 - P1 Score: xxx9xx
0374 - P1 Score: xxxx9x
0375 - P1 Score: xxxxx9
0376 - P2 Score: 9xxxxx
0377 - P2 Score: x9xxxx
0378 - P2 Score: xx9xxx
0379 - P2 Score: xxx9xx
037A - P2 Score: xxxx9x
037B - P2 Score: xxxxx9
037C - Score Incrementer 9xxxxx
037D - Score Incrementer x9xxxx
037E - Score Incrementer xx9xxx
037F - Score Incrementer xxx9xx
0380 - Score Incrementer xxxx9x
0381 - Score Incrementer xxxxx9 - Setting this continually increases the score.
0382 - Display Score: 9xxxxx
0383 - Display Score: x9xxxx
0384 - Display Score: xx9xxx
0385 - Display Score: xxx9xx
0386 - Display Score: xxxx9x
0387 - Display Score: xxxxx9

Code

Starting Level

This is an excerpt from the starting routine.

; Starting with 1 player.
9C12:A9 03     LDA #$03         ; Load #03 into A.
9C14:85 1D     STA $001D        ; Store A into P1 Lives.
9C16:AD 32 01  LDA $0132        ;
9C19:C9 05     CMP #$05
9C1B:90 01     BCC $9C1E
9C1D:60        RTS
9C1E:A9 01     LDA #$01         ; Load #01 into A.
9C20:85 21     STA $0021        ; Store A into Level.
9C22:85 23     STA $0023
9C24:A9 00     LDA #$00
9C26:85 22     STA $0022
9C28:60        RTS

; Starting using 2 players.
9C29:A9 03     LDA #$03         ; Load #03 into A.
9C2B:85 1D     STA $001D        ; Store A into P1 Lives.
9C2D:85 1E     STA $001E        ; Store A into P2 Lives.


Japan

Japan

Arkanoid - NES - Japan.png


Memory Addresses

000D - Current Player's Lives

0021 - Current Player's Round (00-24)
0023 - P1 Round
0024 - P2 Round

0100 - Ball Speed (Updates when ball hits Vaus or wall)

0128 - Catch flag
0129 - Set Vaus Status To (Use this to set Vaus size)
	01 - Normal
	02 - Extended
	04 - Laser

0166 - Hits on Doh (Set to 0F and next hit will kill)

Code

Game Start

Sets the starting round. The Japanese Round seems to be decimal rather than hex and gets incremented differently.

; 2-Player game.
9BAC:A9 01     LDA #$01
9BAE:85 21     STA $0021        ; Store A into P1 Stage
9BB0:85 23     STA $0023        ; Store A into P1 Stage

; 1-Player game.
9C44:A9 01     LDA #$01
9C46:85 21     STA $0021
9C48:85 23     STA $0023