Pro tip for anyone thinking of installing MESS
-
You get warned that it'll take a while - mine is about 80 minutes in on a Pi 3 so far with no sign of when it'll be finished - but nobody tells you that if you have a standard Pi without a case fan you'll be getting the "overheat" warning icon within about 20 minutes.
Luckily I had a desk fan nearby, but if you don't want your Pi to melt down halfway through an install it's something to be aware of.
-
There's also AdvanceMESS that installs from binary almost instantly alongside AdvanceMAME. It has the additional benefit of being much more stable and has a wider variety of working systems, as well as full analog controls for the systems that need it.
-
That’s standard for anything your downloading from source. The heat icon is just telling you that the pi is over heating and clocking down to 600mhz. It won’t hurt it. Jut your compile will take longer.
-
@mediamogul This is actually lr-mess2016, which I thought WAS AdvanceMess. (Ordinary lr-mess refused to install.)
-
@lostless Didn't know that, cheers. The fan's keeping it cool anyway. Still not done...
-
@spudsmctoole said in Pro tip for anyone thinking of installing MESS:
which I thought WAS AdvanceMess.
They're two different beasts. To my knowledge, all the libretro version of MESS have very low system compatibility, along with the other shortcomings mentioned above. Plus, the 2016 version is likely to run pretty slow on top of everything else, being so new. AdvanceMESS isn't perfect either, but it's currently the best we have on the Pi.
-
@mediamogul yup. The many systems i got running in lr-mess are slow and stuttery.
-
@mediamogul Turns out I had several versions of AdvanceMESS already installed, according to Retropie Setup. Not a clue what to do now, though, as the install instructions I had were for lr-mess :(
-
Out of curiosity, slightly tangential, what would you be using MESS or AdvanceMESS for that other emulators don't allow for?
I never used it and never really heard a lot about it hence my question.
-
@pjft Tons of stuff - Bally Astrocade, BBC Micro, ZX81 and quite a few more.
I think I'm going to give up early, though. Everything written about it is just completely incomprehensible gibberish. As far as I can tell I now have at least four versions of MESS successfully installed on my Pi, and not the tiniest idea how to use any of them.
-
@spudsmctoole they call it MESS for a reason ;)
-
I use it for Bally Astrocade and Fairchild Channel F. For their time, they were both very impressive systems. The version of Pac-Man for Astrovision is especially mind-blowing when you look at the other home alternatives.
-
@mediamogul How did you get the Astrocade to work?
-
I used AdvanceMESS, which is installed alongside AdvanceMAME and I in-turn installed the Astrocade BIOS (
astrocde.zip
) to/home/pi/RetroPie/roms/mame-advmame/advmess/rom/
. Afterwards, I createad a directory named 'astrocade' at/home/pi/RetroPie/roms/
for the ROMs and then another directory named 'astrocade' at/opt/retropie/configs/
where I copied/opt/retropie/mame-advmame/advmess.rc
, so the system could have its own unique config file. Also, in/opt/retropie/configs/
, I created aemulators.cfg
file with the following contents:astrocade-advmess = "/opt/retropie/emulators/advmame/bin/advmess astrocde -cfg /opt/retropie/configs/astrocade/advmess.rc -cart %ROM%" default = "astrocade-advmess"
Finally, I edited
/opt/retropie/configs/all/emulationstation/es_systems.cfg
to include:<name>astrocade</name> <fullname>Bally Astrocade</fullname> <path>/home/pi/RetroPie/roms/astrocade</path> <extension>.bin .BIN</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ astrocade %ROM%</command> <platform>astrocade</platform> <theme>astrocade</theme> </system>
That should do it, but below I'll also include my
/opt/retropie/configs/astrocade/advmess.rc
as a reference. There, you'll see a few settings that refine the picture and also setup analog control for the games that need it. All in all though, it's not too dissimilar from the settings you find in AdvanceMAME.debug_crash no debug_rawsound no debug_speedmark no device_alsa_device default device_alsa_mixer channel device_color_bgr15 yes device_color_bgr16 yes device_color_bgr24 yes device_color_bgr32 yes device_color_bgr8 yes device_color_palette8 yes device_color_yuy2 yes device_dpi_pclock_low 31250000 device_hdmi_pclock_low 0 device_joystick auto device_keyboard raw device_mouse auto device_raw_firstkeyhack no device_raw_mousedev[0] auto device_raw_mousedev[1] auto device_raw_mousedev[2] auto device_raw_mousedev[3] auto device_raw_mousetype[0] pnp device_raw_mousetype[1] pnp device_raw_mousetype[2] pnp device_raw_mousetype[3] pnp 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_overlaysize auto device_video_singlescan yes dir_artwork /home/pi/RetroPie/roms/mame-advmame/advmess/artwork dir_crc /home/pi/RetroPie/roms/mame-advmame/advmess/crc dir_diff /home/pi/RetroPie/roms/mame-advmame/advmess/diff dir_hi /home/pi/RetroPie/roms/mame-advmame/advmess/hi dir_image /home/pi/RetroPie/roms/mame-advmame/advmess/image dir_inp /home/pi/RetroPie/roms/mame-advmame/advmess/inp dir_memcard /home/pi/RetroPie/roms/mame-advmame/advmess/memcard dir_nvram /home/pi/RetroPie/roms/mame-advmame/advmess/nvram dir_rom /home/pi/RetroPie/roms/mame-advmame/advmess/rom dir_sample /home/pi/RetroPie/roms/mame-advmame/advmess/sample dir_snap /home/pi/RetroPie/roms/mame-advmame/advmess/snap dir_sta /home/pi/RetroPie/roms/mame-advmame/advmess/sta display_adjust none display_antialias yes display_artwork_backdrop yes display_artwork_bezel no display_artwork_crop yes display_artwork_overlay yes display_aspect auto display_beam 1 display_brightness 1 display_buffer no display_color auto display_expand 1.0 display_flicker 0 display_flipx no display_flipy no display_frameskip auto display_gamma 1 display_intensity 1.5 display_interlaceeffect none display_magnify auto display_magnifysize 640 display_mode auto display_pausebrightness 1 display_resize integer display_resizeeffect none display_restore yes display_rgbeffect none display_rol no display_ror no display_scanlines no display_skipcolumns auto display_skiplines auto display_translucency yes display_vsync yes include input_hotkey yes input_idleexit 0 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[key_0] auto input_map[key_1] auto input_map[key_2] auto input_map[key_3] auto input_map[key_4] auto input_map[key_5] auto input_map[key_6] auto input_map[key_7] auto input_map[key_8] auto input_map[key_9] auto input_map[key_a] auto input_map[key_again] auto input_map[key_alt] auto input_map[key_asterisk] auto input_map[key_b] auto input_map[key_back] auto input_map[key_backquote] auto input_map[key_backslash] auto input_map[key_backspace] auto input_map[key_break] auto input_map[key_c] auto input_map[key_capslock] auto input_map[key_closebrace] auto input_map[key_colon] auto input_map[key_comma] auto input_map[key_copy] auto input_map[key_ctrl] auto input_map[key_cut] auto input_map[key_d] auto input_map[key_del] auto input_map[key_diesis] auto input_map[key_doublequote] auto input_map[key_down] auto input_map[key_e] auto input_map[key_edit] auto input_map[key_end] auto input_map[key_enter] auto input_map[key_equals] auto input_map[key_esc] auto input_map[key_f10] auto input_map[key_f11] auto input_map[key_f12] auto input_map[key_f13] auto input_map[key_f14] auto input_map[key_f15] auto input_map[key_f16] auto input_map[key_f17] auto input_map[key_f18] auto input_map[key_f19] auto input_map[key_f1] auto input_map[key_f20] auto input_map[key_f21] auto input_map[key_f22] auto input_map[key_f23] auto input_map[key_f24] auto input_map[key_f2] auto input_map[key_f3] auto input_map[key_f4] auto input_map[key_f5] auto input_map[key_f6] auto input_map[key_f7] auto input_map[key_f8] auto input_map[key_f9] auto input_map[key_f] auto input_map[key_fctn] auto input_map[key_find] auto input_map[key_forward] auto input_map[key_g] auto input_map[key_graph] auto input_map[key_h] auto input_map[key_help] auto input_map[key_hold] auto input_map[key_home] auto input_map[key_i] auto input_map[key_ins] auto input_map[key_j] auto input_map[key_k] auto input_map[key_l] auto input_map[key_lalt] auto input_map[key_lctrl] auto input_map[key_left] auto input_map[key_less] auto input_map[key_lshift] auto input_map[key_m] auto input_map[key_menu] auto input_map[key_minus] auto input_map[key_move] auto input_map[key_n] auto input_map[key_numlock] auto input_map[key_o] auto input_map[key_open] auto input_map[key_openbrace] auto input_map[key_p] auto input_map[key_pad_0] auto input_map[key_pad_1] auto input_map[key_pad_2] auto input_map[key_pad_3] auto input_map[key_pad_4] auto input_map[key_pad_5] auto input_map[key_pad_6] auto input_map[key_pad_7] auto input_map[key_pad_8] auto input_map[key_pad_9] auto input_map[key_pad_asterisk] auto input_map[key_pad_colon] auto input_map[key_pad_diesis] auto input_map[key_pad_enter] auto input_map[key_pad_minus] auto input_map[key_pad_plus] auto input_map[key_pad_slash] auto input_map[key_paste] auto input_map[key_pause] auto input_map[key_period] auto input_map[key_pgdn] auto input_map[key_pgup] auto input_map[key_play] auto input_map[key_plus] auto input_map[key_pound] auto input_map[key_print] auto input_map[key_q] auto input_map[key_quickload] auto input_map[key_quote] auto input_map[key_r] auto input_map[key_ralt] auto input_map[key_rctrl] auto input_map[key_record] auto input_map[key_restore] auto input_map[key_rew] auto input_map[key_right] auto input_map[key_rshift] auto input_map[key_s] auto input_map[key_scrlock] auto input_map[key_semicolon] auto input_map[key_shift] auto input_map[key_slash] auto input_map[key_space] auto input_map[key_stop] auto input_map[key_store] auto input_map[key_t] auto input_map[key_tab] auto input_map[key_u] auto input_map[key_undo] auto input_map[key_up] auto input_map[key_v] auto input_map[key_w] auto input_map[key_x] auto input_map[key_y] auto input_map[key_z] auto input_map[p1_dialx] auto 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] mouse[0,x] mouse[1,x] mouse[2,x] input_map[p1_paddley] mouse[0,x] mouse[1,x] mouse[2,x] 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] auto input_map[p1_trackbally] auto input_map[p2_dialx] auto 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] mouse[0,y] mouse[1,y] mouse[2,y] input_map[p2_paddley] mouse[0,y] mouse[1,y] mouse[2,y] 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] auto input_map[p2_trackbally] auto 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_steadykey no lcd_server none lcd_speed 4 lcd_timeout 500 misc_bios default misc_cheat no misc_cheatfile /home/pi/RetroPie/roms/mame-advmame/advmess/misc/cheat.dat misc_difficulty none misc_eventdebug no misc_eventfile /home/pi/RetroPie/roms/mame-advmame/advmess/misc/event.dat misc_freeplay no misc_hiscorefile /home/pi/RetroPie/roms/mame-advmame/advmess/misc/hiscore.dat misc_lang none misc_languagefile /home/pi/RetroPie/roms/mame-advmame/advmess/misc/english.lng misc_mutedemo no misc_quiet yes misc_ramsize auto misc_safequit no misc_smp yes misc_timetorun 0 record_sound yes record_sound_time 15 record_video yes 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_knocker on(kdb, 0b100); wait(!event()); off(kdb, 0b100); 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 yes sound_samplerate 44100 sound_samples yes sound_volume -3 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[ui_pause] keyboard[0,w] keyboard[0,a] input_map[ui_reset_machine] keyboard[0,w] keyboard[0,b] input_map[ui_snapshot] keyboard[0,w] keyboard[0,y] input_map[ui_save_state] keyboard[0,w] keyboard[0,q] input_map[ui_load_state] keyboard[0,w] keyboard[0,l] input_map[ui_configure] keyboard[0,tab] or keyboard[0,w] keyboard[0,x] input_map[ui_up] keyboard[0,up] input_map[ui_down] keyboard[0,down] input_map[ui_left] keyboard[0,left] input_map[ui_right] keyboard[0,right] input_map[ui_select] keyboard[0,enter] or keyboard[0,a] input_map[ui_cancel] keyboard[0,esc] or keyboard[0,w] keyboard[0,t] input_map[p1_up] keyboard[0,up] input_map[p1_down] keyboard[0,down] input_map[p1_left] keyboard[0,left] input_map[p1_right] keyboard[0,right] input_map[p1_doubleright_up] input_map[p1_doubleright_down] input_map[p1_doubleright_left] input_map[p1_doubleright_right] input_map[p1_doubleleft_up] input_map[p1_doubleleft_down] input_map[p1_doubleleft_left] input_map[p1_doubleleft_right] input_map[p1_button1] keyboard[0,b] input_map[p1_button2] input_map[p1_button3] input_map[p1_button4] input_map[p1_button5] input_map[p1_button6] input_map[p1_button7] input_map[p1_button8] input_map[p1_button9] input_map[p1_button10] input_map[p1_start] input_map[p1_select] input_map[p1_mahjong_a] input_map[p1_mahjong_b] input_map[p1_mahjong_c] input_map[p1_mahjong_d] input_map[p1_mahjong_e] input_map[p1_mahjong_f] input_map[p1_mahjong_g] input_map[p1_mahjong_h] input_map[p1_mahjong_i] input_map[p1_mahjong_j] input_map[p1_mahjong_k] input_map[p1_mahjong_l] input_map[p1_mahjong_m] input_map[p1_mahjong_n] input_map[p1_mahjong_kan] input_map[p1_mahjong_pon] input_map[p1_mahjong_chi] input_map[p1_mahjong_reach] input_map[p1_mahjong_ron] input_map[p1_mahjong_bet] input_map[p1_mahjong_chance] input_map[p1_mahjong_score] input_map[p1_mahjong_double_up] input_map[p1_mahjong_flip_flop] input_map[p2_up] keyboard[0,3_pad] input_map[p2_down] keyboard[0,4_pad] input_map[p2_left] keyboard[0,1_pad] input_map[p2_right] keyboard[0,2_pad] input_map[p2_button1] keyboard[0,6_pad] input_map[p2_button2] input_map[p2_button3] input_map[p2_button4] input_map[p2_button5] input_map[p2_button6] input_map[p2_button7] input_map[p2_button8] input_map[p2_button9] input_map[p2_button10] input_map[p2_start] input_map[p2_select] astrocde/input_setting[p1_paddlex] keydelta:20,centerdelta:20,sensitivity:20,reverse:1 astrocde/input_setting[p2_paddlex] keydelta:20,centerdelta:20,sensitivity:20,reverse:0 astrocde[home_pi_retropie_roms_astrocade_bally_pinball]/input_map[p1_button1] keyboard[0,l] astrocde[home_pi_retropie_roms_astrocade_bally_pinball]/input_map[p2_button1] keyboard[0,q] astrocde[home_pi_retropie_roms_astrocade_bally_pinball]/input_map[p2_down] keyboard[0,b]
-
@mediamogul Cheers for that, but it's not working for me - I get dumped straight back to the Retropie menu for every ROM, not even going through the MESS splash screens first.
I'd already figured most of it out for a couple of other systems, as noted here:
https://retropie.org.uk/forum/topic/19816/getting-control-inputs-to-work-in-advmess
...but for the Astrocade with your files above I'm not even getting as far as I did with those - the BBC and Astrovision do at least both boot to their respective systems, I just can't get any sort of input to register.
I've got every conceivable BIOS file and variant in the directory you specified, called ASTROCADE.ZIP, ASTROCDE.ZIP, ASTROCDW.ZIP, ASTRO.BIN and BIOSWHIT.BIN. I've got all the game files in .BIN format in the usual ROMS directory in a folder called ASTROCADE.
Can I just check a couple of things quickly to see if I can get to the bottom of it?
(1) When you say "in /opt/retropie/configs/, I created a emulators.cfg file with the following contents:", do you mean just in the root CONFIGS folder, or inside the CONFIGS/ASTROCADE folder? (I've tried both with no discernible difference, but it'd be good to rule it out as the possible problem source.)
(2) In the line astrocade-advmess = "/opt/retropie/emulators/advmame/bin/advmess astrocde -cfg (etc), is that spelling at the end ("astrocde" with no "a") correct? (Same again, have tried both ways but just trying to narrow things down.)
(3) When you say to put the BIOS files in /home/pi/RetroPie/roms/mame-advmame/advmess/rom/, is that right? I've been putting the other ones in /opt/retropie/configs/mame-advmame/rom. (Once again, have tried both.)
-
@SpudsMcToole said in Pro tip for anyone thinking of installing MESS:
(1)
The files should be located at
/opt/retropie/configs/astrocade/emulators.cfg
and/opt/retropie/configs/astrocade/advmess.rc
(2)
It is spelled right there. That argument is meant to specify the driver that AdvanceMESS will use. It also means that I made a typo when referencing the BIOS name, which should be
astrocde.zip
. I'll correct it above.(3)
The path that AdvanceMAME will check for its BIOS files is specified in the
advmess.rc
. You should check yours to see what it's set to, but I would advise the path be different than your MAME files so that it's easier to manage separately. -
@mediamogul said in Pro tip for anyone thinking of installing MESS:
The path that AdvanceMAME will check for its BIOS files is specified in the
advmess.rc
. You should check yours to see what it's set to, but I would advise the path be different than your MAME files so that it's easier to manage separately.Which path? dir_image? dir_rom?
Otherwise I'm perplexed. I'm doing everything you say and I've got all the files where they should be and I'm still getting dumped straight back to the menu. I can't find anything different that I'm doing to what I'm doing with the BBC and Arcadia setups, but those are working except for inputs.
For clarity:
(1) I've copied your emulator.cfg file and put it in /opt/retropie/configs/astrocade/
(2) I've copied your advmess.rc file and put it in the same folder.
(3) I've copied your lines for es_systems.cfg and added them into mine.
(4) I've got astrocde.zip, containing astro.bin, in /opt/retropie/configs/mame-advmame/rom (and also in /home/pi/RetroPie/roms/mame-advmame/advmess/rom)
(5) I've got my game ROMs as unzipped BIN files in /home/pi/RetroPie/roms/astrocade
But I don't even get as far as the MESS warning screens.
-
@SpudsMcToole said in Pro tip for anyone thinking of installing MESS:
Which path? dir_image? dir_rom?
dir_rom
But I don't even get as far as the MESS warning screens.
After it fails to launch, post the contents of your
/dev/shm/runcommand.log
to pastebin.com and let's see if we can't find where the breakdown is happening. -
@mediamogul Okay, huge breakthrough, thanks to the tried and tested "flail around hitting buttons at random and see what happens" method.
When I use this as the .RC file:
debug_crash no debug_rawsound no debug_speedmark no device_alsa_device default device_alsa_mixer channel device_color_bgr15 yes device_color_bgr16 yes device_color_bgr24 yes device_color_bgr32 yes device_color_bgr8 yes device_color_palette8 no device_color_yuy2 no device_joystick auto device_keyboard sdl device_mouse auto device_raw_firstkeyhack no device_raw_mousedev[0] auto device_raw_mousedev[1] auto device_raw_mousedev[2] auto device_raw_mousedev[3] auto device_raw_mousetype[0] pnp device_raw_mousetype[1] pnp device_raw_mousetype[2] pnp device_raw_mousetype[3] pnp device_sdl_samples 512 device_sound auto device_video sdl device_video_cursor auto device_video_doublescan yes device_video_fastchange yes device_video_interlace no device_video_output overlay device_video_overlaysize 0 device_video_singlescan no device_video_clock 10 - 150 / 30.5 - 60 / 55 - 130 dir_artwork /home/pi/.advance/artwork:/usr/local/share/advance/artwork:/opt/retropie/emulators/advmame/share/advance/artwork dir_crc /home/pi/.advance/crc dir_diff /home/pi/.advance/diff dir_hi /home/pi/.advance/hi dir_image /home/pi/.advance/image:/usr/local/share/advance/image:/opt/retropie/emulators/advmame/share/advance/image:/opt/retropie/configs/mame-advmame/image:/home/pi/RetroPie/roms/bbcmicro dir_inp /home/pi/.advance/inp dir_memcard /home/pi/.advance/memcard dir_nvram /home/pi/.advance/nvram dir_rom /home/pi/.advance/rom:/usr/local/share/advance/rom:/opt/retropie/emulators/advmame/share/advance/rom:/opt/retropie/configs/mame-advmame/rom dir_sample /home/pi/.advance/sample:/usr/local/share/advance/sample:/opt/retropie/emulators/advmame/share/advance/sample dir_snap /home/pi/.advance/snap dir_sta /home/pi/.advance/sta display_adjust none display_antialias no display_artwork_backdrop no display_artwork_bezel no display_artwork_crop no display_artwork_overlay no display_beam 1 display_brightness 1 display_buffer no display_color auto # Below widens the screen to 16:9 # display_expand 1.35 display_flicker 0 display_flipx no display_flipy no display_frameskip auto display_gamma 1 display_intensity 1.5 display_interlaceeffect none display_magnify auto display_magnifysize 640 display_mode auto display_pausebrightness 1 display_resize fractional display_resizeeffect none display_restore no display_rgbeffect none display_rol no display_ror no display_scanlines no display_skipcolumns auto display_skiplines auto display_translucency no display_vsync yes include input_hotkey yes input_idleexit 0 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[key_0] joystick_button[0,18] or keyboard[0,0] input_map[key_1] joystick_button[0,8] or keyboard[0,1] input_map[key_2] joystick_button[0,9] or keyboard[0,2] input_map[key_3] joystick_button[0,10] or keyboard[0,3] input_map[key_4] joystick_button[0,11] or keyboard[0,4] input_map[key_5] joystick_button[0,12] or keyboard[0,5] input_map[key_6] joystick_button[0,13] or keyboard[0,6] input_map[key_7] joystick_button[0,14] or keyboard[0,7] input_map[key_8] joystick_button[0,15] or keyboard[0,8] input_map[key_9] joystick_button[0,16] or keyboard[0,9] input_map[key_a] auto input_map[key_again] auto input_map[key_alt] auto input_map[key_asterisk] auto input_map[key_b] auto input_map[key_back] auto input_map[key_backquote] auto input_map[key_backslash] auto input_map[key_backspace] auto input_map[key_break] auto input_map[key_c] auto input_map[key_capslock] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,capslock] input_map[key_closebrace] auto input_map[key_colon] auto input_map[key_comma] auto input_map[key_copy] auto input_map[key_ctrl] auto input_map[key_cut] auto input_map[key_d] auto input_map[key_del] joystick_button[0,17] or keyboard[0,del] or keyboard[0,backspace] input_map[key_diesis] auto input_map[key_doublequote] auto input_map[key_down] auto input_map[key_e] auto input_map[key_edit] auto input_map[key_end] auto input_map[key_enter] joystick_button[0,19] or keyboard[0,enter] input_map[key_equals] auto input_map[key_esc] auto input_map[key_f10] auto input_map[key_f11] auto input_map[key_f12] auto input_map[key_f13] auto input_map[key_f14] auto input_map[key_f15] auto input_map[key_f16] auto input_map[key_f17] auto input_map[key_f18] auto input_map[key_f19] auto input_map[key_f1] auto input_map[key_f20] auto input_map[key_f21] auto input_map[key_f22] auto input_map[key_f23] auto input_map[key_f24] auto input_map[key_f2] auto input_map[key_f3] auto input_map[key_f4] auto input_map[key_f5] auto input_map[key_f6] auto input_map[key_f7] auto input_map[key_f8] auto input_map[key_f9] auto input_map[key_f] auto input_map[key_fctn] auto input_map[key_find] auto input_map[key_forward] auto input_map[key_g] auto input_map[key_graph] auto input_map[key_h] auto input_map[key_help] auto input_map[key_hold] auto input_map[key_home] auto input_map[key_i] auto input_map[key_ins] auto input_map[key_j] auto input_map[key_k] auto input_map[key_l] auto input_map[key_lalt] auto input_map[key_lctrl] auto input_map[key_left] auto input_map[key_less] auto input_map[key_lshift] keyboard[0,lshift] or joystick_button[0079_0006_3,2] input_map[key_m] auto input_map[key_menu] auto input_map[key_minus] auto input_map[key_move] auto input_map[key_n] auto input_map[key_numlock] auto input_map[key_o] auto input_map[key_open] auto input_map[key_openbrace] auto input_map[key_p] auto input_map[key_pad_0] auto input_map[key_pad_1] auto input_map[key_pad_2] auto input_map[key_pad_3] auto input_map[key_pad_4] auto input_map[key_pad_5] auto input_map[key_pad_6] auto input_map[key_pad_7] auto input_map[key_pad_8] auto input_map[key_pad_9] auto input_map[key_pad_asterisk] auto input_map[key_pad_colon] auto input_map[key_pad_diesis] auto input_map[key_pad_enter] auto input_map[key_pad_minus] auto input_map[key_pad_plus] auto input_map[key_pad_slash] auto input_map[key_paste] auto input_map[key_pause] auto input_map[key_period] auto input_map[key_pgdn] auto input_map[key_pgup] auto input_map[key_play] auto input_map[key_plus] auto input_map[key_pound] auto input_map[key_print] auto input_map[key_q] auto input_map[key_quickload] auto input_map[key_quote] auto input_map[key_r] auto input_map[key_ralt] auto input_map[key_rctrl] auto input_map[key_record] auto input_map[key_restore] auto input_map[key_rew] auto input_map[key_right] auto input_map[key_rshift] keyboard[0,rshift] input_map[key_s] auto input_map[key_scrlock] auto input_map[key_semicolon] auto input_map[key_shift] auto input_map[key_slash] auto input_map[key_space] auto input_map[key_stop] auto input_map[key_store] auto input_map[key_t] auto input_map[key_tab] auto input_map[key_u] auto input_map[key_undo] auto input_map[key_up] auto input_map[key_v] auto input_map[key_w] auto input_map[key_x] auto input_map[key_y] auto input_map[key_z] auto input_map[p1_dialx] auto 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] auto input_map[p1_trackbally] auto input_map[p2_dialx] auto 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] auto input_map[p2_trackbally] auto 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_cancel] joystick_button[0079_0006_3,8] joystick_button[0079_0006_3,10] or keyboard[0,f7] input_map[ui_mode_next] keyboard[0,f24] input_map[ui_mode_pred] keyboard[0,f24] input_map[ui_reset_machine] joystick_button[0079_0006,4] or joystick_button[0079_0006_2,4] or keyboard[0,f9] input_map[ui_toggle_debug] keyboard[0,f24] 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_ramsize auto misc_safequit no 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 yes 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 280x210/display_resize fractional 320x192/display_mode sdl_1824x984 320x192/display_resize fractional 320x192x59/display_mode sdl_1824x984 320x192x59/display_resize fractional 336x225/display_mode sdl_416x288 336x225/display_resize fractional 320x204/display_mode sdl_1920x1080 320x204/display_resize fractional 800x300x50/display_mode generate-double bbcbp128[home_pi_retropie_roms_bbcmicrochuckieegg_chuckie]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_k,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_g,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicroelite_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicroplanetoid_planetoid]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75); simulate_key(key_scrlock,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicrothrust_thrust]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_t,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(200); simulate_key(key_lshift,200); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75); input_map[p1_up] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,up] input_map[p1_down] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,down] input_map[p1_left] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,left] input_map[p1_right] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,right] input_map[p1_start] joystick_button[0079_0006_3,7] or keyboard[0,1] input_map[p1_select] joystick_button[0079_0006_3,7] or keyboard[0,5] input_map[p2_up] joystick_digital[0079_0006,0,0,0] or keyboard[0,r] input_map[p2_down] joystick_digital[0079_0006,0,0,1] or keyboard[0,f] input_map[p2_left] joystick_digital[0079_0006,0,1,1] or keyboard[0,d] input_map[p2_right] joystick_digital[0079_0006,0,1,0] or keyboard[0,g] input_map[p2_button1] joystick_button[0079_0006,1] or keyboard[0,a] input_map[p2_button2] joystick_button[0079_0006,3] or keyboard[0,s] input_map[p2_button3] joystick_button[0079_0006,5] or keyboard[0,q] input_map[p2_button4] joystick_button[0079_0006,0] or keyboard[0,w] input_map[p2_button5] joystick_button[0079_0006,2] input_map[p2_button6] input_map[p2_button7] input_map[p2_button8] input_map[p2_button9] input_map[p2_button10] input_map[p2_start] joystick_button[0079_0006,4] or joystick_button[0079_0006_3,10] or keyboard[0,2] input_map[p2_select] joystick_button[0079_0006,4] or joystick_button[0079_0006_3,10] or keyboard[0,6] input_map[ui_up] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,up] input_map[ui_down] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,down] input_map[ui_left] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,left] input_map[ui_right] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,right] input_map[ui_select] joystick_button[0079_0006_3,2] or keyboard[0,enter] input_map[ui_record_start] input_map[ui_record_stop]
...(almost) everything miraculously works! I have keyboard access on BBC, and it also works for the Arcadia and Astrocade (although not, bizarrely, Fairchild Channel F).
The only tiny problem left with the BBC is that because Tab is a key on the BBC keyboard, MESS doesn't recognise it for accessing the menu, and I can't figure out how to fix it because the keyboard map code is all incomprehensible bollocks like this:
input_map[key_tab] joystick_button[0079_0006_3,1]
Which is annoying, because if I could figure out the maps I could either enable Tab and set controls via the menu, or just set the joystick directly in the RC file to Z, X, /, : and Return and take care of about 90% of BBC games straight away.
(I've tried pasting in the line from the Astrocade RC file after I've mapped Tab to a joystick button, which is this:
input_map[ui_configure] keyboard[0,tab] or joystick_button[0079_0011_2,7]
but that doesn't seem to do anything in the BBC file.)
But yeah, otherwise that RC file is the Rosetta Stone and I have no clue why.
-
@SpudsMcToole said in Pro tip for anyone thinking of installing MESS:
The only tiny problem left with the BBC is that because Tab is a key on the BBC keyboard, MESS doesn't recognise it for accessing the menu
You might try something like:
input_map[key_tab] keyboard[0,tab] input_map[ui_configure] keyboard[0,lalt] keyboard[0,tab] or keyboard[0,ralt] keyboard[0,tab]
In theory that would allow the BBC environment to use the 'Tab' key as its own, while the config menu would be invoked by either 'LeftAlt+Tab' or 'RightAlt+Tab'.
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.