I managed to compile it on my computer (Intel iMac), and while it was pretty straightforward for this kind of task, there's probably a ton of dependencies I had already in-place (I had to update my install of Lua, though). Also I had to comment out an include of malloc.h in one of the files. Fortunately stdlib.h has me covered. :)
So the upshot is, if you don't already know how to program, you probably won't have much luck compiling a copy. Moreover, I don't think that the copy I compiled is particularly portable.
Right now I'm trying to figure out where the controls are defined so I can change 'em. The source code is not particularly well-commented...
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
You can change the controls without editing the source by using the '-inputcfg' switch (on linux; presumably osx also):
fceu -inputcfg gamepad1 somerom.nes
That will let you map the keys for the first controller. It allows you to map up to four (I think) keys to each button. This and maybe some other useful command line options are described in the fceu-0.98.28/Documentation/fceultra.html file, in the source distribution (for fceu 0.98.28 at least).
Inputcfg doesn't let you change the keys for stuff like loading/saving movies or savestates, though. If you want, you can change some (all?) of those keys by editing this file and recompiling:
fceu-0.98.28/src/drivers/pc/input.c
Look for the KeyboardCommands function.
In particular, I recommend adding this line around line 196 of that file:
if(keyonly(COMMA)) FCEUI_ToggleInputDisplay();
Otherwise, I don't think you will be able to turn on Input Display (on unix systems). Someone correct me if I'm wrong.
Yep, I got that figured out; frame advance has been moved to keypad zero, where it belongs. :) There's a few more things to hack in - input display's a good one, and I also want to get the frame counter turned on. But I have enough to start TASing now.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.