Page 1 of 23 12311 ... LastLast
Results 1 to 10 of 228

Thread: Improving the NES Emulation Scene on Ubuntu

  1. #1
    Join Date
    Dec 2004
    Beans
    282

    Improving the NES Emulation Scene on Ubuntu

    Hello!
    Over the past few weeks, I have been getting some "Legend of Zelda" cravings. Too lazy to find my NES, I decided to check out NES emulators for Linux. The most stable and complete emulator I found was FCE Ultra. However, the interface was terrible. There was no GUI, and even the command-line was poor and undocumented.
    So, instead of just complaining, I decided to program. I whipped out vim and glade, and I coded and coded. And now, we have a mean, clean, emulating machine: gfceu.
    Gfceu is a graphical frontend for fceu using python and GTK2. I have posted tarbells and ubuntu packages on my server located here: http://dietschnitzel.com
    Please, test and enjoy! Once the universe repos are up, I'll see if I can get this pushed into edgy.


    But wait, there's more!
    Many people are unaware that fceu supports network play. The source code for the server is fairly hidden, but I have whipped up an ubuntu package for it. You can download the package here: http://dietschnitzel.com
    To run the server once the package is installed, just run:
    Code:
    $fceu-server /etc/fceu-server-standard.conf
    And your good to go! Gfceu has network support, so you can connect to the server using that.
    Last edited by punkrockguy318; January 5th, 2007 at 10:57 PM. Reason: Fixed Web Address

  2. #2
    Join Date
    Dec 2005
    Location
    Columbia, MO, USA
    Beans
    Hidden!
    Distro
    Ubuntu 6.06

    Re: Improving the NES Emulation Scene on Ubuntu

    Very nice. It's not very good at handling filenames with spaces or other characters that have special meaning in the shell, though:

    Code:
    $ ./gfceu
    /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes
    GFCEU debug:  command = fceu -sound 1 /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes
    sh: -c: line 0: syntax error near unexpected token `('
    sh: -c: line 0: `fceu -sound 1 /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes'
    Perhaps some extra quotes are in order. Also, I can't configure the gamepad(s) if I haven't already selected a ROM, the dialog for configuring the gamepads isn't very intuitive (just a titlebar with the button name on it), and it prompts for each button multiple times.

    After I renamed my ROM and figured out the button configuration, though it worked nicely. Keep up the good work.

  3. #3
    Join Date
    Dec 2004
    Beans
    282

    Re: Improving the NES Emulation Scene on Ubuntu

    Quote Originally Posted by fluffington
    Very nice. It's not very good at handling filenames with spaces or other characters that have special meaning in the shell, though:

    Code:
    $ ./gfceu
    /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes
    GFCEU debug:  command = fceu -sound 1 /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes
    sh: -c: line 0: syntax error near unexpected token `('
    sh: -c: line 0: `fceu -sound 1 /home/noah/Desktop/zelda/Legend of Zelda, The (U) (PRG0).nes'
    Perhaps some extra quotes are in order. Also, I can't configure the gamepad(s) if I haven't already selected a ROM, the dialog for configuring the gamepads isn't very intuitive (just a titlebar with the button name on it), and it prompts for each button multiple times.

    After I renamed my ROM and figured out the button configuration, though it worked nicely. Keep up the good work.
    Thanks so much for testing my program. I've addressed a few of your problems:
    Spaces and special characters - Fixed in 0.1.1
    Input configuration without selected ROM - Fixed in 0.1.1
    Unintutitive input configuration - This is all handled by fceu itself. I have contacted the developers of fceu and see if I could get some work upstream done with this, but have received no reply. FCEU uses a binary configuaration file, and the only way to write input configs is through fceu itself :-\. Maybe sometime when I'm feeling adventurous I'll check out the fceu source and see what I can do.

    For the 0.1.1 release, check out the same place: http://punkrockguy318.no-ip.org/gfceu

    God bless and enjoy!

  4. #4
    Join Date
    Dec 2005
    Location
    Columbia, MO, USA
    Beans
    Hidden!
    Distro
    Ubuntu 6.06

    Re: Improving the NES Emulation Scene on Ubuntu

    Wow, that was fast. It works much better now.

  5. #5
    Join Date
    Dec 2004
    Beans
    282

    Re: Improving the NES Emulation Scene on Ubuntu

    Quote Originally Posted by fluffington
    Wow, that was fast. It works much better now.
    I hope you enjoy it! In the next couple weeks I'm planning to add a video tab and an advanced tab.

    Also, I'm going to talk to some people and see what the best way is to avoid the gnome-screensaver bug.

    God bless,
    Lukas

  6. #6
    Join Date
    Aug 2005
    Location
    Birmingham, AL
    Beans
    974
    Distro
    Kubuntu

    Re: Improving the NES Emulation Scene on Ubuntu

    Please, for the love of all things great and small, have the program remember the last directory you looked for a ROM in, if not every time, at least in the same session.

    I stink at Python, but this seemed to do what I'm talking about:
    Code:
    --- gfceu-0.1.1/gfceu   2006-06-12 21:04:37.000000000 -0500
    +++ gfceu/gfceu 2006-06-13 00:38:38.000000000 -0500
    @@ -22,6 +22,7 @@
     """
     import sys
     import os
    +import user
     
     try:
       import pytgtk
    @@ -36,6 +37,7 @@
       sys.exit(1)
     
     class gui:
    +  lastdir = ""
       def __init__(self):
         try:
           self.xml=gtk.glade.XML (os.path.dirname(sys.argv[0])+'/gfceu.glade')
    @@ -80,9 +82,12 @@
         filter.add_mime_type("application/x-nes-rom")
         filter.add_pattern("*.nes")
         chooser.add_filter(filter)
    -    
    +    if self.lastdir == "":
    +       self.lastdir = user.home
    +    chooser.set_current_folder (self.lastdir)
         response = chooser.run()
         if response == gtk.RESPONSE_OK:
    +      self.lastdir = chooser.get_current_folder()      
           self.xml.get_widget('romentry').set_text(chooser.get_filename())
         chooser.destroy()

  7. #7
    Join Date
    Apr 2005
    Beans
    340
    Distro
    Kubuntu 7.04 Feisty Fawn

    Re: Improving the NES Emulation Scene on Ubuntu

    Fantastic! This is something that's needed very badly. Many thanks for putting this together. Now, that being said, here are my complaints.

    * You have to configure the input for every game you play
    * It ask you to program every input twice
    * Doesn't remember ROM folder
    * No options for screen size / full screen

    I'm not sure how many of these relate to your interface and how many are simply the limitations of FCEU. However, if you want to take a look at some excellent emulator interfaces check out Mupen 64, ZSNES, or gxmame. There is also gTuxNES (NES emulator GUI), but it's just not very good imo.

    P.S. - If this thing gets popular and you need help with hosting, I can lend a hand.

    Edit: Also, here's a list of NES emulators for Linux. One of them might serve as a better back-end than FCEU. (The link is a google cahce since the actual page seems to be down, so you will have to search for each emulator individually)
    Last edited by eqisow; June 13th, 2006 at 02:33 PM.

  8. #8
    Join Date
    Dec 2004
    Beans
    282

    Re: Improving the NES Emulation Scene on Ubuntu

    Quote Originally Posted by eqisow
    Fantastic! This is something that's needed very badly. Many thanks for putting this together. Now, that being said, here are my complaints.

    * You have to configure the input for every game you play
    * It ask you to program every input twice
    * Doesn't remember ROM folder
    * No options for screen size / full screen

    I'm not sure how many of these relate to your interface and how many are simply the limitations of FCEU. However, if you want to take a look at some excellent emulator interfaces check out Mupen 64, ZSNES, or gxmame. There is also gTuxNES (NES emulator GUI), but it's just not very good imo.

    P.S. - If this thing gets popular and you need help with hosting, I can lend a hand.

    Edit: Also, here's a list of NES emulators for Linux. One of them might serve as a better back-end than FCEU. (The link is a google cahce since the actual page seems to be down, so you will have to search for each emulator individually)
    Thanks for your input!
    As far as configuring the input, this is pretty much out of my control. This is all handled by fceu. I'm not the greatest at interpreting other coder's C, and I was clueless when I looked at the fceu source code.
    I'll definitely add options for fullscreen/windowed and write in code so gfceu will remember the options.

    After exploring other emulators, it looks like using a different emulator may be much more usable. The ones that seemsed particuarlly interesting were iNes and RockNES. This week I'll see what I can do to package those two for Ubuntu, and code gfceu so it is emulator-independent. I'd like to shift this project from a gfceu to a gnes sort of project.

  9. #9
    Join Date
    Dec 2004
    Beans
    282

    Re: Improving the NES Emulation Scene on Ubuntu

    I mentioned iNes in my above post; unfortunately it is not free. Perhaps rocknes will work, I'll look more into it.

  10. #10
    Join Date
    Dec 2004
    Beans
    282

    Re: Improving the NES Emulation Scene on Ubuntu

    Ah! Both shot down! RockNES does not even run on UNIX. I guess I'll have to keep looking...

    EDIT: There is an older unofficial rocknes port, but it already has an ingame gui. Also, I don't believe it's open source.
    Last edited by punkrockguy318; June 13th, 2006 at 05:21 PM.

Page 1 of 23 12311 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •