Guides:SRAM Glitch ACE Setups (EN): Difference between revisions
Line 367:
85 22 36 50 C9</pre>
|}
===Installing a RAM writer===
A RAM writer is an installable program that allows you to view and change any value in memory using a graphical user interface. This allows you to easily change specific values, set up and run small payloads and verify specific values in memory.
{| class="wikitable"
|+ Codes to be used with [https://scotteh.me/ace/nick Scotteh's mail code tool]
|-
| <pre>3E 03 CD 7A D9 21 1E D3 36 59
01 C8 00 11 53 BA 21 BB D8 CD
B5 00 11 65 DA D5 0E 13 C3 B5
00 AF 3C E0 B6 E0 B7 21 00 DA
CD 74 C6 E5 11 F8 FF 19 54 5D
01 0C 00 CD DD C6 21 A9 C3 CD
65 C6 3E 7C 22 7A CD 65 C6 7B
CD 65 C6 3E E3 22 1A CD 65 C6
36 7C 09 13 7D FE 13 20 E5 26
00 74 21 50 C4 36 ED E1 18 C4
F5 CB 37 CD 6C C6 F1 E6 0F C6
F6 F6 80 22 C9 CD BE C6 CB 5F
20 39 CB 57 28 0A 0F 30 01 E9
F0 FE 83 E0 FE C9 0F 30 2A E5
CD DD C6 4E CD BE C6 0F 38 12
0F 30 01 4B 79 83 4F 21 50 C4
36 EC 23 CD 65 C6 18 E8 E1 71
E5 06 1C 21 CE 77 CD D6 35 E1
C9 0F 30 03 53 1E 00 19 C9 CD
31 38 F0 B5 76 11 00 00 F5 07
30 01 13 07 30 01 1B 07 30 03
11 F0 FF 07 30 02 1E 10 F1 C9
F0 FE E5 26 0A 74 26 40 77 E1
C9 21 43 0A 74 65 36 03 0E C8
11 20 C6 D5 21 53 BA C3 B5 00 </pre>
|}
====Using the full RAM writer====
Assuming the program was entered correctly, the game should open up one of the screens as seen in the below screenshots. The RAM writer will draw various values on the screen. The leftmost 4 columns describe the addresses that are currently in view. The rightmost two columns describe the values at each of these addresses. All values on screen are represented in hexadecimal format.
For example: DA01>05 means that the address $DA01 is currently holding the value of $05.
'''Make sure to save the game after you've confirmed that the RAM writer is fully functional.'''
The RAM writer can also be used during battle. Opening and closing the RAM writer in battle will pass your turn to the enemy and cause the battle to continue as usual.
Due to the location the RAM writer is buffered, upon closing the RAM writer in battle in Red/Blue, you will see a slight graphical corruption at the bottom of the screen that will immediately be overwritten by the battle text box. This corruption is purely cosmetic and temporary, meaning that it will not cause any harm to your game.
====Full Writer Controls====
The RAM writer uses two modes of operation. In Read mode you are able to navigate memory and view the values at specific addresses. in Write mode you'll lock in a single address and manipulate the value at that address. By default, the RAM writer will open in Read mode.
{| class="wikitable"
|[[file:Full RB DA96 Read mode.png|288px]]||[[file:Full_RB_DA96_Write_mode.png|288px]]
|-
|RAM writer in Read mode ||RAM writer in Write mode.
|}
=====Read mode controls=====
<pre>
up: address -1
down: address +1
left: address -10
right: address +10
B + up: address -1
B + down: address +1
B + left: address -10
B + right: address +10
start: exit program
A: toggle write mode
select + up: sram bank -1
select + down: sram bank +1
select + left: sram bank -10
select + right: sram bank +10
select + A: start executing code from current address onwards (use with caution!)
</pre>
=====Write mode controls=====
<pre>
up: value -1
down: value +1
left: value -10
right: value +10
B: set current value to 0
A: exit write mode and load final value into the address
</pre>
|
Revision as of 16:52, 30 December 2023
This page serves as a repository for methods to quickly set up advanced ACE setups, starting from SRAM glitch. These methods can be used for the French, German, Italian and Spanish releases of Red & Blue.
The methods described here were heavily inspired by previous SRAM glitch setups developed by Evie (Chickasaurus GL), as well existing setups intended to be used for the Japanese releases. (TODO: add links later)
Please make sure to fully read every step of the guide before executing them.
If you encounter any issues when going through this guide or would like to provide feedback, please contact TimoVM on the Glitch City Research Institute Discord.
(TODO: add intro and explanation)
Step 1: Starting a new game and setting up SRAM glitch
- Clear all saved data by pressing UP + SELECT + B on the title screen and confirming that you want to erase all saved data. (This needs to be done even if no save data is present).
- Start up the game and go through the intro. Name your character any name you want, name the rival "*******" (seven multiplication symbols).
- Open the start menu, and select "Save".
- Select "Yes" in the "Yes/No" dialog box, but at a very precise moment, power off or reset the console.
- Soft resetting (holding Start+Select+A+B) will not work, as the game prevents soft resets while it is saving.
- The timing to power off or reset is after the "Yes/No" dialog box has disappeared, but before the text changes to "Now saving..." (Red/Blue) or "Saving..." (Yellow).
- The time window between those two visual cues is around 20 frames (depending somewhat on the version and the circumstances), but the window to successfully perform this glitch is only 4 frames.
- Reload the game. If you can continue the game and can open the pokémon menu, you have successfully set up SRAM glitch and can continue with the guide. Otherwise, repeat the process from the start.
A quick note on the effects of SRAM glitch
Thanks to clearing out the previous save using UP + SELECT + B, which fills saved data with $FF values, we will reload with a party consisting of 255 ($FF) pokémon. There are, however, quite a number of side effects due to this:
- Having 255 party pokémon makes us unable to enter battle without heavy side effects. Due to this, we will be avoiding battle completely. - Thanks to having 255 party pokémon, we are able to swap pokémon beyond the 6th party slot. - Every few steps, the game will act as if at least one party pokémon is poisoned. This effect can be freely ignored.
Throughout the guide, codes are provided that resolve these side effects and allow you to resume normal game progression.
Step 2: Reaching Celadon City and setting up Fly
- Go downstairs and exit your house to Pallet Town. This registers Pallet Town as a Fly location, preventing a possible crash at a later point in the guide.
- Go back inside your house, swap the 2nd party pokémon with the 10th pokémon. This sets the amount of pokémon caught in the pokédex to 152, as well as setting the amount of items in the bag to 255.
- Scroll down to the 36th item slot. This will be an item with quantity x0. Toss a total of 250 items from it for a final quantity of 6. When tossing, you can press down to underflow the amount of items to be tossed from 0 to 255, then press down 5 more times.
- Exit your house. Thanks to changing the item quantity, you will exit to Celadon City.
- Walk to the spot indicated by the screenshot. At this spot, the item in the 35th item slot will have turned into a Potion x0. Using Select, swap this potion to the 29th item slot. This will give you the Thunderbadge and the Soulbadge, allowing you to use both Surf and Fly.
- Go to the 7th item slot. This will also be an item with quantity x0. Toss a total of 237 items from it for a final quantity of 19. This will alter party pokemon #11's data and allow it to use Fly.
- Finally, open the party menu, select the 11th party pokémon and have it use fly. Fly directly to Celadon City.
- (Optional) Only if you're playing on the virtual console releases, it is advised to enter the pokémon center and change the current active box any box other than box #2.
It is now safe to save the game.
Step 3: Assembling an item code in Celadon City
Head to Celadon city and head to the following spot. Make sure to bring a pokémon with Fly/Teleport.
While standing on this spot, open your item bag and keep scrolling down until you find a Nugget x0 item stack, located at item slot #35. Around item slots #22 through #27 you'll likely encounter glitch items with garbled text. You can scroll past these items by pressing B occasionally while tapping DOWN. Do not select any of these items with the A button, otherwise your game will likely crash.
By walking left or right, you can increment or decrement the item ID in slot #35. By walking up and down we can alternate between an item quantity of x0 and x1. We can safely swap the contents of item slot #35 with other item slots, as long as we use Fly/Teleport afterwards to restore the map back to normal. We can use this to collect all the items we need for the item code. slot #32 will always contain a bicycle, you can safely use this to speed up the process.
Because the rival was named "*******", the contents of slot #23 through #26 have been set to stacks of TM44s. Standard text characters would result in unterminated name items within these slots, making it more inconvenient to swap items through this area.
For every item in the following table, head to the Nugget x0 spot, follow the instructions to obtain an item stack, then Fly back to Celadon and head back to the same spot to obtain the next item stack.
During the entire process, make sure to not swap two item stacks that have the same item. This will cause both item stacks to merge, resulting in glitches as side effects. When this happens, you can reset the game to restore the game back to normal.
Item ID | Item quantity | How to acquire |
---|---|---|
Max Potion | x42 | From the Nugget spot, walk 31 steps to the left to get Max Potion x0. Toss 214 from the stack, then swap with an item from your bag. |
TM21 | x213 | At the Nugget spot, swap the Nugget with the TM23 x64 stack 4 slots below, then toss 63 TM23s. Walk 2 steps down to get TM21 x0. Toss 43 from the stack, then swap with an item from your bag. |
Thunderstone | x06 | From the Nugget spot, walk 16 steps to the left to get Thunderstone x0. Toss 250 from the stack, then swap with an item from your bag. |
TM22 | x42 | At the Nugget spot, swap the Nugget with the TM23 x64 stack 4 slots below, then toss 63 TM23s. Walk 1 steps left and 1 step down to get TM22 x0. Toss 214 from the stack, then swap with an item from your bag. |
Great Ball | x135 | From the Nugget spot, walk 35 steps to the left, 4 steps down and 11 steps left to get Great Ball x0. Toss 121 from the stack, then swap with an item from your bag. |
Antidote | x48 | From the Nugget spot, walk 35 steps to the left, 4 steps down and 4 steps left to get Poké Ball x0. Toss 208 from the stack, then swap with an item from your bag. |
Poké Ball | x134 | From the Nugget spot, walk 35 steps to the left, 4 steps down and 10 steps left to get Poké Ball x0. Toss 122 from the stack, then swap with an item from your bag. |
Hyper Potion | x44 | From the Nugget spot, walk 31 steps to the left to get Hyper Potion x0. Toss 212 from the stack, then swap with an item from your bag. |
Super Potion | x32 | From the Nugget spot, walk 30 steps to the left to get Super Potion x0. Toss 224 from the stack, then swap with an item from your bag. |
TM44 | x201 | At the Nugget spot, swap the Nugget with the TM23 x64 stack 4 slots below, then toss 63 TM23s. Every step to the right will increment the TM number by 1. Keep walking rightward until you get TM44 x0. Toss 55 from the stack, then swap with an item from your bag. |
Rare Candy | 243 | From the Nugget spot, walk 9 steps to the left to get Rare Candy x0. Toss 13 from the stack, then swap with an item from your bag. |
Assemble the items you acquired according to the following list.:
Item slot | Item ID | Item Quantity |
---|---|---|
Slot #6 | Max Potion | x42 |
Slot #7 | TM21 | x213 |
Slot #8 | Thunderstone | x06 |
Slot #9 | TM22 | x42 |
Slot #10 | Great Ball | x135 |
Slot #11 | Antidote | x48 |
Slot #12 | Poké Ball | x134 |
Slot #13 | Hyper Potion | x44 |
Slot #14 | Super Potion | x32 |
Slot #15 | TM44 | x201 |
Slot #16 | Rare Candy | x243 |
After this item code, head to the room where you can pick up the gift Eevee. DO NOT PICK UP THIS EEVEE YET. It is now safe to save.
Step 4: Setting up an initial ACE environment using map script ACE
Now that we have an item code ready, we'll be using it to set up an ACE environment. The item code we just made looks at the nicknames of the pokémon in the currently stored box, then uses pairs of text characters to write a new program. After it finishes, it immediately jumps to execute the newly written program.
Having a party of 255 pokémon makes it impractical to safely enter battle. To circumvent this, we'll be picking up multiple Eevees, nicknaming them, then storing them in the current active box.
We'll be executing ACE by overwriting the contents of item slot #41. This item slot contains the map script pointer. By overwriting it with a pointer aimed for the 6th item slot, the item code we made will be executed on every individual frame the start menu isn't open.
We will be using this in three stages:
- First we will alter a value in memory so that we can continuously keep picking up Eevees while we remain on the same map.
- Next we will give ourselves a glitch item that, when used, will execute ACE starting from the third item slot. This allows us to execute ACE outside of the limits of Map Script ACE.
- Finally we will set up a short program that uses the nickname screen to quickly and easily write programs of arbitrary size, effectively giving us a flexible ACE environment.
It is recommended to not save the game until the Nickname Writer program is installed.
Setting up Infinite Eevee mode
- Pick up an Eevee and nickname it "K))u((:;W;". It will be sent to the current active box.
- Open the item bag. Swap the Rare Candy x243 with the contents of item slot #41. This will activate Map Script ACE
- Close the start menu. If everything went all right, Eevee's poké ball will have reappeared.
- Open the item bag. Swap the original contents of item slot #41 with the Rare Candy x243. This will deactivate Map Script ACE.
Setting up 4F to execute item codes
- Next, we'll be entering a list of five nicknames. We'll be calculating this list of nicknames to enter using Scottey's nickname converter tool. Simply copy paste the entire code below into the converter, then press the "Run" button to display the list of nicknames. Ignore the checksums for now.
Red/Blue |
---|
Setting up 4F (5 codes) |
3E 59 21 1E D3 22 AF 22 22 22 22 21 65 DA 3E 21 22 3E 22 22 3E D3 22 36 E9 00 00 00 00 00 |
- Next, pick up Eevees and enter the nicknames one by one. The nicknames from this specific list needs to be entered from the bottom to the top.
- Open the item bag. Swap the Rare Candy x243 with the contents of item slot #41. This will activate Map Script ACE
- Close the start menu. If everything went all right, the CANCEL buttons in the first three slots have been removed and the first item was replaced with a glitch item named "4F"
- Open the item bag. Swap the original contents of item slot #41 with the Rare Candy x243. This will deactivate Map Script ACE.
- Finally, verify that 4F works by using it. If the game doesn't crash, 4F was set up correctly.
Setting up the Nickname Writer
- Next, we'll be entering a list of thirteen nicknames. We'll be calculating this list of nicknames to enter using Scottey's nickname converter tool. Simply copy paste the entire code below into the converter, then press the "Run" button to display the list of nicknames. Ignore the checksums for now.
11 9C D8 D5 D5 06 01 21 5C 65 CD D6 35 0E 80 21 4B CF D1 2A 87 30 09 86 12 13 23 81 12 4F 18 F3 21 29 C4 0E 01 D5 CD DF 15 CD 31 38 D1 F0 B5 A7 28 EE 0F 38 CF 1B 0F 38 E7 0F D0 1B 1B 1B 1B 18 C3 |
- Next, pick up Eevees and enter the nicknames one by one. The nicknames from this specific list needs to be entered one by one from the bottom to the top.
- Exit the room and head to the pokémon center. We'll be testing out the Nickname writer.
- Once you're at the pokémon center, use 4F. This should open a screen in which you're asked to enter a pokémon's nickname
- Enter the nickname "aJ" and press START to end writing the nickname. This should display the main menu, the number 49 should be written on screen.
- Press START to exit the Nickname Writer safely.
Using the nickname writer
From this point onward, whenever you use the ACE item, you should be able to open the nickname writer. Please make sure to respect the following:
- The Nickname Writer only works when you have the Eevee-filled box set as the current active box. Attempting to use the Nickname Writer with any other boxes set as active will likely crash the game.
- Make sure to only use the Nickname Writer inside a pokémon center to ensure that the checksums are correctly displayed.
- As a side effect, the Nickname Writer will overwrite the nicknames of the first party pokémon.
The program works as follows:
- The program opens the nickname screen and asks you to input a nickname.
- This nickname then gets converted to a sequence of five bytes.
- All five bytes are written starting from the starting location
- The program displays a checksum (sum of all written byte values) to confirm that you correctly entered the code. If the printed checksum doesn't match the expected checksum, you made a mistake entering a code.
- Afterwards, it waits for the user to decide what to do.
During the input phase, the controls are as follows:
- Press A for the program to ask for a new nickname and convert that to the next five bytes to be written.
- Press SELECT to go back five bytes and ask for a new nickname to correct errors. Use this if the printed checksum does not match the predicted checksum and the last written nickname contained ten characters.
- Press B to go back one byte at a time. The checksum will automatically be overwritten by the value written at the current selected address, giving you a measure of how far back you're going. This function is only needed if you accidentally confirmed a nickname without writing all 10 characters.
- Press any other button (except A) to immediately start executing the newly written program. Only do this when you've finished writing everything.
Write mode | Input mode |
---|---|
Press select to switch between uppercase/lowercase | Checksum is displayed right next to ITEM |
Step 5: Returning the game state to normal
At this point, there are certain side effects that have been introduced by the setup:
- Setting up SRAM glitch has given us a party of 255 pokémon.
- The item pack currently has 255 items.
- The item code is currently still required to run the Nickname Writer.
- We are currently located in the Celadon Pokémon center, while we need to return to Pallet Town to pick up the starter pokémon.
- Our pokédex currently has 152 pokémon species caught, preventing the story from continuing.
We will be removing all these side effect using the Nickname Writer. The nicknames we need to enter will be generated by Scotteh's mail code tool. Simply copy paste the entire code below into the converter, then press the "Run" button to display the list of nicknames. Please make sure that you use the Nickname Writer within a poké center, to ensure that the checksums are displayed properly.
When using the Nickname Writer, the generated nicknames need to be entered from top to bottom.
AF 01 26 00 21 F7 D2 22 0D 20 FC 2E B1 22 22 23 23 22 22 EA 63 D1 EA 1D D3 01 01 59 CD 2E 3E 21 66 DA 36 2A 23 36 DD C9 |
Once all 8 codes have been entered and verified, you can press any button (with the exception of A, B and DOWN) during input mode to execute the code.
This will reset all Pokédex flags, removes all party pokémon, resets the bag, gives the ACE item and alters the exit of the poké center to lead out to Pallet Town.
From this point onward, you can exit the Poké Center and continue the story as normal.
Addendum: Additional codes
The following codes can be used with the Nickname Writer:
PokeGiver script
Effects:
- Change second bag item to ACE item "-g m".
- Set up everything so that -g m will activate the PokéGiver script (regardless of the current active box).
How to use the PokéGiver script:
- Please use a different box than the one that contains the Nickname Writer.
- Use -g m to activate the script. Once activated, the script will do the following:
- Give a pokémon.
- If the pokémon is deposited to the PC, the Pokémon will be made shiny. The default code will give female shiny pokémon (if the gender ratio allows it).
- Display two numbers (in hexadecimal) on screen. The left number indicates the species ID of the pokémon to be given, the right number indicated the level the pokémon is to be given at.
- The numbers can be altered by using the d-pad. Press A to confirm the values and give the next pokémon. Press Start to stop the script without giving any more pokémon.
- The script will stop automatically once the current active box is full.
Warnings:
- Species IDs do not match pokédex IDs in gen 1. Please use the Big Hex List article to determine which Species IDs give which pokémon.
- Be mindful of using this code to give yourself glitch pokémon, as the seen flags set by these glitch pokémon can alter the contents of the bag.
- The script is located in the area of memory that corresponds with enemy trainer party data. The script persists through saves, but will be destroyed when battling any trainer.
- Nickname writer codes with a length of up to 4 nicknames can be used without overwriting the PokéGiver script.
3E 6A EA 20 D3 21 AD D8 11 47 DA 01 03 00 C3 B5 00 C3 B1 D8 00 3E 01 E0 B7 01 01 01 CD 48 3E D0 21 B1 DA 36 2A 23 36 AA 21 B7 D8 11 91 C4 CD F1 D8 13 2B CD F1 D8 CD 31 38 F0 B5 FE 01 28 DA 07 38 10 07 38 0B 23 07 38 09 07 38 04 07 30 D9 D8 34 34 35 18 D3 CD F4 D8 CB 36 7E E6 0F C6 F6 F6 80 12 13 C9 |
Altering the PokéGiver script so that it is kept after battle
By executing the following two nickname codes, you can ensure that you can keep using the PokéGiver script even after engaging in trainer battles.
First, execute the following code:
21 42 0A 74 65 75 01 FF 00 11 53 BA 21 B1 D8 C3 B5 00 00 00 |
Using this code will store a copy of the PokéGiver script in an unused area of memory, located in sram bank 02 at $BA53 (right after box #5).
Next, execute the following code:
0E 12 11 47 DA 21 A7 D8 C3 B5 00 21 42 0A 74 65 75 01 FF 00 11 B1 D8 D5 21 53 BA C3 B5 00 |
This code will alter the bootstrap of -g m such that, when it is used, it will look up the copy of the PokéGiver script and once more copy it over to $D8B1, in the middle of enemy trainer data, where it will immediately be executed.
Please make sure to not use -g m during trainer battles, as it will overwrite buffered trainer data leading to unintended side effects.
Changing the gender of pokémon given by the PokéGiver script
With the PokéGiver script installed, you can use the following codes to change the gender of the pokémon given by the script.
All Languages | |
---|---|
Female Shiny | Male Shiny |
3E 2A EA C0 D8 C9 00 00 00 00 |
3E FA EA C0 D8 C9 00 00 00 00 |
Making a VC transferable Mew
This code changes the data of the 6th party pokémon to have an OT ID of 22796 and a nickname of "GF". By putting a Mew in the sixth party slot and executing the code, the Mew can be passed through poké transporter to gen 7.
It is small enough to not destroy the PokéGiver script.
All Languages |
---|
21 53 D2 3E 59 22 36 0C 21 AA D2 3E 86 22 3E 85 22 36 50 C9 |
Installing a RAM writer
A RAM writer is an installable program that allows you to view and change any value in memory using a graphical user interface. This allows you to easily change specific values, set up and run small payloads and verify specific values in memory.
3E 03 CD 7A D9 21 1E D3 36 59 01 C8 00 11 53 BA 21 BB D8 CD B5 00 11 65 DA D5 0E 13 C3 B5 00 AF 3C E0 B6 E0 B7 21 00 DA CD 74 C6 E5 11 F8 FF 19 54 5D 01 0C 00 CD DD C6 21 A9 C3 CD 65 C6 3E 7C 22 7A CD 65 C6 7B CD 65 C6 3E E3 22 1A CD 65 C6 36 7C 09 13 7D FE 13 20 E5 26 00 74 21 50 C4 36 ED E1 18 C4 F5 CB 37 CD 6C C6 F1 E6 0F C6 F6 F6 80 22 C9 CD BE C6 CB 5F 20 39 CB 57 28 0A 0F 30 01 E9 F0 FE 83 E0 FE C9 0F 30 2A E5 CD DD C6 4E CD BE C6 0F 38 12 0F 30 01 4B 79 83 4F 21 50 C4 36 EC 23 CD 65 C6 18 E8 E1 71 E5 06 1C 21 CE 77 CD D6 35 E1 C9 0F 30 03 53 1E 00 19 C9 CD 31 38 F0 B5 76 11 00 00 F5 07 30 01 13 07 30 01 1B 07 30 03 11 F0 FF 07 30 02 1E 10 F1 C9 F0 FE E5 26 0A 74 26 40 77 E1 C9 21 43 0A 74 65 36 03 0E C8 11 20 C6 D5 21 53 BA C3 B5 00 |
Using the full RAM writer
Assuming the program was entered correctly, the game should open up one of the screens as seen in the below screenshots. The RAM writer will draw various values on the screen. The leftmost 4 columns describe the addresses that are currently in view. The rightmost two columns describe the values at each of these addresses. All values on screen are represented in hexadecimal format.
For example: DA01>05 means that the address $DA01 is currently holding the value of $05.
Make sure to save the game after you've confirmed that the RAM writer is fully functional.
The RAM writer can also be used during battle. Opening and closing the RAM writer in battle will pass your turn to the enemy and cause the battle to continue as usual.
Due to the location the RAM writer is buffered, upon closing the RAM writer in battle in Red/Blue, you will see a slight graphical corruption at the bottom of the screen that will immediately be overwritten by the battle text box. This corruption is purely cosmetic and temporary, meaning that it will not cause any harm to your game.
Full Writer Controls
The RAM writer uses two modes of operation. In Read mode you are able to navigate memory and view the values at specific addresses. in Write mode you'll lock in a single address and manipulate the value at that address. By default, the RAM writer will open in Read mode.
RAM writer in Read mode | RAM writer in Write mode. |
Read mode controls
up: address -1 down: address +1 left: address -10 right: address +10 B + up: address -1 B + down: address +1 B + left: address -10 B + right: address +10 start: exit program A: toggle write mode select + up: sram bank -1 select + down: sram bank +1 select + left: sram bank -10 select + right: sram bank +10 select + A: start executing code from current address onwards (use with caution!)
Write mode controls
up: value -1 down: value +1 left: value -10 right: value +10 B: set current value to 0 A: exit write mode and load final value into the address