This topic has been covered more than a few times here (searching 'zinc' will bring those threads up on a search, asd I know all too well

) , but because I had a little trouble getting it to work just right even with the useful info I found on the boards, I'll tell you how I did it.
Install zinc and delete the controller.cfg that it creates.
Install ZincFE (aldo's) and use it to configure you controls. You'll see the file it creates in the Zinc root directory (controller.cfg).
Then point your wrapper command line option to look at the controller.cfg file. For example, here's what my zinc.cfg file from Howard Casto's wrapper looks like:
extension=.zip
path=e:\zinc\
exe=cmd-launch7.exe
send rom path=1
send exit keys=1
command line options;--use-config-file=zinc.cfg --use-renderer-cfg-file=renderer.cfg
--use-controller-cfg-file=controller.cfg
Naturally, your 'path' may differ, but notice that I put in the --use-controller-cfg-file command in. That tells the wrapper to use the cfg file from ZincFE that I created.
Also, make sure that the 'enable keys' option in your renderer.cfg is set to 0. I'm using the d3d-ogl renderer plugin from the zinc homepage. Unzip it and drop the renderer.cfg into the zinc root directory (with said change).
Here's part of my zinc.ini for Mamewah:
### List Generation Settings ###
rom_path e:\zinc\roms
rom_extension zip
dat_file e:\zinc\zinc.dat
nms_file
catver_ini_file e:\zinc\zinccatver.ini
list_generation_method rom_folder_vs_dat_file
### Execution Settings ###
emulator_executable e:\zinc\cmd-launch7.exe
commandline_format [name]{nodosbox}{safelaunch}
alt_commandline_format_1 [name]
alt_commandline_format_2 [name]
game_specific_config_path
If you're using Howard's wrapper (which I'd recommend), you don't need to change anything in the lconfg.ini file. Just make sure it's in the zinc root directory with the wrapper executable.
I'm pretty sure that should work. At least it did for me.
Good luck!
Coop