Certificate exit code bootstrap

This tutorial can be achieved on real hardware, or on mGBA emulator using an original (dumped) GBA bios. Other emulators might not be accurate enough.

The purpose of this tutorial is to create a special decamark that will allow us to skip most of the exit code part when writing ACE codes in the box names (consequently, more space will be available for the payload part).

Prerequisite

Let's go

The first step is to generate a pokemon of species 0xFF in the BOX 10 slot 19 and, in the same time, to modify the name of BOX 14 with something that would not be writable normally (more precisely, we will write the bytes corresponding to the command BX r0).

For that, just make sure the BOX 10 slot 19 is empty, write the following box names and trigger ACE:

Box  1: 4 C U n b F … o	[4CUnbF…o]
Box  2: _ _ _ 3 G ? n _	[   3G?n ]
Box  3: _ _ ‘ G w m _ _	[  ‘Gwm  ]
Box  4: _ ’ F w m _ _ _	[ ’Fwm   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ z P – n _ _	[  zP–n  ]
Box 12: _ p Q ? n _ _ _	[ pQ?n   ]
Box 13: 1 R ? n T _ ? n	[1R?nT ?n]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: 4 C U n b F … o	[4CUnbF…o]
Box  2: _ _ _ 3 G ? n _	[   3G?n ]
Box  3: _ _ ‘ G w m _ _	[  ‘Gwm  ]
Box  4: _ ’ F w m _ _ _	[ ’Fwm   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ o T – n _ _	[  oT–n  ]
Box 12: _ Y N ? n _ _ _	[ YN?n   ]
Box 13: F N R o n _ ? n	[FNRon ?n]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: 4 C U n b F … o	[4CUnbF…o]
Box  2: _ _ _ 3 G ? n _	[   3G?n ]
Box  3: _ _ ‘ G w m _ _	[  ‘Gwm  ]
Box  4: _ ’ F w m _ _ _	[ ’Fwm   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ l T – n _ _	[  lT–n  ]
Box 12: _ Y N ? n _ _ _	[ YN?n   ]
Box 13: F N R o j _ ? n	[FNRoj ?n]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: 4 C U n ä F … o	[4CUnäF…o]
Box  2: _ _ _ … H ? n _	[   …H?n ]
Box  3: _ _ ‘ G w m _ _	[  ‘Gwm  ]
Box  4: _ ’ F w m _ _ _	[ ’Fwm   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ m T – n _ _	[  mT–n  ]
Box 12: _ Y N ? n _ _ _	[ YN?n   ]
Box 13: F N R o n _ ? n	[FNRon ?n]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: 4 C U n b F … o	[4CUnbF…o]
Box  2: _ _ _ 3 G ? n _	[   3G?n ]
Box  3: _ _ ‘ G w m _ _	[  ‘Gwm  ]
Box  4: _ ’ F w m _ _ _	[ ’Fwm   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ m T – n _ _	[  mT–n  ]
Box 12: _ Y N ? n _ _ _	[ YN?n   ]
Box 13: F N R o b _ ? n	[FNRob ?n]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: 4 C U n ぜ U ッ o	[4CUnぜUッo]
Box  2: _ _ _ う F ザ n _	[   うFザn ]
Box  3: _ _ 「 G w m _ _	[  「Gwm  ]
Box  4: _ 」 F w m _ _ _	[ 」Fwm   ]
Box  5: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box  6: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box  7: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box  8: _ ぃ F E n _ _ _	[ ぃFEn   ]
Box  9: z ‥ l o z ♀ Q o	[z‥loz♀Qo]
Box 10: ♀ Q n _ ‥ ? q _	[♀Qn ‥?q ]
Box 11: _ _ z け ズ n _ _	[  zけズn  ]
Box 12: _ 0 け ぞ n _ _ _	[ 0けぞn   ]
Box 13: る し ぞ n f _ ぞ n	[るしぞnf ぞn]
Box 14: _ _ _ _ _ _ ‥ _	[      ‥ ]

Now, we will modify some data of our newly created decamark. For that, just write the following box names and trigger ACE (do not move the decamark nor rename BOX 14):

Box  1: 4 C U n . K l o	[4CUn.Klo]
Box  2: _ _ _ J I ? n _	[   JI?n ]
Box  3: _ _ k N ? n _ _	[  kN?n  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: F ‘ ! n r H … o	[F‘!nrH…o]
Box  6: _ _ _ f G ? n _	[   fG?n ]
Box  7: _ _ 0 M ? n _ _	[  0M?n  ]
Box  8: _ E P ? n _ _ _	[ EP?n   ]
Box  9: _ F ! q … ” ! n	[ F!q…”!n]
Box 10: _ _ _ z P – n _	[   zP–n ]
Box 11: _ _ p Q ? n _ _	[  pQ?n  ]
Box 12: _ 1 R ? n _ _ _	[ 1R?n   ]
Box 13: T _ ? n _ _ ! q	[T ?n  !q]
Box  1: 4 C U n . K l o	[4CUn.Klo]
Box  2: _ _ _ J I ? n _	[   JI?n ]
Box  3: _ _ k N ? n _ _	[  kN?n  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: F ‘ ! n r H … o	[F‘!nrH…o]
Box  6: _ _ _ f G ? n _	[   fG?n ]
Box  7: _ _ 0 M ? n _ _	[  0M?n  ]
Box  8: _ E P ? n _ _ _	[ EP?n   ]
Box  9: _ F ! q … » ! n	[ F!q…»!n]
Box 10: _ _ _ o T – n _	[   oT–n ]
Box 11: _ _ Y N ? n _ _	[  YN?n  ]
Box 12: _ F N R o _ _ _	[ FNRo   ]
Box 13: n _ ? n _ _ ! q	[n ?n  !q]
Box  1: 4 C U n . K l o	[4CUn.Klo]
Box  2: _ _ _ J I ? n _	[   JI?n ]
Box  3: _ _ k N ? n _ _	[  kN?n  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: F ‘ ! n r H … o	[F‘!nrH…o]
Box  6: _ _ _ f G ? n _	[   fG?n ]
Box  7: _ _ 0 M ? n _ _	[  0M?n  ]
Box  8: _ E P ? n _ _ _	[ EP?n   ]
Box  9: _ F ! q … ” ! n	[ F!q…”!n]
Box 10: _ _ _ l T – n _	[   lT–n ]
Box 11: _ _ Y N ? n _ _	[  YN?n  ]
Box 12: _ F N R o _ _ _	[ FNRo   ]
Box 13: j _ ? n _ _ ! q	[j ?n  !q]
Box  1: 4 C U n . K l o	[4CUn.Klo]
Box  2: _ _ _ J I ? n _	[   JI?n ]
Box  3: _ _ k N ? n _ _	[  kN?n  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: F ‘ ! n ü H … o	[F‘!nüH…o]
Box  6: _ _ _ b G ? n _	[   bG?n ]
Box  7: _ _ 0 M ? n _ _	[  0M?n  ]
Box  8: _ E P ? n _ _ _	[ EP?n   ]
Box  9: _ F ! q … “ ! n	[ F!q…“!n]
Box 10: _ _ _ m T – n _	[   mT–n ]
Box 11: _ _ Y N ? n _ _	[  YN?n  ]
Box 12: _ F N R o _ _ _	[ FNRo   ]
Box 13: n _ ? n _ _ ! q	[n ?n  !q]
Box  1: 4 C U n . K l o	[4CUn.Klo]
Box  2: _ _ _ J I ? n _	[   JI?n ]
Box  3: _ _ k N ? n _ _	[  kN?n  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: F ‘ ! n r H … o	[F‘!nrH…o]
Box  6: _ _ _ f G ? n _	[   fG?n ]
Box  7: _ _ 0 M ? n _ _	[  0M?n  ]
Box  8: _ E P ? n _ _ _	[ EP?n   ]
Box  9: _ F ! q … ” ! n	[ F!q…”!n]
Box 10: _ _ _ m T – n _	[   mT–n ]
Box 11: _ _ Y N ? n _ _	[  YN?n  ]
Box 12: _ F N R o _ _ _	[ FNRo   ]
Box 13: b _ ? n _ _ ! q	[b ?n  !q]
Box  1: 4 C U n ハ K l o	[4CUnハKlo]
Box  2: _ _ _ ま N ザ n _	[   まNザn ]
Box  3: _ _ う F ザ n _ _	[  うFザn  ]
Box  4: _ _ F ! q _ _ _	[  F!q   ]
Box  5: う ‥ ! n ぽ H ッ o	[う‥!nぽHッo]
Box  6: _ _ _ c L ぴ n _	[   cLぴn ]
Box  7: _ _ ぜ S ぴ n _ _	[  ぜSぴn  ]
Box  8: _ _ F ! q _ _ _	[  F!q   ]
Box  9: さ ‥ ! n z け ズ n	[さ‥!nzけズn]
Box 10: _ _ _ 0 け ぞ n _	[   0けぞn ]
Box 11: _ _ る し ぞ n _ _	[  るしぞn  ]
Box 12: _ f _ ぞ n _ _ _	[ f ぞn   ]
Box 13: _ _ ! q _ _ _ _	[  !q    ]

That's it. The decamark should now have the name Á q:n on european versions, and い␣ポqで on japanese. You should now move it somewhere in the ACE area (starting from the third row of BOX 12), after the Thumb->ARM bootstrap if you have one, but not in the last slot of BOX 14. You can put it in the first slot of BOX 14 for instance.

NOTE: Due to the way it was created, the decamark should not be moved using group selection or it will disappear.

You should not rename the BOX 14 (nor use a code that renames it), otherwise the exit code bootstrap will not work. Its name should be Π( in Japanese). If your BOX 14 gets renamed, don't worry, just execute the following ACE code to restore the good name (the exit code bootstrap must be present in BOX 14, otherwise the following code will crash):

Box  1: _ _ _ … _ _ _ _	[   …    ]
Box  2: _ _ _ _ _ _ … _	[      … ]
Box  3: _ _ _ _ _ … _ _	[     …  ]
Box  4: _ _ _ _ … _ _ _	[    …   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ F G E n _ _ _	[ FGEn   ]
Box  9: z … l o z ♀ Q o	[z…loz♀Qo]
Box 10: ♀ Q n _ … ? q _	[♀Qn …?q ]
Box 11: _ _ _ _ _ … _ _	[     …  ]
Box 12: _ _ _ _ … _ _ _	[    …   ]
Box 13: _ _ _ … _ _ _ _	[   …    ]
Box 14: _ _ _ _ _ _ … _	[      … ]
Box  1: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box  2: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box  3: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box  4: _ _ _ _ ‥ _ _ _	[    ‥   ]
Box  5: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box  6: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box  7: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box  8: _ ぃ F E n _ _ _	[ ぃFEn   ]
Box  9: z ‥ l o z ♀ Q o	[z‥loz♀Qo]
Box 10: ♀ Q n _ ‥ ? q _	[♀Qn ‥?q ]
Box 11: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box 12: _ _ _ _ ‥ _ _ _	[    ‥   ]
Box 13: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box 14: _ _ _ _ _ _ ‥ _	[      ‥ ]

Testing everything worked

If you want to test your exit code bootstrap setup, just execute the following ACE code:

Box  1: _ _ _ … _ _ _ _	[   …    ]
Box  2: _ _ _ _ _ _ … _	[      … ]
Box  3: _ _ _ _ _ … _ _	[     …  ]
Box  4: _ _ _ _ … _ _ _	[    …   ]
Box  5: _ _ _ … _ _ _ _	[   …    ]
Box  6: _ _ _ _ _ _ … _	[      … ]
Box  7: _ _ _ _ _ … _ _	[     …  ]
Box  8: _ _ _ _ … _ _ _	[    …   ]
Box  9: _ _ _ … _ _ _ _	[   …    ]
Box 10: _ _ _ _ _ _ … _	[      … ]
Box 11: _ _ _ _ _ … _ _	[     …  ]
Box 12: _ _ _ _ … _ _ _	[    …   ]
Box 13: _ _ _ … _ _ _ _	[   …    ]
Box  1: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box  2: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box  3: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box  4: _ _ _ _ ‥ _ _ _	[    ‥   ]
Box  5: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box  6: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box  7: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box  8: _ _ _ _ ‥ _ _ _	[    ‥   ]
Box  9: _ _ _ ‥ _ _ _ _	[   ‥    ]
Box 10: _ _ _ _ _ _ ‥ _	[      ‥ ]
Box 11: _ _ _ _ _ ‥ _ _	[     ‥  ]
Box 12: _ _ _ _ ‥ _ _ _	[    ‥   ]
Box 13: _ _ _ ‥ _ _ _ _	[   ‥    ]

It should open the Pokédex completion diploma.