[Coco] Embedding CoCo emulators in an IDE
Roger Taylor
operator at coco3.com
Fri Sep 10 11:35:14 EDT 2010
I though the subject line would grab the attention of some of you
programmers. An idea that I've had since the old Portal-9 days was
to have a nice CoCo emulator pop up after you click Build, but
instead of the emulator program and window being isolated from IDE
control, what if the emulator window could be positioned by the IDE,
resized, moved, etc. like it was part of the IDE interface.
Finally, this has come true. Thanks to the flexibility of the .NET
framework and Visual Studio .NET, I've figured out how to embed both
the M.E.S.S. emulator and the VCC emulator in the IDE GUI (I know,
these acronyms are terrible), so that the user can control where the
emulator window should be, how big, and even what monitor if you have
multiple monitors. The IDE will then launch and kill the emulator
when needed. The emulators are not really part of the IDE, but the
IDE knows how to integrate them just by pointing to the .exe files.
The M.E.S.S. emulator can be run without the Windows frame, so it
looks better in the IDE, but VCC keeps the Windows frame. Still,
both emulators can be used with my new IDE (working name is Phoenix
IDE). Because Phoenix can be configured to use any compatible
emulator, each project can point to a different emulator and control
what modes are used, etc. automatically.
M.E.S.S. can launch to mounted .dsk images and ROM Paks, but VCC
appears to only launch to .bin and ROM images and not .dsk images
from the command line. If VCC would add something similar to the
M.E.S.S. -flop switch, things would be better. And if M.E.S.S. could
launch a ROM image directly without first going through Disk BASIC,
it would work better. For example, VCC can be set to autostart my
CoCoNet ROM, bypassing Disk BASIC, with emulates how a real ROM pak
w/CoCoNet would start up into the CoCoNet DOS. So, M.E.S.S. works
great for developing ROM Pak games but what about Disk ROMs?
With all this talk about Mocha, I wonder if the Java program can be
used in the same way, giving yet another CoCo emulator option to programmers.
Other emulators I've tried with the IDE and they failed were the
Nintendo emulator which works excellent by itself, but can't be
embedded because of it's DirectX/Direct3D pane nature. The video
appears in one spot even if I move the window around. The window
slides away from the DirectX pane. I've also tried an Atari emulator
but it won't work on my 64-bit Windows 7 system.
Because Phoenix will work similar to how Rainbow works - allowing you
to develop for almost any computer and launch into emulation, in
order to make claims for any system I've got to find a suitable
emulator for each that can launch the various types of images like
cartridges, disks, and direct binary files, etc. It's a lot of work,
but so far the CoCo support is working great. This will be the
vintage programmer's IDE to drool over, no doubt. More editor
classes have been added, like HTML viewer/browser, image converter,
hex editor, text, source code, and I'm working on adding a sound
editor as well giving you a suite of classes for the types of files
you can have in a project that can be converted/built into whatever
object files you need for your end program.
You might ask why an HTML viewer? Well, it can load web files or
local files and if the content is source code, the builder will act
on it just like a text/source file. The goal is to allow all sorts
of file types to be loaded and edited, and the builder programs will
have to convert the content into the object. CCASM is a builder, for
example. It converts .asm to binary. What about converting JPEG to
a CoCo compatible picture format or .asm file? I'm working on this
as well. The image converter editor can load any PC format and
eventually output to vintage picture formats for embedding in your
end program/games. We needed this luxury 20 years ago, and perhaps
the big companies had similar tools at their disposal, but I've yet
to hear about such a single program that can manage all these chores.
If you guys know of any Windows GUI type emulators you'd like me to
test and add, please shoot an e-mail my way and I'll check it
out. Phoenix is set to be released by the end of this year.
--
~ Roger Taylor
More information about the Coco
mailing list