トップページ

どうも、オーキドせんせい撃破RTA研究者です。

だいぶ記事が増えてきたので、まとめページを作ってみました。

改造もチートも一切無し。実機(GB、3DS)で可能なバグ技となっています。

気になる記事へのジャンプにご活用ください。

 

↓最近の記事はこちらから↓

記事一覧 - オーキドせんせい研究者のページ

 

バイナリエディタ起動チャートはこちら↓

【クリスタル版】通信不要・お手軽30分!バイナリエディタ作成チャート解説【バグ技 任意コード実行】 - YouTube

【初代ポケモン】お手軽20分。バイナリエディタ作成チャート解説【バグ技 任意コード実行】 - YouTube

 

クリスタル版(JP)のセーブデータ領域メモリ構造

どうも、オーキドせんせい研究者です。

 

クリスタル版(JP)のメモリ構造データがググってもなかなか出てこない。

不便だしもう自分で作ってしまおうということで、

海外版ROM研究ニキの研究成果を参考に、日本語版ROMを研究して

『クリスタル版(JP)のメモリ構造データ表』を作ってみました。

 

※海外版ROMはニックネームの文字数が違ったり、日本語版にはない夏時間(Daylight saving time)設定機能が用意されてたりでメモリ構造に違いがあります。また、金銀版もクリスタル版とは全くメモリ構造が異なります。

海外版にだけ存在するサマータイム機能

 

対象はセーブデータ領域(WRAM01:D48C~DF64)。

「よく使うアドレス」だけ抽出した日本語版もそのうち作ろうと思いますが、

今回は基礎データとして英語のまま全アドレス分を載せてます

データの中身が英語のままになっていてわかりづらいと思いますが、気合で読んでください。

たとえば主人公の名前を変更したい場合、

D48E~D493が「wPlayerName=プレイヤー名」なのでここを変えればいい、

みたいな感じですね。

 

よく使う領域

D841~D949:所持金・所持アイテム関連

DC9D-DE0C:手持ちポケモン関連

 

※なお、データに名前はついているがゲーム内で使われていないもの(D4E9~にあるw○○Rangeなど)がちょこちょこ存在するのでご注意ください。

 

はてなブログの表は正直見づらいので、エクセルなどにコピペして使うの推奨。)

アドレス データ
D48C-D48D wPlayerID
D48E-D493 wPlayerName
D494-D499 wMomsName
D49A-D49F wRivalName
D4A0-D4A5 wRedsName
D4A6-D4AB wGreensName
D4AC wSavedAtLeastOnce
D4AD wSpawnAfterChampion
D4AE wStartDay
D4AF wStartHour
D4B0 wStartMinute
D4B1 wStartSecond
D4B2-D4B5 wRTC
D4B6 wGameTimeCap
D4B7-D4B8 wGameTimeHours
D4B9 wGameTimeMinutes
D4BA wGameTimeSeconds
D4BB-D4BD wGameTimeFrames
D4BE-D4BF wCurDay
D4C0 wObjectFollow_Leader
D4C1 wObjectFollow_Follower
D4C2 wCenteredObject
D4C3 wFollowerMovementQueueLength
D4C4-D4C8 wFollowMovementQueue
D4C9 wPlayerSprite
D4CA wPlayerMapObjectIndex
D4CB wPlayerSpriteTile
D4CC wPlayerMovementType
D4CD-D4CE wPlayerFlags
D4CF wPlayerPalette
D4D0 wPlayerWalking
D4D1 wPlayerDirection
D4D2 wPlayerStepType
D4D3 wPlayerStepDuration
D4D4 wPlayerAction
D4D5 wPlayerStepFrame
D4D6 wPlayerFacing
D4D7 wPlayerTileCollision
D4D8 wPlayerLastTile
D4D9 wPlayerMapX
D4DA wPlayerMapY
D4DB wPlayerLastMapX
D4DC wPlayerLastMapY
D4DD wPlayerInitX
D4DE wPlayerInitY
D4DF wPlayerRadius
D4E0 wPlayerSpriteX
D4E1 wPlayerSpriteY
D4E2 wPlayerSpriteXOffset
D4E3 wPlayerSpriteYOffset
D4E4 wPlayerMovementIndex
D4E5 wPlayerStepIndex
D4E6 wPlayerField1d
D4E7 wPlayerField1e
D4E8 wPlayerJumpHeight
D4E9-D4F0 wPlayerRange
D4F1 wObject1Sprite
D4F2 wObject1MapObjectIndex
D4F3 wObject1SpriteTile
D4F4 wObject1MovementType
D4F5-D4F6 wObject1Flags
D4F7 wObject1Palette
D4F8 wObject1Walking
D4F9 wObject1Direction
D4FA wObject1StepType
D4FB wObject1StepDuration
D4FC wObject1Action
D4FD wObject1StepFrame
D4FE wObject1Facing
D4FF wObject1TileCollision
D500 wObject1LastTile
D501 wObject1MapX
D502 wObject1MapY
D503 wObject1LastMapX
D504 wObject1LastMapY
D505 wObject1InitX
D506 wObject1InitY
D507 wObject1Radius
D508 wObject1SpriteX
D509 wObject1SpriteY
D50A wObject1SpriteXOffset
D50B wObject1SpriteYOffset
D50C wObject1MovementIndex
D50D wObject1StepIndex
D50E wObject1Field1d
D50F wObject1Field1e
D510 wObject1JumpHeight
D511-D518 wObject1Range
D519 wObject2Sprite
D51A wObject2MapObjectIndex
D51B wObject2SpriteTile
D51C wObject2MovementType
D51D-D51E wObject2Flags
D51F wObject2Palette
D520 wObject2Walking
D521 wObject2Direction
D522 wObject2StepType
D523 wObject2StepDuration
D524 wObject2Action
D525 wObject2StepFrame
D526 wObject2Facing
D527 wObject2TileCollision
D528 wObject2LastTile
D529 wObject2MapX
D52A wObject2MapY
D52B wObject2LastMapX
D52C wObject2LastMapY
D52D wObject2InitX
D52E wObject2InitY
D52F wObject2Radius
D530 wObject2SpriteX
D531 wObject2SpriteY
D532 wObject2SpriteXOffset
D533 wObject2SpriteYOffset
D534 wObject2MovementIndex
D535 wObject2StepIndex
D536 wObject2Field1d
D537 wObject2Field1e
D538 wObject2JumpHeight
D539-D540 wObject2Range
D541 wObject3Sprite
D542 wObject3MapObjectIndex
D543 wObject3SpriteTile
D544 wObject3MovementType
D545-D546 wObject3Flags
D547 wObject3Palette
D548 wObject3Walking
D549 wObject3Direction
D54A wObject3StepType
D54B wObject3StepDuration
D54C wObject3Action
D54D wObject3StepFrame
D54E wObject3Facing
D54F wObject3TileCollision
D550 wObject3LastTile
D551 wObject3MapX
D552 wObject3MapY
D553 wObject3LastMapX
D554 wObject3LastMapY
D555 wObject3InitX
D556 wObject3InitY
D557 wObject3Radius
D558 wObject3SpriteX
D559 wObject3SpriteY
D55A wObject3SpriteXOffset
D55B wObject3SpriteYOffset
D55C wObject3MovementIndex
D55D wObject3StepIndex
D55E wObject3Field1d
D55F wObject3Field1e
D560 wObject3JumpHeight
D561-D568 wObject3Range
D569 wObject4Sprite
D56A wObject4MapObjectIndex
D56B wObject4SpriteTile
D56C wObject4MovementType
D56D-D56E wObject4Flags
D56F wObject4Palette
D570 wObject4Walking
D571 wObject4Direction
D572 wObject4StepType
D573 wObject4StepDuration
D574 wObject4Action
D575 wObject4StepFrame
D576 wObject4Facing
D577 wObject4TileCollision
D578 wObject4LastTile
D579 wObject4MapX
D57A wObject4MapY
D57B wObject4LastMapX
D57C wObject4LastMapY
D57D wObject4InitX
D57E wObject4InitY
D57F wObject4Radius
D580 wObject4SpriteX
D581 wObject4SpriteY
D582 wObject4SpriteXOffset
D583 wObject4SpriteYOffset
D584 wObject4MovementIndex
D585 wObject4StepIndex
D586 wObject4Field1d
D587 wObject4Field1e
D588 wObject4JumpHeight
D589-D590 wObject4Range
D591 wObject5Sprite
D592 wObject5MapObjectIndex
D593 wObject5SpriteTile
D594 wObject5MovementType
D595-D596 wObject5Flags
D597 wObject5Palette
D598 wObject5Walking
D599 wObject5Direction
D59A wObject5StepType
D59B wObject5StepDuration
D59C wObject5Action
D59D wObject5StepFrame
D59E wObject5Facing
D59F wObject5TileCollision
D5A0 wObject5LastTile
D5A1 wObject5MapX
D5A2 wObject5MapY
D5A3 wObject5LastMapX
D5A4 wObject5LastMapY
D5A5 wObject5InitX
D5A6 wObject5InitY
D5A7 wObject5Radius
D5A8 wObject5SpriteX
D5A9 wObject5SpriteY
D5AA wObject5SpriteXOffset
D5AB wObject5SpriteYOffset
D5AC wObject5MovementIndex
D5AD wObject5StepIndex
D5AE wObject5Field1d
D5AF wObject5Field1e
D5B0 wObject5JumpHeight
D5B1-D5B8 wObject5Range
D5B9 wObject6Sprite
D5BA wObject6MapObjectIndex
D5BB wObject6SpriteTile
D5BC wObject6MovementType
D5BD-D5BE wObject6Flags
D5BF wObject6Palette
D5C0 wObject6Walking
D5C1 wObject6Direction
D5C2 wObject6StepType
D5C3 wObject6StepDuration
D5C4 wObject6Action
D5C5 wObject6StepFrame
D5C6 wObject6Facing
D5C7 wObject6TileCollision
D5C8 wObject6LastTile
D5C9 wObject6MapX
D5CA wObject6MapY
D5CB wObject6LastMapX
D5CC wObject6LastMapY
D5CD wObject6InitX
D5CE wObject6InitY
D5CF wObject6Radius
D5D0 wObject6SpriteX
D5D1 wObject6SpriteY
D5D2 wObject6SpriteXOffset
D5D3 wObject6SpriteYOffset
D5D4 wObject6MovementIndex
D5D5 wObject6StepIndex
D5D6 wObject6Field1d
D5D7 wObject6Field1e
D5D8 wObject6JumpHeight
D5D9-D5E0 wObject6Range
D5E1 wObject7Sprite
D5E2 wObject7MapObjectIndex
D5E3 wObject7SpriteTile
D5E4 wObject7MovementType
D5E5-D5E6 wObject7Flags
D5E7 wObject7Palette
D5E8 wObject7Walking
D5E9 wObject7Direction
D5EA wObject7StepType
D5EB wObject7StepDuration
D5EC wObject7Action
D5ED wObject7StepFrame
D5EE wObject7Facing
D5EF wObject7TileCollision
D5F0 wObject7LastTile
D5F1 wObject7MapX
D5F2 wObject7MapY
D5F3 wObject7LastMapX
D5F4 wObject7LastMapY
D5F5 wObject7InitX
D5F6 wObject7InitY
D5F7 wObject7Radius
D5F8 wObject7SpriteX
D5F9 wObject7SpriteY
D5FA wObject7SpriteXOffset
D5FB wObject7SpriteYOffset
D5FC wObject7MovementIndex
D5FD wObject7StepIndex
D5FE wObject7Field1d
D5FF wObject7Field1e
D600 wObject7JumpHeight
D601-D608 wObject7Range
D609 wObject8Sprite
D60A wObject8MapObjectIndex
D60B wObject8SpriteTile
D60C wObject8MovementType
D60D-D60E wObject8Flags
D60F wObject8Palette
D610 wObject8Walking
D611 wObject8Direction
D612 wObject8StepType
D613 wObject8StepDuration
D614 wObject8Action
D615 wObject8StepFrame
D616 wObject8Facing
D617 wObject8TileCollision
D618 wObject8LastTile
D619 wObject8MapX
D61A wObject8MapY
D61B wObject8LastMapX
D61C wObject8LastMapY
D61D wObject8InitX
D61E wObject8InitY
D61F wObject8Radius
D620 wObject8SpriteX
D621 wObject8SpriteY
D622 wObject8SpriteXOffset
D623 wObject8SpriteYOffset
D624 wObject8MovementIndex
D625 wObject8StepIndex
D626 wObject8Field1d
D627 wObject8Field1e
D628 wObject8JumpHeight
D629-D630 wObject8Range
D631 wObject9Sprite
D632 wObject9MapObjectIndex
D633 wObject9SpriteTile
D634 wObject9MovementType
D635-D636 wObject9Flags
D637 wObject9Palette
D638 wObject9Walking
D639 wObject9Direction
D63A wObject9StepType
D63B wObject9StepDuration
D63C wObject9Action
D63D wObject9StepFrame
D63E wObject9Facing
D63F wObject9TileCollision
D640 wObject9LastTile
D641 wObject9MapX
D642 wObject9MapY
D643 wObject9LastMapX
D644 wObject9LastMapY
D645 wObject9InitX
D646 wObject9InitY
D647 wObject9Radius
D648 wObject9SpriteX
D649 wObject9SpriteY
D64A wObject9SpriteXOffset
D64B wObject9SpriteYOffset
D64C wObject9MovementIndex
D64D wObject9StepIndex
D64E wObject9Field1d
D64F wObject9Field1e
D650 wObject9JumpHeight
D651-D658 wObject9Range
D659 wObject10Sprite
D65A wObject10MapObjectIndex
D65B wObject10SpriteTile
D65C wObject10MovementType
D65D-D65E wObject10Flags
D65F wObject10Palette
D660 wObject10Walking
D661 wObject10Direction
D662 wObject10StepType
D663 wObject10StepDuration
D664 wObject10Action
D665 wObject10StepFrame
D666 wObject10Facing
D667 wObject10TileCollision
D668 wObject10LastTile
D669 wObject10MapX
D66A wObject10MapY
D66B wObject10LastMapX
D66C wObject10LastMapY
D66D wObject10InitX
D66E wObject10InitY
D66F wObject10Radius
D670 wObject10SpriteX
D671 wObject10SpriteY
D672 wObject10SpriteXOffset
D673 wObject10SpriteYOffset
D674 wObject10MovementIndex
D675 wObject10StepIndex
D676 wObject10Field1d
D677 wObject10Field1e
D678 wObject10JumpHeight
D679-D680 wObject10Range
D681 wObject11Sprite
D682 wObject11MapObjectIndex
D683 wObject11SpriteTile
D684 wObject11MovementType
D685-D686 wObject11Flags
D687 wObject11Palette
D688 wObject11Walking
D689 wObject11Direction
D68A wObject11StepType
D68B wObject11StepDuration
D68C wObject11Action
D68D wObject11StepFrame
D68E wObject11Facing
D68F wObject11TileCollision
D690 wObject11LastTile
D691 wObject11MapX
D692 wObject11MapY
D693 wObject11LastMapX
D694 wObject11LastMapY
D695 wObject11InitX
D696 wObject11InitY
D697 wObject11Radius
D698 wObject11SpriteX
D699 wObject11SpriteY
D69A wObject11SpriteXOffset
D69B wObject11SpriteYOffset
D69C wObject11MovementIndex
D69D wObject11StepIndex
D69E wObject11Field1d
D69F wObject11Field1e
D6A0 wObject11JumpHeight
D6A1-D6A8 wObject11Range
D6A9 wObject12Sprite
D6AA wObject12MapObjectIndex
D6AB wObject12SpriteTile
D6AC wObject12MovementType
D6AD-D6AE wObject12Flags
D6AF wObject12Palette
D6B0 wObject12Walking
D6B1 wObject12Direction
D6B2 wObject12StepType
D6B3 wObject12StepDuration
D6B4 wObject12Action
D6B5 wObject12StepFrame
D6B6 wObject12Facing
D6B7 wObject12TileCollision
D6B8 wObject12LastTile
D6B9 wObject12MapX
D6BA wObject12MapY
D6BB wObject12LastMapX
D6BC wObject12LastMapY
D6BD wObject12InitX
D6BE wObject12InitY
D6BF wObject12Radius
D6C0 wObject12SpriteX
D6C1 wObject12SpriteY
D6C2 wObject12SpriteXOffset
D6C3 wObject12SpriteYOffset
D6C4 wObject12MovementIndex
D6C5 wObject12StepIndex
D6C6 wObject12Field1d
D6C7 wObject12Field1e
D6C8 wObject12JumpHeight
D6C9-D6D0 wObject12Range
D6D1-D710 wCmdQueue
D711 wPlayerObjectStructID
D712 wPlayerObjectSprite
D713 wPlayerObjectYCoord
D714 wPlayerObjectXCoord
D715 wPlayerObjectMovement
D716 wPlayerObjectRadius
D717 wPlayerObjectHour1
D718 wPlayerObjectHour2
D719 wPlayerObjectPalette
D71A wPlayerObjectSightRange
D71B-D71C wPlayerObjectScript
D71D-D720 wPlayerObjectEventFlag
D721 wMap1ObjectStructID
D722 wMap1ObjectSprite
D723 wMap1ObjectYCoord
D724 wMap1ObjectXCoord
D725 wMap1ObjectMovement
D726 wMap1ObjectRadius
D727 wMap1ObjectHour1
D728 wMap1ObjectTimeOfDay
D729 wMap1ObjectType
D72A wMap1ObjectSightRange
D72B-D72C wMap1ObjectScript
D72D-D730 wMap1ObjectEventFlag
D731 wMap2ObjectStructID
D732 wMap2ObjectSprite
D733 wMap2ObjectYCoord
D734 wMap2ObjectXCoord
D735 wMap2ObjectMovement
D736 wMap2ObjectRadius
D737 wMap2ObjectHour1
D738 wMap2ObjectHour2
D739 wMap2ObjectPalette
D73A wMap2ObjectSightRange
D73B-D73C wMap2ObjectScript
D73D-D740 wMap2ObjectEventFlag
D741 wMap3ObjectStructID
D742 wMap3ObjectSprite
D743 wMap3ObjectYCoord
D744 wMap3ObjectXCoord
D745 wMap3ObjectMovement
D746 wMap3ObjectRadius
D747 wMap3ObjectHour1
D748 wMap3ObjectHour2
D749 wMap3ObjectType
D74A wMap3ObjectSightRange
D74B-D74C wMap3ObjectScript
D74D-D750 wMap3ObjectEventFlag
D751 wMap4ObjectStructID
D752 wMap4ObjectSprite
D753 wMap4ObjectYCoord
D754 wMap4ObjectXCoord
D755 wMap4ObjectMovement
D756 wMap4ObjectRadius
D757 wMap4ObjectHour1
D758 wMap4ObjectHour2
D759 wMap4ObjectType
D75A wMap4ObjectSightRange
D75B-D75C wMap4ObjectScript
D75D-D760 wMap4ObjectEventFlag
D761 wMap5ObjectStructID
D762 wMap5ObjectSprite
D763 wMap5ObjectYCoord
D764 wMap5ObjectXCoord
D765 wMap5ObjectMovement
D766 wMap5ObjectRadius
D767 wMap5ObjectHour1
D768 wMap5ObjectHour2
D769 wMap5ObjectPalette
D76A wMap5ObjectSightRange
D76B-D76C wMap5ObjectScript
D76D-D770 wMap5ObjectEventFlag
D771 wMap6ObjectStructID
D772 wMap6ObjectSprite
D773 wMap6ObjectYCoord
D774 wMap6ObjectXCoord
D775 wMap6ObjectMovement
D776 wMap6ObjectRadius
D777 wMap6ObjectHour1
D778 wMap6ObjectTimeOfDay
D779 wMap6ObjectType
D77A wMap6ObjectSightRange
D77B-D77C wMap6ObjectScript
D77D-D780 wMap6ObjectEventFlag
D781 wMap7ObjectStructID
D782 wMap7ObjectSprite
D783 wMap7ObjectYCoord
D784 wMap7ObjectXCoord
D785 wMap7ObjectMovement
D786 wMap7ObjectRadius
D787 wMap7ObjectHour1
D788 wMap7ObjectHour2
D789 wMap7ObjectPalette
D78A wMap7ObjectSightRange
D78B-D78C wMap7ObjectScript
D78D-D790 wMap7ObjectEventFlag
D791 wMap8ObjectStructID
D792 wMap8ObjectSprite
D793 wMap8ObjectYCoord
D794 wMap8ObjectXCoord
D795 wMap8ObjectMovement
D796 wMap8ObjectRadius
D797 wMap8ObjectHour1
D798 wMap8ObjectTimeOfDay
D799 wMap8ObjectType
D79A wMap8ObjectSightRange
D79B-D79C wMap8ObjectScript
D79D-D7A0 wMap8ObjectEventFlag
D7A1 wMap9ObjectStructID
D7A2 wMap9ObjectSprite
D7A3 wMap9ObjectYCoord
D7A4 wMap9ObjectXCoord
D7A5 wMap9ObjectMovement
D7A6 wMap9ObjectRadius
D7A7 wMap9ObjectHour1
D7A8 wMap9ObjectTimeOfDay
D7A9 wMap9ObjectType
D7AA wMap9ObjectSightRange
D7AB-D7AC wMap9ObjectScript
D7AD-D7B0 wMap9ObjectEventFlag
D7B1 wMap10ObjectStructID
D7B2 wMap10ObjectSprite
D7B3 wMap10ObjectYCoord
D7B4 wMap10ObjectXCoord
D7B5 wMap10ObjectMovement
D7B6 wMap10ObjectRadius
D7B7 wMap10ObjectHour1
D7B8 wMap10ObjectTimeOfDay
D7B9 wMap10ObjectType
D7BA wMap10ObjectSightRange
D7BB-D7BC wMap10ObjectScript
D7BD-D7C0 wMap10ObjectEventFlag
D7C1 wMap11ObjectStructID
D7C2 wMap11ObjectSprite
D7C3 wMap11ObjectYCoord
D7C4 wMap11ObjectXCoord
D7C5 wMap11ObjectMovement
D7C6 wMap11ObjectRadius
D7C7 wMap11ObjectHour1
D7C8 wMap11ObjectTimeOfDay
D7C9 wMap11ObjectPalette
D7CA wMap11ObjectSightRange
D7CB-D7CC wMap11ObjectScript
D7CD-D7D0 wMap11ObjectEventFlag
D7D1 wMap12ObjectStructID
D7D2 wMap12ObjectSprite
D7D3 wMap12ObjectYCoord
D7D4 wMap12ObjectXCoord
D7D5 wMap12ObjectMovement
D7D6 wMap12ObjectRadius
D7D7 wMap12ObjectHour1
D7D8 wMap12ObjectHour2
D7D9 wMap12ObjectPalette
D7DA wMap12ObjectSightRange
D7DB-D7DC wMap12ObjectScript
D7DD-D7E0 wMap12ObjectEventFlag
D7E1 wMap13ObjectStructID
D7E2 wMap13ObjectSprite
D7E3 wMap13ObjectYCoord
D7E4 wMap13ObjectXCoord
D7E5 wMap13ObjectMovement
D7E6 wMap13ObjectRadius
D7E7 wMap13ObjectHour1
D7E8 wMap13ObjectHour2
D7E9 wMap13ObjectType
D7EA wMap13ObjectSightRange
D7EB-D7EC wMap13ObjectScript
D7ED-D7F0 wMap13ObjectEventFlag
D7F1 wMap14ObjectStructID
D7F2 wMap14ObjectSprite
D7F3 wMap14ObjectYCoord
D7F4 wMap14ObjectXCoord
D7F5 wMap14ObjectMovement
D7F6 wMap14ObjectRadius
D7F7 wMap14ObjectHour1
D7F8 wMap14ObjectHour2
D7F9 wMap14ObjectType
D7FA wMap14ObjectSightRange
D7FB-D7FC wMap14ObjectScript
D7FD-D800 wMap14ObjectEventFlag
D801 wMap15ObjectStructID
D802 wMap15ObjectSprite
D803 wMap15ObjectYCoord
D804 wMap15ObjectXCoord
D805 wMap15ObjectMovement
D806 wMap15ObjectRadius
D807 wMap15ObjectHour1
D808 wMap15ObjectTimeOfDay
D809 wMap15ObjectType
D80A wMap15ObjectSightRange
D80B-D80C wMap15ObjectScript
D80D-D810 wMap15ObjectEventFlag
D811-D820 wObjectMasks
D821-D830 wVariableSprites
D831-D833 wEnteredMapFromContinue
D834-D838 wTimeOfDayPal
D839 wTimeOfDayPalFlags
D83A wTimeOfDayPalset
D83B-D83C wCurTimeOfDay
D83D-D83E wSecretID
D83F wStatusFlags
D840 wStatusFlags2
D841-D843 wMoney
D844-D846 wMomsMoney
D847 wMomSavingMoney
D848-D849 wCoins
D84A wJohtoBadges
D84B wKantoBadges
D84C-D884 wTMsHMs
D885 wNumItems
D886-D8AE wItems
D8AF wNumKeyItems
D8B0-D8C9 wKeyItems
D8CA wNumBalls
D8CB-D8E3 wBalls
D8E4 wNumPCItems
D8E5-D949 wPCItems
D94A wPokegearFlags
D94B wRadioTuningKnob
D94C-D94D wLastDexMode
D94E wWhichRegisteredItem
D94F wRegisteredItem
D950 wPlayerState
D951-D952 wHallOfFameCount
D953-D954 wTradeFlags
D955 wMooMooBerries
D956 wUndergroundSwitchPositions
D957-D964 wFarfetchdPosition
D965 wPokecenter2FSceneID
D966 wTradeCenterSceneID
D967 wColosseumSceneID
D968 wTimeCapsuleSceneID
D969 wPowerPlantSceneID
D96A wCeruleanGymSceneID
D96B wRoute25SceneID
D96C wTrainerHouseB1FSceneID
D96D wVictoryRoadGateSceneID
D96E wSaffronMagnetTrainStationSceneID
D96F wRoute16GateSceneID
D970 wRoute17Route18GateSceneID
D971 wIndigoPlateauPokecenter1FSceneID
D972 wWillsRoomSceneID
D973 wKogasRoomSceneID
D974 wBrunosRoomSceneID
D975 wKarensRoomSceneID
D976 wLancesRoomSceneID
D977 wHallOfFameSceneID
D978 wRoute27SceneID
D979 wNewBarkTownSceneID
D97A wElmsLabSceneID
D97B wPlayersHouse1FSceneID
D97C wRoute29SceneID
D97D wCherrygroveCitySceneID
D97E wMrPokemonsHouseSceneID
D97F wRoute32SceneID
D980 wRoute35NationalParkGateSceneID
D981 wRoute36SceneID
D982 wRoute36NationalParkGateSceneID
D983 wAzaleaTownSceneID
D984 wGoldenrodGymSceneID
D985 wGoldenrodMagnetTrainStationSceneID
D986 wGoldenrodPokecenter1FSceneID
D987 wOlivineCitySceneID
D988 wRoute34SceneID
D989 wRoute34IlexForestGateSceneID
D98A wEcruteakTinTowerEntranceSceneID
D98B wWiseTriosRoomSceneID
D98C wEcruteakPokecenter1FSceneID
D98D wEcruteakGymSceneID
D98E wMahoganyTownSceneID
D98F wRoute42SceneID
D990 wCianwoodCitySceneID
D991 wBattleTower1FSceneID
D992 wBattleTowerBattleRoomSceneID
D993 wBattleTowerElevatorSceneID
D994 wBattleTowerHallwaySceneID
D995 wBattleTowerOutsideSceneID
D996 wRoute43GateSceneID
D997 wMountMoonSceneID
D998 wSproutTower3FSceneID
D999 wTinTower1FSceneID
D99A wBurnedTower1FSceneID
D99B wBurnedTowerB1FSceneID
D99C wRadioTower5FSceneID
D99D wRuinsOfAlphOutsideSceneID
D99E wRuinsOfAlphResearchCenterSceneID
D99F wRuinsOfAlphHoOhChamberSceneID
D9A0 wRuinsOfAlphKabutoChamberSceneID
D9A1 wRuinsOfAlphOmanyteChamberSceneID
D9A2 wRuinsOfAlphAerodactylChamberSceneID
D9A3 wRuinsOfAlphInnerChamberSceneID
D9A4 wMahoganyMart1FSceneID
D9A5 wTeamRocketBaseB1FSceneID
D9A6 wTeamRocketBaseB2FSceneID
D9A7 wTeamRocketBaseB3FSceneID
D9A8 wGoldenrodUndergroundSwitchRoomEntrancesSceneID
D9A9 wSilverCaveRoom3SceneID
D9AA wVictoryRoadSceneID
D9AB wDragonsDenB1FSceneID
D9AC wDragonShrineSceneID
D9AD wOlivinePortSceneID
D9AE wVermilionPortSceneID
D9AF wFastShip1FSceneID
D9B0 wFastShipB1FSceneID
D9B1 wMountMoonSquareSceneID
D9B2 wMobileTradeRoomSceneID
D9B3-D9E4 wMobileBattleRoomSceneID
D9E5 wJackFightCount
D9E6 wBeverlyFightCount
D9E7 wHueyFightCount
D9E8 wGavenFightCount
D9E9 wBethFightCount
D9EA wJoseFightCount
D9EB wReenaFightCount
D9EC wJoeyFightCount
D9ED wWadeFightCount
D9EE wRalphFightCount
D9EF wLizFightCount
D9F0 wAnthonyFightCount
D9F1 wToddFightCount
D9F2 wGinaFightCount
D9F3 wIrwinFightCount
D9F4 wArnieFightCount
D9F5 wAlanFightCount
D9F6 wDanaFightCount
D9F7 wChadFightCount
D9F8 wDerekFightCount
D9F9 wTullyFightCount
D9FA wBrentFightCount
D9FB wTiffanyFightCount
D9FC wVanceFightCount
D9FD wWiltonFightCount
D9FE wKenjiFightCount
D9FF wParryFightCount
DA00 wErinFightCount
DA01-DA64 未使用領域
DA65-DB64 wEventFlags
DB65-DB67 wCurBox
DB68-DBB8 wBoxNames
DBB9-DBBA wCelebiEvent
DBBB-DBBC wBikeFlags
DBBD-DBBE wCurMapSceneScriptPointer
DBBF-DBC0 wCurCaller
DBC1 wCurMapWarpEventCount
DBC2-DBC3 wCurMapWarpEventsPointer
DBC4 wCurMapCoordEventCount
DBC5-DBC6 wCurMapCoordEventsPointer
DBC7 wCurMapBGEventCount
DBC8-DBC9 wCurMapBGEventsPointer
DBCA wCurMapObjectEventCount
DBCB-DBCC wCurMapObjectEventsPointer
DBCD wCurMapSceneScriptCount
DBCE-DBCF wCurMapSceneScriptsPointer
DBD0 wCurMapCallbackCount
DBD1-DBD4 wCurMapCallbacksPointer
DBD5 wDecoBed
DBD6 wDecoCarpet
DBD7 wDecoPlant
DBD8 wDecoPoster
DBD9 wDecoConsole
DBDA wDecoLeftOrnament
DBDB wDecoRightOrnament
DBDC wDecoBigDoll
DBDD wWhichMomItem
DBDE wWhichMomItemSet
DBDF-DBE1 wMomItemTriggerBalance
DBE2-DBE3 wDailyResetTimer
DBE4 wDailyFlags1
DBE5 wDailyFlags2
DBE6-DBE8 wSwarmFlags
DBE9-DBEC wTimerEventStartDay
DBED-DBF2 wFruitTreeFlags
DBF3-DBF6 wLuckyNumberDayTimer
DBF7-DBFA wSpecialPhoneCallID
DBFB-DBFE wBugContestStartTime
DBFF wUnusedTwoDayTimerOn
DC00 wUnusedTwoDayTimer
DC01-DC05 wUnusedTwoDayTimerStartDate
DC06 wMobileOrCable_LastSelection
DC07 wdc41
DC08-DC0F wdc42
DC10 wBuenasPassword
DC11 wBlueCardBalance
DC12-DC15 wDailyRematchFlags
DC16-DC19 wDailyPhoneItemFlags
DC1A-DC1D wDailyPhoneTimeOfDayFlags
DC1E-DC1F wKenjiBreakTimer
DC20 wYanmaMapGroup
DC21 wYanmaMapNumber
DC22-DC24 wPlayerMonSelection
DC25 wdc5f
DC26-DC38 wdc60
DC39 wStepCount
DC3A-DC3C wPoisonStepCount
DC3D-DC3E wHappinessStepCount
DC3F wParkBallsRemaining
DC40-DC41 wSafariTimeRemaining
DC42-DC62 wPhoneList
DC63-DC64 wLuckyNumberShowFlag
DC65-DC66 wLuckyIDNumber
DC67 wRepelEffect
DC68-DC69 wBikeStep
DC6A wKurtApricornQuantity
DC6B-DC6E wVisitedSpawns
DC6F wDigWarpNumber
DC70 wDigMapGroup
DC71 wDigMapNumber
DC72 wBackupWarpNumber
DC73 wBackupMapGroup
DC74-DC77 wBackupMapNumber
DC78 wLastSpawnMapGroup
DC79 wLastSpawnMapNumber
DC7A wWarpNumber
DC7B wMapGroup
DC7C wMapNumber
DC7D wYCoord
DC7E wXCoord
DC7F-DC9C wScreenSave
DC9D wPartyCount
DC9E-DCA3 wPartySpecies
DCA4 wPartyEnd
DCA5 wPartyMon1
DCA6 wPartyMon1Item
DCA7-DCAA wPartyMon1Moves
DCAB-DCAC wPartyMon1ID
DCAD-DCAF wPartyMon1Exp
DCB0-DCB1 wPartyMon1HPExp
DCB2-DCB3 wPartyMon1AtkExp
DCB4-DCB5 wPartyMon1DefExp
DCB6-DCB7 wPartyMon1SpdExp
DCB8-DCB9 wPartyMon1SpcExp
DCBA-DCBB wPartyMon1DVs
DCBC-DCBF wPartyMon1PP
DCC0 wPartyMon1Happiness
DCC1 wPartyMon1PokerusStatus
DCC2 wPartyMon1CaughtTime
DCC3 wPartyMon1CaughtLocation
DCC4 wPartyMon1Level
DCC5 wPartyMon1BoxEnd
DCC6 wPartyMon1Unused
DCC7-DCC8 wPartyMon1HP
DCC9-DCCA wPartyMon1MaxHP
DCCB-DCCC wPartyMon1Attack
DCCD-DCCE wPartyMon1Defense
DCCF-DCD0 wPartyMon1Speed
DCD1-DCD2 wPartyMon1SpclAtk
DCD3-DCD4 wPartyMon1SpclDef
DCD5 wPartyMon2Species
DCD6 wPartyMon2Item
DCD7-DCDA wPartyMon2Moves
DCDB-DCDC wPartyMon2ID
DCDD-DCDF wPartyMon2Exp
DCE0-DCE1 wPartyMon2HPExp
DCE2-DCE3 wPartyMon2AtkExp
DCE4-DCE5 wPartyMon2DefExp
DCE6-DCE7 wPartyMon2SpdExp
DCE8-DCE9 wPartyMon2SpcExp
DCEA-DCEB wPartyMon2DVs
DCEC-DCEF wPartyMon2PP
DCF0 wPartyMon2Happiness
DCF1 wPartyMon2PokerusStatus
DCF2 wPartyMon2CaughtLevel
DCF3 wPartyMon2CaughtGender
DCF4 wPartyMon2Level
DCF5 wPartyMon2BoxEnd
DCF6 wPartyMon2Unused
DCF7-DCF8 wPartyMon2HP
DCF9-DCFA wPartyMon2MaxHP
DCFB-DCFC wPartyMon2Attack
DCFD-DCFE wPartyMon2Defense
DCFF-DD00 wPartyMon2Speed
DD01-DD02 wPartyMon2SpclAtk
DD03-DD04 wPartyMon2SpclDef
DD05 wPartyMon3Species
DD06 wPartyMon3Item
DD07-DD0A wPartyMon3Moves
DD0B-DD0C wPartyMon3ID
DD0D-DD0F wPartyMon3Exp
DD10-DD11 wPartyMon3HPExp
DD12-DD13 wPartyMon3AtkExp
DD14-DD15 wPartyMon3DefExp
DD16-DD17 wPartyMon3SpdExp
DD18-DD19 wPartyMon3SpcExp
DD1A-DD1B wPartyMon3DVs
DD1C-DD1F wPartyMon3PP
DD20 wPartyMon3Happiness
DD21 wPartyMon3PokerusStatus
DD22 wPartyMon3CaughtData
DD23 wPartyMon3CaughtGender
DD24 wPartyMon3Level
DD25 wPartyMon3BoxEnd
DD26 wPartyMon3Unused
DD27-DD28 wPartyMon3HP
DD29-DD2A wPartyMon3MaxHP
DD2B-DD2C wPartyMon3Attack
DD2D-DD2E wPartyMon3Defense
DD2F-DD30 wPartyMon3Speed
DD31-DD32 wPartyMon3SpclAtk
DD33-DD34 wPartyMon3SpclDef
DD35 wPartyMon4Species
DD36 wPartyMon4Item
DD37-DD3A wPartyMon4Moves
DD3B-DD3C wPartyMon4ID
DD3D-DD3F wPartyMon4Exp
DD40-DD41 wPartyMon4HPExp
DD42-DD43 wPartyMon4AtkExp
DD44-DD45 wPartyMon4DefExp
DD46-DD47 wPartyMon4SpdExp
DD48-DD49 wPartyMon4SpcExp
DD4A-DD4B wPartyMon4DVs
DD4C-DD4F wPartyMon4PP
DD50 wPartyMon4Happiness
DD51 wPartyMon4PokerusStatus
DD52 wPartyMon4CaughtTime
DD53 wPartyMon4CaughtLocation
DD54 wPartyMon4Level
DD55 wPartyMon4BoxEnd
DD56 wPartyMon4Unused
DD57-DD58 wPartyMon4HP
DD59-DD5A wPartyMon4MaxHP
DD5B-DD5C wPartyMon4Attack
DD5D-DD5E wPartyMon4Defense
DD5F-DD60 wPartyMon4Speed
DD61-DD62 wPartyMon4SpclAtk
DD63-DD64 wPartyMon4SpclDef
DD65 wPartyMon5Species
DD66 wPartyMon5Item
DD67-DD6A wPartyMon5Moves
DD6B-DD6C wPartyMon5ID
DD6D-DD6F wPartyMon5Exp
DD70-DD71 wPartyMon5HPExp
DD72-DD73 wPartyMon5AtkExp
DD74-DD75 wPartyMon5DefExp
DD76-DD77 wPartyMon5SpdExp
DD78-DD79 wPartyMon5SpcExp
DD7A-DD7B wPartyMon5DVs
DD7C-DD7F wPartyMon5PP
DD80 wPartyMon5Happiness
DD81 wPartyMon5PokerusStatus
DD82 wPartyMon5CaughtLevel
DD83 wPartyMon5CaughtGender
DD84 wPartyMon5Level
DD85 wPartyMon5Status
DD86 wPartyMon5Unused
DD87-DD88 wPartyMon5HP
DD89-DD8A wPartyMon5MaxHP
DD8B-DD8C wPartyMon5Attack
DD8D-DD8E wPartyMon5Defense
DD8F-DD90 wPartyMon5Speed
DD91-DD92 wPartyMon5SpclAtk
DD93-DD94 wPartyMon5SpclDef
DD95 wPartyMon6Species
DD96 wPartyMon6Item
DD97-DD9A wPartyMon6Moves
DD9B-DD9C wPartyMon6ID
DD9D-DD9F wPartyMon6Exp
DDA0-DDA1 wPartyMon6HPExp
DDA2-DDA3 wPartyMon6AtkExp
DDA4-DDA5 wPartyMon6DefExp
DDA6-DDA7 wPartyMon6SpdExp
DDA8-DDA9 wPartyMon6SpcExp
DDAA-DDAB wPartyMon6DVs
DDAC-DDAF wPartyMon6PP
DDB0 wPartyMon6Happiness
DDB1 wPartyMon6PokerusStatus
DDB2 wPartyMon6CaughtData
DDB3 wPartyMon6CaughtGender
DDB4 wPartyMon6Level
DDB5 wPartyMon6Status
DDB6 wPartyMon6Unused
DDB7-DDB8 wPartyMon6HP
DDB9-DDBA wPartyMon6MaxHP
DDBB-DDBC wPartyMon6Attack
DDBD-DDBE wPartyMon6Defense
DDBF-DDC0 wPartyMon6Speed
DDC1-DDC2 wPartyMon6SpclAtk
DDC3-DDC4 wPartyMon6SpclDef
DDC5-DDCA wPartyMon1OT
DDCB-DDD0 wPartyMon2OT
DDD1-DDD6 wPartyMon3OT
DDD7-DDDC wPartyMon4OT
DDDD-DDE2 wPartyMon5OT
DDE3-DDE8 wPartyMon6OT
DDE9-DDEE wPartyMon1Nickname
DDEF-DDF4 wPartyMon2Nickname
DDF5-DDFA wPartyMon3Nickname
DDFB-DE00 wPartyMon4Nickname
DE01-DE06 wPartyMon5Nickname
DE07-DE0C wPartyMon6Nickname
DE0D-DE2C 未使用?
DE2D-DE4C wPokedexCaught
DE4D-DE6C wPokedexSeen
DE6D-DE86 wUnownDex
DE87 wUnlockedUnowns
DE88 wFirstUnownSeen
DE89 wDayCareMan
DE8A-DE8F wBreedMon1Nickname
DE90-DE95 wBreedMon1OT
DE96 wBreedMon1Species
DE97 wBreedMon1Item
DE98-DE9B wBreedMon1Moves
DE9C-DE9D wBreedMon1ID
DE9E-DEA0 wBreedMon1Exp
DEA1-DEA2 wBreedMon1HPExp
DEA3-DEA4 wBreedMon1AtkExp
DEA5-DEA6 wBreedMon1DefExp
DEA7-DEA8 wBreedMon1SpdExp
DEA9-DEAA wBreedMon1SpcExp
DEAB-DEAC wBreedMon1DVs
DEAD-DEB0 wBreedMon1PP
DEB1 wBreedMon1Happiness
DEB2 wBreedMon1PokerusStatus
DEB3 wBreedMon1CaughtTime
DEB4 wBreedMon1CaughtLocation
DEB5 wBreedMon1Level
DEB6 wBreedMon1BoxEnd
DEB7 wStepsToEgg
DEB8 wBreedMotherOrNonDitto
DEB9-DEBE wBreedMon2Nickname
DEBF-DEC4 wBreedMon2OT
DEC5 wBreedMon2Species
DEC6 wBreedMon2Item
DEC7-DECA wBreedMon2Moves
DECB-DECC wBreedMon2ID
DECD-DECF wBreedMon2Exp
DED0-DED1 wBreedMon2HPExp
DED2-DED3 wBreedMon2AtkExp
DED4-DED5 wBreedMon2DefExp
DED6-DED7 wBreedMon2SpdExp
DED8-DED9 wBreedMon2SpcExp
DEDA-DEDB wBreedMon2DVs
DEDC-DEDF wBreedMon2PP
DEE0 wBreedMon2Happiness
DEE1 wBreedMon2PokerusStatus
DEE2 wBreedMon2CaughtLevel
DEE3 wBreedMon2CaughtGender
DEE4 wBreedMon2Level
DEE5-DEEA wBreedMonNickname
DEEB-DEF0 wEggMonOT
DEF1 wEggMonSpecies
DEF2 wEggMonItem
DEF3-DEF6 wEggMonMoves
DEF7-DEF8 wEggMonID
DEF9-DEFB wEggMonExp
DEFC-DEFD wEggMonHPExp
DEFE-DEFF wEggMonAtkExp
DF00-DF01 wEggMonDefExp
DF02-DF03 wEggMonSpdExp
DF04-DF05 wEggMonSpcExp
DF06-DF07 wEggMonDVs
DF08-DF0B wEggMonPP
DF0C wEggMonHappiness
DF0D wEggMonPokerusStatus
DF0E wEggMonCaughtLevel
DF0F wEggMonCaughtGender
DF10 wEggMonLevel
DF11 wBugContestSecondPartySpecies
DF12 wContestMonSpecies
DF13 wContestMonItem
DF14-DF17 wContestMonMoves
DF18-DF19 wContestMonID
DF1A-DF1C wContestMonExp
DF1D-DF1E wContestMonHPExp
DF1F-DF20 wContestMonAtkExp
DF21-DF22 wContestMonDefExp
DF23-DF24 wContestMonSpdExp
DF25-DF26 wContestMonSpcExp
DF27-DF28 wContestMonDVs
DF29-DF2C wContestMonPP
DF2D wContestMonHappiness
DF2E wContestMonPokerusStatus
DF2F wContestMonCaughtTime
DF30 wContestMonCaughtLocation
DF31 wContestMonLevel
DF32 wContestMonStatus
DF33 wContestMonUnused
DF34-DF35 wContestMonHP
DF36-DF37 wContestMonMaxHP
DF38-DF39 wContestMonAttack
DF3A-DF3B wContestMonDefense
DF3C-DF3D wContestMonSpeed
DF3E-DF3F wContestMonSpclAtk
DF40-DF41 wContestMonSpclDef
DF42 wDunsparceMapGroup
DF43 wDunsparceMapNumber
DF44 wFishingSwarmFlag
DF45 wRoamMon1Species
DF46 wRoamMon1Level
DF47 wRoamMon1MapGroup
DF48 wRoamMon1MapNumber
DF49 wRoamMon1HP
DF4A-DF4B wRoamMon1DVs
DF4C wRoamMon2Species
DF4D wRoamMon2Level
DF4E wRoamMon2MapGroup
DF4F wRoamMon2MapNumber
DF50 wRoamMon2HP
DF51-DF52 wRoamMon2DVs
DF53 wRoamMon3Species
DF54 wRoamMon3Level
DF55 wRoamMon3MapGroup
DF56 wRoamMon3MapNumber
DF57 wRoamMon3HP
DF58-DF59 wRoamMon3DVs
DF5A wRoamMons_CurMapNumber
DF5B wRoamMons_CurMapGroup
DF5C wRoamMons_LastMapNumber
DF5D wRoamMons_LastMapGroup
DF5E wBestMagikarpLengthFeet
DF5F wBestMagikarpLengthInches
DF60-DF65 wMagikarpRecordHoldersName

 

それではよいバグポケ研究ライフを!

 

 

【参考にした海外クリスタル版(EN)解析データ↓】

https://raw.githubusercontent.com/pret/pokecrystal/symbols/pokecrystal.sym

研究結果はちゃんと記録に残しておこう(デバッグモード)

www.youtube.com

 

9か月くらい前に撮った、デバッグモードを実機で起動する動画。

これなんですが、

どうやってこのバグを起こしたのか、当時の研究の記録が残ってなくて絶望しました。

めちゃくちゃ簡単に起こせたような、めちゃくちゃ手間をかけたような。

エクセルで研究したような、裏紙にいろいろ書き込んで研究したような。

記憶も曖昧。もう年かな……

 

ということで、改めて研究してみた所、簡単なジャンプ命令などではうまく実現ができなくて、「デバッグモードの残滓を利用した大規模な復元」をするしかこの動画のバグを再現する方法はなさそうという結論になりました。

 

当時こんな方法使ってたっけなあ……???

記録が残ってないものはしょうがない。

 

(2024.2.26追記 ケミカさんの最適化研究によりめちゃくちゃ効率の良い起動法が開発されました。記事の最後に追記しているので是非ご覧ください)

 

というわけでやり方ですが、

まずはレポートバグ等で最強のバグアイテム「バイナリエディタ」を作成。

www.youtube.com

 

次に、メモリアドレスDA70~DB61までに下記の数値を打ち込んでいきます。

長い……

DA70~ 3E 3F D7 CD B2 0F CD D7 2F 11 00 00 CD 24 3B 3E
DA80~ 01 E0 AA 21 19 C5 11 B1 73 CD 57 10 AF EA 02 D0
DA90~ CD 26 DB AF EA 05 D0 CD 55 DB CD C2 31 CD 4D 0A
DAA0~ F0 A7 CD AA DA CD 5A 04 18 F3 CB 4F 20 4A CB 5F
DAB0~ 20 4C F0 A9 CB 77 20 21 CB 7F 20 2C CB 67 20 47
DAC0~ CB 6F 20 52 CB 47 C8 11 00 00 CD 24 3B CD 5A 04
DAD0~ FA 02 D0 5F 16 00 C3 24 3B FA 02 D0 3C FE 67 20
DAE0~ 01 AF EA 02 D0 C3 26 DB FA 02 D0 3D FE FF 20 02
DAF0~ 3E 66 EA 02 D0 C3 26 DB 11 00 00 C3 24 3F FA 05
DB00~ D0 5F 16 00 C3 B0 3B FA 05 D0 3C FE CF 20 01 AF
DB10~ EA 05 D0 C3 55 DB FA 05 D0 3D FE FF 20 02 3E CE
DB20~ EA 05 D0 C3 55 DB 21 0A C5 01 05 00 3E 7F CD 0D
DB30~ 30 21 CF 73 FA 02 D0 5F 16 00 19 19 19 19 19 11
DB40~ 5B D0 D5 01 05 00 CD F2 2F D1 3E 50 EA 60 D0 21
DB50~ 1E C5 C3 57 10 21 96 C5 11 05 D0 01 03 81 C3 64
DB60~ 31                              

↓コピペ用

3E3FD7CDB20FCDD72F110000CD243B3E01E0AA2119C511B173CD5710AFEA02D0CD26DBAFEA05D0CD55DBCDC231CD4D0AF0A7CDAADACD5A0418F3CB4F204ACB5F204CF0A9CB772021CB7F202CCB672047CB6F2052CB47C8110000CD243BCD5A04FA02D05F1600C3243BFA02D03CFE672001AFEA02D0C326DBFA02D03DFEFF20023E66EA02D0C326DB110000C3243FFA05D05F1600C3B03BFA05D03CFECF2001AFEA05D0C355DBFA05D03DFEFF20023ECEEA05D0C355DB210AC50105003E7FCD0D3021CF73FA02D05F16001919191919115BD0D5010500CDF22FD13E50EA60D0211EC5C357102196C51105D0010381C36431

 

上記の準備が終わったら、あとはDA70にカーソルを合わせてSELECT+Aを押せば、デバッグモードの1つである「サウンドテスト」を起動することができます。

(分類違いわざマシンで起動してください。バグモード図鑑で起動すると文字が出てきません)

上下+AボタンでBGM、左右+STARTでSE。

 

 

仕組みとしては、

①そのままでは使えない、壊れた残骸として眠っているデバッグモードを発掘。

②おそらく開発時はこうだったんだろう、という形に修復・復元。

デバッグモード実行。

という感じです。

 

デバッグモードの力で、

古き良きゲームボーイ時代の音楽を実機で自由に堪能しましょう~

それではよいバグポケライフを!

 

ーーーーーーーーーーーーーーーーー

2024.02.26追記

ケミカさん(@tamagokakegohanium)の最適化研究により、なんと上記の約半分のコード長サウンドテストの起動が可能になりました!

スゴすぎる……!!!

許可を頂いたのでこちらに掲載させていただきますm(_ _)m 

①DA73〜DAAB以外の場所(C800〜推奨とのこと)に下記のコードを打ち込む。

②打ち込んだコードの先頭(C800から打ち込んだのならC800)にカーソルを合わせてSELECT+Aを実行するとサウンドテストが起動する。

C800~ 3E 3F D7 01 EE 00 11 73 DA D5 21 C3 72 CD F2 2F
C810~ 3E D7 EA 77 DA 3E 2F EA 78 DA EA 48 DB 3E 24 EA
C820~ 7D DA EA CB DA EA D7 DA EA FC DA 3E 26 EA 91 DA
C830~ EA E6 DA EA F6 DA 3E DB EA 92 DA EA 99 DA EA E7
C840~ DA EA F7 DA EA 15 DB EA 25 DB 3D EA A4 DA 3E 55
C850~ EA 98 DA EA 14 DB EA 24 DB 3E C2 EA 9B DA 3E AA
C860~ EA A3 DA 3E B0 EA 05 DB 3E 0D EA 2F DB 3E F2 EA
C870~ 47 DB 3E 64 EA 5F DB E1 E9              
 

だいたい240byte→120byteの削減。すごすぎぃ。。。

 

 

プチ追記:

ちなみに自分の一番好きなSEは「こうかおん151」です。是非サウンドテストで聞いてみてね

 

ヤドンのしっぽを現金決済するやつ。

 

どうも、オーキドせんせい研究者、略しておせけんです。

 

https://www.youtube.com/watch?v=FrF45d8S66s

今回は、上記の動画で紹介している、

クリスタル版にて「あやしいおじさんからヤドンのしっぽを買う」

というバグ技のやりかた解説記事です。

あやしいおじさん

 

【下準備】

まず前提として、このバグ技は「わざマシンポケットの各わざマシンの個数」や

ボックス7に預けているポケモンのステータス」などを特定の数値にすることで発生させるものとなっています。

メールバグなどで地道に数値を変更していくことも理論上可能ではありますが、作業量があまりに膨大になってしまうため非推奨です。

まずはレポートバグを起点に作成できる最強のバグアイテム「バイナリエディタ」を用意するところから始めましょう。

 

バイナリエディタ作成チャートの解説動画はこちら↓

www.youtube.com

 

【手順0 おじさん復活】

手順に入る前にそもそもの問題として、

この「あやしいおじさん」は普通にストーリーを進めていると

ヤドンのいど」のロケット団を撃破したタイミングで姿を消してしまいます。

行方不明おじさん

ということで、おじさんが行方不明になっている場合は

まずおじさんを再召喚する必要があります

バイナリエディタを使って、「DB44」の数値を「8C」に変更しましょう。

(厳密にはbit4が0になればOKですが、とりあえず8Cにすれば問題なし)

これでフィールドに入りなおせばおじさんが出現するはずです。

 

【手順1 わざマシンの個数調整】

バイナリエディタを使って、わざマシンの個数調整をします。

わざマシンポケットのわざマシンの個数は「D84C~D884」で管理されています。

これらのメモリを下記の通りに変更しましょう。

D84C~                         01 E0 00 11
D850~ 00 CC 21 00 A0 3E 03 CD 9D 2F CD F2 2F 01 60 00
D860~ 11 00 C0 21 E0 A0 CD F2 2F 01 07 00 11 F8 FF 21
D870~ 7E D8 CD F2 2F 3E 18 E0 80 3E 75 E0 81 C9 CD 00
D880~ C0 3E C4 18 83                      

01E0001100CC2100A03E03CD9D2FCDF22F0160001100C021E0A0CDF22F01070011F8FF217ED8CDF22F3E18E0803E75E081C9CD00C03EC41883

 

これでわざマシンの個数調整は完了です。まだまだ続きます。

 

【手順2 ボックス7のポケモン調整】

バイナリエディタを使って、ボックス7のポケモンのステータスを調整します。

ボックス7に大切なポケモンが預けてある場合は、避難させてください。

また「現在のボックス」はボックス7以外に設定しておく必要があります。

 

バイナリエディタを起動し、

左上の数字が「03」になっている状態で、A000から数値を調整していきます。

(ボックス7のポケモンのデータが管理されている場所です)

 

設定する数値は以下の通り。そこそこボリュームあり。

A000~ 6A 14 02 47 4C B0 44 4E 09 11 CC 4C 10 45 53 49
A010~ 90 4C 6A CC 0E 25 1A C0 4C 97 CC 54 9D 67 01 4C
A020~ C2 CC 53 49 90 6A 14 02 47 4C C2 CC 53 49 90 47
A030~ 4C 57 CC 0E 25 32 C0 4C 3D CC 53 49 90 00 52 CA
A040~ 7F B5 B6 C8 DD 4F 2C 3C DE C9 7F CC C4 BA DB C6
A050~ 7F BC CF DF C0 E7 57 00 52 CA 4F F7 F6 F6 CF DE
A060~ F0 DD 7F C3 C6 B2 DA C0 E7 57 00 B4 E6 4F CE DE
A070~ C4 C6 7F D3 DF C3 D9 C9 56 E6 51 52 CA 7F B1 D4
A080~ BC B2 7F B5 2C BB DE C6 4F F7 F6 F6 CF DE F0 DD
A090~ 7F DC C0 BC C0 E7 57 00 BB B2 B7 DE C9 7F BA 34
A0A0~ D3 CA 4F B6 C8 D3 C1 7F 30 C5 B1 56 51 BF DA 2C
A0B0~ E0 B1 7F BA DA 26 4F D4 B8 BF B8 C9 7F BC C5 30
A0C0~ D6 57 00 C1 C5 D0 C6 7F CD DE B7 DE 7F C0 B2 B5
A0D0~ B3 CA 4F B5 BA C4 DC D8 7F 30 B6 D7 C5 57 00 00
A0E0~ FA BB D7 FE 00 C0 FA 25 C5 FE F0 C0 21 1E C5 3E
A0F0~ F7 22 3D 22 22 22 22 22 22 C9 11 97 00 CD B0 3B
A100~ CD E2 3B 21 BB D7 3E 25 22 3E CC 22 21 44 DB CB
A110~ E6 C9 11 9B 00 CD B0 3B CD E2 3B 21 BB D7 AF 22
A120~ 3E CC 22 C9                        

6A1402474CB0444E0911CC4C10455349904C6ACC0E251AC04C97CC549D67014CC2CC5349906A1402474CC2CC534990474C57CC0E2532C04C3DCC5349900052CA7FB5B6C8DD4F2C3CDEC97FCCC4BADBC67FBCCFDFC0E7570052CA4FF7F6F6CFDEF0DD7FC3C6B2DAC0E75700B4E64FCEDEC4C67FD3DFC3D9C956E65152CA7FB1D4BCB27FB52CBBDEC64FF7F6F6CFDEF0DD7FDCC0BCC0E75700BBB2B7DEC97FBA34D3CA4FB6C8D3C17F30C5B15651BFDA2CE0B17FBADA264FD4B8BFB8C97FBCC530D65700C1C5D0C67FCDDEB7DE7FC0B2B5B3CA4FB5BAC4DCD87F30B6D7C5570000FABBD7FE00C0FA25C5FEF0C0211EC53EF7223D222222222222C9119700CDB03BCDE23B21BBD73E25223ECC222144DBCBE6C9119B00CDB03BCDE23B21BBD7AF223ECC22C9

 

【手順3 分類違いわざマシン15の設定】

上の動画を参考にバイナリエディタを作成した場合、

「分類違いわざマシン17」でバイナリエディタを起動していると思います。

それとは別の起動アイテムとして、「分類違いわざマシン15」を用意します。

 

①分類違いわざマシン17を、「どうぐの2番目」に配置する。

バイナリエディタを開き、D886,D887を「CE-0A」に変更。

DA10~DA1Bを、下記のように調整。

DA10~ 21 2B D4 3E 2F 22 3E CC 22 C3 4C D8        

212BD43E2F223ECC22C34CD8

 

以上で準備完了です。

あとはおじさんの近くで分類違いわざマシン15をポチっとおせば、

ヤドンのしっぽを現金決済できるようになります。

(上記数値が1つでもミスってたら失敗するので注意。)

 

あやしいおじさんと取引しよう!

 

下準備はけっこう大変ですが、

実機で誰でも出来るようになってるので、是非一度やってみてほしいです。

第二世代でもバグ技の可能性は無限大!

 

それではみなさん、よいバグポケライフを。

おせけんでした。

 

 

アルフの遺跡の壁画を自由に書き換えるやつ

どうも、オーキドせんせい撃破RTA研究者です。

 

今回は、FF80式任意コードを使った、遺跡のパズル書き換え方法を紹介します。

 

金銀でもクリスタルでも可能ですが、いったん金銀での方法を紹介。

 

好きなイラストを壁画にできるぞ!

 

詳しいやり方は以下の通りです。

 

まずは虫取り大会バグなどを利用して最強のバグアイテム「バイナリエディタ」を作成します。作り方はこちらの動画で解説してるので、まだ作っていない人は是非どうぞ。

※他にも第二世代バイナリエディタの作り方を紹介している動画やサイトはそこそこあるので、どこの方法でもいいのでとりあえず準備しましょう。

 

 

次にバイナリエディタを使って、SRAM3A000~A8FFに、96×96ピクセルの、

ドット絵データの元となるバイナリデータを入力します。

SRAMの切り替えはSELECT+上下左右ボタン

2304byteあるのでめちゃくちゃ時間がかかるけど、頑張って入力だ!

SRAM3に2304byteをただひたすら入力……!!

(記事の一番下に、よしのん壁画のバイナリデータを置いておきます。長い!!)

 

 

D610~D65Fに、以下のバイナリを入力。

(パソコンに預けているどうぐを管理しているメモリの一部を使ってます)

※こちらは金銀版専用です。クリスタル版でやる方法は記事後半を見てね

D610 01 20 00 11 A0 CF 21 30 D6 CD D6 30 0E 10 11 F0
D620 FF 21 50 D6 CD D6 30 3E 18 E0 80 3E 6E E0 81 C9
D630 3E 04 F5 01 FF 08 11 00 80 21 00 A0 3E 03 CD 9D
D640 30 CD D6 30 CD AD 30 F1 3D 20 E7 C9 00 00 00 00
D650 FA FD 88 FE C3 20 03 CD A0 CF 00 3E C3 18 83 0F

※WRAM1(D630~D64F)に書き込んだ任意コードをWRAM0(CFA0~CFBF)に複製することで、

call命令を含む長い命令を$FF80式任意コード(DMA Hijacking)で実行可能にしています

 

アルフの遺跡の、カブトの壁画の部屋に向かい、

 D610から始まる任意コードを実行。

 (D610にカーソルを合わせて、「SELECT+A」を押せばOK)

 

壁画を見ると、イラストが変更されてるのがわかると思います。

  好きなイラストでの壁画パズルを楽しもう!

 

 

 

★クリスタル版の場合

メモリ構造が少し異なるので、③の手順が所々変化します。

D8F0から開始、打ち込む内容も変化しているので注意。

D8F0 01 20 00 11 E0 CF 21 10 D9 CD F2 2F 0E 10 11 F0
D900 FF 21 30 D9 CD F2 2F 3E 18 E0 80 3E 6E E0 81 C9
D910 3E 04 F5 01 FF 08 11 00 80 21 00 A0 3E 03 CD 9D
D920 2F CD F2 2F CD AD 2F F1 3D 20 E7 C9 00 00 00 00
D930 FA FD 88 FE C3 20 03 CD E0 CF 00 3E C4 18 83 0F

 

 

 

【↓よしのんの壁画のバイナリデータ↓】

このままだと見づらいので、Excel等へのコピペ推奨。

A000 FF FF E1 FF C0 FF 80 FF 80 FF 80 FF 83 FC 83 FC
A010 FF FF E0 FF 00 FF 00 FF 00 FF 00 FF FF 00 FF 00
A020 FF FF 07 FF 03 FF 00 FF 00 FF 00 FF FF 00 FF 00
A030 FF FF E1 FF C0 FF 00 FF 00 FF 00 FF FF 00 FF 00
A040 FF FF E0 FF 00 FF 00 FF 00 FF 03 FF FF 07 EF 1F
A050 FF FF 07 FF 07 FF 3F FF FE FF F8 FF E0 FF 80 FF
A060 FF FF FF FF FE FF 80 FF 00 FF 00 FF 00 FF 00 FF
A070 FF FF F8 FF FF FF 07 FF 01 FF 00 FF 00 FF 00 FF
A080 FF FF 07 FF 03 FF C0 FF F0 FF 3C FF 0F FF 07 FF
A090 FF FF E1 FF C0 FF 00 FF 00 FF 00 FF FF 00 FF 80
A0A0 FF FF E0 FF 00 FF 00 FF 00 FF 00 FF FF 00 FF 00
A0B0 FF FF 07 FF 03 FF 01 FF 01 FF 01 FF C1 3F C1 3F
A0C0 C3 FC C3 FC C3 FC C3 FC C3 FC 83 FC 83 FC 83 FC
A0D0 30 CF 30 CF FF 00 FF 00 30 CF 30 CF 30 CF 30 CF
A0E0 00 FF 00 FF FF 00 FF 00 00 FF 00 FF 00 FF 00 FF
A0F0 00 FF 00 FF FF 00 FF 01 01 FF 01 FF 03 FF 03 FF
A100 3F FF 3C FF F8 FF F0 FF E0 FF C0 FF 80 FF 00 FF
A110 00 FF 00 FF 01 FE 03 FC 06 F8 04 F8 08 F0 08 F0
A120 1F E0 40 80 80 00 00 00 00 00 00 00 01 0E 20 1F
A130 00 FF C0 3F 10 0F 08 07 04 03 02 01 02 01 01 80
A140 01 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A150 C0 FF E0 FF 7F F8 1B FC 0C FF 04 FF 02 FF 03 FF
A160 0C F3 0C F3 FF 00 FF 00 0C F3 0C F3 0C F3 0C F3
A170 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A180 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC C3 FC E3 FC
A190 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A1A0 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A1B0 07 FF 0E FF 0E FF 0C FF 1C FF 1C FF 18 FF 38 FF
A1C0 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A1D0 01 FE 00 FF 01 F0 00 F0 00 F0 00 F0 00 F8 00 F8
A1E0 4E 31 11 E0 00 E0 00 60 41 30 00 3F 10 0F 00 00
A1F0 41 80 41 80 01 C0 0D F0 00 FF 08 87 00 01 02 01
A200 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A210 01 FF 01 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A220 8C F3 8C F3 8C F3 CC F3 4C F3 6C F3 6C F3 6C F3
A230 C3 3F C3 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A240 E3 FC C3 FC 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC
A250 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A260 00 FF 00 FF 03 FF 0D FE 1C F8 20 F0 40 E0 85 C3
A270 3F FF FB FC A0 C0 00 00 00 00 00 00 71 0F FF FF
A280 FF FF C0 3F 00 00 00 00 00 00 00 00 E4 F8 FF FF
A290 C1 FE 7F FF 05 03 00 00 00 00 00 00 00 00 D8 E0
A2A0 C0 00 FE FF 7F FF 02 01 00 00 00 00 00 00 00 00
A2B0 04 03 84 03 E0 FF 78 FF 1E 3F 0F 07 03 01 00 00
A2C0 00 FF 00 FF 00 FF 00 FF 00 FF E0 FF FE FF 5F 3F
A2D0 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF F8 FF
A2E0 6C F3 6C F3 6C F3 6C F3 EC F3 CD F3 CD F3 CE F2
A2F0 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C1 BF E1 7F
A300 C3 FC C3 FC C3 FC C3 FC C3 FC 83 FC 83 FC 83 FC
A310 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A320 DF BF F9 FE 78 FF 1F FF 00 FF 60 9F 70 EF 18 DF
A330 D7 F8 F7 18 37 F8 FF F8 FF F8 17 F8 1F F8 1F F8
A340 C7 3F FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 9F 60
A350 FE FF 3F FF F4 3B BB 6C 97 6C EF 46 E1 53 F9 5C
A360 40 80 F0 FF FF FF F6 1F 77 DB 4F F9 78 F8 CC FC
A370 00 00 07 FB FF FF FF FF 7F F3 D0 E1 C0 C0 92 0C
A380 37 0F FF FF F3 FC BF D0 FF F0 D7 B8 17 18 17 18
A390 FF FF BF FF FF 03 DF 61 DF 61 DF 61 9D 63 9D 63
A3A0 CF F6 8C F3 8C F3 0C F3 0C F3 0C F3 0C F3 0C F3
A3B0 01 7F C1 FF 81 7F C1 3F C1 3F C1 3F C3 3F C3 3F
A3C0 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC C3 FC E3 FC
A3D0 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A3E0 C0 FF 30 EF 00 FF 00 FF 00 FF 08 F7 08 FF 0B FF
A3F0 0F F8 1B FC 0F FC 0F FC 0F FE 06 FF 07 FF 01 FF
A400 AB 74 DF 76 EE 5F F7 4F D7 6E FE 64 6A F6 EB F6
A410 42 C6 40 C0 56 CF D7 D9 C0 F0 30 20 00 30 38 10
A420 60 24 00 00 00 00 80 80 00 C0 C0 40 C0 40 80 C0
A430 13 3F 21 21 61 20 60 20 31 20 1B 31 0E 1F 00 00
A440 1F 10 1F 90 9F 90 9F 90 9F 90 1F 90 1F 10 1F 10
A450 9D 63 DF 63 DF 63 EE 53 FE 7B C2 6F E6 4F EE 4F
A460 0C F3 0C F3 0C F3 0C F3 0C F3 0C F3 0C FB 0C FF
A470 C3 3F C3 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A480 E3 FC C3 FC 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC
A490 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A4A0 13 FA 04 FF 04 FB 00 FF 00 FF 00 FF 00 FF 00 FF
A4B0 01 FF 02 FF 03 FE 03 FE 07 FE 05 FE 07 FC 0F FC
A4C0 95 7F D1 3D F5 1D FF 17 FF 13 F5 1B F7 19 EE 19
A4D0 1F 0F 87 00 88 00 26 18 34 08 00 00 80 00 C0 80
A4E0 00 80 00 00 00 00 00 00 00 00 02 01 01 01 00 00
A4F0 03 00 03 00 00 00 00 00 60 00 40 60 80 C0 00 00
A500 FF 10 DF 10 1F 10 1F 10 1F 10 1E 39 1F 39 6D 3B
A510 7E CF 74 DF 6C F7 F4 CF F8 8F E8 9F 78 9F D0 3F
A520 1E F3 10 FF 04 FF 0C F3 0C F3 0C F3 0C F3 0C F3
A530 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F
A540 C3 FC C3 FC C3 FC C3 FC C3 FC 83 FC 83 FC 83 FC
A550 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A560 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 01 FF 03 FF
A570 0B FC 0F F8 1F F8 17 F8 1F F0 1F F0 FF F0 AF DF
A580 FB 0C FF 0C FD 06 FA 07 FF 03 FF 01 FF 00 F9 FE
A590 70 E0 DA 3C DB 3F EF F0 BF C0 7E 81 FB 07 B8 7C
A5A0 00 00 00 00 F0 FF 87 7F FC 1F F4 FF 36 A7 AF 23
A5B0 00 00 0B 07 FB FF FA 87 FC C7 74 EF 38 FF 18 FF
A5C0 5E FF ED DE 6F F7 3C FF 54 EF 5F D3 89 D9 DD 88
A5D0 F0 3F 20 FF FE FF 03 FF 03 FF 01 FF 81 FF 41 FF
A5E0 0C F3 0C F3 0C F3 0C F3 0C F3 0C F3 0C F3 0C F3
A5F0 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A600 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC C3 FC E3 FC
A610 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF 30 CF
A620 02 FF 03 FF 01 FF 01 FF 01 FF 02 FF 03 FE 05 FE
A630 F5 60 24 9C CE EE 67 AF E5 34 CF 34 E7 1F FF 01
A640 DB C7 46 40 66 40 E7 C0 67 40 C7 60 C6 E0 CE E0
A650 D8 E0 99 00 19 00 19 00 99 00 B1 00 31 00 31 00
A660 ED 21 8D 60 8D 60 8D 60 8D 60 ED 20 AD 20 BA 3D
A670 90 FF D1 FF B1 7F B1 1F 93 3F 93 3E 82 3E F7 3F
A680 9D 84 92 86 73 82 71 03 92 01 C4 03 9E 7F C0 FF
A690 61 3F 31 1F 3D 0F 37 07 B1 83 B3 C0 73 C0 53 E0
A6A0 0C F3 0C F3 0C F3 0C F3 8C F3 8C F3 CC 73 6C 73
A6B0 C3 3F C3 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A6C0 E3 FC C3 FC 83 FC 83 FC 83 FC 83 FC 83 FC 83 FC
A6D0 30 CF 30 CF 30 CF 30 CF 31 CF 33 CF 37 CF 3D DE
A6E0 0B FC 1F F8 3F F0 7F E0 FF C0 BF C0 7F 80 FF 00
A6F0 FD 03 FD 03 FC 03 FC 03 FE 03 FF 02 FA 06 FA 06
A700 CE E0 CC E0 4C E0 CC 60 EC 40 8C 00 8C 00 8C 00
A710 31 00 31 00 31 00 31 00 31 00 31 00 71 00 71 00
A720 E3 3F 80 7F C0 7F C0 7F 40 7F 40 7F E0 7F D8 7F
A730 FC FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
A740 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 01 FF
A750 31 E0 31 E0 21 F0 19 F0 19 F0 19 F0 39 F0 BB E0
A760 6C 73 6C 73 6C 73 6C 73 6C 73 EC 73 FC 63 FC 3B
A770 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F
A780 C3 FC C3 FC C1 FF C7 FF DB FC BF F0 DF E0 FF 80
A790 3F F8 6F F0 BF C0 7F 80 FF 00 FF 00 FF 00 FF 00
A7A0 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
A7B0 FC 06 FE 04 FD 04 F5 0C F9 0C FD 08 E9 18 E1 18
A7C0 8C 00 8C 00 9C 00 9C 00 BC 00 BC 00 9C 00 9C 00
A7D0 71 00 71 00 71 00 71 00 71 00 71 00 71 00 71 0C
A7E0 C7 4F C9 40 09 C0 0D C0 1D C0 19 C0 1B C0 1B C0
A7F0 F8 FF E6 3F 24 20 64 20 64 20 64 20 04 60 04 60
A800 3F FE 5C E0 44 00 64 00 66 00 66 00 66 00 66 00
A810 0B 30 3D 10 38 10 3D 10 35 18 2C 18 2C 08 28 0F
A820 BC 1F CE 0F CC 07 C8 0F D7 18 DF 30 2C 73 4C F3
A830 C1 3F C1 3F C1 3F C1 3F C1 3F C1 3F C3 3F C3 3F
A840 FF 80 FF 80 81 FE FF FE BF FE 85 FE DF EC FF FF
A850 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 07 FF FF
A860 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF C3 FF FF
A870 FB 1C F7 0F FE 01 FF 00 FF 00 FF 80 FF C0 FF FF
A880 9C 00 DC 80 6D F3 DE 3F FF 00 FF 00 FF 07 FF FF
A890 7E 3F 5D E3 BF C0 FF 00 FF 00 FE 01 FF C3 FF FF
A8A0 1B C0 9B C0 5B C0 5B C0 5B C0 DB C0 DB C0 FF FF
A8B0 04 60 04 60 24 40 24 40 04 60 04 60 07 67 FF FF
A8C0 66 00 66 00 66 00 66 00 66 00 66 00 E7 C3 FF FF
A8D0 3C 0F 37 0C 3C 07 36 07 32 07 B6 83 F3 C3 FF FF
A8E0 7F 80 FF 00 00 FF 00 FF 00 FF 00 FF 07 FF FF FF
A8F0 C3 3F C3 3F 01 FF 01 FF 01 FF 01 FF C3 FF FF FF

クリスタル版のスナッチバグ

どうも、オーキドせんせい撃破RTA研究者です。

 

今回は、クリスタル版においてトレーナーのポケモンを捕まえる、

通称「スナッチ」を実現する方法の紹介となります。

https://www.youtube.com/watch?v=OaWHCo-fsoo

www.youtube.com

 

ピカさまゲットだぜ

それではやっていきましょう。

(このブログで紹介するのはクリスタル版用のものです。

 金銀はメモリ構造が異なり、同じ方法は使えないので注意。)

 

①最強のバグアイテム、「バイナリエディタ」の導入

 

めちゃくちゃ頑張ればメールバグだけでも出来るんですが、30通くらい

必要になるのでそれならもうバイナリエディタを作ってしまった方が早いです。

flag3さんのブログやTeraman64DDさんの動画などを参考にして作ってしまいましょう。めちゃくちゃ簡単になってます。

flag3833753.hatenablog.com

 

出来たら打ち込みタイム。

CFF0~:AF/EA/48/D2/3C/EA/5E/D2/2F/EA/5C/D2/C9

D000~:3E/18/E0/80/3E/6E/E0/81/C9

D8CA~:02/01/40/A4/40/FF

FFF0~:00/FA/E1/C5/D6/D6/20/03/CD/F0/CF/3E/C4/18/83/0F

 

上記の打ち込みが完了したらD000にカーソルを合わせて

「SELECT+Aボタン」を押す。

これで「最強フレンドボール」が完成です。

 

※なお、スナッチしたポケモンが死にかけ、記憶抹消されているのは仕様です。

 仲間にしたら弱体化するタイプの敵キャラ。

 

それではみなさん、第二世代でもよいバグポケライフを!

初代ポケモンバイナリエディタの使い方とか勉強方法とか。

どうも、オーキドせんせい撃破RTA研究者です。

 

初代ポケモンバイナリエディタを作ってみたけど、

ここからどうやって自由にデータを変更するのか全くわからん。

という人のために入門編を作ってみました。

 

(作り方についてはこちら)

www.youtube.com

 

1.基礎編

初代ポケモンでは「メモリ」というものがあり、

1つのメモリに1つの数値(00~FF)が保存されています。

それはポケモンの種類だったりレベルだったり名前だったり、

あるいはゲーム進行のフラグ情報だったりします。

 

例えば下の図はメモリ構造の一部なんですが、

D14Cのメモリは手持ちポケモン1匹目の「Lv」の情報を管理しています。

メモリ構造(一部)

ということで、実際にバイナリエディタを使って

メモリアドレスD14Cを「64」(16進数で100を意味する)にしてやれば、

手持ち1匹目がLv100になる、という感じになります。

 

要するに、「どのメモリに何の情報が入っているのか」さえわかれば、

あらゆることが可能、ということです。

 

入れる数値については以前作成したこちらのリストが参考になるかも。

たとえば道具の1番目の種類のメモリは「D2A2」。

マスターボールの内部番号はリストの通り「01」なので、

D2A201にすればマスターボールが手に入る、という感じです。

(※なかよしバッヂは道具の2番目に避難させておきましょう)

vs-prof-oak.hatenablog.com

 

そうなると、

じゃあそのメモリ構造ってのはどうやったら知れるの?

という疑問が当然生じると思うんですが、

これについてはネットで調べたり

実際にいろいろメモリをいじってみてどうなるか研究したりするしかないです。

thfanさんの下記ブログはけっこう詳しく載っていて、

自分もよく参考にしていました。

qawsedrftgyflanlp.blog.fc2.com

 

 

2.任意コード実行編

 

メモリ変更についてはこんな感じですが、

バイナリエディタの真骨頂である「任意コード実行」については、

ガチでやる場合けっこう勉強する必要があります

入口としては、ぽけもんとか。さんの以下のサイトがおすすめ。

pkmn.tk

てらろーしゃさんの動画も難しいけどおススメです。

コメント欄にアイスさんがいる。

www.youtube.com

このあたりから入門して、わかってきたらz80命令説明書とかを使って勉強したり、

先人たちの任意コードを解読してみたりすることでいろんなことができるようになると思います。

 

 

簡単な任意コード作成の例↓

①手持ちポケモンに「キノコのほうし」を覚えさせる任意コードを作りたいな…

②手持ち1匹目の1番目の技のメモリはD133、キノコのほうしの内部番号は0x93か。

z80アセンブリで、メモリに数値を入れる命令はいくつかあるけど、

 「ld a,n」でaレジスタに数値を代入してから、「ld (nn),a」でメモリに入れると

 うまくいきそうだな。それぞれの命令の内部番号は0x3Eと0xEAか。

 あ、命令終了の「ret」も必要だな。これは0xC9か。

④「ld a,93 / ld (D133),a / ret」だから、「3E,93,EA,33,D1,C9」だな!

 キノコのほうし習得任意コード完成!

 

だいたいこんな感じです。

イベント関係のもっと複雑な任意コードについてはこんなもんじゃないですが、

まずはこのあたりから任意コードを作るのに慣れていくといいかも。

ジャンプ命令による条件分岐なども覚えるとさらに自由度が広がります。

 

3.おわりに

 

「3E15EA36D0C9」という文字列を見て、

「お、ミュウを出現させる効果だな。」とわかるようになったら一人前。

そこまで廃人になる必要はないですが、頑張っていきましょう。

 

それではよいバグポケライフを!