CPS2 Emulator (C) 2001 ElSemi http://nebula.emulatronia.com NebulaEmu@myrealbox.com version 1.4 1.4 Some rom files has been renamed to match the latest CPS2MAME rom names. Ability to filter the game list. You can select if you want to seel all games, or only the available ones. Roms now aren't analyzed everytime Nebula starts. They are checked when romsets are changed or when you press the Rescan button in the OTHER config screen. Changed main 68000 core to Bart Trzynadlowski's Genital 68k, which is a bit faster than starscream, and has less bugs (perhaps none). Rewritten the layer 2 drawing code. Rowscrolling problems are almost fixed (only missing avsp intro). It has caused a small slowdown, but with the little speedup of the main core the speed should be the same as before. 19xx gfx problems fixed at last. If you use old savegames, then the problems will not be fixed until a stage change in the game. As some people has reported that the new gfx code (v1.3 and later) is slower than the older one (1.2 and before), then I've added the ability to use the old gfx code using the -oldgfx command line option. Sprite priority code has back to the original code that causes less gfx problems. Implemented sprite bankswitching (one of the still unemulated features of the cps2 hardware) Added PNG unfiltering modes (Sub,Up,Avg,Paeth). PNG files created with other tools should look right now. Fixed most Raster problems. Things look a lot better. Only remaining some sprite problems. Changed the Savegame format. Now the sound is correctly restored when loading a savegame. The old format is still recognized and loaded. Data files (configuration and savegames) are not encrypted anymore. If you want info about the format of these files, send me an E-mail. Fixed the "controller setting forgetting" bug. It's fixed now, but it requieres that you delete the old config files. Added the ability to save the controller data as the default mapping for games using the same button layout. GUI graphics can be changed (see -packgui option and the section below). 1.3 Fixed some rowscrolling problems (there are still many errors yet, but I know the cause) New sprite priority code. Now all seems ok. Added Auto Save/Load, that saves/load the game state on exit/entry. Screenshot format switched to PNG. (older shots are automatically converted) Frameskip value is stored. In the GUI you can draw the slider to move the list. Added wheel mouse support. Pause button mutes the sound. Changed the graphic modes for 19xx, now it's more "pixel perfect". A final comment, due to many questions I've received. The best sounding mode is Interpolated 22050 Hz (not 44100 Hz), this is due to the fact that the code is optimized for that mode and using higher frequencies result in a loss of sound quality. 1.2a (this version was a quick fix to play Powered Gear, but wasn't released. I prefer wait and release a version with more fixes) Emulated the math part of the graphics chip (used by Powered Gear) Increased the number of cheats per game (100 cheats, with 100 states per cheat and 32 values per state) 1.2 Rewritten the drawing routines. It should be faster now. Thanks Raz. Another try to solve the s3 graphics problem. Added again the Light Interpolation and Full Interpolation modes (use 640x480 res) Added some enhacement modes to 640x480 (scanlines and scanlines 50%) Added the ability to use the audio jukebox in games without decryption tables. Changed the naming of some romsets to be compatible with MAME ones. Added vsync option. Added 1280x960 resolution. 1.1 Raster effects!!. Preliminary. Some games have graphic glitches. Ssf2 y ssf2t work perfectly. Added the 400x300 and 640x400 resolutions. Fixed the crashes when using ALT-TAB to switch task. Added manual frameskip (keys + and -) Added command line options. Fixed problems with video cards that create non-linear surfaces (S3 Savage) (not fully fixed) Fixed the 3 punch in player 2 bug. Modified keypress detection. Now it's easy to make half circle moves. Added 2xSAI y Eagle. Removed the old interpolation modes. 1.0a Fixed win95 crashes 1.0 First version. Needs the romsets in a directory named ROMS or in the alternate specified. The romsets must be compressed in zip files. GAME LIST: Shows the available games. The color code is the following: White: Good romset. Yellow: Bad crc. Red: Missing files or different sizes. Blue: Missing decryption tables. You can load these games, but only Audio Jukebox will work. OPTIONS: VIDEO: Resolution: 400x300,640x400,640x480,800x600,1024x768. Image enhacement: Enhaces the image generated by the emulator. These modes are available in 800x600 and 1024x768. From slowest to fastest are: Hardware blit: Uses all hardware capabilities. Is the fastest. Scanlines: Show black lines between the image lines. This gives a more "real" feeling. (strecth 1.6x2) Software Stretch: Does the strecthing by software (1.6x2). Avoids the filtering in Geforce cards Scanlines 50%: The lines bewteen the image ones are less brighter. Even more real acrade feeling. (stretch 1.6x2) Light Interpolation: Does a 3x1 filtering to the image. Reduces pixelation (stretch 1.6x2) Full Interpolation: Does a 3x3 filtering. Reduces pixelation even more. Almost like Geforce filter. (stretch 1.6x2) 2xSAI: 2x Stretch and Interpolation. Eagle: Enhaces color areas and edges. Stretch: Stretchs the image to fit in the screen. VSync: Enables syncronization with the vblank. Prevents tearing. Surface allocation: Allows to select the memory where graphic surfaces are allocated. Video memory is faster but require enough video RAM. AUDIO: Sample rate: . 11025, 22050,44100. Recommended 22050 Hz. Interpolation: Enhaces sound quality, but requires more cpu power Audio mode: Directsound 2D: Uses standard directsound, and software mixing. Directsound 3D: Uses Directsound 3D interface to position the audio. Hardware mixing. Requires hardware capable of 3d sound acceleration and at least 16 channels. CONTROLS: Allows changing the controls. OTHER: Alternate rom directory: Allows an additional directory where to search for roms. Do not add the trailing backslash. GUI animations: Enables/disables animations in the gui. (for slow computers) COMMAND LINE: Call: Nebula [game] [options] game - Is the game used in the other options. If no options are specified, then the game is loaded and run. options - -log - Enable logging of errors in the file error.log -noraster - Disables raster effects. -list - Creates a file Gamelist.lst with all the supported games. -romdesc - Creates a file GameData.lst with the rom data of the selected game. -export - Creates a dat file in the ROMDATA directory with data from the selected game. -oldgfx - Uses the old gfx drawing code (v1.2 and before) -packgui - Builds a GUI.DAT file from a GUI.ZIP file. See below for details on this file. keys: 1 - start player 1 2 - start player 2 3 - start player 3 4 - start player 4 5 - coin player 1 6 - coin player 2 7 - coin player 3 8 - coin player 4 f1 - Service (add credits) f2 - Test (Configuration) f3 - Reset f4 - Cheat and region menu. f5 - Start/stop sound recording. Sounds are saved in the SHOTS directory. The filename is the game name+the actual code. f6 - Shows Audio Jukebox. It's recommended to enter in the test menu to use this feature because the game must continue running. f7 - Take a Screenshot (directory SHOTS) f8 - Shots Factory f9 - Profiler (shows fps, times and CPU usage) f10 - Save State f11 - Load State SCROLL LOCK - Removes Framelimit (max speed) PAUSA - Pauses emulator SPACE - Advances emulation while pressed while in pause mode. ENTER - Advances 1 frame while in pause mode (gfx rip ;) ) TAB - Enter/Exit in-game GUI + - Increase Frameskip - - Decrease Frameskip arrows - Movement player 1 A - Button 1 player 1 S D Z X C - Button 6 player 1 If you are reported some missing roms and you can't see what they are. Run Nebula with the -log option and read the file error.log generated after the loading. KNOWN PROBLEMS The sound causes frameskip sometimes. Graphics errors in 19xx (unknown reason) Graphics errors in xmvsf,msh (due to raster effects) ADDING ROMS You can add new romsets by creating files in the directory ROMDATA. The file structure is as follows: (ex: quiz nanairo dreams) The filename must be the romset name ending in .dat: qndream.dat And it's as follows: Quiz Nanairo Dreams Description Parent romset (Empty if there is no parent) tqzj.03,80000,7acf3e30 Program roms: name,size in hex,crc in hex tqzj.04,80000,f1044a87 tqzj.05,80000,4105ba0e tqzj.06,80000,c371e8a5 Blank line tqzjx.03,80000,5804a8f8 Decryption tables Blank line tqz.14,200000,98af88a2,800000 Graphics roms: tqz.16,200000,df82d491 name,size,crc,load address (optional) tqz.18,200000,42f132ff tqz.20,200000,b2e128a3 Blank Line tqz.01,20000,e9ce9d0a Z80 Roms Blank Line tqz.11,200000,78e7884f Sound roms tqz.12,200000,2e049b13 Blank Line 3 Controller type (see below) -1 Always a -1 in the last line These are the controller types: 0 - 2 Players standard. sfa,ssf2,msh, etc 1 - 3 Players. avp 2 - 4 Players. ddtod 3 - 2 Players Quiz Nanairo There is no need to add all the roms in games with a parent romset, only the different roms are needed (but the blank line separator must be present) If CRC is 0, it's not checked. The parser is very simple, so the file structure must be exactly as described, with no spaces or extra characteres. Graphics loading addresses must only appear (if needed) in the first ROM in each group of four. CHEATS Cheat files are stored in the CHEATS directory and have the same name as the romset they patch, ending in .dat. The structure is as follows: (ex: vsav.dat) [Region] Following are region codes 0=Japan,FF8090,0 Number=Description,address (hex),value(hex) [,address,value...] 1=USA,FF8090,2 2=Hispanic,FF8090,4 3=Oceania,FF8090,6 4=Asia,FF8090,8 5=Euro,FF8090,A 6=Brazil,FF8090,C [0] Cheat number (starting in 0) Name=Title Screen Cheat description 0=Vampire Savior,FF8088,0 Number=Description,address (hex),value(hex) [,address,value...] 1=Darkstalkers,FF8088,1 The numbers in the left must ve consecutive (starting in 0). Same with the cheat numbers. Addresses are the address in the 68000 memory map. You can only access ROM (0-0x3fffff) and RAM (0xFF0000-0xFFFFFF). You can specify up to 10 pairs of address-value per cheat. Tips on creating cheats and regions: Some games (new ones) have the region stored in the bytes C0-C4 in ROM area (the exact byte depends on the game). You can find the memory area where RAM and ROM are stored using a process patcher: Search for the words ROM ADDRESS and 16 bytes after the start of the phrase is the heap address You can also find the areas in the Heap by searching for the words "CPS2 RAM" and "CPS2 ROM" and inmediately after the M, the allocated area starts. MODIFYING NEBULA GUI Now you can modify the nebula GUI. You can change the background graphics and the buttons. You'll need 4 files (you can download the current gui files from the homepage): Pantalla.raw 640x480 - GUI background Botones.raw 400x300 - GUI Buttons Fondo.raw 640x480 - Rom loading background Logo.raw xxxxxxx - This file can't be changed All these files are RAW files. Using 3 bytes per pixel, in RGB format (interleaved). There is no header. You can use those parameters to open them in your favourite graphics program. There are some limitations to the graphics you can use. The background of the screenshot and options zone should be black, due to the animations using black to clear this zone. The entire gui.zip file can't be bigger than 2MB. If the logo.raw file is changed, Nebula will not run.