class EmeraldEn(PointerGlobal): NAME = "绿宝石(英文版)" active_pokemon_count = Field(0x020244E9) active_pokemon = ModelField(0x020244EC, PokemonStructActives) stored_pokemon = Field((0x03005D94, 4)) safari_balls = ByteField(0x0203A9FC) safari_time = WordField(0x0203A076) exp_gain = SignedField(0x020241F0, size=2) store = ArrayField(0x02005274, 8, ModelField(0, StoreItem)) area = WordField(0x020322E4) wild_pokemon = WordField(0x03007E28) furniture_purchase = ByteField(0x03005E3A) appearance = ByteField(0x02024A5C) Inner = EmeraldJp.Inner inner = ModelPtrField(0x03005D90, Inner) # rom breed_list = ArrayField(0x083203CC, 412, ModelField(0, BreedListEntry)) deoxys_breed_abilities = Field(0x00329D48) # ^ exp_list = ArrayField(0x0831F72C, 8, ArrayField(0, 0x65, Field(0))) item_list = Field(0x005839A0) skill_list = Field(0x0031C898)
class FireLeafJp(PointerGlobal): active_pokemon_count = 0 active_pokemon = ModelField(0x020241E4, PokemonStructActives) stored_pokemon = Field((0x03005050, 4)) dust = 0 decorate = 0 clock_adjustment = 0 per_day_random = 0 safari_balls = ByteField(0x0203990C) safari_time = WordField(0x0203990E) exp_gain = SignedField(0x02023CB0, size=2) class Inner(Model): _player_name = Field(0, bytes, 10) _player_id = Field(0x0A) xor_mask = Field(0x00000AF8) money = MaskedField(Field(0x00001234)) coin = MaskedField(WordField(0x00001238)) menu = Field(0x00001F89) badge = Field(0x00001F8A) spray_time = WordField(0x00001FE4) daycare_center_step_1 = ByteField(0x00003FAC) daycare_center_step_2 = ByteField(0x00004038) step_counter = ByteField(0x0000403E) _iemfield = PokemonItemField(0) item_normal = ArrayField(0x000012B4, 0x2A, _iemfield) item_keyitem = ArrayField(0x0000135C, 0x1E, _iemfield) item_pokeball = ArrayField(0x000013D4, 0x0D, _iemfield) item_machine = ArrayField(0x00001408, 0x3A, _iemfield) item_berry = ArrayField(0x000014F0, 0x2B, _iemfield) item_pokeblock = None inner = ModelPtrField(0x0300504C, Inner)
class RubySapphireEn(BaseGlobal): active_pokemon_count = Field(0x03004350) active_pokemon = ModelField(0x03004360, PokemonStructActives) stored_pokemon = Field(0x020300A4) _player_name = Field(0x02024EA4, bytes, 10) _player_id = Field(0x02024EAE) xor_mask = 0 money = MaskedField(Field(0x02025BC4)) coin = MaskedField(WordField(0x02025BC8)) dust = WordField(0x02026B04) menu = Field(0x02026A54) decorate = Field(0x02027DD4) badge = Field(0x02026A55) clock_adjustment = Field(0x02024F3C) per_day_random = Field(0x02026B0A) spray_time = WordField(0x02026AB6) safari_balls = ByteField(0x02038808) safari_time = WordField(0x0203880A) daycare_center_step_1 = ByteField(0x020287E0) daycare_center_step_2 = ByteField(0x020287E4) step_counter = ByteField(0x020287EA) exp_gain = SignedField(0x02024BEC, size=2) _iemfield = PokemonItemField(0) item_normal = ArrayField(0x02025C94, 0x14, _iemfield) item_keyitem = ArrayField(0x02025CE4, 0x14, _iemfield) item_pokeball = ArrayField(0x02025D34, 0x10, _iemfield) item_machine = ArrayField(0x02025D74, 0x40, _iemfield) item_berry = ArrayField(0x02025E74, 0x2E, _iemfield) item_pokeblock = ArrayField(0x02025F2C, 0x28, _iemfield)
class RubySapphireJp(BaseGlobal): active_pokemon_count = Field(0x03004280) active_pokemon = ModelField(0x03004290, PokemonStructActives) stored_pokemon = Field(0x0202FDC0) _player_name = Field(0x02024C04, bytes, 10) _player_id = Field(0x02024C0E) xor_mask = 0 money = MaskedField(Field(0x02025924)) coin = MaskedField(WordField(0x02025928)) dust = WordField(0x02026864) menu = Field(0x020267B4) decorate = Field(0x02027B34) badge = Field(0x020267B5) clock_adjustment = Field(0x02024C9C) per_day_random = Field(0x0202681C) spray_time = WordField(0x02026816) safari_balls = ByteField(0x02038504) safari_time = WordField(0x02038506) daycare_center_step_1 = ByteField(0x02028540) daycare_center_step_2 = ByteField(0x02028544) step_counter = ByteField(0x0202854A) exp_gain = SignedField(0x0202494C, size=2) _iemfield = PokemonItemField(0) item_normal = ArrayField(0x020259F4, 0x14, _iemfield) item_keyitem = ArrayField(0x02025A44, 0x14, _iemfield) item_pokeball = ArrayField(0x02025A94, 0x10, _iemfield) item_machine = ArrayField(0x02025AD4, 0x40, _iemfield) item_berry = ArrayField(0x02025BD4, 0x2E, _iemfield) item_pokeblock = ArrayField(0x02025C8C, 0x28, _iemfield)
class Person(Model): SIZE = 0xA0 hp_max = WordField(0x020069F8, label="HP上限") resist = WordField(0x020069FA, label="RESIST") str = ByteField(0x020069FC, label="STR") mgc = ByteField(0x020069FD, label="MGC") agl = ByteField(0x020069FE, label="AGL") vit = ByteField(0x020069FF, label="VIT") hp_heal = ByteField(0x02006A01, label="HP回复%") resistance = ArrayField(0x02006A02, 5, SignedField(0, size=1), label="抗性") adaptive = ByteField(0x02006A07, label="全抗性") skills = Field(0x02006A18, bytes, 0x48)
class FireLeafEn(PointerGlobal): active_pokemon_count = 0 active_pokemon = ModelField(0x02024284, PokemonStructActives) stored_pokemon = Field((0x03005010, 4)) dust = 0 decorate = 0 clock_adjustment = 0 per_day_random = 0 safari_balls = ByteField(0x02039994) safari_time = WordField(0x02039996) exp_gain = SignedField(0x02023D50, size=2) Inner = FireLeafJp.Inner inner = ModelPtrField(0x0300500C, Inner)
class EmeraldJp(PointerGlobal): NAME = "绿宝石(日文版)" active_pokemon_count = Field(0x0202418D) active_pokemon = ModelField(0x02024190, PokemonStructActives) stored_pokemon = Field((0x03005AF4, 4)) safari_balls = ByteField(0x02039D18) safari_time = WordField(0x02039D1A) exp_gain = SignedField(0x02023E94, size=2) class Inner(Model): _player_name = Field(0, bytes, 10) _player_id = Field(0x0A) xor_mask = Field(0x000000AC) money = MaskedField(Field(0x0000143C)) coin = MaskedField(WordField(0x00001440)) dust = WordField(0x000023D8) menu = Field(0x00002328) decorate = Field(0x000036E0) badge = Field(0x00002329) clock_adjustment = Field(0x00000098) per_day_random = Field(0x00002390) spray_time = WordField(0x0000238A) daycare_center_step_1 = ByteField(0x00004064) daycare_center_step_2 = ByteField(0x000040F0) step_counter = ByteField(0x000040F8) battle_points_current = WordField(0x00000EB8) battle_points_trainer_card = WordField(0x00000EBA) _iemfield = PokemonItemField(0) item_normal = ArrayField(0x0000150C, 0x1E, _iemfield) item_keyitem = ArrayField(0x00001584, 0x1E, _iemfield) item_pokeball = ArrayField(0x000015FC, 0x10, _iemfield) item_machine = ArrayField(0x0000163C, 0x40, _iemfield) item_berry = ArrayField(0x0000173C, 0x46, _iemfield) item_pokeblock = ArrayField(0x000017F4, 0x28, _iemfield) inner = ModelPtrField(0x03005AF0, Inner) # rom breed_list = ArrayField(0x082F0D54, 412, ModelField(0, BreedListEntry)) deoxys_breed_abilities = Field(0x002FA6D6) # ^ exp_list = ArrayField(0x082F00B4, 8, ArrayField(0, 0x65, Field(0))) item_list = Field(0x0055CEE8) skill_list = Field(0x002ED220)