Presentation
Now you know what is the pc engine, (if not yet,
check the Hu-Go! feature page on the left), you already
guess that there's very few new games on this console.
The last series of games appeared around 1995 with an
exception in June 1999 with dead of the brain 1 & 2.
Since then, you can guess that no more commercial games
appeared. Fortunately, some fans have brought home made
games recently. This tendancy began with the arrival of
Magic Kit, the assembler for pc engine, made by
David Michel.
Since then, a few demos appeared, generally to show how
to code a bit, well, demos :) , not really games.
The demos only trend began to change with the arrival of
Jamanoid, an arkanoid clone made by the hu6280 team
(formely on www.hu6280.com). It was around ... 1998 I think.
Until middle 2000, nothing really new in this domain, until
I decided to give an hand in this domain trying to make a
C compiler for pc engine. I asked around to see if
a similar program were existing for a console the architecture
of which is near of the pc engine (the NES e.g.) and doing
this, I learned that David Michel had already intended
a pc engine C compiler but had abandonned seen the lack
of interest from public. He gladly gave me his source
at the point where he stopped and I saw that it was already
quite advanced. I began to learn how it was working and
finally, only a few function were needed in the libc
(the library which implement common operations [+, *,
<, ..., even switch/case ]) in order to began producing
working roms. What happened after a few weeks of developpement.
I released it under the name of HuC (once more, check the
Hu-Go!'s feature page to understand why 'Hu' :) and seeing
that, David Michel resumed working on it ^^.
From this moment, David Michel,
David Shadoff and
I are working together to improve HuC as much as possible.
From the beginning, where you could only output black and white
text, use short and basic C algorithm (apart using inlined
assembler), you can now handle sprites, tiles, palettes, all
C instructions (with the ol' 83 standard, very very near of the
modern one, don't worry) without having to think about bank
limitation (well, almost, you don't have to worry about
function repartition into the various available bank, but
you can't make a function the code of which is more than
8 kb, it's very rare and easy to handle, don't worry), make
scrolling, shorter and faster program (with builtin optimizer).
Now, HuC is still under developpement (with the addition of
sound or improved video handling) and the number of games made
with it begins to be considerable.
Using HuC
As for the knowledge needed by the HuC coder, hardly more than
the 'usual' knowledge of C coding is needed. Indeed, in HuC
doc, you won't find a C tutorial, just what's needed to
use the HuC API, which as you may guess is quite different from
the usual PC one. As for input, instead of keyboard, mouse and
various joypad, you simply have up to 5 joypads, with 6 buttons.
Thanks to the recent addition made by david shadoff, the pc engine
mouse is also exploited, thought not many commercial games use it.
For outputing results, a little library have been implemented
in order to print text and numbers. Furthermore, you can now
use the video power of pc engine, with the hardware support of
up to 64 sprites up to 32x64 pixels , 8x8 pixels tiles,
scrolling, 16 palettes of 16 colors coded on 9 bits each
(RRRGGGBBB).
Installation
Installation is quite simple. Obviously, for confort purposes,
you'll have to put the binary directory in your path (or any
environnement variable used to search for binaries).
Then, since HuC relies on the Magic Kit (a compiler only produces
assembler code, not directly bytecode), you must also define
the environnement variable pointing toward the directory in
which the library files are present. This variable is called
PCE_INCLUDE and can be set with SET PCE_INCLUDE=c:\huc\include\pce
under DOS for example or $PCE_INCLUDE=/usr/local/huc/include/pce;
export $PCE_INCLUDE under certain un*x shells and so on...