BattleZone mame2003 input issue
-
@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
-
Changing
display_artwork_crop yes
to 'no' should do the trick. -
I feel 20 again! LOL. Thanks everyone. It is beautiful! Maybe now I'll play with a lot of those other settings like "flicker" to see what happens. I'm happy the way it is now, the rest will be fun just to see if I can get it the way my game used to look in my arcade. There isn't a dynamic option for editing the file in something like the tab menu, is there?
And last item, the game screen has about 1/8" overspill on the left and 1/4" on the right (the mountains and horizon bleed into the bezel). There is 1/2" of black on the right and left sides of the bezel at the monitors edge (so it doesnt' seem to be going edge to edge width wise). So I'm not sure if this is settings in the art file for the bezel or some other positioning sizing thing.
-
@flightrisk said in BattleZone mame2003 input issue:
And last item, the game screen has about 1/8" overspill on the left and 1/4" on the right (the mountains and horizon bleed into the bezel). There is 1/2" of black on the right and left sides of the bezel at the monitors edge (so it doesnt' seem to be going edge to edge width wise). So I'm not sure if this is settings in the art file for the bezel or some other positioning sizing thing.
I will have to check my setup to see if there is vector imagery bleeding over the bezel/overlay, but the black on the sides is likely a result of screen size. For example, on my 5:4 display, I don't see nearly as much of the sides of the artwork, as this is pushed completely off the screen if I recall. Widescreen TVs will have more space that might not get covered by the artwork which was built from the actual arcade game during a time when there were no wide screens.
-
@flightrisk said in BattleZone mame2003 input issue:
There isn't a dynamic option for editing the file in something like the tab menu
You should be able to invoke the menu using the 'Tab' key. If not, look at your
input_map[ui_configure]
setting to see what key is currently set. Keep in mind that, while convenient, not all options can be set from this menu.the game screen has about 1/8" overspill on the left and 1/4" on the right
I haven't noticed this myself, but it could be intentional to emulate the overscan from the original cabinet. I imagine it's configurable by unzipping the
bzone.zip
art file and adjusting how it's displayed within the bezel, but I've never tried it personally.Edit: If you mean that the vector art is bleeding on top and not behind the bezel then I'm not really sure.
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.