============================================
Nugen Arcade Game Emulator Version 0.4 Beta
============================================

Copyright (C) 2007 AamirM aka /
see "Credits" for more people		
		
	       "Congratulations! You have purchased an extremely fine
	device that would give you thousands of years of trouble-free 
	service, except	that you undoubtably will destroy it via some 
	typical bonehead consumer maneuver. Which is why we ask you
	to PLEASE FOR GOD'S SAKE READ THIS OWNER'S MANUAL CAREFULLY
	BEFORE YOU UNPACK THE DEVICE. YOU ALREADY UNPACKED IT, DIDN'T
	YOU? YOU UNPACKED IT AND PLUGGED IT IN AND TURNED IT ON AND 
	FIDDLED WITH THE KNOBS, AND NOW YOUR CHILD, THE	SAME CHILD WHO
	ONCE SHOVED A POLISH SAUSAGE INTO YOUR VIDEOCASSETTE RECORDER
	AND SET IT ON "FAST FORWARD", THIS CHILD ALSO IS FIDDLING
	WITH THE KNOBS, RIGHT?  AND YOU'RE JUST NOW STARTING TO READ 
	THE INSTRUCTIONS, RIGHT???  WE MIGHT AS WELL JUST BREAK THESE 
	DEVICES	RIGHT AT THE FACTORY BEFORE WE SHIP THEM OUT, YOU 
	KNOW THAT?" 
				-- Dave	Barry, "Read This First!"




*********************************** Big Fat Note ***********************************

Before reading please remember that this is still a beta version of Nugen.
There ARE bugs in it. I know many of them and haven't fixed them because either

* I don't know how to fix them.
* They break other stuff.
* I am too lazy.

The known bugs are listed in the "Bugs" section. If you think you caught a bug
and which is not in that section please report them so they can be fixed(if I can).
Comments, constructive critisism(how one can do that?), feature requests are highly 
welcomed but please do not ask about the future versions. See the "Help" section 
for troubleshooting. Also don't ask where to get the roms and/or the bios.

************************************************************************************

=== Legal ===

Nugen is Copyright (C) 2007, AamirM. All rights reserved.

You may use and/or redistribute Nugen provided that you :

1) Do not modify and/or alter, in any way, the files included.
2) You distribute all the files you got originally with Nugen.
3) You may not sell, lease, rent or otherwise seek to gain monetary profit from Nugen.
4) You may not distribute Nugen with ROM images unless you have the legal right to distribute them.
5) You may not use Nugen for commercial purposes.

DISCLAIMER: The author of Nugen doesn't guarantee its fitness for any purpose, implied or otherwise,
and do not except responsibility for any damages whatsoever that might occur when using Nugen. 
All games emulated by Nugen, including any images and sounds therein, are copyrighted by their 
respective copyright holders. Nugen DOES NOT INCLUDE any ROM images of emulated games.

=== Introduction ===

Nugen is a multiple arcade hardware emulator. Although it can only run some NeoGeo 
games right now, CPS-1 and CPS-2 support is underway and ZN-1, ZN-2 support is dreamed.
Thats all there is for now. More features will be added as I figure them out.

Nugen is written in 50% C++ and 50% unoptimized assembly. It can use three different
emulators for the M68000 emulation and Multi-Z80 for Z-80 emulation. The emu is not really very 
fast right now but that will change in future(I hope). Nugen is also designed to easily add other
arcade machines. It is not strictly tied to just 68000/Z80 based arcade machines as some of 
the other emulators.

Why another arcade emu?? Because I had nothing else to do and I was getting bored :-)

=== Games ===

Please see the "WhatsNew.txt" and "RomChanges.txt" for added drivers and games.
All romsets names are same as MAME's or WinKawaks'. Nugen can actually run many more games but 
I don't have them and have a slow internet so I hope you get the point. If you have(legally) nearly all 
NeoGeo,CPS1 and CPS2 rom dumps and want to see them supported and are willing to help please write to me.

=== System Requirements ===

Operating System:   Windows XP or higher (crashes on Win2k probably because of using an API not present in it).

CPU:                Pentium compatible 500 Mhz minimum. About 1 Ghz for fullspeed.

RAM:                128 MB minimum. 256 MB for fullspeed.

Video:              16 and 32 BPP displays supported only. Should run faster on 32 BPP display.
                    DirectX 7 or higher required.
			
Input:              Keyboard.

=== Usage ===

Launch "Nugen.exe". Setup the paths from the "File" menu. Make sure you have the nesseccary bios files
in the same paths. Roms must be zipped. The rest should be obvious.

=== Keys ===

  P1 Coin:  	 F3
  P1 Start: 	 F1
  P1 Up:    	 Up
  P1 Down:  	 Down
  P1 Left:  	 Left
  P1 Right: 	 Right
  P1 Button 1:   A
  P1 Button 2:   S
  P1 Button 3:   D
  P1 Button 4:   F
  
  Reset Game:	 R
  Pause:         P
  
No support to change key settings right now. Eat me :-)

=== Help ===

* If you try to load a game and Nugen quits like an ass, its most probably due to one of the following :
  
  1) The romset is incorrect.
  2) No or wrong NeoGeo bios.
  3) Some roms in a romset are right some are wrong.
  4) Your system does not fulfill the system requirements.
  
* Nugen will autodetect whether to use Video or System memory. If the game looks squary its most probably
  that you have outdated video card drivers or you don't have a video card at all! Please install the
  latest video drivers and/or a video card :-). You can also set this option from "Nugen.cfg" file.
  
* If games run slow, try disabling the sound, disable autoframeskip(if enabled, as it overrides user defined
  frameskip) and try with different frameskip options. Also make sure that you are not using the profiler
  version("Tools->Show emulator performace" grayed out) of Nugen as it adds extra overhead of gathering 
  performance data. Also make sure you are using A68K core.
  
* If the sound gets choppy pause and then resume(by pressing 'P' twice) the game. This might fix the it.

If the problems still persists please write to me.

=== Bugs ===

The following are the current known bugs and limitations in Nugen :

* No support for encrypted Neogeo romsets.
* Very less games supported because I couldn't get my hands on the other games legally.
  But if you own legal romsets, you can help me. If you want to help, send me a mail telling me
  what romsets you have.
* Few games run incorrectly using Starscream(mslugx, bjourney, lastbld2 intro etc..).
* Its not much fast. Thats because I have not optimized ANYTHING. And the code I've written is super crap.
* It may be inaccurate.
* Sound emulation is not good. Sometimes the timers sync is out and you'll hear a loud buzzing,
  choppy, noisy sound and it will feel like thousands of fingers are scratching your brain.
  So please do read the "DISCLAIMER" because I can't be held resposible if you throw your
  monitor at your speakers when you hear that sound. ;-)
* Nugen will crash sometimes while exiting.
* Fullscreen is just a maximized borderless window with no title bar. Its what I like to call fullscreen effect.
  Things like triple buffering is not possible with this scheme. This will change in future(I hope).
* Autoframeskip is really crap and slow. I recommend to use a fixed frameskip than using autoframeskip.
* Cheats support not good also and no support for the "Default" keyword. The cheats support code is the cause
  of 75% of the problems with Nugen.
* Nugen will crash if you try to launch performance dialog while video memory is not used.

=== Credits ===

I would like to thank the following, without them Nugen would not have been possible:

- MAME for lots of internal knowledge of the arcade machines(who says it isn't educational).
  This is the only product I can think of which most people use because of its side effect(which is to play games).

- Neill Corlett(corlett@elwha.nrrc.ncsu.edu) for his Starscream 680x0 emulator. I modified it a bit to
  add PC relative addressing mode and use MSVC(and GNU) fastcall convention.

- Karl Stenerud for MUSASHI, Motorola M680x0 CPU emulator. Copyright 1998-2001 Karl Stenerud.
  A special thanks again goes to him for making the invaluable 68k disassembler!

- Mike Coates and Darren Olafson for their great and very fast A68K emulator.

- Neil Bradley for his Multi-Z80 CPU emulator. Copyright 1996 - 2000 Neil Bradley.

- Jarek Burczynski, Tatsuyuki Satoh & Hiromitsu Shioya for their YM2610 sound core.

- Ville Hallik, Michael Cuddy, Tatsuyuki Satoh(again), Fabrice Frances, Nicola Salmoria for their AY-3-8910 core.

- Final Burn Alpha, WinKawaks, Nebula, Callus, Callice and NeoRAGEX for inspiraion.

- the ZLIB team and its contributors for their excellent compression(and decompression) library.

- Microsoft(R) for making their excellent compilers and IDE free.

- GNU for lots of free and excellent opensource tools and utilities especially GCC and GDB.

- Sun Microsystems for making their excellent Solaris operating system free and opensource.
  (Nugen was first targeted to run on this operating system and may be in future will be available on it!)
  
- Developers of NASM for an excellent free assembler.

- Developers of MinGW for porting lots of useful GNU tools to Windows.

- Redhat for their powerful Source-Navigator program.

- UPX developers for their excellent compression utility.

and everyone I forgot. And yeah, PTCL(Pakistan TeleCommunication Limited) too for cutting my 
telephone line so I could not use the internet for about two months and code this emulator, instead
of wasting my time on useless stuff on the internet.

=== Misc. Info ===

* Renaming the rom files to correct names will result in reduced load times
  as it bypasses searching by CRC stage. Using a utility like CLRMamepro, ROMCenter etc.
  to rename the files is highly recommened. You can use the MAME, WinKawaks, Nebula,
  Final Burn Alpha datfiles to rename the rom files. Nugen is also capable of generating
  CLRMamePro datfile(but maybe incorrect).
  
* If you have a game that works in NeoRageX but not in Nugen due to CRC error then you
  might still be able to run it. All you have to do is rename the rom file to standard name.
  For example "kof96_c1.rom" to "214-c1.bin". This will cause Nugen to not check the CRC 
  and the game may run :-).
  
* You can change the main screen image of Nugen by putting a 384x224 sized bitmap(.bmp) image
  file in the same loaction as the Nugen binary. Images of other sizes will not display properly.
  
* If "Default" keyword is present in a cheat file, Nugen will load cheats only upto there. 
  Although this keyword helps if you don't want to set cheats yourself everytime but if 
  you don't use it for that purpose then you can remove it.(the whole line like "Default=xx")
  
=== Contact ===

My email address is

aamir (dot) m (at) host (dot) com

where host = live

But please note that:

* I will only accept emails regarding emulation only. Be it Nugen, CPU, arcade, console etc.
* I like to hear from other people also writing their own emus. Be it Nugen, CPU, arcade, console etc.

=== End ===
