| |
Executable Image Release 1 [2009] |
AKA :
An Over-Engineered Solution to a Trivial Problem
User rating: | awaiting 8 votes (8 left) |
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
Summary Submitted by MagerValp on 4 March 2009
Executable Image is a perversely over-engineered solution to a very simple
problem: how do I convert a Koala image into an executable program? The sane
solution would be to fire up an assembler, write about a page of code copying
color ram, set up the VIC, and then pucrunch or exomize it to get a sys line.
Scout released a .bat file that does pretty much all that, and it gets the
job done. The implementation gave me an itch that I just had to scratch
though. Actually, judging from the result, more like a full body rash. After
a few evenings of scratching, I present to you Executable Image. It's a plain
console application, and you use it like so:
xi infile.koa outfile.prg
It currently doesn't do any argument parsing, aside from getting the
filenames, so it'll only do the default action: take a Koala image (10003
bytes, load address $6000), compress it with LZSS, and make a RUN:able .prg.
The only advantage it has is that it doesn't rely on any external tools.
However, it's been designed to do a little more. If you take a peek inside
the source, you'll find a bunch of things, such as:
* An embedded assembler, with support for multiple CPU architectures.
* A class hierarchy to support multiple image and file formats.
* Another class hierearchy to support external compression tools.
* Freaking factory patterns to juggle them. I feel dirty.
* How can you make a full class for memory instead of just new char[65536]?
* RAII for the file handling. What was Bjarne smoking when iostreams were
designed?
* The more complicated a program is, the more likely it is to be buggy.
We're basically fucked here.
Oh well, it's too late now. Ian Coog just sent me an Amica Paint unpacker, so
I guess I'd better start working on implementing more image formats. FLI
support would also be good I guess.
The source is hereby released under the Mozilla Public License, version 1.1.
The CamelCased classes and under_scored methods will get you fitted with a
straight jacket in no time (hi JackAsser).
|
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|