iDOS - DOSBox port on iOS

Related tags

Miscellaneous dospad
Overview

dospad

dosbox port for iOS, aka iDOS, based on dosbox v0.74-3 and SDL1.2.

This is an all-in-one project, so the build process is just one simple click in xcode.

The Documents folder within app sandbox is automatically mounted as disk c. You can access this folder either on "Files app -> On My iPad/iPhone". On macOS catalina, you can find it in "Finder->Locations->Your iDevice->Files" tab.

iDOS Package

You can launch iDOS by tapping on an *.idos package. The package is actually a folder, and will be mounted as disk c. The package should include a dospad.cfg with all dosbox settings.

If the package contains a cover.png or scrnshot.png, it will be used to generate thumbnails for Files app.

License

All the source code is released under GPLv2. See LICENSE.

All assets, including images and audios, are copyrighted and provided for your personal use only. Do not redistribute without a written permission.

Comments
  • IDOS 2: File Sharing

    IDOS 2: File Sharing

    Ist it possible to enable file sharing via iTunes? Since IOS 8.3 it is impossible to use iDOS2 as used to. Maybe file sharing could lead to a directory accessible via the mount command...? :-)

    opened by jason0611 106
  • Building Dospad

    Building Dospad

    Hello, Dospad 2 on the App Store has been broke for a long time- no iTunes file sharing or iPad Pro external keyboard support.

    If one were so inclined to obtain a developer account, would this code be compatible with swift / Xcode on a MAC to be deployed as a testing app? I'd like to be able to access the dos file system (install programs) and use the Smart Keyboard on an iPad Pro.

    I haven't built any code for iOS and was wondering if this would work for my device.

    Thanks!

    opened by convolutionbbs 16
  • How to expand drive space

    How to expand drive space

    I am trying to install games and I got the error with one game that I ran out of room on the drive. I have at least 1TB of space left on my iPad so I know the issue is with the app. Is there any way to increase the amount of virtual space that iDOS can see when active?

    opened by don17sch 14
  • Mouse absolute coordinate mode (direct touch, or pointer-to-touch-location)

    Mouse absolute coordinate mode (direct touch, or pointer-to-touch-location)

    What this pull request is about?

    This pull request implements an additional mode of passing mouse movement. When enabled, it passes the mouse motion in absolute coordinate: this changes in-dos pointer behavior of mouse pointer directly go to touched point, or iPad's pointing device point.

    Essentially, this pull request is doing the same thing to that of pull request #60. But this pull request is more polished, and more up-to-date with current code base. Absolute coordinate mode is a small extension mode of current mouse handling code in SDL_uikitview, and it support all current features (right click, pointing device) in the same manner.

    My motivation was originally on supporting better HW mouse. With this patch, pointing devices (ipad magic keyboard, or bluetooh mouse) finally behaves quite close to a native mouse. For example, there would be no more strange pointer-stuck-in-the-middle due to iPad pointer hitting screen limit. However, handling direct touch (pointer to touch location) was also carefully checked and implemented. After some days of testing, I believe this is more or less feature complete. Now I am making it a pull-request for further discussion, and/or improvements.

    How to use? (user perspective)

    The patch adds a settings group named "mouse absolute coordinate", which has single toggle switch (enables absolute mode), and two scale factor selection button (X scale and Y scale). By switch on "Enable" toggle, you can start using the patched absolute coordinate mode.

    Touch will then bring the mouse to the touched location (if scale factor is correct, see below). Button behavior is the same to normal (relative) mode; where you can do left click by tab, or right click by dual touch tab, and so on, depending on your other settings. First touch (primary touch) will always have the mouse pointer. If you hold and drag, the pointer will also follow your finger location.

    Note that, each dos program may need different scale factor. If you don't know about a program's mouse scale -- It is a good to start with 1x, since even if that isn't the right factor, you will see the mouse pointer and have some idea what additional factor you need to make it sync with your touch point.

    How is it implemented? (code change overview)

    • SDL_Mouse actually supports both absolute mode and relative mode. However, dosbox's mouse event handling part (sdlmain::HandleMouseMotion) picks up only the relative values, and do not really sync the reported absolute coordinate of SDL mouse.
    • This patch changes dosbox mouse event handling code to respect absolute value, if the passed event was generated by a SDL_Mouse in absolute value mode. The event (SDL_MouseMotionEvent) and event sender (SDL_SendMouseMotion) has been updated to hold relative_mode flag in the event data structure.

    With the above data path enabled, then actual absolute coordinate mode logic has been added to SDL_uikitview:

    • ensureSDLMouse method is updated to ensure the single SDL_mouse's relative_mode value to relative / absolute according to the setting.
    • added a method sendMouseCoordinate, which sends absolute coordinate (vs. movement of sendMouseMotion)
    • touchesBegan, touchesMoved, touchesEnded and pointerInteraction has been updated to hold additional logic of absolute modes.
    opened by gilnoh 13
  • How to configure a bluetooth mouse?

    How to configure a bluetooth mouse?

    I see in the features listed on the app store that there is support for bluetooth mice. I am on the latest iOS and have paired a mouse. Clicks work, but the cursor does not move with the mouse movements. I can see the iOS transparent circle cursor. Is there some way to get the mouse movement events sent to the DOS environment.

    Thanks!

    bug 
    opened by fprimex 10
  • Logitech Slim folio pro broken

    Logitech Slim folio pro broken

    After last update to v2.6 there is keyboard mapping broken, eg. backspace, numerical and special keys doesn`t respect selected keyboard layout.

    Everything was OK in v2.5.

    Is there any way how to downgrade to v2.5, please? Tank you.

    opened by varecham 9
  • App Store Version

    App Store Version

    The app store version doesn't allow document storage and I know that's because of the guidelines saying you can't run outside code, but Apple recently opened up the ability to appeal rejections and even challenge the guideline itself.

    There are multiple apps already on the app store where their sole purpose is to run user-provided code.

    • https://apps.apple.com/us/app/play-js-javascript-ide/id1423330822
    • https://apps.apple.com/us/app/pythonista-3/id1085978097
    • https://apps.apple.com/us/app/python-3/id1262850648

    Additionally, two changes are coming to the app review process and will be implemented this summer. First, developers will not only be able to appeal decisions about whether an app violates a given guideline of the App Store Review Guidelines, but will also have a mechanism to challenge the guideline itself. Second, for apps that are already on the App Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. Developers will instead be able to address the issue in their next submission.

    opened by DanTheMan827 9
  • iOS 13 fix: call makeKeyAndVisible on main thread to prevent crash

    iOS 13 fix: call makeKeyAndVisible on main thread to prevent crash

    Addresses #77 - had to close previous pull request because my fork got messed up.

    There were some changes in the windowing system and startup with the new scene delegate in iOS 13 so I'm thinking this breaks stuff in this (customized?) SDL library in this repo. I didn't have any issues in other projects with SDL2 in iOS 13.

    opened by yoshisuga 9
  • Can't compile dospad in Xcode 12.0.1

    Can't compile dospad in Xcode 12.0.1

    Receiving the following error when compiling:

    Undefined symbols for architecture arm64: "saa1099_device::control_w(int, int, unsigned char)", referenced from: write_cms(unsigned long, unsigned long, unsigned long) in libdosbox.a(gameblaster.o) "saa1099_device::data_w(int, int, unsigned char)", referenced from: write_cms(unsigned long, unsigned long, unsigned long) in libdosbox.a(gameblaster.o) "ncr8496_device::ncr8496_device(machine_config const&, char const*, device_t*, unsigned int)", referenced from: ___cxx_global_var_init.1 in libdosbox.a(tandy_sound.o) "saa1099_device::saa1099_device(machine_config const&, char const*, device_t*, unsigned int)", referenced from: CMS::CMS(Section*) in libdosbox.a(gameblaster.o) "sn76496_device::sn76496_device(machine_config const&, char const*, device_t*, unsigned int)", referenced from: ___cxx_global_var_init in libdosbox.a(tandy_sound.o) "sn76496_base_device::write(unsigned char)", referenced from: SN76496Write(unsigned long, unsigned long, unsigned long) in libdosbox.a(tandy_sound.o) "sn76496_base_device::convert_samplerate(int)", referenced from: TANDYSOUND::TANDYSOUND(Section*) in libdosbox.a(tandy_sound.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

    opened by Purduecoz 7
  • Add Landscape Support Back to iDOS 2

    Add Landscape Support Back to iDOS 2

    Hello! It's been 3 years since the "temporary" disabling of landscape mode on iPhone. I was just wondering when we'd be getting it back. I really can't enjoy any games in portrait mode, so I'd appreciate an update when possible.

    opened by catkraze3 7
  • Smart keyboard support

    Smart keyboard support

    Hey all, it would be really awesome to add smart keyboard support to dospad. As it stands, the letter keys, number keys, and any other "single press" key works fine, but any multi-key commands (i.e. using "shift" to capitalize a letter) or toggle commands (i.e. caps lock) are not supported for the smart keyboard. I'm not sure how difficult a change this would be to the code, but it's something to think about. Thanks!

    opened by EriolGaurhoth 7
  • CD audio is just hissing/screeching noises

    CD audio is just hissing/screeching noises

    This was tested using the adhoc distributed iDOS 3 private build (from here).

    I use Windows 3.11 and I've tested this with 'Colonization for Windows' and also 'Civilization II' (that both have CD audio for music).

    Both discs were ripped using my standard method on a Linux box of...

    lantizia@thor:~$ cdrdao read-cd --read-raw --device /dev/sr0 -v 2 --datafile "disc.bin" "disc.toc"
    lantizia@thor:~$ toc2cue disc.toc disc.cue
    

    Which has never failed me, and the CUE file loads up in CDemu just fine and can be played with a normal audio player on my Linux desktop (e.g. VLC), or on Windows using something like foobar2000.

    I've also tried manually using the IMGMOUNT command (rather than tapping the picture of a CD drive, when iDOS is in portrait mode) manually and that doesn't make any difference.

    It also gives the same hissing/screeching noises when using a standard CD player in Windows 3.11 too (such as the one that comes with the Sound Blaster 16 drivers).

    All other audio (e.g. MIDI and waveform) seems to be working fine.

    opened by Lantizia 0
  • iOS 13+ restricts access to local file system outside app sandbox

    iOS 13+ restricts access to local file system outside app sandbox

    With the iOS 13 file access changes, apps can no longer interact outside of the local app sandbox.

    There need to be improvements for the application to be able to access the iOS Documents/ folder. As a result, there is no way to copy games over in ios 13+ deployments since there isn't a way to get files into the internal sandboxed app folder.

    The app needs to be updated to allow for permissions to read from the global Documents folder. The new access method is explained here: https://developer.apple.com/documentation/uikit/view_controllers/providing_access_to_directories

    opened by stevehollx 0
  • Enable MIDI playback via CoreAudio

    Enable MIDI playback via CoreAudio

    @litchie when we were working on Exult you told me that CoreAudio is not working on iOS. It's been a few years since then but I enabled it in Exult via https://github.com/exult/exult/commit/0972bd912422f43356085fd9ee593f6dbf0a2913 and AFAIR DOSBox uses similar code to Exult. So it might work after all and not that hard after all :) And yes, you need a soundfont, whatever iOS uses by default is pretty bad...

    enhancement 
    opened by DominusExult 1
  • Support Boxer's Package format

    Support Boxer's Package format

    Boxer allowed to do something like iDOS: Create bundles for games that ran by double clicking. They had extension .boxer and were setup slightly different from iDOS packages but not that much.

    They had extension .boxer, the icon was in .icon format (native macos), the config was in a file called "dosbox preferences.conf", there was a shortcut called "Dosbox target" that pointed to the executable (for example "TIECD/TIE.EXE").

    It also supported CDROMS in folders referenced in text files so the whole program could be self-contained.

    People who've been using boxer for a while may have dozens of .boxer files that would be great if they could at least be opened and converted but ideally run as-is :D

    opened by eduo 0
  • imgmount for mixed mode cd's and compressed audio tracks

    imgmount for mixed mode cd's and compressed audio tracks

    I noticed that the internal imgmount does not appear to support BIN/CUE sheets that used compressed audio (e.g. MP3/OGG) for audio tracks. The image fails to mount via imgmount.

    Behaviour: Could not load image file: /ipad folder...../Krondor/KRONDOR.cue MSCDEX: Failure: Invalid file or unable to open.

    I re-tried using raw redbook audio tracks, and the cue sheet loaded properly.

    This article suggests that Dosbox must be compiled with SDL_Sound in order to enable compressed audio track support.

    opened by vga-256 0
Releases(2.1)
Kushal Shingote 1 Feb 2, 2022
iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android).

FinanceReactNative iOS's Stocks App clone written in React Native for demo purpose (available both iOS and Android). Data is pulled from Yahoo Finance

kf 2k Dec 29, 2022
Project 03 I created for "iOS & Swift - The Complete iOS App Development Bootcamp"

Dicee This is the third project I created for "iOS & Swift - The Complete iOS App Development Bootcamp" Our Goal The objective of this tutorial is to

Lukas Goodfellow 0 Dec 23, 2021
IOS-Prework - CodePath intro to iOS prework.

Hello World App Submitted by: Emmanuel Assumang Time spent: 1.5 hours spent in total App Description This is a simple mobile app programmed in Swift t

null 0 Dec 31, 2021
Home Assistant Native iOS Application built with SwiftUI for iOS 15+

Home Assistant - Native iOS SwiftUI Application Screenshots Disclaimer - Please read This application is mostly a not-working mockup written in SwiftU

Alessio Santoru 34 Dec 13, 2022
Google-Blogger-iOS-App - Using Google Blogger API to build an iOS app like Medium

Google Blogger iOS App Using Google Blogger API to build an iOS app like Medium!

Ricky Chuang 9 Dec 13, 2022
Ios jetpack - A codabase for iOS projects foundations

iOSJetpack A codabase for iOS projects foundations Neworking Data Reusable Proto

MonsterTechStudio 1 Jan 24, 2022
A native iOS UI widget for adding Spokestack to any iOS app.

A native iOS library for adding Spokestack to any iOS app. Installation Edit Podfile CocoaPods is a dependency manager for Cocoa projects. For usage a

Spokestack 6 Jun 8, 2021
Learning iOS Frontend: Aplikasi iOS Pemesanan Makanan dengan SwiftUI, WidgetKit, Google Fonts, dan Assets dari Figma

Foody Aplikasi Foody adalah Aplikasi iOS Pemesanan Makanan dengan SwiftUI, WidgetKit, Google Fonts, dan Assets dari Figma untuk Mempelajari Ilmu Front

DK 10 Aug 20, 2022
Wasmic allows you to run WebAssembly in a safe way on iOS.

wasmic-ios Bootstrap $ git clone https://github.com/kateinoigakukun/wasmic-ios.git $ git -c submodule."fastlane".update=none submodule update --init -

Yuta Saito 58 Dec 12, 2022
iOS architectures - MVC, MVP, MVVM, MVVM-C, ReactorKit, VIPER, Clean Architecture

iOS architectures - MVC, MVP, MVVM, MVVM-C, ReactorKit, VIPER, Clean Architecture, RIBs; Repository Pattern, Rxflow, Swinject, Tuist, Xcodegen, Cocoapods, SPM, Carthage + Rome

null 123 Dec 21, 2022
Demo of using Metal to render EDR / HDR content on iOS platform

MetalEDR-iOS Demo of using Metal to render EDR/HDR content on iOS platform. How it works This demo uses a hack to activate EDR display on iOS platform

Wutian 38 Oct 24, 2022
ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects.

ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects. The kit provides variety of customisations inorder to design a confetti which matches your project's UI. ConfettiKit makes your work of adding Confetti on your project with just one line of code.

Gokul Nair 14 Sep 27, 2022
Hỗ trợ làm màn hình thanh toán trên ứng dụng iOS/ iPad OS.

Hỗ trợ làm màn hình thanh toán trên ứng dụng iOS/ iPad OS. Rate star nếu bạn thấy tốt, hoặc báo cáo cho tôi qua Issues

null 5 Dec 28, 2021
🛠 A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern.

Model-View-Presenter template A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern. This

Tamerlan Satualdypov 22 Nov 9, 2022
Control Nvidia jetbot which is based on Jetson Nano via iOS app

jetbot-remote-control This is very basic example project which control Nvidia Jetbot remotely via iOS app Based on jetbot of Nvidia, adding sample sou

Nguyen Quoc Thanh 13 Oct 6, 2021
Turbo-iOS base project that's entirely driven from your backend Rails app.

Turbo-iOS base project that's entirely driven from your backend Rails app.

Dale Zak 109 Dec 11, 2022
PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

PlayCover is a project that allows you to sideload iOS apps on macOS( currently arm, Intel support will be tested.

Alexandr 4k Jul 8, 2022
Modular iOS with Uber needle & tuist example

Dodi Modular iOS with Uber needle & tuist example Setup brew install needle bash <(curl -Ls https://install.tuist.io) and run make all Point of concer

David Ha 30 Nov 16, 2022