Giter VIP home page Giter VIP logo

mame4ios's Introduction

MAME4iOS

Original Author: David Valdeita (Seleuco)

This is a port of MAME for iOS, iPadOS, tvOS and macOS. MAME4iOS is designed to run for modern iOS and macOS platforms, including support for the latest Apple technology platform enhancments such as Metal graphics and the M1 processor.

Download IPAs for iOS and tvOS here

Chat on Discord!

See what's new

Screenshots

iPhone Screenshot AppleTV Screenshot macOS Screenshot

Summary

MAME stands for Multi Arcade Machine Emulator, and lets you play arcade games from the past 30+ years on a device that fits in your pocket! My teenage self from decades ago would be replaying that "mind blown GIF" over and over again, but that GIF did not exist back then.

More than 2000 games are supported, and the currently supported romsets are 0.238 (November 2021) and 0.139u1 (September 2010). Note that there are separate apps for the latest MAME and the classic 0.139u1 versions. This is done because the supported romsets differ greatly between the the MAME versions.

It has been updated to compile and runs on the latest Xcode by Les Bird, and he has graciously added support for MFI Controllers.

Since then, a large number of features have been added:

  • 64-bit binary to run on modern and future iOS and macOS devices, including Macs using the M1 series of processors
  • Supports modern device screen sizes for iPhone and iPad
  • tvOS support (new in 2019!)
  • Multiple MFI controllers (up to 4 with dual analog support - @DarrenBranford)
  • Supports using the touch screen as a lightgun
  • Turbo mode toggle for buttons
  • Touch analog for games like Arkanoid
  • An in-app web server to transfer files from your computer (new in 2019!)
  • A native iOS/iPadOS/tvOS frontend (by @ToddLa, new in 2020!)
  • A native Metal rendering engine (by @ToddLa, new in 2020!)
  • Transfer ROMs, Artwork, and ROMSETs via AirDrop or iOS File Sharing (new in 2020!)
  • Builds in the latest Xcode

Building / Installation / Sideloading

Xcode

Requirements: iOS 13.4 or higher, tvOS 13.4 or higher, or Mac 10.15.5 (Catalina) or higher to run.

Requirements: Mac 10.13.6 with Xcode 11.4 or above to bulid.

Even if you are not in the paid Apple Developer Program, you can sideload the app using a Mac with Xcode.

  1. Open the Xcode project in MAME4iOS.xcodeproj

  2. Set the Organization and Team Identifer in MAME4iOS.xcconfig

    ORG_IDENTIFIER   = com.example    // CHANGE this to your Organization Identifier.
    DEVELOPMENT_TEAM = ABC8675309     // CHANGE this to your Team ID. (or select in Xcode project editor)
    
    • The ORG_IDENTIFIER is a reverse DNS string that uniquely identifies your organization.
    • You can also set the Development Team via the drop down in the Xcode project editor, for each Target.
    • You can find your TeamID here.
  3. Enable entitlements in MAME4iOS.xcconfig (optional, only if you have a developer account)

    • entitlements are required for tvOS TopShelf and iCloud Import/Export/Sync.
  4. Select the MAME binary to link to, in MAME4iOS.xcconfig

    • 139u1 or latest MAME 2xx version.
  5. Choose the appropriate build target in Xcode:

    • MAME4iOS Release (iPhone/iPad/macOS)
    • MAME tvOS Release (AppleTV)
  6. Build:

    1. If you are a developer: Build and ▶︎ Run on your device. Done.
      • NOTE first time build may take a long time.
    2. If you are not a developer…
      1. XcodePreferences add your Apple ID, select your Personal Team, and create an iOS Development Profile.
      2. Select the project name on the left pane and make sure your personal team is selected
      3. Hit the ▶︎ Run button to install on your device. Done.

How to build latest version of MAME (optional)

By default MAME4iOS will use pre-combiled libraries for the latest MAME, if you need a Simulator build, or just want to build MAME, you need to...

  • clone this fork of MAME
  • run ./make-ios.sh [ios | tvos | ios-simulator | tvos-simulator | macOS] in the forked MAME
  • go watch this then this while you wait for MAME to build.
  • now switch directories to your MAME4iOS project
  • run ./get-libmame.sh ios <path to your MAME clone>
  • edit xcode/MAME4iOS/MAME4iOS.xcconfig to select the libmame library.
  • build and run in Xcode.

Issues running latest MAME

  • most MAME 139 ROMs dont work on 2xx, but that is just normal life in MAME world, see this.
  • if you run a Computer machine, and you use a USB keyboard, ⌘+DELETE is is the ui_mode_key.
  • MAME Configure menu has a Add To Favorites and Select New Machine that dont interact with the MAME4iOS Ux.
  • Games that use DRC (like NFL Blitz....) will not work correctly and may crash hang, if Use DRC is enabled, This is an issue with the arm64 support in MAME.

Mixing 139 and 2xx ROMs

Some romsets are not compatible between MAME 139 and newer versions, the best way to use both romsets at the same time is to make sure the newer ones are stored in the 7z format and the 139 ones in the zip format. This way both files can co-exist.

tvOS

MAME for tvOS support was added in early 2019, and it currently can run games has full native UI support and MFI controller support with most notably:

  • MFI controllers, Xbox One, PS4 DualShock, and Siri Remote support.

Using MAME

When you start MAME4iOS, you are now presented with an updated and native iOS/tvOS MAME UI

MAME UI Controls

  • Onscreen D-Pad or MFI Controller D-Pad: Move through the menu
  • A Button: Start Game

In-Game

  • Coin: SELECT/COIN for Player 1
  • Start: START for Player 1
  • Menu: Open the MAME4iOS menu
  • Exit: Exit the game

Adding ROMs to MAME4iOS

iOS

For iOS users, you can download ROMs using Safari and save them to the roms directory by choosing the "Save to Files" (go to "On My iPhone" -> MAME4iOS) option after downloading a ROM.

You can also use the "Start Server" option in the menu to start the webserver, and enter the address shown on the web browser on your computer.

You can also use the "Import ROMs" option to open up the native iOS file browser and load files that are saved locally or that exist on iCloud.

You can use "Import from iCloud" to download ROMs previously uploaded to iCloud.

tvOS

on tvOS the only options are to copy ROMs via "Start Server" or downloading via "Import from iCloud".

Adding Softare to MAME4iOS

MAME4iOS supports two types of Software

  1. Software List (aka MESS) based software, installed via ZIP files into roms

  2. Single file based image (cart, flop, dsk, ...), installed into software

ROMless Machines

MAME4iOS includes a set of Machines/Systems that dont need any ROMs installed to run, and can be used "out of the box".

ROMless Arcade Machines

Name Description
pongf Pong (Rev E) [TTL]
pongd Pong Doubles [TTL]
rebound Rebound (Rev B) [TTL]
breakout Breakout [TTL]

ROMless Console Machines

The following is a list of some of the Consoles and file types supported by MAME4iOS "out of the box"

Name Description Media File Types
a2600 Atari 2600 (NTSC) a26, bin
a2600p Atari 2600 (PAL) a26, bin
gen_nomd Genesis Nomad (USA Genesis handheld) md, smd, bin, gen
genesis Genesis (USA, NTSC) cmd, smd, bin, gen
megadrij Mega Drive (Japan, NTSC) md, smd, bin, gen
megadriv Mega Drive (Europe, PAL) md, smd, bin, gen
megajet Mega Jet (Japan Mega Drive handheld) md, smd, bin, gen
nes Nintendo Entertainment System / Famicom (NTSC) unif, nes, unf
nespal Nintendo Entertainment System (PAL) unif, nes, unf
1292apvs 1292 Advanced Programmable Video System rom, tvc, bin, pgm
1392apvs 1392 Advanced Programmable Video System rom, tvc, bin, pgm
pico Pico (Europe, PAL) md, bin
picoj Pico (Japan, NTSC) md, bin
picou Pico (USA, NTSC) md, bin
vboy Virtual Boy vb, bin
sgx SuperGrafx cue, gdi, toc, chd, bin, cdr, nrg, pce, iso
pce PC Engine cue, gdi, toc, chd, bin, cdr, nrg, pce, iso
tg16 TurboGrafx 16 cue, gdi, toc, chd, bin, cdr, nrg, pce, iso

Console Machines and Computers (that require BIOS)

The following is a list of some of the Consoles, Computers, and file types supported by MAME4iOS, but BIOS files must be installed first.

Name Description Media File Types
a5200 Atari 5200 rom, a52, bin, car
a800 Atari 800 (NTSC) rom, xfd, atr, dsk, bin, car
a7800 Atari 7800 (NTSC) a78
famicom Famicom unif, nes, unf
fds Famicom (w/ Disk System add-on) fds
snes Super Nintendo Entertainment System / Super Famicom (NTSC) sfc
snespal Super Nintendo Entertainment System (PAL) sfc
32x Genesis with 32X (USA, NTSC) 32x, bin
32xe Mega Drive with 32X (Europe, PAL) 32x, bin
32xj Mega Drive with 32X (Japan, NTSC) 32x, bin
neogeo Neo-Geo MV-6F neo, bin
n64 Nintendo 64 rom, v64, n64, z64, bin
n64dd Nintendo 64DD bin, 2mg, rom, n64, z64, hdv, hd, v64, chd, hdi
c64gs Commodore 64 Games System (PAL) a0, 80, prg, t64, e0, p00, crt
c64 Commodore 64 (NTSC) d64, tap, prg, a0, g64, 80, g41, g71, wav, p00, mfi, dfi, t64, e0, crt
apple1 Apple I wav, snp
apple2 Apple ][ do, mfi, dsk, rti, edd, wav, woz, nib, dfi, po
apple2gs Apple IIgs (ROM03) mfi, edd, mfm, td0, 360, img, do, nib, imd, dc42, hfe, rti, ima, po, d77, ufi, woz, dsk, 2mg, cqi, dfi, cqm, d88, 1dd
mac128k Macintosh 128k d88, dsk, cqm, d77, img, dc42, mfm, 2mg, 1dd, cqi, imd, dfi, mfi, woz, td0, ufi, 360, ima, hfe
ibm5150 IBM PC 5150 mfi, td0, mfm, wav, hdv, 360, img, hd, xdf, imd, hfe, 2mg, ima, hdi, d77, ufi, dsk, chd, cqi, dfi, cqm, d88, 1dd
bbca BBC Micro Model A wav, uef, rom, bin, csw
bbcb BBC Micro Model B adf, mfi, fsd, td0, mfm, wav, 360, ads, csw, img, rom, prn, adl, imd, bin, bbc, hfe, adm, ima, d77, dsk, ufi, uef, ssd, cqi, dfi, dsd, cqm, d88, 1dd

tvOS

You can upload ROMs to MAME on your AppleTV using a computer. After MAME starts, you'll be shown a welcome screen with the address of the AppleTV that you can enter in your web browser. Add MAME ROMs to the roms directory using the provided web uploader.

Game Controller Support

Pair your MFi, Xbox, or Dual Shock controller with your iOS device, and it should 'just work'. Up to 4 controllers are supported.

Hotkey combinations (while in-game)

MENU Open MAME4iOS MENU
MENU+L1 Player Coin
MENU+R1 Player Start
MENU+L2 Player 2 Coin
MENU+R2 Player 2 Start
MENU+A Speed 2x
MENU+B Pause MAME
MENU+X Exit Game
MENU+Y Open MAME menu
MENU+DOWN Save State ①
MENU+UP Load State ①
MENU+LEFT Save State ②
MENU+RIGHT Load State ②

Hotkey combinations (while in choose game UX)

MENU Game Context Menu
OPTION MAME4iOS Settings
A Play

Dual analog support

The right stick on the extended controller profile is fully supported, with support for 4 players (thank you @DarrenBranford!)

Trigger buttons

The trigger buttons are mapped to analog controls and should be useful in assigning for pedal controls, for example.

Siri Remote

MAME4iOS is now usable on a AppleTV using only the stock Siri Remote. You can only play games that use only the A and B buttons.

to start playing a game, hit MENU and select "Coin + Start" from the list.

TRACKPAD MOVE   - emulate a dpad or joystick
TRAKPAD CLICK   - A button
PLAY            - B button
MENU            - bring up the MAME4iOS menu

Touch Screen Lightgun Support (new in 2018, iOS only)

You can now use the touch screen for lightgun games like Operation Wolf and Lethal Enforcers. Holding down your finger simulates holding down the trigger, which is mapped to the "X" button. Tap with 2 fingers for the secondary fire, or the "B" button.

In full screen landscape mode, you can hide the onscreen controls using the "D-Pad" button at the top of the screen. When using a game controller, the top button of the screen opens the menu to load/save state or access settings.

Touch Lightgun setup is in Settings -> Input -> Touch Lightgun, where you can disable it altogether, or use tapping the bottom of the screen to simulate shooting offscreen (for game that make you reload like Lethal Enforcers).

Shortcuts while in Touch Screen Lightgun mode

  • Touch with 2 fingers: secondary fire ("B" button)
  • Touch with 3 fingers: press start button
  • Touch with 4 fingers: insert coin

Turbo Mode Toggle for Buttons (new in 2018)

Under Settings -> Game Input, there's a section called "Turbo Mode Toggle", that lets you turn on turbo firing for individual buttons. Holding down the button causes the button to fire in turbo mode.

Touch Analog Mode (new in 2019, iOS only)

Also in Settings -> Game Input, you'll find a section called "Touch Analog" and "Touch Directional Input". "Touch Analog" lets you use your touchscreen as an analog device for games using input controls such as trackballs and knobs. These include games like Arkanoid or Crystal Castles. You can adjust the sensitivity of the analog controls, and also choose to hide the d-pad/analog stick in this mode.

"Touch Directional Input" is rather experimental and is for vertical shooters so you can move around using your finger. It still needs some work so just a word of caution :)

License

MAME4iOS is distributed under the terms of the GNU General Public License, 2 (GPL-2.0).

mame4ios's People

Contributors

daedalia avatar darrenbranford avatar gottfired avatar illando avatar lerosua avatar mrjschulte avatar sevdestruct avatar toddla avatar yoshisuga avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mame4ios's Issues

Xcode question

Hello everybody,

I know this is not really an issue, but an help request, but I really hope some gurus like you will help me.

In a campus project trying to help student with disease with need to install mame4ios on an iPad running 10.3.3 (no jailbreak possible, as you know).

I've found two ways: a) Xcode sideloading; b) sideload with cydia impactor.

The latter works very well and easy, but the problem is the 7 days "limit" (renew, renew, etc.)

Xcode sideloading always returns me with lots of error (I'm using Xcode 9).
First question is: installing with Xcode skip the 7 days limit? (if it's the same... I stop here)
Second question is: if using Xcode is possible to have a "permanent" installation, where I can find a very simple step by step guide.

I really need an help.
Thanks a lot in advance.
m.

Change the active touchscreen buttons in the main menu

The group of the active touchscreen buttons in the main menu should be changed.
A better solution should be to make a set of 3 buttons active:

  • A: Launch rom
  • B: Back in the menu (instead of "exit" like it is now)
  • Y: Add to favorites ( instead of the actual X)
    This will follow the rule used by other emulators... check for example Retropie, and in this way the buttons will fill the corner of the screen leaving space to visualise the menu.

image

Option to skip the alert on quit from games

It could be useful to add an option in the settings to turn off the iOs alert that is present when you exit from a game that says "Are you sure you want to exit the game".
Now that the new Save/Load command can be activated from the MFI controller without removing hands from the controller, this is the only command that still need to use to touchscreen if you want to change game.

Thanks.

Add transparency slider for onscreen controls in fullscreen

Hi Finally I made something. In Mame Config Menu I wanted to change the subitem text color in Cheat, Dipsw like ''On=green Off=red Auto=yellow''. There's no 'Auto' word in Mame 0.139 It might be in some game's Dipsw's I just check the some popular games.
This feature exists since Mame 0.171 to the latest Mame. I found the code in 'menu.cpp' and added to Mame 0.139 'uimenu.c' I check the latest Mame menu.cpp they didn't change anything and I decide add some additional words other than "On/Off/Auto"
Additional Words: Yes, No, Game, Test, Set, None, Enabled, Disabled, Easy, Normal, Medium, Hard, Hardest, Free Play, Full
img_0547

From the beginning I was editing the different uimenu.c file, wondering why Service, Soft Reset and Speed Hacks are missing on MAME Config Menu list! Now everything's back to normal.
uimenu.zip
Replace the uimenu.c file to src/emu/uimenu.c and rebuild the MAME binary.

iOS 10 support ?

It would be really great to have this emulator on iOS 10 since the only version that runs is very old
And thanks

Cross icon in "touch analogue"

Another improvement should be to have the same cross icon of the “touch lightgun” in “touch analogue”.
It should be used to toggle between these options already present in the preferences meanwhile you are playing:

  • Show all the controls
  • Hide D-pad
  • Hide all the controls

Sensitivity slider in analogue settings is no longer needed

After some tests, I can say that the sensitivity slider that it's actually listed under the touch analogue preference it's just creating some gap between the finger position and the analogue input of the game, or is not well accepted from the MAME core.
The only way to obtain a nice analogue calibration is:

  • Set this slider to 0 (the minimum value of the slider on the left)
  • Enter the rom setting MAME menu (pressing COIN + START)
  • Go to "analogue controls" menu and start to increase "Dial Sensitivity" till you reach a good setting (it depends from the games, the screen size of the device, and the orientation of the display.

At this point, I think this slider should be set to 0 as default value.

image
image

Build Failed

Please please help
ipad iOS 11.2.1
macOs 10.13.3
xcode 9.2

i have followed the instruction and keep getting build failed

133 errors ? lots like this one

/Users/Guy B/Desktop/MAME4iOS/iOS/EmulatorController.h:81:3: 'UIActionSheet' is deprecated: first deprecated in iOS 8.3 - UIActionSheet is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleActionSheet instead

i also have libmamearm64.a in the root but the project is not seeing it and only displaying libmamearmv7.a in red ?

please can anybody advise me its driving me nuts

many thanks

Guy

Is Bluetooth keyboard support possible?

Since the current jailbreak is stable I’ve finally decided to build an arcade controller with two joysticks (for Robotron), nothing is buyable off the shelf and neither is an MFI wireless encoder so I’m planning on gutting an old working Bluetooth ipad keyboard but Mame4iOS isn’t reading my keystrokes in the config menus.

If this isn’t possible I’m going to have to gut a working MFi wireless controller since I cant depend on NControl (PS4/Xbox One hack) working long term if i need to lose jailbreak. Not a whine just a bit of info on where I’m going.

Any help or suggestions would be gratefully received

iPad 3 IPA 32 bits need

I just install in my iPad Air, and it´s amazing.Thank you. I NEED the IPA for the 32bits version for my iPad 3. It is possible to get? Where can i get? Waiting for your reply.than you so much.

Building with Xcode 10 / iOS 12

Apologies as I know this is too general of an error to help diagnose. I've installed MAME4iOS 64 successfully in the past on multiple iOS 11 devices. I have been unable to do so with Xcode 10 and iOS 12. While I lack any profound code skills, for the most part, I've usually been able to diagnose and fix my own issues, but this one has me scratching my head. I checked out the latest 'master' which should have added support for Xcode 10 and iOS 12 with libc++. I tried building in two different machines and iOS devices and I get the same error below. In one of the builds it reads "fix references to old stdlib functions. Is that where my issues? I copied the libmamearm64.a file to root as in previous 64 builds. Any clues? Once again, sorry for not having more vocabulary to accurately describe potential issues.

ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Latest commit, controller and buttons off

Hello, this may be an update maybe for latest iphone, I am still on iphone 7 on ios 11, but all the buttons and the red knob of the joystick are about 1/2 inch above where they are normally positioned. Everything else still runs ok!

If you need a screenshot I can take from phone and show you in discord.

(built with xcode)

Suggestion: Add an url scheme

Hi,

I would like to able to launch directly into a specific game from another app I just started working on.
3darcade

I think this could work if MAME4iOS implements an url scheme which accepts a romname and then starts that game.

I do have a bit of experience with iOS development. So I was able to add an url scheme. But I have no clue how to hook it up from there. I only have some experience in swift...so I am a bit lost ;)

Peter

MFI controller mapping?

I've only used the iCade as a controller but now I have a Hori MFi gamepad that is not on the external controller profile list. How do I re-map for it? The general menu for external controllers does not provide custom mapping, only profiles. And to get to the in-game mapping you need to press a combinations of buttons that are not mapped in my controller. I was able to finally map it by turning off the controller in the middle of a game to access the in-game menu, turning the controller back on, then re-map it.

I think there must be an easer way. What am I missing? Is there a file somewhere I could edit?

Thanks

Deprications

Building on XCode 10.0 (MacOS 10.13.6), with commit as of Oct 8 (sorry not sure how to best identify), I initially got 150+ warnings, mostly to do with deprications. As I recall, having to do with fonts. Now that I have successfully built, I don't see those warnings anymore. Not familiar with XCode enough to show them again. Just FYI. domo arigatoo gozaimasu.

Game is missing required ROM or CHD images

I've built and run Mame4iOS on my AppleTV. I had to swap around a few controls to get it functioning with my Nimbus, but after that I was able to get it to run galaxians and pacman (galaxian hardware). I haven't been able to load any other games though, asteroids, 1941, galaga, defender and many others just result in the error message "The selected game is missing one or more required ROM or CHD images". I've tried ROMs from multiple sources but always the same message. Are there other files I need to obtain ? I tried to add the samples and artwork from lesbirds distribution, but that didn't help.

I made keyboard layout support for Mahjong games. Should I share it ?

Hi, yoshisuga

Thank you very much for all of this. I downloaded, built, installed, and had a lot of fun with it.

I found that there is no keyboard support for the mahjong games, especially for the hot gimmick series made by Psikyo.(Wow, there is quite a lot of mature content, but beautiful and funny.) Mahjong games need a different keyboard layout, with A-N buttons, with a few extra function buttons, and without joystick.

So I downloaded the repo, and modified it. Now I can play the Mahjong games normally now. : >
I hope I can upload my little work for anyone who wants to play mahjong games.
Or, better, I can zip my project and send it to you.

Thank you again.

Chris

iCade controllers stop working when external screen connected

Hi @yoshisuga,

I've noticed that when an external screen is connected both via AirPlay to an Apple TV or through the lighting HDMI cable, my iCade controller no longer works on my iPhone XS Max.

When the screen is disconnected, the controller works again. This issue doesn't happen with MFI controllers.

I'm currently using a Steel Series Nimbus MFI controller and a ThinkGeek 8 bitty iCade Controller.

Please let me know if you need any more info!

Cheers
ck16

Artwork assets

Hello. I'm the guy who created the original artwork for MAME4iOS back before Gridlee appeared on the app store. I'd like to update the artwork and tidy some things up like the icon being more rounded in iOS nowadays and the scaling problems with larger device screens. I can't seems to find some of the assets though like the joystick and buttons. There's a skin_1 folder with config files for the different devices but the PNGs are the wrong colour. I remember Apple altering regular PNG files in the past, they used to not display. Is this skin_1 folder the right place for the assets?

Error building with Xcode 11.2 for tvOS 13.2

Hello @yoshisuga,

I've got the following error when building MAME4iOS for TVOS using Xcode 11.2 and tvOS 13.2:
ld: warning: ignoring file /Users/xxxxx/repositories/MAME4iOS/libmamearm64-tvos.a, building for tvOS Simulator-x86_64 but attempting to link with file built for tvOS-arm64
Undefined symbols for architecture x86_64:
"_myosd_array_categories", referenced from:
....
-[EmulatorController updateOptions] in EmulatorController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Undefined symbols for architecture x86_64:

I tried to figure it out how to get those undefined symbols for x86_64 but I had no luck so far.
I used the mame library for tvos in the instructions and I also build it with the script provided in the repo and I had the same result.
I would be great if you could help it out.
Many thanks.

Tapping on option menu button crashes app on iPad mini 4

Built using 6207559 [6207559] on an iPad mini (latest gen)

Every time I tap on OPTIONS the app crashes.

Here's the xcode log:
running... 0
loadView
viewDidLoad
thread Type 1 1
2019-01-21 10:00:25.497507-0800 MAME4iOS 64-bit[4532:3676971] [framework] CUIThemeStore: No theme registered with id=0
main priority 50
Iniciando
myosd_init
myosd_dbl_buffer 1
video priority 50
created lightgun device!created lightgun device!created lightgun device!created lightgun device!myosd_openSound NORMAL rate:48000 stereo:1
2019-01-21 10:00:26.012031-0800 MAME4iOS 64-bit[4532:3676971] button released
2019-01-21 10:00:26.022326-0800 MAME4iOS 64-bit[4532:3676971] button released
2019-01-21 10:00:26.024584-0800 MAME4iOS 64-bit[4532:3676971] button released
2019-01-21 10:00:26.027666-0800 MAME4iOS 64-bit[4532:3676971] button released
Emulated speed 100
Num Buttons 0
Num WAYS 2
myosd_set_video_mode: 400 300
Emulated speed 100
2019-01-21 10:00:29.136654-0800 MAME4iOS 64-bit[4532:3676971] button pressed
2019-01-21 10:00:29.169639-0800 MAME4iOS 64-bit[4532:3676971] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIAlertController (<UIAlertController: 0x108810c00>) of style UIAlertControllerStyleActionSheet from EmulatorController (<EmulatorController: 0x108815400>). The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem. If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'
*** First throw call stack:
(0x1b92d8ec4 0x1b84a9a40 0x1e5b0c628 0x1e5b15660 0x1e5b12fe4 0x1e61bb13c 0x1e61a9138 0x1e61d8140 0x1b92687cc 0x1b9263460 0x1b9263a00 0x1b92631f0 0x1bb4dc584 0x1e61af4c0 0x10095bf14 0x1b8d22bb4)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Settings screen lockup and status bar visible while playing games

Hello,

Great work getting this into an easily build-able state! I've noticed the status bar (time, battery, bluetooth, etc) is visible over the top of the game selection screen and in-game, if you add "View controller-based status bar appearance" to the MAME4iOS-Info.plist file and set it to Boolean NO the code in Bootstrapper.m to hide the status bar will start working again.

Also, on the iPad I've noticed the app locks up trying to display the Settings screen due to it trying to present the settings view controller while the UIActionSheet is still being presented. If you change

[self presentViewController:navController animated:YES completion:nil];

to

dispatch_async(dispatch_get_main_queue(), ^ {
[self presentViewController:navController animated:YES completion:nil];
});

the settings screen will start working.

Cheers!

MFI Controller improvements

Hi. I also grabbed the source from Les Bird and made my own optimisations, including a complete reworking of the MFI controller code. I was going to make my own repo when I came across yours so, if you don't mind, I would like to drop my MFI controller implementation in to your project.

Some of the main things that I implemented was real twin thumbstick support and proper connect/disconnect handling.

There is a strange naming convention due to how mame handles the input "devices":

MFI controller 1 will have joy 1 X/Y and joy 2 X/Y while MFI controller 2 will have joy 3 X/Y and joy 4 X/Y and so on.

Also, now that you have load/save states from a menu, you might want to remove the hotkeys for those (coin + a and start + a)

A button doesn't select ROMs in tvOS

Cannot click on ROMS or the other Menu items like Configure General Inputs or Reload ROMs. Trying pressing A button. The A button works in other parts of the app (like selecting cancel after pressing Y)

Using a Nimbus controller and Apple TV 4th gen

Help needed with mame4ios for ios 12.0.1 on the iphone xs max

Hi guys can some one send me the ipa or deb
files that already compiled to work with iphone xs max on ios 12.0.1 please

I am jailbroken with chimera on ios 12.0.1

I dont have a mac or the knowhow the compile it my self.

I had the mame4ios emulator running since the beginning on ios 6

This is the first time ever that i cant install the emulator on a ios device and it sucks.

So i hope could help me out.

Layout Problems on iPhone X and iPhone XS Mas

First of it's amazing that you made this for iOS! Thank you! Thank you! Thank you!
I got it to compile for me (XS Max) and my wife (X), but for both of us the layout is off:
On XS Max most things look fine, but the Joystick is off (it's on the screen not in the marked are)
On X everything is off, Joystick area is squeezed, buttons and joystick are above, menu is on the screen.
Would be amazing when fixed :-€
iPhone XS Max Layout
iPhone X Layout

No sound on iPad Pro

No sound on iPad Pro 10.5 running on iOS 12.1.x. Sounds normally on iPhone X with same version of iOS. Please let me know if you need any further information or testing on some code changes.

commit: 5136b88 (current master)

ipad crash regression

crashing again when pressing option

I tried to submit a pull request adding back the code to fix but didn't have permissions..

Compilation for new IpadOS

Hello, I love that emulator and I used to compile it for my personal use on my Ipad 12.0. Since i went to Xcode 11 and OsPad 13.1, I get plenty of errors when I compile.
Any chance you can update the program for this new environment? Thanks in advance for your reply.

NB : Unfortunately, I am not a developer that may fix all these errors.

Visualise the hold status when "Button A as Autofire" is active

Button A as Autofire is very useful in some games.
When it's active, the A button became a switch to toggle on/off the Autofire function.

It could be useful if when the Autofire is on the Button A could keep his hold status image, switching back to the default one when you press it again to toggle off the function.

iPad Pro keyboard support

Allowing keyboard bindings would be fantastic. I hope the pro keyboard allows multiple keypresses?

Also, an option to hide the on screen controls automatically when the keyboard is attached.

Mame4ios 11

Hello,
How difficult is to build a 64bit version of MAME4iOS for the rest of us.....
Thank you in advance,
Nicholas

drag and drop roms?

It would be wonderful if dragging a ROM onto the app would import it! (same with CHDs, if those work)

Likewise, an action sheet import option would be nice, too. Perhaps easier than drag and drop.

A super-stretch would be to expose the documents folder to the Files app as a document provider, allowing manual management of files in that app.

Latest build results in Apple Mach-O Linker Error?

I've been building all previous commits properly except for the latest one. Anyone know what changes could be causing this error?

Undefined symbols for architecture x86_64:
"_myosd_array_categories", referenced from:
-[FilterOptionController init] in FilterOptionController.o
"_netplay_read_data", referenced from:
-[NetplayGameKit receiveData:fromPeer:inSession:context:] in NetplayGameKit.o
"_netplay_warn_hangup", referenced from:
-[NetplayGameKit teardownConnectionWithWarn] in NetplayGameKit.o
"_netplay_init_handle", referenced from:
-[NetplayGameKit connect:] in NetplayGameKit.o
"_skt_netplay_init", referenced from:
-[NetplayController startSocket] in NetplayController.o
-[NetplayController joinSocket] in NetplayController.o
"_netplay_get_handle", referenced from:
-[NetplayController tableView:cellForRowAtIndexPath:] in NetplayController.o
-[NetplayController tableView:didSelectRowAtIndexPath:] in NetplayController.o
-[NetplayController setNetplayOptions] in NetplayController.o
-[NetplayController startSocket] in NetplayController.o
-[NetplayController joinSocket] in NetplayController.o
-[NetplayController startGamekit] in NetplayController.o
-[NetplayController joinGamekit] in NetplayController.o
...

Lock Orientation

Hello, Can you add an option 'Screen Lock Orientation' please?Sometimes I want to keep it Landscape mode. iOS control center Lock Orientation only works for Portrait mode!
One more thing about Netplay. One of my friend who lives overseas and he has this app. begging me to play over internet. We've tried several method, didn't work out! Can you add this option as well please?
Also I was wondering, are you going to update for recent MAME version?
And lastly I realized that I've been using this app for a long time.
So I'm willing to donate with Paypal if you like.
Thanks.

IPA prebuilds?

Title says it all. Offering an IPA installer permits people that doesnt have a Mac computer with lastest XCode or a paid Apple Developer Account to sideload the new version of MAME4iOS to the system. It will become easier to install it (even for the people on a Mac) and a possibility to spread this software.

A very well-known iOS emulator, like Provenance (https://github.com/jasarien/Provenance) since the lastest release already offers this. Avoids a lot of build problems reports too.

This would require releases, dah, ;=) that ATM are not being published. Would be great that also!

PS: Sorry for my crappy English.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.