VOGONS


First post, by pitermach

User metadata
Rank Newbie
Rank
Newbie

Hi all,
So first of all here's a very quick introduction. I'm blind and use what's called a screen reader to use a computer. It does what the name suggests, reads whatever is on the screen with a speech synthesizer. I'm also a pretty big gamer. There is a lot of games that are very playable, and that includes a lot of quite cool dos ones - one personal favourite of mine is the begin tactical starship simulation, there are also a couple of games that were created specifically to be blind friendly that also have sound effects.
So here's the problem: Dos also had quite a few screen readers, a few have been released as freeware so availability isn't a problem. I managed to set one of them up after a lot of headaches with having to use OCR to at least get a vaig idea of what's going on on the screen, and the result is this.
Mount this folder as C, set cycles to max, change into C: and type jaws to start it. Now try to execute another command like dir. What's supposed to happen is that any new text being printed, at least in textmode, should be automatically spoken, but it isn't. I tried launching other text mode programs and the issue still seems to persist in them. What's interesting is that the screen reader does see the text (press the numpad minus key and then use the arrow keys to review the screen line by line, or try backspacing characters out in the prompt). I'm not exactly sure how these programs intercept the text, but the weird thing is that not only JAWS experiences this. A friend of mine installed Habla, a spanish screen reader, into dosbox and set it up with a hardware speech synthesizer over serial port and ran into the exact same symptoms - IE the text is seen and in habla's review mode can be read line by line, but isn't spoken automaticaly when it gets printed. Another person tried ASAP and again ran into the same issue.
While researching this issue, I found this thread which suggests something managed to somewhat fix the problem, but I have no idea what 🙁. I'm guessing it's something either to do with video modes or bios emulation (I have this vaig memory of hearing from someone that dos screen readers used to read the bios somehow to see what was going to the video card but it could be something else completely). Getting this to work would be very awesome because it would let people play games in the best way on all platforms, because as it stands the only thing you can do on newer 64-bit Windows versions is virtualise XP and run the apps there, but you don't get any PC speaker sound and it's slightly overkill.
I would appreciate any help with this. Recently there seems to be a lot of discussions about running old dos games in the blind community so the interest is definitely there. I'll be happy to test any development versions if it's something that has to be fixed in Dosbox and I've worked with running various apps from source so I'm not afraid of it 😀

Reply 1 of 6, by guilevi

User metadata
Rank Newbie
Rank
Newbie

Hello,
I believe I am the person @pitermach was referring to when he mentioned the Habla screen reader. 😁 I have tried both Habla and ASAp, and after investigating a bit more thoroughly, I have noticed that the issue is not that the text doesn't get spoken, but that it literally takes about two minutes for the screenreader to realize there's new text. What's even more strange about this is that other keys, like screenreader control keys and even review cursor control keys seem to work perfectly, and the review cursor does detect the text that appears on the screen. Since I'm using a notetaker as a speech synthesizer, I've tried writing the serial input to a file and it acts the same way. Nothing gets sent to the synthesizer until it realizes it has to speak the incoming text.
Hope this helps. I'd really like to switch away from this PC speaker-less Windows 3.1 VM to an actual DOS emulator. 😁

Reply 2 of 6, by truth_deleted

User metadata

SDL is the library of functions which handles video and audio output for dosbox. It's a large open source project and they may have a solution available, or a request could be submitted, for extending its output modes so they are accessible to everyone.

Otherwise, there are other emulators, like VMware and VirtualBox, which should have the functionality which you look for.

Have you also tried to boot Windows 3.1 in dosbox and test the software for that operating system?

Reply 3 of 6, by pitermach

User metadata
Rank Newbie
Rank
Newbie

Hi,
That's more or less what we're doing right now, someone set up a vmware virtual machine that runs windows 3.11 and dos 6.22, and another person created a program that emulates an old speech synthesizer, and for the most part it works fine, but isn't very easy to set up because you need vmware and com0com to make a virtual serial port which makes it only work on Windows. The other problem is that you can't get any sound out of it, VMware redirects PC speaker beeps to the host, which works on anything up to 7, but on newer Windows versions and Mac just gives you silence. A few of the more interesting games use the PC speaker for giving beeps that aid in things like targetting so that's kinda problematic. 😁

Adding an alternative output method would actually work quite well - because SDL is drawing graphics directly to the screen skipping operating system GUI API's screen reader don't see anything apart from the dosbox's title bar. On Linux the dosemu emulator has an option to redirect all text mode output to whatever terminal you're using which would be perfect, or even using dosbox's error console and dumping it there because that part is just a normal terminal and I can read it perfectly.
Going back to the thread I linked to in post 1 it looks like the other person had a similar thought,
DOSBox and access for the visually impaired?

I'm guessing text output in text modes of dos are just sent to sdl, and printed?

text access can happen as random access to the emulated video memory, so any redirection idea won't work.

So my question now is what would be easier, adding text mode redirection to a terminal or figuring out why actual dos screen readers aren't working?
PS if Dosbox has an official bugtracker, where can I find it and should I report the problem there?

Reply 4 of 6, by truth_deleted

User metadata

The problem is it isn't a bug. DOSBox is for dos games, so the dos emulation is not tested and made compatible with non-games. The speech synthesizer is a sophisticated application and would not be tested in dosbox. There are many queries about using dosbox as a dos box, but dosbox was never intended to emulate every facet of dos. If it isn't overly technical, you could investigate PCem, an emulator which boots an image of a real BIOS and should have the functionality requested. Otherwise, there is a feature request thread to request new features, and a developer may take an interest. DOSBox is an open source project, so contributions are often from hobbyist developers.

Also, the conclusion based on that quote is not correct. There is a way to communicate between the dosbox screen and the clipboard, so there is code to capture text from the dosbox screen. Please view the Patches subforum here and find the thread on use of copy and paste functionality inside dosbox.

It's difficult to know whether the additional emulation or capturing text from dosbox is easier. It would have to be tested. My guess is that the additional emulation is easier, but it requires the knowledge of a systems programmer and use of the debugger, given emulation is the reason for the issue. However, capturing text from dosbox can be programmed by an experienced application developer and does not require knowledge of emulation internals.

Perhaps you could also submit a request to the SDL developers and then ask gog.com about options they have in this area. Gog.com sells games and they must have had this request before.

The difficulty is we don't know the configuration of the speech synthesizer application, whether it is freeware, and whether there are additional hardware requirements.

Reply 5 of 6, by guilevi

User metadata
Rank Newbie
Rank
Newbie

The thing is other emulators are trying to make use of the actual computer's PC speaker. My computer doesn't have one and neither do most of the other newer ones I know.

The problem is not that Dosbox doesn't emulate the speech synthesizer. The actual speech synthesizer is either an external serial/parallel device or an emulation of one. The problem is in the screenreading software which really doesn't do much except for sending stuff to the serial port and getting the text from the screen. it's not a matter of adapting Dosbox to run different software but more of looking into why the software doesn't like it's way to output to the screen. Not sure if changing that will hinder other games though.

Another problem with both habla and ASAp is that the PC speaker starts behaving really weirdly when you load them up. I believe it starts trying to play loads of beeps for some reason but fails horribly, so all you can hear is basically a constant buzz. After a while it'll fade out, but as soon as the pc speaker tries to do anything, it'll start up again. not sure if this'll help in any way.

Reply 6 of 6, by truth_deleted

User metadata

I think I understand the different issues better. There are many variations of a functioning screen reader, so there are different combinations of devices, whether physical or emulated.

Here is a discussion about DOS screen readers: http://www.redhat.com/archives/blinux-list/20 … r/msg00002.html.

Here is another discussion describing use of a DOS screen reader inside dosbox: http://klango.net/pl/forum/thread/mid/793139/tid/788425. And related information here: http://sourceforge.net/p/espeak/mailman/message/30895046/. And here: https://www.mail-archive.com/gamers@audyssey. … /msg103844.html.

Please describe the issues with using the asap program inside dosbox, including how the PC speaker output is a problem. Your description is about a real PC speaker issue, yet you also said that you don't have a real PC speaker. Is this the emulation of a PC speaker which is a function of dosbox?