RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support

    Scheduled Pinned Locked Moved Ideas and Development
    mame
    1.5k Posts 70 Posters 1.8m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • robertvb83R
      robertvb83 @grant2258
      last edited by robertvb83

      @grant2258 i dont want to but i have to, because there is no arcade layout for 4 button games on a 6 button panel
      4
      123
      is not by any means a proper arcade layout

      but yes understanding and learning RA is key and then its only 5 minutes to do whatever you want

      G 1 Reply Last reply Reply Quote 0
      • G
        grant2258 Banned @robertvb83
        last edited by

        @robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:

        caus

        agreed but its just as valid as
        34
        12

        robertvb83R 1 Reply Last reply Reply Quote 0
        • robertvb83R
          robertvb83 @grant2258
          last edited by robertvb83

          @grant2258 said in mame2003-plus: 250 new games, new input system, new features, new bugs:

          @robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:

          caus

          agreed but its just as valid as
          34
          12

          i can accept that

          1 Reply Last reply Reply Quote 0
          • RiverstormR
            Riverstorm
            last edited by Riverstorm

            Maybe a different way to explain it using your example above. I just trying to make a point about the concept and not the actual values. Here is your mapping example below.

            Subtype:

            345
            YXL
            BAR
            123

            MAME Mappings:

            MAME 1 = RA B
            MAME 2 = RA A
            MAME 3 = RA R
            MAME 3 = RA Y
            MAME 4 = RA X
            MAME 5 = RA L
            MAME 6 = ? (NUL)

            Looking at the above example you mapped button 3 twice. You're saying MAME 3 = 'RA R' and you're saying MAME 3 = 'RA Y' at the same time. I don't know but maybe @grant2258 could answer the question if that can even be done.

            Also MAME 6 is not mapped to any RA field. There's no RA to MAME mapping so button 6 will never be available, even with overrides because it's not mapped to anything.

            You could theoretically use the MAME Remapper to assign a value to MAME button 6 basically skipping RA altogether which defeats the point of RA subtypes.

            MAME games are still using MAME button 6 but you didn't map any RA fields so it's going to do nothing as long as your subtype is loaded.

            So any games coded in MAME to use button 6 will not work. Basically 6 button games wouldn't work properly with this subtype if that makes sense.

            G 1 Reply Last reply Reply Quote 0
            • G
              grant2258 Banned @Riverstorm
              last edited by grant2258

              @riverstorm

              let me explain it this way
              YXL
              BAR

              this is how you physically bind your controller (in retropie its when configure your input for the controller)

              when you select arcade 6 panel mame will smart map the default i set for this
              123
              456

              when you go into select+x then choose controls you can remap all buttons to button 1 if you choose too or a button per retropad.

              When you save this remap per game or per core(core in this case is mame 2003+) it will be the new map you set mame2003+ if you choose core. It wont effect anything outside of mame2003+

              however mame2003 is doing it a very different way and you setup will be different for that.

              here is something you can do to make your life easier

              type

              cd /opt/retropie/configs/all/retroarch/autoconfig/
              ls
              you will see your controler.cfg file

              type pico controlerfilename.cfg

              add this too it at the end i really think retropie should be doing this

              input_x_btn_label = "X"
              input_a_btn_label = "A"
              input_b_btn_label = "B"
              input_y_btn_label = "Y"
              input_l_btn_label = "L"
              input_r_btn_label = "R"
              input_l2_btn_label = "L2"
              input_r2_btn_label = "R2"
              input_select_btn_label = "Select"
              input_start_btn_label = "Start"
              input_l3_btn_label = "L3"
              input_r3_btn_label = "R3"

              press ctrl+x to save

              start mame and your controls screen will make sense

              0_1528316542924_snapshot.png

              without adding button labels it looks like this not cool at all

              https://retropie.org.uk/forum/topic/17766/mame2003-plus-250-new-games-new-input-system-new-features-new-bugs/247

              1 Reply Last reply Reply Quote 0
              • RiverstormR
                Riverstorm
                last edited by Riverstorm

                @grant2258 - I am still missing a piece. I modify this file by hand immediately after the initial RetroPie setup. I change defaults for my controller. Also below that is my all/retroarch.cfg for "keyboard/IPAC" input modifications which I also modify by hand. Then I move to <system>/retoarch.cfg for system overrides, then to MAME 2003-plus.cfg for core overrides and finally to ROM level overrides. I am familiar with these files. I use all these overrides in my typical setup.

                I thought these RA fields were cross-mapped to MAME keys 1-10. How do RA front-end fields get mapped back to Plus?

                I might be oversimplifying but I was thinking some struct that says something like this or the way I understand it.

                MAME B1 = input_b_btn && input_player1_b

                When RetroPie boots the first time you assign values to each field and no duplicates are allowed. I suppose you could manually modify retroarch.cfg to assign duplicate values though.

                Xbox 360 Wireless Receiver.cfg

                input_device = "Xbox 360 Wireless Receiver"
                input_driver = "udev"
                input_r_y_plus_axis = "+3"
                input_l3_btn = "11"
                input_r_x_minus_axis = "-2"
                input_l_btn = "4"
                input_load_state_btn = "16"
                input_start_btn = "9"
                input_exit_emulator_btn = "9"
                input_l_y_minus_axis = "-1"
                input_up_btn = "15"
                input_r_y_minus_axis = "-3"
                input_a_btn = "1"
                input_b_btn = "0"
                input_reset_btn = "nul"
                input_reset_axis = "-0"
                input_enable_hotkey_btn = "8"
                input_down_btn = "16"
                input_l_x_plus_axis = "+0"
                input_l_y_plus_axis = "+1"
                input_r_btn = "5"
                input_save_state_btn = "15"
                input_r2_btn = "7"
                input_r3_btn = "12"
                input_right_btn = "14"
                input_state_slot_increase_btn = "14"
                input_x_btn = "3"
                input_menu_toggle_btn = "3"
                input_select_btn = "8"
                input_l_x_minus_axis = "-0"
                input_y_btn = "2"
                input_left_btn = "13"
                input_state_slot_decrease_btn = "13"
                input_r_x_plus_axis = "+2"
                input_l2_btn = "6"
                input_screenshot_btn = "5"
                

                all/retroarch.cfg:

                # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely,
                # rather than relying on a default.
                input_player1_a = "alt"
                input_player1_b = "ctrl"
                input_player1_y = "shift"
                input_player1_x = "space"
                input_player1_start = "num1"
                input_player1_select = "num5"
                input_player1_l = "z"
                input_player1_r = "x"
                input_player1_left = "left"
                input_player1_right = "right"
                input_player1_up = "up"
                input_player1_down = "down"
                # input_player1_l2 =
                # input_player1_r2 =
                # input_player1_l3 =
                # input_player1_r3 =
                
                G robertvb83R 2 Replies Last reply Reply Quote 0
                • G
                  grant2258 Banned @Riverstorm
                  last edited by grant2258

                  @Riverstorm Keyboard is something different

                  this applies to controller setups what exactly are you asking ?

                  if you add below to the end of Xbox 360 Wireless Receiver.cfg

                  you will see exactly how your xbox360 pad is mapped with the retropad you choose for it

                  input_x_btn_label = "X"
                  input_a_btn_label = "A"
                  input_b_btn_label = "B"
                  input_y_btn_label = "Y"
                  input_l_btn_label = "L"
                  input_r_btn_label = "R"
                  input_l2_btn_label = "L2"
                  input_r2_btn_label = "R2"
                  input_select_btn_label = "Select"
                  input_start_btn_label = "Start"
                  input_l3_btn_label = "L3"
                  input_r3_btn_label = "R3"

                  1 Reply Last reply Reply Quote 0
                  • RiverstormR
                    Riverstorm
                    last edited by

                    I'm not sure exactly now. I am trying to figure out how the RA fields/values are passed to Plus but maybe it doesn't matter at this point what's happening under the hood and just what I can see as a user. I get stuck in that how does the code look from a bird's eye view. I get stuck in ideas of variables, strings, float, if/else/then, for/next, structures, subscripts, array's, C pointers, etc. My head swim's with programming concepts but I guess the end game is a decent layout so it probably doesn't matter now. Always good conversation I guess! ;)

                    G 1 Reply Last reply Reply Quote 0
                    • G
                      grant2258 Banned @Riverstorm
                      last edited by grant2258

                      @riverstorm said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                      ode look fr

                      6 panel is passed as 
                      YXL
                      BAR
                      physical layout
                      
                      8 panel is passed as 
                      Y X L R
                      B A L2 R2
                      physical layout
                      
                      
                      retropad is passed as
                        L2      R2
                        L       R
                           Y X
                           b a
                      
                      physical layout
                      
                      thats how you work your mapping out to each one
                      
                      
                      if you picked the 6 panel retropad  for 8 panel physical mapping this is  what would happen to the mame button.
                      
                      
                      1 2 3 6
                      Y X L R
                      B A L2 R2
                      4 5
                      
                      in 6 pannel physical mapping it translates right
                      1 2 3
                      X Y L
                      B A R
                      4 5 6
                      
                      your global mapping is how you bind your controller physically with ES in retropie
                      robertvb83R 1 Reply Last reply Reply Quote 0
                      • robertvb83R
                        robertvb83 @Riverstorm
                        last edited by

                        @riverstorm said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                        @grant2258 - I am still missing a piece. I modify this file by hand immediately after the initial RetroPie setup. I change defaults for my controller. Also below that is my all/retroarch.cfg for "keyboard/IPAC" input modifications which I also modify by hand. Then I move to <system>/retoarch.cfg for system overrides, then to MAME 2003-plus.cfg for core overrides and finally to ROM level overrides. I am familiar with these files. I use all these overrides in my typical setup.

                        this sounds like much trouble, why do you need to configure that on so many levels. i know of the different possibilities (game specific cfg overrides and input remapping) but you should really use them alternatively and not all together?

                        for an xbox pad it is sufficient to have it autoconfigured in ES and then use the RA input remapping core wide and game specific

                        1 Reply Last reply Reply Quote 0
                        • robertvb83R
                          robertvb83 @grant2258
                          last edited by robertvb83

                          This post is deleted!
                          G 1 Reply Last reply Reply Quote 0
                          • G
                            grant2258 Banned @robertvb83
                            last edited by grant2258

                            @robertvb83 fixed it before you posted this im typing by hand. This is why the automaps are there for people who really dont understand this its just to give them the best defaults all rounf till they grasp it

                            1 Reply Last reply Reply Quote 0
                            • RiverstormR
                              Riverstorm
                              last edited by

                              @robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                              this sounds like much trouble, why do you need to configure that on so many levels. i know of the different possibilities (game specific cfg overrides and input remapping) but you should really use them alternatively and not all together?

                              I don't want to go down that rabbit hole but global is what it is at the top, system allows me to make MAME changes across multiple cores, I prefer my FBA to have a different key layout so I use core. ROM level I use for artwork, shaders, custom resolutions, etc.

                              I guess as you go you add more customization to your setup.

                              I think that was just a typo by Grant and nothing serious.

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                grant2258 Banned @Riverstorm
                                last edited by grant2258

                                @riverstorm said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                                @robertvb83 said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                                this sounds like much trouble, why do you need to configure that on so many levels. i know of the different possibilities (game specific cfg overrides and input remapping) but you should really use them alternatively and not all together?

                                I don't want to go down that rabbit hole but global is what it is at the top, system allows me to make MAME changes across multiple cores, I prefer my FBA to have a different key layout so I use core. ROM level I use for artwork, shaders, custom resolutions, etc.

                                I guess as you go you add more customization to your setup.

                                I think that was just a typo by Grant and nothing serious.

                                YXL
                                BAR

                                is the 6 panel mapping so you can use all cores as closely as possible to a snes pad layout thats why this was chosen for the 6 panel. The l and r have to be there physically for the layout.

                                on a 8 panel y x r l makes more sens for your left right so you know roughtly where your buttons are.
                                when playing psx ect

                                and then the normal retropad will need maps I dont think whats there is very much but im not really a gamepad user so dont know the best maps people want for them. It will be at least a sf2 and other aka modern gamepad and classic

                                @robertvb83 are you happy with this binding it can be changed i though i was a sensible default for 6 pad panels for all core defaults in ra

                                1 Reply Last reply Reply Quote 0
                                • RiverstormR
                                  Riverstorm
                                  last edited by

                                  @grant2258 - I don't mind the tweaks. I can go from a stock image to fully configured in not much over the time it takes to copy the ROMs. I don't think my overrides are excessive but they do allow me to dial in my setup precisely with some nice optionals. They can actually be used for most anything and not just layouts.

                                  I think any layout works as long as all 6 buttons are mapped. Core overrides really are pretty straight forward if another layout is preferred. The subtype of a bottom row set of keys for simple games & palm resting would have just been icing on the cake. At some point I hope to have 8 buttons so I can implement a proper Neo-Geo, CPS, etc. setup! ;)

                                  I'll have to put some thought into what you wrote and maybe take a peek at the code so it makes more sense. I can manipulate RA to whatever setup I need and maybe understanding the underlying code doesn't bring much value to the end user.

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    grant2258 Banned @Riverstorm
                                    last edited by grant2258

                                    @riverstorm said in mame2003-plus: 250 new games, new input system, new features, new bugs:

                                    @grant2258 - I don't mind the tweaks. I can go from a stock image to fully configured in not much over the time it takes to copy the ROMs. I don't think my overrides are excessive but they do allow me to dial in my setup precisely with some nice optionals. They can actually be used for most anything and not just layouts.

                                    I think any layout works as long as all 6 buttons are mapped. Core overrides really are pretty straight forward if another layout is preferred. The subtype of a bottom row set of keys for simple games & palm resting would have just been icing on the cake. At some point I hope to have 8 buttons so I can implement a proper Neo-Geo, CPS, etc. setup! ;)

                                    I'll have to put some thought into what you wrote and maybe take a peek at the code so it makes more sense. I can manipulate RA to whatever setup I need and maybe understanding the underlying code doesn't bring much value to the end user.

                                    @Riverstorm it brings high value to the mame setup if you understand it.

                                    Before you where stuck to one layout choice now you can have a 8 button , 6 button and a xboxpad auto setup just by picking the retropad type for the player number. You really need to understand it though.

                                    basically you install set your 6 panel up to
                                    XYL
                                    BAR

                                    everything should work including mame if you pick the 6 panel layout for the retropad number the controller is in. Well the mame defaults as they are having the inverse
                                    456
                                    123

                                    and
                                    456
                                    1234

                                    would be ideal for both panels but the alt panel will be user voted seems the fairest way to do it

                                    1 Reply Last reply Reply Quote 0
                                    • RiverstormR
                                      Riverstorm
                                      last edited by Riverstorm

                                      @grant2258 - Yep I am aware of the options available and I use most of them. I was referring to understanding exactly how it works from a coding perspective, which isn't necessary to use RetroPie/RA...but probably helpful.

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        grant2258 Banned
                                        last edited by grant2258

                                        @Riverstorm here is where we tell the controls menu what retropad buttons do for mame

                                        https://github.com/libretro/mame2003-plus-libretro/blob/050ba51cccd6ca63ce039eb9076f0d6638e10507/src/mame2003/mame2003.c#L1196

                                        here is where we define the retropad layouts for mameification
                                        https://github.com/libretro/mame2003-plus-libretro/blob/050ba51cccd6ca63ce039eb9076f0d6638e10507/src/mame2003/mame2003.c#L1325

                                        and we have a system that can be remaped in ra hope this helps you understand a bit better

                                        trust me im over simplifying here mark has put a lot of though time and effort into this and i think he done a great job of it

                                        1 Reply Last reply Reply Quote 0
                                        • RiverstormR
                                          Riverstorm
                                          last edited by Riverstorm

                                          @grant2258 - Heading out here I do appreciate you taking the time to explain it and also the links. Not something a programmer has to do but incredibly neat. I do believe it is more complex then what you outlined. The RGUI menu options for Plus looks great. I love the per user layouts. Well thought out and implemented!

                                          I always try your Input Interface & Layout after each update pertaining to them to get a feel of what you're changing. Anyway I just update a few hours ago and tried Input Interface = retropad and cycled through the player layouts modern, 6-button & 8-button. When playing Donkey Kong all layouts require Y (physical button X) to jump on a 360 controller or Final Fight is YX (physical buttons XY) to punch and kick.

                                          I just prefer BA (physical button AB) to jump, punch & kick, etc. on a 360 so I don't need to reach my thumb over the BA buttons to get at the YX buttons or when I am excitedly playing hit the wrong button under my thumb so I remap. It saves a half-inch thumb stretch and no under thumb buttons! ;)

                                          I know covering every scenario is impossible so once I have my remap I just dump it in my "mirror" setup to bulk copy it over to RP after the initial setup and all is right as rain.

                                          EDIT: I don't mind the CLI vs. GUI.

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            grant2258 Banned @Riverstorm
                                            last edited by grant2258

                                            @riverstorm I do believe the classic option should be in there as well as far as i know its not the last time i checked.

                                            I dont know if its the exact layout you want but there can more than one gamepad layout only ones there now seem to be the snes(6panel) and gamepad(modern sf2) both sf2 variants. classic and something else as well if classic doesnt suit your needs would be beneficial for users that play more than sf2

                                            this is classic if it doesnt suit please post your one as well and ill change it into code and put a pr in for mark to look over

                                            5           6 
                                            L           R
                                            
                                                  3 4
                                                  Y X 
                                                  B A 
                                                  1 2          
                                            

                                            As you can see this is the controller shape pattern robert wanted for his panel it's probably the most logical mapping for a 2x2 gamepad in mame if your not playing sf2.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.