Hi!  |
      A|A
     (n n)
      \_/

    I've read some interesting old EMs, about copyrights,
"copywrongs", copy-protections, hacking and so one... A friend
of mine bought PC's "Frontier - Elite II" (hey, people all
around, except for the graphics, MSX version is far better!) It
had a protection of the kind "type in the first letter of word X
in line Y at page Z". Well, I played the game in his house and it
locked me twice because I either counted the letters wrong (it
was not clear in the manual if I had or not to consider the
manual's page titles) or the manual was wrong (it was a new
edition and I don't doubt it or the game could have been modified
without the corresponding updating on the other part). My friend
was also locked a few times and after loosing a dozen games, we'd
got a game cracker in the Net and sent the copy-protection to
hell. Summarizing, I don't think any kind of protection is worth
the stress upon any single customer.

    "So, software makers cannot protect themselves from piracy?"
Of course they can. A message like "unregistered software"
("software registered to XYZ" is even better) is a good start,
because "registered" machines (those in offices and legal
organizations) cannot use unregistered software, and there are
the "real money", not in the domestic user. Videogames are a
special problem, because the "main stream" is the domestic user.
The best protection against piracy, I think, is a good price
AND a good game AND a good distribution: if the price is high,
it will be worth for the pirate to copy the software and the
manual; if the game is not good it won't seem worth to the user
to buy it; if the game is hard to find or to purchase, most
users will take the easiest way of piracy (for example, it was
absurdly hard to buy original Konami MSX software in Brazil,
because of high custom taxes and mailing costs). Small
softhouses cannot afford a big distribution plan. Small Famicom
and Super Famicom soft makers used to sell their products to
bigger enterprises, like Nintendo of America and Japan Enix.
Compile, from which we got so many wonders like Aleste and
Golvellius, was a small softhouse and could afford direct
distribution only in Japan and for "open systems", like MSX
and other Japanese machines. Super Famicom's "Super Aleste"
was released by Japan Toho (the original studio of Gojira
[Godzilla]). What I mean from all this is that it would be good
if home programmers and small softhouses could join to make
a really wide distribution net. There are surely good ideas
and programmers around. Buying large packs of diskettes and
printing many manuals at once would lower costs. A non-profit
organization would provide what's necessary to stop piracy.

    Joining enough people to raise such project is difficult.
If the joy of having a program running in an extinct machine
ten years from now is not enough for someone, then move to
a "probably" long living plataform (I'm now programming in
JavaScript, which fortunately has almost nothing to do with
Java, it's more like HTML with IF-THEN-ELSE built-in). MSX has
a lot to give, still, and it's enough for me to have fun out of
it (that's why I only make freeware and public domain for MSX).
If it enjoys someone else, then it is an even better payment.
David Bradden, one of the programmers of "Elite", has released a
Famicom version, just for fun (it is a freeware and can be found
in the Net). Famicom don't have a block definition VRAM, so it
should be impossible to make vector graphics in it, but it has a
small RAM for block positioning and programmable video pointers.
He made the block positioning index point to ROM and the block
definition to the RAM, that is, something no one has thought
about before, and made the game. I wonder how many things about
MSX no one has thought about before. How many of them would be
worth purchasing as a game...?

    Games also present another problem, easily noticable even in
this list: I HATE "3D Wolfenstein" and clones, some people love
them. I love shoot'em ups, while others simply prefer to die
than to play "Aleste". Though I don't like "battle modes", I
prefer them to the pretense real-time battles of "Dune II" and
similars, and others just cannot deal with pop-up combat menus
(they are easily beaten even by slimes). MSX users are very
ecletic in their likes and dislikes, from the classics of the
Colecovision convertions to the CRPGs of Microcabin. How to sell
a hundred copies of any program to such an audience? Maybe a
wonderfully programmed multi-style game, in which the player
could select the kind of "game style" it prefers... But it would
be too complex and expensive to be programmed. It would be a fun
to play "Episode II - Gopher no Yabou" ("Nemesis 3") in CRPG or
C-adventure style! It would be like pressing <F2> and making
"Majou Densetsu" ("Knightmare") become "The Maze of Galious" or
<F3> and play it as "Shalom" (Konami prefered to release them as
three independent games, of course). How to sell the same game
to someone that listens to Bach and to another that spends hours
to buy a ticket for a Metallica's show? Worst, sell it to the
third one that likes Bach AND Metallica...

    If after all that someone still really want to make an MSX
game with copy-protection, here is my favourite: co-processor.
It almost never fails: make a custom circuit that receives some
data and returns others. Till today, no one has even a slight
guess about how to emulate "Star Fox" (Super Famicom). It uses
a coprocessor IC in the cartridge to calculate and render
polygonal graphics. There are only two or three games that use
that IC, so it is not worth for the emulator programmers to
spend time with it, not with so many things still to be done.
The CAPCOM arcades #2 and #3 have special cryptographic ICs
(programmers have decoded #2, but #3 is still melting brains).
Konami had its Sound Creative Chip, the SCC, but it is still
today worth the time spent in emulation, because many games
use it and use it well. But with only a few games using it,
the Snatcher SCC (the so called SCC+) is still not emulated
correctly by most programs. Shame, shame! Of course, better
solutions have higher prices. But SD-Snatcher was about US$80
when I bought it and I surely would purchase more if I could
find any. "Why?" Because the product is worth it. Not everyone
would agree about that, but it really doesn't matter to me, or
else I would be another PC "Doom" player. I'm in it for more
than material profits. Some people collect stamps, other coins.
People like William Gates III collects enterprises. I collect
moments. Have anyone here seen "Bladerunner, Director's Cut"...?

    There is a new kind of copy-protection around: games that
allow Internet access (for multiplayer) can be copied but not
used, for you must register your copy first (and two copies
cannot be in the Net at the same time). Good idea, I have to
admit (of course, it only works for some kinds of games and
the maker must provide a server to the players - for free,
I suppose, or it wouldn't "catch up"). It's like a "virtual
club". It's better than cable TV, today, in which everything
that is worth watching is now "pay-per-view" (you only have to
buy the game once, what is fair for it only had to be made
once). But this is not a solution to MSX, or is it...?

    Sony has put a hard-lock in its PlayStation. You can copy
the game CDs in any PC, but they won't run in a "normal" PSX
(there are probably some data recorded in track -1 or something
like that). But for the same price of a common PlayStation, you
can buy a "hacked" one: its BIOS is modified in such a way it
simply doesn't look out for the lock. More than that, a hacked
PSX won't check the "nation lock", allowing any CD-ROM from
anywhere to be run (a normal Japanese PSX won't play an American
CD-ROM, for example, just like other machines, like Super
Famicom [physical lock], Mega Drive [software lock], DVDs [soft
locks] etc.) Ask me what kind of PSX most people I know have!
There are two PSX at home, none hacked, _yet_ (all PSX softwares
I have are original, purchased in Japan, but now my family
is back to Brazil and I'm again stuck with the distribution
problem: it's almost impossible to find original JAPANESE
[remember the "nation lock"!] disks here in Brazil, for an
affordable price). LOCKS ARE MADE TO BE PICKED! Houdine, The
Great, knew it better. By the way, I read somewhere (was it in
this list?) that MSX users accepted talking about PlayStation
because it was a "kind of successor of MSX". Who said
that?! Nonsense, of course! PSX is a video-game console,
V-I-D-E-O-G-A-M-E. It has a central CPU and peripheral devices.
Does that make it the successor of MSX? That is just the
classical computer architecture. That's why MSX looks so much
like Colecovision (they are, indeed, almost the same machine)
and, if one thinks about it, like most computers we have. If
architecture similarity would be a rule to call a machine "MSX
relative", Coleco would be father of MSX, Spectrum a cousin and
PCs, uncles.

    Exception to that classical computer architecture was Amiga,
in which a "brainless" controller ("Agnus", I think) had the CPU
as an slave peripheral (it got only 50% of the system clock, I
was told, far enough for an MC68000). Amiga was designed by the
same crazy guy that designed Atari VCS2600, which also had all
chips called by names (like "Stella") and had sprites only with
X-coordinates. "How could someone use them?" Well, in VCS2600,
there were no VDP, so the program had to literally draw the
screen in real time, so it made no difference at all. In Amiga,
forget the sprites! Back to MSX, turbo R may be another
exception, for everything seems to be slave of the S1990
controller (though I'm not really sure about that). If so, it
would prove that architecture is not what makes MSX an MSX, but
what is _visible_ to the user. If an emulator could perfectly
reproduce an MSX, soft AND hardware, it surely would be an MSX,
even if running in a VCS2600 with a giant cart full of DSP chips
in. Indeed, in the long run, the only way to get a real MSX will
be using DSPs, which are just hardware simulators.


    A note about the "2000 year paranoia" (that's what it
became, by now): Alwin Henseler ([EMAIL PROTECTED]) wrote
about the way the leap years are calculated (once each four
years, except once each century, except once each four
centuries). I already knew that (many years ago, I needed a
reliable calendar program for an "time-travel" adventure). He
called it a "ridiculous system". I don't think it is ridiculous.
Indeed, it is a very good approximation, mainly if you consider
it was made by a pope in the XVI century (he was named Gregory,
so our current calendar is called "Gregorian Calendar"). Alwin
also didn't mention that the Gregorian Calendar has still an
error, a very very small one, which would create an extra leap
year in 3333 (wow! cabalistic! wonder what year I used in my
adventure...) As far as I know, scientists are making small
corrections everytime it is required, just to avoid a great
correction in the far future. In the middle of 1997, for
example, a "leap second" was introduced. Where did you people
spent your extra second, last year? Why I mention all this?
Because MSX don't have a 2000-year-bug, but a 2080-year-bug. MSX
dates range from 1980 to 2079. Most MSX programs only uses the
system BIOS to calculate the dates, and it does it right (till
2079 A.D.) Mainframes are the real problem concerning the bug,
because most programs ignores the hardware and treats all dates
by software, ranging from 1900 to 2000 (mainly Cobol and Fortran
programs). When they read "00" from the hardware, generally
correctly informing [20]00 year, the program understands [19]00.
There are some very primitive (and "stupid", too) hardware
that really mean 1900 when reporting "00", but they are seldom
(hardware makers had a little sense to not think someone would
want to set its clock to 1900). Programs that will suffer the
2000-year-bug-curse should be dead 20 or 40 years ago (Cobol and
Fortran should be dead, by the way). I think most programmers in
this list already know all this, but surely not all users.

    More trivia about dates: the years start from 1, not zero, as
most people think. It happens because we use an ordinal couting
system for dates (first day, second century, 1998th year). There
is no zero-eth year, an error many people make (remember "Back
to the Future", the movie? Dr. Brown types "December-25-0000" as
Christ's birth day). For that reason, 21st century will come in
2001, not 2000. I'll be celebrating 21st century when everyone
else in the world will be just stumbling around. Who wants to
join me...? Well, here is the program to calculate week day
(from the settlement of the Gregorian Calendar till... who
knows?) Note: line 20 is just an example of application of the
functions, line 10 does it all.

10 DEFINTA-Z:DEFFNJM(M)=VAL(MID$("  0 31 59 
90120151181212243273304334",M*3-2,3)):DEFFNLY(Y)=(YMOD4=0)-(YMOD100=0)+(YMOD400=0):DEFFNDC(Y,M)=6+(FNLY(Y)AND(M<3)):DEFFNWD(Y,M,D)=(Y+(Y\4)-(Y\100)+(Y\400)+FNJM(M)+D+FNDC(Y,M))MOD7
20 DEFFNWS$(Y,M,D)=MID$("SunMonTueWedThuFriSat",FNWD(Y,M,D)*3+1,3):INPUT"Enter date 
(year, month, day):";Y,M,D:PRINTY"-"M"-"D" "FNWS$(Y,M,D)


    A trivia about prime numbers: number 1 is not prime, as some
people think. If it was, no other number would be, because they
all would be multiples of at least one prime number (1 itself).

    I present here a program that checks if a number is or not
prime. It is the fastest code I could think of. Half of it is a
classical algorythm: divide X by 2; if no rest, it is not prime;
divide X by 3; if no rest, it is not prime... and so on until
X divided by X-1. I modified the algorythm in this way: if
the number is not a multiple of 2, then it can be, at most,
a multiple of 3, so one doesn't have to check till X-1, but
(X-1)/2, or in other words, the multiples of the number can
be at most (X-1)/2. Line 20 checks if number is 2 or multiple
of 2 (with that, you can step 2 by 2 instead of 1 by 1 of the
classic algorythm). In line 30, "IF DD<=(DN/DD) THEN..." is my
modification (the original should be "IF DD<DN THEN...").
The program has to evaluate one extra division because of my
modification, but it saves a lot with the reduction of the search
range at each iteraction. Try it! Note: the program was originally
written in C.

10 DEFINTA-Z:DD=3:P=1:INPUT"Number";DN:IFDN<2THENPRINTDN"is not a prime number 
(defined).":END
20 IFDN<>2THENIF(DNMOD2)=0THENP=0:DD=2:GOTO40
30 IFDD<=(DN/DD)THENIF(DNMODDD)=0THENP=0:GOTO40ELSEDD=DD+2:GOTO30
40 IFPTHENPRINTDN"is a prime number.":ENDELSEPRINTDN"is NOT a prime number (multiple 
of"DD")."

                                               ... Cyberknight...
<Over>

****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to