WildMag Interface

by The Update / CoPro
v1.0.1, Build 35, 1999-12-03

1. Introduction
1.1 About WildMag Interface

Wildmag Interface is a diskmag interface with the following features:

Operating systems

- Windows '95 (DirectX3 required)
- Windows '98
- Windows NT 4.0 (SP3 required)

Display

- Truecolor (32bit)
- fullscreen / window
- Skin system
- Smooth scrolling
- Active mouse cursor

Import

- HTML/TXT reader (automatic file type detection)
- JPEG/TGA/LuraWave image loader
- XM, IT, S3M, MOD, CD-Audio player

Not yet implemented

- Plug-In
- Screen saver
- Search engine

It is developed for the German diskmag Wildmag, it's first issue is going to be released in december '99. But since there are too many diskmags and music disks with low quality interfaces, I decided to develope the interface as OpenSource project.

1.2 License

Copyright (c) 1999, Malte Clasen (The Update / CoPro)
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- All advertising materials mentioning features or use of this software must display the following acknowledgement:

  > This product includes software developed by Malte Clasen and his contributors.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

1.3 Credits

main code
Malte Clasen (The Update / CoPro)
http://come.to/malte_clasen / malte.clasen@gmx.de

sound system
BASS by Ian Luck
http://www.icl.ndirect.co.uk/music / bass@icl.ndirect.co.uk
graphics system
OpenPTC Win32 by Glenn "Gaffer" Fiedler
http://www.gaffer.org/ptc / ptc@gaffer.org
JPEG loader
Independent JPEG Group Library
http://www.ijg.org
LWF loader
LuraTech LuraWave-Loader C-SDK Demo
http://www.luratech.de / lurawave@luratech.de
Note: Although the C-SDK demo license allows redistribution for uncommercial purposes, the demo can't load images that exceed 640*480 pixels.

2. Usage

2.1 Control

2.1.1 Keyboard

space - Smooth scroll up
Backspace - Smooth scroll up
Cursor Up - Scroll one line up
Cursor Down - Scroll one line down
Page Up - scroll one page up
Page Down - scroll one page down
Home - scroll to the first line
End - scroll to the last line

B2.1.2 Mouse

Since the user interface is skin based, I can't describe how the buttons look like. However, I can give you some hints about their functions: The line scroll buttons work similar to the cursor keys. If you use the right mouse button, they work similar to space/backspace. The page scroll buttons equal the page keys, in this case the right mouse button jumps to the first/last line. A right click on the play/stop button pauses the module, a right click on the next song button plays the previous one.

2.2 Compile

Wildmag Interface is developed using Microsoft Visual C++ 6.0 SP1. Just open "wildmag.dsw" from it's IDE. The default OpenPTC path (you have to download v1.0.17) is "..\OpenPTC", so if you use another subdirectoy structure, you have to change the settings for "ptc.lib" and "ptc.h".

2.3 HTML support

The following HTML commands are already available:

- <title> HTML title </title>
- <body> main HTML part </body>
- <br> line break
- <b> bold </b>
- <i> italic </i>
- <u> underlined </u>
- <tt> teletype </tt>
- <pre> preformatted (line breaks) </pre>
- <font color=#0000FF> blue </font>
- <p align=center> new paragraph </p>
- <p align=right> new paragraph </p>
- <p align=left> new paragraph </p>
- <img src="image.gif"> insert image

Planned but not yet implemented:

- <img src="image.gif" align=left>
- <img src="image.gif" align=right>
- <a href="test.html"> linked text </a>

2.4 File format

2.4.1 Images

- JPEG
  - no known file format limitations
  - ".jpg" suffix required
- LuraWave
  - image size has to be below 640*480
  - ".lwf" suffix required
- Targa
  - only 32bit rgba uncompressed allowed
  - ".tga" suffix required

2.4.2 Mouse cursors

Only TGA allowed since the alpha channel contains some required information:
255 : hot spot
254 : transparent hot spot
64 : transparent

2.4.3 Fonts

WildMag Interface uses the Windows ANSI charset. All characters have to be drawn in one row from the left to the right. The first row contains character width information instead of the character itself: WildMag Interface divides the image by using small white lines that are as wide as the character below them. Have a look at the default fonts to see what I mean. The image has to be a greyscale TGA file. The brightness is interpreted as alpha value for blending text and background color where white means 100% text color.

3. History

3.1 WildMag

Sven Gramatke (Magic van Lam) and Malte Clasen (The Update) met first at Evoke '98. Magic van Lam had already planned a quite large project for a scene collection in diskmag style which should have been called "Moribund", and The Update joined the project as interface coder. In may '99 we decided to change the project to a more usual diskmag under the name "WildMag". Since Magic van Lam left the scene in october '99, Thiemo Mättig (madOS) became new leader.

Contact malte.clasen@gmx.de with your comments and suggestions.