iDOS 2.0.1 available on the iTunes App Store

Some of you may recall the brief, shining moment of glory that the original iDOS iPhone app had: it appeared on the iTunes App Store one morning back in October, and was quickly yanked by Apple within a matter of hours.

Well, now it’s January, and iDOS is back, this time updated to version 2.0.1. That’s right…a DOSBox app is once again available on the iTunes App Store.

However, there is now a catch:

The biggest change from iDOS 1.0: iTunes file sharing is now turned off.

That means you will not be able to install windows nor games from your old disc collection.

The original iDOS added an interface to the iPhone app management window in iTunes, which could be used to move files between your hard drive and the app. That feature — and the fact that the app apparently allowed you to access the iOS filesystem (if you were clever) — is ultimately what got it yanked from the App Store initially; Apple’s licensing apparently disallows programs that make the transfer of executable files possible.

Oh, and…be sure to turn down the volume when you first fire up this new iDOS…the opening screen’s sound is rather jarring.

Anyhow, a few improvements have been made to the app that make it worthwhile:

– Virtual gamepad/joystick. With iDOS 1.0, you may not be able to get to floor 3 in wolf3d, but now you can!

– Better landscape mode. And now iPhone has portrait mode interface.

– Bluetooth keyboard support. It is for text based games only.

It is actually a fairly significant update to the app, and it adds some functionality that the first version was sorely lacking. That didn’t stop me from moving a copy of the original iDOS app into my Dropbox before I upgraded, of course…but I don’t think I’ll be downgrading. Because even though there’s not an official means of transferring files into the app, there is still a way to do it.

Allow me to introduce iPhone Explorer.

Hi, guys.

Using iPhone Explorer, we are going to install Ultima 6 on an iPhone 3GS (but this should work for any iPhone version capable of running iDOS well). To do this, however, we need to make sure a particular setting is turned off inside the program.

Note: If, like me, you were lucky enough to snag a copy of the original version of iDOS, and if you installed any Ultima games therein, you probably won’t need to perform these steps; I noticed on my iPhone 3GS that the Documents folder (discussed below) for the app was preserved during the upgrade, meaning that everything I installed in the original iDOS was available to me in the upgraded version.

From the Edit menu, select Preferences, and make sure the Allow access to “real-root” if iPhone is jailbroken. box is unchecked.

Uncheck! Unczech!

Once that’s done, click on the + sign to expand the Apps listing in the program’s left-hand sidebar:

The Apps list.

Scroll down the list (it shouldn’t be that long if you’re an average app user; if you’re like me, it will be pretty crazy-long indeed) until you find an entry with the following name: [random-hash].net.litchie.idos.

This is the iDOS app.

The guts of an app.

In the right-hand pane of iPhone Explorer, double-click the Documents folder; this folder serves as the C: drive for iDOS.

Your random hash may vary.

What ho? There it be!

Now, as you can see, I already have Ultima 6 installed, and a custom batch file readied for it as well. iPhone Explorer supports drag-and-drop, so here’s what you need to do to get Ultima 6 installed from this point:

  1. Install Ultima 6 to your computer’s hard drive. Anywhere will do.
  2. Open up a window and navigate through your hard drive until you are looking at the Ultima 6 folder.
  3. Drag the Ultima 6 folder into the right-hand pane of iPhone Explorer (which should still be displaying the Documents folder of the iDOS app)
  4. Be patient; iPhone Explorer’s copying isn’t particularly quick, and the progress window sometimes stays hidden. Don’t attempt to re-copy the app; find the progress window and bring it to the foreground. It’ll go away shortly.

At this point, you should be able to fire up the iDOS app on your iPhone, select the C: icon at the bottom of its “game shelf” interface, bring up the keyboard, navigate to Ultima 6’s directory, and launch the game:

IMG_1092

The portrait mode is actually perfect for Ultima 6.

And yes, this method should work for any of the other DOS-based Ultima titles…although I wouldn’t expect Ultima 7 (either part) or Ultima 8 to perform all that well.

Oh, yeah: If you want to set up a batch file but don’t remember how, go here.

20 Responses

  1. fearyourself says:

    Excellent news. I tried this for U5 (I wonder why ;-)) and it worked like a charm, two little details :

    – I had to first run IDos to get the IExplorer to accept the directory
    – The directory had random letters before the net.litchie.idos

    Jc

  2. Zygon Dragon says:

    Good news. I will definitely buy it to support the coder.

    I use Dospad 1.95Beta on my jailbroken ipad. Works great. My request for real Roland MT-32 support was implemented to the latest version 1.97beta but it requires iOS 4.2.1. As there is no untethered jailbreak so far I can’t try it 🙁

    Would be good if someone can test Ultima VI under the new iDOS and see if first of all the intro music is choppy and second if they can plugin their Roland MT-32 via the USB camera kit 🙂

    Cheers,

  3. fearyourself says:

    I could try Ultima VI for the sound but I don’t have a Roland MT-32 or a USB camera kit, so tell me if you’re curious about that 😉

    However, I haven’t figured out how to quit a game running in iDos so for the moment Ultima 5 is running. Perhaps a reboot ?

    Jc

  4. WtF Dragon says:

    Quitting games can be achieved using the normal quit command for the game.

    Just rotate into landscape mode and bring up the keyboard; you’ll have access to e.g. the CTRL button then. And yes, on the iDOS keyboard, you can press multiple keys at once.

  5. Zygon Dragon says:

    If you could try the normal ADLIB/Soundblaster sound. Mine seems choppy for the intro. I have the cycle rates correct to.

    Thanks,

  6. fearyourself says:

    Kenneth> Hmm not sure because actually in Ultima V, when you said quit it would simply save the game 😉

  7. howitzer says:

    Is there something special you need to do with the config to get this working? I tried iDos and copied ultima 6 over to my iPhone4 4.1. When I execute it just sits there nothing happens no errors. I can run it no problem in DOSBox on my Mac. I tried copying over the DOSBox config to the iDos but still doesn’t work. The iPhone is jailbroken so I installed DosPad 1.95b and it does the same thing. Man I really hope I can get this working. Also tried Ultima 7 after adding ems=false to the config and get a message xmmhand.c Program terminated by code.

  8. WtF Dragon says:

    Hmm…I’m not that up to date on the internal workings of DOSpad/iDOS, so if it’s something specific to the program then…I don’t know. Could be an issue with iOS 4.1 for all I know, although that seems silly.

    One thing to note is that iDOS sucks up a ton of performance; you might check to see if you have a bunch of other programs sitting in memory. Shut ’em down and try again.

  9. WtF Dragon says:

    Fearyourself: Well, I suppose there’s no harm in a) saving, and b) using iOS’s multitask manager to force-quit the app.

    It’s the brute force solution, but it would work.

  10. Zygon Dragon says:

    Don’t want to upset you but Ultima VII is not really playable nor is Ultima VIII. 🙁 Still needs work on the dynamic core support etc.

    I use a little bat to switch between EMS and no EMS configs. I’m on the jailbroken dospad beta.

    Here’s my dospad.cfg for NOEMS support

    [dosbox]
    memsize=16

    [mixer]
    # nosound: Enable silent mode, sound is still emulated though.
    # rate: Mixer sample rate, setting any device’s rate higher than this will probably lower their sound quality.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
    # Possible values: 2048, 4096, 8192, 1024, 512, 256.
    # prebuffer: How many milliseconds of data to keep on top of the blocksize.

    nosound=false
    rate=22050
    blocksize=2048
    prebuffer=10

    [sblaster]
    # type — Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
    # base,irq,dma,hdma — The IO/IRQ/DMA/High DMA address of the soundblaster.
    # mixer — Allow the soundblaster mixer to modify the dosbox mixer.
    # oplmode — Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
    # On auto the mode is determined by sblaster type.
    # oplrate — Sample rate of OPL music emulation.

    sbtype=sb16
    sbbase=220
    irq=7
    dma=1
    hdma=5
    sbmixer=true
    oplmode=auto
    oplemu=default
    oplrate=22050

    [cpu]
    core=dynamic

    [speaker]
    # pcspeaker: Enable PC-Speaker emulation.
    # pcrate: Sample rate of the PC-Speaker sound generation.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # tandy: Enable Tandy Sound System emulation. For ‘auto’, emulation is present only if machine is set to ‘tandy’.
    # Possible values: auto, on, off.
    # tandyrate: Sample rate of the Tandy 3-Voice generation.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).

    pcspeaker=true
    pcrate=22050
    tandy=auto
    tandyrate=22050
    disney=true

    [render]
    # frameskip: How many frames DOSBox skips before drawing one.
    # aspect: Do aspect correction, if your output method doesn’t support scaling this can slow things down!.
    # scaler: Scaler used to enlarge/enhance low resolution modes. If ‘forced’ is appended,the scaler will be used even if the result might not be desired.
    # Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.

    frameskip=0
    aspect=false
    scaler=normal3x

    [midi]
    # mpu401 — Enable MPU-401 Emulation.
    # intelligent — Operate in Intelligent mode.
    # device — Device that will receive the MIDI data from MPU-401.
    # This can be default,alsa,oss,win32,coreaudio,none.
    # config — Special configuration options for the device. In Windows put
    # the id of the device you want to use. See README for details.

    #mpu401=intelligent
    #mididevice=default
    #midiconfig=

    #Roland MT32 External config
    mpu401=intelligent
    mididevice=coremidi
    midiconfig=1

    [dos]
    # xms — Enable XMS support.
    xms=true
    # ems — Enable EMS support.
    ems=false
    # umb — Enable UMB support.
    umb=true

    AND for EMS support:

    [dosbox]
    memsize=16

    [mixer]
    # nosound: Enable silent mode, sound is still emulated though.
    # rate: Mixer sample rate, setting any device’s rate higher than this will probably lower their sound quality.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # blocksize: Mixer block size, larger blocks might help sound stuttering but sound will also be more lagged.
    # Possible values: 2048, 4096, 8192, 1024, 512, 256.
    # prebuffer: How many milliseconds of data to keep on top of the blocksize.

    nosound=false
    rate=22050
    blocksize=2048
    prebuffer=10

    [sblaster]
    # type — Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
    # base,irq,dma,hdma — The IO/IRQ/DMA/High DMA address of the soundblaster.
    # mixer — Allow the soundblaster mixer to modify the dosbox mixer.
    # oplmode — Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
    # On auto the mode is determined by sblaster type.
    # oplrate — Sample rate of OPL music emulation.

    sbtype=sb16
    sbbase=220
    irq=7
    dma=1
    hdma=5
    sbmixer=true
    oplmode=auto
    oplemu=default
    oplrate=22050

    [cpu]
    core=dynamic

    [speaker]
    # pcspeaker: Enable PC-Speaker emulation.
    # pcrate: Sample rate of the PC-Speaker sound generation.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # tandy: Enable Tandy Sound System emulation. For ‘auto’, emulation is present only if machine is set to ‘tandy’.
    # Possible values: auto, on, off.
    # tandyrate: Sample rate of the Tandy 3-Voice generation.
    # Possible values: 22050, 44100, 48000, 32000, 16000, 11025, 8000, 49716.
    # disney: Enable Disney Sound Source emulation. (Covox Voice Master and Speech Thing compatible).

    pcspeaker=true
    pcrate=22050
    tandy=auto
    tandyrate=22050
    disney=true

    [render]
    # frameskip: How many frames DOSBox skips before drawing one.
    # aspect: Do aspect correction, if your output method doesn’t support scaling this can slow things down!.
    # scaler: Scaler used to enlarge/enhance low resolution modes. If ‘forced’ is appended,the scaler will be used even if the result might not be desired.
    # Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, hq2x, hq3x, 2xsai, super2xsai, supereagle, tv2x, tv3x, rgb2x, rgb3x, scan2x, scan3x.

    frameskip=0
    aspect=false
    scaler=normal3x

    [midi]
    # mpu401 — Enable MPU-401 Emulation.
    # intelligent — Operate in Intelligent mode.
    # device — Device that will receive the MIDI data from MPU-401.
    # This can be default,alsa,oss,win32,coreaudio,none.
    # config — Special configuration options for the device. In Windows put
    # the id of the device you want to use. See README for details.

    #mpu401=intelligent
    #mididevice=default
    #midiconfig=

    mpu401=intelligent
    mididevice=coremidi
    midiconfig=1

    [dos]
    # xms — Enable XMS support.
    xms=true
    # ems — Enable EMS support.
    ems=true
    # umb — Enable UMB support.
    umb=true

  11. Zygon Dragon says:

    Also you need a fully installed copy of Ultima VII. Like the one that comes with the Ultima Collection CD 😉

  12. Howitzer says:

    Thanks for the ideas. Finally got it working with some info from a post on the DosBox forum. Had to chmod all of the ultima files to 777 permission. Once I did this U6 and U7 both load. Now to start playing! Thanks

  13. Zygon Dragon says:

    Can you confirm if the intro music on Ultima VI is choppy?

  14. WtF Dragon says:

    My intro music chops down on the default configuration. I haven’t messed with cycles and other settings as yet. I’ll give it a shot in a bit here, or tomorrow.

  15. Todd Banister says:

    Success – I have gotten Ultima 1-6 running on my 3GS using iDos 2.0.1. I have even been able to get them installed in the bookshelf so I can start them using just a single touch. If anyone wants instructions on how to do this, check out the following post:

    http://forums.toucharcade.com/showthread.php?t=81418&page=13

    I have also mapped the letter ‘A’ to button 5 running the games so that when I am in a fight, I can simply click on the A button and then use the directional keypad. Much easier than jumping back over to the keyboard and back again for the direction. Has anyone else mapped other useful keys to other buttons? I am thinking about C for casting as well.

    What I would like to see here are everyone’s custom configs for the games to run on iDOS. Thanks Zygon Dragon for posting your 2x configs. Do you use these configs for your iDOS program or are they your configs for your Boxer/DosBox? Which version do you use for which games?

    Things I have found – Ultima 1-3 run fairly well using cycles=500, Ultima iV using cycles=1500 and Ultima V at 2000. Still tinkering with Ultima VI’s cycles. I have also found that core=dynamic works very well with Ultima V and VI – but Ultima IV seems to really suffer.

    Please post your findings.

    Editor’s note: At the linked forum, his username is jz1. Look for his lengthy posting near the bottom.

  16. B33po says:

    Hello,

    I’m trying to run Ultima V on my first Gen ipad (jailbroken 4.3.3)

    The steps I’ve taken:

    1) Installed U5 on my home PC
    2) SSH’ed into my iPad
    4) Placed the the U5 folder into private/var/mobile/documents/games
    5) Cd games
    6) Cd Ultima~1 (is the way it displays)
    7) Typed Ultima to run it.

    I recieve the following errors:

    run-time error R6003
    -Interger divide by 0

    run-time error R6001
    -Null pointer assignment

    Any help you can provide would be most appreciated.

    Thanks in advance.

  17. Zygon Dragon says:

    Yep, sounds like file permissions.