Hello,
Modifying the simulator to include an option in the menu, or modify the save/load routines to include the key table in the config file is almost impossible without having access to the source code.
Anyway, if you always (or most of the times) desire the same key assignment, you can modify the default values for the keys in the GBA.SIM file.
FIRST OF ALL MAKE A COPY OF YOUR GBA.SIM FILE !! (backup it, as I had no time to test this yet).
Using an hexadecimal editor go to address 0xBD4E4
At this address there are 14 values of 32-bit that are the default keys (the selected area in the image above).
The order is the one in the menu: UP, DOWN, LEFT, RIGHT, A, B, L, R, SELECT, START, VOL+, VOL-, SAVE, LOAD
The default values are (see possible keys below): UP, DOWN, LEFT, RIGHT, A, B, L, R, SELECT, START, UP+START, DOWN+START, LEFT+START, RIGHT+START
The possible values are (as they appear in the editor):
UP 00 00 10 00
DOWN 00 00 00 08
LEFT 00 00 00 10
RIGHT 00 00 04 00
A 00 00 00 80
B 00 10 00 00
X 00 00 01 00
Y 00 00 00 20
L 00 00 02 00
R 00 00 00 40
SELECT 00 40 00 00
START 80 00 00 00
For combinations just add the 2 desired values. For example, if I want to change the Save key to use SELECT+R, I'll go to the 13th value (defaults to 80 00 00 10) and will change it for 00 40 00 40.
Just modify the 4-byte value you want to change.
Be carefull not to delete/add any byte, and always make sure you are in a 4-byte boundary to avoid modifying two values in the table.
Yes, this is a dirty hack, but is the easier way having into account that we don't have access to the source code.
Hope this helps.
Regards.
EDIT: Tested myself, and the table is the one for default values. So if you want to have these values on start-up you have to go to the menu and "load default values" and then use the menu "Exit" option so the are loaded on next start-up.
This one uses B for "A key" and Y for "B key" as Peffse requested:
http://www.sendspace.com/file/2tyufn