RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Emulate Specific Machine in Retropie MSX

    Scheduled Pinned Locked Moved Help and Support
    msxarabic msxal alamiyahax170sakhar
    36 Posts 5 Posters 6.6k 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.
    • S
      Shinobi
      last edited by

      Hi..

      I am using Retropie for emulating a bunch of retro systems including MSX, it works great.

      My problem is when running Arabic MSX ROMs which are mostly educational Arabic software from the 80's. The Arabic characters of title screen appears as some strange ASCII characters.
      I knew the problem was in the MSX machine I emulate, so I copied all machines and databases from BlueMSX for PC and put them in BIOS folder of RetroPie. My problem is that there is no way in the emulator to choose the specific MSX machine I want to emulate which is MSX - Arabic or MSX - Al Alamiah AX-170.
      I had an idea to rename the Arabic BIOS file to MSX.ROM in Machines/Shared Roms folder, but in this case when running any MSX Game it just goes blank and retrun to main menu again i.e. the emulator won't run.
      I had another idea to play with config file in Machines/MSX/ (which is the default machine that BlueMSX emulate) and I put the path for Arabic BIOS and ROM unders [Slots] and it didn't work. BlueMSX just refuse to work when changing anything in its machines.
      One other solution is running the Arabic ROM as Cartridge, but i got problems in input, and can't load another cartridge (for the educational software).
      Also, there is no Sound in MSX under RetroPie. I wonder why.

      It seems that other Arabic cartridges from another manufacturer (Barq) works greate without the need to Arabic BIOS. The 75 educational cartridges that need Arabic ROM is from the Arabic MSX manufacturer itself (Al Alamiyah)..

      Any suggestions, solutions is welcomed.

      BlueMSX for windows is so simple and perfect, why everything under Linux is so quirky and not good as under windows (since I tried OpenMSX under Raspbian and it's too quirky). Tried fMSX too, BlueMSX is the best yet.

      edmaul69E 2 Replies Last reply Reply Quote 0
      • edmaul69E
        edmaul69 @Shinobi
        last edited by

        @shinobi are you saying there is no sound for you in bluemsx at all? Because the audio works fine for me.

        1 Reply Last reply Reply Quote 0
        • edmaul69E
          edmaul69 @Shinobi
          last edited by

          @shinobi according to this page it shows how the bios names are and shows the arabic bios’ as useable. Have you tried going into the retroarch gui, then go into quick menu and then options and tried changing the system to the arabic msx?

          1 Reply Last reply Reply Quote 0
          • S
            Shinobi
            last edited by

            @edmaul69 , no sound in blueMSX at all..
            Yes I tried by pressing select+x and then choosing "quick menu", then options, then choosing the machine to emulate which are MSX,MSX2,MSX2+,TurboMSX. There is no Arabic or Brazilian or any of the specific MSX machine shown in the page you linked to.

            I emulated my problem in BlueMSX under windows since you can choose which machine to emulate, I chose MSX from machine editor and loaded my Arabic Al Alamiyah Cartridge, and the same result appeared, Arabic Letters as Rubbish characters and the software stops at the so called Arabic title screen.
            This proved that BlueMSX under retropie is using MSX machine and not any other Arabic or other machine from the list in BIOS list in the Page you linked.

            edmaul69E 1 Reply Last reply Reply Quote 0
            • edmaul69E
              edmaul69 @Shinobi
              last edited by

              @shinobi in emulationstation’s start menu did you turn the volume up from 77% to 100%? For whatever reason when you install Retropie it starts on 77% and you have to turn it up manually. Some emulators volume is too low when it is at 77%. Do you get sound in everything else?

              S 1 Reply Last reply Reply Quote 0
              • S
                Shinobi @edmaul69
                last edited by

                @edmaul69 I know and I made it 100%, now sound is not my real problem, flashing the microSD again will solve the problem.
                My real problem is emulating specific machine (any machine in Machines folder of BlueMSX)..

                edmaul69E 1 Reply Last reply Reply Quote 0
                • edmaul69E
                  edmaul69 @Shinobi
                  last edited by

                  @shinobi are you putting your bios’ in the machines folder or directly in the bios folder? I think they need to be directly in the bios folder

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Shinobi @edmaul69
                    last edited by

                    @edmaul69 I put the machines folder inside the BIOS folder. I'll try to put them directly inside the BIOS (without being inside machines folder) and I'll see the result and see if it works.
                    Where can I send or talk directly with the guys responsible of BlueMSX for retroarch (that's used in LAKKA or Retropie) do they have a forum or blog so that I can inform them of the problem..

                    edmaul69E 1 Reply Last reply Reply Quote 0
                    • edmaul69E
                      edmaul69 @Shinobi
                      last edited by

                      @shinobi did some guide tell you to put the bios’ in a machine folder?

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

                        /home/pi/RetroPie/BIOS/Machines/Shared Roms/

                        The following is a list of roms that can be added to the shared folder:

                        ARAB1.ROM
                        ARABIC.rom
                        BEERIDE.ROM
                        FMPAC.rom
                        GCVMX80.ROM
                        HANGUL.rom
                        KANJI.rom
                        MICROSOLDISK.ROM
                        MOONSOUND.rom
                        MSX2AREXT.ROM
                        MSX2AR.ROM
                        MSX2BREXT.rom
                        MSX2BR.rom
                        MSX2EXT.rom
                        MSX2FREXT.rom
                        MSX2FR.rom
                        MSX2GEXT.rom
                        MSX2G.rom
                        MSX2HAN.rom
                        MSX2JEXT.rom
                        MSX2J.rom
                        MSX2KREXT.rom
                        MSX2KR.rom
                        MSX2PEXT.rom
                        MSX2PMUS.rom
                        MSX2P.rom
                        MSX2R2.ROM
                        MSX2REXT.rom
                        MSX2.rom
                        MSX2R.rom
                        MSX2SE.rom
                        MSX2SPEXT.rom
                        MSX2SP.rom
                        MSXAR.ROM
                        MSXBR.rom
                        MSXDOS23.ROM
                        MSXFR.rom
                        MSXG.rom
                        MSXHAN.rom
                        MSXJ.rom
                        MSXKANJI.rom
                        MSXKR.rom
                        MSXR2.rom
                        MSX.rom
                        MSXR.rom
                        MSXSE.ROM
                        MSXSP.rom
                        MSXTREXT.ROM
                        MSXTRMUS.ROM
                        MSXTROPT.ROM
                        MSXTR.ROM
                        NATIONALDISK.rom
                        NOVAXIS.rom
                        PAINT.rom
                        PANASONICDISK.rom
                        PHILIPSDISK.rom
                        RS232.ROM
                        SUNRISEIDE.rom
                        SWP.rom
                        XBASIC2.rom
                        

                        can you also post your /opt/retropie/configs/msx/retroarch.cfg

                        i dont have this emulato installed but if that information doesnt work ill install it or compile it and see if i can find any problems with what your trying to do.

                        https://github.com/retropie/retropie-setup/wiki/MSX

                        1 Reply Last reply Reply Quote 0
                        • S
                          Shinobi
                          last edited by

                          @edmaul69 This guide
                          https://github.com/retropie/retropie-setup/wiki/MSX
                          Said clearly that Machines must be in BIOS folder when explaining about shared ROMs.

                          @grant2258 , I took the Machines folder from Full install for BlueMSX for windows, it got "Shared Roms" folder with all files you listed.
                          these are contents of /opt/retropie/configs/msx/retroarch.cfg

                          # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
                          
                          input_remapping_directory = "/opt/retropie/configs/msx/"
                          
                          #include "/opt/retropie/configs/all/retroarch.cfg"
                          
                          
                          

                          contents of " /opt/retropie/configs/all/retroarch-core-options.cfg"
                          when i try to change the line below (third to end of file)
                          bluemsx_msxtype = "MSX2+"
                          I change MSX2+ to name of arabic msx machine folder or MSX2 Arabic (like in nlMSX emulator) it just saves then when check it again it is MSX2 or MSX2+, it seems that the emulator change it to the value it knows.

                          cap32_autorun = "enabled"
                          cap32_Model = "6128"
                          cap32_Ram = "128"
                          fba-diagnostic-input = "Hold Start"
                          fuse_machine = "Spectrum 128K"
                          gambatte_gb_colorization = "custom"
                          mame2003-skip_disclaimer = "enabled"
                          mame2003-dcs-speedhack = "enabled"
                          mame2003-samples = "enabled"
                          nestopia_blargg_ntsc_filter = "disabled"
                          nestopia_palette = "consumer"
                          nestopia_nospritelimit = "disabled"
                          nestopia_fds_auto_insert = "enabled"
                          nestopia_overscan_v = "enabled"
                          nestopia_overscan_h = "disabled"
                          nestopia_aspect = "auto"
                          nestopia_genie_distortion = "disabled"
                          nestopia_favored_system = "auto"
                          nestopia_ram_power_state = "0x00"
                          nestopia_turbo_pulse = "2"
                          gambatte_gb_internal_palette = "GBC - Blue"
                          gambatte_gbc_color_correction = "enabled"
                          gambatte_gb_hwmode = "Auto"
                          gambatte_gb_bootloader = "enabled"
                          gambatte_gb_link_mode = "Not Connected"
                          gambatte_gb_link_network_port = "56400"
                          gambatte_gb_link_network_server_ip_octet1 = "0"
                          gambatte_gb_link_network_server_ip_octet2 = "0"
                          gambatte_gb_link_network_server_ip_octet3 = "0"
                          gambatte_gb_link_network_server_ip_octet4 = "0"
                          picodrive_input1 = "3 button pad"
                          picodrive_input2 = "3 button pad"
                          picodrive_sprlim = "disabled"
                          picodrive_ramcart = "disabled"
                          picodrive_region = "Auto"
                          picodrive_region_fps = "Auto"
                          picodrive_aspect = "PAR"
                          picodrive_overscan = "disabled"
                          picodrive_drc = "enabled"
                          fmsx_mode = "MSX1"
                          mupen64-gfxplugin = "rice"
                          mupen64-gfxplugin-accuracy = "low"
                          mupen64-screensize = "640x480"
                          pcsx_rearmed_frameskip = "0"
                          pcsx_rearmed_region = "Auto"
                          pcsx_rearmed_pad1type = "default"
                          pcsx_rearmed_pad2type = "default"
                          pcsx_rearmed_pad3type = "default"
                          pcsx_rearmed_pad4type = "default"
                          pcsx_rearmed_pad5type = "default"
                          pcsx_rearmed_pad6type = "default"
                          pcsx_rearmed_pad7type = "default"
                          pcsx_rearmed_pad8type = "default"
                          pcsx_rearmed_multitap1 = "auto"
                          pcsx_rearmed_multitap2 = "auto"
                          pcsx_rearmed_vibration = "enabled"
                          pcsx_rearmed_dithering = "enabled"
                          pcsx_rearmed_drc = "enabled"
                          pcsx_rearmed_neon_interlace_enable = "disabled"
                          pcsx_rearmed_neon_enhancement_enable = "disabled"
                          pcsx_rearmed_neon_enhancement_no_main = "disabled"
                          pcsx_rearmed_duping_enable = "enabled"
                          pcsx_rearmed_show_bios_bootlogo = "disabled"
                          pcsx_rearmed_spu_reverb = "enabled"
                          pcsx_rearmed_spu_interpolation = "simple"
                          pcsx_rearmed_pe2_fix = "disabled"
                          pcsx_rearmed_inuyasha_fix = "disabled"
                          fmsx_video_mode = "NTSC"
                          fmsx_mapper_type_mode = "Guess Mapper Type A"
                          pce_fast_cdimagecache = "disabled"
                          pce_nospritelimit = "disabled"
                          pce_ocmultiplier = "1"
                          pce_hoverscan = "352"
                          pce_initial_scanline = "3"
                          pce_last_scanline = "242"
                          pce_cddavolume = "100"
                          pce_adpcmvolume = "100"
                          pce_cdpsgvolume = "100"
                          pce_cdspeed = "1"
                          Turbo_Delay = "Fast"
                          p0_turbo_I_enable = "disabled"
                          p0_turbo_II_enable = "disabled"
                          p1_turbo_I_enable = "disabled"
                          p1_turbo_II_enable = "disabled"
                          p2_turbo_I_enable = "disabled"
                          p2_turbo_II_enable = "disabled"
                          p3_turbo_I_enable = "disabled"
                          p3_turbo_II_enable = "disabled"
                          p4_turbo_I_enable = "disabled"
                          p4_turbo_II_enable = "disabled"
                          genesis_plus_gx_system_hw = "auto"
                          genesis_plus_gx_region_detect = "auto"
                          genesis_plus_gx_force_dtack = "enabled"
                          genesis_plus_gx_bios = "disabled"
                          genesis_plus_gx_bram = "per bios"
                          genesis_plus_gx_addr_error = "enabled"
                          genesis_plus_gx_lock_on = "disabled"
                          genesis_plus_gx_ym2413 = "auto"
                          genesis_plus_gx_dac_bits = "disabled"
                          genesis_plus_gx_blargg_ntsc_filter = "disabled"
                          genesis_plus_gx_lcd_filter = "disabled"
                          genesis_plus_gx_overscan = "disabled"
                          genesis_plus_gx_gg_extra = "disabled"
                          genesis_plus_gx_aspect_ratio = "auto"
                          genesis_plus_gx_render = "single field"
                          genesis_plus_gx_gun_cursor = "disabled"
                          genesis_plus_gx_invert_mouse = "disabled"
                          bluemsx_msxtype = "MSX2+"
                          bluemsx_vdp_synctype = "Auto"
                          bluemsx_ym2413_enable = "enabled"
                          
                          
                          

                          contents of "/opt/retropie/configs/all/retroarch.cfg"

                          ## Skeleton config file for RetroArch
                          
                          # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
                          # This will be overridden by explicit command line options.
                          # savefile_directory =
                          
                          # Save all save states (*.state) to this directory.
                          # This will be overridden by explicit command line options.
                          # savestate_directory =
                          
                          # If set to a directory, content which is temporarily extracted
                          # will be extracted to this directory.
                          cache_directory = "/tmp/retroarch"
                          
                          # Save all downloaded files to this directory.
                          # core_assets_directory =
                          
                          # Save all remapped controls to this directory.
                          # input_remapping_directory =
                          
                          # Save all playlists/collections to this directory.
                          # playlist_directory =
                          
                          # If set to a directory, the content history playlist will be saved
                          # to this directory.
                          # content_history_dir =
                          
                          # Saved queries are stored to this directory.
                          # cursor_directory =
                          
                          # Automatically saves a savestate at the end of RetroArch's lifetime.
                          # The path is $SRAM_PATH.auto.
                          # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
                          # savestate_auto_save = false
                          # savestate_auto_load = true
                          
                          # Load libretro from a dynamic location for dynamically built RetroArch.
                          # This option is mandatory.
                          
                          # Path to a libretro implementation.
                          # libretro_path = "/path/to/libretro.so"
                          
                          # A directory for where to search for libretro core implementations.
                          # libretro_directory =
                          
                          # A directory for where to search for libretro core information.
                          # libretro_info_path =
                          
                          # Sets log level for libretro cores (GET_LOG_INTERFACE).
                          # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
                          # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
                          # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
                          # libretro_log_level = 0
                          
                          # Enable or disable verbosity level of frontend.
                          # log_verbosity = false
                          
                          # If this option is enabled, every content file loaded in RetroArch will be
                          # automatically added to a history list.
                          # history_list_enable = true
                          
                          # Enable performance counters
                          # perfcnt_enable = false
                          
                          # Path to core options config file.
                          # This config file is used to expose core-specific options.
                          # It will be written to by RetroArch.
                          # A default path will be assigned if not set.
                          core_options_path = "/opt/retropie/configs/all/retroarch-core-options.cfg"
                          
                          # Path to content history file.
                          # RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading.
                          # A default path will be assigned if not set.
                          # content_history_path =
                          
                          # Path to music content history file (optional).
                          # RetroArch keeps track of all music content loaded in the menu and from CLI directly for convenient quick loading.
                          # A default path will be assigned if not set.
                          # content_music_history_path =
                          
                          # Path to image content history file (optional).
                          # RetroArch keeps track of all image content loaded in the menu and from CLI directly for convenient quick loading.
                          # A default path will be assigned if not set.
                          # content_image_history_path =
                          
                          # Path to video content history file (optional).
                          # RetroArch keeps track of all video content loaded in the menu and from CLI directly for convenient quick loading.
                          # A default path will be assigned if not set.
                          # content_video_history_path =
                          
                          # Number of entries that will be kept in content history file.
                          # content_history_size = 100
                          
                          # Sets the "system" directory.
                          # Implementations can query for this directory to load BIOSes, system-specific configs, etc.
                          system_directory = "/home/pi/RetroPie/BIOS"
                          
                          # Sets start directory for menu file browser.
                          # rgui_browser_directory =
                          
                          # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
                          # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
                          # content_directory =
                          
                          # Assets directory. This location is queried by default when menu interfaces try to look for
                          # loadable assets, etc.
                          # assets_directory =
                          
                          # Dynamic wallpapers directory. The place to store the wallpapers dynamically
                          # loaded by the menu depending on context.
                          # dynamic_wallpapers_directory =
                          
                          # Thumbnails directory. To store thumbnail files.
                          # thumbnails_directory =
                          
                          # Sets start directory for menu config browser.
                          # rgui_config_directory =
                          
                          # Show startup screen in menu.
                          # Is automatically set to false when seen for the first time.
                          # This is only updated in config if config_save_on_exit is set to true, however.
                          # rgui_show_start_screen = true
                          
                          # Flushes config to disk on exit. Useful for menu as settings can be modified.
                          # Overwrites the config. #include's and comments are not preserved.
                          config_save_on_exit = "false"
                          
                          # Shows hidden files and folders in directory listings.
                          # show_hidden_files = true
                          
                          #### Video
                          
                          # Video driver to use. "gl", "xvideo", "sdl", "d3d"
                          # video_driver = "gl"
                          
                          # Which context implementation to use.
                          # Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
                          # By default, tries to use first suitable driver.
                          # video_context_driver =
                          
                          # Windowed x resolution scale and y resolution scale
                          # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
                          # video_scale = 3.0
                          
                          # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
                          # video_fullscreen_x = 0
                          # video_fullscreen_y = 0
                          
                          # Start in fullscreen. Can be changed at runtime.
                          # video_fullscreen = false
                          
                          # If fullscreen, prefer using a windowed fullscreen mode.
                          # video_windowed_fullscreen = true
                          
                          # Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
                          # suggests RetroArch to use that particular monitor.
                          # video_monitor_index = 0
                          
                          # Forcibly disable composition. Only works in Windows Vista/7 for now.
                          # video_disable_composition = false
                          
                          # Video vsync.
                          # video_vsync = true
                          
                          # Interval at which a Vsync swap is performed.
                          # 1 is normal, 2 is doubled frames, 3 is tripled frames, etc.
                          # video_swap_interval = 1
                          
                          # Max amount of swapchain images.
                          # Single buffering = 1, Double buffering = 2, 3 = Triple buffering
                          # video_max_swapchain_images = 3
                          
                          # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
                          # have video problems with sRGB FBO support enabled.
                          # video_force_srgb_disable = false
                          
                          # Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
                          # video_hard_sync = false
                          
                          # Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
                          # Maximum is 3.
                          # video_hard_sync_frames = 0
                          
                          # Sets how many milliseconds to delay after VSync before running the core.
                          # Can reduce latency at cost of higher risk of stuttering.
                          # Maximum is 15.
                          # video_frame_delay = 0
                          
                          # Inserts a black frame inbetween frames.
                          # Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
                          # video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
                          # video_black_frame_insertion = false
                          
                          # Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
                          video_threaded = "true"
                          
                          # Use a shared context for HW rendered libretro cores.
                          # Avoids having to assume HW state changes inbetween frames.
                          # video_shared_context = false
                          
                          # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
                          video_smooth = "false"
                          
                          # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
                          # video_force_aspect = true
                          
                          # Only scales video in integer steps.
                          # The base size depends on system-reported geometry and aspect ratio.
                          # If video_force_aspect is not set, X/Y will be integer scaled independently.
                          # video_scale_integer = false
                          
                          # Index of the aspect ratio selection in the menu.
                          # 19 = Config, 20 = 1:1 PAR, 21 = Core Provided, 22 = Custom Aspect Ratio
                          # aspect_ratio_index = 19
                          
                          # A floating point value for video aspect ratio (width / height).
                          # If this is not set, aspect ratio is assumed to be automatic.
                          # Behavior then is defined by video_aspect_ratio_auto.
                          # video_aspect_ratio =
                          
                          # If this is true and video_aspect_ratio is not set,
                          # aspect ratio is decided by libretro implementation.
                          # If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set.
                          video_aspect_ratio_auto = "true"
                          
                          # Forces cropping of overscanned frames.
                          # Exact behavior of this option is implementation specific.
                          # video_crop_overscan = true
                          
                          # Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
                          # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
                          
                          # Load video_shader on startup.
                          # Other shaders can still be loaded later in runtime.
                          # video_shader_enable = false
                          
                          # Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access.
                          # video_shader_dir =
                          
                          # CPU-based video filter. Path to a dynamic library.
                          # video_filter =
                          
                          # Defines a directory where CPU-based video filters are kept.
                          # video_filter_dir =
                          
                          # Path to a font used for rendering messages. This path must be defined to enable fonts.
                          # Do note that the _full_ path of the font is necessary!
                          # video_font_path =
                          
                          # Size of the font rendered in points.
                          video_font_size = "12"
                          
                          # Enable usage of OSD messages.
                          # video_font_enable = true
                          
                          # Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values.
                          # [0.0, 0.0] maps to the lower left corner of the screen.
                          # video_message_pos_x = 0.05
                          # video_message_pos_y = 0.05
                          
                          # Color for message. The value is treated as a hexadecimal value.
                          # It is a regular RGB hex number, i.e. red is "ff0000".
                          # video_message_color = ffffff
                          
                          # Video refresh rate of your monitor.
                          # Used to calculate a suitable audio input rate.
                          # video_refresh_rate = 59.94
                          
                          # Allows libretro cores to set rotation modes.
                          # Setting this to false will honor, but ignore this request.
                          # This is useful for vertically oriented content where one manually rotates the monitor.
                          # video_allow_rotate = true
                          
                          # Forces a certain rotation of the screen.
                          # The rotation is added to rotations which the libretro core sets (see video_allow_rotate).
                          # The angle is <value> * 90 degrees counter-clockwise.
                          # video_rotation = 0
                          
                          #### Audio
                          
                          # Enable audio.
                          # audio_enable = true
                          
                          # Mutes audio.
                          # audio_mute_enable = false
                          
                          # Audio output samplerate.
                          # audio_out_rate = 48000
                          
                          # Audio resampler backend. Which audio resampler to use.
                          # Default will use "sinc".
                          # audio_resampler =
                          
                          # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
                          # audio_driver =
                          
                          # Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ...
                          # audio_device =
                          
                          # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
                          # audio_dsp_plugin =
                          
                          # Directory where DSP plugins are kept.
                          # audio_filter_dir =
                          
                          # Will sync (block) on audio. Recommended.
                          # audio_sync = true
                          
                          # Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency.
                          # audio_latency = 64
                          
                          # Enable audio rate control.
                          # audio_rate_control = true
                          
                          # Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
                          # Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
                          # audio_rate_control_delta = 0.005
                          
                          # Controls maximum audio timing skew. Defines the maximum change in input rate.
                          # Input rate = in_rate * (1.0 +/- max_timing_skew)
                          # audio_max_timing_skew = 0.05
                          
                          # Audio volume. Volume is expressed in dB.
                          # 0 dB is normal volume. No gain will be applied.
                          # Gain can be controlled in runtime with input_volume_up/input_volume_down.
                          # audio_volume = 0.0
                          
                          #### Overlay
                          
                          # Defines a directory where overlays are kept for easy access.
                          # overlay_directory =
                          
                          # Enable the overlay.
                          # input_overlay_enable = true
                          
                          # Hide the current overlay from appearing inside the menu.
                          # input_overlay_hide_in_menu = true
                          
                          # Path to input overlay.
                          # input_overlay =
                          
                          # Opacity of all the UI elements of the overlay.
                          # input_overlay_opacity = 1.0
                          
                          # Scale of all UI elements of the overlay.
                          # input_overlay_scale = 1.0
                          
                          #### Input
                          
                          # Input driver. Depending on video driver, it might force a different input driver.
                          # input_driver = sdl
                          
                          # Joypad driver. (Valid: linuxraw, sdl, dinput)
                          input_joypad_driver = "udev"
                          
                          # Path to input remapping file.
                          # input_remapping_path =
                          
                          # Input bind timer timeout.
                          # Amount of seconds to wait until proceeding to the next bind. Default: 5, minimum: 1
                          # input_bind_timeout = 1
                          
                          # If enabled, overrides the input binds with the remapped binds set for the current core.
                          # input_remap_binds_enable = true
                          
                          # Maximum amount of users supported by RetroArch.
                          # input_max_users = 16
                          
                          # Keyboard layout for input driver if applicable (udev/evdev for now).
                          # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
                          # input_keyboard_layout =
                          
                          # Defines axis threshold. Possible values are [0.0, 1.0]
                          # input_axis_threshold = 0.5
                          
                          # Enable input auto-detection. Will attempt to autoconfigure
                          # joypads, Plug-and-Play style.
                          input_autodetect_enable = "true"
                          
                          # Show the input descriptors set by the core instead of the
                          # default ones.
                          # input_descriptor_label_show = true
                          
                          # Hide input descriptors that were not set by the core.
                          # input_descriptor_hide_unbound = false
                          
                          # Influence how input polling is done inside RetroArch.
                          # 0 : Early  - Input polling is performed before call to retro_run.
                          # 1 : Normal - Input polling is performed when retro_input_poll is
                          #     requested.
                          # 2 : Late   - Input polling is performed on first call to retro_input_state
                          #     per frame
                          #
                          # Setting it to 0 or 2 can result in less latency depending on
                          # your configuration.
                          #
                          # When netplay is enabled, the default polling behavior (1) will
                          # be used regardless of the value set here.
                          # input_poll_type_behavior = 1
                          
                          # Directory for joypad autoconfigs.
                          # If a joypad is plugged in, that joypad will be autoconfigured if a config file
                          # corresponding to that joypad is present in joypad_autoconfig_dir.
                          # Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs.
                          # Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend.
                          # Requires input_autodetect_enable to be enabled.
                          # joypad_autoconfig_dir =
                          
                          # Sets which libretro device is used for a user.
                          # Devices are indentified with a number.
                          # This is normally saved by the menu.
                          # Device IDs are found in libretro.h.
                          # These settings are overridden by explicit command-line arguments which refer to input devices.
                          # None: 0
                          # Joypad (RetroPad): 1
                          # Mouse: 2
                          # Keyboard: 3
                          # Generic Lightgun: 4
                          # Joypad w/ Analog (RetroPad + Analog sticks): 5
                          # Multitap (SNES specific): 257
                          # Super Scope (SNES specific): 260
                          # Justifier (SNES specific): 516
                          # Justifiers (SNES specific): 772
                          
                          # input_libretro_device_p1 =
                          # input_libretro_device_p2 =
                          # input_libretro_device_p3 =
                          # input_libretro_device_p4 =
                          # input_libretro_device_p5 =
                          # input_libretro_device_p6 =
                          # input_libretro_device_p7 =
                          # input_libretro_device_p8 =
                          
                          # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
                          # is for keypad keys):
                          #
                          #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
                          #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
                          #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
                          #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
                          #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
                          #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
                          #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
                          #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
                          #
                          # 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 = "x"
                          input_player1_b = "z"
                          input_player1_y = "a"
                          input_player1_x = "s"
                          input_player1_start = "enter"
                          input_player1_select = "rshift"
                          input_player1_l = "q"
                          input_player1_r = "w"
                          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 =
                          
                          # Two analog sticks (DualShock-esque).
                          # Bound as usual, however, if a real analog axis is bound,
                          # it can be read as a true analog.
                          # Positive X axis is right, Positive Y axis is down.
                          # input_player1_l_x_plus =
                          # input_player1_l_x_minus =
                          # input_player1_l_y_plus =
                          # input_player1_l_y_minus =
                          # input_player1_r_x_plus =
                          # input_player1_r_x_minus =
                          # input_player1_r_y_plus =
                          # input_player1_r_y_minus =
                          
                          # If desired, it is possible to override which joypads are being used for user 1 through 8.
                          # First joypad available is 0.
                          # input_player1_joypad_index = 0
                          # input_player2_joypad_index = 1
                          # input_player3_joypad_index = 2
                          # input_player4_joypad_index = 3
                          # input_player5_joypad_index = 4
                          # input_player6_joypad_index = 5
                          # input_player7_joypad_index = 6
                          # input_player8_joypad_index = 7
                          
                          # Input device buttons.
                          # Figure these out by using RetroArch-Phoenix or retroarch-joyconfig.
                          # You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction.
                          # E.g. "h0up"
                          # input_player1_a_btn =
                          # input_player1_b_btn =
                          # input_player1_y_btn =
                          # input_player1_x_btn =
                          # input_player1_start_btn =
                          # input_player1_select_btn =
                          # input_player1_l_btn =
                          # input_player1_r_btn =
                          # input_player1_left_btn =
                          # input_player1_right_btn =
                          # input_player1_up_btn =
                          # input_player1_down_btn =
                          # input_player1_l2_btn =
                          # input_player1_r2_btn =
                          # input_player1_l3_btn =
                          # input_player1_r3_btn =
                          
                          # Menu buttons.
                          # menu_search_btn      =
                          # menu_info_btn        =
                          # menu_default_btn     =
                          # menu_scroll_down_btn =
                          # menu_scroll_up_btn   =
                          
                          # Swap buttons for OK/Cancel
                          # menu_swap_ok_cancel_buttons = false
                          
                          # Axis for RetroArch D-Pad.
                          # Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number.
                          # Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
                          # input_player1_left_axis =
                          # input_player1_right_axis =
                          # input_player1_up_axis =
                          # input_player1_down_axis =
                          
                          # Holding the turbo while pressing another button will let the button enter a turbo mode
                          # where the button state is modulated with a periodic signal.
                          # The modulation stops when the button itself (not turbo button) is released.
                          # input_player1_turbo =
                          
                          # Describes the period and how long of that period a turbo-enabled button should behave.
                          # Numbers are described in frames.
                          # input_turbo_period = 6
                          # input_turbo_duty_cycle = 3
                          
                          # This goes all the way to user 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
                          # All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well.
                          
                          # Toggles fullscreen.
                          # input_toggle_fullscreen = f
                          
                          # Saves state.
                          # input_save_state = f2
                          # Loads state.
                          # input_load_state = f4
                          
                          # State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline).
                          # When slot is != 0, path will be $path%d, where %d is slot number.
                          # input_state_slot_increase = f7
                          # input_state_slot_decrease = f6
                          
                          # Toggles between fast-forwarding and normal speed.
                          # input_toggle_fast_forward = space
                          
                          # Hold for fast-forward. Releasing button disables fast-forward.
                          # input_hold_fast_forward = l
                          
                          # Key to exit RetroArch cleanly.
                          # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
                          # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
                          input_exit_emulator = "escape"
                          
                          
                          # Applies next and previous shader in directory.
                          input_shader_next = "m"
                          input_shader_prev = "n"
                          
                          # Hold button down to rewind. Rewinding must be enabled.
                          input_rewind = "r"
                          
                          # Toggle between recording and not.
                          # input_movie_record_toggle = o
                          
                          # Toggle between paused and non-paused state
                          # input_pause_toggle = p
                          
                          # Frame advance when content is paused
                          # input_frame_advance = k
                          
                          # Reset the content.
                          # input_reset = h
                          
                          # Cheats.
                          # input_cheat_index_plus = y
                          # input_cheat_index_minus = t
                          # input_cheat_toggle = u
                          
                          # Mute/unmute audio
                          # input_audio_mute = f9
                          
                          # Take screenshot
                          # input_screenshot = f8
                          
                          # Netplay flip users.
                          # input_netplay_flip_players = i
                          
                          # Hold for slowmotion.
                          # input_slowmotion = e
                          
                          # Enable other hotkeys.
                          # If this hotkey is bound to either keyboard, joybutton or joyaxis,
                          # all other hotkeys will be disabled unless this hotkey is also held at the same time.
                          # This is useful for RETRO_KEYBOARD centric implementations
                          # which query a large area of the keyboard, where it is not desirable
                          # that hotkeys get in the way.
                          
                          # Alternatively, all hotkeys for keyboard could be disabled by the user.
                          # input_enable_hotkey_btn =
                          
                          # Increases audio volume.
                          # input_volume_up = kp_plus
                          # Decreases audio volume.
                          # input_volume_down = kp_minus
                          
                          # Toggles to next overlay. Wraps around.
                          # input_overlay_next =
                          
                          # Toggles eject for disks. Used for multiple-disk content.
                          # input_disk_eject_toggle =
                          
                          # Cycles through disk images. Use after ejecting.
                          # Complete by toggling eject again.
                          # input_disk_next =
                          
                          # Toggles menu.
                          # input_menu_toggle = f1
                          
                          # RetroPad button combination to toggle menu
                          # 0 = none, 1 = L + R + Y + D-Pad Down, 2 = L3 + R3, 3 = Start + Select
                          # input_menu_toggle_gamepad_combo = 0
                          
                          # allow any RetroPad to control the menu
                          all_users_control_menu = "true"
                          
                          # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
                          # and keeps the mouse pointer inside the window to allow relative mouse input
                          # to work better.
                          # input_grab_mouse_toggle = f11
                          
                          #### Menu
                          
                          # Menu driver to use. "rgui", "lakka", etc.
                          menu_driver = "rgui"
                          
                          # If disabled, the libretro core will keep running in the background when we
                          # are in the menu.
                          # menu_pause_libretro = false
                          
                          # If disabled, we use separate controls for menu operation.
                          menu_unified_controls = "true"
                          
                          # Enable mouse controls inside the menu.
                          # menu_mouse_enable = false
                          
                          # Enable touch controls inside the menu.
                          # menu_pointer_enable = false
                          
                          # Shows current date and/or time inside menu.
                          # menu_timedate_enable = true
                          
                          # Shows current battery level inside menu.
                          # menu_battery_level_enable = true
                          
                          # Shows current core inside menu.
                          # menu_core_enable = true
                          
                          # Path to an image to set as menu wallpaper.
                          # menu_wallpaper =
                          
                          # Dynamically load a new wallpaper depending on context.
                          # menu_dynamic_wallpaper_enable = false
                          
                          # Type of thumbnail to display. 0 = none, 1 = snaps, 2 = titles, 3 = boxarts
                          # menu_thumbnails = 0
                          
                          # Wrap-around to beginning and/or end if boundary of list is reached horizontally or vertically.
                          # menu_navigation_wraparound_enable = false
                          
                          # Filter files being shown in filebrowser by supported extensions.
                          # menu_navigation_browser_filter_supported_extensions_enable = true
                          
                          # Collapse subgroup settings into main group to create one big listing of settings
                          # per category.
                          # menu_collapse_subgroups_enable = false
                          
                          #### Core
                          #
                          # Prevent libretro cores from closing RetroArch on exit by loading a dummy core.
                          # load_dummy_on_core_shutdown = "true"
                          
                          # Check for firmware requirement(s) before loading a content.
                          # check_firmware_before_loading = "false"
                          
                          #### UI
                          
                          # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
                          # by video driver.
                          # suspend_screensaver_enable  = true
                          
                          # Start UI companion driver's interface on boot (if available).
                          # ui_companion_start_on_boot  = true
                          
                          #### Camera
                          
                          # Override the default camera device the camera driver uses. This is driver dependant.
                          # camera_device =
                          
                          # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
                          # camera_allow = false
                          
                          #### Location
                          
                          # Override the default privacy permission for cores that want to access location services. Is "false" by default.
                          # location_allow = false
                          
                          #### Core Updater
                          
                          # URL to core update directory on buildbot.
                          # core_updater_buildbot_url = "http://buildbot.libretro.com"
                          
                          # URL to assets update directory on buildbot.
                          # core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
                          
                          # After downloading, automatically extract archives that the downloads are contained inside.
                          # core_updater_auto_extract_archive = true
                          
                          #### Network
                          
                          # When being client over netplay, use keybinds for user 1.
                          # netplay_client_swap_input = false
                          
                          # The username of the person running RetroArch. This will be used for playing online, for instance.
                          # netplay_nickname =
                          
                          # The amount of delay frames to use for netplay. Increasing this value will increase
                          # performance, but introduce more latency.
                          # netplay_delay_frames = 0
                          
                          # Netplay mode for the current user.
                          # false is Server, true is Client.
                          # netplay_mode = false
                          
                          # Enable or disable spectator mode for the user during netplay.
                          # netplay_spectator_mode_enable = false
                          
                          # The IP Address of the host to connect to.
                          # netplay_ip_address =
                          
                          # The port of the host IP Address. Can be either a TCP or UDP port.
                          # netplay_ip_port = 55435
                          
                          # Force game hosting to go through a man-in-the-middle server to get around firewalls and NAT/UPnP problems.
                          # netplay_use_mitm_server = false
                          
                          #### Misc
                          
                          # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
                          rewind_enable = "false"
                          
                          # Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer.
                          # The buffer should be approx. 20MB per minute of buffer time.
                          rewind_buffer_size = "10"
                          
                          # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
                          rewind_granularity = "2"
                          
                          # Pause gameplay when window focus is lost.
                          # pause_nonactive = true
                          
                          # Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
                          # The interval is measured in seconds. A value of 0 disables autosave.
                          # autosave_interval =
                          
                          # Path to content database directory.
                          # content_database_path =
                          
                          # Path to cheat database directory.
                          # cheat_database_path =
                          
                          # Directory to dump screenshots to.
                          # screenshot_directory =
                          
                          # Records video after CPU video filter.
                          # video_post_filter_record = false
                          
                          # Records output of GPU shaded material if available.
                          # video_gpu_record = false
                          
                          # Screenshots output of GPU shaded material if available.
                          video_gpu_screenshot = "true"
                          
                          # Block SRAM from being overwritten when loading save states.
                          # Might potentially lead to buggy games.
                          # block_sram_overwrite = false
                          
                          # When saving a savestate, save state index is automatically increased before
                          # it is saved.
                          # Also, when loading content, the index will be set to the highest existing index.
                          # There is no upper bound on the index.
                          # savestate_auto_index = false
                          
                          # Slowmotion ratio. When slowmotion, content will slow down by factor.
                          # slowmotion_ratio = 3.0
                          
                          # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 300 fps cap).
                          # RetroArch will go to sleep to ensure that the maximum rate will not be exceeded.
                          # Do not rely on this cap to be perfectly accurate.
                          # If this is set at 0, then fastforward ratio is unlimited (no FPS cap)
                          # fastforward_ratio = 0.0
                          
                          # Enable stdin/network command interface.
                          # network_cmd_enable = false
                          # network_cmd_port = 55355
                          # stdin_cmd_enable = false
                          input_enable_hotkey = "nul"
                          auto_remaps_enable = "true"
                          
                          
                          
                          edmaul69E 1 Reply Last reply Reply Quote 0
                          • edmaul69E
                            edmaul69 @Shinobi
                            last edited by

                            @shinobi did you take the bios’ out of that shared roms folder and put them in the shared folder he said to put them in?

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              Shinobi @edmaul69
                              last edited by

                              @edmaul69 They are already there..see pic below
                              0_1516737462002_2018-01-23 22_55_32-Shared Roms.png

                              edmaul69E 1 Reply Last reply Reply Quote 0
                              • edmaul69E
                                edmaul69 @Shinobi
                                last edited by

                                @shinobi if this doesn’t work change it back but can you change ARABIC.rom to ARABIC.ROM ? Linux is case sensitive and it is possible it is looking for it in all caps.

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

                                  does select +x let you change the bios options ? if it doesnt ill download the emulator and look for the roms. That is a good point about filename case posted before

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    Shinobi @edmaul69
                                    last edited by

                                    @edmaul69 I'll try it and change the name and see what will happen although that I am now sure that BlueMSX for retropie and Lakka (all is retroarch) I think the supported machines are listed when you press select+x (quick menu) and they are limited and not like PC when you choose your machine.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      Shinobi @grant2258
                                      last edited by

                                      @grant2258 .. you can change the BIOS when accessing quick menu (select + x) I tried it in Lakka and retropie..the choices are limited to MSX, MSX2, MSX2+ and turboMSX
                                      Lakka adds (ColecoVision, Sega SG and Sega SC, SpectraVideo SV) ..
                                      That is, the support is limited to the machines in the list although BlueMSX needs all BIOSes in Machine folder to work..

                                      Where can I send message to BlueMSX people to tell them to add support to Arabic Machines..??

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

                                        Try select + x when the system is running. Check see if you the option is there once the emulator is running. This is not a system i have used in real life so am struggling to understand how it setup. From what I gather you want to start a msx or msx2 and load it with an arabic bios instead of an english one. If you get no joy with select + x in game (when the emulator is running) post a issue on the github page in the issues.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          Shinobi @grant2258
                                          last edited by

                                          @grant2258 I appreciate your help although that you are not familiar with MSX.
                                          Arabic MSX emulation contains two files: the bios and the rom. I could run the Arabic ROM by loading it as a cartridge, but this will result in problems in keyboard interaction, keys won't work since it's not normal. the normal thing is to load the bios and rom and the default MSX machine which contain two files MSX.ROM and PILIPSDISK.ROM. What I did is load this and then choose MSX arabic ROM and a cartridge, as I said it run the MSX Arabic interface but problems with input. Also, there a problem that there are not two slots for cartridges in BlueMSX for Retroarch, only one, so even if I load MSX Arabic ROM and a cartridge, still I can't add the Arabic educational software in the other slot, since there is not other slot.

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

                                            @shinobi

                                            since im not sure how this all works i looked it up a little. From what i undestand youll need to download the config for the machine you want to download from the website and have the roms ready. I start on the windows version and then look at the lr-msx blue what specific machine is it your wanting for arabic

                                            Al Alamiah AX-100 / AX-150 / AX-170 / AX-200 / AX-350II / AX-350IIF / AX-370

                                            let me know whic one and ill start looking into it. Ill need to find the roms ect

                                            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.