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