Import a graphic you made w/Game Boy Camera on to Pokémon Yellow (cart swap ACE) (face reveal lol)  @ChickasaurusGL
Import a graphic you made w/Game Boy Camera on to Pokémon Yellow (cart swap ACE) (face reveal lol)  @ChickasaurusGL
Evie (ChickasaurusGL) 🌺 | Import a graphic you made w/Game Boy Camera on to Pokémon Yellow (cart swap ACE) (face reveal lol) @ChickasaurusGL | Uploaded April 2024 | Updated October 2024, 15 hours ago.
Note: This only works on a Game Boy Color for the cart-swap exploit (pulling out and replacing the cart while the power is on). But you might have to try multiple times to avoid the "Game Boy Color" boot screen loading after you pull out the cart or put the new one in (if so, try again from the start).

It won't work on a Game Boy Advance. I haven't tested it on SNES/Super Game Boy. A larger photo should be possible. The reason why the photo is 40x40 is because I was originally intending to implement it as a glitch Pokémon sprite, but unfortunately the sprite compression routine didn't seem to be in the ROM itself; so I'd have to write my own compressor in Z80 (see https://glitchcity.wiki/wiki/Sprite_compression_(Generation_I) and there are tools to do this; but not in GBZ80 or locally within the ROMs themselves). Instead then, I decided to dump raw graphics data; which doesn't need to be compressed.

More information: https://glitchcity.wiki/wiki/Cart-swap_arbitrary_code_execution

Basic procedure:

1. Install a graphics loader (assign tilemap) and graphics from 2: A910, AA10, AB10, AC10 (stored boxes in Pokémon Yellow, and the specific part of photo 7 (bottom-left corner) in Game Boy Camera). You might want to have it assigned to a different ACE item.
2. The other ACE program is a variation of the cart swap routine, which disables interrupts and loops in RAM; expecting you to swap the cart. In this case, we jump to 01AC on Game Boy Camera. This bypasses some of the RAM clearing and initialisation of the OAM DMA routine. Instead we write our own OAM DMA routine; jp DA9E; which contains a portion of our code. In it, we set 09 to DA16 and inject jp DAB0 into D0C9. It controls the selection option on the shoot/view/play screen after you advance the title screen. Invalid value 09 causes arbitrary code execution at F0C9 (Echo RAM equivalent for D0C9); so we need to press A on the title screen to enable ACE again.

At DAB1 is code to open the SRAM to bank 02 and copy the graphics data (a portion of photo 7; regions 2:A910, 2:AA10, 3:AB10, 4:AC10) from Game Boy Camera into RAM. The cart swap routine is ran a second time, so we have enough time to swap back to Pokémon Yellow. After Pokémon Yellow is loaded; RAM is copied back into those same addresses in SRAM (but for Pokémon Yellow instead). This portion SRAM bank 2 doesn't seem to care about the checksum; so we don't have to fix it. We jump to 0100 to restart Pokémon Yellow.

3. We run our graphics loader again. The graphics are now based on what we injected from the bottom-left corner of photo 7 in Game Boy Camera.

For the whiteboard drawing I thought since the screen size is 160x144 pixels; divide them by 56 (a 56x56 pixel sprite) to get ~2.86 and ~2.57. The board was ~32.4 x 22.4cm so divide by ~2.9 to get ~11.2cm and 22.4/2.6 to get ~8.6cm. It wasn't actually that simple; but it did work out nicely for a 40x40 sprite on the bottom-left portion of the screen. You can either take a photo of what you desire to import, or modify an existing photo 7 using stamps.
Import a graphic you made w/Game Boy Camera on to Pokémon Yellow (cart swap ACE) (face reveal lol)Walking Pikachus water tile corruption (Pokémon Yellow JP)Encounter Pokémon in Map 254 (0xFE) (via arbitrary (custom) map header glitch) (Pokémon Red/Blue)Sound bank arbitrary code execution (0A:58EAs stack corruption) - Save file modification (Red/Blue)Using submerge glitch to encounter Mew in water-grass (no ACE challenge) (Red/Green) (ポケモン バグ)Another means of bootstrapping 4F arbitrary code execution w/Level 112 MissingNo. (Pokémon Yellow)Randomly select your moves in battle save file (Pokémon Yellow)Another take on Rival LG with hex:7C item (0x50 sub-tile and previous encounter not needed) (Yellow)Replacing Xs (エックス) Nintendo presents screen w/Pokémon Yellow cart swap arbitrary code executionDifferent field move/summary/hatch sprites on Decamarks (Ruby/Sapphire)Arbitrary code execution in Korean Pokémon Gold/Silver (wrong pocket TM49)Trapping NPCs after dokokashira door glitch block corruption (Red/Green/Blue JP)

Import a graphic you made w/Game Boy Camera on to Pokémon Yellow (cart swap ACE) (face reveal lol) @ChickasaurusGL

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER