| 1 | FCE Ultra |
| 2 | 0.81 |
| 3 | |
| 4 | http://fceultra.sourceforge.net/ |
| 5 | |
| 6 | |
| 7 | What is new: |
| 8 | |
| 9 | * Screen snapshots can now be taken while playing an NSF. |
| 10 | * Saving screen snapshots will no longer corrupt the frame buffer. |
| 11 | * Added many more games to the list of games that usually are found |
| 12 | with bad iNES headers. |
| 13 | * Fixed more network play bugs. It should now work correctly(how |
| 14 | many times have I said or implied that...). |
| 15 | * The NSF player will now disable the FDS sound channel on song |
| 16 | initialization(fixes a problem with the Zelda no Densetsu |
| 17 | rip). |
| 18 | * Reads from $4090 and $4092 while emulating the FDS will now return |
| 19 | the current envelope settings. Affects "Ai Senshi Nicole" |
| 20 | and "Bio Miracle Bokutte Upa", at least. |
| 21 | * Merged a lot of pirate MMC3 multicart emulation code with the main |
| 22 | MMC3 emulation code. |
| 23 | * Added support for the MMC5's split-screen mode. This fixes the |
| 24 | introduction in "Uchuu Keibitai SDF". |
| 25 | * Writes to $8000-$FFFF with D7 set during MMC1 emulation will |
| 26 | cause the MMC1 mode register to be OR'd with $C. This fixes |
| 27 | "Robocop 3". |
| 28 | * Replaced an MMC1 hack that I used to get "Bill and Ted's Excellent |
| 29 | Video Game Adventure" to work with something more accurate. |
| 30 | * Fixed the MMC5 read handler to return the data last on the data |
| 31 | bus instead of $FF when a read occured to an unmapped address. |
| 32 | This fixes the lockup problem in "Bandit Kings of Ancient China" |
| 33 | and possibly other games. |
| 34 | * Added support for the game "Ishin no Arashi" in the iNES format |
| 35 | (I added an entry with its CRC32 value and the number of 8KB |
| 36 | WRAM banks it needs into the MMC5 WRAM size table). |
| 37 | * Added support for MMC1 games in the iNES format with 16KB of RAM |
| 38 | via CRC32 comparisons(currently only Genghis Khan(USA), Romance |
| 39 | of the 3 Kingdoms(USA), and Nobunaga's Ambition(USA and Japan) are |
| 40 | recognized). |
| 41 | * iNES mapper 1 now supports pageable CHR RAM if CHR ROM is not |
| 42 | present. Fixes "Family School". |
| 43 | * Added support for iNES mappers 51 and 52. Thanks to Kevin Horton |
| 44 | for the information. |
| 45 | * Modified MMC3(iNES mapper 4/118/119) IRQ counter emulation. Fixes |
| 46 | problems in "MegaMan 3", "Gun Nac", and the Japanese version of |
| 47 | "Klax", but it *might* cause problems with other games. |
| 48 | * Fixed an iNES mapper 32 emulation bug. "Ai Sensei no Oshiete" |
| 49 | works now. |
| 50 | * Fixed iNES mapper 33/48 IRQ emulation. |
| 51 | * Fixed iNES mapper 16 IRQ emulation. |
| 52 | * Added support for "Famicom Jump 2" as iNES mapper 153. |
| 53 | If a good(as far as I can tell) dump is loaded, FCE Ultra will |
| 54 | automatically fix the mapper number. |
| 55 | * The VS Unisystem bit in iNES headers is no longer recognized. |
| 56 | Too many games have this bit set when it shouldn't be set. |
| 57 | Now VS Unisystem games are recognized by CRC32 value. |
| 58 | * Reads from $4015 no longer reset DMC IRQ. This fixes the |
| 59 | title screen of "Romancia". |
| 60 | * PPU NMI now occurs a few cycles later. Fixes the "BattleToads" |
| 61 | lockup problem. |
| 62 | * BRK emulation now sets the I flag. |
| 63 | * Changed a few zero-page address mode functions to read directly |
| 64 | from emulated RAM. |
| 65 | * Added a new video mode(256x224 at a refresh rate of 103 Hz). |
| 66 | * Increased the refresh rate of video mode 2 to 65 Hz. |
| 67 | * Increased the refresh rate of video mode 3 to 120 Hz. |
| 68 | * Added speed throttling used when sound is disabled, and a |
| 69 | command-line switch to control it. |
| 70 | |
| 71 | |
| 72 | |
| 73 | Contents: |
| 74 | |
| 75 | 1. Basic information |
| 76 | 1.0 What FCE Ultra is. |
| 77 | 1.1 System requirements. |
| 78 | 2. How to use |
| 79 | 2.0 Starting FCE Ultra |
| 80 | 2.1 Using FCE Ultra |
| 81 | 3. Notes |
| 82 | 3.0 Platform Specific Notes |
| 83 | 3.1 Network Play Notes |
| 84 | 3.2 VS Unisystem Notes |
| 85 | 3.3 Famicom Disk System Notes |
| 86 | 3.4 Light Gun Notes |
| 87 | 3.5 Palette Notes |
| 88 | 3.6 Compressed File Notes |
| 89 | 3.7 Game Genie Notes |
| 90 | 4. Extra |
| 91 | 4.0 Contacting the author |
| 92 | 4.1 Credits |
| 93 | |
| 94 | /******************************************************************************/ |
| 95 | /* 1.0) What FCE Ultra is: */ |
| 96 | /******************************************************************************/ |
| 97 | |
| 98 | FCE Ultra is an NTSC and PAL Famicom/NES emulator for various |
| 99 | platforms. It is based upon Bero's original FCE source code. Current |
| 100 | features include good PPU, CPU, pAPU, expansion chip, and joystick |
| 101 | emulation. Also a feature unique to this emulator(at the current |
| 102 | time) is authentic Game Genie emulation. Save states and snapshot |
| 103 | features also have been implemented. The VS Unisystem is emulated |
| 104 | as well. FCE Ultra supports iNES format ROM images, UNIF format ROM |
| 105 | images, headerless and FWNES style FDS disk images, and NSF files. |
| 106 | |
| 107 | FCE Ultra currently supports the following iNES mappers(many partially): |
| 108 | |
| 109 | Number: Description: Game Examples: |
| 110 | -------------------------------------------------------------------------------- |
| 111 | 0 No Mapper Donkey Kong, Mario Bros |
| 112 | 1 Nintendo MMC1 MegaMan 2, Final Fantasy |
| 113 | 2 Simple 16KB PRG Switch MegaMan 1, Archon, 1944 |
| 114 | 3 Simple 8KB CHR Switch Spy Hunter, Gradius |
| 115 | 4 Nintendo MMC3 Recca, TMNT 2, Final Fantasy 3 |
| 116 | 5 Nintendo MMC5 Castlevania 3, Just Breed, Uchuu Keibitai SDF |
| 117 | 6 FFE F4 Series(hacked) Saint Seiya, Ganbare Goemon |
| 118 | 7 AOROM Battle Toads, Lion King |
| 119 | 8 FFE F3 Series(hacked) Doraemon Kaitakuhen |
| 120 | 9 Nintendo MMC2 Punchout! |
| 121 | 10 Nintendo MMC4 Fire Emblem, Fire Emblem Gaiden |
| 122 | 11 Color Dreams Crystal Mines, Bible Adventures |
| 123 | 13 CPROM Videomation |
| 124 | 15 Multi-cart(pirate) 100-in-1: Contra Function 16 |
| 125 | 16 Bandai Dragon Ball Z, Gundam Knight |
| 126 | 17 FFE F8 Series(hacked) Parodius, Last Armageddon |
| 127 | 18 Jaleco SS806 Pizza Pop, Plazma Ball |
| 128 | 19 Namco 106 Splatter House, Mappy Kids |
| 129 | 21 Konami VRC4 2A WaiWai World 2, Ganbare Goemon Gaiden 2 |
| 130 | 22 Konami VRC4 1B Twinbee 3 |
| 131 | 23 Konami VRC2B WaiWai World, Getsufuu Maden |
| 132 | 24 Konami VRC6 Akumajo Densetsu(Dracula 3) |
| 133 | 25 Konami VRC4 Gradius 2, Bio Miracle: Boku tte Upa |
| 134 | 26 Konami VRC6 A0-A1 Inverse Esper Dream 2, Madara |
| 135 | 32 Irem G-101 Image Fight 2, Perman |
| 136 | 33 Taito TC0190/TC0350 Don Doko Don 1&2 |
| 137 | 34 NINA-001 and BNROM Impossible Mission 2, Deadly Towers, Bug Honey |
| 138 | 40 (pirate) Super Mario Bros. 2 |
| 139 | 41 Caltron 6-in-1 Caltron 6-in-1 |
| 140 | 42 (pirate) "Mario Baby" |
| 141 | 43 Multi-cart(pirate) Golden Game 150 in 1 |
| 142 | 44 Multi-cart(pirate) Super HiK 7 in 1 |
| 143 | 45 Multi-cart(pirate) Super 1000000 in 1 |
| 144 | 46 Game Station Rumble Station |
| 145 | 47 NES-QJ Nintendo World Cup/Super Spike V.B. |
| 146 | 48 Taito TC190V Flintstones |
| 147 | 49 Multi-cart(pirate) Super HiK 4 in 1 |
| 148 | 51 Multi-cart(pirate) 11 in 1 Ball Games |
| 149 | 52 Multi-cart(pirate) Mario Party 7 in 1 |
| 150 | 64 Tengen RAMBO-1 Shinobi, Klax |
| 151 | 65 Irem H-3001 Daiku no Gensan 2 |
| 152 | 66 GNROM SMB + Duck Hunt |
| 153 | 67 Sunsoft Mapper "3" Fantasy Zone 2 |
| 154 | 68 Sunsoft Mapper "4" After Burner 2, Nantetta Baseball |
| 155 | 69 Sunsoft FME-7 Batman: ROTJ, Gimmick! |
| 156 | 70 ?? Kamen Rider Club |
| 157 | 71 Camerica Fire Hawk, Linus Spacehead |
| 158 | 72 Jaleco ?? Pinball Quest |
| 159 | 73 Konami VRC3 Salamander |
| 160 | 75 Jaleco SS8805/Konami VRC1 Tetsuwan Atom, King Kong 2 |
| 161 | 76 Namco 109 Megami Tenshi 1 |
| 162 | 77 Irem ?? Napoleon Senki |
| 163 | 78 Irem 74HC161/32 Holy Diver |
| 164 | 79 NINA-06 F15 City War, Krazy Kreatures |
| 165 | 80 Taito X-005 Minelvation Saga |
| 166 | 82 Taito ?? Kyuukyoku Harikiri Stadium - Heisei Gannen Ban |
| 167 | 83 Multi-cart(pirate) Dragon Ball Party |
| 168 | 85 Konami VRC7 Lagrange Point |
| 169 | 86 Jaleco ?? More Pro Baseball |
| 170 | 87 ?? Argus |
| 171 | 89 Sunsoft ?? Mito Koumon |
| 172 | 90 Pirate Super Mario World, Mortal Kombat |
| 173 | 92 Jaleco ?? MOERO Pro Soccer, MOERO Pro Yakyuu '88 |
| 174 | 93 ?? Fantasy Zone |
| 175 | 94 ?? Senjou no Ookami |
| 176 | 95 Namco ?? Dragon Buster |
| 177 | 97 ?? Kaiketsu Yanchamaru |
| 178 | 99 VS System 8KB CHR Switch VS SMB, VS Excite Bike |
| 179 | 105 NES-EVENT Nintendo World Championships |
| 180 | 112 Asder Sango Fighter, Hwang Di |
| 181 | 113 MB-91 Deathbots |
| 182 | 118 MMC3-TLSROM/TKSROM Board Ys 3, Goal! 2, NES Play Action Football |
| 183 | 119 MMC3-TQROM Board High Speed, Pin*Bot |
| 184 | 140 Jaleco ?? Bio Senshi Dan |
| 185 | 151 Konami VS System Expansion VS The Goonies, VS Gradius |
| 186 | 152 ?? Arkanoid 2, Saint Seiya Ougon Densetsu |
| 187 | 153 Bandai ?? Famicom Jump 2 |
| 188 | 180 ?? Crazy Climber |
| 189 | 182 ?? Super Donkey Kong |
| 190 | 184 ?? Wing of Madoola, The |
| 191 | 189 Micro Genius TXC ?? Thunder Warrior |
| 192 | 225 Multi-cart(pirate) 58-in-1/110-in-1/52 Games |
| 193 | 226 Multi-cart(pirate) 76-in-1 |
| 194 | 227 Multi-cart(pirate) 1200-in-1 |
| 195 | 228 Action 52 Action 52, Cheetahmen 2 |
| 196 | 229 Multi-cart(pirate) 31-in-1 |
| 197 | 232 BIC-48 Quattro Arcade, Quattro Sports |
| 198 | 234 Multi-cart ?? Maxi-15 |
| 199 | 240 ?? Gen Ke Le Zhuan, Shen Huo Le Zhuan |
| 200 | 242 ?? Wai Xing Zhan Shi |
| 201 | 246 ?? Fong Shen Ban |
| 202 | 248 ?? Bao Qing Tian |
| 203 | 250 ?? Time Diver Avenger |
| 204 | |
| 205 | FCE Ultra currently supports the following UNIF boards(minus the |
| 206 | prefixes HVC-, NES-, BTL-, and BMC-, as they are currently ignored): |
| 207 | |
| 208 | Group: Name: Game Examples: |
| 209 | -------------------------------------------------------------------------------- |
| 210 | Bootleg: |
| 211 | MARIO1-MALEE2 Super Mario Bros. Malee 2 |
| 212 | NovelDiamond9999999in1 Novel Diamond 999999 in 1 |
| 213 | Super24in1SC03 Super 24 in 1 |
| 214 | Supervision16in1 Supervision 16-in-1 |
| 215 | |
| 216 | Unlicensed: |
| 217 | Sachen-8259A Super Cartridge Version 1 |
| 218 | Sachen-8259B Silver Eagle |
| 219 | Sachen-74LS374N Auto Upturn |
| 220 | SA-016-1M Master Chu and the Drunkard Hu |
| 221 | SA-72007 Sidewinder |
| 222 | SA-72008 Jovial Race |
| 223 | SA-0036 Mahjong 16 |
| 224 | SA-0037 Mahjong Trap |
| 225 | TC-U01-1.5M Challenge of the Dragon |
| 226 | |
| 227 | MMC1: |
| 228 | SAROM Dragon Warrior |
| 229 | SBROM Dance Aerobics |
| 230 | SCROM Orb 3D |
| 231 | SEROM Boulderdash |
| 232 | SGROM Defender of the Crown |
| 233 | SKROM Dungeon Magic |
| 234 | SLROM Castlevania 2 |
| 235 | SL1ROM Sky Shark |
| 236 | SNROM Shingen the Ruler |
| 237 | SOROM Nobunaga's Ambition |
| 238 | |
| 239 | MMC3: |
| 240 | TFROM Legacy of the Wizard |
| 241 | TGROM Megaman 4 |
| 242 | TKROM Kirby's Adventure |
| 243 | TKSROM Ys 3 |
| 244 | TLROM Super Spike V'Ball |
| 245 | TLSROM Goal! 2 |
| 246 | TR1ROM Gauntlet |
| 247 | TQROM Pinbot |
| 248 | TSROM Super Mario Bros. 3 |
| 249 | TVROM Rad Racer 2 |
| 250 | |
| 251 | MMC5: |
| 252 | EKROM Gemfire |
| 253 | ELROM Castlevania 3 |
| 254 | ETROM Nobunaga's Ambition 2 |
| 255 | EWROM Romance of the Three Kingdoms 2 |
| 256 | |
| 257 | MMC6: |
| 258 | HKROM Star Tropics |
| 259 | |
| 260 | Nintendo |
| 261 | discrete |
| 262 | logic: |
| 263 | CNROM Gotcha |
| 264 | CPROM Videomation |
| 265 | MHROM |
| 266 | NROM-128 Mario Bros. |
| 267 | NROM-256 Super Mario Bros. |
| 268 | RROM-128 |
| 269 | UNROM Megaman |
| 270 | |
| 271 | |
| 272 | /******************************************************************************/ |
| 273 | /* 1.1) System requirements: */ |
| 274 | /******************************************************************************/ |
| 275 | |
| 276 | Minimum system requirements: |
| 277 | |
| 278 | Pentium 60 MHz |
| 279 | 8 MB RAM |
| 280 | 400 KB free disk space |
| 281 | Linux 2.0.36 |
| 282 | VGA adapter |
| 283 | |
| 284 | Recommended system specifications(at least): |
| 285 | |
| 286 | Pentium 233 MHz |
| 287 | 16 MB RAM |
| 288 | 5 MB free disk space |
| 289 | Linux 2.2.x |
| 290 | SVGA adapter with 512 KB of RAM |
| 291 | Sound device capable of handling a sample rate of about 44100 hz. |
| 292 | |
| 293 | |
| 294 | /******************************************************************************/ |
| 295 | /* 2.0) Starting FCE Ultra */ |
| 296 | /******************************************************************************/ |
| 297 | |
| 298 | Start FCE Ultra using the following format: |
| 299 | |
| 300 | ./fceu <arguments> romimage.nes |
| 301 | |
| 302 | <arguments> can be one or more of the following: |
| 303 | |
| 304 | -vmode x Select video mode(all are 8 bpp). |
| 305 | 1 = 256x240 @ 72 hz <Default> |
| 306 | 2 = 256x256 @ 65 hz |
| 307 | 3 = 256x256(with scanlines) @ 120 hz |
| 308 | 4 = 640x480(with scanlines) |
| 309 | 5 = 640x480("1 per 4") |
| 310 | 6 = 256x224(with scanlines) @ 120 hz |
| 311 | 7 = 320x240 |
| 312 | 8 = 256x224 @ 103 hz |
| 313 | -vsync x Wait for the screen's vertical retrace before updating |
| 314 | the screen. If you have sound enabled and enable this, |
| 315 | you may have to increase the number of sound fragments |
| 316 | from the default of 8, to reduce buffer underruns. |
| 317 | Buffer underruns will not be preventable if the |
| 318 | current video refresh rate is < ~60 hz (or < ~50 hz |
| 319 | if PAL emulation is enabled). |
| 320 | 0 = Disabled. <Default> |
| 321 | 1 = Enabled. |
| 322 | -cpalette x Load a custom global palette from file x. |
| 323 | The filename x is saved in the configuration file, |
| 324 | not the data from the file. Note that you should |
| 325 | probably use an absolute("/home/jp/test.pal") filename |
| 326 | rather than a relative("test.pal") filename. If x is 0, |
| 327 | the default (built in) global palette will be used. |
| 328 | -ntsccol Emulate an NTSC's TV's colors based on user-supplied |
| 329 | hue and tint values. |
| 330 | 0 = Disabled. <Default> |
| 331 | 1 = Enabled. |
| 332 | -sound x Sound. <Default=48000> |
| 333 | 0 = Disabled. |
| 334 | Otherwise, x = playback rate in samples per second. |
| 335 | -soundvol x Sound volume. x is an integral percentage value. |
| 336 | The default value is, obviously, 100. |
| 337 | Setting it higher will increase the likelihood that |
| 338 | sound clipping will occur. This shouldn't be noticeable |
| 339 | if the volume is reasonable(200% or lower; perhaps even |
| 340 | higher for many games). |
| 341 | -sfragsize x Set sound fragment size to 2^x(2 to the power of x) |
| 342 | SAMPLES. The default value is 7. |
| 343 | -snfrags x Set number of sound fragments to x. The default value |
| 344 | is 8. |
| 345 | -f8bit x Force 8-bit sound. Enabling this will decrease |
| 346 | sound quality noticeably without increasing |
| 347 | performance noticeably. Only use when 16-bit sound |
| 348 | is problematic. |
| 349 | 0 = Disabled. <Default> |
| 350 | 1 = Enabled. |
| 351 | -nothrottle x Disables speed throttling used when sound is disabled |
| 352 | if x is non-zero. The default value of x is 0. |
| 353 | -joyx y Joystick mapped to virtual joystick x(1-4). |
| 354 | 0 = Disabled, reset configuration. <Default> |
| 355 | Otherwise, y(1-inf) = joystick number. |
| 356 | -inputx str Select device mapped to virtual NES-style input port |
| 357 | x(1-2). |
| 358 | The default for both virtual input ports is "gamepad". |
| 359 | str may be: none, gamepad, zapper, powerpada, |
| 360 | powerpadb, arkanoid |
| 361 | -fcexp str Select Famicom expansion port device. If you select |
| 362 | a device other than "none", you should enable the |
| 363 | "gamepad" on both NES-style virtual input ports. |
| 364 | The default is "none". |
| 365 | str may be: none, shadow, arkanoid, 4player, fkb |
| 366 | -nofs x Disables Four-Score emulation if x is 1. Default is 0. |
| 367 | Note that Four-Score emulation will only be active |
| 368 | if "gamepad" is mapped to one or both virtual input |
| 369 | ports. |
| 370 | -gg Enable Game Genie emulation. |
| 371 | -pal Emulate a PAL NES. |
| 372 | -no8lim x Disables the 8 sprites per scanline limitation. |
| 373 | 0 = Limitation enabled. <Default> |
| 374 | 1 = Limitation disabled. |
| 375 | -subase x Save extra game data files(such as battery-backed RAM) |
| 376 | under the base directory if enabled. |
| 377 | 0 = Disabled. <Default> |
| 378 | 1 = Enabled. |
| 379 | -snapname x Selects what type of file name screen snapshots will |
| 380 | have. |
| 381 | 0 = Numeric(0.png) <Default> |
| 382 | 1 = File base and numeric(mario-0.png) |
| 383 | -clipsides x Clip leftmost and rightmost 8 columns of pixels of |
| 384 | video output. |
| 385 | 0 = Disabled. <Default> |
| 386 | 1 = Enabled. |
| 387 | -slstart x Set the first drawn emulated scanline for NTSC emulation |
| 388 | mode. Valid values for x are 0 through 239. |
| 389 | The default value is 8. |
| 390 | -slend x Set the last drawn emulated scanline for NTSC emulation |
| 391 | mode. Valid values for x are 0 through 239. |
| 392 | The default value is 239. |
| 393 | -slstartp x Set the first drawn emulated scanline for PAL emulation |
| 394 | mode. Valid values for x are 0 through 239. |
| 395 | The default value is 0. |
| 396 | -slendp x Set the last drawn emulated scanline for PAL emulation |
| 397 | mode. Valid values for x are 0 through 239. |
| 398 | The default value is 239. |
| 399 | -connect s Connect to server 's' for TCP/IP network play. |
| 400 | -server Be a host/server for TCP/IP network play. |
| 401 | -netport x Use TCP/IP port x for network play. The default |
| 402 | port is 4046. |
| 403 | /******************************************************************************/ |
| 404 | /* 2.1) General Keyoard Key Mapping: */ |
| 405 | /******************************************************************************/ |
| 406 | |
| 407 | Default Key Mapping: |
| 408 | |
| 409 | For emulated Family BASIC Keyboard: |
| 410 | Enable/Disable Keyboard Input Scroll Lock |
| 411 | (enabling emulated keyboard input will disable |
| 412 | commands keys) |
| 413 | All emulated keys are mapped to the closest open key on the PC |
| 414 | keyboard, with a few exceptions. The emulated "@" key is |
| 415 | mapped to the "`"(grave) key, and the emulated "kana" key |
| 416 | is mapped to the "Insert" key(in the 3x2 key block above the |
| 417 | cursor keys). |
| 418 | |
| 419 | For emulated game pads: |
| 420 | Left Control B |
| 421 | Left Alt A |
| 422 | Enter/Return Start |
| 423 | Tab Select |
| 424 | Cursor Down Down |
| 425 | Cursor Up Up |
| 426 | Cursor Left Left |
| 427 | Cursor Right Right |
| 428 | |
| 429 | For emulated power pads(keys correspond to button locations on |
| 430 | side "B"): |
| 431 | O P [ ] |
| 432 | K L ; ' |
| 433 | M , . / |
| 434 | |
| 435 | For FDS games: |
| 436 | I Insert disk. |
| 437 | E Eject disk. |
| 438 | S Select disk/disk side. |
| 439 | |
| 440 | For VS Unisystem games: |
| 441 | C Insert coin. |
| 442 | V Show/Hide dip switches. |
| 443 | 1-8 Toggle dip switches(when dip switches |
| 444 | are shown). |
| 445 | |
| 446 | T Select tint to adjust. |
| 447 | H Select hue to adjust. |
| 448 | +/- Increase/decrease tint or hue. |
| 449 | |
| 450 | 0-9 Select save state. |
| 451 | Caps Lock Select virtual joystick. |
| 452 | |
| 453 | F2 Activate cheat interface. |
| 454 | |
| 455 | F3 Lock virtual console. |
| 456 | F4 Unlock virtual console. |
| 457 | |
| 458 | F5/F7 Save/Load state. |
| 459 | F9 Save screen snapshot. |
| 460 | F10 Reset. |
| 461 | F11 Power off/on. |
| 462 | ESC/F12 Exit. |
| 463 | |
| 464 | |
| 465 | /******************************************************************************/ |
| 466 | /* 3.0) Platform Specific Notes */ |
| 467 | /******************************************************************************/ |
| 468 | |
| 469 | 1. FCE Ultra uses SVGAlib, so you'll obviously need to have it |
| 470 | installed. |
| 471 | |
| 472 | 2. Be careful when using the non-VGA video modes(such as 640x480). |
| 473 | SVGAlib doesn't always handle virtual terminal switching well when |
| 474 | one of these modes is being used. Also, since FCE Ultra enables a |
| 475 | a linear frame buffer for these modes, heed this warning from |
| 476 | the SVGAlib documentation: |
| 477 | |
| 478 | Furthermore, some cards (Cirrus) just enable this buffer |
| 479 | at a fixed hardware address. For Cirrus it is mapped at |
| 480 | 14MB so you should never used it if you have more than |
| 481 | 14MB of memory (But how does an application know?). The |
| 482 | Mach32 support for this is smarter. It makes this feature |
| 483 | only available when it is safe to be used. |
| 484 | |
| 485 | 3. FCE Ultra must be run as root in order to get access to the |
| 486 | VGA hardware. SVGAlib will drop root privileges if you are running |
| 487 | the program as a normal user and the suid root bit is set and the |
| 488 | executable is owned by root. Example: |
| 489 | chown root fceu ; chmod 4755 fceu |
| 490 | Make sure you have the latest stable release of SVGAlib, though. |
| 491 | |
| 492 | 4. FCE Ultra will save all data(state saves/screen snapshots) in |
| 493 | ~/.fceultra, so make sure your "HOME" environment variable is set |
| 494 | correctly. |
| 495 | |
| 496 | If you believe FCE Ultra is too slow, you can try the following: |
| 497 | * Kill some of the other processes. |
| 498 | * Disable sound emulation. |
| 499 | * Raise the priority of FCE Ultra with the 'nice' command. |
| 500 | Ex: nice -n -20 ./fceu |
| 501 | |
| 502 | /******************************************************************************/ |
| 503 | /* 3.1) Network Play Notes */ |
| 504 | /******************************************************************************/ |
| 505 | |
| 506 | In TCP/IP network play, the server will be player one, and the |
| 507 | client will be player 2. |
| 508 | |
| 509 | Zapper emulation and power pad emulation currently do not work with |
| 510 | network play. |
| 511 | |
| 512 | Having Game Genie or PAL emulation enabled on only one side |
| 513 | will cause problems. |
| 514 | |
| 515 | Both players MUST use the same ROM/disk image and SRAM |
| 516 | file(if applicable). |
| 517 | |
| 518 | When using FDS or VS Unisystem games with network play, only player |
| 519 | 1 will be able to insert disk, eject disk, insert coins, toggle dip |
| 520 | switches, etc. |
| 521 | |
| 522 | /******************************************************************************/ |
| 523 | /* 3.2) VS Unisystem Notes */ |
| 524 | /******************************************************************************/ |
| 525 | |
| 526 | FCE Ultra currently only supports VS Unisystem ROM images in the |
| 527 | iNES format. |
| 528 | |
| 529 | ROM Images: |
| 530 | |
| 531 | * VS Unisystem games that are about 49,000 bytes in size most likely |
| 532 | use mapper 99. |
| 533 | * Other VS Unisystem games will use other mappers. Here is a short |
| 534 | list of games and the mappers they use: |
| 535 | |
| 536 | CastleVania - 2 |
| 537 | Dr. Mario - 1 |
| 538 | Goonies - 151 |
| 539 | Gradius - 151 |
| 540 | Ice Climber - 99 |
| 541 | Platoon - 68 |
| 542 | |
| 543 | Palette(s): |
| 544 | |
| 545 | * The colors in many VS Unisystem games may be incorrect. This |
| 546 | is due to each game having its own PPU, and thus using a |
| 547 | different palette than games that use a different PPU. |
| 548 | |
| 549 | |
| 550 | /******************************************************************************/ |
| 551 | /* 3.3) Famicom Disk System Notes */ |
| 552 | /******************************************************************************/ |
| 553 | |
| 554 | You will need the FDS BIOS ROM image in the base FCE Ultra directory. |
| 555 | It must be named "disksys.rom". I will not give this file to you, so |
| 556 | don't ask. |
| 557 | |
| 558 | Two types of FDS disk images are supported: disk images with the |
| 559 | FWNES-style header, and disk images with no header. |
| 560 | |
| 561 | You should make backups of all of your FDS games you use with FCE |
| 562 | Ultra. This is because FCE Ultra will write the disk image back to |
| 563 | the storage medium, and the disk image in RAM might have been corrupted |
| 564 | because of inaccurate emulation(this case is not likely to occur, but |
| 565 | it could occur). |
| 566 | |
| 567 | |
| 568 | /******************************************************************************/ |
| 569 | /* 3.4) Light Gun Notes */ |
| 570 | /******************************************************************************/ |
| 571 | |
| 572 | Currently, the NES Zapper and the light gun used with the VS |
| 573 | Unisystem(I will call both the same name, Zapper) are supported. |
| 574 | Most(all?) NES games expect the Zapper to be plugged into port 2. |
| 575 | and most(all?) VS Unisystem games expect the Zapper to be plugged |
| 576 | into port(?) 1. |
| 577 | |
| 578 | The LEFT mouse button is the emulated trigger button for the |
| 579 | Zapper. The RIGHT mouse button is also emulated as the trigger, |
| 580 | but as long as you have the RIGHT mouse button held down, no color |
| 581 | detection will take place, which is effectively like pulling the |
| 582 | trigger while the Zapper is pointed away from the television screen. |
| 583 | Note that you must hold the RIGHT button down for a short |
| 584 | time(greater than just a fast click, shorter than a second). |
| 585 | |
| 586 | Zapper emulation currently does NOT work with network play, so |
| 587 | don't even try it. I may add support in the future if enough |
| 588 | people want it or if I want it. |
| 589 | |
| 590 | |
| 591 | /******************************************************************************/ |
| 592 | /* 3.5) Palette Notes */ |
| 593 | /******************************************************************************/ |
| 594 | |
| 595 | Palettes files are expected to contain 64 8-bit RGB triplets(each in |
| 596 | that order; red comes first in the triplet in the file, then green, |
| 597 | then blue). Each 8-bit value represents brightness for that particular |
| 598 | color. 0 is minimum, 255 is maximum. |
| 599 | |
| 600 | Palettes can be set on a per-game basis. To do this, put a palette |
| 601 | file in the "gameinfo" directory with the same base filename |
| 602 | as the game you wish to associate with and the extension "pal". |
| 603 | Examples: |
| 604 | |
| 605 | File name: Palette file name: |
| 606 | BigBad.nes BigBad.pal |
| 607 | BigBad.zip BigBad.pal |
| 608 | BigBad.Better.nes BigBad.Better.pal |
| 609 | |
| 610 | |
| 611 | With so many ways to choose a palette, figuring out which one will |
| 612 | be active may be difficult. Here's a list of what palettes will |
| 613 | be used, in order from highest priority to least priority(if a condition |
| 614 | doesn't exist for a higher priority palette, the emulator will |
| 615 | continue down its list of palettes). |
| 616 | |
| 617 | NSF Palette(for NSFs only) |
| 618 | Palette loaded from the "gameinfo" directory. |
| 619 | NTSC Color Emulation(only for NTSC NES games). |
| 620 | VS Unisystem palette(if the game is a VS Unisystem game and a palette |
| 621 | is available). |
| 622 | Custom global palette. |
| 623 | Default NES palette. |
| 624 | |
| 625 | |
| 626 | /******************************************************************************/ |
| 627 | /* 3.6) Compressed File Notes */ |
| 628 | /******************************************************************************/ |
| 629 | |
| 630 | FCE Ultra can load data from both PKZIP-format files and |
| 631 | gzip-format files. Only one type of (de)compression algorithm is |
| 632 | supported: "deflate"; this seems to be the most popular compression |
| 633 | algorithm, though. |
| 634 | |
| 635 | A compressed FDS disk image will only be saved back to disk if it |
| 636 | uses the gzip format. |
| 637 | |
| 638 | All files in a PKZIP format file will be scanned for the |
| 639 | followings extensions: .nes, .fds, .nsf, .unf, .nez, .unif |
| 640 | The first compressed file to have one of these extensions will be |
| 641 | loaded. If no compressed file has one of these extensions, the |
| 642 | first compressed file will be loaded. |
| 643 | |
| 644 | |
| 645 | /******************************************************************************/ |
| 646 | /* 3.7) Game Genie Notes */ |
| 647 | /******************************************************************************/ |
| 648 | |
| 649 | The Game Genie ROM image is loaded from the file "gg.rom" in the |
| 650 | base directory the first time Game Genie emulation is enabled and |
| 651 | a ROM image is loaded since the time FCE Ultra has run. |
| 652 | |
| 653 | The ROM image may either be the 24592 byte iNES-format image, or |
| 654 | the 4352 raw ROM image. |
| 655 | |
| 656 | Remember that enabling/disabling Game Genie emulation will not take |
| 657 | effect until a new game is loaded(this statement shouldn't concern |
| 658 | any of the "run once" command-line driven ports). |
| 659 | |
| 660 | /******************************************************************************/ |
| 661 | /* 4.0) Contacting the author */ |
| 662 | /******************************************************************************/ |
| 663 | |
| 664 | I can be reached via email at xodnizel@users.sourceforge.net. |
| 665 | Bero can be reached via email at 9bero9@geocities.co.jp |
| 666 | (Note that Bero can not and will not answer any questions |
| 667 | regarding the operation of FCE Ultra, so please don't ask him. |
| 668 | If you understand this, remove the 9's from the email address |
| 669 | provided to get his real email address.) |
| 670 | |
| 671 | |
| 672 | /******************************************************************************/ |
| 673 | /* 4.1) Credits */ |
| 674 | /******************************************************************************/ |
| 675 | |
| 676 | \Firebug\ - High-level mapper information. |
| 677 | Bero - Original FCE source code. |
| 678 | Brad Taylor - NES sound channel guide. |
| 679 | Chris Hickman - Archaic Ruins. |
| 680 | Donald Moore - DC PasoFami NES packs. |
| 681 | Fredrik Olson - NES four-player adapter information. |
| 682 | Gilles Vollant - PKZIP file loading functions. |
| 683 | goroh - Various documents. |
| 684 | Jeff Tamer - Insaniacal fun. |
| 685 | Jeremy Chadwick - General NES information. |
| 686 | Justin Smith - Giving me obscure ROM images in the "dark ages of |
| 687 | NES emulation". |
| 688 | Kevin Horton - Low level NES information and sound information. |
| 689 | Ki - Various technical information. |
| 690 | Mark Knibbs - Various NES information. |
| 691 | Marat Fayzullin - General NES information. |
| 692 | Matthew Conte - Sound information. |
| 693 | N. Andou - Awesome NES/SNES emulators, at the time... |
| 694 | nori - FDS sound information. |
| 695 | Quietust - VRC7 sound translation code by The Quietust |
| 696 | (quietust@ircN.org). |
| 697 | Ideas and corrections. |
| 698 | R. Hoelscher - Famicom four-player adapter information. |
| 699 | Rob Mocca - DC PasoFami NES packs, testing. |
| 700 | Sean Whalen - Node99. |
| 701 | Tatsuyuki Satoh - OPL2 emulator |
| 702 | TheRedEye - ROM images, testing. |
| 703 | |
| 704 | |
| 705 | Info-ZIP - ZLIB |
| 706 | |
| 707 | ...and everyone else who has helped me. |