Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 0x0203F3A8 8b mapnumbers_history
- 0x0203F34C 12b Something to do with Pokemon Summary
- mind control
- 0x0203AE98
- 0x0203AE8C
- 0x02021D18
- 0x0203F370
- 0x020370B8
- r1
- -----------------------------------------------------------------------
- 0x02002D40 ? Start of data that apparently controls
- the colors of the pixels inside of the
- current box (menu, msgbox, etc.).
- 0x020204B4 12b Dialog box 1
- 0x020204C0 12b Dialog box 2
- 0x020204CC 12b Dialog box 3
- 0x020204D8 12b Dialog box 4
- 0x020204E4 12b Dialog box 5
- 0x020204F0 12b Dialog box 6
- 0x020204FC 12b Dialog box 7
- 0x02020508 12b Dialog box 8
- 0x02020514 12b Dialog box 9
- 0x02020520 12b Dialog box 10
- 0x0202052C 12b Dialog box 11
- 0x02020538 12b Dialog box 12
- 0x02020544 12b Dialog box 13
- 0x02020550 12b Dialog box 14
- 0x0202055C 12b Dialog box 15
- 0x02020568 12b Dialog box 16
- 0x02020574 12b Dialog box 17
- 0x02020580 12b Dialog box 18
- 0x0202058C 12b Dialog box 19
- 0x02020598 12b Dialog box 20
- 0x020205A4 12b Dialog box 21
- 0x020205B0 12b Dialog box 22
- 0x020205BC 12b Dialog box 23
- 0x020205C8 12b Dialog box 24
- 0x020205D4 12b Dialog box 25
- 0x020205E0 12b Dialog box 26
- 0x020205EC 12b Dialog box 27
- 0x020205F8 12b Dialog box 28
- 0x02020604 12b Dialog box 29
- 0x02020610 12b Dialog box 30
- 0x0202061C 12b Dialog box 31
- 0x02020628 12b Dialog box 32
- 0x02021CD0 32b String buffer 0
- 0x02021CF0 20b String buffer 1
- 0x02021D04 20b String buffer 2
- 0x02021D18 ? String to be displayed in a message box
- 0x02022B4B 1b Flags for current battle?
- 0x02022B4C 4b Flags for current battle? Set to 0x8 by repeattrainerbattle.
- 0x02023E8A 1b Repeattrainerbattle: Unknown. Loaded if battle type is 9.
- 0x02024029 1b Repeattrainerbattle: Unknown. Loaded if battle type is 9.
- 0x0202402C 100b Enemy Pokemon 1 / Wild Pokemon Encounter
- 0x02024090 100b Enemy Pokemon 2
- 0x020240F4 100b Enemy Pokemon 3
- 0x02024158 100b Enemy Pokemon 4
- 0x020241BC 100b Enemy Pokemon 5
- 0x02024220 100b Enemy Pokemon 6
- 0x02024284 100b Party Pokemon 1
- 0x020242E8 100b Party Pokemon 2
- 0x0202434C 100b Party Pokemon 3
- 0x020243B0 100b Party Pokemon 4
- 0x02024414 100b Party Pokemon 5
- 0x02024478 100b Party Pokemon 6
- 0x02031DB4 1b Previous map bank number
- 0x02031DB5 1b Previous map number
- 0x02031DB6 1b Warp through which the player entered the current map?
- 0x02031DB7 1b Padding?
- 0x02031DB8 2b X where player entered previous map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DBA 2b Y where player entered previous map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DBC 1b Current map bank number
- 0x02031DBD 1b Current map number
- 0x02031DBE 1b Warp through which the player entered the current map?
- 0x02031DBF 1b Padding?
- 0x02031DC0 2b X where player entered current map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DC2 2b Y where player entered current map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DC3 1b Padding?
- 0x02031DC4 1b Current2 map bank number
- 0x02031DC5 1b Current2 map number
- 0x02031DC6 1b Warp through which the player entered the current2 map?
- 0x02031DC7 1b Padding?
- 0x02031DC8 2b X where player entered current2 map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DCA 2b Y where player entered current2 map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DCC 1b Current3 map bank number
- 0x02031DCD 1b Current3 map number
- 0x02031DCE 1b Warp through which the player entered the current3 map?
- 0x02031DCF 1b Padding?
- 0x02031DD0 2b X where player entered current3 map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DD2 2b Y where player entered current3 map, or 0xFFFF if unused.
- (Only seems to be used when the warp was a door.)
- 0x02031DD4 3b? Warping: Unknown. Always set to 01 01 00 when "warp" and
- "warpmuted" finish, but not when "warp3" finishes. While
- walking into a door warp, the second byte is 02.
- 0x02031DD7 1b Warping: Unknown. Seems to always be 0x03.
- 0x02031DD8 1b Warping: Unknown. If non-zero, "warp" fails to play a
- sound.
- 0x02031DDA 2b? Unknown. Changes every time you warp.
- 0x02036E38 36b OW 00 (player)
- 0x02036E5C 36b OW 01
- 0x02036E80 36b OW 02
- 0x02036EA4 36b OW 03
- 0x02036EC8 36b OW 04
- 0x02036EEC 36b OW 05
- 0x02036F10 36b OW 06
- 0x02036F34 36b OW 07
- 0x02036F58 36b OW 08
- 0x02036F7C 36b OW 09
- 0x02036FA0 36b OW 10
- 0x02036FC4 36b OW 11
- 0x02036FE8 36b OW 12
- 0x0203700C 36b OW 13
- 0x02037030 36b OW 14
- 0x02037054 36b OW 15
- 0x02037078 1b Three least-significant bits control player speed.
- 0x02037079 1b Something to do with switching into biking OW?
- 0x0203707A 1b Is a D-pad button pressed (player attempting to move)?
- 0x0203707B 1b Is the player actually moving?
- 0x0203707C 1b Unknown.
- 0x0203707D 1b Person number to be controlled by the D-pad. *Mind Control? >_< hahaha
- 0x0203707E 1b If set to 0x01, all OW movement is locked. (lockall flag?)
- 0x020370B8 2b Script variable 0x8000 // *In Emearld 0x020375F0
- 0x020370BA 2b Script variable 0x8001 // *In Emearld 0x020375F0
- 0x020370BC 2b Script variable 0x8002 // *In Emearld 0x020375F0
- 0x020370BE 2b Script variable 0x8003 // *In Emearld 0x020375F0
- 0x020370C0 2b Script variable 0x8004 // *In Emearld 0x020375F0
- 0x020370C2 2b Script variable 0x8005 // *In Emearld 0x020375F0
- 0x020370C4 2b Script variable 0x8006 // *In Emearld 0x020375F0
- 0x020370C6 2b Script variable 0x8007 // *In Emearld 0x020375F0
- 0x020370C8 2b Script variable 0x8008 // *In Emearld 0x020375F0
- 0x020370CA 2b Script variable 0x8009 // *In Emearld 0x020375F0
- 0x020370CC 2b Script variable 0x800A // *In Emearld 0x020375F0
- 0x020370CE 2b Script variable 0x800B // *In Emearld 0x020375F0
- 0x020370D0 2b Script variable 0x800D // there is no var 0x800C? *In Emearld 0x020375F0
- 0x020370D2 2b Script variable 0x800E // overwritten by "trainerbattle"? // *In Emearld 0x020375F0
- 0x020370D4 2b Script variable 0x800F
- - 0x020370D6 2b tScript variable 0x8010 // Temp does not save // *In Emearld 0x020375F0
- - 0x020370D8 2b tScript variable 0x8011 // Temp does not save // *In Emearld 0x020375F0
- - 0x020370DA 2b tScript variable 0x8012 // Temp does not save // *In Emearld 0x020375F0
- - 0x020370DC 2b tScript variable 0x8013 // Temp does not save // *In Emearld 0x020375F0
- - 0x020370DE 2b tScript variable 0x8014 // Temp does not save // *In Emearld 0x020375F0
- 0x020386AC 2b Trainerbattle: Battle type.
- 0x020386AE 2b Trainerbattle: Trainer flag.
- 0x020386B0 2b Trainerbattle: Argument 3.
- Some battle types save it into var 0x800E.
- 0x020386B2 2b Unknown.
- 0x020386B4 4b Trainerbattle: Arg4 (types 1, 2, 4, 6, 7, 8) or null (others).
- 0x020386B8 4b Trainerbattle: A4 (0, 3, 5), A5 (1, 2, 4, 6, 7, 8, 9), or null.
- 0x020386BC 4b Trainerbattle: Argument 5 (type 9) or null (others).
- 0x020386C0 4b Trainerbattle: Argument 6 (types 6, 8) or null (others).
- 0x020386C4 4b Trainerbattle: Offset of next script command byte.
- 0x020386C8 4b Trainerbattle: A6 (types 1, 2), A7 (types 6, 8), or null.
- 0x020386CC 2b Trainerbattle: Unknown.
- 0x0203AAA8 4b Unknown. Written to by the "setbyte" command.
- 0x0203ADFA 1b Unknown.
- If equal to 0x2, "warp" fails to play a sound.
- If lower than 0x04, "setworldmapflag" fails to set
- the specified flag.
- If equal to 1, trainerbattle types 5 and 7 will
- clear this byte and then some sections of RAM.
- 0x0203ADFC 4b Unknown. A pointer used by trainerbattle types 5 and 7.
- 0x0203AE04 4b? Unknown. Cleared by "trainerbattle" (types 5, 7) if the byte
- at 0x0203ADFA is 0x01.
- 0x0203AE08 4b? Unknown. Used and cleared by "trainerbattle" (types 5, 7)
- if the byte at 0x0203ADFA is 0x01.
- 0x0203AE8C 4b? Unknown. Cleared by "trainerbattle" (types 5, 7) if the byte
- at 0x0203ADFA is 0x01. Used by special 0x188 -has to do with Flash back system
- 0x0203AE98 ? Unknown. Used by special 0x188 -has to do with Flash back system
- 0x0203AF98 ? Unknown. A pointer used by trainerbattle types 5 and 7.
- 0x0203B01E 2b Unknown. Read by a reused ASM routine in script commands'
- code.
- 0x0203B0EE 1b Help: Player's opened it before? Y / N, 0x00 / 0x01.
- 0x0203B1A0 14291b Help: unknown. // to 0x0203E973
- 0x0203E973 2050b Help: unknown. Cleared only when opening help for the 1st
- time. // to 0x0203F175
- 0x0203F176 1b Help: start of GUI state data.
- 0x0203F194 1b Help: number of menu options.
- 0x0203F195 1b Help: Unknown.
- 0x0203F196 1b Help: number of menu options visible on-screen.
- 0x0203F199 1b Help: Unknown. Apparently 0x04 for top-level menu or 0x15
- for submenus.
- 0x0203F19C 1b Help: scroll position in a menu.
- 0x0203F19D 1b Help: cursor position in a menu (relative to scroll).
- 0x0203F19E 1b Help: unknown. Apparently 0x00 for top-level menu, 0x03
- for submenus, and 0x06 for static pages.
- 0x0203F1AC ?b Help: start of menu data. String pointer (not aligned),
- followed by menu item number. List is terminated with
- 0xFEFFFFFF
- 0x0203E000 4096b Unused RAM found by JPAN (is used by D/N patch)
- 0x0203F3C0 1856b RAM used in JPAN's Hacked Engine.
- 0x03000EA8 1b Unknown. Set by (defunct?) "choosecontestpkmn" command, and
- also set to 0x1 by "repeattrainerbattle".
- 0x03000EB0 74b Script engine RAM
- 0x03000F9C 1b 0x01 if the screen is fading, 0x00 otherwise.
- 0x03000FC0 4b Music for the current map (truncated to 2b when read)
- 0x03000FC4 1b Warping: Unknown.
- 0x03005000 4b Current PRNG seed
- 0x03005008 4b Pointer to a DMA-protected save block (map data)
- 0x0300500C 4b Pointer to a DMA-protected save block (personal data)
- 0x03005010 4b Pointer to a DMA-protected save block (box data)
- 0x03005074 1b Trainerbattle: number of the OW we are battling, or 0x10 if
- invalid. This offset is used by special 13A, which in turn
- is called by some of the scripts (yes, scripts) that
- trainerbattle calls.
- 0x03005E88 1b? Unknown. Cleared by "trainerbattle" (types 5, 7) if the byte
- at 0x0203ADFA is 0x01.
- 0x03007324 2b Warping: Unknown. Related to the fade timer.
- 0x03007326 2b Warping: Unknown. Related to the fade timer.
- 0x03007328 2b Warping: Timer used for fades. Duration varies with type
- of map being entered.
- -------------------------------Map of DMA-protected RAM:--------------------------------------
- Code:
- [0x03005008] + 0x0000 2b Camera X-position
- [0x03005008] + 0x0002 2b Camera Y-position
- [0x03005008] + 0x0004 1b Current map.
- [0x03005008] + 0x0005 1b Current map bank.
- -------------------------------------------------------------------------
- [0x0300500C] + 0x0000 8b Character name including terminator, padded to end with 0xFFs
- [0x0300500C] + 0x0008 1b Gender (00/01 m/f)
- [0x0300500C] + 0x0009 1b Unknown
- [0x0300500C] + 0x000A 2b Trainer ID
- [0x0300500C] + 0x000C 2b Secret ID (halfword)
- [0x0300500C] + 0x000E 2b Playtime (hours)
- [0x0300500C] + 0x0010 1b Playtime (minutes)
- [0x0300500C] + 0x0011 1b Playtime (seconds)
- [0x0300500C] + 0x0012 1b Playtime (frames)
- [0x0300500C] + 0x0013 1b Unknown
- [0x0300500C] + 0x0014 2b Options // this and above thanks to hackmew's asm tut pt. 1
- ...
- [0x0300500C] + 0x001A 1b If 0xDA, then National Dex is enabled.
- ...
- [0x0300500C] + 0x0F20 4b Unknown (encryption key for hidden vars)
- [0x0300500C] + 0x0F24 End (byte after)
- CF executeram script command [details needed] ASM (FR): 0x0806A28D is useless without knowing these dma protected offsets
- [0x03005008] + 0x361C ?? checksums validate data pointed to by pointers at[0x03005008] + 0x32E4 (target is 332 bytes) and [0x03005008] + 0x3620 (target is either 1000 or 1004 bytes), respectively
- [0x03005008] + 0x32E0 ?? checksums validate data pointed to by pointers at[0x03005008] + 0x32E4 (target is 332 bytes) and [0x03005008] + 0x3620 (target is either 1000 or 1004 bytes), respectively
- [0x03005008] + 0x32E4 332b
- [0x03005008] + 0x3620 1000b or 1004b
- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- *DarkPsychics additions
- [0x03005090]* 4b IRAM_Function_queue
- [0x030030F0]* 4b thread_list_start
- ------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------
- Knizz's IDA Database Ram Map:
- 0x02000000 dynamic_area
- 0x02000F24 saveblock1_backup_in_ewram_x3D68
- 0x02002D40 davidjcobb_0
- 0x02004C8C saveblock3_backup_in_ewram_x83D0
- 0x0201C000 decompression_buffer
- 0x02020000 trainerid
- 0x02020004 malloc_temp_ptr_0
- 0x02020008 malloc_temp_ptr_1
- 0x0202000C malloc_temp_ptr_2
- 0x02020010 dialog_main
- 0x02020034 dialogs
- 0x020204B4 rboxes
- 0x0202063C objects
- 0x02021800 obj_ids_to_display_maybe
- 0x02021841 copy_queue_cursor
- 0x02021844 copy_queue
- 0x02021B44 last_super_index
- 0x02021B46 gpu_tile_allocation_lower_boundary_obj
- 0x02021B48 gpu_tile_allocation_map_obj
- 0x02021BC8 global_sprite_displace
- 0x02021BCC affine_coefficients
- 0x02021CCC anim_rotscale_disable
- 0x02021CD0 fcode_buffer2
- 0x02021CF0 fcode_buffer3
- 0x02021D04 fcode_buffer4
- 0x02021D18 displayed_string
- 0x02022100 fcode_buffer0
- 0x02022118 poke_slots_unknown
- 0x0202286C wireless_some_task_id
- 0x02022874 b_rpc_scratchpad
- 0x02022974 vblank_cb_battle_BG0HOFS
- 0x02022976 vblank_cb_battle_BG0VOFS
- 0x02022978 vblank_cb_battle_BG1HOFS
- 0x0202297A vblank_cb_battle_BG1VOFS
- 0x0202297C vblank_cb_battle_BG2HOFS
- 0x0202297E vblank_cb_battle_BG2VOFS
- 0x02022980 vblank_cb_battle_BG3HOFS
- 0x02022982 vblank_cb_battle_BG3VOFS
- 0x02022984 vblank_cb_battle_WIN0H
- 0x02022986 vblank_cb_battle_WIN0V
- 0x02022988 vblank_cb_battle_WIN1H
- 0x0202298A vblank_cb_battle_WIN1V
- 0x0202298C string_buffer_maybe
- 0x02022AB8 battle_outcome_A
- 0x02022AC8 battle_outcome_B
- 0x02022AD8 battle_outcome_C
- 0x02022B4B current_battle_flags1
- 0x02022B4C battle_type_flags
- 0x02022B50 idx_for_battle_screen_elements_by_env
- 0x02022BB8 b_tilemap_C
- 0x02022BBC b_tilemap_D
- 0x02022BC4 b_buffer_A
- 0x020233C4 b_buffer_B
- 0x02023BC4 b_active_side
- 0x02023BC8 b_buffers_awaiting_execution_bitfield
- 0x02023BCC b_num_active_sides
- 0x02023BCE b_pokemon_team_id_by_side
- 0x02023BD6 b_side_status
- 0x02023BDA bs_mode_pbs
- 0x02023BDE b_attackers_in_order
- 0x02023BE2 bs_mode_pbs_index
- 0x02023BE3 bs_mode
- 0x02023BE4 b_data
- 0x02023D44 battle_side_objid_P_and_priv5_for_dp11b3
- 0x02023D48 b_moveset_index
- 0x02023D49 b_moveset_index_
- 0x02023D4A b_move_to_execute_A
- 0x02023D4C b_move_to_execute_B
- 0x02023D4E b_move_to_execute_C
- 0x02023D50 b_move_damage
- 0x02023D54 b_old_hp
- 0x02023D58 b_damages_pbs
- 0x02023D68 b_2023D68_held_item
- 0x02023D6A b_last_copied_ability
- 0x02023D6B b_attacker
- 0x02023D6C b_defender
- 0x02023D6D b_attacker_partner
- 0x02023D6E b_defender_partner
- 0x02023D6F b_2023D6F_side
- 0x02023D70 b_bits_pbs_2023D70
- 0x02023D71 b_critical_multiplier
- 0x02023D72 b_move_loop_counter
- 0x02023D74 b_movescr_cursor
- 0x02023D7C battle_top_menu_chosen_item
- 0x02023D90 move_to_execute_B_pbs_2
- 0x02023D98 move_to_execute_B_pbs
- 0x02023DA0 word2023DA0_pbs
- 0x02023DB0 move_to_execute_A_pbs
- 0x02023DC4 moveid_2023DC4_pbs
- 0x02023DCC b_attack_effectivity
- 0x02023DD0 b_features_bitfield
- 0x02023DD4 pbs_byte_2023DD4
- 0x02023DD8 b_defender_pbs
- 0x02023DDE b_flags4_per_side_status
- 0x02023DFC b_status3_bits_pbs
- 0x02023E0C b_disable_data_pbs
- 0x02023E7C atk39_counter
- 0x02023E7E money_to_give
- 0x02023E82 b_preparation_phase
- 0x02023E83 b_preparation_sub_phase
- 0x02023E85 effect_to_apply
- 0x02023E86 bc_menu_quit_phase
- 0x02023E88 battle_message_to_show_
- 0x02023E89 b_buffers_awaiting_execution_bitfield__copied_after_displaying_x_used_y_message
- 0x02023E8A bc_bs_followup_bc_func_index
- 0x02023E8C protect_structs
- 0x02023ECC dp16_array
- 0x02023F1C weather
- 0x02023F50 b_move_power_override
- 0x02023F54 sav1_copied_berries_pbs
- 0x02023FD2 b_dmg_multiplier
- 0x02023FDB b_side_unknown
- 0x02023FDE stat_modification_spec
- 0x02023FE0 b_end_stage
- 0x02023FE8 b_dp08_ptr
- 0x02023FEC b_tilemap_A
- 0x02023FF0 b_tilemap_B
- 0x02023FF4 b_resources
- 0x02023FFC move_index_chosen_per_side
- 0x02024000 taskids_02024000
- 0x02024005 bx_busy
- 0x02024008 pokemon_personality_overrides_per_battle_side_maybe
- 0x02024018 dp11_
- 0x0202401C ptr_plus_0x14_uns_table_pokemon_copy
- 0x02024020 b_cur_move_power
- 0x02024029 poke_quantity
- 0x0202402C party_opponent
- 0x020240F4 poke_slot_opponent_3
- 0x02024158 poke_slot_opponent_4
- 0x020241BC poke_slot_opponent_5
- 0x02024220 poke_slot_opponent_6
- 0x02024284 party_player
- 0x020242E8 poke_slot_2
- 0x0202434C poke_slot_3
- 0x020243B0 poke_slot_4
- 0x02024414 poke_slot_5
- 0x02024478 poke_slot_6
- 0x020244DC objt_pokemon
- 0x0202455C parent_a_moveset
- 0x02024564 child_moveset
- 0x0202456C eggmove_buffer
- 0x02024580 parent_b_moveset
- 0x02024588 stdsav2
- 0x0202552C stdsav1
- 0x02029314 stdsav3
- 0x02031C8C sav2__bag_item_quantity_xor_value
- 0x02031C90 p_xE00
- 0x02031CCC shedinja_maybe
- 0x02031DA8 p_x10F0
- 0x02031DB0 stronger_warning_for_overwriting_savegame
- 0x02031DB4 warp0
- 0x02031DBC warp1
- 0x02031DC4 warp2
- 0x02031DCC warp3
- 0x02031DD4 player_avatar_init_params
- 0x02031DD8 warp_sound_disable
- 0x02031DDA wild_pokemon_index
- 0x02031DDC wild_pokemon_from_water_category
- 0x02031DE0 map_chg_seq_do_enter_movement
- 0x02031DEC linknpcs
- 0x02031DFC mapdata_in_mem
- 0x02036DFC current_mapheader
- 0x02036E18 overworld_translate_info
- 0x02036E24 adjacent_maps_presence_bitfield
- 0x02036E28 color_filter
- 0x02036E30 ptr_npc_player
- 0x02036E38 npc_states
- 0x02037078 walkrun_state
- 0x02037098 npc_palette_mode
- 0x0203709A npc_primary_paltag_of_some_npc
- 0x0203709C box_related__zero_when_box_closed
- 0x020370A0 script_env_2_keypad_sync_lock_countdown
- 0x020370A4 script_pointer_backup_for_xCF
- 0x020370A8 script_rebase
- 0x020370AC script_player_lock_passed_frames
- 0x020370AE script_pause_remaining_frames
- 0x020370B0 script_last_npc_localid
- 0x020370B2 script_last_waitmove_mapbank
- 0x020370B4 script_last_waitmove_mapnr
- 0x020370B6 script_last_x9C_cmd
- 0x020370B8 var_8000
- 0x020370BA var_8001
- 0x020370BC var_8002
- 0x020370BE var_8003
- 0x020370C0 var_8004
- 0x020370C2 var_8005
- 0x020370C4 var_8006
- 0x020370C6 var_8007
- 0x020370C8 var_8008
- 0x020370CA var_8009
- 0x020370CC var_800A
- 0x020370CE var_800B
- 0x020370D0 var_800D
- 0x020370D2 var_800F
- 0x020370D4 var_800C
- 0x020370D6 var_8010
- 0x020370D8 var_8011
- 0x020370DA text_color_current
- 0x020370DC text_color_backup
- 0x020370DE var_8014
- 0x020370F0 start_menu_active_context
- 0x020370F4 start_menu_cursor
- 0x020370F5 start_menu_item_indices_cursor
- 0x020370F6 start_menu_item_indices
- 0x020370FF start_menu_state_tracker
- 0x020371F8 palette_bg_unfaded
- 0x020373F8 palette_obj_unfaded
- 0x020375F8 palette_bg_faded
- 0x020377F8 palette_obj_faded
- 0x02037AB8 pal_fade_control
- 0x02037AC8 copy_of_fade_ctrl_pal_bitfield
- 0x02037ACC palette_decompress_buffer
- 0x02037ED4 move_anim_cursor
- 0x02037ED8 ma_return_addr
- 0x02037EDC move_anim_current_executor
- 0x02037EE0 move_anim_countdown
- 0x02037EE2 move_anim_active_task_count
- 0x02037EE3 move_anim_sub_task_count
- 0x02037EE4 ptr_disable_data
- 0x02037F02 ma02_t0_02037F02
- 0x02037F04 dp09_pos2x__ma02_t2
- 0x02037F06 dp09_pos2y__ma02_t3
- 0x02037F08 ma02_t4_02037F08
- 0x02037F0A ma02_t5_02037F0A
- 0x02037F10 fury_cutter_counter_copy
- 0x02037F15 some_coro_id
- 0x02037F17 is_battle_screen_elements_loader_running
- 0x02037F18 le_unused_byte
- 0x02037F1A b_anim_attacker
- 0x02037F1B b_anim_defender
- 0x02037F1C b_species_pbs
- 0x02037F30 c3entry_idx_arg0_incremented_by_08078BB4
- 0x02037F34 weather_data
- 0x020386AC trainerbattle_battle_type
- 0x020386AE trainerbattle_flag_id
- 0x020386B0 trainerbattle_arg2
- 0x020386B4 trainerbattle_message_intro
- 0x020386B8 trainerbattle_message_defeat
- 0x020386BC trainerbattle_message_2
- 0x020386C0 trainerbattle_message_need_2_poke
- 0x020386C4 trainerbattle_next_scr_cmd
- 0x020386C8 trainerbattle_message_4
- 0x020386CC trainerbattle_unknown
- 0x020386D4 some_tile_byte_maybe
- 0x020386D6 encounter_probability_bonus
- 0x020386D9 encounter_probability_modification_for_ability
- 0x020386DA party_player_first_held_item
- 0x020386E0 oe_state
- 0x02038700 dp12_2038700
- 0x02039600 dp12_2039600
- 0x02039618 dp12_some_coro_id
- 0x02039620 menu_related
- 0x020397A4 trainer_card_data
- 0x020397B0 dp17
- 0x02039820 pc_area
- 0x02039821 pc_menu_entry
- 0x02039874 cut_ruin_valley
- 0x02039878 objid_2039878
- 0x02039879 objids_2039879
- 0x02039884 ptr_to_pal_maybe
- 0x0203988C bag_pocket_0
- 0x02039890 bag_pocket_0_counter
- 0x02039894 bag_pocket_1
- 0x02039898 bag_pocket_1_counter
- 0x0203989C bag_pocket_2
- 0x020398A0 bag_pocket_2_counter
- 0x020398A4 bag_pocket_3
- 0x020398A8 bag_pocket_3_counter
- 0x020398AC bag_pocket_4
- 0x020398B0 bag_pocket_4_counter
- 0x02039938 pokemart_item_list
- 0x02039944 pokemart_item_count
- 0x02039964 pokemart_itemdata
- 0x02039968 pokemart_item_line_strings
- 0x0203998C name_chooser_data_maybe
- 0x02039991 switched_ball
- 0x02039994 safari_ball_count
- 0x02039996 safari_steps
- 0x02039998 run_eventually
- 0x020399B8 selected_lcd_bg_control_reg
- 0x020399BC s3BA4
- 0x020399E4 pointer_to_worldmap_data
- 0x020399FC map_four_bytes
- 0x02039A00 tai_cursor
- 0x02039A04 coords16_in_front_of_player
- 0x02039A08 height_in_front_of_player
- 0x02039A1A box_most_recently_used_maybe
- 0x0203AB22 spark_scaling_x
- 0x0203AB24 spark_scaling_y
- 0x0203AB44 is_first_pokemon_league_victory
- 0x0203AB4C save_game_method_type
- 0x0203AB58 bgmaps_that_need_syncing
- 0x0203ACE8 msgedit_p
- 0x0203ACEC msgedit_q
- 0x0203ACF0 pokedex_state_maybe
- 0x0203AD00 bag_acit_index
- 0x0203AD02 bag_selected_pocket
- 0x0203AD06 bag_selected_row
- 0x0203AD10 bagview_203AD10
- 0x0203AD14 bag_bg1_tilemap
- 0x0203AD18 bagview_entries
- 0x0203AD1C bagview_strings
- 0x0203AD30 var_800E
- 0x0203AD40 template_0203AD40
- 0x0203AD58 dp13_203AD58
- 0x0203ADC4 pcitem_list
- 0x0203ADE4 choice_x *4b RAM_menu_addr
- 0x0203ADE5 choice_y
- 0x0203ADE6 choice_cur
- 0x0203ADE7 choice_min
- 0x0203ADE8 choice_max
- 0x0203ADE9 choice_rboxid
- 0x0203ADEA choice_fboxid
- 0x0203ADEC choice_y_stride
- 0x0203ADF3 rboxid_of_yesno
- 0x0203ADF8 flashback_cursor
- 0x0203ADF9 prev_quest_display_number
- 0x0203ADFA prev_quest_mode
- 0x0203AE00 pq_rbox
- 0x0203AE04 prev_quest_postbuffer_cursor_backup
- 0x0203AE08 prev_quest_postbuffer_cursor
- 0x0203AE0C prev_quest_postbuffer
- 0x0203AE8C j5
- 0x0203AE90 ptr_to_palette_backup
- 0x0203AF98 pq_npc_cursor
- 0x0203B01A pq_npc__script_env_2_is_enabled
- 0x0203B024 prev_quest_prebuffer_length
- 0x0203B048 quest_logger_filter
- 0x0203B049 prev_quest_log_next_town_arrival
- 0x0203B04C str_buffer
- 0x0203B084 UnionObjWork
- 0x0203B09C ptr_brmo2
- 0x0203B0A0 brm
- 0x0203B0C4 hm_phase_2
- 0x0203B0DC pokemon_order_insert_point_maybe
- 0x0203B0EC help_system_context
- 0x0203B0EE help_system_is_not_first_time_
- 0x0203B11C ghu_loc
- 0x0203B120 tilemap_bg2_ptr_0203B120
- 0x0203B140 pkmn_status_data
- 0x0203B144 p_x28
- 0x0203B174 vram_partial_backup_buffer
- 0x0203F18D help_system_mode
- 0x0203F3A8 mapnumbers_history
- 0x0203F3AE roaming_mapbank
- 0x0203F3AF roaming_mapnr
- 0x0203F3C0 mevent_srv_ish_ptr
- 0x0203F3C4 mevent_srv_ptr
- 0x0203F3D4 p_x83B0_link_203F3D4
- 0x0203F458 trainer_tower_data
- 0x0203F480 flags
- 0x0203F4EC switches
- 0x0203F754 _impure_ptr
- 0x0203F76C __malloc_av_
- 0x0203FB74 __malloc_trim_threshold
- 0x0203FB78 __malloc_top_pad
- 0x0203FB7C __malloc_sbrk_base
- 0x0203FB80 __malloc_max_sbrked_mem
- 0x0203FB88 __malloc_current_mallinfo
- 0x03000000 lcd_io_buffer
- 0x03000060 lcd_io_copy_queue
- 0x030000C0 lcd_io_copy_queue_edit_lock
- 0x030000C1 IE_dirty
- 0x030000C2 IE_target
- 0x030000C8 dma3_transfer_queue
- 0x030008C8 dma3_transfer_queue_edit_lock
- 0x030008C9 dma3_transfer_exec_cursor
- 0x030008D0 gpu_bg_config
- 0x030008E0 bg_visibility_and_mode
- 0x030008E8 bg_config2
- 0x03000928 dmas_busy_with_gpu_copy_bitfield
- 0x03000938 gpu_tile_allocation_map_bg
- 0x03000A38 dynamic_mem_start
- 0x03000A3C dynamic_mem_size
- 0x03000A40 font_lookup_table_3000A40
- 0x03000AE2 color_lut_last0
- 0x03000AE4 color_lut_last1
- 0x03000AE6 color_lut_last2
- 0x03000AE8 gpu_tile_obj_tags
- 0x03000B68 gpu_tile_obj_tag_range
- 0x03000C68 rotscale_states
- 0x03000DE8 gpu_pal_tags
- 0x03000E7C time_something
- 0x03000E84 c1_link_related_func
- 0x03000E90 tilemap_camera_move_something
- 0x03000E98 nu_2_coords
- 0x03000EA0 nu_callback
- 0x03000EA8 script_env_2_context
- 0x03000EB0 script_env_1
- 0x03000F28 script_env_2
- 0x03000FA0 keypad_override_through_script_env_2_enabled
- 0x03000FA1 message_signpost
- 0x03000FA4 yesno_cb_ptr
- 0x03000FAE bs1_time
- 0x03000FB0 bs1_time_wraparound
- 0x03000FB2 bs2_time
- 0x03000FB4 bs2_time_wraparound
- 0x03000FB8 bs1_func
- 0x03000FBC bs2_func
- 0x03000FC0 current_map_music
- 0x03000FC2 map_music_03000FC2
- 0x03000FC6 ducking_duration
- 0x03000FC8 oe_active_list
- 0x03001190 dp07q
- 0x030027F8 flash_timeout_timer_id
- 0x030027FA flash_timeout_remaining_ticks
- 0x030027FC flash_timeout_TMCNT_L
- 0x03002830 heap_end.63
- 0x03002834 monitor_stdin
- 0x03002838 monitor_stdout
- 0x0300283C monitor_stderr
- 0x03002840 openfiles
- 0x030028E0 SoundMainBuf
- 0x030030E0 keypad_initial_countdown
- 0x030030F0 super
- 0x0300352C keypad_followup_countdown
- 0x03003540 irq_handler_list_in_mem
- 0x03003578 VCOUNT_after_m4aSoundMain
- 0x03003D84 VCOUNT_before_m4aSoundMain
- 0x03003D8C gpu_copy_to_tileset_implicitly_reserves_tiles
- 0x03003D90 fboxes_ptr
- 0x03003DA0 font_render_target_0
- 0x03003DC0 font_render_target_1
- 0x03003DE0 font_render_target_2
- 0x03003E00 font_render_target_3
- 0x03003E40 rbox_full_tilemaps
- 0x03003E50 textflags
- 0x03003E58 gpu_pal_tag_search_lower_boundary
- 0x03003E60 linknpc_command_buffer
- 0x03003EBC link_3003EBC
- 0x03003F3C link_mode_is_wireless
- 0x03003FB0 link_data_structure
- 0x03004F80 b_callback1_backup
- 0x03004F84 bc
- 0x03004F98 b_pokemon_name_1
- 0x03004FA3 battle_turn_counter
- 0x03004FA4 b_pokemon_name_2
- 0x03004FE0 b_x
- 0x03004FF0 battle_side_objid_Q_and_priv5_for_dp11b2
- 0x03004FF4 selected_battle_side
- 0x03004FF8 b_num_sides_reported
- 0x03005000 rand_seed
- 0x03005004 flash_memory_present
- 0x03005008 saveblock1_mapdata
- 0x0300500C saveblock2_trainerdata
- 0x03005010 saveblock3_boxdata
- 0x03005014 overworld_bg2_tilemap
- 0x03005018 overworld_bg1_tilemap
- 0x0300501C overworld_bg3_tilemap
- 0x03005020 map_post_load_hook
- 0x03005024 hm_phase_1
- 0x03005028 c1_link_related_func_retvl
- 0x0300502C linknpc_id_self_maybe
- 0x03005030 linknpc_count
- 0x03005040 mapdata_header_in_mem
- 0x03005050 cameradata
- 0x03005068 nu_y
- 0x0300506C nu_x
- 0x03005070 script_env_locking_player
- 0x03005074 scripting_npc
- 0x03005080 text_sounds_disabled
- 0x03005090 tasks
- 0x0300537C some_future_c2
- 0x0300538C flash_block_dirty_bitfield_maybe
- 0x03005430 fullscreen_save_activate_flag
- 0x03005450 Rfu
- 0x0300549C rfuSendDataBuffer_1
- 0x03005D8F rfuSendDataBuffer_2
- 0x03005E70 pokemart_data_copy
- 0x03005E88 pq_npc_recording
- 0x03005E8C pq_npc_end
- 0x03005E94 pq_npc_buffer
- 0x03005EA0 help_system_context_backup
- 0x03005ECC help_system_enabled
- 0x03005EE0 pokedude8_upper_pbs
- 0x03005F50 m4a_sound
- 0x03006FF0 ExtMPlyJmpTbl
- 0x03007080 m4a_cgbchn
- 0x03007340 mplay_te_03007340
- 0x03007380 mplay_te_03007380
- 0x030073C0 m4a_memacc_area
- 0x03007410 flash_timeout_reached_zero
- 0x03007414 flash_read_byte_funcptr
- 0x03007418 flash_c_verify
- 0x0300741C flash_c_write_block
- 0x03007420 flash_c_ptr_metrics
- 0x03007424 flash_c_fp0
- 0x0300742C flash_c_erase_all
- 0x03007430 flash_c_erase_block
- 0x03007434 flash_c_f14
- 0x03007438 STWI_status
- 0x03007440 rfuSlotStatus_UNI
- 0x03007450 rfuSlotStatus_NI
- 0x03007460 rfuLinkStatus
- 0x03007464 rfuStatic
- 0x03007468 rfuFixed
- 0x0300747C errno
- 0x03007DE0 player_y
- 0x03007DE2 player_x
- 0x03007E40 main_stack_top
- 0x03007F00 stack_user
- 0x04000000 DISPCNT
- 0x04000004 DISPSTAT
- 0x04000006 VCOUNT
- 0x04000008 BGxCNT
- 0x04000010 BG0OFF
- 0x04000018 BG2OFF
- 0x0400001C BG3OFF
- 0x04000040 WIN
- 0x04000054 BLDY
- 0x040000B0 DMA0
- 0x040000BC DMA1
- 0x040000C4 DMA1CNT
- 0x040000D4 DMA3
- 0x04000100 TM0CNT_L
- 0x04000102 TM0CNT_H
- 0x04000104 inactive_rand_seed
- 0x04000120 SIODATA32_L
- 0x04000122 SIODATA32_H
- 0x04000128 SIOCNT
- 0x0400012A SIOMLT_SEND
- 0x04000130 KEYINPUT
- 0x04000134 RCNT
- 0x04000200 IE
- 0x04000202 IF
- 0x04000204 WAITCNT
- 0x04000208 IME
- DMA - Dynamic Memory Allocation
- Very important are the DMA save pointers at:
- Code:
- 0x03005008 saveblock1_mapdata
- 0x0300500C saveblock2_trainerdata
- 0x03005010 saveblock3_boxdata
- Here's the DMA structures. The memory positions are relative to the memory addresses that are saved at those DMA save pointer locations above. The DMA pointers change while the game is running, often when leaving buildings or exiting certain menus.
- Sav1
- Code:
- 0x00000000 sav1 saveblock1_mapdata
- 0x00000000 camera_position:coords16 ?
- 0x00000004 location: warpdata ?
- 0x0000000C saved_warp: warpdata ?
- 0x00000014 field_14: warpdata ?
- 0x0000001C field_1C: .short ?
- 0x0000001E gap_1E: .byte 6 dup(?)
- 0x00000024 save_warp_2: warpdata ?
- 0x0000002C some_music_id: .short ?
- 0x0000002E weather_probably:.byte ?
- 0x0000002F gap_2F: .byte ?
- 0x00000030 flash_used_on_map:.byte ? @ 0 or 4
- 0x00000031 gap_31: .byte ?
- 0x00000032 mapdata_idx_plus_1:.short ? @ will be assigned to var 40AE by 08110E20
- 0x00000034 num_party_pokemon:.byte ?
- 0x000000A8 field_A8: .long ? @ XREF: new_game+48/o
- 0x000000AC gamecode: .byte ? @ XREF: new_game+4C/o
- 0x000000AD field_AD: .byte ? @ XREF: new_game+54/o
- 0x000000B0 field_B0: .byte 1012 dup(?) @ XREF: sav2_B0_clear+C/o
- 0x00000218 money_maybe: .long ?
- 0x0000021C pcitems: .byte 124 dup(?)
- 0x00000298 bag_probably: .long 42 dup(?)
- 0x00000340 ghu_2_x3B8: .byte 120 dup(?)
- 0x000003B8 field_430: .long 13 dup(?)
- 0x000003EC ghu_1_x464: .byte 232 dup(?)
- 0x000004D4 field_54C: .byte 172 dup(?)
- 0x00000580 pokemon_flags_1:.byte 52 dup(?)
- 0x000005B4 field_62C: .byte 12 dup(?)
- 0x000005C0 field_638: .short ?
- 0x000005C2 field_63A: .long ?
- 0x000005C6 field_63E: .byte 98 dup(?)
- 0x00000628 npc_states: npc_state 16 dup(?)
- 0x00000868 rom_npcs: rom_npc 64 dup(?)
- 0x00000E68 field_EE0: .byte 64 dup(?)
- 0x00000EA8 field_F20: .long ?
- 0x00000EAC field_F24: .byte 220 dup(?)
- 0x00000F88 var_4000: .short 256 dup(?)
- 0x00001188 secure_data: .byte 256 dup(?)
- 0x00001288 questlog: prev_quest_story 4 dup(?)
- 0x00002C28 messages: message_t 4 dup(?)
- 0x00002C58 more_messages_maybe:npc_state 16 dup(?)
- 0x00002E98 field_2F10: .byte 112 dup(?)
- 0x00002F08 daycare_data: .long ?
- 0x00002F0C field_2F84: .byte 332 dup(?)
- 0x00003058 roaming_pokemon_inf:roaming_pokemon_info ?
- 0x00003074 field_30EC: .byte 28 dup(?)
- 0x00003090 engima_berry_data:.short 9 dup(?)
- 0x000030A2 field_311A: .byte 458 dup(?)
- 0x0000326C mevent_related_1:.byte 332 dup(?)
- 0x000033B8 field_3430: .long ?
- 0x000033BC mevent_related_2:.byte 332 dup(?)
- 0x00003508 field_3580: .byte 156 dup(?)
- 0x000035A4 ereader_script: .long ?
- 0x000035A8 field_3620: .byte 4 dup(?)
- 0x000035AC field_3624: .byte 1012 dup(?)
- 0x000039A0 pokemon_flags_2:.byte 52 dup(?)
- 0x000039D4 rivals_name: .byte 8 dup(?)
- 0x000039DC field_3A54: .byte ?
- 0x000039DD gap_3A55: .byte 127 dup(?)
- 0x00003A5C words: twenty_one_byte_string 10 dup(?)
- 0x00003B2E gap_3BA6: .byte 398 dup(?)
- 0x00003CBC field_3D34: .byte 14 dup(?)
- 0x00003CCA field_3D42: .byte 12 dup(?)
- 0x00003CD6 field_3D4E: .byte 153 dup(?)
- 0x00003D6F last_field: .byte ?
- 0x00003D70 sav1 ends
- *The obfuscation_xor_key key below is important.
- You can xor against the money data above to get the amount of money the player has.
- I found the money value at 0x0290, not 0x0218 but maybe it depends on the exact rom.
- Sav2
- Code:
- 0x00000000 sav2 saveblock2_trainerdata
- 0x00000000 name: .byte 8 dup(?)
- 0x00000008 gender: .byte ?
- 0x00000009 savebits: .byte ? @ 0x01: skip "previously on your quest" - set by special 0x110 (hall of fame register)
- 0x00000009 @ 0x02: saving in a pokemon centre
- 0x00000009 @ 0x04: used by 0810B79C, which checks an empty map list
- 0x00000009 @ 0x08: used by 0810B7CC, which also checks an empty map list
- 0x0000000A trainerid: .short ?
- 0x0000000C secretid: .short ?
- 0x0000000E playtime_hours: .short ?
- 0x00000010 playtime_minutes:.byte ?
- 0x00000011 playtime_seconds:.byte ?
- 0x00000012 playtime_frames:.byte ?
- 0x00000013 options_button_style:.byte ? @ HELP / LR / L=A
- 0x00000014 options_text_speed_maybe:.byte ?
- 0x0000001C first_seen_unown_pid:.long ?
- 0x00000020 first_seen_spinda_pid:.long ?
- 0x00000028 pokemon_flags_caught:.byte 52 dup(?)
- 0x0000005C pokemon_flags_seen:.byte 52 dup(?)
- 0x000004A4 fourCharacters: .byte 4 dup(?)
- 0x000004A8 field_4A8: .byte 1008 dup(?)
- 0x00000898 mapdata: .byte 600 dup(?)
- 0x00000AF0 field_AF0: .short ?
- 0x00000AF2 field_AF2: .short ?
- 0x00000AF4 field_AF4: .short ?
- 0x00000AF6 field_AF6: .short ?
- 0x00000AF8 field_AF8: .byte 1064 dup(?)
- 0x00000F20 obfuscation_xor_key:.long ?
- 0x00000F24 field_F24: .byte 127 dup(?)
- 0x00000FA3 last_byte_in_sav2:.byte ?
- Sav3 contains some box data that I don't think is that interesting so I won't post it. There's a lot more data in the database.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement