BattleZone mame2003 input issue
-
I was reading the games list and saw that someone said they had gotten mame2003 to run BattleZone (bzone.zip) successfully after they messed with the input bindings in the mame menu.
The exact quote is:
"Game automatically pauses and enders service mode when start is pressed. enter MAME menu and key those buttons to the controller for this game, then press them when the game starts. Since this, I have had no issues."I have been trying to configure different things in that menu but nothing seems to avoid the issue described. It registers a coin, then when I hit start it opens up the mame2003 service mode.
Hoping whoever wrote that note could maybe explain a bit more what they mean by "key those buttons."
-
One of the best features of RetroPie is that there's always the option of using another, and in certain cases, more compatible means of emulation. 'Battlezone' not only runs more effectively with a few other solutions, but being a vector game, is much better displayed in AdvanceMame, where it can be rendered in HD. Also, 'Battlezone' makes use of bezel art, as seen below, to complete the cockpit effect that is not compatible with lr-mame2003. Of course, another great feature of RetroPie is that you can ignore all of this and play it anyway you see fit, so my words come only as a recommendation.
-
@mediamogul Yeah I checked out advMame1.4 and it seemed to run it nicer with the old colored glass overlays. I havent been able to get advMame detecting any joypad input yet but I will do some reading thanks.
Edit: Ah figured it out now. Most of the advMame controls are defaulted to generic button names but when using an xbox 360 controller it needed rebindings of many things. Just need to figure out how to bind something to exit the game now.
-
Any help you can provide would be great. I want to do the same. I sold my upright battlezone that I had for over 30 years. Which emulator is best for BZ on a Pi3B? Also, I am not sure what @Alturis meant by BZ being HD in AdvanceMame and that bezel art is not compatible with lr-mame2003. Do you mean for just that game? I use bezel art and shaders for my other roms in lr-mame2003 and they work fine. Also, I would love to find that exact bezel art you are using since that is how it looked in the periscope of the actual game.
-
@flightrisk said in BattleZone mame2003 input issue:
Which emulator is best for BZ on a Pi3B?
There are several options that will simply run the game just fine. However, AdvanceMAME is currently the only option for HD vector rendering, which makes the vector art look very close to how it would on an actual vector monitor. The bezel artwork for AdvanceMAME and lr-mame2003 are not directly compatible. With a little work you could probably adapt the bezel to work in RetroArch, or even find one that's already been created. The artwork file seen above that's compatible with the MAME 0.106 (AdvanceMAME) can usually be found with the ROM set itself.
-
Is AvanceMAME3 AdvanceMAME 3.6? I was adding cores just now and saw advmame.94, .104 and then just plain advmame. When installed the third one with no number after it, I watched to see what it installed and it said 3.6. Also, on 104 and 3.6, I noticed at the end of the install it had 10 or so errors that it failed to make symlinks. It flashed by quickly, but looked like it was for all the subfolders under the emulator path. Hope I can ignore that ;)
Also, will I need to find .106 versions of vector roms? I am using .78 on the Pi3 and much later versions on a PC, but have no intermediate roms.
Lastly, do I take the artwork out of the zip, or does advmame have a feature that finds it in there? I have all my arcade roms in an arcade folder. So currently am using this path since I have experimented with Retropie bezels only in Retroarch and the classic arcade roms in the arcade folder:
roms: /home/pi/RetroPie/roms/arcade
bezels: /opt/retropie/emulators/retroarch/overlays/I'm assuming since AdvanceMAME isn't a libretro core, I will have to put things in different places. GitHub lists these paths, but not sure where the bezels would go and how to configure them yet since I have used Retroarch for all that:
Roms Dir: /home/pi/RetroPie/roms/mame-advmame
Binary Dir: /opt/retropie/emulators/advmame/bin
Config Dir: /opt/retropie/configs/mame-advmame -
@flightrisk said in BattleZone mame2003 input issue:
Is AvanceMAME3 AdvanceMAME 3.6?
It is indeed.
will I need to find .106 versions of vector roms?
Yes. Each version of MAME/AdvanceMAME/FBA requires a specific ROM set to match it.
do I take the artwork out of the zip, or does advmame have a feature that finds it in there?
You just leave them zipped and place them at
/home/pi/RetroPie/roms/mame-advmame/artwork
-
Also, AdvanceMAME is stretching roms like battlezone to almost full screen. So I am trying to track that down. I see some people saying there is/was an issue with 3.x versions of advmame doing this, but hopefully there is an aspect ratio or X/Y resolution setting somewhere.
-
@flightrisk said in BattleZone mame2003 input issue:
AdvanceMAME is stretching roms like battlezone to almost full screen.
It doesn't do that on mine and it shouldn't be the default behavior. Post the contents of
/opt/retropie/configs/mame-advmame/advmame.rc
and we'll take a look. -
@alturis The default exit key is ESC, but you can edit the binding unsing the TAB menu inside AdvanceMAME. Select general controls for all games and edit the UI Cancel binding. You could even set this to START and SELECT simultaneously if you want it to match libretro hotkey exit.
I also recommend mapping this game’s controls to use a virtual “tank stick” so you can steer the tank with a single joystick leaving your other hand free to press the fire button:
Game Control Mapped to Right/Up Up NOT Right or Left NOT Down Right/DownD Down NOT Right or Right NOT Up NOT Down Left/Up Up NOT Left or Right NOT Down Left/Down Down NOT Left or Left NOT Up NOT Down
-
@caver01 Awesome thank you for the tip! Might have to give that control setup a try for it. But to me, the feel of driving it like a two-stick tank as the original arcade was outweighed the difficulty of having to use my pinky to fire.
-
@mediamogul Thanks, here is my advmame.rc
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 alsa device_video fb device_video_cursor off 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/artwork dir_diff /home/pi/RetroPie/roms/mame-advmame/diff dir_hi /home/pi/RetroPie/roms/mame-advmame/hi dir_image /home/pi/RetroPie/roms/mame-advmame dir_inp /home/pi/RetroPie/roms/mame-advmame/inp dir_memcard /home/pi/RetroPie/roms/mame-advmame/memcard dir_nvram /home/pi/RetroPie/roms/mame-advmame/nvram dir_rom /home/pi/RetroPie/roms/mame-advmame:/home/pi/RetroPie/roms/arcade dir_sample /home/pi/RetroPie/roms/mame-advmame/samples dir_snap /home/pi/RetroPie/roms/mame-advmame/snap dir_sta /home/pi/RetroPie/roms/mame-advmame/nvram 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.25 display_flicker 0 display_flipx no display_flipy no display_frameskip auto display_gamma 1 display_intensity 1.5 display_interlaceeffect none display_magnify 1 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 no 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[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[p5_dialx] auto input_map[p5_dialy] auto input_map[p5_lightgunx] auto input_map[p5_lightguny] auto input_map[p5_mahjong_a] auto input_map[p5_mahjong_b] auto input_map[p5_mahjong_bet] auto input_map[p5_mahjong_c] auto input_map[p5_mahjong_chance] auto input_map[p5_mahjong_chi] auto input_map[p5_mahjong_d] auto input_map[p5_mahjong_double_up] auto input_map[p5_mahjong_e] auto input_map[p5_mahjong_f] auto input_map[p5_mahjong_flip_flop] auto input_map[p5_mahjong_g] auto input_map[p5_mahjong_h] auto input_map[p5_mahjong_i] auto input_map[p5_mahjong_j] auto input_map[p5_mahjong_k] auto input_map[p5_mahjong_kan] auto input_map[p5_mahjong_l] auto input_map[p5_mahjong_m] auto input_map[p5_mahjong_n] auto input_map[p5_mahjong_pon] auto input_map[p5_mahjong_reach] auto input_map[p5_mahjong_ron] auto input_map[p5_mahjong_score] auto input_map[p5_mousex] auto input_map[p5_mousey] auto input_map[p5_paddlex] auto input_map[p5_paddley] auto input_map[p5_pedalbrake] auto input_map[p5_pedalgas] auto input_map[p5_pedalother] auto input_map[p5_stickx] auto input_map[p5_sticky] auto input_map[p5_stickz] auto input_map[p5_trackballx] auto input_map[p5_trackbally] auto input_map[p6_dialx] auto input_map[p6_dialy] auto input_map[p6_lightgunx] auto input_map[p6_lightguny] auto input_map[p6_mahjong_a] auto input_map[p6_mahjong_b] auto input_map[p6_mahjong_bet] auto input_map[p6_mahjong_c] auto input_map[p6_mahjong_chance] auto input_map[p6_mahjong_chi] auto input_map[p6_mahjong_d] auto input_map[p6_mahjong_double_up] auto input_map[p6_mahjong_e] auto input_map[p6_mahjong_f] auto input_map[p6_mahjong_flip_flop] auto input_map[p6_mahjong_g] auto input_map[p6_mahjong_h] auto input_map[p6_mahjong_i] auto input_map[p6_mahjong_j] auto input_map[p6_mahjong_k] auto input_map[p6_mahjong_kan] auto input_map[p6_mahjong_l] auto input_map[p6_mahjong_m] auto input_map[p6_mahjong_n] auto input_map[p6_mahjong_pon] auto input_map[p6_mahjong_reach] auto input_map[p6_mahjong_ron] auto input_map[p6_mahjong_score] auto input_map[p6_mousex] auto input_map[p6_mousey] auto input_map[p6_paddlex] auto input_map[p6_paddley] auto input_map[p6_pedalbrake] auto input_map[p6_pedalgas] auto input_map[p6_pedalother] auto input_map[p6_stickx] auto input_map[p6_sticky] auto input_map[p6_stickz] auto input_map[p6_trackballx] auto input_map[p6_trackbally] auto input_map[p7_dialx] auto input_map[p7_dialy] auto input_map[p7_lightgunx] auto input_map[p7_lightguny] auto input_map[p7_mahjong_a] auto input_map[p7_mahjong_b] auto input_map[p7_mahjong_bet] auto input_map[p7_mahjong_c] auto input_map[p7_mahjong_chance] auto input_map[p7_mahjong_chi] auto input_map[p7_mahjong_d] auto input_map[p7_mahjong_double_up] auto input_map[p7_mahjong_e] auto input_map[p7_mahjong_f] auto input_map[p7_mahjong_flip_flop] auto input_map[p7_mahjong_g] auto input_map[p7_mahjong_h] auto input_map[p7_mahjong_i] auto input_map[p7_mahjong_j] auto input_map[p7_mahjong_k] auto input_map[p7_mahjong_kan] auto input_map[p7_mahjong_l] auto input_map[p7_mahjong_m] auto input_map[p7_mahjong_n] auto input_map[p7_mahjong_pon] auto input_map[p7_mahjong_reach] auto input_map[p7_mahjong_ron] auto input_map[p7_mahjong_score] auto input_map[p7_mousex] auto input_map[p7_mousey] auto input_map[p7_paddlex] auto input_map[p7_paddley] auto input_map[p7_pedalbrake] auto input_map[p7_pedalgas] auto input_map[p7_pedalother] auto input_map[p7_stickx] auto input_map[p7_sticky] auto input_map[p7_stickz] auto input_map[p7_trackballx] auto input_map[p7_trackbally] auto input_map[p8_dialx] auto input_map[p8_dialy] auto input_map[p8_lightgunx] auto input_map[p8_lightguny] auto input_map[p8_mahjong_a] auto input_map[p8_mahjong_b] auto input_map[p8_mahjong_bet] auto input_map[p8_mahjong_c] auto input_map[p8_mahjong_chance] auto input_map[p8_mahjong_chi] auto input_map[p8_mahjong_d] auto input_map[p8_mahjong_double_up] auto input_map[p8_mahjong_e] auto input_map[p8_mahjong_f] auto input_map[p8_mahjong_flip_flop] auto input_map[p8_mahjong_g] auto input_map[p8_mahjong_h] auto input_map[p8_mahjong_i] auto input_map[p8_mahjong_j] auto input_map[p8_mahjong_k] auto input_map[p8_mahjong_kan] auto input_map[p8_mahjong_l] auto input_map[p8_mahjong_m] auto input_map[p8_mahjong_n] auto input_map[p8_mahjong_pon] auto input_map[p8_mahjong_reach] auto input_map[p8_mahjong_ron] auto input_map[p8_mahjong_score] auto input_map[p8_mousex] auto input_map[p8_mousey] auto input_map[p8_paddlex] auto input_map[p8_paddley] auto input_map[p8_pedalbrake] auto input_map[p8_pedalgas] auto input_map[p8_pedalother] auto input_map[p8_stickx] auto input_map[p8_sticky] auto input_map[p8_stickz] auto input_map[p8_trackballx] auto input_map[p8_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 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 no 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
-
@caver01 What about mapping an xbox 360 usb controller with 2 sticks and using the push to click feature on the right stick to fire? Not sure if that would cause you to maybe move the stick while trying to press it and throw off your aim. In that case, the right trigger would probably work great. Do you know how I would try that? Is it like retroarch where I just go in and move the sticks and press them as I go through options, or do I need to edit a text file? Your example above of mapping a "tank stick", is that just moving the stick around or typing those word in?
-
@mediamogul I found the same bezel you show in your post for battlezone. It is a .png with dimensions of 1647x955. Very odd size. It that what I want and advmame takes care of sizing, or should I pull it into photoshop/gimp and resample it to my monitors native 1920x1080? Things might be off a bit since these are different aspect ratios. 1.7246 vs. 1.7777
-
Thanks, here is my advmame.rc
Try changing
display_expand 1.25
todisplay_expand 1.0
I found the same bezel you show in your post for battlezone... It that what I want... ?
If you plan on using AdvanceMAME, you need to use an artwork file specifically formatted for it. Try using the
bzone.zip
artwork file located here. -
@flightrisk said in BattleZone mame2003 input issue:
What about mapping an xbox 360 usb controller with 2 sticks and using the push to click feature on the right stick to fire?
If you have triggers that are easier, I would recommend that over the push-click, but that is just me. I think push-click is hard to execute while keeping the stick in a specific position.
Do you know how I would try that?
Editing digital inputs for AdvanceMAME is best done from within MAME itself by pressing TAB on a keyboard. This will bring up a pop up menu and you can navigate to the controls configuration menu choices. When you select an input to map, you should be able to press buttons on a controller to map them.
Your example above of mapping a "tank stick", is that just moving the stick around or typing those word in?
To do this mapping, you are moving the stick or pressing D-pad. To do a <NOT> entry, you have to double-tap in the given direction. To make the inputs <AND> together you do them at the same time, or right after each other (but before the input is accepted). To <OR> them together, you do one input, let it accept, then immediately do another on the same line. I if you move to a new line and back, it will overwrite the whole entry instead.
Analog sticks introduces a potential new issue that I have not tested. If these movements are not accepted, you may need to define these manually by setting up analog inputs in the .rc file. For this you would need to know the indexes of your sticks. This is not a trivial process, as you would probably want to use the advj utility to test. You can read about the details here.
-
@flightrisk Regarding artwork, bezels etc, you really cannot just use a .png file. You have to use the MAME .106 artwork format as mediamogul mentioned. The zip files for this old menthod will contain overlays, bezels and background files alongside a .art text file that describes exactly how this version of MAME should apply them. When you download an appropriate .zip for the rom in question, most of these details will have been already worked out.
-
@caver01 Excellent! I have it working exactly the way I want. Thanks for the tip on how to enter a <NOT>. It works well. In the end, I settled on left analog up and down, right analog up and down, and right trigger for firing. I left the keyboard options in as well. And you are right, push click just won't work in this game. My trick on my arcade game was to back up a lot while doing little turns to get distance between myself and the other tank to have time to react to their firing. Then go after them, often going past them very close and watching the radar to backup again, turn and fire. The only problem with this strategy is when you are backing up and hit an obstacle just as they fire ;)
-
@mediamogul That is exactly the artwork I found and was asking about. I can see positions mapped out in the .art file. I was just confused about the odd resolution
-
@mediamogul - Thanks so much for the help. Almost there. Changing the display parameter from 1.25 to 1.0 made it look 4:3 now, but here is my screen with the bezel installed. It is cutting off the right and left, and it is clearly zoomed out too much since it is cutting off the top and bottom. So it looks like it not only is zoomed in, but cutoff for a 4:3 monitor instead of my 16:9
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.