6 Renamed "Makefile.olinuxsdl" to "Makefile.unixsdl"
8 More SDL fixes and cleanups.
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
14 Added "Makefile.beos". gcc doesn't like my inline assembly
15 used in RefreshLine(),so this port will likely be slightly slower than
18 Added a check to make sure SIGBUS is not equal to SIGSEGV in
19 drivers/cli/main.c. Needed for compiling under BeOS.
21 Renamed the "PI" member of the X6502 structure due to conflicts with
22 a defined symbol with some math header files.
24 Merged fcelineasm.h into fceline.h
26 Fixed(possibly) a possible problem in fcelineasm.h with input register
31 Added speed throttling code to the CLI code, and added a command
32 line switch "-nothrottle".
34 Lots of restructuring/rewriting/merging of the MMC3 code.
36 Updated DOS code to use the generic CLI wrapper.
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".
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.
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).
48 Changed a few memory reads in x6502.c to use RdRAM instead of RdMem,
49 resulting in a slight speed increase.
51 Cleaned up mapper 250 emulation code.
53 Added support for iNES mapper 51(thanks to Kevin Horton for the
56 Merged some iNES mappers corresponding to bootleg multicarts
57 based on MMC3s with mbshare/mmc3.c.
59 Added support for iNES mapper 52(thanks to Kevin Horton for the
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.
66 Saving screen snapshots will no longer corrupt the frame buffer
67 for one frame(unless memory couldn't be allocated).
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).
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.
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
86 Romance of the 3 Kingdoms is now recognized to use 16KB ex-WRAM.
88 Added support for mapper 185...sort of. I think this is another
89 instance of incompatible hardware being lumped onto one mapper number.
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.
97 BRK now sets the I flag.
99 Reads from $4015 no longer reset DPCM IRQ.
101 Changed emulation of RTI instruction slightly.
103 X.IRQlow is now set to 0 in PowerNES().
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.
111 iNES mapper 1 now supports pageable CHR RAM if no CHR ROM is present.
112 Fixes "Family School".
114 Mapper 70 no longer has a mirroring control emulated, and I extended
115 the number of 8KB CHR pages supported to 16.
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).
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).
126 Better iNES mapper 33/48 IRQ counter emulation.
128 Added the game "Uchuusen - Cosmo Carrier" to this list. I'm
129 beginning to hate the iNES format more and more...or maybe
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
137 iNES header information is now printed before any header corrections
138 are made based on a database.
140 Fixed a bug in mapper 32 emulation. "Ai Sensei no Oshiete"
143 Tried to add support for iNES mappers 245 and 249.
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
150 Reversed "Modified the time at which the "y scroll" register is updated
151 during hblank." The changes broke Klax.
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
160 Changed my mind and undid the removal of support for old save states.
162 Removed support for old save states and in general I won't
163 try to support save states made with previous versions.
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.
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.
176 Similar change to the argument parsing code.
178 Changed configuration file saving-loading routines and the
179 configuration structure to allow for linking config structures
182 Small fix to the emulation of the MMC5 split screen mode.
184 Made Linux SDL code compilable again.
186 Changes to MMC5 EXRAM emulation(read/write).
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
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.
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).
201 Worked on adding support for the MMC5's split screen mode. Not
204 Reverted to .80's FDS sound code.
206 Modified the time at which the "y scroll" register is updated
209 NSF playing code will now disable FDS sound output on song init
210 (fixes some problems with the Zelda no Densetsu NSF rip).
212 Increased the emulated clock speed of the FDS sound emulation code
213 to give better quality output.
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
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.
224 Changes to the way the zapper cursor is drawn on the screen.
226 FCEUD_WriteSoundData(), FCEUD_BlitScreen(), and FCEUD_UpdateInput()
227 have been combined into one function: FCEUD_Update().
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.
233 Added code to set the battery-backed bit in RAM if a game needs it,
236 Added more games to the list of games that commonly have bad iNES
239 Updated docs and usage.h for DOS and Linux regarding the new video
240 mode and the new refresh rates.
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.
245 Increased the refresh rate of video mode 2 to 65 hz in the Linux port.
247 Screen snapshots can now be taken while playing an NSF.
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.
254 Modified Makefile.base to produce an executable named "fceu" instead
257 The plans(cycle-accurate ppu emulation) for .90 were a bit ambitious,
258 and I still need to make other fixes before then.
260 Fixed some minor(usually) bugs with setting 256x240 tweaked VGA mode
261 in DOS and Linux ports.
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
270 Added input override code to Windows port.
272 Added code to fix iNES header information in RAM and suggest
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).
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).
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.
289 Added Family Keyboard support to the DOS port.
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.
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
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.
305 Family Keyboard support for the Windows port.
307 Added support for the Family Basic Keyboard to the Linux port, other
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,
314 Changed a lot of inlined functions in x6502.c to macros so that
315 I could test out some optimization ideas.
317 DOS code updates for game input override support.
319 Small optimzation to opcode $4c, and relative jumps.
321 Added some code to ines.c to set controller information in
322 FCEUGameInfo(returned by FCEUI_LoadGame()) based on crc32 values.
324 Updated user documentation and usage.h for DOS and SVGAlib input
325 command-line changes.
327 Added an option to disable the four-score(to Windows and Linux ports
330 Updated Windows interface to support the new Famicom expansion
333 (Re)Added support for the Famicom 4-player device.
335 Improved Zapper emulation...sort of. It still needs a lot of work. :/
337 Added *partial* support for the "Space Shadow" gun.
339 Added support for the Arkanoid controller(both NES and Famicom style).
341 Added code to support the extension Famicom input devices.
343 Added PAL scanline start/end drawing settings to Windows port.
345 Added pause emulation key(F2) to Windows port.
347 In the process of rewriting/fixing up input code stuff.
349 Minor bug fix to Power Pad emulation code.
351 VS Hogan's Alley and VS Duck Hunt automatically select the zapper
352 now(though it only works on the SVGAlib port).
354 Undid some FDS sound code changes introduced in 0.76 that totally
355 screwed up sound. Oops.
357 Added code to allow different settings for first/last scanline
358 drawn while in PAL emulation mode, to the Linux and DOS ports.
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).
366 Changed #include <unzip.h> to #include "zlib/unzip.h"
369 NSF 6502 player now initialized the stack pointer on reset.
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,
381 Maybe it's time to write hi/true-color ppu drawing code...
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.
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);
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).
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
402 Fixed return values of FCEU_fseek() and fixed a problem in unif.c
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().
409 Fixed a major mapper 64 emulation bug introduced in 0.76.
411 Modified BlitVidHi() in drivers/win/video.c to speed it up.
413 Added support for loading the iNES-format Game Genie ROM image.
415 Removed ggrom.h and added code to load the Game Genie ROM
418 Added Windows netplay.c. (new: the user exiting the emulator
419 while stuck in a blocking recv() or send() loop now works.)
421 Fixed a vram address register bug in fce.c that I created when I got
422 rid of the pair/dpair data types.
424 Added new mappers/92.c
426 Removed mappers/92.c until I can contact LULU or rewrite it.
428 drivers/win changes. Removed netplay.c until I can rewrite it.
430 Got rid of pair/dpair data types.
432 Got rid of silly "TempArray" thing.
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...
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
443 Cleaned up drawing.h and ggrom.h(even though ggrom.h will *probably*
444 be removed before the next release).
446 Redid frameskip code.
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.
451 Rewrote(more like "recreated in my own image") DOS keyboard driver.
452 Removed unused "keyscan.h" from drivers/svgalib
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
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.
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).
473 Altered mapper 16 irq counter emulation slightly.
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").
480 Changed some of the M* functions(absolute indexed and maybe some others)
481 to perform dummy reads.
483 Changed some of the macros in m6502.c to inlined functions so
484 that I can modify and examine them more easily.
489 Fixed a silly network play bug(in the global network play code)
490 that caused excessive lag.
492 Added a "niceness" setting to the sound configuration dialog.
493 Removed obsolete information from the dialog.
495 Fixed speed throttling code in Windows port when PAL emulation is
496 disabled/enabled and a new game hasn't been loaded yet.
498 Commented out a printf() to debug stuff in fds.c(oops).
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
504 Added two command line options new to Linux port to DOS port.
505 Just need to test them...
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
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.
514 Added clip option to Linux port.
516 Fixed sound logging(in Windows port) so that multiple recording
519 Added an option to clip the leftmost and rightmost 8 columns
520 of graphics in the Windows port.
522 Added a submenu that lists recently opened files, in the Windows
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).
534 Added cheat interface to DOS build.
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).
540 Support for UNIF UNL-TC-U01-1.5M board added. Same credits as below.
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...
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.
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...
565 Fixes to some stuff in cart.c(for example, calling setprg32() when
566 only 16kb of prg data is present now works).
568 Added support for iNES mapper 189.
570 Tried to add support for the UNIF board "UNL-H2288". Failed.
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.
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.
579 A few cosmetic changes to the dialogs in the Windows port.
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.).
584 Joystick button configuration code in Windows port changed slightly
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.
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.
595 Added/Fixed cheat interface for Linux port. It's still not perfect,
596 though. The code is ugly...
598 Callback function for FCEUI_ListCheats() now receives
599 status information(enabled/disabled).
601 Callback functions for cheat functions now must return 0 to
602 stop listing cheats or 1 to continue.
604 Fixed a problem(the cheat code was reading in cheats
605 for address $0000 from cheat files if any blank lines were present).
607 SDL port zlib changes(linked dynamically to zlib now).
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).
614 Added support for iNES mapper 140. Thanks to Quietust for the
617 I need to figure out how to deal with the problem of so many
618 bad NSFs that most people consider good...
620 Changed envelope decays a bit. Their behavior now depends on bit
621 7 of $4017. I don't know if this is right...
623 Addition of debug.c for some debugging stuff.
625 Updated zlib to 1.1.4.
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.
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...
635 Updating network play code. More info later...
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.
641 A few very small changes to sound emulation in fds.c.
643 Changed unlink() to remove() in cheat.c and removed the including
644 of the header file unistd.h.
646 Split up the cc=... statement in RefreshLine() to make it easier
647 to read and not ambiguous(to Borland's C compiler).
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.
654 Fixed various minor code problems(not minor if you want to use a
655 compiler besides gcc). This is an ongoing process...
657 Removed bit fields after reading about and thinking about possible
658 portability problems, though I kept some optimizations in fceline.h
660 Minor code simplification in drivers/win/joystick.c(replaced
661 "case 200 ... 207" and "case 208 ... 215".
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
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.
673 Fixed directories configuration stuff in Windows port(corresponds
676 More changes to square wave channel envelope/volume emulation...
677 Changes described in the large paragraph some lines down have been
680 Added a command line switch to set the volume in the dos port.
682 Changed Windows sound configuration dialog. Now buffer length is
683 specified in time, not samples. I also added a volume control.
685 Reduced the volume on 8-bit sound output on all ports by 1/2.
687 Added a function FCEUI_SetSoundVolume(). Added support for setting
688 the volume via the command line in the Linux port, other ports coming
691 Changed FCEUD_WriteSoundData() again. No longer has a "Check"
692 argument. All clipping(ugh) is done internally now.
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
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).
709 More information in iNES informational output.
711 Minor changes to mappers/16.c.
713 Increased the volume of the VRC6's sawtooth wave channel.
715 Added more information to the RAM cheat guide.
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
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
725 Note: FCEUD_WriteSoundData() no longer needs to clear the waveform
726 data referenced by the passed pointer; it's done internally now.
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).
731 Added the ability to load a custom global palette in the DOS port.
733 Fixed bug in drivers/common/unixdsp.c(wrong return value if sample
734 rate was out of range).
736 Many sound fixes... - Frequency sweeps, length counter stuff,...
738 Changed Windows port to use IDirectInput7 and IDirectInputDevice7
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
747 Modified windows port to use the config saving/loading stuff in
748 drivers/common/config.c
750 Mapper 45 cleanups/fixes.
752 Added the ability to load a custom global palette in the Linux port.
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.
760 Minor change in InitNetplay().
762 Fixed bad type conversions for pointers to functions and fixed
763 some bad declarations of functions.
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.
768 Fixed vidblit.c to not emit so many warnings when compiling.
773 Stop sound in Windows port when user clicks l/m/r mouse buttons
774 in the non-client area of the window.
776 Added "Drag and drop" file open support to Windows port.
778 Various code cleanups.
780 mappers/33.c optimization.
782 Rewrote the function "FCEU_MakeFName()".
784 Removed crc32.h from mappers directory.
786 Modified some of the window resizing code in the Windows port.
788 Added support for waiting for vblank/double buffering to the Windows
791 Added/Fixed support for iNES mapper 248.
793 After an NSF file is loaded, information about its header is now
796 Fixed a typo in the Namco 106 extra ram handling code.
798 Improved the quality of the Namco 106's extra sound channels.
799 - Thank Mamiya and Applepie(real name?) for info.
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.
804 Updated "porting.txt".
806 Moved some stuff from DriverInterface() to their own functions.
808 Fixed some iNES mapper 18 IRQ counter emulation bugs. "Ninja Jajamaru -
809 Ginga Dai Sakusen" now works.
811 Rewrote large pieces of the mapper 64 code. "Skull and Crossbones"
812 still doesn't work, though.
814 Changed format of iNES header information output, added "ROM CRC32" info.
816 Modified the way cycle timing is done slightly. No change
817 for NTSC emulation, but PAL emulation is a little more accurate.
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
823 A few optimizations/cleanups in m6502.c.