using the externe.net fast kernel, and special SDL, I'm getting full speed with regular gameboy and gameboy color games - a little worse on GBA games. Adding --nosound would probally help, but I don't have a GBA rom on me at the moment to try.
here's my VisualBoyAdvance.cfg (Just the default with a couple modifications)
I'm sure there are still some performance tweaks that could be made, I'm not too familiar with VBA yet
# All numeric values are in hexadecimal
#
# Key configuration (all numbers are in hexadecimal!)
#
# Keys values are in the format YXXX where Y is the device number. 0 means
# keyborad and XXX is the SDL define for the desired key (read SDL_keysym.h).
#
# If Y is greater than 0, it means joystick number Y-1 and it uses the
# following format for XXX:
#
# - if XXX < 20, XXX is the axis number multiplied by 2. An even number means
# movement to the negative side (on the X axis, it means left). An odd
# number means movement to the positive side (on the X axis, it mean
# right). For the Y axis, negative means up and positive means down.
# X axis is usally axis number 0 and Y is axis number 1.
# - if 20 >= XXX > 30, then XXX is the HAT number multiplied by 4 plus the
# direction: 0 for up, 1 for down, 2 for right and 3 for left. Example:
# 0021 is HAT 0 down, 0026 is HAT 1 right.
# - if 80 >= XXX > 100, XXX is the joystick button number (XXX-080).
#
# Default key configuration is (value in parenthesis):
#
# Left Left Arrow (0114)
# Right Right Arrow (0113)
# Up Up Arrow (0111)
# Down Down Arrow (0112)
# A Z (007a)
# B X (0078)
# L A (0061)
# R S (0073)
# Start ENTER (000d)
# Select BACKSPACE (0008)
# Speed up SPACE (0020)
# Capture F12 (0125)
#
Joy0_Left 0114
Joy0_Right 0113
Joy0_Up 0111
Joy0_Down 0112
Joy0_A 007a
Joy0_B 0078
Joy0_L 0061
Joy0_R 0073
Joy0_Start 000d
Joy0_Select 0008
Joy0_Speed 0020
Joy0_Capture 0125
# Motion support keys. Same format as above
#
# Default keys are (value in parenthesis):
#
# Left Numeric Pad 4 (0104)
# Right Numeric Pad 6 (0106)
# Up Numeric Pad 8 (0108)
# Down Numeric Pad 2 (0102)
#
Motion_Left 0104
Motion_Right 0106
Motion_Up 0108
Motion_Down 0102
# Frame skip setting. Allowed values are from 0 to 5 only.
frameSkip 2
# Gameboy Frame skip setting. Allowed values are from 0 to 5 only.
gbFrameSkip 0
# Video setting. 0=1x, 1=2x, 2=3x, 3=4x.
video 1
# Use fullscreen mode. 0=false, any other value means true
fullScreen 0
# Disables MMX support
disableMMX 1
# Use bios file. 0=false, any other value means true
useBios 0
# Bios file full path and name (ZIP not supported)
biosFile none
# Filter to use. 0=no filter, 1=TV Mode, 2=2xSaI, 3=Super 2xSaI, 4=Super Eagle
# 5=Pixelate, 6=Motion Blur, 7=AdvanceMAME Scale2x, 8=Simple 2x,
# 9=Bilinear, A=Bilinear Plus
filter 0
# Disable status messages. 0=false, any other value means true
disableStatus 0
# Enable Gameboy border. 0=false, any other value means true
borderOn 0
# Gameboy emulator type. 0=automatic, 1=CGB/GBC, 2=SGB, 3=GB, 4=GBA
emulatorType 0
# Enable washed colors. 0=false, any other value means true
colorOption 1
# Directories. Not setting one them makes the file go the rom directory.
# Save state directory
#saveDir
# Screen shot Capture directory
#captureDir
# Battery directory
#batteryDir
# Screen capture format
# 0=PNG, anything else for BMP
captureFormat 0
# Sound quality
# 1=44 Khz, 2=22Khz, 4=11Khz
soundQuality 4
# Sound Echo
# 0=false, anything else for true
soundEcho 0
# Sound Low pass filter
# 0=false, anything else for true
soundLowPass 0
# Sound reverse stereo
# 0=false, anything else for true
soundReverse 0
# Remove GBA intros
# 0=false, anything else for true
removeIntros 1
# Save Type
# 0=automatic, 1=EEPROM, 2=SRAM, 3=Flash, 4=EEPROM+Sensor
saveType 0
# Flash size
# 0=64K Flash, 1=128K Flash
flashSize 0
# Sound volume
# 0=1x, 1=2x, 2=3x, 3=4x
soundVolume 0
# Interframe blending
# 0=none, 1=motion blur, 2=smart
ifbType 0
# Show emulation speed
# 0=none, 1=percentage, 2=detailed
showSpeed 1
# Show speed in transparent mode
# 0=normal, anything else for transparent
showSpeedTransparent 1
# Enable/Disable auto frameskip
# 0=disable, anything else to enable
autoFrameSkip 1
# Sets the desired throttle
# 0=disable, 5...1000 valid throttle speeds
throttle 0
-ross