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

    Sega model 3 #segamodel3

    Scheduled Pinned Locked Moved Ideas and Development
    sega model 3supermodel
    304 Posts 23 Posters 97.3k 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.
    • Red_TrevR
      Red_Trev @DTEAM
      last edited by

      @dteam said in Sega model 3 #segamodel3:

      @red_trev

      You have to set your gamepad before with:

      cd /opt/retropie/emulators/supermodel/bin
      ./supermodel -config-inputs
      

      If you go in your Supermodel.ini , you will see your default settings for Keyboard.

      like (partial view Supermodel.ini) :

      ; Common 
      InputStart1 = "KEY_1,JOY1_BUTTON9"
      InputStart2 = "KEY_2,JOY2_BUTTON9"
      InputCoin1 = "KEY_3,JOY1_BUTTON10"
      InputCoin2 = "KEY_4,JOY2_BUTTON10"
      InputServiceA = "KEY_5"
      InputServiceB = "KEY_7"
      InputTestA = "KEY_6"
      InputTestB = "KEY_8"
      

      have you tried the Xbox controller option described here ?
      https://www.supermodel3.com/AdvancedUsage.html#ConfigFile

      d7ef0a5b-6706-4803-8aa9-0f56cc6dea8c-image.png

      5c3e6daa-c708-4d2d-912a-598ca301bd03-image.png

      DTEAMD 1 Reply Last reply Reply Quote 0
      • DTEAMD
        DTEAM @Red_Trev
        last edited by DTEAM

        @red_trev

        When you set your controller, it sets your Supermodel.ini located in /opt/retropie/emulators/supermodel/bin/Config

        When It's done, you have to copy that file to /home/pi/Config or create a symbolic link with It :

        mkdir  /home/pi/Config
        ln -s /opt/retropie/emulators/supermodel/bin/Config/Supermodel.ini /home/pi/Config/Supermodel.ini
        
        

        Even if you used the other method, Supermodel.ini will be configured.

        @mechafatnick
        in supermodel.ini, I've try this to exit (where JOY1_BUTTON15 is my R3 button):

        InputUIExit = JOY1_BUTTON15
        

        But it doesn't work

        M 1 Reply Last reply Reply Quote 0
        • M
          mechafatnick @Red_Trev
          last edited by mechafatnick

          The command begin XINIT is just that - a command. You could quit out of ES and launch it by copying and pasting it into the command prompt.

          I'm not sure if you could go much bigger than that, mind you. i used 496 x 384 because it's the native resolution of the M3 hardware.

          Red_TrevR 2 Replies Last reply Reply Quote 0
          • M
            mechafatnick @DTEAM
            last edited by

            @dteam Yeah I think you'd were on the right track with diddling with the inputs in the source code.

            However, I suspect they're hardcoded for the moment because they break something if you mess with them. There is a Supermodel forum and they seem friendly enough. It might be worth asking there.

            DTEAMD 1 Reply Last reply Reply Quote 1
            • DTEAMD
              DTEAM @mechafatnick
              last edited by DTEAM

              @mechafatnick

              That's fine if they hardcoded that for the keyboard, but they should offer the option to set It in supermodel.ini for the gamepad, in parallel like the rest. That would be really great

              everything is already in Inputs.cpp to do that

              using namespace std;
              
              CInputs::CInputs(CInputSystem *system) : m_system(system)
              {
              	// UI controls are hard coded here, everything else is initialized to NONE so that it can be loaded from
              	// the config file.
              	
              	// UI Controls  
              	uiExit             = AddSwitchInput("UIExit",             "Exit UI",               GAME_INPUT_UI, "KEY_ESCAPE");
              	uiReset            = AddSwitchInput("UIReset",            "Reset",                 GAME_INPUT_UI, "KEY_ALT+KEY_R");
              	uiPause            = AddSwitchInput("UIPause",            "Pause",                 GAME_INPUT_UI, "KEY_ALT+KEY_P");
              	uiSaveState        = AddSwitchInput("UISaveState",        "Save State",            GAME_INPUT_UI, "KEY_F5");
              	uiChangeSlot       = AddSwitchInput("UIChangeSlot",       "Change Save Slot",      GAME_INPUT_UI, "KEY_F6");
              	uiLoadState        = AddSwitchInput("UILoadState",        "Load State",            GAME_INPUT_UI, "KEY_F7");
              	uiMusicVolUp	   = AddSwitchInput("UIMusicVolUp",		  "Increase Music Volume", GAME_INPUT_UI, "KEY_F10");
              	uiMusicVolDown	   = AddSwitchInput("UIMusicVolDown",	  "Decrease Music Volume", GAME_INPUT_UI, "KEY_F9");
              	uiSoundVolUp	   = AddSwitchInput("UISoundVolUp",		  "Increase Sound Volume", GAME_INPUT_UI, "KEY_F12");
              	uiSoundVolDown	   = AddSwitchInput("UISoundVolDown",	  "Decrease Sound Volume", GAME_INPUT_UI, "KEY_F11");
              	uiDumpInpState     = AddSwitchInput("UIDumpInputState",   "Dump Input State",      GAME_INPUT_UI, "NONE");	// disabled for release
              	uiClearNVRAM       = AddSwitchInput("UIClearNVRAM",       "Clear NVRAM",           GAME_INPUT_UI, "KEY_ALT+KEY_N");
              	uiSelectCrosshairs = AddSwitchInput("UISelectCrosshairs", "Select Crosshairs",     GAME_INPUT_UI, "KEY_ALT+KEY_I");
              	uiToggleFrLimit    = AddSwitchInput("UIToggleFrameLimit", "Toggle Frame Limiting", GAME_INPUT_UI, "KEY_ALT+KEY_T");
              #ifdef SUPERMODEL_DEBUGGER
              	uiEnterDebugger    = AddSwitchInput("UIEnterDebugger",    "Enter Debugger",        GAME_INPUT_UI, "KEY_ALT+KEY_B");
              #endif
              
              1 Reply Last reply Reply Quote 0
              • Red_TrevR
                Red_Trev @mechafatnick
                last edited by

                @mechafatnick said in Sega model 3 #segamodel3:

                The command begin XINIT is just that - a command. You could quit out of ES and launch it by copying and pasting it into the command prompt.

                I'm not sure if you could go much bigger than that, mind you. i used 496 x 384 because it's the native resolution of the M3 hardware.

                thanks ! one last question ... if i wanted to play this on retroarch, is it a matter of copying over the sane files u created or is it a whole new method ?

                I have retroarch installed on my Xbox one S and the graphics performance boost it gives to Dreamcast / PSP is amazing . would love to get supermodel on it too !

                M 1 Reply Last reply Reply Quote 0
                • M
                  mechafatnick @Red_Trev
                  last edited by

                  @red_trev another method. Unfortunately this version is a Linux executable, so won't work on the Xbox. It looks like work was started on a Retroarch version but it doesn't seem to have gone anywhere.

                  I don't know if you could install the windows version if the Xbox is in Dev mode?

                  Red_TrevR 1 Reply Last reply Reply Quote 0
                  • Red_TrevR
                    Red_Trev @mechafatnick
                    last edited by

                    @mechafatnick another option would be to convert the supermodel.exe to an app then load that in dev mode, though u would prob have to dev custom screens to input the options

                    1 Reply Last reply Reply Quote 0
                    • Red_TrevR
                      Red_Trev @mechafatnick
                      last edited by

                      @mechafatnick said in Sega model 3 #segamodel3:

                      The command begin XINIT is just that - a command. You could quit out of ES and launch it by copying and pasting it into the command prompt.

                      I'm not sure if you could go much bigger than that, mind you. i used 496 x 384 because it's the native resolution of the M3 hardware.

                      tried that but it threw an error:
                      bash:XINIT:/opt/retropie/emulators/supermodel/bin/supermodel : no such file or directory

                      even though I can navigate to that exact file via cmd line & have full rwxr permissions

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        mechafatnick @Red_Trev
                        last edited by

                        @red_trev That's weird! Maybe navigate to /opt/retropie/emulators/supermodel/bin/
                        and xinit supermodel, without the rest of the directory structure

                        Red_TrevR 1 Reply Last reply Reply Quote 0
                        • Red_TrevR
                          Red_Trev @mechafatnick
                          last edited by Red_Trev

                          @mechafatnick thanks , ill give that a go later ....

                          i have tried modifying the arcade 'emulators.cfg' to

                          supermodel = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -legacy3d -sound-volume=50 -music-volume=80 -no-vsync -no-throttle -no-dsb -res=1024,768 -fullscreen %ROM%"

                          when i launched a game, it had the same small video box in the center of the screen, the actual game picture seemed to be bigger but it was zoomed into the bottom left corner (and my controls stopped working)

                          is there anyway of preventing the output from being displayed like this ?

                          a953fcc6-7646-41bb-8d34-c06791d69c3a-image.png

                          also there is a method of setting resolution on a per game or global level via the Supermodel.ini file (https://www.supermodel3.com/AdvancedUsage.html#ConfigFile)

                          as this file appears in 3 places (config, bin, pi/home/config), i assume the same modified file must be placed in each place ?

                          and even then, how would the values in 'emulators.cfg' affect it ? which set of instructions take precedence ?

                          thanks again !

                          M Red_TrevR 2 Replies Last reply Reply Quote 0
                          • M
                            mechafatnick @Red_Trev
                            last edited by

                            @red_trev ahh remember you have two factors in play - the size of the screen the emulator is rendering and then the window the emulator is placed in in the pi.

                            It sounds like the emulator window is bigger as per the file but the actual window the emulator is being placed into isn't. You should be able to solve it by launching a game from emulation station, entering the configuration menu then changing the default video mode for super model (i use 87-46 myself.)

                            the one in /home/config is the one you need to edit. The arguments you feed to the editor will take priority so if you want to mess with the resolutions per game you'll need to dump those.

                            Remember though that the Pi is definitely not the optimum hardware for Model 3 emulation so i wouldn't push the resolution too far!

                            Red_TrevR 2 Replies Last reply Reply Quote 0
                            • Red_TrevR
                              Red_Trev @mechafatnick
                              last edited by Red_Trev

                              @mechafatnick i have had better luck with the cmd line ...

                              I cd to
                              /opt/retropie/emulators/supermodel/bin

                              then ran the command
                              ./supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 fvipers2.zip

                              which gave the following (poor screen shot)

                              712e1a58-0f9a-4dc2-9465-4361475c8122-image.png

                              Error: Failed to parse /opt/retropie/emulators/supermodel/bin/Config/Games.xml
                              Error: Game & ROM set definintions could not be loaded! ROMs will not be detected.
                              Error: Could not open 'fvipers2.zip'.

                              Looking at this, i believe fvipers2.zip has to be in /opt/retropie/emulators/supermodel/bin and i also must remove the part of the line which points to the xml, therefore i should run the following , please confirm ?

                              ./supermodel -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 ./fvipers2.zip

                              it seems to be they way its done in this video =>

                              )

                              M DTEAMD 2 Replies Last reply Reply Quote 0
                              • M
                                mechafatnick @Red_Trev
                                last edited by

                                @red_trev They're running it from the desktop so they already have a window system it can use. If we're running from the command line you need xinit to give it a window system. You also need to pass it the full path to the rom (eg. /home/pi/RetroPie/roms/model3/dirtdvls.zip)

                                not sure why the games.xml can't be parsed. I don't know if its the screenshot but it looks like 'Comfig rather than 'Config'

                                I can't believe i missed out on the whole PPC underclocking angle! That's quite an exciting easy update

                                Red_TrevR 1 Reply Last reply Reply Quote 0
                                • DTEAMD
                                  DTEAM @Red_Trev
                                  last edited by DTEAM

                                  @mechafatnick

                                  The method above (video) seems to be perfect to fix the exit buttons problem and more. I'll replace the Keyboard buttons combos for UI settings by gamepad buttons combos (and more save buttons). After that. I'll generate the Makefile and build with the following

                                  ln -s Makefiles/Makefile.UNIX Makefile .

                                  I'm not sure about his 3d setup. Have you an opinion about that. Does he make any tuning errors on the video for 3d?

                                  M 1 Reply Last reply Reply Quote 0
                                  • Red_TrevR
                                    Red_Trev @mechafatnick
                                    last edited by Red_Trev

                                    @mechafatnick got it working , and yes there was a typo ...

                                    first i Filezilla'd the ROM into the same folder as the supermodel emulator (opt/retropie/emulators/supermodel/bin)

                                    then via cmd line i cd to
                                    /opt/retropie/emulators/supermodel/bin

                                    then i ran the command
                                    ./supermodel -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=1000,768 ./fvipers2.zip

                                    no need for xinit as you can see ....

                                    3bf6bfab-90e1-42a1-8de5-9443f4fef7cf-image.png

                                    game loaded, all controlls worked, video filled the screen of my 28 inch tv perfectly, though it did seem to slow down the game slightly ....

                                    i will have a play around with the settings & when i find what works the best ill report back ;)

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mechafatnick @DTEAM
                                      last edited by

                                      @dteam let me know how you get on! 😁 I've already added a couple of options for underclocking and got a couple of titles running better.

                                      DTEAMD 1 Reply Last reply Reply Quote 0
                                      • DTEAMD
                                        DTEAM @mechafatnick
                                        last edited by DTEAM

                                        @mechafatnick
                                        I know, what you have done work very well. Honnestly, It's awesome! That's why I would like to continue to use it. Can you provide a link with what you have done, but not compiled with Makefiles. I would like to get what you have done but modify inputs.cpp

                                        like this :

                                        uiExit             = AddSwitchInput("UIExit",             "Exit UI",               GAME_INPUT_UI, "KEY_ESCAPE,JOY1_BUTTON1+JOY1_BUTTON10");
                                        

                                        or

                                        uiExit             = AddSwitchInput("UIExit",             "Exit UI",               GAME_INPUT_UI, "JOY1_BUTTON1+JOY1_BUTTON10");
                                        

                                        and after that use Makefiles

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          mechafatnick
                                          last edited by

                                          Controls
                                          @dteam Yep that'll work, but why stop there? If you change the system controls to common controls you can map all of them in supermodel.ini. This morning I edited inputs.cpp to comment out the lines corresponding to exit/pause/screenshot/save states and then add these lines to the common controls section :

                                          uiExit             = AddSwitchInput("UIExit",   "Exit UI",   Game::INPUT_COMMON, "NONE");
                                          uiPause            = AddSwitchInput("UIPause",  "Pause",     Game::INPUT_COMMON, "NONE");
                                          uiScreenshot       = AddSwitchInput("UIScreenShot",	 "Screenshot", Game::INPUT_COMMON, "NONE");
                                          uiSaveState        = AddSwitchInput("UISaveState",   "Save State",    Game::INPUT_COMMON, "NONE");
                                          uiLoadState        = AddSwitchInput("UILoadState",   "Load State",    Game::INPUT_UI, "NONE");
                                          

                                          Build it (you can follow the instructions in the video) You can then map all these functions in supermodel.ini:

                                          InputUIExit = KEY_ESCAPE,JOY1_BUTTON10+JOY1_BUTTON9
                                          InputUIPause = JOY1_BUTTON9+JOY1_BUTTON1
                                          InputUIScreenShot =  JOY1_BUTTON9+JOY1_BUTTON5
                                          InputUISaveState = JOY1_BUTTON9+JOY1_BUTTON7
                                          InputUILoadState = JOY1_BUTTON9+JOY1_BUTTON8
                                          

                                          Save states wont work for me, but the rest work a treat :D

                                          Performance
                                          In terms of performance, i originally completely the section about underclocking the PPC. When running games, the real CPU is occasionally idle while its waiting for memory transfers to happen, so why waste our precious PI resources emulating a CPU that isn't doing anything? Underclocking the CPU frees up Pi resources to run the rest of the emulation better, but underclocking it too far means that our emulated CPU can no longer run the game (in virtual fighter 3, for example, i had Kage literally come apart at the seams :D)

                                          What i did was edit /opt/retropie/configs/model3/emulators.cfg and clone the entry multiple times, with different clock rates from 48-25. This allows us to find the optimum for any given game and save it as that rom's custom emulator in emulation station:

                                          Supermodel-normal = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-45-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=45 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-48-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=48 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-40-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=40 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-35-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=35 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-30-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=30 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          Supermodel-25-hz-PPC-Underclock = "XINIT:/opt/retropie/emulators/supermodel/bin/supermodel -game-xml-file=/opt/retropie/emulators/supermodel/bin/Config/Games.xml -ppc-frequency=25 -legacy3d -sound-volume=50 -music-volume=60 -no-vsync -no-throttle -no-dsb -res=496,384 %ROM%"
                                          default = "Supermodel-45-hz-PPC-Underclock"
                                          
                                          DTEAMD 1 Reply Last reply Reply Quote 1
                                          • DTEAMD
                                            DTEAM @mechafatnick
                                            last edited by DTEAM

                                            @mechafatnick
                                            Awsome!! Is It updated on your download link? With what you have done, This could work like retroarch hotkeys. For savestate is It a folder problem? For Supermodel.ini, the emulator set control in the emulator folder but read in home/pi/Config that’s why I have use a symlink instead of a new supermodel.ini file (see my post about that above). For savestate it’s maybe the same. Maybe It create it in one place and read in another place.

                                            With dose changes, could it be on the official experimental list in retropie ?

                                            For the fullscreen problem, i’ll try to found a solution for that, but I’m not an expert for that 😁

                                            M 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.