Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Recalbox sur TV CRT en RGB

    Recalbox Général
    recalbox crt rgb
    51
    782
    705859
    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.
    • haricot
      haricot last edited by

      Hi Scandy,

      With Archimage Parameters , ES Station start in MODE=6 ( 480i 60hz)
      see Config.txt detail

      The Hdmi_cvt used here set the free MODE ( aka Mode 87)

      you have to configure your recalbox.conf in recalbox (or es_systems.cfg in retropie) for the emulators to use MODE=87
      for recalbox it's : global.videomode=DMT 87 HDMI
      like this the ES gui use 480i ( mode 6 ) and emulators use the mode you have set in config.txt ( the Hdmi_cvt= )

      hope it's help.

      Stéphane.

      Scandy 1 Reply Last reply Reply Quote 0
      • Scandy
        Scandy @haricot last edited by

        @haricot thank you for your answer but still it's not clear to me this: in config.txt it is like setting first hdmi_mode=87 and then hdmi_mode=6, right?
        So shouldn't the latter declaration (mode 6) disable the first (mode 87)? Or can I set multiple hdmi_modes at once?

        archimage 1 Reply Last reply Reply Quote 0
        • archimage
          archimage @Scandy last edited by archimage

          @Scandy It's quite simple :

          In config.txt there's only one mode activated by default HDMI_MODE=6 there's no HDMI_MODE=87 in this file.

          You create hdmi_cvt=1920 240 60 to recall it later with global.videmode=DMT 87 HDMI in the recalbox.conf file, it turns on the custom mode only when Retroarch launches. When Retroarch shuts down, it comes back to the default mode which is HDMI_MODE=6

          1 Reply Last reply Reply Quote 0
          • haricot
            haricot last edited by

            when you use Hdmi_cvt , you create an new mode
            Note that this simply creates the mode :group 2 mode 87.
            and when you use hdmi_mode , you select the mode.
            so in the config.txt from archimage when hdmi_cvt is used , it directly goes at 87 , but it use Mode 6 to start the frontend.
            only retroarch and so use the mode 87 we have created in config.txt.

            in conclusion
            HDMI_MODE select the current mode to display when hdmi_cvt create it at bottom , but don't use it.

            1 Reply Last reply Reply Quote 0
            • haricot
              haricot last edited by

              Re ,
              aprés foules de test , c'est au final bien mon adaptateur HDMI/VGA qui fige sur certains Timming , vous auriez pas le lien d'un produit qui passe les réso exotique ( genre sur amazon , ca serait parfait^^ ) ?

              merci d'avance.

              Stéphane.

              Substring Scandy 2 Replies Last reply Reply Quote 0
              • Substring
                Substring @haricot last edited by

                @haricot haha la ca va etre compliqué lol

                Former dev - Please reply with @substring so that i am notified when you answer me
                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                1 Reply Last reply Reply Quote 0
                • Scandy
                  Scandy @haricot last edited by

                  @haricot Cela pourrait être bon? 😉

                  1 Reply Last reply Reply Quote 0
                  • aTg
                    aTg last edited by

                    You are complicating life with the HDMI converter, I have already finished 10 cables if you want some. With the cable there is no problem with the hdmi_timings

                    Substring 1 Reply Last reply Reply Quote 1
                    • Substring
                      Substring @aTg last edited by

                      @aTg some people have wired their sticks on GPIO, so it's easier for them this way. We should find a way to use i2c with DPI

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                      1 Reply Last reply Reply Quote 0
                      • aTg
                        aTg last edited by aTg

                        I2c with DPI is not possible, but SPI with DPI yes:

                        alt text

                        I would very much help a programmer who made the soft with UINPUT and SPIDEV

                        Substring 1 Reply Last reply Reply Quote 0
                        • Substring
                          Substring @aTg last edited by

                          @aTg i'll ask another way : can you free the i2c bus and still enable your gpio2scart ?

                          Former dev - Please reply with @substring so that i am notified when you answer me
                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                          aTg 1 Reply Last reply Reply Quote 0
                          • aTg
                            aTg @Substring last edited by

                            @Substring No, are incompatible in many pins and not possible to move.
                            But with SPI is possible moving CS pin, RPi in last firmwares accepts any gpio to get CS and the other pins is posible integrate in hdmi_mode=3

                            Substring 1 Reply Last reply Reply Quote 0
                            • haricot
                              haricot last edited by

                              That was the start of my problem ...
                              I use the GPIO for input two Nintendo SNES PAD. I was commit to HDMI->VGA for the Display.

                              Solutions exist that can use SPI and input on the GPIO.
                              pi 2 jamma
                              but that cost a lot...

                              If we find cheaper hardware , it will be the perfect solution for many of use ....

                              Stéphane.

                              1 Reply Last reply Reply Quote 0
                              • Substring
                                Substring @aTg last edited by

                                @aTg Can't reach 60fps with SPI, so we can't go that way. I had hoped that you only needed as many GPIO as the total number of bits, but looks like this is not possible

                                Former dev - Please reply with @substring so that i am notified when you answer me
                                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                aTg 1 Reply Last reply Reply Quote 0
                                • aTg
                                  aTg @Substring last edited by aTg

                                  @Substring SPI for input buttons at 10Mhz and DPI for video output at the same time.

                                  It is totally possible with rgb565 mode3.

                                  Substring 1 Reply Last reply Reply Quote 0
                                  • Substring
                                    Substring @aTg last edited by

                                    @aTg so it means we can combine GPIO video DPI + a i2c MPC23017 ?

                                    Former dev - Please reply with @substring so that i am notified when you answer me
                                    Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                    aTg 1 Reply Last reply Reply Quote 0
                                    • aTg
                                      aTg @Substring last edited by aTg

                                      @Substring MCP23S17 is a SPI version, tomorrow i can upload a preliminar schematic to work, today i finish the last revision of rgb-pi with all improvements i can do and finally pass to the next project.

                                      1 Reply Last reply Reply Quote 0
                                      • haricot
                                        haricot last edited by

                                        @aTg , You made me curious 😄

                                        I'm more comfortable with code than electronic but may be i can be of some help.
                                        I found a lot of doc on SPI , but UINPUT is less common...

                                        somes questions :

                                        -MCP23S17 is a 16 bits inputs , using 2 Joystick and 6 buttons each will use more than 16 bits . does your schematic use two of them ?
                                        -Are you using INT or going on a read loop ?

                                        I take a look at Controlblock sourcecode , Adding a SPI input will not ask for tons of labor.

                                        waiting for your schematics and will make a prototype.

                                        Stéphane.

                                        Substring 1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring @haricot last edited by Substring

                                          @haricot We have the mk_gpio_arcade kernel module that is supposed to handle the MPC23017, so no need of any programming, it should already be implemented. Consider 1 MPC23017 per player.

                                          if you want some uinput examples, the easiest I know of is xarcade2jstick that we use for keyboard encoders : https://github.com/petrockblog/Xarcade2Jstick (and i'd love to make it a real configurable thing with ini file support for multiple encoders ... if you ever wanna contribute ... 😉

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                          1 Reply Last reply Reply Quote 0
                                          • aTg
                                            aTg last edited by aTg

                                            @haricot Im working on the code of ControlBlockService2 , This is a full working soft to mcp23s17 but the driver to control the chip is bcm2835.c and not is included the lines to use aany GPIO pin to CS, RPi last versions can drive CS from any GPIO pin makin an overlay and i compile one but the ControlBlock (CB) not works in a different pins that 7 or 8:

                                            The especific line on the code is here:

                                            bcm2835.h
                                            
                                            /*! \brief bcm2835SPIChipSelect
                                             Specify the SPI chip select pin(s)
                                            */
                                            typedef enum
                                            {
                                               BCM2835_SPI_CS0 = 0,     /*!< Chip Select 0 */
                                               BCM2835_SPI_CS1 = 1,     /*!< Chip Select 1 */
                                               BCM2835_SPI_CS2 = 2,     /*!< Chip Select 2 (ie pins CS1 and CS2 are asserted) */
                                               BCM2835_SPI_CS_NONE = 3,  /*!< No CS, control it yourself */
                                            
                                            } bcm2835SPIChipSelect;
                                            

                                            Here

                                            airspayce(.com)/mikem/bcm2835/group__constants.html#ga29bba154633d37d07fa130a86e4a1f2aurl REMOVE THE PARENTESIS I SPAM PROBLEM WITH TE FORUM

                                            explain the options por CS but i find another version of the driver.

                                            This include the GPIO CS options for a arduino project, i added the code and compile:

                                             /*! \brief bcm2835SPIChipSelect
                                               Specify the SPI chip select pin(s)
                                             */
                                             typedef enum
                                             {
                                                 BCM2835_SPI_CS0 = 0,     /*!< Chip Select 0 */
                                                 BCM2835_SPI_CS1 = 1,     /*!< Chip Select 1 */
                                                 BCM2835_SPI_CS2 = 2,     /*!< Chip Select 2 (ie pins CS1 and CS2 are asserted) */
                                                 BCM2835_SPI_CS_NONE = 3,  /*!< No CS, control it yourself */
                                            
                                                  // Only GPIO > 3 can be used (to not interfere with the previous value just above )
                                                      // Lucky we have plenty of theese pins
                                                 BCM2835_SPI_CS_GPIO4  = RPI_V2_GPIO_P1_07, 
                                                 BCM2835_SPI_CS_GPIO17 = RPI_V2_GPIO_P1_11, 
                                                 BCM2835_SPI_CS_GPIO18 = RPI_V2_GPIO_P1_12, 
                                                 BCM2835_SPI_CS_GPIO22 = RPI_V2_GPIO_P1_15, 
                                                 BCM2835_SPI_CS_GPIO23 = RPI_V2_GPIO_P1_16, 
                                                 BCM2835_SPI_CS_GPIO24 = RPI_V2_GPIO_P1_18, 
                                                 BCM2835_SPI_CS_GPIO25 = RPI_V2_GPIO_P1_18, 
                                                 BCM2835_SPI_CS_GPIO28 = RPI_V2_GPIO_P5_03, 
                                                 BCM2835_SPI_CS_GPIO29 = RPI_V2_GPIO_P5_04, 
                                                 BCM2835_SPI_CS_GPIO30 = RPI_V2_GPIO_P5_05, 
                                                 BCM2835_SPI_CS_GPIO31 = RPI_V2_GPIO_P5_06
                                            
                                             } bcm2835SPIChipSelect;
                                            

                                            After change the inicialization of the driver in bcm2835.c:

                                             void bcm2835_spi_begin(void)
                                             {
                                            volatile uint32_t* paddr;
                                            
                                            /* Set the SPI0 pins to the Alt 0 function to enable SPI0 access on them */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_26, BCM2835_GPIO_FSEL_ALT0); /* CE1 */
                                            -  bcm2835_gpio_fsel(RPI_GPIO_P1_24, BCM2835_GPIO_FSEL_ALT0); /* CE0 */
                                            + bcm2835_gpio_fsel(RPI_GPIO_P1_22, BCM2835_GPIO_FSEL_OUTP); /* CE0 */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_21, BCM2835_GPIO_FSEL_ALT0); /* MISO */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_19, BCM2835_GPIO_FSEL_ALT0); /* MOSI */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_23, BCM2835_GPIO_FSEL_ALT0); /* CLK */
                                            
                                            /* Set the SPI CS register to the some sensible defaults */
                                            paddr = bcm2835_spi0 + BCM2835_SPI0_CS/4;
                                            bcm2835_peri_write(paddr, 0); /* All 0s */
                                            
                                            /* Clear TX and RX fifos */
                                            bcm2835_peri_write_nb(paddr, BCM2835_SPI0_CS_CLEAR);
                                             }
                                            
                                             void bcm2835_spi_end(void)
                                             {  
                                            /* Set all the SPI0 pins back to input */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_26, BCM2835_GPIO_FSEL_INPT); /* CE1 */ 
                                            - bcm2835_gpio_fsel(RPI_GPIO_P1_24, BCM2835_GPIO_FSEL_INPT); /* CE0 */
                                            + bcm2835_gpio_fsel(RPI_GPIO_P1_22, BCM2835_GPIO_FSEL_INPT); /* CE0 */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_21, BCM2835_GPIO_FSEL_INPT); /* MISO */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_19, BCM2835_GPIO_FSEL_INPT); /* MOSI */
                                            bcm2835_gpio_fsel(RPI_GPIO_P1_23, BCM2835_GPIO_FSEL_INPT); /* CLK */
                                             }
                                            

                                            And finally i change the file mcp23s17pi.cpp and recompile CB:

                                             bcm2835_spi_begin();
                                            
                                                  bcm2835_spi_setClockDivider (BCM2835_SPI_CLOCK_DIVIDER_32);    // 3.9 MHz     
                                                  bcm2835_spi_chipSelect(BCM2835_SPI_CS_GPIO25);                
                                            

                                            All is compiled without errors but not work :_(

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

                                            Want to support us ?

                                            94
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com