| 1 | .81: |
| 2 | ---- |
| 3 | |
| 4 | More SDL goodies. |
| 5 | |
| 6 | Renamed "Makefile.olinuxsdl" to "Makefile.unixsdl" |
| 7 | |
| 8 | More SDL fixes and cleanups. |
| 9 | |
| 10 | BeOS port is now compiled with the "-no-fpic" flag, which allows |
| 11 | me to use my inline assembly. The executable work fine as far as |
| 12 | I can tell. |
| 13 | |
| 14 | Added "Makefile.beos". gcc doesn't like my inline assembly |
| 15 | used in RefreshLine(),so this port will likely be slightly slower than |
| 16 | other x86 ports. |
| 17 | |
| 18 | Added a check to make sure SIGBUS is not equal to SIGSEGV in |
| 19 | drivers/cli/main.c. Needed for compiling under BeOS. |
| 20 | |
| 21 | Renamed the "PI" member of the X6502 structure due to conflicts with |
| 22 | a defined symbol with some math header files. |
| 23 | |
| 24 | Merged fcelineasm.h into fceline.h |
| 25 | |
| 26 | Fixed(possibly) a possible problem in fcelineasm.h with input register |
| 27 | clobbering. |
| 28 | |
| 29 | More SDL changes. |
| 30 | |
| 31 | Added speed throttling code to the CLI code, and added a command |
| 32 | line switch "-nothrottle". |
| 33 | |
| 34 | Lots of restructuring/rewriting/merging of the MMC3 code. |
| 35 | |
| 36 | Updated DOS code to use the generic CLI wrapper. |
| 37 | |
| 38 | Reads from $4090 and $4092 now return the current envelope setting |
| 39 | in FDS sound emulation. I'm not sure if this is correct... Affects |
| 40 | "Ai Senshi Nicole" and "Bio Miracle Bokutte Upa". |
| 41 | |
| 42 | Added native SDL sound support to the SDL code. the "olinuxsdl" |
| 43 | now uses this code by default instead of the unixdsp sound code. |
| 44 | |
| 45 | Modified MMC3 IRQ counter emulation. I'll need to watch out to see |
| 46 | if it breaks any games. Fixes: MegaMan 3, Gun Nac, Klax(Japanese). |
| 47 | |
| 48 | Changed a few memory reads in x6502.c to use RdRAM instead of RdMem, |
| 49 | resulting in a slight speed increase. |
| 50 | |
| 51 | Cleaned up mapper 250 emulation code. |
| 52 | |
| 53 | Added support for iNES mapper 51(thanks to Kevin Horton for the |
| 54 | information). |
| 55 | |
| 56 | Merged some iNES mappers corresponding to bootleg multicarts |
| 57 | based on MMC3s with mbshare/mmc3.c. |
| 58 | |
| 59 | Added support for iNES mapper 52(thanks to Kevin Horton for the |
| 60 | information). |
| 61 | |
| 62 | Made some hacks to the MMC3 emulation code so that I can add support |
| 63 | for pirate MMC3 multicarts more easily. I should clean it up later. |
| 64 | Moved mapper 44 emulation code to mbshare/mmc3.c. |
| 65 | |
| 66 | Saving screen snapshots will no longer corrupt the frame buffer |
| 67 | for one frame(unless memory couldn't be allocated). |
| 68 | |
| 69 | Fixed screen snapshot saving(it was sort of broken due to the |
| 70 | changes made to the driver<->emulator interface code; status |
| 71 | messages were being saved to the image). FCEUI_SaveSnapshot() |
| 72 | no longer returns a value(the request to save a screen snapshot is |
| 73 | serviced before status information would be written in the next frame). |
| 74 | |
| 75 | nosprites is now set to 0 before RefreshSprite() returns, to prevent |
| 76 | problems if a game turns off the bg and sprites when FetchSpriteData() |
| 77 | for the next scanline is called but then turns on sprites when |
| 78 | the actual scanline is drawn. |
| 79 | |
| 80 | PPU_hook() is now called more often if PPU_hook is non-null. |
| 81 | Made changes to mappers 118, 95, 9, and 10 to compensate. |
| 82 | No games seem to be broken, and I added support for mapper 96 |
| 83 | (though the games aren't very playable because the special controller |
| 84 | isn't emulated). |
| 85 | |
| 86 | Romance of the 3 Kingdoms is now recognized to use 16KB ex-WRAM. |
| 87 | |
| 88 | Added support for mapper 185...sort of. I think this is another |
| 89 | instance of incompatible hardware being lumped onto one mapper number. |
| 90 | Sigh. |
| 91 | |
| 92 | Added support for "Famicom Jump 2" as iNES mapper 153. |
| 93 | If a good(as far as I can tell) dump is loaded, FCE Ultra will |
| 94 | automatically fix the mapper number. |
| 95 | I also made some changes to the mapper 16 IRQ emulation code. |
| 96 | |
| 97 | BRK now sets the I flag. |
| 98 | |
| 99 | Reads from $4015 no longer reset DPCM IRQ. |
| 100 | |
| 101 | Changed emulation of RTI instruction slightly. |
| 102 | |
| 103 | X.IRQlow is now set to 0 in PowerNES(). |
| 104 | |
| 105 | The VS Unisystem bit in the iNES header is no longer looked at( |
| 106 | I was having too many problems with this bit being set when it |
| 107 | shouldn't have been). Now, VS Unisystem emulation is enabled |
| 108 | when a known VS Unisystem game is loaded. I also rewrote the VS |
| 109 | Unisystem detection function. |
| 110 | |
| 111 | iNES mapper 1 now supports pageable CHR RAM if no CHR ROM is present. |
| 112 | Fixes "Family School". |
| 113 | |
| 114 | Mapper 70 no longer has a mirroring control emulated, and I extended |
| 115 | the number of 8KB CHR pages supported to 16. |
| 116 | |
| 117 | Cleaned up iNES MMC5 save RAM loading/saving code and added |
| 118 | support for MMC1 games with 16KB of RAM(the second 8KB are saved), |
| 119 | via CRC32s(currently only Genghis Khan(USA) and Nobunaga's Ambition( |
| 120 | USA and Japan) are recognized). |
| 121 | |
| 122 | Added support for the MMC5 Koei game "Ishin no Arashi", in the iNES |
| 123 | format(I added an entry with its CRC32 value and the number of 8KB |
| 124 | WRAM banks it needs). |
| 125 | |
| 126 | Better iNES mapper 33/48 IRQ counter emulation. |
| 127 | |
| 128 | Added the game "Uchuusen - Cosmo Carrier" to this list. I'm |
| 129 | beginning to hate the iNES format more and more...or maybe |
| 130 | just Fanwen. :) |
| 131 | |
| 132 | Added the mapper 32 game "Major League" to the list of games |
| 133 | that usually need iNES header correction...but in this case, the |
| 134 | iNES header cannot specify that this game needs to have one-screen |
| 135 | mirroring. |
| 136 | |
| 137 | iNES header information is now printed before any header corrections |
| 138 | are made based on a database. |
| 139 | |
| 140 | Fixed a bug in mapper 32 emulation. "Ai Sensei no Oshiete" |
| 141 | works now. |
| 142 | |
| 143 | Tried to add support for iNES mappers 245 and 249. |
| 144 | |
| 145 | Fixed the MMC5 read handler to return the data last on the data |
| 146 | bus instead of 0xFF when a read was made to an unmapped address. |
| 147 | This seems to fix the lockup problems in "Bandit Kings of Ancient |
| 148 | China". |
| 149 | |
| 150 | Reversed "Modified the time at which the "y scroll" register is updated |
| 151 | during hblank." The changes broke Klax. |
| 152 | |
| 153 | Added an unsigned 64-bit base timestamp variable "timestampbase". |
| 154 | Adding this to the 32-bit variable "timestamp" will return |
| 155 | the number of cycles executed since emulation started(in the future |
| 156 | I'll probably change it to since reset or power toggle). |
| 157 | This allowed me to replace "lastn" hack in the MMC1 code with |
| 158 | something better. |
| 159 | |
| 160 | Changed my mind and undid the removal of support for old save states. |
| 161 | |
| 162 | Removed support for old save states and in general I won't |
| 163 | try to support save states made with previous versions. |
| 164 | |
| 165 | MMC1: Writes to $8000-$FFFF with D7 set will now cause |
| 166 | the first MMC1 register to be OR'ed with 0x0C. I'm not sure |
| 167 | if this is correct, but it doesn't seem to break anything |
| 168 | and it fixes Robocop 3. I'll see if anyone reports games |
| 169 | not working in .81 that worked in .80. |
| 170 | |
| 171 | Worked on a generic driver interface wrapper very similar |
| 172 | to the driver interface FCE Ultra used to use(I'm getting |
| 173 | tired of all of the duplicated driver code). Eventually, |
| 174 | the DOS, SVGAlib, and SDL ports will use this wrapper. |
| 175 | |
| 176 | Similar change to the argument parsing code. |
| 177 | |
| 178 | Changed configuration file saving-loading routines and the |
| 179 | configuration structure to allow for linking config structures |
| 180 | to each other). |
| 181 | |
| 182 | Small fix to the emulation of the MMC5 split screen mode. |
| 183 | |
| 184 | Made Linux SDL code compilable again. |
| 185 | |
| 186 | Changes to MMC5 EXRAM emulation(read/write). |
| 187 | |
| 188 | Fixes to the emulation of the MMC5's split screen mode, based on |
| 189 | observations while using CastleVania 3 and a Game Genie(on a real |
| 190 | NES). |
| 191 | |
| 192 | Fixed a bug in ines.c that caused any calls to AddExState() from |
| 193 | a mapper initialization function to be effectively "erased"(ResetExState() |
| 194 | was called after the mapper was initialized). Fixes the VRC7 sound |
| 195 | state saving/loading stuff. |
| 196 | |
| 197 | Finished adding support for the MMC5's split screen mode(this does |
| 198 | not mean that the support is complete, but at least the intro in |
| 199 | "Uchuu Keibitai SDF" works correctly now). |
| 200 | |
| 201 | Worked on adding support for the MMC5's split screen mode. Not |
| 202 | completed. |
| 203 | |
| 204 | Reverted to .80's FDS sound code. |
| 205 | |
| 206 | Modified the time at which the "y scroll" register is updated |
| 207 | during hblank. |
| 208 | |
| 209 | NSF playing code will now disable FDS sound output on song init |
| 210 | (fixes some problems with the Zelda no Densetsu NSF rip). |
| 211 | |
| 212 | Increased the emulated clock speed of the FDS sound emulation code |
| 213 | to give better quality output. |
| 214 | |
| 215 | Modified NMI to occur a few cycles later. Fixes BattleToads...but |
| 216 | it may have broken other games. Also modified the way NMI's are |
| 217 | handled in x6502.c. |
| 218 | |
| 219 | Modified ines.c to memset() GameMemBlock to 0 on virtual power toggle. |
| 220 | Also, trainers are now loaded into their own buffer instead of |
| 221 | directly into emulated WRAM and copied into emulated WRAM on |
| 222 | power toggle; I've been meaning to do this for quite some time. |
| 223 | |
| 224 | Changes to the way the zapper cursor is drawn on the screen. |
| 225 | |
| 226 | FCEUD_WriteSoundData(), FCEUD_BlitScreen(), and FCEUD_UpdateInput() |
| 227 | have been combined into one function: FCEUD_Update(). |
| 228 | |
| 229 | More fixes to the network play code, and a fix to the Windows network |
| 230 | play driver code that fixes(hopefully) a rather evil bug that caused |
| 231 | lockups when the remote stopped network play. |
| 232 | |
| 233 | Added code to set the battery-backed bit in RAM if a game needs it, |
| 234 | based on CRC32. |
| 235 | |
| 236 | Added more games to the list of games that commonly have bad iNES |
| 237 | headers, in ines.c |
| 238 | |
| 239 | Updated docs and usage.h for DOS and Linux regarding the new video |
| 240 | mode and the new refresh rates. |
| 241 | |
| 242 | Linux: Fixed a bug with video mode 6(a few upper scanlines were being |
| 243 | cut off). Increased the refresh rate of video mode 3 to 120hz. |
| 244 | |
| 245 | Increased the refresh rate of video mode 2 to 65 hz in the Linux port. |
| 246 | |
| 247 | Screen snapshots can now be taken while playing an NSF. |
| 248 | |
| 249 | Added a new sexy tweaked vga mode that I created to the Linux svgalib |
| 250 | port. It's 256x224 at a refresh rate of 103hz. Hopefully it won't |
| 251 | blow up anyone's monitor. ;) |
| 252 | DOS port will follow eventually. |
| 253 | |
| 254 | Modified Makefile.base to produce an executable named "fceu" instead |
| 255 | of "fce". |
| 256 | |
| 257 | The plans(cycle-accurate ppu emulation) for .90 were a bit ambitious, |
| 258 | and I still need to make other fixes before then. |
| 259 | |
| 260 | Fixed some minor(usually) bugs with setting 256x240 tweaked VGA mode |
| 261 | in DOS and Linux ports. |
| 262 | |
| 263 | .80: |
| 264 | ---- |
| 265 | |
| 266 | Cleaned/fixed a few things in the mapper 19 emulation code. |
| 267 | Family Circuit '91 still doesn't work quite right... I wonder if |
| 268 | it's a bad dump. |
| 269 | |
| 270 | Added input override code to Windows port. |
| 271 | |
| 272 | Added code to fix iNES header information in RAM and suggest |
| 273 | changes to the user. |
| 274 | |
| 275 | Added support for iNES mapper 152(to be used with games set to |
| 276 | mapper 70, that use one-screen mirroring instead of h/v mirroring). |
| 277 | |
| 278 | Blits using the DirectX blitting function(method?) to the primary |
| 279 | surface are now done with the asynchronous flag set(if that |
| 280 | fails, a "normal" blit is tried). |
| 281 | |
| 282 | The DirectX blit buffer(secondary surface that FCE Ultra writes to |
| 283 | directly and then uses the DirectDraw blit function on to blit |
| 284 | to the primary buffer) is now created without specifying it |
| 285 | should be in system memory or video memory, except in the case |
| 286 | when no hardware blitting is available, and then DDraw is explicitly |
| 287 | told to create the surface in system memory. |
| 288 | |
| 289 | Added Family Keyboard support to the DOS port. |
| 290 | |
| 291 | Cleaned up the VRC7 sound emulation code. I need to find a way |
| 292 | to save the current sound state in a save state. |
| 293 | |
| 294 | Found out the real name of the "Space Shadow" gun; it's |
| 295 | called the "Hyper Shot". I'm still not sure who made it, though. |
| 296 | Possibly Bandai did. The interesting thing is that Konami |
| 297 | also made a Famicom accessory(dual square boxy things with two buttons |
| 298 | on each) with the same name(though there might not be a space in the |
| 299 | name). |
| 300 | |
| 301 | Only the upper two bits read from $4016/$4017 are undefined. |
| 302 | Bit5 is always 0, though. Fixed the bug in "input.c". |
| 303 | Silly kevtris' old documents. New kevtris' brain is always good. |
| 304 | |
| 305 | Family Keyboard support for the Windows port. |
| 306 | |
| 307 | Added support for the Family Basic Keyboard to the Linux port, other |
| 308 | ports todo. |
| 309 | Might want to add support for the tape recorder at some time. |
| 310 | Also mapped the "Scroll Lock" key to disable/enable command keys |
| 311 | so that the FBK is more useable. It doesn't disable CTRL C, |
| 312 | though... |
| 313 | |
| 314 | Changed a lot of inlined functions in x6502.c to macros so that |
| 315 | I could test out some optimization ideas. |
| 316 | |
| 317 | DOS code updates for game input override support. |
| 318 | |
| 319 | Small optimzation to opcode $4c, and relative jumps. |
| 320 | |
| 321 | Added some code to ines.c to set controller information in |
| 322 | FCEUGameInfo(returned by FCEUI_LoadGame()) based on crc32 values. |
| 323 | |
| 324 | Updated user documentation and usage.h for DOS and SVGAlib input |
| 325 | command-line changes. |
| 326 | |
| 327 | Added an option to disable the four-score(to Windows and Linux ports |
| 328 | so far). |
| 329 | |
| 330 | Updated Windows interface to support the new Famicom expansion |
| 331 | devices. |
| 332 | |
| 333 | (Re)Added support for the Famicom 4-player device. |
| 334 | |
| 335 | Improved Zapper emulation...sort of. It still needs a lot of work. :/ |
| 336 | |
| 337 | Added *partial* support for the "Space Shadow" gun. |
| 338 | |
| 339 | Added support for the Arkanoid controller(both NES and Famicom style). |
| 340 | |
| 341 | Added code to support the extension Famicom input devices. |
| 342 | |
| 343 | Added PAL scanline start/end drawing settings to Windows port. |
| 344 | |
| 345 | Added pause emulation key(F2) to Windows port. |
| 346 | |
| 347 | In the process of rewriting/fixing up input code stuff. |
| 348 | |
| 349 | Minor bug fix to Power Pad emulation code. |
| 350 | |
| 351 | VS Hogan's Alley and VS Duck Hunt automatically select the zapper |
| 352 | now(though it only works on the SVGAlib port). |
| 353 | |
| 354 | Undid some FDS sound code changes introduced in 0.76 that totally |
| 355 | screwed up sound. Oops. |
| 356 | |
| 357 | Added code to allow different settings for first/last scanline |
| 358 | drawn while in PAL emulation mode, to the Linux and DOS ports. |
| 359 | |
| 360 | Added convenience(it's not necessary, but it reduces redundant and |
| 361 | confusing code in the driver code) function |
| 362 | FCEUI_GetCurrentVidSystem(int *slstart, int *slend). |
| 363 | |
| 364 | Updated file "TODO". |
| 365 | |
| 366 | Changed #include <unzip.h> to #include "zlib/unzip.h" |
| 367 | in file.c. |
| 368 | |
| 369 | NSF 6502 player now initialized the stack pointer on reset. |
| 370 | |
| 371 | Worked on de-emphasis emulation code quite a bit. |
| 372 | The deemphasized palette calculated at the end of the frame is now |
| 373 | based on what deemphasis bits were set for the longest during |
| 374 | the screen(sampling interval is a scanline) update loop. |
| 375 | Added a "static" deemphasized palette at $40-$7F in the palette table. |
| 376 | This corresponds to the colors when all of the deemphasis bits are set. |
| 377 | I did this to fix the PAL game "Noah's Ark", without breaking |
| 378 | anything else. The only downside is a slight speed loss(~2% on |
| 379 | my system when sound is disabled), but this is acceptable to me, |
| 380 | at least. |
| 381 | Maybe it's time to write hi/true-color ppu drawing code... |
| 382 | |
| 383 | |
| 384 | Fixed an out of bounds array access in svga.c in SetNESDeemph(). |
| 385 | The variable "lastd" in svga.c was being initialized to the wrong value. |
| 386 | Thanks to "Jarod CANAL" for pointing this out. |
| 387 | |
| 388 | Removed FCEUI_SetFirstRenderedLine or whatever it was called and |
| 389 | the function to set the last line. Replaced with: |
| 390 | void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall); |
| 391 | |
| 392 | Changed SetVidSys(int w) to ResetVidSys() in fce.c. Reenabled |
| 393 | PAL/NTSC emulation overrides based on game loaded(really only useful |
| 394 | for NSFs and UNIFs now). |
| 395 | |
| 396 | UNIF loading code now recognizes the chunk "CTRL" and tries |
| 397 | to use it. Only the svgalib code supports overriding of input |
| 398 | settings based on game loaded, now, though... |
| 399 | The user is still going to have to configure powerpad settings |
| 400 | on his/her own. |
| 401 | |
| 402 | Fixed return values of FCEU_fseek() and fixed a problem in unif.c |
| 403 | related to it. |
| 404 | |
| 405 | Changed mechanism for how FCE Ultra tells the driver |
| 406 | code what type of system is being emulated. A structure of |
| 407 | type "FCEUGI" is returned from FCEUI_LoadGame(). |
| 408 | |
| 409 | Fixed a major mapper 64 emulation bug introduced in 0.76. |
| 410 | |
| 411 | Modified BlitVidHi() in drivers/win/video.c to speed it up. |
| 412 | |
| 413 | Added support for loading the iNES-format Game Genie ROM image. |
| 414 | |
| 415 | Removed ggrom.h and added code to load the Game Genie ROM |
| 416 | image from a file. |
| 417 | |
| 418 | Added Windows netplay.c. (new: the user exiting the emulator |
| 419 | while stuck in a blocking recv() or send() loop now works.) |
| 420 | |
| 421 | Fixed a vram address register bug in fce.c that I created when I got |
| 422 | rid of the pair/dpair data types. |
| 423 | |
| 424 | Added new mappers/92.c |
| 425 | |
| 426 | Removed mappers/92.c until I can contact LULU or rewrite it. |
| 427 | |
| 428 | drivers/win changes. Removed netplay.c until I can rewrite it. |
| 429 | |
| 430 | Got rid of pair/dpair data types. |
| 431 | |
| 432 | Got rid of silly "TempArray" thing. |
| 433 | |
| 434 | Began adding GPL headers to files. FCE Ultra is going to be in |
| 435 | a state of legal limbo for the next few days... |
| 436 | |
| 437 | Replaced crc32.c and crc32.h, and added some #ifdef's and #defines |
| 438 | to use the crc32 code in zlib instead if zlib is linked with |
| 439 | FCE Ultra. |
| 440 | |
| 441 | More fixes to sb.c. |
| 442 | |
| 443 | Cleaned up drawing.h and ggrom.h(even though ggrom.h will *probably* |
| 444 | be removed before the next release). |
| 445 | |
| 446 | Redid frameskip code. |
| 447 | |
| 448 | Rewrote necessary pieces of sb.c and sb.h and fixed quite a few |
| 449 | bugs. I still need to test it on various other sound cards, though. |
| 450 | |
| 451 | Rewrote(more like "recreated in my own image") DOS keyboard driver. |
| 452 | Removed unused "keyscan.h" from drivers/svgalib |
| 453 | |
| 454 | Rewrote part of(the parts that Marat wrote - the connection and |
| 455 | closing parts) the Linux TCP/IP network play code. I guess it works, |
| 456 | but I haven't tested it very much. In any case, it's still dangerous |
| 457 | to use network play in FCE Ultra with SVGAlib, since recv() or send() |
| 458 | might block and since the keyboard is in raw mode, you have a problem. |
| 459 | Maybe a future SVGAlib will fix the general problem of lockups if |
| 460 | keyboard_update() isn't called, though it is only partly SVGAlib's |
| 461 | problem... |
| 462 | |
| 463 | Fixed FCEU_fseek() when used with a compressed file in the PKZIP |
| 464 | format that has been loaded. Fixes a UNIF loading problem. |
| 465 | Also added a check to the return value of FCEU_fseek() in unif.c. |
| 466 | |
| 467 | Replaced Marat's 6502 emulation core with my own. |
| 468 | It should be fully functional, but as always, I don't know if |
| 469 | I implemented the undocumented instructions correctly. |
| 470 | Several things are correct in this new core that were not in |
| 471 | Marat's(D flag is no longer cleared by interrupts, for example). |
| 472 | |
| 473 | Altered mapper 16 irq counter emulation slightly. |
| 474 | |
| 475 | Fixed the behavior of the SXA, SYA, and XAS opcodes based on the |
| 476 | documentation I have. I'm not sure what happens when page crossing |
| 477 | occurs with those instructions on a real NES, though. |
| 478 | Also CHANGED(not fixed) emulation of opcode $8B("XAA"). |
| 479 | |
| 480 | Changed some of the M* functions(absolute indexed and maybe some others) |
| 481 | to perform dummy reads. |
| 482 | |
| 483 | Changed some of the macros in m6502.c to inlined functions so |
| 484 | that I can modify and examine them more easily. |
| 485 | |
| 486 | .77: |
| 487 | ---- |
| 488 | |
| 489 | Fixed a silly network play bug(in the global network play code) |
| 490 | that caused excessive lag. |
| 491 | |
| 492 | Added a "niceness" setting to the sound configuration dialog. |
| 493 | Removed obsolete information from the dialog. |
| 494 | |
| 495 | Fixed speed throttling code in Windows port when PAL emulation is |
| 496 | disabled/enabled and a new game hasn't been loaded yet. |
| 497 | |
| 498 | Commented out a printf() to debug stuff in fds.c(oops). |
| 499 | |
| 500 | Applied PK's joystick patch to the osdl code. It allows the user |
| 501 | to map axes and it fixes a joystick button mapping configuration saving |
| 502 | bug. |
| 503 | |
| 504 | Added two command line options new to Linux port to DOS port. |
| 505 | Just need to test them... |
| 506 | |
| 507 | Added some stuff to unif.c to allow for boards that can support |
| 508 | CHR RAM instead of CHR ROM(darn Sachen boards...). Fixes UNIF |
| 509 | version of "Q-Boy". |
| 510 | |
| 511 | Added command line option "-snapname" to Linux port. I'll add it |
| 512 | to the Windows port as well, but probably not to the DOS port. |
| 513 | |
| 514 | Added clip option to Linux port. |
| 515 | |
| 516 | Fixed sound logging(in Windows port) so that multiple recording |
| 517 | sessions now work. |
| 518 | |
| 519 | Added an option to clip the leftmost and rightmost 8 columns |
| 520 | of graphics in the Windows port. |
| 521 | |
| 522 | Added a submenu that lists recently opened files, in the Windows |
| 523 | port. |
| 524 | |
| 525 | .76: |
| 526 | ---- |
| 527 | |
| 528 | Updated porting.txt. |
| 529 | |
| 530 | Added speed throttling code to Windows port that's used when sound is |
| 531 | disabled(and an option in the "Miscellaneous" |
| 532 | configuration window to disable it). |
| 533 | |
| 534 | Added cheat interface to DOS build. |
| 535 | |
| 536 | A few tweaks to the text cheat interface code in the cheat listing code. |
| 537 | Added a command to quickly toggle the status of the cheat(though a |
| 538 | cheat can still be disabled/enabled by (M)odifying the cheat). |
| 539 | |
| 540 | Support for UNIF UNL-TC-U01-1.5M board added. Same credits as below. |
| 541 | |
| 542 | Rewrote mapper 228 code just for the heck of it(actually, I couldn't |
| 543 | figure out why some(about two) of the games in the Action 52 cart |
| 544 | weren't working in .75(and .76). I traced it back to .71, where an apparent bug in |
| 545 | the undocumented 6502 opcode emulation allowed it to work, which |
| 546 | was later fixed for the .72 release(opcode 0x7C)). I'm thinking |
| 547 | that the dump is bad... |
| 548 | |
| 549 | Added a few crc32 checks to ines.c to check for and report when |
| 550 | a known(by me) bad(hacked or bad dump) game is loaded. |
| 551 | |
| 552 | Added support for the following UNIF boards. Thanks to Quietust |
| 553 | and Kevin Horton for the information. Some problems still exist |
| 554 | with a few games that use these boards, though... |
| 555 | |
| 556 | UNL-Sachen-8259B |
| 557 | UNL-Sachen-8259A |
| 558 | UNL-Sachen-74LS374N |
| 559 | UNL-SA-016-1M |
| 560 | UNL-SA-72007 |
| 561 | UNL-SA-72008 |
| 562 | UNL-SA-0036 |
| 563 | UNL-SA-0037 |
| 564 | |
| 565 | Fixes to some stuff in cart.c(for example, calling setprg32() when |
| 566 | only 16kb of prg data is present now works). |
| 567 | |
| 568 | Added support for iNES mapper 189. |
| 569 | |
| 570 | Tried to add support for the UNIF board "UNL-H2288". Failed. |
| 571 | |
| 572 | Updated "cheat.txt" to fix a few typos and added an example of finding |
| 573 | and adding a cheat using the Linux port's text interface. The actual |
| 574 | section on the Linux cheat interface still needs to be written, however. |
| 575 | |
| 576 | Changed network play code in the Windows port and fixed a bug. |
| 577 | Fixed a similar bug in the Linux netplay code....sort of. |
| 578 | |
| 579 | A few cosmetic changes to the dialogs in the Windows port. |
| 580 | |
| 581 | Fixed sound initialization on the Windows port(it was being initialized |
| 582 | when FCE Ultra started even if it was disabled by the user. Oops.). |
| 583 | |
| 584 | Joystick button configuration code in Windows port changed slightly |
| 585 | to be more useable. |
| 586 | |
| 587 | Changed reference to video mode 5 in the linux port to "1 per 4". |
| 588 | It may not be very meaningful, but it is certainly better |
| 589 | than "TV Emulation". I'll change the Windows port reference later. |
| 590 | |
| 591 | Documented video mode 7(320x240) for the Linux port. Also added |
| 592 | a check for the FBDev driver in order to use this mode instead |
| 593 | of a tweaked vga mode if that driver is being used. |
| 594 | |
| 595 | Added/Fixed cheat interface for Linux port. It's still not perfect, |
| 596 | though. The code is ugly... |
| 597 | |
| 598 | Callback function for FCEUI_ListCheats() now receives |
| 599 | status information(enabled/disabled). |
| 600 | |
| 601 | Callback functions for cheat functions now must return 0 to |
| 602 | stop listing cheats or 1 to continue. |
| 603 | |
| 604 | Fixed a problem(the cheat code was reading in cheats |
| 605 | for address $0000 from cheat files if any blank lines were present). |
| 606 | |
| 607 | SDL port zlib changes(linked dynamically to zlib now). |
| 608 | |
| 609 | More changes to envelope decay + looping on code. No longer |
| 610 | depends on value @ $4017. It now sounds correct based on some |
| 611 | tests I did with SMB3 and a GG, but Goonies 2 doesn't sound right( |
| 612 | based on a sound file sent to me by another person). |
| 613 | |
| 614 | Added support for iNES mapper 140. Thanks to Quietust for the |
| 615 | information. |
| 616 | |
| 617 | I need to figure out how to deal with the problem of so many |
| 618 | bad NSFs that most people consider good... |
| 619 | |
| 620 | Changed envelope decays a bit. Their behavior now depends on bit |
| 621 | 7 of $4017. I don't know if this is right... |
| 622 | |
| 623 | Addition of debug.c for some debugging stuff. |
| 624 | |
| 625 | Updated zlib to 1.1.4. |
| 626 | |
| 627 | Modified code in various files to allow UNIF games to override |
| 628 | current selected video system emulation(NTSC or PAL). Need to |
| 629 | make sure this really works. |
| 630 | |
| 631 | Changed sound.c to prevent desynchronization during network play. |
| 632 | This might slow down sound emulation slightly, especially when |
| 633 | sound emulation is disabled. I really don't care... |
| 634 | |
| 635 | Updating network play code. More info later... |
| 636 | |
| 637 | Moved the sound/video/etc output code in EmLoop() to the top of the |
| 638 | for(;;) loop so that initialization prior to calling EmLoop() will |
| 639 | be the same as initialization done during a call to a FCEUD_* function. |
| 640 | |
| 641 | A few very small changes to sound emulation in fds.c. |
| 642 | |
| 643 | Changed unlink() to remove() in cheat.c and removed the including |
| 644 | of the header file unistd.h. |
| 645 | |
| 646 | Split up the cc=... statement in RefreshLine() to make it easier |
| 647 | to read and not ambiguous(to Borland's C compiler). |
| 648 | |
| 649 | Changed a lot of the function declarations in cheat.c. I'll need |
| 650 | to verify that cheat searching still works ok and that cheats still work |
| 651 | ok. I'll also need to update the Windows(and Linux console) cheat code |
| 652 | to prevent compiler warnings. |
| 653 | |
| 654 | Fixed various minor code problems(not minor if you want to use a |
| 655 | compiler besides gcc). This is an ongoing process... |
| 656 | |
| 657 | Removed bit fields after reading about and thinking about possible |
| 658 | portability problems, though I kept some optimizations in fceline.h |
| 659 | |
| 660 | Minor code simplification in drivers/win/joystick.c(replaced |
| 661 | "case 200 ... 207" and "case 208 ... 215". |
| 662 | |
| 663 | Modified some code to use bit-fields in the graphics rendering code |
| 664 | in fce.c and fceline.h. gcc seems to be able to optimize the new |
| 665 | code to run faster. |
| 666 | |
| 667 | Fixed m6502.c and fce.c to initialize variables on virtual power |
| 668 | toggle. This should fix network play on the Windows port. |
| 669 | I'm also in the process of cleaning up fce.c. |
| 670 | |
| 671 | .75: |
| 672 | ---- |
| 673 | Fixed directories configuration stuff in Windows port(corresponds |
| 674 | to .75r2). |
| 675 | |
| 676 | More changes to square wave channel envelope/volume emulation... |
| 677 | Changes described in the large paragraph some lines down have been |
| 678 | abandoned. |
| 679 | |
| 680 | Added a command line switch to set the volume in the dos port. |
| 681 | |
| 682 | Changed Windows sound configuration dialog. Now buffer length is |
| 683 | specified in time, not samples. I also added a volume control. |
| 684 | |
| 685 | Reduced the volume on 8-bit sound output on all ports by 1/2. |
| 686 | |
| 687 | Added a function FCEUI_SetSoundVolume(). Added support for setting |
| 688 | the volume via the command line in the Linux port, other ports coming |
| 689 | soon. |
| 690 | |
| 691 | Changed FCEUD_WriteSoundData() again. No longer has a "Check" |
| 692 | argument. All clipping(ugh) is done internally now. |
| 693 | |
| 694 | Added a directories configuration dialog to the Windows port. I worked |
| 695 | on it too long and I became a zombie, so it might have a few bugs. |
| 696 | That's what guine...err...users are for. ;) Don't expect me to do |
| 697 | anything like this for any other port, though. I don't feel like |
| 698 | doing it on the DOS port, and the Linux and other UNIXy ports shouldn't |
| 699 | really need it. |
| 700 | |
| 701 | Made some changes to the rectangle/square wave channel emulation to |
| 702 | fix the pops in SMB. I have no idea if what I did is correct. To |
| 703 | be honest, I'm not sure I know EXACTLY what I did, but it's something |
| 704 | like this: Writes to $4003/$4007 now reset the duty cycle count |
| 705 | and reload the cycle counter with the current wavelength. Writes to |
| 706 | $4003/$4007 now do not update the amplitude output of the channels; they |
| 707 | will be updated after the cycle counter hits 0(or below). |
| 708 | |
| 709 | More information in iNES informational output. |
| 710 | |
| 711 | Minor changes to mappers/16.c. |
| 712 | |
| 713 | Increased the volume of the VRC6's sawtooth wave channel. |
| 714 | |
| 715 | Added more information to the RAM cheat guide. |
| 716 | |
| 717 | Changed the triangle wave generation code slightly. I decided |
| 718 | to remove support for the higher-frequency triangle waves, as they |
| 719 | are too cpu-costly to create and are probably not very audible on a |
| 720 | real NES anyway. |
| 721 | |
| 722 | Major changes to how sound is mixed. This necessitated a high pass |
| 723 | DC-offset removing filter, and a low-pass filter just to make things |
| 724 | sound better. ^_^ |
| 725 | Note: FCEUD_WriteSoundData() no longer needs to clear the waveform |
| 726 | data referenced by the passed pointer; it's done internally now. |
| 727 | |
| 728 | Fixed JMP ($xxxx) - now handles wrapping like it occurs on a real 6502 |
| 729 | (hopefully; I'm assuming that the same holds true for the NES' cpu). |
| 730 | |
| 731 | Added the ability to load a custom global palette in the DOS port. |
| 732 | |
| 733 | Fixed bug in drivers/common/unixdsp.c(wrong return value if sample |
| 734 | rate was out of range). |
| 735 | |
| 736 | Many sound fixes... - Frequency sweeps, length counter stuff,... |
| 737 | |
| 738 | Changed Windows port to use IDirectInput7 and IDirectInputDevice7 |
| 739 | interfaces. |
| 740 | |
| 741 | Fixed a Game Genie bug in the core emulation code. It only appeared |
| 742 | in the Windows port, though. (Enabling gg emulation, loading a game, |
| 743 | and then disabling gg emulation and loading a new game while in the |
| 744 | gg code entry screen would cause the new loaded game to not work |
| 745 | correctly). |
| 746 | |
| 747 | Modified windows port to use the config saving/loading stuff in |
| 748 | drivers/common/config.c |
| 749 | |
| 750 | Mapper 45 cleanups/fixes. |
| 751 | |
| 752 | Added the ability to load a custom global palette in the Linux port. |
| 753 | Yay. |
| 754 | |
| 755 | Fixed a large number of overcomplicated code and silly bugs in |
| 756 | drivers/common/config.c. This changes the format of the configuration |
| 757 | structure, too. Also added support for saving/loading strings with |
| 758 | automatic memory allocation when strings are loaded. |
| 759 | |
| 760 | Minor change in InitNetplay(). |
| 761 | |
| 762 | Fixed bad type conversions for pointers to functions and fixed |
| 763 | some bad declarations of functions. |
| 764 | |
| 765 | Reenabled zlib support for the sdl build. I need to pay attention |
| 766 | to patches that modify lines than don't fit on my screen. |
| 767 | |
| 768 | Fixed vidblit.c to not emit so many warnings when compiling. |
| 769 | |
| 770 | .74: |
| 771 | ---- |
| 772 | |
| 773 | Stop sound in Windows port when user clicks l/m/r mouse buttons |
| 774 | in the non-client area of the window. |
| 775 | |
| 776 | Added "Drag and drop" file open support to Windows port. |
| 777 | |
| 778 | Various code cleanups. |
| 779 | |
| 780 | mappers/33.c optimization. |
| 781 | |
| 782 | Rewrote the function "FCEU_MakeFName()". |
| 783 | |
| 784 | Removed crc32.h from mappers directory. |
| 785 | |
| 786 | Modified some of the window resizing code in the Windows port. |
| 787 | |
| 788 | Added support for waiting for vblank/double buffering to the Windows |
| 789 | port. |
| 790 | |
| 791 | Added/Fixed support for iNES mapper 248. |
| 792 | |
| 793 | After an NSF file is loaded, information about its header is now |
| 794 | displayed. |
| 795 | |
| 796 | Fixed a typo in the Namco 106 extra ram handling code. |
| 797 | |
| 798 | Improved the quality of the Namco 106's extra sound channels. |
| 799 | - Thank Mamiya and Applepie(real name?) for info. |
| 800 | |
| 801 | When an NSF file is being played, FCE Ultra will no longer go through |
| 802 | its scanline rendering loop. This speeds up NSF playback considerably. |
| 803 | |
| 804 | Updated "porting.txt". |
| 805 | |
| 806 | Moved some stuff from DriverInterface() to their own functions. |
| 807 | |
| 808 | Fixed some iNES mapper 18 IRQ counter emulation bugs. "Ninja Jajamaru - |
| 809 | Ginga Dai Sakusen" now works. |
| 810 | |
| 811 | Rewrote large pieces of the mapper 64 code. "Skull and Crossbones" |
| 812 | still doesn't work, though. |
| 813 | |
| 814 | Changed format of iNES header information output, added "ROM CRC32" info. |
| 815 | |
| 816 | Modified the way cycle timing is done slightly. No change |
| 817 | for NTSC emulation, but PAL emulation is a little more accurate. |
| 818 | |
| 819 | Changed the behavior of indirect indexed(I hope I got that right ;)) |
| 820 | instructions to behave more like a real 6502(junk reads are now |
| 821 | performed). |
| 822 | |
| 823 | A few optimizations/cleanups in m6502.c. |