@DATABASE "CoolNESs-guide"
@WIDTH 77
@(c) "1997-1998 Fredrik Olsson"
@INDEX Index
@NODE "Main" "CoolNESs, beats me!"


@{B}                    CoolNESs a cool NES-emulator for Amiga
                               By Fredrik Olsson
                           version 0.61 [1998/02/19]
@{UB}

New in V0.61: Small Fixes for the GUI, better sound.




@{B}Features:@{UB}
   Support for Mapper: 1, 2, 3, 4, 5, 7, 9, 11, 15, 19, 34.
   10 inputs (Normal+CD32pad+MegaDrivepad+4pl-adapt) and keyboard.
   4player-adapter.
   Screenscrolling.
   4Screen VRam support.
   8 & 16 high sprites.
   Battery save.
   Soundsupport.
   Keyfile support.
   GUI.


   @{" Copyright    " LINK "copyr"}	Who owns this.
   @{" Introduction " LINK "intro"}	What is this anyway?
   @{" Requirements " LINK "requirements"}	What exactly do you need.
   @{" Usage        " LINK "usage"}	How to use this thingi.
   @{" The Future   " LINK "future"}	I see..... somethings.
   @{" History      " LINK "history"}	How it was before.
   @{" Limitations  " LINK "limits"}	The limits and what you can do about them!
   @{" Bugs         " LINK "bugs"}	Nasty little buggers.
   @{" Author       " LINK "author"}	Thats me, the man.
   @{" Thanks       " LINK "thanks"}	People I wanna thank.

@ENDNODE

@NODE "thanks" "Thanks"

  I would like to thank the following people for their help in obtaining
information regarding NES emulation.

Marat Fayzulin,			Would never have started without his doc!

Yoshi,				Thanks for the docs on sound.

Alex Krasivsky,			He started the research on the NES-hardware.

Juan Antonio Gomez Galvez,	Thanks a lot, for hints on the code and stuff.

Firebug				Very good mapper doc.

D				Has done extensive research on mappers.


Thanks to all Amiga-Users.....
All who registered        Thanks alot for the moral support.
Specially to all who have payed for it:
Blonde Lion,
Martin Chantler,
SnuskBob,
Olov Sandell,
Björn Johansson,
Nikolaos Theologou,
Fredrik Eriksson,
Josef Andersson,
Robert Karlsson,
Peter Mattsson,
Carl Röjstrand,
Gouygou David,
Johan Eriksson,
Paul Murphy,
Marcus Johansson,
Lars-Erik Åström,
Daniel Beorchia,
Andreas Olsson,
Christopher Hart,
Jesper Klingvall,
Per-Ola Eriksson,
Peter Fischer,
David Ståhl,
Erik Dahlberg,
Niclas Aronsson,
Nicholas Nilsson,
Lennart Johannesson,
Kenneth Johannesson,
Johan Rönnblom,
Christian Andersson,
Nicola Filotto.

All the WarD-members.
Guru, for alwas wondering "how is it going with CoolNESs?" ;)
Tesla, for some crazy ideas for CoolNESs and help with the keyfile+GUI.
Ash, hopefully providing some gfx soon.
Axe, for being the best friend ever =)
xTs, code on man.
Classes, same to you, man.
CaB, for maintaining the @{B}WarD@{UB} homepage.
BluMental, for being a realy kewl dude.
$tud for making excelent music.

3LE, the kewlest elks in town :)

Spot/3LE, for always pestering me to make my Zelda-simulator ready.

Tomas Amsrud for the kewl icons and install script.

Ida Evertsson.

Nintendo???

More to come.......


@ENDNODE

@NODE "copyr" "Copyright"
    This guide and the executable CoolNESs-file is
    copyright 1997-1998 Fredrik Olsson. This is shareware so spread it as much
    as you like, non altered. But don't spread the keyfiles.

    This Software is provided "As is", so if your computer or anything
    else bursts into flames or starts leaking or anything else unpleasent
    happens and you think you can blame me, you'r wrong. You are responsible.
    Don't use this if you don't like it.

    This product may only be used on an Amiga compatible computer.

    It may not be sold for profit.
    If published on a coverdisc/cd with a magazine I would like a copy of
    the magazine or atleast be noticed about it.

    You are not allowed to use this software in the creation of weapons.
    
    If you cant read this text then you MUST ask a friend or
    a parent to read it for you  ;)

    If you happen to crack the keyfiles I would like one registered on me ;)


@ENDNODE

@NODE "author" "Contact Me"

    Sorry to say this but I've very little time for CoolNESs right now.
    The reason is that I'm living with my mother before I get my own apartment.
    And I have to go by bus to the jobb, wich means two hours without the
    computer =(



    EMail:
          flubba@hem2.passagen.se
          is9515@maskin.ing.hb.se

    HomePage:
          http://hem2.passagen.se/flubba/	(coolness.html)

    Mail:
          Fredrik Olsson
          Mellerudsgatan 11
          464 31 Mellerud
          Sweden

    Telephone:
          +46 (0)530-10557

    IRC:
          FluBBa


For registration see @{"Limitations" LINK "limits"}

@ENDNODE

@NODE "intro" "Introduction"


  I was looking for a cool NES-emulator but all around me was darkness. ;)

  Well it all started out a couple of years ago when I started on a Zelda-
  simulator, first we started recreating the graphics, and then some rutines
  but the more I coded the more I saw how much time this would take.
  So when I heard of Nes-emulator for the Amiga I thougt......

  Eeeh well at least I tried to think :)

  So here is the result of some weeks thinking and some weeks of coding.
  (Actully it begins to look like months now....)

  Zelda is working now! =)

  And it's coded in 100% assembler, sorry I don't know how to code C.
  The GUI is coded in C, but that's my friends (Peter Bengtsson) work.


                                @{B}CoolNESs!@{UB}



@ENDNODE

@NODE "usage" "Usage of CoolNESs"

	Remember to copy the tabs.gadget to SYS:Classes/Gadgets/ !!!

	Kind of simple actualy, just run it from cli or WB.
	Click Load and select a *.nes file and away you go.
	Now also takes an argument from cli (Good for DOpus =)?.


	Return or Yellow works as @{B}Start@{UB}.

	Right_Shift or Green works as @{B}Select@{UB}.

	Left_Alt, Fire1 or Red is @{B}B@{UB}.

	Left_Amiga, Left_Shift, Fire2 or Blue is @{B}A@{UB}.

	Arrow_Keys or joy is direction.


	@{B}F1@{UB} selects normal joy1.
	@{B}F2@{UB} selects CD32pad1.
	@{B}F3@{UB} selects MegaDrivepad1.		@{"What" LINK "MDPad"} do I need?
	@{B}F5@{UB} selects Zapper2 emulation with mouse2 (test).
	@{B}F6@{UB} turns on joy2.
	@{B}F7@{UB} selects CD32joy2 (not in function yet).
	@{B}Esc@{UB} or Play is used to Quit.
	@{B}F9@{UB} selects NMI-rate (slowmotion, some games work better).
	@{B}F10@{UB} or Forward+Backward is Reset.
	Keyboard1 is always connected to Input1.


	@{" Picture      " LINK "newkeys.iff/MAIN"}

@ENDNODE

@NODE "MDPad" "How to modify your MegaDrive gamepad."

	To make your MegaDrive pad work with CoolNESs (and Wzonka Lad)
	all you have to do is switch places on pin 5 and 7 on the pad.

	Easy? =)
	Okey, to make a short explanation long, here is the whole story.
	The Amigas joyport has 9 pins. 1 for ground and 1 for +5V, 4 for direction
	and 2 for firebuttons, so this leaves 1 pin left.
	So how can you get 1 pin to connect to 2 buttons? You use a multiplexer!
	This is what the MegaDrive does, it uses a 74HC157 to change wich buttons
	to check for. So the 2 pins that go to the firebuttons can actually
	adress 4 buttons, A B C Start.

	The only problem is that pin 7 on an Amiga is +5V, and on a MegaDrive
	this is pin 5.
	
	So all you have to do is to open up your MegaDrive pad and find cable
	7 and 5 and switch em round. This can require soldering, and if you'r
	not familiar with that, _DON'T TRY IT_. or you can, but I've warned you.
	I take no responsibility what so ever if something nasty should happen.
	There shouldn't be a problem though.

	Also check Aminet/util/libs/ControlPad.lha

@ENDNODE

@NODE "requirements" "Requirements of CoolNESs."

	To start the emulator you need AGA and a 68020 or better.
	Right now a PAL-monitor is required too. Maybe changes in the future.
	To get good speed (50fps) you will need a 25MHz+ processor
	and fast-mem. Many intros and some games still _only_ needs
	14MHz and fastmem for 50fps. You tell me if this is "fast".

	It needs a total of 200k chip and 250k any mem.
	Plus mem for the cartridge. Varys from 24k to 1M.

	A 2button+ joystick is nice but not necessary.

	If somebody thinks 500k chip is too much, then tell me,
	the next version will probably need that much to get rid of stupid
	flickering when scrolling over screens.

	A NES-rom would be fun also... =)
	And NO! I wont send any to you! Not if its Copyrighted.
	Just found out that ELITE is free to spread, too bad it doesnt
	work yet.

	Maybe I write a demo for the NES. :)

@ENDNODE

@NODE "future" "What to come in the future."

	There are a lot of things to come in the future.
	To bad I can't predict the future ;)

	XPK support.

	Better sound, support noise and PCM.

	NTSC/PAL selectable. Frequency and screenheight.

	Splitscreen.

	New mappertypes.

	Better sprites. Priority. (faster if its possible?).

	Cycle-count and system-screen to allow for real multitasking.
	And a non-AGA version???

	NES-DiskDrive???

	FamilyBasic Keyboard???

	Zapper, try F5 =)

	A kewl demo, to show off some gfx.

@ENDNODE

@NODE "history" "The history of CoolNESs"

	Ver 0.61    19 February 1998.
	Tweaked the sound a bit.
	Smal bugfixes to the GUI.

	Ver 0.60    15 February 1998.
	Added sound for unregistered users.
	Rewrote the CPU-core to handle memory mapping in realtime.
	Added mapper#34 (3D World Runner).
	Added mapper#19 (Splatter House).
	Removed mapper#16 as it was invalid.
	Added mapper#5 (CastleVania3).
	Fixed the VROM switching for mapper#4, #5 and #19 (faster).
	Rewrote some PPU,CPU and sprite code (Bubble Bobble2 a bit faster).
	Enhanced the sound-routines.
	Smal fixes to the GUI.

	Ver 0.59    10 December 1997.
	Added GUI.

	Ver 0.49    never released 17 November 1997.
	Added IRQ support for Mapper#4 (Batman3 & Jurassic Park doesn't lock up).
	Added 4player-addapter support.
	Fixed Mapper#1 a bit (Zelda2 now looks good).

	Ver 0.48    10 November 1997.
	Rewrote the keyboard-routine to use the OS.
	Fixed a bug in the PPU which caused many RARE-games to look strange.
	Added 4Screen VRam (Gauntlet works).
	Fixed a small bug when exited.
	Added Mapper#15 (100in1).

	Ver 0.47    3 November 1997.
	Added Mapper#16.
	Smal speedup in hardware access.
	Now doesn't quit till you cancel.
	Fixed Mapper#7 a bit.
	Added support for cli argument, now also finds the keyfile from cli.
	Fixed bugs in ASL-requester/prefs.
	Added support for modified Megadrive-pad.	Check @{"MegaDrivePad" LINK "MDPad"}


	Ver 0.46    12 October 1997.
	Now remembers the last directory.
	Small speedup in spriteroutines.
	Speedup in some Mapper#4 games.	
	Smal fixes to memoryhandling (no leaks).
	New MWB-icons by Tomas Amsrud.

	Ver 0.45    29 September 1997.
	Fixed the sprites! =)
	Minor speedup in the cpu routine SBC + memory access.

	Ver 0.441   14 September 1997.
	Fixed the mapper routine wich I screwed up in V0.44.

	Ver 0.44    11 September 1997.
	Added Mapper#4. Most Gfx seem okey now, no IRQ is supported yet.

	Ver 0.43    5 September 1997.
	Added CD32-joypad support.
	Fixed the keyboardhandler.
	Fixed dutycycles in sound(some games sound much better).

	Ver 0.42b   27 August 1997.
	Fixed backgroundcolour (again).
	Added Mapper#11.
	Major speed improvements.
	Turned of filters (will be selectable).
	Fixed border bug.
	Rewrote soundroutines.
        
	Ver 0.41b   11 August 1997.
	Added Keyfile support. Thanks to Blonde Lion. =)
	Rewrote some of the CPU emulation. Thanks to Juan Antonio Gomez.
	Added minimal soundsupport.

	Ver 0.40b   9 August 1997.
	Added 16pixel high sprites.
	Added battery save.
	Mapper#1 Partially working. Zelda, KidIcarus, Metroid, Castlevania2.
	Edited sprite-flag in PPUstatus register (again).
	Fixed the background-color.
	Minor update of the gfx&cpu-routines.

	Ver 0.39b   2 August 1997.
	Lowered vertical resolution.
	Fixed Mapper7 and Mapper9.
	(Have you seen the PunchOut-logo in Darkness?)

	Ver 0.38b   1 August 1997.
	Fixed sprite-flag in PPUstatus register (many more games work).

	Ver 0.37b   30 July 1997.
	Added First try on mapper9, Punch Out.
	Rewrote some cpu-routines (saved 10 cycles on rotate-left).
	Rewrote the gfx-routines (scrolling games faster).
	Added keyboard-support (not good but it works).
	No more NMI during MemSwapping, mapper2 works better.
	Moved gfx-routines out of the interupt. woops!
	Added First try on mapper7, Wizards&Warriors etc.
	Mapper3 changed to "Noncopying", pointer instead (faster).
	Added MemAlloc for CartSize.

	Ver 0.36b   17 July 1997.
	Added Asl-requester.
	Added RomInfo

	Ver 0.3 never released
	Fixed a groovy bug in the CPU-command SBC.

	Ver 0.2     never released
	Made screen-core.
	Made cpu-core.

	Ver 0.1     never released   29 June 1997
	Started on the concept of a NES-emulator.
	Downloaded Marats NES-Doc.

         
@ENDNODE

@NODE "limits" "Limitations."

	Are there Limitations!?!

	If you are unregistered there is a time limit of 10 minutes.
	You'll need a keyfile to unlook this limitation.
	No splitscreen.
	No noise or PCM sound.
	Some mappers still not emulated.


	This will change in the @{"Future" LINK "future"}, but I want your response.
	So if you want a full version then register.
	If you have a keyfile you have no time limit.
	This keyfile will work with all future versions of CoolNESs.

	And from now on it will cost $15/£12/100SeKr, cash please.
	Or if you have an old Nintendo game cartridge, I _may_ trade it for
	a keyfile, but then you _must_ contact @{"me" LINK "author"} first.
	Games I'd like:
	Metroid, RCProAm(2), CobraTriangle, TMNT(2), etc.


	Send your full name, _adress_ and money to:

	Fredrik Olsson
	Mellerudsgatan 11
	464 31 Mellerud
	Sweden

	You will need an email-adress to receive keyfile.
	or send me an error free disk plus $2/£2/10Skr or enough stamps.

@ENDNODE

@NODE "bugs" "BUGS!!!!"

	Are there @{B}BUGS!?!@{UB}

	The CPU-emulation may have some kind of bug.
	I Still have problems with the NMI+Mapper.
	Joy2 has problems with some games.
	The keyboard and joy seem to miss keys sometimes.


	Probably some more to....

	Check @{"Limitations" LINK "limits"} also.
	For Bugreports check @{"my adress" LINK "author"}.
	Remember to include computer plus processor info.
	Any patches. Rom + Wb info.
	I don't want any reports about games not working, or trashed
	graphics. I know about it.
	BUT! If you see a game with an unsupported mapper type, please
	contact me.

@ENDNODE

@NODE "Index"

   @{" Copyright    " LINK "copyr"}	Who owns this.
   @{" Introduction " LINK "intro"}	What is this anyway?
   @{" Requirements " LINK "requirements"}	What exactly do you need.
   @{" Usage        " LINK "usage"}	How to use this thingi.
   @{" The Future   " LINK "future"}	I see..... somethings.
   @{" History      " LINK "history"}	How it was before.
   @{" Limitations  " LINK "limits"}	The limits and what you can do about them!
   @{" Bugs         " LINK "bugs"}	Nasty little buggers.
   @{" Author       " LINK "author"}	Thats me, the man.
   @{" Thanks       " LINK "thanks"}	People I wanna thank.
   @{" MegaDrivepad " LINK "MDPad"}	How to modifi your MD-pad.
   @{" Picture      " LINK "CoolNESs.iff/MAIN"}	A nice CoolNESs logo.
   @{" Joy and keys " LINK "joy_keys.iff/MAIN"}	A help picture.


@ENDNODE
