
		Patch version 1.15  1992-1993 Brge Nst

			This is an Ymir's Thoughts production.
		Watch out for future (original) products from us.

* This is now a helloware product. You have to send me e-mail or a plain old *
* postcard saying 'hello' (or a bit more if you like) if you use this patch  *
* and patched program.                                                       *
                                      -
  - I take no responsibility etc for what this program and patch might do. -
  - Consider this a beta release to keep your sanity.                      -
                                      -


How to patch your Bubble Bobble (original fullprice version that comes on
a standard OFS disk that can be read except for the protection on track 0) to
an updated version:

First of all, this can be done on the command line only.
You type the command 'BB_Patch <originalfile> BB.lha <newfile.lha>'.

<originalfile> is the file called bubble on your original disk.
<newfile.lha> is any name you want to use.

Then you use LhA to decompress the <newfile.lha> file to get the new version
of Bubble Bobble.

(ok, so it isn't patching the old file, but who cares? :)

----
Features of the updated version:
 Only one file.
 Tries to shut down the system peacefully, not keeping it half alive as the
 old version did. (Respects VBR, runs in FAST mem etc.) (1.02 fixes interrupt
 problem (I hope).)
 Does not close the WorkBench screen (the old did...)
 Exitable.
 Saves highscore file.
 Can be started from WorkBench.
As of 1.09
 No Enforcer hits (unless you turn on the music).
 Checksummed/coded highscore file to keep newzap lamers away.
As of 1.11
 Needs 2.0? (Uses PROGDIR: to locate the directory it was started from.)
 Equal timing for all processors in some parts.
As of 1.12
 Command line options "pal" and "ntsc" partly implemented.
 Searches current directory for highscore file if 1.3.
As of 1.13
 NTSC scrolling without bitplane colour (or should I say color :) glitches.
As of 1.14
 New and better command line options: "pal", "ntsc", "fade", "delay". The fade
 and delay options needs an extra agrument in the form of a decimal number.
As of 1.15
 Teoretically faster bobs. However, this does not make it run in less frames
 on my 68000 with fast ram, but it could help if you only have chip ram, or
 it can make it faster if you have >=68020.

Bugs/problems:
 Needs 1MB (but who hasn't got that?)
 1.02 has the level-scrolling colours back again.
 Not tested enough. There might be problems. (extend screens works as they
 should (0.99 did not).)
 Not optimized(sp?). If you are desperate I can turn on the optimize options :).
 Reported to crash on level one or two on 4000-040. Perhaps this version is
 better?
As of 1.09
 Tested on a 21M 28MHz 2000/040 without Enforcer hits. There was a place in the
 program where a structure was filled in with an address and then the upper 8
 bits were set to 0. I have seen no ill effects in taking out this nasty piece
 of code. Interrupts have been secured. The scrolling between levels had
 problems with the 040 and has been replaced by a blitter version that works
 equal on all machines.
 The music replay routine has a nasty bug that results in reading a byte from
 address 0.
 There is one bug that I think I must have introduced myself: If you burst more
 than one of the same letter-bubble then the letter that should have been
 placed on the left side of the screen can be written at any place around the
 screen. I am trying to fix this.
 Assembled with optimize.
As of 1.11
 Letter bubbles bug seems to be gone.
 Slow prosessor routine for clearing screens replaced with blitter clear. (I
 think I may have found a hw bug in the ECS blitter in the process of doing
 this.)
 A few loops optimized, and other small optimizations made.
 Routine for waiting for end of screen now has an extra slowdown variable. This
 can be patched in the code to be active (for those with a monitor you can look
 at the word after the very first branch instruction in the code and change it
 to give you a slowdown of your taste). Same routine has now been fixed to
 behave equally on all prosessors.
 Fade routines and others that should not have the slowdown has gotten a new
 routine for timing. Loop calls have been corrected to give fading the right
 look.
As of 1.12
 NTSC mode has speed problems in scrolling the levels. Can be fixed by
 splitting the blits in two. NTSC mode generally runs a bit slow with 68000
 only; often three frames instead of two.
 As you could guess; there is no bug in the ECS blitter, only silly code from
 me.
 Uses only OCS blitter registers now (which could have given you graphic
 errors on older versions if you only had OCS since I used ECS registers).
As of 1.13
 I split the scrolling blits to get NTSC scrolling perfect (and it is).
As of 1.14
 NTSC now runs in two frames unless there are many bobs.

If you wish to have music as default you need to use a utility like newzap to
search for the string 'DUCK'. Patch the 'U' to something else (when assembled
with music on option it uses 'I'.)

There is a "pal" and an "ntsc" command line option (but I don't think you need
it anyway, except for slowing down the music and game speed).
On exit it will select the opposite mode.
You can use the fade cli option to select the speed of the colour fading.
You can use the delay cli option to slow the game down if it is too fast.
You can use the music cli option to turn on the music.
For example: "Games:BubbleBobble music ntsc fade 8 delay 1"

Tested on A1200, A4000/040, A4000/030, 2000/040, and A3000/16 without problems.
If you find any bugs please tell me.
Versions after 1.08 has not been tested extensively on anything else than
68000, but it has been said to work like the older versions on 4000/040.

----
Things you need to know:
 It tries to find the highscore file in the same directory as it was started
 from if you have >=2.04, or the current directory if you have <2.04.
 When you exit it writes the highscore file to the directory mention above.
 Press left mouse button to start the attract mode.
 Press right mouse button to exit - if you have only been watching the attract
 sequence and not played before you press right mouse button then the game
 will act a little funny before it exits.
As of 1.09
 Exit should be fine whatever. Reported to start twice if you use csh. Beats
 me why. Please tell me if you know.
As of 1.12
 Should return 5 if the highscore file didn't close properly, and 0 if ok.

TODO
 Make a GUI for it.
 Make a trainer (GUI controlled). (It's fun to start right on level 72 :)
 Make a good patch program. Should be possible to get the patch down below 100K
 (including the NTSC version).
 Perhaps change the screen layout to use interleaved bitmaps. This would need
 a bigger mask buffer, and rewritten routines for plotting text etc to the
 screen. However, it should help the bob speed even more, and with the extra
 background buffers used since 1.15, restoring the background can be done with
 the blitter, and done asyncronously(sp?).

Funny note: The music routine (by David Whittaker) uses the NTSC frequency
in what I believe is constructing samples.

Free ad: Macro68 is a great assembler. BarFly seems like it will be an even
better one.


That's it. Send all comments/reports/bugs/etc to me.

Brge Nst / Ymirs Thoughts (Certified Developers)
email:	borgen@stud.cs.uit.no	borge@bnoest.adsp.sub.org
Snailmail:
Brge Nst
Boks 218
9001 Troms
NORWAY


Final note: This might be the last update in a long time, especially when it
comes to actually releasing something. Suggestions for improvements and moral
support could perhaps make me change my mind, but I wouldn't bet on it.
