Homepage › Forums › RetroPie Project › Everything else related to the RetroPie Project › How do I add another MAME emulator Version?
- This topic has 15 replies, 2 voices, and was last updated 8 years, 9 months ago by caver01.
-
AuthorPosts
-
03/21/2016 at 18:12 #121071caver01Participant
I am using ADVMAME, and I love the flexibility of the runcommand to allow me to pick 0.94 and 1.4, but I need to add 1.2. Is it possible to add another folder to the advance-mame structure? I understand the config folder will also have to accommodate this, but what else do I need to change to enable a third advancemame in the runcommand?
03/21/2016 at 19:17 #121076petrockblogKeymasterwhy do you need 1.2 over 1.4 ?
03/22/2016 at 03:40 #121114caver01ParticipantWith 1.2 I can configure 1280×1024 resolution for vector games.
03/22/2016 at 11:15 #121130petrockblogKeymasterShould be doable with 1.4 then also, but I thought it was set to 640×480 when using fb driver with our current modifications.
What config were you using?
03/22/2016 at 18:52 #121170caver01ParticipantGlad you asked! I have tried for weeks to get 1.4 to play vector games at my native resolution with no luck. Last year, after many late nights with PiPlay, I was able to get native resolution on Vector games using 1.2 and this config. So, with RetroPie I finally tried a test with the pre-compiled advmame 1.2 executable from my other SD card (running PiPlay) and simply replaced the advmame .94 binary as a test. This was a feeble attempt at leveraging at least some runcommand flexibility–use 1.4 for most stuff, but for vector games, I could select .94 and know that it was actually running the 1.2 advmame I copied over.
My .94 swap is kludgy, and I don’t get much traction with other posts on this topic which is why I did the test. When it worked, I figured maybe I could just get 1.2 setup properly with runcommand support. I am still willing to try suggestions, but I have already tried this config (corrected the paths) to no avail in 1.4. Could there be a difference in the retropie-compiled versions of 1.4 that specifically prevents 1280×1024? On a previous post, you seemed to suggest thats the case. But, with the coming changes possibly to the default resolutions in RetroPie, I am definitely interested in making this work well. Once you have seen the crisp vector lines, it’s hard to go back to blurry 640×480 for vector classics.
Here’s my 1.2 config (game-specific input mapping removed):
display_mode auto display_adjust generate_yclock device_video_clock 60-150 / 30-80 / 60 device_video_format 33630 0.814815 0 0.111111 0.0740741 0.914286 0.0196429 0.00357143 0.0625 device_video_modeline FULLSCREEN 105.37 1280 1336 1512 1568 1024 1046 1050 1120 -hsync -vsync debug_crash no debug_rawsound no debug_speedmark no device_alsa_device default device_alsa_mixer channel device_color_bgr15 no device_color_bgr16 yes device_color_bgr24 no device_color_bgr32 no device_color_bgr8 no device_color_palette8 no device_color_yuy2 no device_joystick auto device_keyboard raw device_mouse raw device_raw_firstkeyhack no device_raw_mousedev[0] /dev/input/mouse0 device_raw_mousedev[1] /dev/input/mouse1 device_raw_mousedev[2] /dev/input/mouse2 device_raw_mousedev[3] auto device_raw_mousetype[0] ps2 device_raw_mousetype[1] ps2 device_raw_mousetype[2] ps2 device_raw_mousetype[3] ps2 device_sdl_samples 512 device_sound auto device_video auto device_video_cursor auto device_video_doublescan yes device_video_fastchange no device_video_interlace yes device_video_output auto device_video_singlescan yes dir_artwork /home/pi/RetroPie/roms/mame-advmame/artwork:/opt/retropie/configs/mame-advmame/artwork dir_diff /home/pi/.advance/diff dir_hi /home/pi/.advance/hi dir_image /home/pi/.advance/image:/opt/retropie/emulators/advmame/0.94.0/share/advance/image dir_inp /home/pi/.advance/inp dir_memcard /home/pi/.advance/memcard dir_nvram /home/pi/.advance/nvram dir_rom /home/pi/RetroPie/roms/mame-advmame dir_sample /home/pi/RetroPie/roms/mame-advmame/samples dir_snap /home/pi/.advance/snap dir_sta /home/pi/.advance/sta display_artwork_backdrop yes display_artwork_bezel no display_artwork_crop yes display_artwork_overlay yes display_aspectx 5 display_aspecty 4 display_brightness 1 display_buffer yes display_color auto display_expand 1 display_flipx no display_flipy no display_frameskip 0.5 display_gamma 1.0 display_interlaceeffect none display_magnify 4 display_pausebrightness 0.6 display_resize fractional display_resizeeffect filter display_restore yes display_rgbeffect triad6dot display_rol no display_ror no display_scanlines no display_skipcolumns auto display_skiplines auto display_vsync yes vector/display_mode FULLSCREEN vector/display_translucency yes vector/display_intensity 3.0 vector/display_antialias yes vector/display_beam 1.2 vector/display_flicker .1 vector/display_adjust none vector/display_magnify 2 vector/display_rgbeffect none vector/display_resizeeffect none vector/device_video_output fullscreen vector/display_resize fractional vertical/display_ror yes include input_hotkey yes input_idleexit 0 input_map[coin5] auto input_map[coin6] auto input_map[coin7] auto input_map[coin8] auto input_map[event10] auto input_map[event11] auto input_map[event12] auto input_map[event13] auto input_map[event14] auto input_map[event1] auto input_map[event2] auto input_map[event3] auto input_map[event4] auto input_map[event5] auto input_map[event6] auto input_map[event7] auto input_map[event8] auto input_map[event9] auto input_map[p1_dialx] mouse[0,x] input_map[p1_dialy] auto input_map[p1_lightgunx] auto input_map[p1_lightguny] auto input_map[p1_mousex] auto input_map[p1_mousey] auto input_map[p1_paddlex] auto input_map[p1_paddley] auto input_map[p1_pedalbrake] auto input_map[p1_pedalgas] auto input_map[p1_pedalother] auto input_map[p1_stickx] auto input_map[p1_sticky] auto input_map[p1_stickz] auto input_map[p1_trackballx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_trackbally] mouse[0,y] mouse[1,y] mouse[2,y] input_map[p2_dialx] -mouse[0,y] input_map[p2_dialy] auto input_map[p2_lightgunx] auto input_map[p2_lightguny] auto input_map[p2_mousex] auto input_map[p2_mousey] auto input_map[p2_paddlex] auto input_map[p2_paddley] auto input_map[p2_pedalbrake] auto input_map[p2_pedalgas] auto input_map[p2_pedalother] auto input_map[p2_stickx] auto input_map[p2_sticky] auto input_map[p2_stickz] auto input_map[p2_trackballx] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p2_trackbally] mouse[0,y] mouse[1,y] mouse[2,y] input_map[p3_dialx] auto input_map[p3_dialy] auto input_map[p3_lightgunx] auto input_map[p3_lightguny] auto input_map[p3_mahjong_a] auto input_map[p3_mahjong_b] auto input_map[p3_mahjong_bet] auto input_map[p3_mahjong_c] auto input_map[p3_mahjong_chance] auto input_map[p3_mahjong_chi] auto input_map[p3_mahjong_d] auto input_map[p3_mahjong_double_up] auto input_map[p3_mahjong_e] auto input_map[p3_mahjong_f] auto input_map[p3_mahjong_flip_flop] auto input_map[p3_mahjong_g] auto input_map[p3_mahjong_h] auto input_map[p3_mahjong_i] auto input_map[p3_mahjong_j] auto input_map[p3_mahjong_k] auto input_map[p3_mahjong_kan] auto input_map[p3_mahjong_l] auto input_map[p3_mahjong_m] auto input_map[p3_mahjong_n] auto input_map[p3_mahjong_pon] auto input_map[p3_mahjong_reach] auto input_map[p3_mahjong_ron] auto input_map[p3_mahjong_score] auto input_map[p3_mousex] auto input_map[p3_mousey] auto input_map[p3_paddlex] auto input_map[p3_paddley] auto input_map[p3_pedalbrake] auto input_map[p3_pedalgas] auto input_map[p3_pedalother] auto input_map[p3_stickx] auto input_map[p3_sticky] auto input_map[p3_stickz] auto input_map[p3_trackballx] auto input_map[p3_trackbally] auto input_map[p4_dialx] auto input_map[p4_dialy] auto input_map[p4_lightgunx] auto input_map[p4_lightguny] auto input_map[p4_mahjong_a] auto input_map[p4_mahjong_b] auto input_map[p4_mahjong_bet] auto input_map[p4_mahjong_c] auto input_map[p4_mahjong_chance] auto input_map[p4_mahjong_chi] auto input_map[p4_mahjong_d] auto input_map[p4_mahjong_double_up] auto input_map[p4_mahjong_e] auto input_map[p4_mahjong_f] auto input_map[p4_mahjong_flip_flop] auto input_map[p4_mahjong_g] auto input_map[p4_mahjong_h] auto input_map[p4_mahjong_i] auto input_map[p4_mahjong_j] auto input_map[p4_mahjong_k] auto input_map[p4_mahjong_kan] auto input_map[p4_mahjong_l] auto input_map[p4_mahjong_m] auto input_map[p4_mahjong_n] auto input_map[p4_mahjong_pon] auto input_map[p4_mahjong_reach] auto input_map[p4_mahjong_ron] auto input_map[p4_mahjong_score] auto input_map[p4_mousex] auto input_map[p4_mousey] auto input_map[p4_paddlex] auto input_map[p4_paddley] auto input_map[p4_pedalbrake] auto input_map[p4_pedalgas] auto input_map[p4_pedalother] auto input_map[p4_stickx] auto input_map[p4_sticky] auto input_map[p4_stickz] auto input_map[p4_trackballx] auto input_map[p4_trackbally] auto input_map[safequit] auto input_map[service_coin5] auto input_map[service_coin6] auto input_map[service_coin7] auto input_map[service_coin8] auto input_map[ui_toggle_ui] auto input_steadykey no lcd_server none lcd_speed 4 lcd_timeout 500 misc_bios default misc_cheat no misc_cheatfile cheat.dat misc_difficulty none misc_eventdebug no misc_eventfile event.dat misc_freeplay no misc_hiscorefile hiscore.dat misc_lang none misc_languagefile english.lng misc_mutedemo no misc_quiet yes misc_safequit yes misc_smp no misc_timetorun 0 record_sound no record_sound_time 15 record_video no record_video_interleave 2 record_video_time 15 script_coin1 script_coin2 script_coin3 script_coin4 script_emulation script_event1 script_event10 script_event11 script_event12 script_event13 script_event14 script_event2 script_event3 script_event4 script_event5 script_event6 script_event7 script_event8 script_event9 script_led1 on(kdb, 0b1); wait(!event()); off(kdb, 0b1); script_led2 on(kdb, 0b10); wait(!event()); off(kdb, 0b10); script_led3 script_play script_safequit script_start1 script_start2 script_start3 script_start4 script_turbo while (event()) { toggle(kdb, 0b100); delay(100); } off(kdb, 0b100); script_video wait(!event()); set(kdb, 0); sound_adjust auto sound_equalizer_highvolume 0 sound_equalizer_lowvolume 0 sound_equalizer_midvolume 0 sound_latency 0.05 sound_mode auto sound_normalize no sound_samplerate 44100 sound_samples yes sound_volume 0 sync_fps auto sync_resample auto sync_speed 1 sync_startuptime auto sync_turbospeed 3 ui_color[help_other] 000000 808080 ui_color[help_p1] 000000 ffff00 ui_color[help_p2] 000000 00ff00 ui_color[help_p3] 000000 ff0000 ui_color[help_p4] 000000 00ffff ui_color[interface] 000000 ffffff ui_color[select] 000000 afffff ui_color[tag] 247ef0 ffffff ui_font auto ui_fontsize auto ui_helpimage auto ui_translucency 0.8 input_map[p1_up] keyboard[0,up] input_map[p1_down] keyboard[0,down] input_map[p1_right] keyboard[0,right] input_map[p1_left] keyboard[0,left] input_map[p1_button1] keyboard[0,lcontrol] input_map[p1_button2] keyboard[0,lalt] input_map[p1_button3] keyboard[0,space] input_map[p1_button4] keyboard[0,lshift] input_map[p1_button5] keyboard[0,z] input_map[p1_button6] keyboard[0,x] input_map[p1_button7] input_map[p1_button8] input_map[p2_up] keyboard[0,r] input_map[p2_down] keyboard[0,f] input_map[p2_right] keyboard[0,g] input_map[p2_left] keyboard[0,d] input_map[p2_button1] keyboard[0,a] input_map[p2_button2] keyboard[0,s] input_map[p2_button3] keyboard[0,q] input_map[p2_button4] keyboard[0,w] input_map[p2_button5] keyboard[0,i] input_map[p2_button6] keyboard[0,k] input_map[p2_button7] input_map[p2_button8] input_map[p1_doubleleft_up] keyboard[0,j] input_map[p1_doubleleft_down] keyboard[0,l] input_map[p1_doubleleft_right] keyboard[0,i] input_map[p1_doubleleft_left] keyboard[0,k] input_map[p1_doubleright_up] keyboard[0,up] input_map[p1_doubleright_down] keyboard[0,down] input_map[p1_doubleright_right] keyboard[0,right] input_map[p1_doubleright_left] keyboard[0,left] vertical/input_dipswitch[cabinet] cocktailinvaderl/input_dipswitch[cabinet] cocktail 292x240/display_rgbeffect triadstrong6dot 320x224/display_rgbeffect triadstrong6dot 512x480/display_rgbeffect triadstrong6dot 292x240x60/display_rgbeffect triadstrong6dot 292x240x60/display_magnify 3 292x240/display_magnify 3 240x248/display_rgbeffect triadstrong6dot 240x248/display_magnify 3 224x288/display_rgbeffect triadstrong6dot 224x288/display_magnify 3 294x239/display_rgbeffect triadstrong6dot 294x239/display_magnify 3 336x240/display_rgbeffect triadstrong3dot 336x240/display_magnify 3 512x480x30/display_rgbeffect none 512x480x30/display_resize integer 512x480x30/display_magnify 1 292x240/display_mode generate-quad 292x240/display_resize mixed 512x480x30/display_mode generate 512x480x30/display_vsync no 224x256/display_mode generate-quad 224x256/display_rgbeffect triadstrong6dot 224x256/display_magnify 3 384x224x60/display_mode generate 384x224x60/display_rgbeffect none 400x254x53/display_mode generate 400x254x53/display_rgbeffect none 480x464x60/display_mode generate-double 480x464x60/display_resizeeffect filter 480x464x60/display_rgbeffect triadstrong3dot 224x288x60/display_resize mixed 224x288/display_resize mixed 224x256x60/display_rgbeffect triad6dot input_map[p1_button9] input_map[p1_button10] input_map[p2_doubleright_up] keyboard[0,u] input_map[p2_doubleright_down] keyboard[0,v] input_map[p2_doubleright_left] keyboard[0,y] input_map[p2_doubleright_right] keyboard[0,n] input_map[p2_doubleleft_up] keyboard[0,r] input_map[p2_doubleleft_down] keyboard[0,f] input_map[p2_doubleleft_left] keyboard[0,d] input_map[p2_doubleleft_right] keyboard[0,g] input_map[p2_button9] input_map[p2_button10] input_map[p3_up] keyboard[1,scan0] input_map[p3_down] keyboard[0,k] input_map[p3_left] keyboard[0,j] input_map[p3_right] keyboard[0,l] input_map[p3_button1] keyboard[0,rcontrol] input_map[p3_button2] keyboard[0,rshift] input_map[p3_button3] keyboard[0,enter] input_map[p3_button4] keyboard[0,o] input_map[p3_button5] input_map[p3_button6] input_map[p3_button7] input_map[p3_button8] input_map[p3_button9] input_map[p3_button10] input_map[p4_up] keyboard[1,scan0] input_map[p4_down] keyboard[0,n] input_map[p4_left] keyboard[0,v] input_map[p4_right] keyboard[0,u] input_map[p4_button1] keyboard[0,b] input_map[p4_button2] keyboard[0,e] input_map[p4_button3] keyboard[0,h] input_map[p4_button4] keyboard[0,m] input_map[p4_button5] input_map[p4_button6] input_map[p4_button7] input_map[p4_button8] input_map[p4_button9] input_map[p4_button10] keyboard[0,down] input_map[ui_up] keyboard[0,up] or keyboard[0,i] or keyboard[0,up] input_map[ui_down] keyboard[0,down] or keyboard[0,k] or keyboard[0,down] input_map[ui_left] keyboard[0,left] or keyboard[0,j] or keyboard[0,left] input_map[ui_right] keyboard[0,right] or keyboard[0,l] or keyboard[0,right] input_map[ui_select] keyboard[0,enter] or keyboard[0,1] or keyboard[0,3] vertical/input_map[p1_right] keyboard[0,l] vertical/input_map[p1_left] keyboard[0,j] vertical/input_map[p1_up] keyboard[0,i] vertical/input_map[p1_down] keyboard[0,k] vertical/input_map[p1_button1] keyboard[0,rcontrol] vertical/input_map[p1_button2] keyboard[0,rshift] vertical/input_map[p1_button3] keyboard[0,enter] vertical/input_map[p1_button4] keyboard[0,o] vertical/input_map[p2_right] keyboard[0,u] vertical/input_map[p2_left] keyboard[0,v] vertical/input_map[p2_up] keyboard[0,y] vertical/input_map[p2_down] keyboard[0,n] vertical/input_map[p2_button1] keyboard[0,b] vertical/input_map[p2_button2] keyboard[0,e] vertical/input_map[p2_button3] keyboard[0,h] vertical/input_map[p2_button4] keyboard[0,m] vertical/input_map[start1] keyboard[0,3] vertical/input_map[start2] keyboard[0,4] vertical/input_map[coin1] keyboard[0,7] or keyboard[0,8]
03/24/2016 at 03:10 #121326petrockblogKeymasterAre you able to provide a smaller config that works based off the default shipped config with just the required changes ? For example in your config above you have things like “device_video_clock” which don’t get used with our version of advmame – it will be easier for me to work with then.
03/24/2016 at 03:18 #121327petrockblogKeymasterBTW advmame 0.94 / 1.2 were reworked in March 2015 so the modeline definitions were not needed (they make no sense on the RPI), and it automatically generates some built in modes based off the game resolution. Is it possible the advmame you are using is older than that as I would have thought 1.2 and 1.4 would behave the same.
03/24/2016 at 07:50 #121340caver01ParticipantBoth good questions. The 1.2 came from the PiPlay image. I didn’t compile it. As for a smaller config based on a default– I can use 1.2 to generate a default and work from there, but the whole point of this is that I never could get 1.4 run in high resolution by adding any of these config settings. It’s possible I have configs that don’t have any effect–I tried all kinds of ideas before I got it working. I expect this exercise may be easier if I start taking away lines until it stops working.
03/24/2016 at 14:05 #121354petrockblogKeymasterok that is completely different from our 1.2 then and you will probably have the same problem (but it has the problem you have to set up modelines, and there are a few cases where they cause problems as it thinks a certain mode won’t be supported). currently it isn’t possible to have higher res vector games but I may tweak this when I get a chance (requires some additional code)
03/24/2016 at 14:05 #121355petrockblogKeymasteryou can add additional emulators in /opt/retropie/configs/mame-advmame/emulators.cfg btw
03/24/2016 at 21:18 #121401petrockblogKeymasterI have made some changes to the advmame emulators – the vector width and height is now configurable in the config file – please give it a test
you need to update retropie-setup and re-install advmame from binary. then you can configure the width/height with the option “display_width” and “display_height” (they default to 640 / 480)
03/24/2016 at 22:48 #121408caver01ParticipantFantastic! I can’t wait to try it. Thanks so much. I will let you know. I assume this is for 1.4?
03/24/2016 at 23:53 #121416petrockblogKeymaster0.94 and 1.4
03/25/2016 at 04:24 #121442caver01ParticipantEven better!
So, I tried both and they work great. I set my width and height in the configs as you described. It preserved the game’s aspect ratio (I think it was 1280×960) which is perfect–exactly what the other version of 1.2 was doing with the proper modelines and so on. I adjusted my intensity up a bit to 1.75 and set the flicker to 15. This is right where I like it, and it looks very nice, and crisp. All of the lines are native-pixel-smooth. I tested with asteroids deluxe.
One thing I did notice is that if you increase the beam width (I don’t like to do that, but to each their own) single points (shots, asteroid particles) render as vertical lines, not upsized dots. I don’t remember if it was like that before or not, since I use a size of 1, but it’s worth a mention.
This is great. Thank you so much! About the only thing better would be the addition of glow effect like the old AAE emulator, but this is much better than being stuck at 640×480.
Is this limitation also a factor with raster games? There are RGB effects 3-triad, 6-triad, and scanlines that look better at higher resolution too–not for vector of course, but for other games. If not, that’s fine. I am happy with clean vector!
03/25/2016 at 04:40 #121443petrockblogKeymasterif you want scanlines etc (and shaders to make the picture look like a crt) you should try a libretro mame emulator.
03/25/2016 at 05:24 #121446caver01ParticipantThanks. I am planning to do that. It’s a lot to learn, but I am getting there.
-
AuthorPosts
- The forum ‘Everything else related to the RetroPie Project’ is closed to new topics and replies.