Announcement

Collapse
No announcement yet.

An embedded NES emulator?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • An embedded NES emulator?

    For a while now I have not been able to really find what I want with an NES emulator. I use RockNES and it works ok but I would really like to have an emulator that runs embedded in a program or front end like FP,ME or simply as a standalone app that is a frontend for a nes emulator out there.

    For instance, I'd want a program that has a button for a popup list of scrollable games similar to how you would scroll music in FP,ME or any other front end and on the same screen an embedded window that plays the game. I've attached a concept of this and was curious if anything has thought about this before? Im good with VB and VC++ and Java but I am not sure how to embed emulators so if anyone has any ideas please share.
    Attached Files

  • #2
    anyone have any ideas? How would I overlay a visual basic program when a program is running full screen?

    Comment


    • #3
      I think that all depends on the frontend. You would need a way of interfacing with the frontend. It isn't difficult to put buttons on top of the emulator screen but you would need to be able to send the frontend commands. I was going to build an emulator launcher similar to carcade (search for it) but the problem is integrating with the frontends. So unless you worked something out with the specific frontend creator (or if one of them would create a plugin system) then I'm not sure what options you would have.
      AMD XP 2600+/512MB RAM/120GB hard drive
      Opus 150W/DVD/GPS/7" Lilliput TS/802.11g/Bluetooth
      Installed.


      -GPSSecure- - GPS Tracking
      -AltTabber2.2.2- - Handy touchscreen utility.

      Comment


      • #4
        I've looked into NES emulator sources and I'm not sure if I would be able to integrate into them. What I was thinking is writing an overlay frontend that would just call the system command to run the emulator with the filename of a rom as the argument and have it go to full screen automatically. Certain emulators you can set up to run fullscreen automatically. So all I would need to know is how to code a frontend that stays on top of the screen even when an app is in full screen mode.

        Comment


        • #5
          Originally posted by tmar89
          I've looked into NES emulator sources and I'm not sure if I would be able to integrate into them. What I was thinking is writing an overlay frontend that would just call the system command to run the emulator with the filename of a rom as the argument and have it go to full screen automatically. Certain emulators you can set up to run fullscreen automatically. So all I would need to know is how to code a frontend that stays on top of the screen even when an app is in full screen mode.
          Do you have/know how to program in .NET studio?
          AMD XP 2600+/512MB RAM/120GB hard drive
          Opus 150W/DVD/GPS/7" Lilliput TS/802.11g/Bluetooth
          Installed.


          -GPSSecure- - GPS Tracking
          -AltTabber2.2.2- - Handy touchscreen utility.

          Comment


          • #6
            You don't even need to integrate with it too much. You can have the emulator run, make sure your app is running on top (above the others in terms of z-order). To send commands you can simply send messages to the Window. Look up info on FindWindow and SendMessage you can send appropriate WM_KEYDOWN and WM_KEYUP messages to "simulate" the user hitting hotkeys or pulldown menus. You can use SetWindowPos to make your window "Always on top".

            I know this is very straightforward in C. In VB you may have to import those library functions, but I haven't used VB since 5.0. I think the syntax was Declare <the func> ByVal Lib <the lib>.

            Comment


            • #7
              Originally posted by TheLlama
              You don't even need to integrate with it too much. You can have the emulator run, make sure your app is running on top (above the others in terms of z-order). To send commands you can simply send messages to the Window. Look up info on FindWindow and SendMessage you can send appropriate WM_KEYDOWN and WM_KEYUP messages to "simulate" the user hitting hotkeys or pulldown menus. You can use SetWindowPos to make your window "Always on top".

              I know this is very straightforward in C. In VB you may have to import those library functions, but I haven't used VB since 5.0. I think the syntax was Declare <the func> ByVal Lib <the lib>.
              Problem with that is the app may not take sendkey commands (of course as I said it all depends on the frontend). You can try using the tab key to move around from control to control but that kind of sucks.
              AMD XP 2600+/512MB RAM/120GB hard drive
              Opus 150W/DVD/GPS/7" Lilliput TS/802.11g/Bluetooth
              Installed.


              -GPSSecure- - GPS Tracking
              -AltTabber2.2.2- - Handy touchscreen utility.

              Comment


              • #8
                I don't have much experience with .NET Studio but I do have experience with VB so I can't imagine I would have issues learning the new language.

                Comment


                • #9
                  You should look at the sources at: www.snex9x.com They're open-source and you should be able to adapt them to almost any operating system easily.
                  DashPC - The Linux Car (since 1999).

                  Dash LCD, Via Epia, GPS, XM, OBDII, DSSC Shutdown Controller.

                  As seen in the book Geek My Ride

                  Comment


                  • #10
                    Originally posted by TheLlama
                    You don't even need to integrate with it too much. You can have the emulator run, make sure your app is running on top (above the others in terms of z-order). To send commands you can simply send messages to the Window. Look up info on FindWindow and SendMessage you can send appropriate WM_KEYDOWN and WM_KEYUP messages to "simulate" the user hitting hotkeys or pulldown menus. You can use SetWindowPos to make your window "Always on top".

                    I know this is very straightforward in C. In VB you may have to import those library functions, but I haven't used VB since 5.0. I think the syntax was Declare <the func> ByVal Lib <the lib>.
                    Do you have any examples of this in C?

                    Comment


                    • #11
                      don't most front ends have a three key salute that eject you from the current game?? since you will be playing with a gamepad, etc... what about just looking into remapping non-used buttons on the controller to handle volume, etc??

                      I have a few versions of MAME and they all just kick back to the MAME frontend whenever you hit ESC, but on the MAMEoX (XBox) I think it is just Select/Start at the same time and you are back...
                      EPIA SP13000, 512 DDR400, Seagate 300GB, Belkin PCI 802.11g w/external antenna, Holux GM-210 GPS, XM Direct w/ serial, Dlink FM, Opus 120 p\s, Rockford P4004 amp, Xenarc 7" VGA touchscreen custom mounted in double din spot -- see pics and write up here!!

                      Comment


                      • #12
                        Originally posted by mgithens
                        don't most front ends have a three key salute that eject you from the current game?? since you will be playing with a gamepad, etc... what about just looking into remapping non-used buttons on the controller to handle volume, etc??

                        I have a few versions of MAME and they all just kick back to the MAME frontend whenever you hit ESC, but on the MAMEoX (XBox) I think it is just Select/Start at the same time and you are back...
                        Not a bad idea to look into

                        Comment


                        • #13
                          Originally posted by tmar89
                          Do you have any examples of this in C?
                          Humm, I don't have any examples since I haven't made a frontend for an emulator before. However, if you're looking for some code that will find the emulator window and some templates for sending receiving messages to and from then I will gladly whip up some snippets. Just ask.

                          Comment


                          • #14
                            Well emulators like MAME can be accessed using a simply command line like "MAME MSLUG3" which will run Metal Slug 3 without anything else seen, so maybe just a frontend full of these shortcuts?
                            CarPC status: iPod, 3,456,217 songs so **** you

                            Comment


                            • #15
                              But lets say you wanted to have buttons to perform save states and other operations. Ideally the emulator can take parameters for all these actions and tests to make sure only one instance is running at a time. However, most are not written this way.

                              Comment

                              Working...
                              X