Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1814 | yogev_ezra | 1 | 0.98.12: |
2 | |||
3 | Win32: Fixed the behavior of the sound logging function. |
||
4 | |||
5 | Fixed a bug that was causing 2xscale/3xscale to be broken |
||
6 | when clipping the leftmost and rightmost 8 columns. |
||
7 | |||
8 | Added an iNES header correction entry for JustBreed. |
||
9 | |||
10 | Modified the MMC5 "ELROM" board emulation to not emulate WRAM. |
||
11 | |||
12 | Corrected various pieces of code that were causing compiler warnings. |
||
13 | |||
14 | Win32: Scaling settings(x, y, stretch to fill screen) are now respected while |
||
15 | using a special scaler in full screen mode, though if x or y scale is |
||
16 | less than what is needed for a particular scaler, it will be |
||
17 | adjusted. |
||
18 | |||
19 | Win32: The window will be reblitted when it becomes invalidated while |
||
20 | a game is loaded(such as when you're resizing the window). |
||
21 | |||
22 | When the PPU is in a "dead" state after starting up, the graphics |
||
23 | buffer is now cleared. Previously, particularly in the Windows port, when |
||
24 | a game was closed, and a new game was loaded, the last image from |
||
25 | the previous game would be displayed for a short time. |
||
26 | |||
27 | Win32: Blit skipping will now occur when sound is disabled and FCE Ultra is |
||
28 | running behind the desired frame rate. |
||
29 | |||
30 | Win32: Blit-skipping behavior can now be configured to some extent in the "Timing" configuration |
||
31 | window. |
||
32 | |||
33 | Win32: Added a "Recent Directories" submenu to the "File" menu. |
||
34 | |||
35 | Removed some debugging code that shouldn't have been enabled in 0.98.11. |
||
36 | |||
37 | 0.98.11: |
||
38 | |||
39 | Win32: Special scalers are now also supported in windowed mode. For Scale2x/Scale3x, |
||
40 | the fastest "desktop" bit depth is 16bpp. For hq2x/hq3x, it is 32bpp. |
||
41 | |||
42 | The shared video blitting code(drivers/common/vidblit.c) can now blit using Scale2x |
||
43 | and Scale3x to any target bit depth(8bpp, 16bpp, 24bpp, and 32bpp) instead of just |
||
44 | 8bpp, as it was before. |
||
45 | HQ2x and HQ3x can now blit to 16bpp, 24bpp(untested), and 32bpp. The 16bpp and |
||
46 | 24bpp targets are done doing post-processing conversion, after HQ2x/HQ3x, which |
||
47 | really does hurt speed. |
||
48 | |||
49 | Changed a few names in the credits section of the documentation to their |
||
50 | aliases. Names you didn't get to pick to have are so troublesome. :b |
||
51 | I also made various fixes/updates to the documentation. |
||
52 | |||
53 | Updated the FAQ with some information regard video mode bit depths and speed. |
||
54 | |||
55 | SDL: Disabled the fast-forward-key speed-limiting code. I thought I had |
||
56 | done this before... |
||
57 | |||
58 | Fixed a major bug in the movie recording code, and added some code to automatically detect |
||
59 | and fix playback of broken movies from earlier versions. |
||
60 | |||
61 | Did a little swapping thing with mapper 90 and 209. I moved back Mortal Kombat 3 |
||
62 | to mapper 90, and moved Shin Samurai Spirits 2 to mapper 209. Sorry for any confusion. |
||
63 | Mapper 90 should be considered as having the fancy nametable select mode disabled, with |
||
64 | mapper 209 having it enabled. |
||
65 | |||
66 | Added support for mapper 160, which turns out to be the same hardware as mapper |
||
67 | 90. Joy. |
||
68 | |||
69 | Improved mapper 90 emulation. This mapper really needs low-level |
||
70 | emulation for IRQs to work right, though. :/ |
||
71 | |||
72 | Win32: Fixed the "hide left/right 8 video columns" feature. |
||
73 | |||
74 | Since FCE Ultra is ending(or has already exceeded? :b) its actively-updated life, |
||
75 | I've gone ahead and added per-game hacks for "Kick Master" and the PAL version |
||
76 | of "Star Wars". See the documentation for more details. |
||
77 | |||
78 | Minor optimizations to the high-quality sound emulation code. The FIR filter |
||
79 | code is the bottleneck, though, so these changes won't have much of an effect |
||
80 | on overall speed. |
||
81 | |||
82 | Altered MMC3 IRQ emulation(and the hooks in ppu.c for it). |
||
83 | |||
84 | Fixed a rather major typo in the VRC7-emulation code. |
||
85 | |||
86 | 0.98.10: |
||
87 | |||
88 | Reimplemented network play. It now requires a standalone network play server, which |
||
89 | will be released as a later time. For fun, "starmen.net" is running this server, |
||
90 | which is publicly accessible. |
||
91 | I also made various code fixes/improvements to allow for network play, particularly |
||
92 | with the command handling code. |
||
93 | |||
94 | Reworked much of the VS Unisystem emulation code, partially based on information from |
||
95 | MAME. The following games are now supported: |
||
96 | |||
97 | Battle City |
||
98 | Castlevania |
||
99 | Clu Clu Land |
||
100 | Dr. Mario |
||
101 | Duck Hunt |
||
102 | Excitebike |
||
103 | Excitebike (Japanese) |
||
104 | Freedom Force |
||
105 | Goonies, The |
||
106 | Gradius |
||
107 | Gumshoe |
||
108 | Hogan's Alley |
||
109 | Ice Climber |
||
110 | Ladies Golf |
||
111 | Mach Rider |
||
112 | Mach Rider (Japanese) |
||
113 | Mighty Bomb Jack (Japanese) |
||
114 | Ninja Jajamaru Kun (Japanese) |
||
115 | Pinball |
||
116 | Pinball (Japanese) |
||
117 | Platoon |
||
118 | RBI Baseball |
||
119 | Slalom |
||
120 | Soccer |
||
121 | Star Luster |
||
122 | Stroke and Match Golf |
||
123 | Stroke and Match Golf - Ladies |
||
124 | Stroke and Match Golf (Japanese) |
||
125 | Super Mario Bros. |
||
126 | Super Sky Kid |
||
127 | Super Xevious |
||
128 | Tetris |
||
129 | TKO Boxing |
||
130 | Top Gun |
||
131 | |||
132 | Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when |
||
133 | one tried to delete a breakpoint(the control accidentally had auto-sort enabled, |
||
134 | causing a discrepancy between what was displayed and what was contained in internal |
||
135 | data structures). |
||
136 | |||
137 | The current disk image XOR original disk image is now stored in save states. This |
||
138 | should greatly increase compressability(important for network play), and make |
||
139 | it a little more legal to distribute such save states now. |
||
140 | |||
141 | Modified the save state format to allow for more precise and larger version numbers. |
||
142 | |||
143 | Various minor code changes. |
||
144 | |||
145 | Fixed initialization of the FCEUGameInfo structure, which previously led |
||
146 | to problems with sound output on the SexyAL-using ports(Linux). |
||
147 | |||
148 | Apparently I added support for mapper 255 a while back. Documentation updated. |
||
149 | |||
150 | Added iNES header correction information for Armored Scrum Object and Alpha Mission. |
||
151 | |||
152 | Merged banksw.h into ines.c, fixed some of its prototypes in ines.h. |
||
153 | |||
154 | 0.98.9: |
||
155 | |||
156 | Win32-native: Fixed the speed throttling used when sound is disabled. In previous |
||
157 | 0.98.x Win32-native releases, emulation was running at 1/2 the speed it should |
||
158 | have been when sound was disabled. |
||
159 | |||
160 | Win32-native: Moved settings in the "Miscellaneous" configuration window |
||
161 | to where they should have been in the first place, and added "GUI" and "Timing" |
||
162 | configuration windows to accommodate some. |
||
163 | |||
164 | Win32-native: Fixed the handling of the "Scroll Lock" key used to disable and |
||
165 | enable Family BASIC Keyboard input. |
||
166 | |||
167 | Updated documentation to handle some slight differences in the Win32-native |
||
168 | port("Win32-native" is what the Win32 port using native APIs, as opposed to something |
||
169 | like GTK+ and SDL, will be referred to in documentation now). I also made |
||
170 | some other minor wording adjustments to the documentation. |
||
171 | |||
172 | Added an iNES header correction for Dragonball. |
||
173 | |||
174 | 0.98.8: |
||
175 | |||
176 | Fixed a typo in sound.c that caused only part of the sound registers |
||
177 | to be saved in save states. |
||
178 | |||
179 | Win32: Switched over to the DirectDraw7 interface, from DirectDraw4's. |
||
180 | The surface Flip() method will now block, which results in somewhat |
||
181 | smoother animation/scrolling, especially when combined with the |
||
182 | auto blit-skip implemented in 0.98.6 when sound is enabled. |
||
183 | |||
184 | Win32: Undid a change made in the last release that limited the |
||
185 | speed of fast-forwarding when using the tilde key. I really do |
||
186 | need to implement some sort of unified timing/blit skip system... |
||
187 | |||
188 | Win32: Added an option, disabled by default, to ask for confirmation |
||
189 | before exiting FCE Ultra. |
||
190 | |||
191 | Win32: Added an option, enabled by default, to disable the system |
||
192 | screen saver while a game is loaded. |
||
193 | |||
194 | Win32: Added a new video synchronization mode, a "lazy" wait for |
||
195 | vblank/vertical retrace. It calls Sleep(0) in its wait loop. This |
||
196 | still uses all available cpu cycles, but it is much more friendly |
||
197 | to other processes than the old-style wait for vblank. |
||
198 | |||
199 | Win32: Added support for joystick POV hats. |
||
200 | |||
201 | 0.98.7: |
||
202 | |||
203 | Fixed a bug in the debugger's disassembler when disassembling |
||
204 | opcode 0xBC. |
||
205 | |||
206 | Fixed the behavior of the right mouse button with zapper emulation, to |
||
207 | correspond with what it is documented as doing. |
||
208 | |||
209 | Win32: Added proper support for maximizing the window. |
||
210 | |||
211 | Win32: Rewrote most of the input and input configuration code. |
||
212 | |||
213 | Win32: Changed the configurable aspect ratio to something sensical, the current |
||
214 | display's pixel aspect ratio, default of 1:1(square pixels). |
||
215 | |||
216 | Win32: Made the default full-screen video mode the custom video mode. I should have |
||
217 | done this a long time ago to make custom video mode configuration more straighforward |
||
218 | for users... |
||
219 | |||
220 | Added some JACK audio code to be used by the SDL build. I'll test it and complete |
||
221 | it later. |
||
222 | |||
223 | 0.98.6: Made several code modifications to work with older versions of gcc. |
||
224 | |||
225 | Fixed more header file network play #ifdef-age. |
||
226 | |||
227 | Fixed a typo in cart.h. |
||
228 | |||
229 | Fixed some funky code in FCEU_memmove(). |
||
230 | |||
231 | Fixed some source code causing compiler warnings. |
||
232 | |||
233 | Fixed SexyAL's format conversion code to not rely on deprecated casting semantics. |
||
234 | |||
235 | Readded the native Win32 code, and made many improvements. The major thing |
||
236 | that needs to be done now with it is to rewrite the input handling code and input |
||
237 | configuration code. |
||
238 | |||
239 | 0.98.5: |
||
240 | Added LL to the 64-bit integer constants in ines.c |
||
241 | |||
242 | Fixed OpenGL support under Mac OS X. |
||
243 | |||
244 | Added the ability to hide background and/or sprites with the F4 key. |
||
245 | |||
246 | 0.98.4: |
||
247 | Moved NETWORK #ifdef's to netplay.c to simplify things. |
||
248 | |||
249 | Fixed gzip file loading code(I think). I'm still a bit unsure about the semantics |
||
250 | of dup() and close(), though. |
||
251 | |||
252 | Corrected FDS code to try loading the FDS image before loading the BIOS. |
||
253 | |||
254 | Readded "native" SDL sound code, used for Mac OS X(and maybe BeOS). |
||
255 | |||
256 | 0.98.3: |
||
257 | Removed the wxWindows GUI code. GTK+ 2 code will take its place, |
||
258 | once it is ready. |
||
259 | |||
260 | Added reset and power commands to the movie format. More commands(such as insert |
||
261 | disk, eject disk, flip dip switch, etc.) will be added simultaneously as work |
||
262 | on network play continues. |
||
263 | |||
264 | Modified SexyAL OSS code to not adjust the number of fragments to a power of 2. |
||
265 | It works fine on my card, allowing finer-grained buffer size control, |
||
266 | but I'm not sure it will work with all chips. |
||
267 | |||
268 | Fixed parsing of the "-specialfs" command-line argument. |
||
269 | |||
270 | Added the hq3x scaler. |
||
271 | |||
272 | Updated to the latest Scale2x code. I also added the Scale3x scaler. |
||
273 | |||
274 | Changed the keyboard assignments for toggling full screen to "Alt" + "Enter". |
||
275 | |||
276 | FCEUI_SaveState() and FCEUI_LoadState() changed. Porters should read |
||
277 | driver.h. |
||
278 | |||
279 | Miscellaneous changes to accommodate new network play plan. It's not close |
||
280 | to being finished. |
||
281 | |||
282 | Altered RTI emulation. In Paris Dakar Rally's NMI handler, it does "CLI ; RTI". |
||
283 | Previously, FCE Ultra would generate an interrupt right after RTI occured, due to the |
||
284 | presumed latency that RTI had with the I flag. I changed it so there is no latency, so |
||
285 | no interrupt will occur in this case(interrupts kill this game). The interrupt source |
||
286 | is the "frame IRQ", which it never disables, if anyone cares. |
||
287 | This change does break the "Stars SE" demo, though. Hmm. |
||
288 | |||
289 | "FCEUGameInfo" is now a pointer, rather than just a statically-allocated structure. |
||
290 | This may cause some null-dereferencing-related crashes, but it should help keep |
||
291 | code a little cleaner(maybe?). |
||
292 | |||
293 | Played around with the FDS FM code some more. It's still not right. Bah. |
||
294 | |||
295 | Hacked in support for entering Datach/Barcode World barcodes without a GUI, using the |
||
296 | F8 key and the numeric keys. |
||
297 | |||
298 | Added code to save/load movies. Movie support will only record/play back the |
||
299 | states of the four emulated gamepads. |
||
300 | |||
301 | Modified the sound code to use timestamp/timestampbase differently. In addition, |
||
302 | timestampbase is now saved in save states("timestamp" doesn't need to be saved, since |
||
303 | it's reset to 0 at the end of each emulated frame). |
||
304 | |||
305 | 0.98.2: |
||
306 | Fixed a few problems with the SDL command-line build code |
||
307 | for Win32. Also, SDL 1.2.7 seems to have a bug that breaks FCE Ultra's |
||
308 | full-screen/windowed switching capabilities(at least under Win32). |
||
309 | Stupid everything. |
||
310 | |||
311 | Minor SexyAL changes. |
||
312 | |||
313 | Updated documentation. |
||
314 | |||
315 | 0.98.1: |
||
316 | |||
317 | Increased the volume of the FME07 sound channels. |
||
318 | |||
319 | Fixed a bug in the SexyAL endian conversion code. |
||
320 | |||
321 | Made the SexyAL chunk conversion loop work. |
||
322 | |||
323 | Replaced the old OPL2 emulator with a modified version of |
||
324 | Mitsutaka Okazaki's YM2413 emulator for the VRC7 sound emulation. |
||
325 | |||
326 | Decreased the pitch of the FME 07 expansion sound channels by one octave. |
||
327 | |||
328 | Decreased volume of output of $5011 in MMC5 emulation code. |
||
329 | |||
330 | |||
331 | 0.98.0: Some changes I made aren't listed below. Ah well. The magnitude |
||
332 | of the changes was too great... |
||
333 | |||
334 | |||
335 | Default sound volume is 100(%), which makes a lot more sense than 75%, but not much. |
||
336 | It's multiplied by 3/4 internally now. |
||
337 | |||
338 | Added support for the Datach barcode reader(GUI interface only). The emulation code |
||
339 | was adapted from the VirtuaNES source code. |
||
340 | |||
341 | Reassigned the Datach games to mapper 157, from 16, with CRC32 checks. |
||
342 | |||
343 | Increased the maximum number of screen snapshots in the snapshots directory |
||
344 | to 99999(from 999). |
||
345 | |||
346 | Reassigned the following games to mapper 210, using CRC32 checks: |
||
347 | Chibi Maruko Chan |
||
348 | Dream Master |
||
349 | Family Circuit '91 |
||
350 | Famista '92 |
||
351 | Famista '93 |
||
352 | Famista '94 |
||
353 | Heisei Tensai Bakabon |
||
354 | Top Striker |
||
355 | Wagyan Land 2 |
||
356 | Wagyan Land 3 |
||
357 | If you use a hack/translation of one or more of these games, you will of course |
||
358 | need to manually change the mapper number in the header for it to work properly in |
||
359 | FCE Ultra. Family Circuit '91 still may not fit in with the rest of these games, |
||
360 | but it's definitely not a "stock" mapper 19 setup. |
||
361 | |||
362 | Fixed an OpenGL palette bug when using scanlines(previously, I think it was |
||
363 | setting the palette of the scanlines overlay texture instead of the actual image |
||
364 | texture in some instances). The bug showed up on games that make use of the color |
||
365 | deemphasis bits. |
||
366 | |||
367 | Rewrote a lot of the PPU background rendering code to be more accurate(and |
||
368 | obfuscated!). This eliminates the X-offset hack I made earlier. |
||
369 | |||
370 | Removed some of the NSF visualization code, and altered the look of the NSF |
||
371 | display slightly. The NSF waveform visualization code will now take into |
||
372 | account the current volume setting. |
||
373 | |||
374 | Changed the default key bindings for the standard emulated gamepad |
||
375 | to something more compatible with window managers. I may change it back, but probably |
||
376 | not, since it is easily configurable now. |
||
377 | |||
378 | Updated the MMC5, VRC6, and FME07 low-quality sound emulation code |
||
379 | with the compatible parts of the high-quality sound emulation code for those chips. |
||
380 | |||
381 | Adjusted timing of horizontal scroll update(near the beginning of hblank. I made |
||
382 | it occur sooner). I also added a hack to allow X-offset(fine X scroll) changes mid |
||
383 | scanline, however, it is extremely ugly, and may not work correctly for everything |
||
384 | (doing it correctly would probably kill speed). |
||
385 | I mainly did it to fix games like F-1 Race and Mach Rider, and other racing |
||
386 | games that are extremely sensitive to horizontal scrolling timing. |
||
387 | |||
388 | Some FDS IRQ emulation changes to fix some screen corruption problems |
||
389 | in "Kaettekita Mario Bros". |
||
390 | |||
391 | Removed zlib(the code, not support). |
||
392 | I also removed support for compiling without zlib(it's small, simple, provides |
||
393 | very useful functions, and may provide critical features for fceu in the future). |
||
394 | |||
395 | *undone, breaks debugger, FIXME.* Replaced some inline functions with macros in x6502.c. |
||
396 | |||
397 | Increased the speed of Namco 106 sound emulation in HQ sound mode. |
||
398 | |||
399 | Many many sound emulation changes and adjustments based on blargg's tests. |
||
400 | The default sound volume is about 150% what it was before, because the sound range |
||
401 | has changed(now -soundvol 100 is like -soundvol 200 on older builds), and the |
||
402 | default "soundvol" setting is 75. 100 clips on some Namco games, and 200 clips |
||
403 | on many games, so I'll probably have the configurable volume range as [0:125]. |
||
404 | What exactly is "%" supposed to mean in this case.... 100% of what?! |
||
405 | |||
406 | When using low-quality sound emulation mode, total emulation speed is about 10% |
||
407 | less than previous builds. The change in speed for high-quality sound emulation |
||
408 | mode is significantly less. |
||
409 | |||
410 | Added beginnings of SexyAL to source code tree, removed SDL sound support, and |
||
411 | old OSS code. |
||
412 | |||
413 | Copied over some autoconf/automake stuff from phamicom. It stills needs a bit |
||
414 | of work... |
||
415 | |||
416 | Fixed DMC IRQ emulation. Fixes many CodeMasters games. Finally. ^_^ |
||
417 | |||
418 | Restructured a lot of files, changed the interface between driver and |
||
419 | emulator code slightly. |
||
420 | |||
421 | * Insert stuff here * |
||
422 | |||
423 | November 28, 2003 - Snapshot |
||
424 | |||
425 | Removed the DOS, Linux SVGAlib, and Win32 targets. *GASP* |
||
426 | Win32 support will return(eventually), using SDL + wxWindows. |
||
427 | SDL can use svgalib or GGI anyway, so it shouldn't be a huge loss. |
||
428 | DOS support will only return if someone ports SDL to DOS. ^_^ |
||
429 | It would be nice if SDL could accept modelines. Maybe in SDL 2.0... |
||
430 | |||
431 | Merged fce.c and svga.c into fceu.c, and fce.h and svga.h into fceu.h. |
||
432 | |||
433 | Reassigned "Mortal Kombat 3 - Special 56 Peoples" to mapper 209. |
||
434 | |||
435 | Added emulation of the "Oeka Kids" tablet. |
||
436 | |||
437 | Added emulation of the Family Trainer. |
||
438 | |||
439 | Added emulation of the "Ultimate Quiz King" buzzers. |
||
440 | |||
441 | Added emulation of the Mahjong controller. |
||
442 | |||
443 | Added emulation of HyperShot controllers. |
||
444 | |||
445 | Fixed loading of NSFs with load addresses below $8000. |
||
446 | |||
447 | Cleaned and simplified some of the NES APU code. |
||
448 | |||
449 | Altered mapper 65 emulation. Fixes Kaiketsu Yanchamaru 3. Does it break anything? |
||
450 | |||
451 | Wrote a small FAQ file. |
||
452 | |||
453 | Fixed displaying of garbage and other unpleasantness on the first scanline. I need |
||
454 | to clean up that code, though. |
||
455 | |||
456 | Fixed color deemphasis emulation when all bits are set. For some |
||
457 | reason, I had commented out the code. Bleh. |
||
458 | |||
459 | NSF player now writes $C0 to $4017 if the FDS is being used(the FDS |
||
460 | BIOS writes $C0 to $4017). $40 for all other NSFs. |
||
461 | |||
462 | Added support for iNES mapper 58(nnnesterj). |
||
463 | |||
464 | Added support for iNES mapper 208. |
||
465 | |||
466 | Reassigned "Fudou Myouou Den" to mapper 207(CRC32 checks). |
||
467 | |||
468 | Reassigned "Karnov" to mapper 206(CRC32 checks). |
||
469 | |||
470 | Fixed the mapper 95 code, which was horribly broken. |
||
471 | |||
472 | Differentiated between mappers 33 and 48. Added CRC checks to assign |
||
473 | some games to mapper 48. "Flintstones 2" and "Don Doko Don 2" are |
||
474 | the games that need to be assigned to 48. Are there others? |
||
475 | |||
476 | Replaced usage of TriggerIRQ to X6502_IRQBegin/X6502_IRQEnd combos in |
||
477 | various mapper emulation files. 67, 33/48, 40, 73, 42, 65, 6, 182 |
||
478 | Removed function TriggerIRQ() from x6502.c |
||
479 | |||
480 | Fixed the sound volume of the VRC7 emulation in high-quality sound mode. |
||
481 | Decreased(slightly) the volume of VRC7 emulation in both high-quality sound modes. |
||
482 | |||
483 | Decreased the volume of the MMC5 expansion sound channels. |
||
484 | |||
485 | Decreased the volume of the FME-7/mapper 69 expansion sound channels. |
||
486 | |||
487 | Added FCEU_gmalloc(), which will call exit() if memory allocation fails, |
||
488 | otherwise it is guaranteed to return a memory block. |
||
489 | This will be used in the mapper code mainly. It should only |
||
490 | be used for small memory chunks. The reasoning is that if 64 some like KB of |
||
491 | RAM or less can't be allocated, for example, it'd probably be best to |
||
492 | exit the emulator ASAP. It also helps to simplify code logic, and |
||
493 | help (me) with modularization. |
||
494 | The behavior of this may change in the future. I still need to think about it. |
||
495 | I should probably save the configuration file regularly(or much better, |
||
496 | use the registry) on the Windows port, though. |
||
497 | |||
498 | Cleaned up the save-state saving/loading code a bit, and added |
||
499 | support for linked save state structures for better modularity and |
||
500 | less code duplication. |
||
501 | |||
502 | Merged the iNES and UNIF MMC1, MMC3, and MMC5 code more completely. |
||
503 | I may need to sanify CHR RAM and WRAM allocation for pedanticness, |
||
504 | though. Also worked on Tengen RAMBO-1 emulation, and mapper 90 emulation. |
||
505 | ***THIS MAKES SAVE STATES FOR GAMES THAT USE THESE EXPANSION CHIPS INCOMPATIBLE |
||
506 | WITH PREVIOUS VERSIONS*** |
||
507 | I plan on doing the same thing with other mappers/boards in the future, though. |
||
508 | Always on the quest for 1.0... |
||
509 | |||
510 | November 12, 2003 - 0.97.5 Release |
||
511 | |||
512 | Windows: Added limited support for arguments that change configuration |
||
513 | to be passed to FCE Ultra. Example: fceu -pal 1 c:\streetgangs.nes |
||
514 | It may be useful in frontends. |
||
515 | |||
516 | Fixed filename generation for automatic IPS patching when a file |
||
517 | with no extension is loaded. Before this change, FCEU would |
||
518 | look for "game..ips" with a file named "game". |
||
519 | |||
520 | Converted and updated the cheat guide in(to) HTML. |
||
521 | |||
522 | Added support for iNES mappers 202,203,231 from info from cah4e3. |
||
523 | Fixed support for mappers 60, 200. |
||
524 | |||
525 | Fixed various major bugs in the breakpoint deletion code. |
||
526 | |||
527 | UN*X: Added support for OSS(/dev/dsp) devices that don't support mono |
||
528 | sound. |
||
529 | |||
530 | Increased PPU startup idle time to 2 frames. Fixes that |
||
531 | unlicensed "Earthworm Jim 3" game. Does it break anything? |
||
532 | |||
533 | November 9, 2003 - 0.97.4 Release |
||
534 | |||
535 | Fixed another obscure PPU emulation screen corruption bug. |
||
536 | |||
537 | Added support for Game Genie cheats in the cheat interface. |
||
538 | |||
539 | Windows: Reworked the cheat interface, merging the cheat search |
||
540 | and cheat list windows into one. |
||
541 | |||
542 | Windows: Greatly improved the CPU debugger. |
||
543 | The code still needs a lot of cleaning, though. |
||
544 | |||
545 | Readjusted VRC6 IRQ emulation timing. |
||
546 | |||
547 | Added support for the UNIF MMC3 board TEROM. The maximum PRG/CHR sizes |
||
548 | may not be correct in this implementation, though. |
||
549 | |||
550 | November 8, 2003 - 0.97.3 Release |
||
551 | |||
552 | Added a control to set the highest quality sound mode in Windows. |
||
553 | This change requires that any users who previously set |
||
554 | "high quality sound" to set it again. |
||
555 | |||
556 | Fixed the volume of high-quality sound mode again. The changes |
||
557 | I made earlier didn't affect all the filter coefficients. |
||
558 | |||
559 | November 8, 2003 - 0.97.2 Release |
||
560 | |||
561 | Made a minor optimization to writes to palette memory. |
||
562 | |||
563 | Altered VRC6 IRQ emulation timing slightly. |
||
564 | |||
565 | Fixed a weirdo PPU emulation bug that could cause garbage on the right |
||
566 | side of the screen in certain situations. Thanks to FrenziedPanda for |
||
567 | bugging me enough to make me look into the problem and fix it. |
||
568 | I should be on the lookout to see if the fix breaks anything, though. |
||
569 | |||
570 | Fixed the volume of high-quality sound mode(-soundq 1). It was |
||
571 | at 1/4 the volume it should have been. I compensated by increasing |
||
572 | the precision of the filter coefficients, which increased the sound |
||
573 | quality of that mode slightly without hurting performance. |
||
574 | |||
575 | November 7, 2003 - 0.97.1 Release |
||
576 | |||
577 | Fixed mapper 105 emulation. I had begun merging it into the |
||
578 | rest of the MMC1 code for 0.97, but I hadn't finished it. |
||
579 | |||
580 | Changed things like RdMem(_PC++); to RdMem(_PC); _PC++; |
||
581 | Darn evil global variables. I need to fix them. Screw speed. |
||
582 | |||
583 | Expanded checks for the global variable "fceuindbg"(used in debug |
||
584 | mode to prevent reads in the debugger from altering any registers). |
||
585 | |||
586 | November 6, 2003 - 0.97 Release |
||
587 | * Note: I still had much more I had wanted to get done for 0.97, |
||
588 | but I lost even more interest. The Windows port still doesn't |
||
589 | have a way to enable the "highest" sound emulation mode, nor the |
||
590 | low pass filter code, not to mention that the lowpass filter code |
||
591 | isn't complete(I would need to design a high-order FIR filter from an IIR |
||
592 | filter to work properly-have the correct rolloff, among other |
||
593 | things-at finite playback rates). |
||
594 | |||
595 | Fixed a bug in the IPS patcher. The recorded size wasn't being updated |
||
596 | after a successful realloc() was made, which could lead to corrupted patch |
||
597 | data from some patches. |
||
598 | |||
599 | Added support for mappers 200, 201 from submitted code. |
||
600 | |||
601 | Rewrote mapper 15 support to make more sense(well, depending |
||
602 | on your point of view...). |
||
603 | |||
604 | Fixed 256KB CHR select support for mapper 115. |
||
605 | |||
606 | Added support for mapper 12 from code from cah4e3. |
||
607 | |||
608 | October 16, 2003 - Snapshot |
||
609 | |||
610 | Fixed support for mapper 245(for nonencrypted/non-smynes-screwed up |
||
611 | ROM images only. Fixes "Yong Zhe Dou E Long [...] Dragon Quest 7". |
||
612 | |||
613 | Added support for mappers 60, 62, 230, 244 from submitted code. |
||
614 | |||
615 | Modified mapper 90 emulation to allow game-select on reset |
||
616 | for "Final Fight 3". |
||
617 | |||
618 | Modified mapper 45 emulation to allow "Super 8-in-1" to work. |
||
619 | |||
620 | Added a low-pass filter, and an option to enable it(CLI ports). |
||
621 | |||
622 | 0x00 is now written to $4011 in the NSF player code instead of 0x40. |
||
623 | Fixed some other similar sound register init problems that I had fixed |
||
624 | in Festalon but forgot to fix in FCEU. Grrr. |
||
625 | |||
626 | Removed some unnecessary 64-bit integer usage from FIR sound filtering |
||
627 | code. |
||
628 | |||
629 | Added a new sound quality mode. Higher than high, it's highest(in |
||
630 | FCE Ultra, for now). Still need to fix the interface to allow |
||
631 | enabling it in the Windows port. |
||
632 | |||
633 | Added some code for lower-level MMC3 IRQ emulation. It isn't completed |
||
634 | , and will not work properly as-is. I'm still playing around with |
||
635 | it occasionally. |
||
636 | |||
637 | Fixed the sprite overflow flag(I think I fixed it), that was broken in an earlier |
||
638 | pre-0.97 release. |
||
639 | |||
640 | Fixed support for iNES mapper 193. |
||
641 | |||
642 | Command line arguments "-pal" and "-gg" now take extra arguments(1/0) |
||
643 | and are remembered in the configuration file. |
||
644 | |||
645 | September 27, 2003 - Snapshot |
||
646 | |||
647 | Added support for iNES mapper 50. |
||
648 | |||
649 | Modified the UNIF board initialization code. Hopefully, this |
||
650 | new interface will eventually be used with the iNES code. |
||
651 | |||
652 | Miscellaneous code cleanups. |
||
653 | |||
654 | /dev/dsp is now set to 8(previously 9) buffers of 128 samples in length |
||
655 | in the SDL code. |
||
656 | |||
657 | Tried to make the save state code more expandable and modular. |
||
658 | |||
659 | Moved a lot of the PPU code into ppu.c. |
||
660 | |||
661 | Added more extensive debugging code to the 6502 emulator, to allow |
||
662 | for memory read/write hooks(including zero page addressing modes). |
||
663 | |||
664 | Readadjusted DMC timings when PAL emulation is enabled. It looks |
||
665 | like it was correct before I had made the August 2 change. Thanks |
||
666 | to Bananmos for the information. I think. :/ |
||
667 | |||
668 | Added support for iNES mapper 193 from information from virtuanes. |
||
669 | I think my dump of it is "bad", though. PRG and CHR pages look |
||
670 | like they are in the wrong order(logical vs physical? Who's to say |
||
671 | what's physical?). |
||
672 | |||
673 | September 1, 2003 - Snapshot |
||
674 | |||
675 | Fixed some minor initialization issues with iNES mappers 7 and 34. |
||
676 | |||
677 | Added support for UNIF board NES-GNROM. |
||
678 | |||
679 | Removed support for save states created with versions of FCE Ultra |
||
680 | less than 0.56. |
||
681 | |||
682 | Replaced SDL sound buffering code with a lock-free FIFO implementation |
||
683 | written by David Olofson, with a few modifications by myself. |
||
684 | |||
685 | Fixed a VRC7 NSF bug(it showed up under the reworked driver/file |
||
686 | loading order in the cli code). |
||
687 | |||
688 | The board in "Rolling Thunder" has "RAMBO 1" on it, not "RAMBO-1". |
||
689 | |||
690 | August 9, 2003 - Snapshot |
||
691 | |||
692 | Removed the old plain text documentation and replaced it with |
||
693 | a new document in HTML. It is not completed yet, though. |
||
694 | |||
695 | Rewrote the SDL-native audio code to be less wacky and more |
||
696 | thread-safe(hopefully). I'm still waiting for a new SDL audio |
||
697 | API... |
||
698 | |||
699 | Altered the MMC5 IRQ timing. Fixes minor graphical glitches |
||
700 | in Castlevania 3. Does it break anything? |
||
701 | |||
702 | Removed some debugging code that got into the last snapshot. |
||
703 | |||
704 | August 5, 2003 - Snapshot |
||
705 | |||
706 | Added some code in the IPS patcher to allow for expanding the size of files. |
||
707 | |||
708 | Fixed a double free() bug with a mapper 51 game(in ines.c). |
||
709 | |||
710 | Added support for "Alien Syndrome" (US release) as iNES mapper 158. |
||
711 | It looks like a derivative of the normal RAMBO-1 board(or is that |
||
712 | the name of the chip?), similar to TKSROM/TLSROM(mapper 118). |
||
713 | |||
714 | Improved the "native" SDL sound code. It will now call SDL_Delay(), |
||
715 | among other nice things. The code could probably be improved more, |
||
716 | though. |
||
717 | |||
718 | Added support for decimal components in xscale/yscale in the SDL |
||
719 | port. Set the default xscale for windowed mode to 2.40(to get a |
||
720 | more correct aspect ratio, assuming the display is currently at |
||
721 | a 4:3 aspect ratio). |
||
722 | |||
723 | Modified args.c to handle floating-point numbers. |
||
724 | |||
725 | August 2, 2003 - Snapshot. |
||
726 | |||
727 | Disabled texture wrapping with OpenGL(there were problems at the edges |
||
728 | of the screen with linear interpolation). Bah. Now the edges |
||
729 | are too bright... |
||
730 | |||
731 | Improved the accuracy of the DMC timing when PAL emulation is enabled. |
||
732 | I still don't think it's totally correct, though. |
||
733 | |||
734 | Changed the default settings for the SDL code. Full screen |
||
735 | is now 640x480x8bpp by default, xscale and yscale are 2 for both full |
||
736 | screen and windowed, opengl support is enabled, linear interpolation |
||
737 | for OpenGL is enabled, and X-axis stretching is |
||
738 | enabled(in full screen). |
||
739 | |||
740 | "Scanlines" were enabled in 8bpp to 8bpp blits in |
||
741 | drivers/common/vidblit.c when they shouldn't have been. Fixed. |
||
742 | |||
743 | Fixed OpenGL code under big-endian platforms. |
||
744 | |||
745 | August 1, 2003 - Snapshot. |
||
746 | |||
747 | Various code clean-ups. |
||
748 | |||
749 | Played around with adding a GTK+ GUI to the SDL code. |
||
750 | |||
751 | Rewrote part of the hq sound rectangle wave code. |
||
752 | |||
753 | Replaced the high-quality sound inline assembly filter code with |
||
754 | slightly faster C code. |
||
755 | |||
756 | Hacked around with GP32 support. I don't know if the GP32 would |
||
757 | be fast enough, though. |
||
758 | |||
759 | Skipped frames will now have D5 of $2002 set at the beginning |
||
760 | of the frame. Fixes "Bee 52". I must see if it breaks anything. |
||
761 | |||
762 | Added OpenGL support to the SDL code. |
||
763 | |||
764 | Removed the PPU drawing inline assembly code, replacing it with a faster |
||
765 | algorithm written in C. |
||
766 | |||
767 | "Disabling" the 8-sprite limitation will no longer cause |
||
768 | "Bee 52" to break. However, the "Solstice" wizard will still |
||
769 | have the weird thing growing out of his face in the introduction, |
||
770 | since it depends on no more sprites to be rendered. |
||
771 | |||
772 | Added entry for that Black Bass game for header corrections in |
||
773 | ines.c |
||
774 | |||
775 | Strip color burst bit(D0 of $2001) is only "emulated" if bg or |
||
776 | sprite rendering are turned on, at the end of the scanline. |
||
777 | Doing it with pixel/tile granularity would require modifying |
||
778 | the sprite graphics data copying routine, which I don't |
||
779 | feel like doing. Fixes that crazy Sayoonara demo by Chris Covell. |
||
780 | I also modified the NES RAM initialization code. |
||
781 | |||
782 | Adjusted VRC7 IRQ emulation for better Lagrange Point goodness. |
||
783 | |||
784 | Added support for iNES mapper 91. (VirtuaNES) |
||
785 | |||
786 | 0.96: |
||
787 | Improved RAMBO-1(mapper 64) emulation. "Skull and Crossbones" is |
||
788 | now playable. |
||
789 | |||
790 | 0.95: |
||
791 | |||
792 | timestamp and timestampbase are no longer saved/loaded to/from |
||
793 | save states. They were causing too many problems I didn't |
||
794 | want to fix, and I never intended them to be saved in save states |
||
795 | when I wrote the code that uses them. |
||
796 | I think the reason they were being saved was that I wanted to make it |
||
797 | possible to add movie support and network play save state loading |
||
798 | (distributing the save state over the network). So if someone in |
||
799 | the future wants to add these features, the issues(primarily with |
||
800 | zapper emulation and sound emulation) with saving the time stamp will |
||
801 | need to be resolved. |
||
802 | |||
803 | Fixed some crashing bugs when save states are loaded when |
||
804 | high-quality sound emulation is enabled. It is like patching |
||
805 | holes in a swiss-cheese boat. All the holes may be patched, but |
||
806 | it looks ugly. At least it tastes good... |
||
807 | TODO: Look into saving more data in the save states, especially |
||
808 | data that is based off of "timestamp" and "timestampbase". Also |
||
809 | look into validating this data. Right now, corrupt save state data |
||
810 | might cause memory corruption in FCE Ultra. |
||
811 | |||
812 | Fixed some bugs in the NSF player. |
||
813 | |||
814 | Cleaned up more code. |
||
815 | |||
816 | Reduced the usage of TriggerIRQ(). |
||
817 | |||
818 | Split the palette code into a new file, palette.c, from svga.c |
||
819 | |||
820 | Low-G-Man(NTSC and PAL versions) are now recognized by CRC32 value, |
||
821 | and WRAM will be disabled if they are loaded. A warning/status message |
||
822 | will also be printed regarding this issue. |
||
823 | |||
824 | Decreased the volume of the DMC/PCM channel in low-quality sound |
||
825 | emulation. |
||
826 | |||
827 | Low-quality sound emulation now uses 32-bit integers for much |
||
828 | better speed. |
||
829 | |||
830 | FCEUI_CRC32() wasn't returning anything. D'oh. Fixed. |
||
831 | |||
832 | Added somewhat crude support for games that switch background CHR data |
||
833 | mid-scanline (this is needed in games such as Mother, Pirates!, |
||
834 | Business Wars, and Marble Madness). |
||
835 | |||
836 | Altered NMI, IRQ, and BRK emulation again. Fixes some games, |
||
837 | like Bases Loaded 2 and Dynamite Bowling, and maybe some others. |
||
838 | I had to increase the size of the IRQlow variable for delayed |
||
839 | NMI execution... I also had to add a delay between PPU reset |
||
840 | and the PPU actually doing anything, to fix "Knight Rider". |
||
841 | |||
842 | Fixed a mapper 90 save state bug. |
||
843 | |||
844 | /dev/dsp code now searches for /dev/dsp before /dev/dspX (where X is |
||
845 | a non-negative integer). |
||
846 | |||
847 | SDL joystick axes configuration is now done from the joystick. |
||
848 | |||
849 | Tweaked various Konami mappers' IRQ counter emulation. |
||
850 | |||
851 | Added custom SDL throttle code that gives up time slices instead of |
||
852 | using 100% cpu. |
||
853 | |||
854 | Fixed an issue with sprite priorities on MSB-first platforms. |
||
855 | |||
856 | Modified powerpad.c to avoid a symbol conflict when compiling on the |
||
857 | Power PC architecture. |
||
858 | |||
859 | 0.94r3: |
||
860 | sound.c: |
||
861 | Fixed a divide-by-zero bug that occurred when a virtual |
||
862 | reset(like by pressing F10) occurred when sound emulation was |
||
863 | disabled. |
||
864 | |||
865 | 0.94r2: |
||
866 | drivers/common/vidblit.c: |
||
867 | Fixed code for 32bpp blur effect. |
||
868 | |||
869 | drivers/cli/sdl-video.c: |
||
870 | Added error message for unsupported bit depths. |
||
871 | |||
872 | mappers/simple.c, ines.c: |
||
873 | Used this bug fix pseudo-release as an excuse to add |
||
874 | support for mapper 107. Information taken from virtuanes. |
||
875 | |||
876 | 0.94(fixed release) |
||
877 | --- |
||
878 | Fixed call to InitUNIXDSPSound in svgalib.c |
||
879 | |||
880 | Added man pages. |
||
881 | |||
882 | 0.94 |
||
883 | --- |
||
884 | Added support for rapid fire A/B buttons on physical joysticks |
||
885 | in SDL/svgalib/DOS code. |
||
886 | |||
887 | Implemented "high-quality" Namco 106 emulation(used for hq sound mode). |
||
888 | In this case, "high-quality" means sounding more like it should, |
||
889 | not necessarily cleaner. I'm not certain that it's totally correct, |
||
890 | but it's in the right direction. |
||
891 | |||
892 | RAM cheats should no longer affect Game Genie emulation. I still |
||
893 | need to completely verify this. There may be some sort of race |
||
894 | condition. |
||
895 | |||
896 | Removed various minor speed hacks in the name of style and |
||
897 | correctness(and to make maintaining FCE Ultra easier for those |
||
898 | people who are not me). :) |
||
899 | |||
900 | Removed NSF cpu hacks, as I changed code to make them unnecessary. |
||
901 | |||
902 | Fixed another FDS IRQ emulation bug. "Famicom Grand Prix II" works |
||
903 | now. |
||
904 | |||
905 | Fixed a memory leak and a heap corruption bug in "file.c". |
||
906 | |||
907 | Added support for on-the-fly IPS patching. |
||
908 | Place the IPS file in the same directory as the file to load, |
||
909 | and name it filename.ips. |
||
910 | |||
911 | Examples: Boat.nes - Boat.nes.ips |
||
912 | Boat.zip - Boat.zip.ips |
||
913 | Boat.nes.gz - Boat.nes.gz.ips |
||
914 | Boat - Boat.ips |
||
915 | |||
916 | Some operating systems and environments will hide file extensions. |
||
917 | Keep this in mind if you are having trouble. |
||
918 | |||
919 | Patching is supported for all supported formats(iNES, FDS, UNIF, and |
||
920 | NSF), but it will probably only be useful for the iNES format. It |
||
921 | can be used with the FDS format, but be warned that it will permanently |
||
922 | patch your disk image, as the disk image is written back to disk |
||
923 | when the game is unloaded(unless the disk image is in a zip file, in |
||
924 | which case it isn't written back to disk). UNIF files can't be |
||
925 | patched well with the IPS format because they are chunk-based with no |
||
926 | fixed offsets. Support for a UNIF patching format may be added |
||
927 | in the future(probably by someone else.). |
||
928 | |||
929 | Added more games to the list in ines.c for having battery-backed |
||
930 | WRAM, for header corrections. |
||
931 | |||
932 | Copied over the 96KHz filter coefficients from Festalon that I forgot |
||
933 | to do in 0.92. Oops. |
||
934 | |||
935 | |||
936 | 0.93 |
||
937 | --- |
||
938 | |||
939 | Reduced the volume of the FDS sound channel. |
||
940 | |||
941 | Fixed a bug in the FDS IRQ emulation code that caused "Lutter" to not work. |
||
942 | |||
943 | Fixed a bug in unif.c that would cause a crash if a unif file were |
||
944 | loaded without a board name being specified(as could happen |
||
945 | with a corrupted nsf). |
||
946 | |||
947 | Fixed a bug in general.c relating to relative filenames(running |
||
948 | fce ultra like "./fceu ../big.nes" would work, but "./fceu ../big" |
||
949 | would not work- it crashed). |
||
950 | |||
951 | |||
952 | |||
953 | 0.92r2 |
||
954 | --- |
||
955 | Fixed dpcm irq bug that broke Cobra Triangle. |
||
956 | |||
957 | .92 |
||
958 | --- |
||
959 | |||
960 | Removed NSF player background, and added some special effects goodies. |
||
961 | |||
962 | Changed the NSF player to use the emulated gamepad as input instead |
||
963 | of having special NSF-player-only keys. |
||
964 | |||
965 | Added support for mapper 249(using nonencrypted games), thanks to SARO |
||
966 | for info. SMYNES sucks. |
||
967 | |||
968 | Updated video blitting library-thing(vidblit.c) with more special |
||
969 | effects, and removed 24bpp support. |
||
970 | |||
971 | SDL cleanupification. |
||
972 | |||
973 | Added support for mapper 61. |
||
974 | |||
975 | nnnesterj: Added support for mapper 57. |
||
976 | |||
977 | Fixed mapper number for "Golden Game 150 in 1". Changed it to 235 |
||
978 | from 43. |
||
979 | |||
980 | DDraw back buffer surfaces are now created in system memory if the |
||
981 | hardware blitter can't do stretching. |
||
982 | |||
983 | Restructured file wrapping code. |
||
984 | |||
985 | Added new cheat search methods. |
||
986 | |||
987 | Fixed a major cheat unloading memory bug(and memory leak). |
||
988 | |||
989 | Emulated that funky nonlinear DAC effect for hi-quality sound. |
||
990 | |||
991 | More fixes/cleanups to FDS emulation code. |
||
992 | |||
993 | Tweaked PPU timing a bit. |
||
994 | |||
995 | Improved network play. |
||
996 | |||
997 | Holding the enter key down will no longer do fun stuff to the nsf |
||
998 | player. |
||
999 | |||
1000 | Improved NSF player. It should support streaming pcm nsfs now... |
||
1001 | |||
1002 | Changed FDS keyboard keys around a bit. F6 is the disk select key, |
||
1003 | and F8 is the disk insert/eject key. |
||
1004 | F8 to insert VS Unisystem coin, F6 to view/toggle dip switches. |
||
1005 | Hopefully people won't complain after blindly hitting the save state |
||
1006 | buttons. :) |
||
1007 | |||
1008 | Many fixes and improvements to the Windows port. No more cpu-consuming |
||
1009 | wait loops(specifically, sound). Added a message window. |
||
1010 | |||
1011 | FDS sound emulation improvements. |
||
1012 | |||
1013 | FDS disks are now auto-inserted on power on(or was it loading a new |
||
1014 | game...). |
||
1015 | |||
1016 | Changed the default last rendered scanline to 231. |
||
1017 | |||
1018 | ines header corrections are now printed as status messages, not errors. |
||
1019 | |||
1020 | Rearranged input updating code. |
||
1021 | |||
1022 | Fixed a sprite transfer bug. Fixes PAL version of Rainbow Islands. |
||
1023 | |||
1024 | Debugger hooks added. |
||
1025 | |||
1026 | Small optimizations in Refreshline and FetchSpriteData to hopefully |
||
1027 | offset the slight slowdown in the cpu core. |
||
1028 | |||
1029 | MapperHBIRQHook is now called differently(depending on hi/low bg/spr |
||
1030 | addresses). |
||
1031 | |||
1032 | Added support for unif board UNL-8237. |
||
1033 | |||
1034 | Added support for mapper 144(death race). |
||
1035 | |||
1036 | Added partial support for mapper 74. |
||
1037 | |||
1038 | Fixed a cpu emulation bug in GETIYWR. It would sometimes set "target" |
||
1039 | to 0x10000, which was a BAD THING(overflow; now it wraps). |
||
1040 | |||
1041 | Tried to add support for mapper 241. Needs special keyboard emulation. |
||
1042 | I think. |
||
1043 | |||
1044 | Internal RAM is now initialized to something other than 0. Fixes |
||
1045 | Minna no Taabou no Nakayoshi Dai Sakusen. |
||
1046 | |||
1047 | Reassigned "The Money Game" to mapper 155. It doesn't seem to |
||
1048 | respect the WRAM enable/disable bits. Silly game. And |
||
1049 | Tatakae!! Rahmen Man. |
||
1050 | |||
1051 | Added support for mapper 115(still needs 256KB CHR select), 241, 114,88. |
||
1052 | |||
1053 | Attempted to add support for mappers 91, 187. |
||
1054 | |||
1055 | Modified frame IRQ to not break so many damn games. |
||
1056 | |||
1057 | Fixed sprite hit detection loop. |
||
1058 | |||
1059 | Improved support for mappers 80, 90,117,154, 189. |
||
1060 | nnnester and virtuanes. |
||
1061 | |||
1062 | Reassigned "Devil Man" to mapper 154. |
||
1063 | |||
1064 | Removed bogus Trojan header fix in ines.c. |
||
1065 | |||
1066 | |||
1067 | |||
1068 | .81-post: |
||
1069 | ---- |
||
1070 | Fixed/Worked around(?) compilation problems on gcc 3.2.x. |
||
1071 | |||
1072 | .81: |
||
1073 | ---- |
||
1074 | |||
1075 | More SDL goodies. |
||
1076 | |||
1077 | Renamed "Makefile.olinuxsdl" to "Makefile.unixsdl" |
||
1078 | |||
1079 | More SDL fixes and cleanups. |
||
1080 | |||
1081 | BeOS port is now compiled with the "-no-fpic" flag, which allows |
||
1082 | me to use my inline assembly. The executable work fine as far as |
||
1083 | I can tell. |
||
1084 | |||
1085 | Added "Makefile.beos". gcc doesn't like my inline assembly |
||
1086 | used in RefreshLine(),so this port will likely be slightly slower than |
||
1087 | other x86 ports. |
||
1088 | |||
1089 | Added a check to make sure SIGBUS is not equal to SIGSEGV in |
||
1090 | drivers/cli/main.c. Needed for compiling under BeOS. |
||
1091 | |||
1092 | Renamed the "PI" member of the X6502 structure due to conflicts with |
||
1093 | a defined symbol with some math header files. |
||
1094 | |||
1095 | Merged fcelineasm.h into fceline.h |
||
1096 | |||
1097 | Fixed(possibly) a possible problem in fcelineasm.h with input register |
||
1098 | clobbering. |
||
1099 | |||
1100 | More SDL changes. |
||
1101 | |||
1102 | Added speed throttling code to the CLI code, and added a command |
||
1103 | line switch "-nothrottle". |
||
1104 | |||
1105 | Lots of restructuring/rewriting/merging of the MMC3 code. |
||
1106 | |||
1107 | Updated DOS code to use the generic CLI wrapper. |
||
1108 | |||
1109 | Reads from $4090 and $4092 now return the current envelope setting |
||
1110 | in FDS sound emulation. I'm not sure if this is correct... Affects |
||
1111 | "Ai Senshi Nicole" and "Bio Miracle Bokutte Upa". |
||
1112 | |||
1113 | Added native SDL sound support to the SDL code. the "olinuxsdl" |
||
1114 | now uses this code by default instead of the unixdsp sound code. |
||
1115 | |||
1116 | Modified MMC3 IRQ counter emulation. I'll need to watch out to see |
||
1117 | if it breaks any games. Fixes: MegaMan 3, Gun Nac, Klax(Japanese). |
||
1118 | |||
1119 | Changed a few memory reads in x6502.c to use RdRAM instead of RdMem, |
||
1120 | resulting in a slight speed increase. |
||
1121 | |||
1122 | Cleaned up mapper 250 emulation code. |
||
1123 | |||
1124 | Added support for iNES mapper 51(thanks to Kevin Horton for the |
||
1125 | information). |
||
1126 | |||
1127 | Merged some iNES mappers corresponding to bootleg multicarts |
||
1128 | based on MMC3s with mbshare/mmc3.c. |
||
1129 | |||
1130 | Added support for iNES mapper 52(thanks to Kevin Horton for the |
||
1131 | information). |
||
1132 | |||
1133 | Made some hacks to the MMC3 emulation code so that I can add support |
||
1134 | for pirate MMC3 multicarts more easily. I should clean it up later. |
||
1135 | Moved mapper 44 emulation code to mbshare/mmc3.c. |
||
1136 | |||
1137 | Saving screen snapshots will no longer corrupt the frame buffer |
||
1138 | for one frame(unless memory couldn't be allocated). |
||
1139 | |||
1140 | Fixed screen snapshot saving(it was sort of broken due to the |
||
1141 | changes made to the driver<->emulator interface code; status |
||
1142 | messages were being saved to the image). FCEUI_SaveSnapshot() |
||
1143 | no longer returns a value(the request to save a screen snapshot is |
||
1144 | serviced before status information would be written in the next frame). |
||
1145 | |||
1146 | nosprites is now set to 0 before RefreshSprite() returns, to prevent |
||
1147 | problems if a game turns off the bg and sprites when FetchSpriteData() |
||
1148 | for the next scanline is called but then turns on sprites when |
||
1149 | the actual scanline is drawn. |
||
1150 | |||
1151 | PPU_hook() is now called more often if PPU_hook is non-null. |
||
1152 | Made changes to mappers 118, 95, 9, and 10 to compensate. |
||
1153 | No games seem to be broken, and I added support for mapper 96 |
||
1154 | (though the games aren't very playable because the special controller |
||
1155 | isn't emulated). |
||
1156 | |||
1157 | Romance of the 3 Kingdoms is now recognized to use 16KB ex-WRAM. |
||
1158 | |||
1159 | Added support for mapper 185...sort of. I think this is another |
||
1160 | instance of incompatible hardware being lumped onto one mapper number. |
||
1161 | Sigh. |
||
1162 | |||
1163 | Added support for "Famicom Jump 2" as iNES mapper 153. |
||
1164 | If a good(as far as I can tell) dump is loaded, FCE Ultra will |
||
1165 | automatically fix the mapper number. |
||
1166 | I also made some changes to the mapper 16 IRQ emulation code. |
||
1167 | |||
1168 | BRK now sets the I flag. |
||
1169 | |||
1170 | Reads from $4015 no longer reset DPCM IRQ. |
||
1171 | |||
1172 | Changed emulation of RTI instruction slightly. |
||
1173 | |||
1174 | X.IRQlow is now set to 0 in PowerNES(). |
||
1175 | |||
1176 | The VS Unisystem bit in the iNES header is no longer looked at( |
||
1177 | I was having too many problems with this bit being set when it |
||
1178 | shouldn't have been). Now, VS Unisystem emulation is enabled |
||
1179 | when a known VS Unisystem game is loaded. I also rewrote the VS |
||
1180 | Unisystem detection function. |
||
1181 | |||
1182 | iNES mapper 1 now supports pageable CHR RAM if no CHR ROM is present. |
||
1183 | Fixes "Family School". |
||
1184 | |||
1185 | Mapper 70 no longer has a mirroring control emulated, and I extended |
||
1186 | the number of 8KB CHR pages supported to 16. |
||
1187 | |||
1188 | Cleaned up iNES MMC5 save RAM loading/saving code and added |
||
1189 | support for MMC1 games with 16KB of RAM(the second 8KB are saved), |
||
1190 | via CRC32s(currently only Genghis Khan(USA) and Nobunaga's Ambition( |
||
1191 | USA and Japan) are recognized). |
||
1192 | |||
1193 | Added support for the MMC5 Koei game "Ishin no Arashi", in the iNES |
||
1194 | format(I added an entry with its CRC32 value and the number of 8KB |
||
1195 | WRAM banks it needs). |
||
1196 | |||
1197 | Better iNES mapper 33/48 IRQ counter emulation. |
||
1198 | |||
1199 | Added the game "Uchuusen - Cosmo Carrier" to this list. I'm |
||
1200 | beginning to hate the iNES format more and more...or maybe |
||
1201 | just Fanwen. :) |
||
1202 | |||
1203 | Added the mapper 32 game "Major League" to the list of games |
||
1204 | that usually need iNES header correction...but in this case, the |
||
1205 | iNES header cannot specify that this game needs to have one-screen |
||
1206 | mirroring. |
||
1207 | |||
1208 | iNES header information is now printed before any header corrections |
||
1209 | are made based on a database. |
||
1210 | |||
1211 | Fixed a bug in mapper 32 emulation. "Ai Sensei no Oshiete" |
||
1212 | works now. |
||
1213 | |||
1214 | Tried to add support for iNES mappers 245 and 249. |
||
1215 | |||
1216 | Fixed the MMC5 read handler to return the data last on the data |
||
1217 | bus instead of 0xFF when a read was made to an unmapped address. |
||
1218 | This seems to fix the lockup problems in "Bandit Kings of Ancient |
||
1219 | China". |
||
1220 | |||
1221 | Reversed "Modified the time at which the "y scroll" register is updated |
||
1222 | during hblank." The changes broke Klax. |
||
1223 | |||
1224 | Added an unsigned 64-bit base timestamp variable "timestampbase". |
||
1225 | Adding this to the 32-bit variable "timestamp" will return |
||
1226 | the number of cycles executed since emulation started(in the future |
||
1227 | I'll probably change it to since reset or power toggle). |
||
1228 | This allowed me to replace "lastn" hack in the MMC1 code with |
||
1229 | something better. |
||
1230 | |||
1231 | Changed my mind and undid the removal of support for old save states. |
||
1232 | |||
1233 | Removed support for old save states and in general I won't |
||
1234 | try to support save states made with previous versions. |
||
1235 | |||
1236 | MMC1: Writes to $8000-$FFFF with D7 set will now cause |
||
1237 | the first MMC1 register to be OR'ed with 0x0C. I'm not sure |
||
1238 | if this is correct, but it doesn't seem to break anything |
||
1239 | and it fixes Robocop 3. I'll see if anyone reports games |
||
1240 | not working in .81 that worked in .80. |
||
1241 | |||
1242 | Worked on a generic driver interface wrapper very similar |
||
1243 | to the driver interface FCE Ultra used to use(I'm getting |
||
1244 | tired of all of the duplicated driver code). Eventually, |
||
1245 | the DOS, SVGAlib, and SDL ports will use this wrapper. |
||
1246 | |||
1247 | Similar change to the argument parsing code. |
||
1248 | |||
1249 | Changed configuration file saving-loading routines and the |
||
1250 | configuration structure to allow for linking config structures |
||
1251 | to each other). |
||
1252 | |||
1253 | Small fix to the emulation of the MMC5 split screen mode. |
||
1254 | |||
1255 | Made Linux SDL code compilable again. |
||
1256 | |||
1257 | Changes to MMC5 EXRAM emulation(read/write). |
||
1258 | |||
1259 | Fixes to the emulation of the MMC5's split screen mode, based on |
||
1260 | observations while using CastleVania 3 and a Game Genie(on a real |
||
1261 | NES). |
||
1262 | |||
1263 | Fixed a bug in ines.c that caused any calls to AddExState() from |
||
1264 | a mapper initialization function to be effectively "erased"(ResetExState() |
||
1265 | was called after the mapper was initialized). Fixes the VRC7 sound |
||
1266 | state saving/loading stuff. |
||
1267 | |||
1268 | Finished adding support for the MMC5's split screen mode(this does |
||
1269 | not mean that the support is complete, but at least the intro in |
||
1270 | "Uchuu Keibitai SDF" works correctly now). |
||
1271 | |||
1272 | Worked on adding support for the MMC5's split screen mode. Not |
||
1273 | completed. |
||
1274 | |||
1275 | Reverted to .80's FDS sound code. |
||
1276 | |||
1277 | Modified the time at which the "y scroll" register is updated |
||
1278 | during hblank. |
||
1279 | |||
1280 | NSF playing code will now disable FDS sound output on song init |
||
1281 | (fixes some problems with the Zelda no Densetsu NSF rip). |
||
1282 | |||
1283 | Increased the emulated clock speed of the FDS sound emulation code |
||
1284 | to give better quality output. |
||
1285 | |||
1286 | Modified NMI to occur a few cycles later. Fixes BattleToads...but |
||
1287 | it may have broken other games. Also modified the way NMI's are |
||
1288 | handled in x6502.c. |
||
1289 | |||
1290 | Modified ines.c to memset() GameMemBlock to 0 on virtual power toggle. |
||
1291 | Also, trainers are now loaded into their own buffer instead of |
||
1292 | directly into emulated WRAM and copied into emulated WRAM on |
||
1293 | power toggle; I've been meaning to do this for quite some time. |
||
1294 | |||
1295 | Changes to the way the zapper cursor is drawn on the screen. |
||
1296 | |||
1297 | FCEUD_WriteSoundData(), FCEUD_BlitScreen(), and FCEUD_UpdateInput() |
||
1298 | have been combined into one function: FCEUD_Update(). |
||
1299 | |||
1300 | More fixes to the network play code, and a fix to the Windows network |
||
1301 | play driver code that fixes(hopefully) a rather evil bug that caused |
||
1302 | lockups when the remote stopped network play. |
||
1303 | |||
1304 | Added code to set the battery-backed bit in RAM if a game needs it, |
||
1305 | based on CRC32. |
||
1306 | |||
1307 | Added more games to the list of games that commonly have bad iNES |
||
1308 | headers, in ines.c |
||
1309 | |||
1310 | Updated docs and usage.h for DOS and Linux regarding the new video |
||
1311 | mode and the new refresh rates. |
||
1312 | |||
1313 | Linux: Fixed a bug with video mode 6(a few upper scanlines were being |
||
1314 | cut off). Increased the refresh rate of video mode 3 to 120hz. |
||
1315 | |||
1316 | Increased the refresh rate of video mode 2 to 65 hz in the Linux port. |
||
1317 | |||
1318 | Screen snapshots can now be taken while playing an NSF. |
||
1319 | |||
1320 | Added a new sexy tweaked vga mode that I created to the Linux svgalib |
||
1321 | port. It's 256x224 at a refresh rate of 103hz. Hopefully it won't |
||
1322 | blow up anyone's monitor. ;) |
||
1323 | DOS port will follow eventually. |
||
1324 | |||
1325 | Modified Makefile.base to produce an executable named "fceu" instead |
||
1326 | of "fce". |
||
1327 | |||
1328 | The plans(cycle-accurate ppu emulation) for .90 were a bit ambitious, |
||
1329 | and I still need to make other fixes before then. |
||
1330 | |||
1331 | Fixed some minor(usually) bugs with setting 256x240 tweaked VGA mode |
||
1332 | in DOS and Linux ports. |
||
1333 | |||
1334 | .80: |
||
1335 | ---- |
||
1336 | |||
1337 | Cleaned/fixed a few things in the mapper 19 emulation code. |
||
1338 | Family Circuit '91 still doesn't work quite right... I wonder if |
||
1339 | it's a bad dump. |
||
1340 | |||
1341 | Added input override code to Windows port. |
||
1342 | |||
1343 | Added code to fix iNES header information in RAM and suggest |
||
1344 | changes to the user. |
||
1345 | |||
1346 | Added support for iNES mapper 152(to be used with games set to |
||
1347 | mapper 70, that use one-screen mirroring instead of h/v mirroring). |
||
1348 | |||
1349 | Blits using the DirectX blitting function(method?) to the primary |
||
1350 | surface are now done with the asynchronous flag set(if that |
||
1351 | fails, a "normal" blit is tried). |
||
1352 | |||
1353 | The DirectX blit buffer(secondary surface that FCE Ultra writes to |
||
1354 | directly and then uses the DirectDraw blit function on to blit |
||
1355 | to the primary buffer) is now created without specifying it |
||
1356 | should be in system memory or video memory, except in the case |
||
1357 | when no hardware blitting is available, and then DDraw is explicitly |
||
1358 | told to create the surface in system memory. |
||
1359 | |||
1360 | Added Family Keyboard support to the DOS port. |
||
1361 | |||
1362 | Cleaned up the VRC7 sound emulation code. I need to find a way |
||
1363 | to save the current sound state in a save state. |
||
1364 | |||
1365 | Found out the real name of the "Space Shadow" gun; it's |
||
1366 | called the "Hyper Shot". I'm still not sure who made it, though. |
||
1367 | Possibly Bandai did. The interesting thing is that Konami |
||
1368 | also made a Famicom accessory(dual square boxy things with two buttons |
||
1369 | on each) with the same name(though there might not be a space in the |
||
1370 | name). |
||
1371 | |||
1372 | Only the upper two bits read from $4016/$4017 are undefined. |
||
1373 | Bit5 is always 0, though. Fixed the bug in "input.c". |
||
1374 | Silly kevtris' old documents. New kevtris' brain is always good. |
||
1375 | |||
1376 | Family Keyboard support for the Windows port. |
||
1377 | |||
1378 | Added support for the Family Basic Keyboard to the Linux port, other |
||
1379 | ports todo. |
||
1380 | Might want to add support for the tape recorder at some time. |
||
1381 | Also mapped the "Scroll Lock" key to disable/enable command keys |
||
1382 | so that the FBK is more useable. It doesn't disable CTRL C, |
||
1383 | though... |
||
1384 | |||
1385 | Changed a lot of inlined functions in x6502.c to macros so that |
||
1386 | I could test out some optimization ideas. |
||
1387 | |||
1388 | DOS code updates for game input override support. |
||
1389 | |||
1390 | Small optimzation to opcode $4c, and relative jumps. |
||
1391 | |||
1392 | Added some code to ines.c to set controller information in |
||
1393 | FCEUGameInfo(returned by FCEUI_LoadGame()) based on crc32 values. |
||
1394 | |||
1395 | Updated user documentation and usage.h for DOS and SVGAlib input |
||
1396 | command-line changes. |
||
1397 | |||
1398 | Added an option to disable the four-score(to Windows and Linux ports |
||
1399 | so far). |
||
1400 | |||
1401 | Updated Windows interface to support the new Famicom expansion |
||
1402 | devices. |
||
1403 | |||
1404 | (Re)Added support for the Famicom 4-player device. |
||
1405 | |||
1406 | Improved Zapper emulation...sort of. It still needs a lot of work. :/ |
||
1407 | |||
1408 | Added *partial* support for the "Space Shadow" gun. |
||
1409 | |||
1410 | Added support for the Arkanoid controller(both NES and Famicom style). |
||
1411 | |||
1412 | Added code to support the extension Famicom input devices. |
||
1413 | |||
1414 | Added PAL scanline start/end drawing settings to Windows port. |
||
1415 | |||
1416 | Added pause emulation key(F2) to Windows port. |
||
1417 | |||
1418 | In the process of rewriting/fixing up input code stuff. |
||
1419 | |||
1420 | Minor bug fix to Power Pad emulation code. |
||
1421 | |||
1422 | VS Hogan's Alley and VS Duck Hunt automatically select the zapper |
||
1423 | now(though it only works on the SVGAlib port). |
||
1424 | |||
1425 | Undid some FDS sound code changes introduced in 0.76 that totally |
||
1426 | screwed up sound. Oops. |
||
1427 | |||
1428 | Added code to allow different settings for first/last scanline |
||
1429 | drawn while in PAL emulation mode, to the Linux and DOS ports. |
||
1430 | |||
1431 | Added convenience(it's not necessary, but it reduces redundant and |
||
1432 | confusing code in the driver code) function |
||
1433 | FCEUI_GetCurrentVidSystem(int *slstart, int *slend). |
||
1434 | |||
1435 | Updated file "TODO". |
||
1436 | |||
1437 | Changed #include |
||
1438 | in file.c. |
||
1439 | |||
1440 | NSF 6502 player now initialized the stack pointer on reset. |
||
1441 | |||
1442 | Worked on de-emphasis emulation code quite a bit. |
||
1443 | The deemphasized palette calculated at the end of the frame is now |
||
1444 | based on what deemphasis bits were set for the longest during |
||
1445 | the screen(sampling interval is a scanline) update loop. |
||
1446 | Added a "static" deemphasized palette at $40-$7F in the palette table. |
||
1447 | This corresponds to the colors when all of the deemphasis bits are set. |
||
1448 | I did this to fix the PAL game "Noah's Ark", without breaking |
||
1449 | anything else. The only downside is a slight speed loss(~2% on |
||
1450 | my system when sound is disabled), but this is acceptable to me, |
||
1451 | at least. |
||
1452 | Maybe it's time to write hi/true-color ppu drawing code... |
||
1453 | |||
1454 | |||
1455 | Fixed an out of bounds array access in svga.c in SetNESDeemph(). |
||
1456 | The variable "lastd" in svga.c was being initialized to the wrong value. |
||
1457 | Thanks to "Jarod CANAL" for pointing this out. |
||
1458 | |||
1459 | Removed FCEUI_SetFirstRenderedLine or whatever it was called and |
||
1460 | the function to set the last line. Replaced with: |
||
1461 | void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall); |
||
1462 | |||
1463 | Changed SetVidSys(int w) to ResetVidSys() in fce.c. Reenabled |
||
1464 | PAL/NTSC emulation overrides based on game loaded(really only useful |
||
1465 | for NSFs and UNIFs now). |
||
1466 | |||
1467 | UNIF loading code now recognizes the chunk "CTRL" and tries |
||
1468 | to use it. Only the svgalib code supports overriding of input |
||
1469 | settings based on game loaded, now, though... |
||
1470 | The user is still going to have to configure powerpad settings |
||
1471 | on his/her own. |
||
1472 | |||
1473 | Fixed return values of FCEU_fseek() and fixed a problem in unif.c |
||
1474 | related to it. |
||
1475 | |||
1476 | Changed mechanism for how FCE Ultra tells the driver |
||
1477 | code what type of system is being emulated. A structure of |
||
1478 | type "FCEUGI" is returned from FCEUI_LoadGame(). |
||
1479 | |||
1480 | Fixed a major mapper 64 emulation bug introduced in 0.76. |
||
1481 | |||
1482 | Modified BlitVidHi() in drivers/win/video.c to speed it up. |
||
1483 | |||
1484 | Added support for loading the iNES-format Game Genie ROM image. |
||
1485 | |||
1486 | Removed ggrom.h and added code to load the Game Genie ROM |
||
1487 | image from a file. |
||
1488 | |||
1489 | Added Windows netplay.c. (new: the user exiting the emulator |
||
1490 | while stuck in a blocking recv() or send() loop now works.) |
||
1491 | |||
1492 | Fixed a vram address register bug in fce.c that I created when I got |
||
1493 | rid of the pair/dpair data types. |
||
1494 | |||
1495 | Added new mappers/92.c |
||
1496 | |||
1497 | Removed mappers/92.c until I can contact LULU or rewrite it. |
||
1498 | |||
1499 | drivers/win changes. Removed netplay.c until I can rewrite it. |
||
1500 | |||
1501 | Got rid of pair/dpair data types. |
||
1502 | |||
1503 | Got rid of silly "TempArray" thing. |
||
1504 | |||
1505 | Began adding GPL headers to files. FCE Ultra is going to be in |
||
1506 | a state of legal limbo for the next few days... |
||
1507 | |||
1508 | Replaced crc32.c and crc32.h, and added some #ifdef's and #defines |
||
1509 | to use the crc32 code in zlib instead if zlib is linked with |
||
1510 | FCE Ultra. |
||
1511 | |||
1512 | More fixes to sb.c. |
||
1513 | |||
1514 | Cleaned up drawing.h and ggrom.h(even though ggrom.h will *probably* |
||
1515 | be removed before the next release). |
||
1516 | |||
1517 | Redid frameskip code. |
||
1518 | |||
1519 | Rewrote necessary pieces of sb.c and sb.h and fixed quite a few |
||
1520 | bugs. I still need to test it on various other sound cards, though. |
||
1521 | |||
1522 | Rewrote(more like "recreated in my own image") DOS keyboard driver. |
||
1523 | Removed unused "keyscan.h" from drivers/svgalib |
||
1524 | |||
1525 | Rewrote part of(the parts that Marat wrote - the connection and |
||
1526 | closing parts) the Linux TCP/IP network play code. I guess it works, |
||
1527 | but I haven't tested it very much. In any case, it's still dangerous |
||
1528 | to use network play in FCE Ultra with SVGAlib, since recv() or send() |
||
1529 | might block and since the keyboard is in raw mode, you have a problem. |
||
1530 | Maybe a future SVGAlib will fix the general problem of lockups if |
||
1531 | keyboard_update() isn't called, though it is only partly SVGAlib's |
||
1532 | problem... |
||
1533 | |||
1534 | Fixed FCEU_fseek() when used with a compressed file in the PKZIP |
||
1535 | format that has been loaded. Fixes a UNIF loading problem. |
||
1536 | Also added a check to the return value of FCEU_fseek() in unif.c. |
||
1537 | |||
1538 | Replaced Marat's 6502 emulation core with my own. |
||
1539 | It should be fully functional, but as always, I don't know if |
||
1540 | I implemented the undocumented instructions correctly. |
||
1541 | Several things are correct in this new core that were not in |
||
1542 | Marat's(D flag is no longer cleared by interrupts, for example). |
||
1543 | |||
1544 | Altered mapper 16 irq counter emulation slightly. |
||
1545 | |||
1546 | Fixed the behavior of the SXA, SYA, and XAS opcodes based on the |
||
1547 | documentation I have. I'm not sure what happens when page crossing |
||
1548 | occurs with those instructions on a real NES, though. |
||
1549 | Also CHANGED(not fixed) emulation of opcode $8B("XAA"). |
||
1550 | |||
1551 | Changed some of the M* functions(absolute indexed and maybe some others) |
||
1552 | to perform dummy reads. |
||
1553 | |||
1554 | Changed some of the macros in m6502.c to inlined functions so |
||
1555 | that I can modify and examine them more easily. |
||
1556 | |||
1557 | .77: |
||
1558 | ---- |
||
1559 | |||
1560 | Fixed a silly network play bug(in the global network play code) |
||
1561 | that caused excessive lag. |
||
1562 | |||
1563 | Added a "niceness" setting to the sound configuration dialog. |
||
1564 | Removed obsolete information from the dialog. |
||
1565 | |||
1566 | Fixed speed throttling code in Windows port when PAL emulation is |
||
1567 | disabled/enabled and a new game hasn't been loaded yet. |
||
1568 | |||
1569 | Commented out a printf() to debug stuff in fds.c(oops). |
||
1570 | |||
1571 | Applied PK's joystick patch to the osdl code. It allows the user |
||
1572 | to map axes and it fixes a joystick button mapping configuration saving |
||
1573 | bug. |
||
1574 | |||
1575 | Added two command line options new to Linux port to DOS port. |
||
1576 | Just need to test them... |
||
1577 | |||
1578 | Added some stuff to unif.c to allow for boards that can support |
||
1579 | CHR RAM instead of CHR ROM(darn Sachen boards...). Fixes UNIF |
||
1580 | version of "Q-Boy". |
||
1581 | |||
1582 | Added command line option "-snapname" to Linux port. I'll add it |
||
1583 | to the Windows port as well, but probably not to the DOS port. |
||
1584 | |||
1585 | Added clip option to Linux port. |
||
1586 | |||
1587 | Fixed sound logging(in Windows port) so that multiple recording |
||
1588 | sessions now work. |
||
1589 | |||
1590 | Added an option to clip the leftmost and rightmost 8 columns |
||
1591 | of graphics in the Windows port. |
||
1592 | |||
1593 | Added a submenu that lists recently opened files, in the Windows |
||
1594 | port. |
||
1595 | |||
1596 | .76: |
||
1597 | ---- |
||
1598 | |||
1599 | Updated porting.txt. |
||
1600 | |||
1601 | Added speed throttling code to Windows port that's used when sound is |
||
1602 | disabled(and an option in the "Miscellaneous" |
||
1603 | configuration window to disable it). |
||
1604 | |||
1605 | Added cheat interface to DOS build. |
||
1606 | |||
1607 | A few tweaks to the text cheat interface code in the cheat listing code. |
||
1608 | Added a command to quickly toggle the status of the cheat(though a |
||
1609 | cheat can still be disabled/enabled by (M)odifying the cheat). |
||
1610 | |||
1611 | Support for UNIF UNL-TC-U01-1.5M board added. Same credits as below. |
||
1612 | |||
1613 | Rewrote mapper 228 code just for the heck of it(actually, I couldn't |
||
1614 | figure out why some(about two) of the games in the Action 52 cart |
||
1615 | weren't working in .75(and .76). I traced it back to .71, where an apparent bug in |
||
1616 | the undocumented 6502 opcode emulation allowed it to work, which |
||
1617 | was later fixed for the .72 release(opcode 0x7C)). I'm thinking |
||
1618 | that the dump is bad... |
||
1619 | |||
1620 | Added a few crc32 checks to ines.c to check for and report when |
||
1621 | a known(by me) bad(hacked or bad dump) game is loaded. |
||
1622 | |||
1623 | Added support for the following UNIF boards. Thanks to Quietust |
||
1624 | and Kevin Horton for the information. Some problems still exist |
||
1625 | with a few games that use these boards, though... |
||
1626 | |||
1627 | UNL-Sachen-8259B |
||
1628 | UNL-Sachen-8259A |
||
1629 | UNL-Sachen-74LS374N |
||
1630 | UNL-SA-016-1M |
||
1631 | UNL-SA-72007 |
||
1632 | UNL-SA-72008 |
||
1633 | UNL-SA-0036 |
||
1634 | UNL-SA-0037 |
||
1635 | |||
1636 | Fixes to some stuff in cart.c(for example, calling setprg32() when |
||
1637 | only 16kb of prg data is present now works). |
||
1638 | |||
1639 | Added support for iNES mapper 189. |
||
1640 | |||
1641 | Tried to add support for the UNIF board "UNL-H2288". Failed. |
||
1642 | |||
1643 | Updated "cheat.txt" to fix a few typos and added an example of finding |
||
1644 | and adding a cheat using the Linux port's text interface. The actual |
||
1645 | section on the Linux cheat interface still needs to be written, however. |
||
1646 | |||
1647 | Changed network play code in the Windows port and fixed a bug. |
||
1648 | Fixed a similar bug in the Linux netplay code....sort of. |
||
1649 | |||
1650 | A few cosmetic changes to the dialogs in the Windows port. |
||
1651 | |||
1652 | Fixed sound initialization on the Windows port(it was being initialized |
||
1653 | when FCE Ultra started even if it was disabled by the user. Oops.). |
||
1654 | |||
1655 | Joystick button configuration code in Windows port changed slightly |
||
1656 | to be more useable. |
||
1657 | |||
1658 | Changed reference to video mode 5 in the linux port to "1 per 4". |
||
1659 | It may not be very meaningful, but it is certainly better |
||
1660 | than "TV Emulation". I'll change the Windows port reference later. |
||
1661 | |||
1662 | Documented video mode 7(320x240) for the Linux port. Also added |
||
1663 | a check for the FBDev driver in order to use this mode instead |
||
1664 | of a tweaked vga mode if that driver is being used. |
||
1665 | |||
1666 | Added/Fixed cheat interface for Linux port. It's still not perfect, |
||
1667 | though. The code is ugly... |
||
1668 | |||
1669 | Callback function for FCEUI_ListCheats() now receives |
||
1670 | status information(enabled/disabled). |
||
1671 | |||
1672 | Callback functions for cheat functions now must return 0 to |
||
1673 | stop listing cheats or 1 to continue. |
||
1674 | |||
1675 | Fixed a problem(the cheat code was reading in cheats |
||
1676 | for address $0000 from cheat files if any blank lines were present). |
||
1677 | |||
1678 | SDL port zlib changes(linked dynamically to zlib now). |
||
1679 | |||
1680 | More changes to envelope decay + looping on code. No longer |
||
1681 | depends on value @ $4017. It now sounds correct based on some |
||
1682 | tests I did with SMB3 and a GG, but Goonies 2 doesn't sound right( |
||
1683 | based on a sound file sent to me by another person). |
||
1684 | |||
1685 | Added support for iNES mapper 140. Thanks to Quietust for the |
||
1686 | information. |
||
1687 | |||
1688 | I need to figure out how to deal with the problem of so many |
||
1689 | bad NSFs that most people consider good... |
||
1690 | |||
1691 | Changed envelope decays a bit. Their behavior now depends on bit |
||
1692 | 7 of $4017. I don't know if this is right... |
||
1693 | |||
1694 | Addition of debug.c for some debugging stuff. |
||
1695 | |||
1696 | Updated zlib to 1.1.4. |
||
1697 | |||
1698 | Modified code in various files to allow UNIF games to override |
||
1699 | current selected video system emulation(NTSC or PAL). Need to |
||
1700 | make sure this really works. |
||
1701 | |||
1702 | Changed sound.c to prevent desynchronization during network play. |
||
1703 | This might slow down sound emulation slightly, especially when |
||
1704 | sound emulation is disabled. I really don't care... |
||
1705 | |||
1706 | Updating network play code. More info later... |
||
1707 | |||
1708 | Moved the sound/video/etc output code in EmLoop() to the top of the |
||
1709 | for(;;) loop so that initialization prior to calling EmLoop() will |
||
1710 | be the same as initialization done during a call to a FCEUD_* function. |
||
1711 | |||
1712 | A few very small changes to sound emulation in fds.c. |
||
1713 | |||
1714 | Changed unlink() to remove() in cheat.c and removed the including |
||
1715 | of the header file unistd.h. |
||
1716 | |||
1717 | Split up the cc=... statement in RefreshLine() to make it easier |
||
1718 | to read and not ambiguous(to Borland's C compiler). |
||
1719 | |||
1720 | Changed a lot of the function declarations in cheat.c. I'll need |
||
1721 | to verify that cheat searching still works ok and that cheats still work |
||
1722 | ok. I'll also need to update the Windows(and Linux console) cheat code |
||
1723 | to prevent compiler warnings. |
||
1724 | |||
1725 | Fixed various minor code problems(not minor if you want to use a |
||
1726 | compiler besides gcc). This is an ongoing process... |
||
1727 | |||
1728 | Removed bit fields after reading about and thinking about possible |
||
1729 | portability problems, though I kept some optimizations in fceline.h |
||
1730 | |||
1731 | Minor code simplification in drivers/win/joystick.c(replaced |
||
1732 | "case 200 ... 207" and "case 208 ... 215". |
||
1733 | |||
1734 | Modified some code to use bit-fields in the graphics rendering code |
||
1735 | in fce.c and fceline.h. gcc seems to be able to optimize the new |
||
1736 | code to run faster. |
||
1737 | |||
1738 | Fixed m6502.c and fce.c to initialize variables on virtual power |
||
1739 | toggle. This should fix network play on the Windows port. |
||
1740 | I'm also in the process of cleaning up fce.c. |
||
1741 | |||
1742 | .75: |
||
1743 | ---- |
||
1744 | Fixed directories configuration stuff in Windows port(corresponds |
||
1745 | to .75r2). |
||
1746 | |||
1747 | More changes to square wave channel envelope/volume emulation... |
||
1748 | Changes described in the large paragraph some lines down have been |
||
1749 | abandoned. |
||
1750 | |||
1751 | Added a command line switch to set the volume in the dos port. |
||
1752 | |||
1753 | Changed Windows sound configuration dialog. Now buffer length is |
||
1754 | specified in time, not samples. I also added a volume control. |
||
1755 | |||
1756 | Reduced the volume on 8-bit sound output on all ports by 1/2. |
||
1757 | |||
1758 | Added a function FCEUI_SetSoundVolume(). Added support for setting |
||
1759 | the volume via the command line in the Linux port, other ports coming |
||
1760 | soon. |
||
1761 | |||
1762 | Changed FCEUD_WriteSoundData() again. No longer has a "Check" |
||
1763 | argument. All clipping(ugh) is done internally now. |
||
1764 | |||
1765 | Added a directories configuration dialog to the Windows port. I worked |
||
1766 | on it too long and I became a zombie, so it might have a few bugs. |
||
1767 | That's what guine...err...users are for. ;) Don't expect me to do |
||
1768 | anything like this for any other port, though. I don't feel like |
||
1769 | doing it on the DOS port, and the Linux and other UNIXy ports shouldn't |
||
1770 | really need it. |
||
1771 | |||
1772 | Made some changes to the rectangle/square wave channel emulation to |
||
1773 | fix the pops in SMB. I have no idea if what I did is correct. To |
||
1774 | be honest, I'm not sure I know EXACTLY what I did, but it's something |
||
1775 | like this: Writes to $4003/$4007 now reset the duty cycle count |
||
1776 | and reload the cycle counter with the current wavelength. Writes to |
||
1777 | $4003/$4007 now do not update the amplitude output of the channels; they |
||
1778 | will be updated after the cycle counter hits 0(or below). |
||
1779 | |||
1780 | More information in iNES informational output. |
||
1781 | |||
1782 | Minor changes to mappers/16.c. |
||
1783 | |||
1784 | Increased the volume of the VRC6's sawtooth wave channel. |
||
1785 | |||
1786 | Added more information to the RAM cheat guide. |
||
1787 | |||
1788 | Changed the triangle wave generation code slightly. I decided |
||
1789 | to remove support for the higher-frequency triangle waves, as they |
||
1790 | are too cpu-costly to create and are probably not very audible on a |
||
1791 | real NES anyway. |
||
1792 | |||
1793 | Major changes to how sound is mixed. This necessitated a high pass |
||
1794 | DC-offset removing filter, and a low-pass filter just to make things |
||
1795 | sound better. ^_^ |
||
1796 | Note: FCEUD_WriteSoundData() no longer needs to clear the waveform |
||
1797 | data referenced by the passed pointer; it's done internally now. |
||
1798 | |||
1799 | Fixed JMP ($xxxx) - now handles wrapping like it occurs on a real 6502 |
||
1800 | (hopefully; I'm assuming that the same holds true for the NES' cpu). |
||
1801 | |||
1802 | Added the ability to load a custom global palette in the DOS port. |
||
1803 | |||
1804 | Fixed bug in drivers/common/unixdsp.c(wrong return value if sample |
||
1805 | rate was out of range). |
||
1806 | |||
1807 | Many sound fixes... - Frequency sweeps, length counter stuff,... |
||
1808 | |||
1809 | Changed Windows port to use IDirectInput7 and IDirectInputDevice7 |
||
1810 | interfaces. |
||
1811 | |||
1812 | Fixed a Game Genie bug in the core emulation code. It only appeared |
||
1813 | in the Windows port, though. (Enabling gg emulation, loading a game, |
||
1814 | and then disabling gg emulation and loading a new game while in the |
||
1815 | gg code entry screen would cause the new loaded game to not work |
||
1816 | correctly). |
||
1817 | |||
1818 | Modified windows port to use the config saving/loading stuff in |
||
1819 | drivers/common/config.c |
||
1820 | |||
1821 | Mapper 45 cleanups/fixes. |
||
1822 | |||
1823 | Added the ability to load a custom global palette in the Linux port. |
||
1824 | Yay. |
||
1825 | |||
1826 | Fixed a large number of overcomplicated code and silly bugs in |
||
1827 | drivers/common/config.c. This changes the format of the configuration |
||
1828 | structure, too. Also added support for saving/loading strings with |
||
1829 | automatic memory allocation when strings are loaded. |
||
1830 | |||
1831 | Minor change in InitNetplay(). |
||
1832 | |||
1833 | Fixed bad type conversions for pointers to functions and fixed |
||
1834 | some bad declarations of functions. |
||
1835 | |||
1836 | Reenabled zlib support for the sdl build. I need to pay attention |
||
1837 | to patches that modify lines than don't fit on my screen. |
||
1838 | |||
1839 | Fixed vidblit.c to not emit so many warnings when compiling. |
||
1840 | |||
1841 | .74: |
||
1842 | ---- |
||
1843 | |||
1844 | Stop sound in Windows port when user clicks l/m/r mouse buttons |
||
1845 | in the non-client area of the window. |
||
1846 | |||
1847 | Added "Drag and drop" file open support to Windows port. |
||
1848 | |||
1849 | Various code cleanups. |
||
1850 | |||
1851 | mappers/33.c optimization. |
||
1852 | |||
1853 | Rewrote the function "FCEU_MakeFName()". |
||
1854 | |||
1855 | Removed crc32.h from mappers directory. |
||
1856 | |||
1857 | Modified some of the window resizing code in the Windows port. |
||
1858 | |||
1859 | Added support for waiting for vblank/double buffering to the Windows |
||
1860 | port. |
||
1861 | |||
1862 | Added/Fixed support for iNES mapper 248. |
||
1863 | |||
1864 | After an NSF file is loaded, information about its header is now |
||
1865 | displayed. |
||
1866 | |||
1867 | Fixed a typo in the Namco 106 extra ram handling code. |
||
1868 | |||
1869 | Improved the quality of the Namco 106's extra sound channels. |
||
1870 | - Thank Mamiya and Applepie(real name?) for info. |
||
1871 | |||
1872 | When an NSF file is being played, FCE Ultra will no longer go through |
||
1873 | its scanline rendering loop. This speeds up NSF playback considerably. |
||
1874 | |||
1875 | Updated "porting.txt". |
||
1876 | |||
1877 | Moved some stuff from DriverInterface() to their own functions. |
||
1878 | |||
1879 | Fixed some iNES mapper 18 IRQ counter emulation bugs. "Ninja Jajamaru - |
||
1880 | Ginga Dai Sakusen" now works. |
||
1881 | |||
1882 | Rewrote large pieces of the mapper 64 code. "Skull and Crossbones" |
||
1883 | still doesn't work, though. |
||
1884 | |||
1885 | Changed format of iNES header information output, added "ROM CRC32" info. |
||
1886 | |||
1887 | Modified the way cycle timing is done slightly. No change |
||
1888 | for NTSC emulation, but PAL emulation is a little more accurate. |
||
1889 | |||
1890 | Changed the behavior of indirect indexed(I hope I got that right ;)) |
||
1891 | instructions to behave more like a real 6502(junk reads are now |
||
1892 | performed). |
||
1893 | |||
1894 | A few optimizations/cleanups in m6502.c. |
||
1895 | |||
1896 | 0.73 |
||
1897 | ---- |
||
1898 | |||
1899 | * Fixed several bugs with sprite emulation. Several games(such |
||
1900 | as "Trojan" and "VS Duck Hunt") that were broken in .71 and .72 now |
||
1901 | work ok. |
||
1902 | * Added support for iNES mapper 82. Thanks to those who work on |
||
1903 | "unofficial nester". |
||
1904 | * Added support for iNES mapper 250(used by "Time Diver Avenger"). |
||
1905 | * Fixed the documentation to show that iNES mappers 48, 83, and 232 |
||
1906 | are supported. |
||
1907 | * Removed various pieces of stale code and fixed a few minor bugs. |
||
1908 | * Fixed a triangle wave channel bug(the channel was sometimes enabled |
||
1909 | when it shouldn't have been). |
||
1910 | * Writing to $4010 with the upper bit clear now acknowledges the DPCM |
||
1911 | IRQ. This appears to fix "Stunt Buggies". |
||
1912 | * Rewrote pieces of the Zapper emulation code to be cleaner and more |
||
1913 | accurate. |
||
1914 | * Rewrote the VS Unisystem dip switch drawing code. |
||
1915 | * Simplified the setting of VS Unisystem dip switches. The "V" key |
||
1916 | now toggles viewing AND editing of dip switches. |
||
1917 | |||
1918 | 0.72 |
||
1919 | ---- |
||
1920 | |||
1921 | * Various minor bug fixes. |
||
1922 | * Various code cleanups and size and speed optimizations. |
||
1923 | * Removed some (apparently) unused MMC5 sound emulation code. |
||
1924 | * Changed the behavior of $2003 and $4014 to better simulate what occurs |
||
1925 | in a real NES. |
||
1926 | * Fixed a few bugs in the undocumented 6502 opcode emulation code. |
||
1927 | The Game Genie code "NUTANT" for SMB 3 works correctly now, at |
||
1928 | least(previously it caused the game to lock up at the end of levels). |
||
1929 | * Rewrote large pieces of the 6502 memory fetching code, resulting |
||
1930 | in a slight slowdown in the speed of emulation. Benefits include: |
||
1931 | Game Genie emulation now works(again) and 6502 emulation is more |
||
1932 | accurate. |
||
1933 | * Added support for iNES mapper 72. Thanks to rinao for the information. |
||
1934 | * Fixed support for iNES mapper 77(used by Napoleon Senki). |
||
1935 | * Fixed/Added support for iNES mapper 226. Apparently I made a mistake |
||
1936 | in the documentation. Thanks to Mark K. for the information. |
||
1937 | * Added support for iNES mapper 227. Thanks to Mark K. for the |
||
1938 | information. |
||
1939 | * Added support for iNES mapper 234(used by the Maxi-15). Thanks |
||
1940 | to Mark K. for the information. Note that many of the Maxi-15 |
||
1941 | ROM images on the Internet have corrupt CHR data(graphics), or the |
||
1942 | mapper number is set incorrectly(usually to 11). Use a utility to |
||
1943 | fix the mapper number. |
||
1944 | * Added support for the following UNIF boards(prefixes omitted): |
||
1945 | - EKROM (and fixed the reference to "Gemfire" in the documentation). |
||
1946 | - HKROM |
||
1947 | * Added the ability to enable and disable individual RAM cheats. |
||
1948 | * Fixed some problems with the cheat search code(the NES' internal |
||
1949 | RAM was being searched differently than any external RAM, which |
||
1950 | was being search incorrectly). |
||
1951 | |||
1952 | 0.71 |
||
1953 | ---- |
||
1954 | |||
1955 | * Fixed a 6502 emulation bug that was causing some Koei games |
||
1956 | (ex: Nobunaga's Ambition, Genghis Khan) to not work. |
||
1957 | * Extensive PPU/CPU timing adjustments. |
||
1958 | * Fixed support for iNES mapper 40. |
||
1959 | * Added support for the following UNIF boards(prefixes omitted): |
||
1960 | - ETROM |
||
1961 | - ELROM |
||
1962 | - EWROM |
||
1963 | * Fixed a few bugs in the UNIF code. |
||
1964 | * Added support for loading and saving cheat files and an interface |
||
1965 | to search for/add/delete/list cheats(no interface yet on Linux/DOS). |
||
1966 | * Fixed a few minor bugs in the Windows DX code. |
||
1967 | * Command line options to control the number of sound fragments |
||
1968 | and the fragment size have been added(Linux). |
||
1969 | |||
1970 | 0.70 |
||
1971 | ---- |
||
1972 | |||
1973 | * Adjusted PPU/CPU timing. |
||
1974 | * Removed(until I understand the problem) a hack to get one of the |
||
1975 | games in the Caltron 6-in-1 to work. |
||
1976 | * Fixed an MMC3 IRQ emulation bug("Project Q" works better now). |
||
1977 | * Fixed a problem/misunderstanding regarding the upper scanline. |
||
1978 | It can now be displayed again. |
||
1979 | * More accurate sprite hit emulation(fixes the title screen of |
||
1980 | "Ultimate Stuntman"). |
||
1981 | * VRAM bank switching for iNES mapper 4 is now possible(and enabled |
||
1982 | for all mapper 4 games without CHR ROM). Fixes "Tenchi o Kurau 2". |
||
1983 | * Added support for the Famicom's four-player adapter and the ability |
||
1984 | to enable it(it is disabled by default to prevent compatibility |
||
1985 | problems). |
||
1986 | * Added an option(under miscellaneous configuration) to automatically |
||
1987 | open the "File Open" dialog box when FCE Ultra is started. |
||
1988 | * Sound sampling rate is now configurable. |
||
1989 | * Fixed some bugs in the DirectSound code. |
||
1990 | * Joystick button configuration is a little more user friendly(and |
||
1991 | stable, hopefully) (Linux). |
||
1992 | |||
1993 | 0.62 |
||
1994 | ---- |
||
1995 | |||
1996 | * Added support for the Famicom Disk System's extra sound channel. |
||
1997 | * Updated the version of Tatsuyuki Satoh's OPL2 emulator used in |
||
1998 | FCE Ultra from .36f to .37a. The sound quality in "Lagrange Point" |
||
1999 | seems to have improved. |
||
2000 | * Added support for iNES mapper 242(used by "Wai Xing Zhan Shi"). |
||
2001 | * Fixed a network play bug that could cause desynchronizations |
||
2002 | if more than one network play session occured since FCE Ultra |
||
2003 | was started. This bug only showed up on the Windows port, though. |
||
2004 | * Increased the volume of the noise and triangle sound channels. |
||
2005 | * Fixed a save state loading bug. |
||
2006 | * Fixed a small memory leak that was being caused by the VRC7 |
||
2007 | state loading code. |
||
2008 | * Fixed a bug that could cause FCE Ultra to crash if a virtual disk |
||
2009 | was being read and the user ejected the virtual disk. |
||
2010 | * Various minor bug fixes/code cleanups. |
||
2011 | * NTSC color "emulation" can now be enabled again(the code to |
||
2012 | enable it was broken in the last version). (Linux) |
||
2013 | |||
2014 | 0.61 |
||
2015 | ---- |
||
2016 | |||
2017 | * Speed optimizations in sprite rendering code. |
||
2018 | * Screen snapshots are now saved in the PNG format instead of the PCX |
||
2019 | format. |
||
2020 | * Fixed Game Genie emulation(it wasn't working in the last release). |
||
2021 | Also added support for Game Genie emulation to the UNIF code. |
||
2022 | * Rewrote command line option parsing code. |
||
2023 | * Fixed a problem(if FCE Ultra was configured to connect to a remote |
||
2024 | host and the remote host was given as an IP address, and the IP |
||
2025 | address couldn't be reverse resolved, which is commonly the case |
||
2026 | on home LANs, the connection attempt would fail) in the network |
||
2027 | play code. I had misinterpreted the Winsock API documentation |
||
2028 | when I wrote the code. (Windows) |
||
2029 | |||
2030 | 0.60 |
||
2031 | ---- |
||
2032 | |||
2033 | * Various speed optimizations. |
||
2034 | * Sound is no longer messed up when a JAM/KIL opcode is emulated. |
||
2035 | * Fixed an overflow bug that occured when $4014 was written to |
||
2036 | during certain(rare) conditions. |
||
2037 | * Fixed a few save state bugs. |
||
2038 | * Fixed a MMC1 CHR bank switching bug. |
||
2039 | * Added emulation of the MMC5's WRAM write-enable/disable registers. |
||
2040 | * Fixed a sound frame IRQ emulation bug. "Qix" works now. |
||
2041 | * Added UNIF support. Some of the board emulation is still a bit |
||
2042 | buggy, though. Look at the documentation for a list of supported |
||
2043 | boards. |
||
2044 | * Updated the "Palette Notes" section of the documentation. Also |
||
2045 | fixed a few other problems with the documentation. |
||
2046 | * Added support for loading files in the PKZIP and gzip |
||
2047 | compressed file formats via zlib. |
||
2048 | * Added the ability to configure the first scanline and the last |
||
2049 | scanline to draw to the screen. Enabling PAL emulation no longer |
||
2050 | will cause all 239 scanlines to be displayed, though an option |
||
2051 | to override these settings for when PAL emulation is enabled may |
||
2052 | be in the next version. |
||
2053 | * Fixed a bug that would cause the emulated D-pad of virtual gamepads |
||
2054 | emulated through the keyboard to be duplicated through "higher" |
||
2055 | virtual gamepads(gamepad 1 would affect 2,3,4; gamepad 2 would |
||
2056 | affect 3,4; etc.). (Windows) |
||
2057 | |||
2058 | 0.55 |
||
2059 | ---- |
||
2060 | * Rewrote window resizing code. The window will now resize itself |
||
2061 | to a multiple of the NES' screen dimensions nearest to the user |
||
2062 | selected dimensions. (Windows) |
||
2063 | * Added an option to use buttons instead of axes on physical joysticks |
||
2064 | for the emulated D-Pad. This is useful for some digital joysticks. (Windows) |
||
2065 | * Fixed a bug that would cause FCE Ultra to crash if sound were |
||
2066 | disabled during emulation. (Windows) |
||
2067 | * Added the ability to "fast forward" emulation. |
||
2068 | * Added an option to allow more than 8 sprites per scanline to be |
||
2069 | displayed. |
||
2070 | * Added an option to save all extra non-volatile game data |
||
2071 | (such as battery-backed RAM) in a directory under FCE Ultra's |
||
2072 | base directory(as opposed to the directory the game is located in). |
||
2073 | * Added an option to allow the emulator to change to a full screen |
||
2074 | video mode once a new game is loaded. (Windows) |
||
2075 | * Rewrote pieces of DirectInput joystick handling code. Hopefully |
||
2076 | it should increase compatibility. (Windows) |
||
2077 | * Added the ability to automatically obtain button numbers when |
||
2078 | configuring joysticks, by pressing buttons on the joystick. |
||
2079 | * Added the ability to close the current game(decreases CPU usage). (windows) |
||
2080 | * Increased the speed of various function calls by passing |
||
2081 | arguments to functions through registers instead of through the |
||
2082 | stack. |
||
2083 | * Added emulation of the MMC5's raw PCM register. |
||
2084 | * Added the ability to save/load save states while network play |
||
2085 | is occuring. |
||
2086 | * Having PAL emulation enabled will no longer override the |
||
2087 | NTSC/PAL settings in NSF headers. |
||
2088 | * Fixed a bug that got into the .54 release. Extraneous data was |
||
2089 | being returned on reads from $2002, which caused problems |
||
2090 | with some games(such as "Choujin Sentai Jetman"). |
||
2091 | |||
2092 | 0.54 |
||
2093 | ---- |
||
2094 | * Fixed a bug that would cause a wrong battery-backed WRAM file |
||
2095 | name to be produced if FCE Ultra was passed a file name without |
||
2096 | any directory component(such as "fceu SuperBlah.nes"). |
||
2097 | * Fixed an iNES mapper 118 emulation bug that got into the code |
||
2098 | in a recent code cleanup. "Armadillo" is playable again. |
||
2099 | * Fixed a typo(and bug) in the MMC5 emulation code. |
||
2100 | * Data returned from emulated reads to "unmapped" areas or |
||
2101 | memory locations where bits are undefined should now be correct. |
||
2102 | * Fixed emulation of the sprite memory transfer register $4014. |
||
2103 | It now takes into account the last value written to $2003 and |
||
2104 | starts the transfer to that location in sprite memory(like on |
||
2105 | a real NES). |
||
2106 | * Added a video configuration dialog box. (Windows) |
||
2107 | * Added the ability to configure a custom video mode. Aspects |
||
2108 | that are configurable include width, height, bits per pixel, |
||
2109 | and size transforming(stretching and scaling). (Windows) |
||
2110 | |||
2111 | 0.53 |
||
2112 | ---- |
||
2113 | |||
2114 | * Fixed a bug with joysticks that occured on systems with multiple |
||
2115 | joysticks. (Windows) |
||
2116 | * Added support for iNES mappers 77 and 92(thanks to LULU for the code for both). |
||
2117 | * Added partial(timer is non-configurable) support for iNES mapper 105. |
||
2118 | * Changed save state format again. Save states made with previous |
||
2119 | versions should still be compatible, though this may change in |
||
2120 | future versions. |
||
2121 | * Small optimization to sprite emulation code. |
||
2122 | * Rewrote color-deemphasis code to use integer math instead of |
||
2123 | floating-point math. |
||
2124 | * Rewrote and restructured input code. (Linux) |
||
2125 | * Added command line option "-f8bit" to force 8-bit sound. (Linux) |
||
2126 | * Rewrote and restructured input code. Among other new features, |
||
2127 | keyboard keys are now somewhat configurable. (Windows) |
||
2128 | * Writes to $4003/$4007 will now reset the emulated square wave |
||
2129 | duty cycle generator. |
||
2130 | * Added emulation of the Power Pad. |
||
2131 | * Rewrote joystick device reading code to use the event-driven |
||
2132 | interface. This should fix various problems regarding support |
||
2133 | for joysticks with many buttons. (linux) |
||
2134 | |||
2135 | 0.52 |
||
2136 | ---- |
||
2137 | |||
2138 | * Fixed a PCM emulation bug(digitized voices in "Ikari Warriors 2" |
||
2139 | and "The Immortal", among others, work now). |
||
2140 | * Fixed noise channel's LSFR update frequencies(hopefully). |
||
2141 | * Various minor bug fixes. |
||
2142 | |||
2143 | 0.51 |
||
2144 | ---- |
||
2145 | |||
2146 | * Added support for iNES mappers 86 and 89. |
||
2147 | * Reduced byte size of the NSF player's background. |
||
2148 | * Adjusted CPU/PPU timing. |
||
2149 | * Fixed sound channel frequency calculations for when PAL emulation is enabled. |
||
2150 | * Rewrote large pieces of the sound code and got rid of the sound queue. Sound quality should be slightly better now. |
||
2151 | * Various minor bug fixes. |
||
2152 | |||
2153 | Windows: |
||
2154 | |||
2155 | * Fixed an FDS side reset bug when a new game is loaded. |
||
2156 | * Screen width/depth/height changes while FCE Ultra is in windowed mode are handled now. |
||
2157 | * Changed the configuration file format. |
||
2158 | * Added a palette configuration dialog. |
||
2159 | * Added the ability to load a custom NES palette. |
||
2160 | * Added an option to double 16-bit sound volume. |
||
2161 | * Added an option to force 8-bit sound. |
||
2162 | * Added an option to use a secondary sound buffer(versus the primary). |
||
2163 | * Added an option to wait for vertical blank if sound is disabled. |
||
2164 | * Added an option to run while focus is lost. |
||
2165 | |||
2166 | 0.50 |
||
2167 | ---- |
||
2168 | |||
2169 | * Many bug fixes. |
||
2170 | * Sound code partially rewritten to improve quality(near-perfect |
||
2171 | raw PCM now) and eliminate the need for a separate thread. |
||
2172 | This created a small problem with network play, though, so read |
||
2173 | the network play notes section. Also, synchronizing to |
||
2174 | vertical blank has been removed. |
||
2175 | * Rewrote other pieces of sound code. No more "buzzing" in MegaMan 2, |
||
2176 | Codemasters games' intros, etc. |
||
2177 | * Added support for the NES Zapper and the VS Unisystem's light |
||
2178 | gun. Be sure to read "Light Gun Notes". |
||
2179 | * Changed save state format. Save states should now be much |
||
2180 | smaller for most games. Most(not all) save states created with |
||
2181 | an older version should work. |
||
2182 | * Added support for VS Duck Hunt and VS Hogan's Alley.-> |
||
2183 |