What macros do in Dolphin and why you'd use them
A macro in Dolphin Emulator is a single button press that triggers multiple button presses or stick movements at once. Instead of mashing four buttons in sequence, you press one button and Dolphin sends all four inputs automatically. This is useful for games where you repeat the same button combination constantly — a special move in a fighting game, a combo in an action title, or a menu shortcut you use every few minutes.
Macros work with any controller type Dolphin supports: GameCube controllers, Wii remotes, classic controllers, and keyboard input. You set them up in the controller configuration menu, and they stay saved to that profile. Once configured, a macro behaves like any other button — you can map it to a physical button, assign it to a hotkey, or leave it unmapped and trigger it through Dolphin's menu.
The most common use is mapping a macro to a button you don't otherwise need. If a game only uses half your controller buttons, you can assign a macro to one of the unused buttons and have it ready whenever you need it.
Key Takeaways
- Macros are created in the controller configuration window under the Buttons tab, where you can record a sequence of inputs and save it as a single button press.
- You record a macro by clicking the record button, pressing the inputs you want in order, then stopping the recording — Dolphin captures the exact timing and sequence.
- After recording, assign the macro to a physical button on your controller so you can trigger it during gameplay.
- Macros work with GameCube controllers, Wii remotes, classic controllers, and keyboard input, and the settings save to your controller profile.
- Test your macro in the game before relying on it, because timing-sensitive games may need the inputs spaced differently than you recorded them.
Opening the controller configuration window
Start Dolphin and go to Options in the menu bar, then select Controller Settings. A window opens showing four controller slots (Port 1 through Port 4). Find the port your controller is plugged into or configured for — usually Port 1 if you're using a single controller. Click the button labeled Configure next to that port.
A second window opens with tabs across the top: Buttons, Rumble, D-Pad, and others depending on your controller type. Stay on the Buttons tab — this is where you create and assign macros.
Recording a macro sequence
In the Buttons tab, look for a section labeled Macros near the bottom of the window. You'll see a list (usually empty at first) and buttons next to it. Click New to create a new macro. A dialog box appears asking you to name it — use something short and clear, like "Spin Attack" or "Menu Combo".
After you name it, another dialog opens with a red Record button. Click it and start pressing the buttons you want the macro to perform, in order. Press them at the speed you'd normally press them during gameplay — Dolphin records the timing between each press. When you're done, click Stop or wait for the recording to time out. Dolphin saves the sequence and returns you to the macro list.
If the sequence didn't record correctly, select the macro and click Delete, then create a new one. There's no limit to how many macros you can create, so don't worry about getting it perfect on the first try.
Assigning a macro to a controller button
Once your macro is recorded, you need to map it to a physical button so you can actually use it. In the Buttons tab, find the button you want to assign it to — look for buttons your game doesn't use, or buttons you're willing to reassign. Click on that button's input field (it usually shows the current button name or is blank).
A small menu appears. Look for a Macros section at the top or bottom of this menu — it lists all the macros you've created. Click the macro you want, and Dolphin assigns it to that button. The button's field now shows the macro name instead of a regular button.
You can assign the same macro to multiple buttons if you want, or leave some macros unmapped and trigger them through Dolphin's menu instead. Test the assignment by closing the configuration window and starting a game — press the button and watch whether the macro fires correctly.
Testing and adjusting macro timing
Load a game and test your macro in a safe spot — a pause menu, a training mode, or an area with no enemies. Press the button you assigned the macro to and watch what happens. If the inputs fire in the right order but the game doesn't recognize the combo, the timing between button presses might be off.
Go back to Options > Controller Settings > Configure, select your macro in the Macros list, and click Edit. You'll see the recorded sequence with timing information. If you need to adjust it, delete the macro and record it again, this time pressing the buttons slightly faster or slower to match what the game expects.
Some games are very strict about timing — a fighting game combo might need button presses 50 milliseconds apart, while an action game might accept 200 milliseconds. If you can't get the timing right by ear, try recording the macro multiple times with slightly different speeds until one works.
Saving your macro configuration
When you finish setting up your macros and button assignments, click OK to close the controller configuration window. Dolphin automatically saves your changes to the controller profile for that port. The next time you load a game with that controller, your macros will be there and ready to use.
If you want to use the same macros with a different game or a different controller type, you can export your profile. In the Controller Settings window, look for an Export button next to the port. This saves your configuration as a file you can load into another port or share with someone else. To import a profile, click Import and select the saved file.
Common mistakes and how to avoid them
The most common mistake is recording a macro too quickly or too slowly. If you press buttons in rapid succession during recording, the macro will replay them that way — sometimes faster than the game can register them. Record at the speed you'd actually press them in the game, not as fast as possible.
Another mistake is assigning a macro to a button the game actually uses. If you map a macro to the A button and the game needs A for jumping, you'll trigger the macro instead of jumping. Always assign macros to buttons your game doesn't need, or buttons you're willing to sacrifice.
Don't forget to test the macro before you rely on it in real gameplay. A macro that works in one game might not work in another if the games have different input timing expectations. Test in a low-stakes situation first — a menu, a training mode, or a practice level.
Frequently Asked Questions
Can I record a macro that holds a button down instead of pressing it?
Dolphin macros record button presses and releases, not held buttons. If you need a button held for a specific duration, record it as a press, then immediately record a release. The timing between them determines how long the button stays "held" when the macro plays.
What happens if I assign a macro to a button that's already mapped to something else?
The macro overwrites the previous assignment. That button will now only trigger the macro, not its original function. If you need both, create a second macro that includes the original button's input, or use a different button for the macro.
Can I use macros with a keyboard instead of a controller?
Yes. In the controller configuration, select Keyboard as your input device, then create and assign macros the same way. Record the keyboard keys you want instead of controller buttons, and assign the macro to a key you don't otherwise use.
Do macros work in all Dolphin games?
Macros work in any game, but some games are more sensitive to input timing than others. Fighting games and rhythm games may reject a macro if the button presses don't match their exact timing window. Test in your specific game to see if the macro works as expected.
Can I delete a macro after I've assigned it to a button?
Yes, but the button assignment will break. If you delete a macro, the button it was assigned to becomes unmapped. You can then assign a different macro or button to that input, or leave it empty.