Hello everybody !
Required hardware :
- 1 GBA/GBA SP
- 1 GBA to GCN Cable
- 1 FlashCard running the program to make the GBA looking like a GC Controller
I have made some edits to the original program that was made by EXTREMSCORNER (Many thanks to him !). The original source code can be downloaded there : https://github.com/ExtremsCorner/gba-as-controller
23/11/2019 :
- It's now on GitHub (with a pre-compiled binary) : https://github.com/CapitaineBidouille/gba-as-controller
- Many improvements. Added an hybrid game profile system. Profiles hardcoded should have no impact on timings/performance as they are just a simple switch. Game profile builder is available but might break compatibility with some GC adapters.
Changelog of my version :
- Added the possibility to select a game profile before start. You can add your own profiles by editing the source code and compile the program again. There is already some profiles that i've made for the games I play with (Mario Kart 8 Deluxe/Smash Ultimate/Mario Kart Double Dash).
- Show all input presses, and the number of simultaneously pressed buttons
- Cleaned the code a bit
23/06/2019 version changelog :
- You can now choose the timer0 value at launch. It can be useful to make the program work with some third party controller adapters. 3.99 microseconds is the default value, which works with Nintendo and Mayflash controller adapter.
- Removed input presses printing. It was causing timer desync, consequently the compatibility with many controller adapters (except mine, which is one from MayFlash ) was broken.
09/07/2019 version changelog :
- Added a new game profile : New Super Mario Bros (works for Mario Maker 2/New Super Mario Bros U Deluxe)
- Added a game profile builder, to map GBA <==> GC keys
- Input presses are showed (again !), this time without causing any regression
- Improved timer0 choice at launch : possibility to define a completely custom coefficient, between 50 and 1000. Default is 67 and should work in most cases.
- Modifications to the console, in order to make everything look nicer and give more informations to the user
- Added a softreset key combo : A+B+SELECT+START to change game profile fastly without having to load the program again
- Code cleanups
11/07/2019 version changelog :
- Many code cleanups
- Fixed timing regressions. Should now be equals again with the original program.
- Showing input presses is removed again Definitely causing timer problems with some gc pad adapters
- Fixed analog buttons status with custom game profiles
- Added Licence in the zip
12/07/2019 version changelog :
- Code cleanups
- Show in real time if a rumble cartridge is connected
- Possibility to map GC D-Pad keys in a custom profile
25/07/2019 version changelog :
- Restarted from the original code (code cleanups)
- Added a lite version, using a lite version of the game profile system. This version might be necessary with some third-party GC controller adapters which need to receive a very fast status answer to work. The lite version lacks of the game profile builder, but has exactly the same timings as the original program made by EXTREMS.
You can use your GBA to play PC games with something like the MayFlash GC Adapter, which makes any GC Controller appearing as a standard DInput controller. It works on a real GameCube or a Wii U/Switch just perfectly. I prefer this method over using the "GBA Wireless Controller", which has random connection drops and latency spikes.
04/03/2021 :
- Added EZFlash Omega Definitive Edition rumble support
03/01/2022 :
- Implement last changes from Extrems repo
How to use it ?
Very simple, just load the program and connect the GBA to the gamecube/mayflash/wii u/switch gcn adapter using the cable. It will be recognized exactly as a GameCube Controller while the program is running.
TIP : You can connect as many gba as you wish with one single flash cart. When the program is loaded, it stay on the RAM as long as the GBA is powered on so you can just withdraw the catridge from the GBA and load the program on another one. Rumble is supported if you insert a rumble gba game (or the slot2 Nintendo DS Rumble Pack)
Happy gaming
P.S : The source code of the latest version is on the archive below, with a ready-to-use binary
Required hardware :
- 1 GBA/GBA SP
- 1 GBA to GCN Cable
- 1 FlashCard running the program to make the GBA looking like a GC Controller
I have made some edits to the original program that was made by EXTREMSCORNER (Many thanks to him !). The original source code can be downloaded there : https://github.com/ExtremsCorner/gba-as-controller
23/11/2019 :
- It's now on GitHub (with a pre-compiled binary) : https://github.com/CapitaineBidouille/gba-as-controller
- Many improvements. Added an hybrid game profile system. Profiles hardcoded should have no impact on timings/performance as they are just a simple switch. Game profile builder is available but might break compatibility with some GC adapters.
Changelog of my version :
- Added the possibility to select a game profile before start. You can add your own profiles by editing the source code and compile the program again. There is already some profiles that i've made for the games I play with (Mario Kart 8 Deluxe/Smash Ultimate/Mario Kart Double Dash).
- Show all input presses, and the number of simultaneously pressed buttons
- Cleaned the code a bit
23/06/2019 version changelog :
- You can now choose the timer0 value at launch. It can be useful to make the program work with some third party controller adapters. 3.99 microseconds is the default value, which works with Nintendo and Mayflash controller adapter.
- Removed input presses printing. It was causing timer desync, consequently the compatibility with many controller adapters (except mine, which is one from MayFlash ) was broken.
09/07/2019 version changelog :
- Added a new game profile : New Super Mario Bros (works for Mario Maker 2/New Super Mario Bros U Deluxe)
- Added a game profile builder, to map GBA <==> GC keys
- Input presses are showed (again !), this time without causing any regression
- Improved timer0 choice at launch : possibility to define a completely custom coefficient, between 50 and 1000. Default is 67 and should work in most cases.
- Modifications to the console, in order to make everything look nicer and give more informations to the user
- Added a softreset key combo : A+B+SELECT+START to change game profile fastly without having to load the program again
- Code cleanups
11/07/2019 version changelog :
- Many code cleanups
- Fixed timing regressions. Should now be equals again with the original program.
- Showing input presses is removed again Definitely causing timer problems with some gc pad adapters
- Fixed analog buttons status with custom game profiles
- Added Licence in the zip
12/07/2019 version changelog :
- Code cleanups
- Show in real time if a rumble cartridge is connected
- Possibility to map GC D-Pad keys in a custom profile
25/07/2019 version changelog :
- Restarted from the original code (code cleanups)
- Added a lite version, using a lite version of the game profile system. This version might be necessary with some third-party GC controller adapters which need to receive a very fast status answer to work. The lite version lacks of the game profile builder, but has exactly the same timings as the original program made by EXTREMS.
You can use your GBA to play PC games with something like the MayFlash GC Adapter, which makes any GC Controller appearing as a standard DInput controller. It works on a real GameCube or a Wii U/Switch just perfectly. I prefer this method over using the "GBA Wireless Controller", which has random connection drops and latency spikes.
04/03/2021 :
- Added EZFlash Omega Definitive Edition rumble support
03/01/2022 :
- Implement last changes from Extrems repo
How to use it ?
Very simple, just load the program and connect the GBA to the gamecube/mayflash/wii u/switch gcn adapter using the cable. It will be recognized exactly as a GameCube Controller while the program is running.
TIP : You can connect as many gba as you wish with one single flash cart. When the program is loaded, it stay on the RAM as long as the GBA is powered on so you can just withdraw the catridge from the GBA and load the program on another one. Rumble is supported if you insert a rumble gba game (or the slot2 Nintendo DS Rumble Pack)
Happy gaming
P.S : The source code of the latest version is on the archive below, with a ready-to-use binary
Copyright (c) 2016-2018, Extrems' Corner.org
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
BSD 2-Clause License
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
BSD 2-Clause License
Last edited by Aliogeek,