-
Notifications
You must be signed in to change notification settings - Fork 0
/
ram-map.wiki.notags
1554 lines (1552 loc) · 42.1 KB
/
ram-map.wiki.notags
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{{rammap|game=Pokémon Red and Blue}}
Currently, many more memory addresses can be found in the Pokémon Red disassembly project ([https://github.com/pret/pokered/blob/master/wram.asm WRAM], [https://github.com/pret/pokered/blob/master/vram.asm VRAM], [https://github.com/pret/pokered/blob/master/hram.asm HRAM], [https://github.com/pret/pokered/blob/master/sram.asm SRAM]).
==Saved data (SRAM)==
===Bank 0===
Sprite decompression zone + Hall of Fame
A000 - A187 : Sprite buffer #0
A188 - A30F : Sprite buffer #1
A310 - A497 : Sprite buffer #2
A498 - A597 : Unused ?
A598 - B857 : Hall Of Fame data
B858 - BFFF : Unused ?
Note : this is the reason Missingno corrupts the HoF data : its invalid sprite, when decompressed, overwrites data past the buffers' boundaries... right into HoF data.
Other Pokémon with even larger corruptions reach WRAM - usually leading to crashes.
===Bank 1===
A000 - A597 : Unused ?
A598 - A5A2 : Player name
A5A3 - AD2B : Main data
AD2C - AF2B : Sprite data
AF2C - B0BF : Party data
B0C0 - B521 : Current box data
B522 : Tileset type
B523 : Main data checksum
B524 - BFFF : Unused ?
===Bank 2===
Pokémon boxes 1-6
A000 - A461 : Box 1
A462 - A8C3 : Box 2
A8C4 - AD25 : Box 3
AD26 - B187 : Box 4
B188 - B5E9 : Box 5
B5EA - BA4B : Box 6
BA4C : Global checksum
BA4D - BA52 : Individual checksums
BA53 - BFFF : Unused
===Bank 3===
Pokémon boxes 7-12
A000 - A461 : Box 7
A462 - A8C3 : Box 8
A8C4 - AD25 : Box 9
AD26 - B187 : Box 10
B188 - B5E9 : Box 11
B5EA - BA4B : Box 12
BA4C : Global checksum
BA4D - BA52 : Individual checksums
BA53 - BFFF : Unused
==Main data (WRAM)==
===Audio===
Addresses C000 to C0F2 are used by the sound engine.
C002 - Bit 7 : 1 if audio is muted. Other bits : if non-zero, pauses music and continues SFX until it ends.
C0DE - Volumes for all music channels (and fade for those who support it)
C0EF - Current sound bank
C0F0 - Saved sound bank
Bytes C0F3 to C0FF are undocumented (if used)
===Sprite Data===
C100 to C1FF : Data for all sprites on the current map
Holds info for 16 sprites with $10 bytes each
Note : player is always sprite 0
Replace x with the sprite ID
C1x0: picture ID (fixed, loaded at map init)
C1x1: movement status (0: uninitialized, 1: ready, 2: delayed, 3: moving)
C1x2: sprite image index (changed on update, $ff if off screen, includes facing direction, progress in walking animation and a sprite-specific offset)
C1x3: Y screen position delta (-1,0 or 1; added to c1x4 on each walking animation update)
C1x4: Y screen position (in pixels, always 4 pixels above grid which makes sprites appear to be in the center of a tile)
C1x5: X screen position delta (-1,0 or 1; added to c1x6 on each walking animation update)
C1x6: X screen position (in pixels, snaps to grid if not currently walking)
C1x7: intra-animation-frame counter (counting upwards to 4 until c1x8 is incremented)
C1x8: animation frame counter (increased every 4 updates, hold four states (totalling to 16 walking frames)
C1x9: facing direction (0: down, 4: up, 8: left, $c: right)
C1xA to C1xF are unudocumented (if used)
C200 to C2FF : More data for all sprites on the current map
Holds info for 16 sprites with $10 bytes each
Note : player sprite is always sprite 0
C2x0: walk animation counter (counting from $10 backwards when moving)
C2x1:
C2x2: Y displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
C2x3: X displacement (initialized at 8, supposed to keep moving sprites from moving too far, but bugged)
C2x4: Y position (in 2x2 tile grid steps, topmost 2x2 tile has value 4)
C2x5: X position (in 2x2 tile grid steps, leftmost 2x2 tile has value 4)
C2x6: movement byte 1 (determines whether a sprite can move, $ff:not moving, $fe:random movements, others unknown)
C2x7: (?) (set to $80 when in grass, else $0; may be used to draw grass above the sprite)
C2x8: delay until next movement (counted downwards, status (c1x1) is set to ready if reached 0)
C2x9 to C2xD are undocumented
C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
C2xF isn't documented
C300 to C39F : OAM DMA buffer (source for the DMA Transfer)
===Tile Data===
C3A0 to C507 : Buffer of all tiles onscreen
C508 to C5CF : Copy of previous buffer (used to restore tiles after closing menus)
===Menu Data===
Coordinates of the position of the cursor for the top menu item (id 0)
CC24 : Y position
CC25 : X position
CC26 - Currently selected menu item (topmost is 0)
CC27 - Tile "hidden" by the menu cursor
CC28 - ID of the last menu item
CC29 - bitmask applied to the key port for the current menu
CC2A - ID of the previously selected menu item
CC2B - Last position of the cursor on the party / Bill's PC screen
CC2C - Last position of the cursor on the item screen
CC2D - Last position of the cursor on the START / battle menu
CC2F - Index (in party) of the Pokémon currently sent out
CC30~CC31 - Pointer to cursor tile in C3A0 buffer
CC36 - ID of the first ''displayed'' menu item
CC35 - Item highlighted with Select (01 = first item, 00 = no item, etc.)
CC3A and CC3B are unused
===Link Data===
CC3C to CC49 hold data used for Cable Club stuff
The meaning of CC47 depends on the context
CC47 - Link timeout counter
CC47 - Is player entering Cable Club ?
===Misc.===
CC97 to CCA0 : buffer for when swapping party Pokémon
===Battle===
CCD5 - Number of turns in current battle
CCD6 is undocumented (if used)
CCD7 - Player's Substitute HP
CCD8 - Enemy Substitute HP
CCDB - Move menu type : 0 is regular, 1 is mimic, other are text boxes (learn, PP-refill...)
CCDC - Player-selected move
CCDD - Enemy-selected move
CCE5~CCE7 - Money earned by Pay Day
Safari Zone data :
CCE8 - Opponent escaping factor
CCE9 - Opponent baiting factor
CCED - Is current Pokémon disobedient ?
CCEE - Player's disabled move
CCEF - Enemy's disabled move
CCF6 - Is low-health alarm disabled ?
CD05~CD06 - Amount of damage the enemy accumulated while Biding
CD1A - Player's Pokémon Attack modifier (7 means no modifier)
CD1B - Player's Pokémon Defense modifier
CD1C - Player's Pokémon Speed modifier
CD1D - Player's Pokémon Special modifier
CD1E - Player's Pokémon Accuracy modifier
CD1F - Player's Pokémon Evasion modifier
CD2D - Engaged Trainer class / legendary Pokémon ID
CD2E - Engaged Trainer roster ID / Enemy's Pokémon Attack modifier (7 means no modifier)
CD2F - Enemy's Pokémon Defense modifier
CD30 - Enemy's Pokémon Speed modifier
CD31 - Enemy's Pokémon Special modifier
CD32 - Enemy's Pokémon Accuracy modifier
CD33 - Enemy's Pokémon Evasion modifier
===Joypad simulation===
CD38 - Index for joypad input simulation. If non-zero, disables collision but does not lock player.
===Pokémon Mart===
CF7B - Total Items
CF7C - Item 1
CF7D - Item 2
CF7E - Item 3
CF7F - Item 4
CF80 - Item 5
CF81 - Item 6
CF82 - Item 7
CF83 - Item 8
CF84 - Item 9
CF85 - Item 10
===Name Rater===
CF92 - Which Pokémon does Name Rater Change?
===Battle===
CFD3 - Your Move Effect (e.g. 10h = coins scatter everywhere)
CFD5 - Your Move Type
CCDC - Your Move Used
CFCC - Enemy's Move ID
CFCD - Enemy's Move Effect
CFCE - Enemy's Move Power
CFCF - Enemy's Move Type
CFD0 - Enemy's Move Accuracy
CFD1 - Enemy's Move Max PP
CFD2 - Player's Move ID
CFD3 - Player's Move Effect
CFD4 - Player's Move Power
CFD5 - Player's Move Type
CFD6 - Player's Move Accuracy
CFD7 - Player's Move Max PP
CFD8 - Enemy's Pokémon internal ID
CFD9 - Player's Pokémon internal ID
CFDA-CFE4 - Enemy's Name
CFE5 - Enemy's Pokémon internal ID
CFE6-CFE7 - Enemy's HP
CFE8 - Enemy's Level
CFE9 - Enemy's Status
Bit 6 : Paralyzed
Bit 5 : Frozen
Bit 4 : Burned
Bit 3 : Poisoned
Bits 0-2 : Sleep counter
CFEA - Enemy's Type 1
CFEB - Enemy's Type 2
CFEC - Enemy's Catch Rate (''Unused'', only referenced by Transform script, the one actually used is at D007)
CFED - Enemy's Move 1
CFEE - Enemy's Move 2
CFEF - Enemy's Move 3
CFF0 - Enemy's Move 4
CFF1 - Enemy's Attack and Defense DVs
CFF2 - Enemy's Speed and Special DVs
CFF3 - Enemy's Level
CFF4-CFF5 - Enemy's Max HP
CFF6-CFF7 - Enemy's Attack
CFF8-CFF9 - Enemy's Defense
CFFA-CFFB - Enemy's Speed
CFFC-CFFD - Enemy's Special
CFFE - Enemy's PP (First Slot)
CFFF - Enemy's PP (Second Slot)
D000 - Enemy's PP (Third Slot)
D001 - Enemy's PP (Fourth Slot)
D002-D006 - Enemy's Base Stats
D007 - Enemy's Catch Rate
D008 - Enemy's Base Experience
Pokémon 1st Slot (In-Battle)
D009-D013 - Name
D014 - Pokémon Number
D015-D016 - Current HP
D017 -
D018 - Status
Bit 6 : Paralyzed
Bit 5 : Frozen
Bit 4 : Burned
Bit 3 : Poisoned
Bits 0-2 : Sleep counter
D019 - Type 1
D01A - Type 2
D01B -
D01C - Move #1 (First Slot)
D01D - Move #2 (Second Slot)
D01E - Move #3 (Third Slot)
D01F - Move #4 (Fourth Slot)
D020 - Attack and Defense DVs
D021 - Speed and Special DVs
D022 - Level
D023-D024 - Max HP
D025-D026 - Attack
D027-D028 - Defense
D029-D02A - Speed
D02B-D02C - Special
D02D - PP (First Slot)
D02E - PP (Second Slot)
D02F - PP (Third Slot)
D030 - PP (Fourth Slot)
D057 - Type of battle
D05A - Battle Type (Normal battle, Safari Zone, Old Man battle...)
D05C - Is Gym Leader battle music playing?
D05D -
D05E - Critical Hit / OHKO Flag
01 - Critical Hit!
02 - One-hit KO!
D05F - Hooked Pokémon Flag
D062-D064 - Battle Status (Player)
D062:
bit 0 - Bide
bit 1 - Thrash / petal dance
bit 2 - Attacking multiple times (e.g. double kick)
bit 3 - Flinch
bit 4 - Charging up for attack
bit 5 - Using multi-turn move (e.g. wrap)
bit 6 - Invulnerable to normal attack (using fly/dig)
bit 7 - Confusion
D063:
bit 0 - X Accuracy effect
bit 1 - protected by "mist"
bit 2 - focus energy effect
bit 4 - has a substitute
bit 5 - need to recharge
bit 6 - rage
bit 7 - leech seeded
D064:
bit 0 - toxic
bit 1 - light screen
bit 2 - reflect
bit 3 - tranformed
D065 - Stat to double (CPU)
D066 - Stat to halve (CPU)
D067-D069 - Battle Status (CPU) - Includes the "Transformed" status in D069 which makes the game regard the opponent as a Ditto.
D06A - Multi-Hit Move counter (Player)
D06B - Confusion counter (Player)
D06C - Toxic counter (Player)
D06D-D06E - Disable counter (Player)
D06F - Multi-Hit Move counter (CPU)
D070 - Confusion counter (CPU)
D071 - Toxic counter (CPU)
D072 - Disable counter (CPU)
D0D8 - Amount of damage attack is about to do. Max possible damage may appear one frame before actual damage.
===Game Corner===
D13D - 1st Game Corner Prize
D13E - 2nd Game Corner Prize
D13F - 3rd Game Corner Prize
===Link Battle PRNG===
D148-D150 - 9 Pseudo-Random Numbers used during Link Battles. Once a batch is used up, it generates a new batch with n × 5 + 1.
=== Player ===
D158-D162 - Your Name
D163 - # Pokémon In Party
D164 - Pokémon 1
D165 - Pokémon 2
D166 - Pokémon 3
D167 - Pokémon 4
D168 - Pokémon 5
D169 - Pokémon 6
D16A - End of list
Pokémon 1
D16B - Pokémon (Again)
D16C-D16D - Current HP
D16E - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D16F - Status (Poisoned, Paralyzed, etc.)
D170 - Type 1
D171 - Type 2
D172 - Catch rate/Held item (When traded to Generation II)
D173 - Move 1
D174 - Move 2
D175 - Move 3
D176 - Move 4
D177-D178 - Trainer ID
D179-D17B - Experience
D17C-D17D - HP EV
D17E-D17F - Attack EV
D180-D181 - Defense EV
D182-D183 - Speed EV
D184-D185 - Special EV
D186 - Attack/Defense IV
D187 - Speed/Special IV
D188 - PP Move 1
D189 - PP Move 2
D18A - PP Move 3
D18B - PP Move 4
D18C - Level (actual level)
D18D-D18E - Max HP
D18F-D190 - Attack
D191-D192 - Defense
D193-D194 - Speed
D195-D196 - Special
Pokémon 2
D197 - Pokémon
D198-D199 - Current HP
D19A - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D19B - Status
D19C - Type 1
D19D - Type 2
D19E - Catch rate/Held item (When traded to Generation II)
D19F - Move 1
D1A0 - Move 2
D1A1 - Move 3
D1A2 - Move 4
D1A3-D1A4 - Trainer ID
D1A5-D1A7 - Experience
D1A8-D1A9 - HP EV
D1AA-D1AB - Attack EV
D1AC-D1AD - Defense EV
D1AE-D1AF - Speed EV
D1B0-D1B1 - Special EV
D1B2 - Attack/Defense IV
D1B3 - Speed/Special IV
D1B4 - PP Move 1
D1B5 - PP Move 2
D1B6 - PP Move 3
D1B7 - PP Move 4
D1B8 - Level (actual)
D1B9-D1BA - Max HP
D1BB-D1BC - Attack
D1BD-D1BE - Defense
D1BF-D1C0 - Speed
D1C1-D1C2 - Special
Pokémon 3
D1C3 - Pokémon
D1C4-D1C5 - Current HP
D1C6 - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D1C7 - Status
D1C8 - Type 1
D1C9 - Type 2
D1CA - Catch rate/Held item (When traded to Generation II)
D1CB - Move 1
D1CC - Move 2
D1CD - Move 3
D1CE - Move 4
D1CF-D1D0 - Trainer ID
D1D1-D1D3 - Experience
D1D4-D1D5 - HP EV
D1D6-D1D7 - Attack EV
D1D8-D1D9 - Defense EV
D1DA-D1DB - Speed EV
D1DC-D1DD - Special EV
D1DE - Attack/Defense IV
D1DF - Speed/Special IV
D1E0 - PP Move 1
D1E1 - PP Move 2
D1E2 - PP Move 3
D1E3 - PP Move 4
D1E4 - Level
D1E5-D1E6 - Max HP
D1E7-D1E8 - Attack
D1E9-D1EA - Defense
D1EB-D1EC - Speed
D1ED-D1EE - Special
Pokémon 4
D1EF - Pokémon
D1F0-D1F1 - Current HP
D1F2 - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D1F3 - Status
D1F4 - Type 1
D1F5 - Type 2
D1F6 - Catch rate/Held item (When traded to Generation II)
D1F7 - Move 1
D1F8 - Move 2
D1F9 - Move 3
D1FA - Move 4
D1FB-D1FC - Trainer ID
D1FD-D1FF - Experience
D200-D201 - HP EV
D202-D203 - Attack EV
D204-D205 - Defense EV
D206-D207 - Speed EV
D208-D209 - Special EV
D20A - Attack/Defense IV
D20B - Speed/Special IV
D20C - PP Move 1
D20D - PP Move 2
D20E - PP Move 3
D20F - PP Move 4
D210 - Level
D211-D212 - Max HP
D213-D214 - Attack
D215-D216 - Defense
D217-D218 - Speed
D219-D21A - Special
Pokémon 5
D21B - Pokémon
D21C-D21D - Current HP
D21E - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D21F - Status
D220 - Type 1
D221 - Type 2
D222 - Catch rate/Held item (When traded to Generation II)
D223 - Move 1
D224 - Move 2
D225 - Move 3
D226 - Move 4
D227-D228 - Trainer ID
D229-D22B - Experience
D22C-D22D - HP EV
D22E-D22F - Attack EV
D230-D231 - Defense EV
D232-D233 - Speed EV
D234-D235 - Special EV
D236 - Attack/Defense IV
D237 - Speed/Special IV
D238 - PP Move 1
D239 - PP Move 2
D23A - PP Move 3
D23B - PP Move 4
D23C - Level
D23D-D23E - Max HP
D23F-D240 - Attack
D241-D242 - Defense
D243-D244 - Speed
D245-D246 - Special
Pokémon 6
D247 - Pokémon
D248-D249 - Current HP
D24A - 'Level' (not the actual level, see [[Pokémon Red and Blue:Notes#False 'level' addresses|the notes article]])
D24B - Status
D24C - Type 1
D24D - Type 2
D24E - Catch rate/Held item (When traded to Generation II)
D24F - Move 1
D250 - Move 2
D251 - Move 3
D252 - Move 4
D253-D254 - Trainer ID
D255-D257 - Experience
D258-D259 - HP EV
D25A-D25B - Attack EV
D25C-D25D - Defense EV
D25E-D25F - Speed EV
D260-D261 - Special EV
D262 - Attack/Defense IV
D263 - Speed/Special IV
D264 - PP Move 1
D265 - PP Move 2
D266 - PP Move 3
D267 - PP Move 4
D268 - Level
D269-D26A - Max HP
D26B-D26C - Attack
D26D-D26E - Defense
D26F-D270 - Speed
D271-D272 - Special
Trainer Name
D273-D27D - Trainer name for 1st
D27E-D288 - Trainer name for 2nd
D289-D293 - Trainer name for 3rd
D294-D29E - Trainer name for 4th
D29F-D2A9 - Trainer name for 5th
D2AA-D2B4 - Trainer name for 6th
Nickname
D2B5-D2BF - Nickname for 1st
D2C0-D2CA - Nickname for 2nd
D2CB-D2D5 - Nickname for 3rd
D2D6-D2E0 - Nickname for 4th
D2E1-D2EB - Nickname for 5th
D2EC-D2F6 - Nickname for 6th
=== Pokedex ===
:D2F7 - Own 1-8
:D2F8 - Own 9-16
:D2F9 - Own 17-24
:D2FA - Own 25-32
:D2FB - Own 33-40
:D2FC - Own 41-48
:D2FD - Own 49-56
:D2FE - Own 57-64
:D2FF - Own 65-72
:D300 - Own 73-80
:D301 - Own 81-88
:D302 - Own 89-96
:D303 - Own 97-104
:D304 - Own 105-112
:D305 - Own 113-120
:D306 - Own 121-128
:D307 - Own 129-136
:D308 - Own 137-144
:D309 - Own 145-152
:D30A - Seen 1-8
:D30B - Seen 9-16
:D30C - Seen 17-24
:D30D - Seen 25-32
:D30E - Seen 33-40
:D30F - Seen 41-48
:D310 - Seen 49-56
:D311 - Seen 57-64
:D312 - Seen 65-72
:D313 - Seen 73-80
:D314 - Seen 81-88
:D315 - Seen 89-96
:D316 - Seen 97-104
:D317 - Seen 105-112
:D318 - Seen 113-120
:D319 - Seen 121-128
:D31A - Seen 129-136
:D31B - Seen 137-144
:D31C - Seen 145-152
=== Items ===
:D31D - Total Items
:D31E - Item 1
:D31F - Item 1 Quantity
:D320 - Item 2
:D321 - Item 2 Quantity
:D322 - Item 3
:D323 - Item 3 Quantity
:D324 - Item 4
:D325 - Item 4 Quantity
:D326 - Item 5
:D327 - Item 5 Quantity
:D328 - Item 6
:D329 - Item 6 Quantity
:D32A - Item 7
:D32B - Item 7 Quantity
:D32C - Item 8
:D32D - Item 8 Quantity
:D32E - Item 9
:D32F - Item 9 Quantity
:D330 - Item 10
:D331 - Item 10 Quantity
:D332 - Item 11
:D333 - Item 11 Quantity
:D334 - Item 12
:D335 - Item 12 Quantity
:D336 - Item 13
:D337 - Item 13 Quantity
:D338 - Item 14
:D339 - Item 14 Quantity
:D33A - Item 15
:D33B - Item 15 Quantity
:D33C - Item 16
:D33D - Item 16 Quantity
:D33E - Item 17
:D33F - Item 17 Quantity
:D340 - Item 18
:D341 - Item 18 Quantity
:D342 - Item 19
:D343 - Item 19 Quantity
:D344 - Item 20
:D345 - Item 20 Quantity
:D346 - Item End of List
=== Money ===
:D347 - Money Byte 1
:D348 - Money Byte 2
:D349 - Money Byte 3
=== Rival ===
:D34A-D351 - Rival's Name
=== Miscellaneous ===
D355 - Options
:Bit 7 = Battle Animation (1 = Off, 0 = On)
:Bit 6 = Battle Style (1 = Set, 0 = Shift)
:Bit 5-4 = probably unused
:Low Nybble = Text Speed (0x0 = fastest, 0xF = slowest)
:::Fast = 1
:::Medium = 3
:::Slow = 5
D356 = Badges (Binary Switches)
D358 = If bit0 = 0, delay is limited to 1 frame between each letter. If bit1 = 0, no delay during text printing. Overrides previous setting.
D359 = Player ID [1] (Multiple of 256) D35A = Player ID [2] (...+1-255)
D35B = Audio track (See Audio section)
D35C = Audio bank (See Audio section)
D35D = Controls the map's palette. Usually 0, but is set to 6 when Flash is required.
D35E = Current Map Number
:D35F-D360 = Event Displacement (view Notes, for more info)
:D361 - 1 byte integer = Current Player Y-Position
:D362 - 1 byte integer = Current Player X-Position
:D363 = Current Player Y-Position (Current Block)
:D364 = Current Player X-Position (Current Block)
D365 = Last map location for walking through certain exits (e.g. Safari Zone gate)
=== Audio ===
C022 = Audio track channel 1
C023 = Audio track channel 2
C024 = Audio track channel 3
C025 = Audio track channel 4
C0E8, C0E9 = Music tempo (lower values in C0E9 may = faster except for particularly low values)
C0EA, C0EB = Sound effects tempo
C0EC, C0ED = Sound effects header pointer
C0EE = New sound ID
C0EF = Audio bank
C0F0 = Audio bank
D35B = Audio track in current map
D35C = Audio bank in current map
:Bank 02
::B3 = Validate
::B4 = Bump
::B5 = Exit of a house
::B6 = Save Game
::B8 = Pokéflute
::B9 = Ding Dong
::BA = PalletTown
::BD = Pokecenter
::C0 = Gym
::C3 = Viridian City, Pewter City, Saffron City
::C7 = Cerulean City, Fuchsia City
::CA = Celadon City
::CD = Cinnabar City
::D0 = Vermilion City
::D4 = Lavender Town
::D8 = SS Anne
::DB = Meet Oak
::DE = Meet Blue
::E1 = Follow me
::E5 = Safari Zone / Evolution
::E8 = Pokémon Healding
::EB = Road 1, 2
::EF = Road 24, 25
::F3 = Road 3, 4, 5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22
::F7 = Road 11, 12, 13, 14, 15
::FB = Indigo Plateau
:Bank 08
::EA = Gym Leader Battle
::ED = Trainer Battle
::F0 = Wild Battle
::F3 = Final Battle
::F6 = Defeated Trainer
::F9 = Defeated Wild Pokemon
::FC = Defeated Champion / Gym
:Bank 1F
::C3 = Title Screen
::C7 = Credits
::CA = Hall of fame
::CD = Oak's Lab
::D0 = Jigglypuff Song
::D2 = Bike Riding
::D6 = Surfing
::D9 = Came Corner
::DC = Intro Game
::DF = Power Plant, Unknown Dungeon, Rocket HQ
::E3 = Viridian Forest, Seafoam Islands
::E7 = Mt. Moon, Rock Tunnel, Victory Road
::EB = Cinnabar City Mansion
::EF = Pokemon Tower
::F2 = Silph Co.
::F5 = Eye contact Evil Trainer
::F8 = Eye contact Female Trainer
::FB = Eye contact Male Trainer
::FF = Stop Sound
=== Map Header ===
:D367 - 1 byte integer = Map's Tileset, 1 byte
:D368 - 1 byte integer = Map's Height (Blocks)
:D369 - 1 byte integer = Map's Width (Blocks)
:D36A-D36B = Map's Data
:D36C-D36D = Map's Text Pointer Table (For Each NPC) Location
:D36E-D36F = Map's Level-Script Pointer
:D370 = Map's Connection Byte
:D371-D37B = Map's 1st Connection Data
:D37C-D386 = Map's 2nd Connection Data
:D387-D391 = Map's 3rd Connection Data
:D392-D39C = Map's 4th Connection Data
=== Tileset Header ===
:D52B = Tileset Bank
:D52C-D52D = Pointer to Blocks
:D52E-D52F = Pointer to GFX
:D530-D531 = Pointer to Collision Data
:D532-D534 = "Talking-Over" Tiles
:D535 = Grass Tile
=== Tile graphics ===
Tiles are 8x8 pixels, stored in 16 bytes, with each byte representing 4 pixels.
For size comparison, the player is 16x16 pixels, therefore, 4 tiles.
"Active" tiles are stored sequentially in RAM, starting at address 0x8000. From address 0x8000 to 0x9000 there are 256 tiles which make up the player in all orientations, and some commonly used stuff. The real map tiles are from 0x9000 to 0x9600.
:8000 - 16 byte tile graphic struct = tile 0 (often the top left player tile)
:8010 - 16 byte tile graphic struct = tile 1 (often the top right player tile)
:8020 - 16 byte tile graphic struct = tile 2 (often the bottom left player tile)
...
:9000 - 16 byte tile graphic struct = map tile 0 (often blank)
:9010 - 16 byte tile graphic struct = map tile 1
:9020 - 16 byte tile graphic struct = map tile 2
...
=== Stored Items ===
:D53A - Total items in storage
:D53B - Stored Item 1
:D53C - Stored Item 1 Quantity
:D53D - Stored Item 2
:D53E - Stored Item 2 Quantity
:D53F - Stored Item 3
:D540 - Stored Item 3 Quantity
:D541 - Stored Item 4
:D542 - Stored Item 4 Quantity
:D543 - Stored Item 5
:D544 - Stored Item 5 Quantity
:D545 - Stored Item 6
:D546 - Stored Item 6 Quantity
:D547 - Stored Item 7
:D548 - Stored Item 7 Quantity
:D549 - Stored Item 8
:D54A - Stored Item 8 Quantity
:D54B - Stored Item 9
:D54C - Stored Item 9 Quantity
:D54D - Stored Item 10
:D54E - Stored Item 10 Quantity
:D54F - Stored Item 11
:D550 - Stored Item 11 Quantity
:D551 - Stored Item 12
:D552 - Stored Item 12 Quantity
:D553 - Stored Item 13
:D554 - Stored Item 13 Quantity
:D555 - Stored Item 14
:D556 - Stored Item 14 Quantity
:D557 - Stored Item 15
:D558 - Stored Item 15 Quantity
:D559 - Stored Item 16
:D55A - Stored Item 16 Quantity
:D55B - Stored Item 17
:D55C - Stored Item 17 Quantity
:D55D - Stored Item 18
:D55E - Stored Item 18 Quantity
:D55F - Stored Item 19
:D560 - Stored Item 19 Quantity
:D561 - Stored Item 20
:D562 - Stored Item 20 Quantity
:D563 - Stored Item 21
:D564 - Stored Item 21 Quantity
:D565 - Stored Item 22
:D566 - Stored Item 22 Quantity
:D567 - Stored Item 23
:D568 - Stored Item 23 Quantity
:D569 - Stored Item 24
:D56A - Stored Item 24 Quantity
:D56B - Stored Item 25
:D56C - Stored Item 25 Quantity
:D56D - Stored Item 26
:D56E - Stored Item 26 Quantity
:D56F - Stored Item 27
:D570 - Stored Item 27 Quantity
:D571 - Stored Item 28
:D572 - Stored Item 28 Quantity
:D573 - Stored Item 29
:D574 - Stored Item 29 Quantity
:D575 - Stored Item 30
:D576 - Stored Item 30 Quantity
:D577 - Stored Item 31
:D578 - Stored Item 31 Quantity
:D579 - Stored Item 32
:D57A - Stored Item 32 Quantity
:D57B - Stored Item 33
:D57C - Stored Item 33 Quantity
:D57D - Stored Item 34
:D57E - Stored Item 34 Quantity
:D57F - Stored Item 35
:D580 - Stored Item 35 Quantity
:D581 - Stored Item 36
:D582 - Stored Item 36 Quantity
:D583 - Stored Item 37
:D584 - Stored Item 37 Quantity
:D585 - Stored Item 38
:D586 - Stored Item 38 Quantity
:D587 - Stored Item 39
:D588 - Stored Item 39 Quantity
:D589 - Stored Item 40
:D58A - Stored Item 40 Quantity
:D58B - Stored Item 41
:D58C - Stored Item 41 Quantity
:D58D - Stored Item 42
:D58E - Stored Item 42 Quantity
:D58F - Stored Item 43
:D590 - Stored Item 43 Quantity
:D591 - Stored Item 44
:D592 - Stored Item 44 Quantity
:D593 - Stored Item 45
:D594 - Stored Item 45 Quantity
:D595 - Stored Item 46
:D596 - Stored Item 46 Quantity
:D597 - Stored Item 47
:D598 - Stored Item 47 Quantity
:D599 - Stored Item 48
:D59A - Stored Item 48 Quantity
:D59B - Stored Item 49
:D59C - Stored Item 49 Quantity
:D59D - Stored Item 50
:D59E - Stored Item 50 Quantity
:D59F - Stored Items End of List
=== Game Coins ===
:D5A4 - Casino Chips Byte 1
:D5A5 - Casino Chips Byte 2
=== Event Flags ===
D5A6 to D5C5 : Missable Objects Flags (flags for every (dis)appearing sprites, like the guard in Cerulean City or the Pokéballs in Oak's Lab)
D5AB - Starters Back?
D5C0(bit 1) - 0=Mewtwo appears, 1=Doesn't (See D85F)
D5F3 - Have Town map?
D60D - Have Oak's Parcel?
D700 - Bike Speed
:D70B - Fly Anywhere Byte 1
:D70C - Fly Anywhere Byte 2
:D70D - Safari Zone Time Byte 1
:D70E - Safari Zone Time Byte 2
D710 - Fossilized Pokémon?
D714 - Position in Air
D72E - Did you get Lapras Yet?
D732 - Debug New Game
D751 - Fought Giovanni Yet?
D755 - Fought Brock Yet?
D75E - Fought Misty Yet?
D773 - Fought Lt. Surge Yet?
D77C - Fought Erika Yet?
D782 - Fought Articuno Yet?
D790 - If bit 7 is set, Safari Game over
D792 - Fought Koga Yet?
D79A - Fought Blaine Yet?
D7B3 - Fought Sabrina Yet?
D7D4 - Fought Zapdos Yet?
D7D8 - Fought Snorlax Yet (Vermilion)
D7E0 - Fought Snorlax Yet? (Celadon)
D7EE - Fought Moltres Yet?
D803 - Is SS Anne here?
D85F - Mewtwo can be caught if bit 2 clear - Needs D5C0 bit 1 clear, too
=== Wild Pokémon ===
D887 - Wild Pokémon encounter rates
Common Battles:
:D888 - Level of Encounter 1
:D889 - Pokémon Data Value 1
:D88A - Level of Encounter 2
:D88B - Pokémon Data Value 2
:D88C - Level of Encounter 3
:D88D - Pokémon Data Value 3
:D88E - Level of Encounter 4
:D88F - Pokémon Data Value 4
Uncommon Battles:
:D890 - Level of Encounter 1
:D891 - Pokémon Data Value 1
:D892 - Level of Encounter 2
:D893 - Pokémon Data Value 2
:D894 - Level of Encounter 3
:D895 - Pokémon Data Value 3
:D896 - Level of Encounter 4
:D897 - Pokémon Data Value 4
Rare Battles:
:D898 - Level of Encounter 1
:D899 - Pokémon Data Value 1
:D89A - Level of Encounter 2
:D89B - Pokémon Data Value 2
=== Opponent Trainer’s Pokémon ===
:D89C - Total enemy Pokémon
:D89D - Pokémon 1
:D89E - Pokémon 2
:D89F - Pokémon 3
:D8A0 - Pokémon 4
:D8A1 - Pokémon 5
:D8A2 - Pokémon 6
:D8A3 - End of list
Pokémon 1
:D8A4 - Pokémon
:D8A5-D8A6 - Current HP
:D8A7 -
:D8A8 - Status
:D8A9 - Type 1
:D8AA - Type 2
:D8AB -
:D8AC - Move 1
:D8AD - Move 2
:D8AE - Move 3
:D8AF - Move 4
:D8B0-D8B1 - Trainer ID
:D8B2-D8B4 - Experience
:D8B5-D8B6 - HP EV
:D8B7-D8B8 - Attack EV
:D8B9-D8BA - Defense EV
:D8BB-D8BC - Speed EV
:D8BD-D8BE - Special EV
:D8BF - Attack/Defense IV
:D8C0 - Speed/Special IV
:D8C1 - PP Move 1
:D8C2 - PP Move 2
:D8C3 - PP Move 3
:D8C4 - PP Move 4
:D8C5 - Level
:D8C6-D8C7 - Max HP
:D8C8-D8C9 - Attack
:D8CA-D8CB - Defense
:D8CC-D8CD - Speed
:D8CE-D8CF - Special
Pokémon 2
:D8D0 - Pokémon
:D8D1-D8D2 - Current HP
:D8D3 -
:D8D4 - Status
:D8D5 - Type 1
:D8D6 - Type 2
:D8D7 -
:D8D8 - Move 1
:D8D9 - Move 2
:D8DA - Move 3
:D8DB - Move 4
:D8DC-D8DD - Trainer ID
:D8DE-D8E0 - Experience
:D8E1-D8E2 - HP EV
:D8E3-D8E4 - Attack EV
:D8E5-D8E6 - Defense EV
:D8E7-D8E8 - Speed EV
:D8E9-D8EA - Special EV
:D8EB - Attack/Defense IV
:D8EC - Speed/Special IV
:D8ED - PP Move 1
:D8EE - PP Move 2
:D8EF - PP Move 3
:D8F0 - PP Move 4
:D8F1 - Level
:D8F2-D8F3 - Max HP
:D8F4-D8F5 - Attack
:D8F6-D8F7 - Defense
:D8F8-D8F9 - Speed
:D8FA-D8FB - Special
Pokémon 3
:D8FC - Pokémon
:D8FD-D8FE - Current HP
:D8FF -
:D900 - Status
:D901 - Type 1
:D902 - Type 2
:D903 -
:D904 - Move 1
:D905 - Move 2
:D906 - Move 3
:D907 - Move 4
:D908-D909 - Trainer ID
:D90A-D90C - Experience
:D90D-D90E - HP EV
:D90F-D910 - Attack EV
:D911-D912 - Defense EV
:D913-D914 - Speed EV
:D915-D916 - Special EV
:D917 - Attack/Defense IV
:D918 - Speed/Special IV
:D919 - PP Move 1
:D91A - PP Move 2
:D91B - PP Move 3
:D91C - PP Move 4
:D91D - Level
:D91E-D91F - Max HP
:D920-D921 - Attack
:D922-D923 - Defense
:D924-D925 - Speed
:D926-D927 - Special
Pokémon 4
:D928 - Pokémon
:D929-D92A - Current HP
:D92B -
:D92C - Status
:D92D - Type 1
:D92E - Type 2
:D92F -
:D930 - Move 1
:D931 - Move 2
:D932 - Move 3
:D933 - Move 4
:D934-D935 - Trainer ID
:D936-D938 - Experience
:D939-D93A - HP EV
:D93B-D93C - Attack EV
:D93D-D93E - Defense EV
:D93F-D940 - Speed EV
:D941-D942 - Special EV
:D943 - Attack/Defense IV
:D944 - Speed/Special IV
:D945 - PP Move 1
:D946 - PP Move 2
:D947 - PP Move 3
:D948 - PP Move 4
:D949 - Level
:D94A-D94B - Max HP
:D94C-D94D - Attack