C128 emulator with Windows GDI rendering?

C128 emulator with Windows GDI rendering?

Post by Gene » Wed, 10 Jan 2007 12:24:55


My father-in-law is 78 and going slowly blind with macular
degeneration. I'm looking for some help with helping him.

Since the 1980's, he has written about a megabyte of Commodore 128
Basic 7 code to manage his personal finances.

Two problems. (1) His C128 hardware is failing. (2) He can no longer
read the C128 monitor.

My project is to move all his work to a Windows PC so he can continue
with his finances for a couple more years. Fiddling with this stuff is
his greatest pleasure.

Following the wonderful instructions at sta.c64.com, I successfully
built a cable and can copy from a C128 drive through the PC printer
port to the hard drive with Star Commander. So at least (1) is fixed.
Yahoo Joe Forster!

The resulting disk images run fine in VICE. Three cheers for Vice
Team, too!

The last step (I thought) was to use a commercial product ZoomText that
zooms the screen to make it truly huge, pans with the mouse, and also
speaks what's on the screen. (At this point my dad can read if there
are about 6 characters on a big-screen monitor.) ZoomText is really
cool, too. But for $600, no cheers.

The problem is that ZoomText and all the similar "accessibility"
software is incompatible with DirectX, which is how VICE renders the
C128 screen.

The only way I see to fix this is to add regular GDI rendering to the
win32 video module of VICE. The speed of DirectX won't be missed
because all my dad's software has no real time considerations at all.

So 2 questions:

- Has anyone already done this? I have the skill, but I don't do GDI
programming very often, so it's going to take me a lot of work to
figure it out. (I will need to dig into the vdc's character buffer to
render text with a font rather than blitting from the video buffer as
the DirectX code does. This is necessary for the screen reader to
work.)

- Am I missing an easier way to get to the goal of a screen zoom/pan
and screen speaker that works with a C128 emulator?

Thanks in advance.
gene
 
 
 

C128 emulator with Windows GDI rendering?

Post by xlar5 » Wed, 10 Jan 2007 13:30:59

Kudos to your father in law for sticking with his hobby. First off,
before you go much further, here's what I would try. Get him a 19" VGA
monitor, and then hit ALT-ENTER in Vice. That should make the screen go
full screen. Even with a 17", its MUCH larger and easier to read on
<ahem>, mature eyes.

And kudos to you as well for helping him out!

x

 
 
 

C128 emulator with Windows GDI rendering?

Post by MagerVal » Wed, 10 Jan 2007 22:18:54

>>>>> "G" == Gene < XXXX@XXXXX.COM > writes:

G> The problem is that ZoomText and all the similar "accessibility"
G> software is incompatible with DirectX, which is how VICE renders
G> the C128 screen.

G> The only way I see to fix this is to add regular GDI rendering to the
G> win32 video module of VICE. The speed of DirectX won't be missed
G> because all my dad's software has no real time considerations at all.

I haven't tried it myself, but you could try lowering the acceleration
slider in Control Panel -> Display -> Settings -> Advanced. IIRC one
of the lower settings makes the display fall back to software
rendering, which should be compatible with ZoomText.

--
___ . . . . . + . . o
_|___|_ + . + . + . Per Olofsson, arkadspelare
o-o . . . o + XXXX@XXXXX.COM
- + + . http://www.yqcomputer.com/ ~cl3polof/
 
 
 

C128 emulator with Windows GDI rendering?

Post by KertDaw » Fri, 12 Jan 2007 00:02:03


Gene,

This is a very good goal. I can't directly answer the GDI question,
but (as so many Usenet posters do) I'll describe a slightly different
approach.

I spent a number of years converting software to speak and take voice
input. I've used ZoomText, too. ZoomText should work fine if you
reduce the graphics acceleration slider, as the other poster suggested.
To get speech output, it might be easier and faster to embed a call to
SAPI within the emulator, as opposed to relying on a third-party screen
reader. You can write a simple SAPI call to speak a string in about 20
lines of C++ code (or more, if you want to add extra functionality).

So, my suggestion: Write the calls to SAPI yourself. Don't rely on a
third-party package.

HTH,
- Kertis