Commit Graph

5869 Commits

Author SHA1 Message Date
zeromus 96e570ae44 don't doubly memzero new allocations 2022-08-23 21:48:32 -04:00
zeromus 179a5f0ffa fix the size parameter of newly-introduced aligned_alloc call to be properly aligned (as the api requires) 2022-08-23 21:28:15 -04:00
harry d0add7a609 For Qt GUI added separate hot keys for soft and hard reset functions. Changed soft reset to be default Ctrl+R and hard reset to Ctrl+Shift+R. 2022-08-23 18:36:39 -04:00
harry b97b24a5e9 Fix for unix build, aligned_free does not exist in unix should use plain free instead. 2022-08-23 18:18:25 -04:00
zeromus 892e7cb5f5 change how memory is allocated to clean up a lot of messed up junk (mainly strange alignment adjustments which didnt completely make sense and frees which didnt match the allocation function that was used).
In case there are problems on other platforms (a few seems probable), here's the idea
1. Get rid of all manual alignment adjustments
2. use FCEU_malloc or malloc, as you see fit
3. use FCEU_free (or FCEU_gfree) if you use FCEU_malloc or FCEU_gmalloc. There's no real reason to need FCEU_gfree; this rule might be eliminated in the future (at which time FCEU_gfree will be removed)
4. If you need more alignment, increase it in FCEU_malloc. It's unlikely more alignment will ever be needed.

On windows, since the FCEU_*malloc functions now use aligned_alloc, we will catch instances where free() is used to free them (which happens frequently). allocates and frees should be matched. fix the free call if you ever observe this happening.

also

5. In general, remove crufty error handling for allocation failures. This just gunks up the code. If allocation fails, the application terminates.
2022-08-22 22:53:09 -04:00
zeromus 41feba2074 newppu - process grayscale (and maybe deemph, not sure) on a per-pixel basis to fix the FF1 polygon effect (fixes #529) 2022-08-22 22:53:09 -04:00
harry 77b18ba989 Added keyboard state feedback to lua input.get() function for Qt GUI. Returned key codes are slightly different but at least it does something. Issue #536. 2022-08-21 22:43:35 -04:00
zeromus 7806b24388 winport - fix prefix checking on memwatch addresses (fixes #496) 2022-08-21 15:40:03 -04:00
zeromus 5230d2eacd winport - change memwatch addresses to support lower case (partial revert of f0396ef980) 2022-08-21 15:40:03 -04:00
zeromus f6f13d6843 winport - change input filter functions to take an index so they can search for a prefix (at index 0 perhaps) and use it on the memwatch. it's better to do these things based on strings and not chars but that's just how we have it setup for now 2022-08-21 15:40:03 -04:00
zeromus 26c3919358 winport: tidy edit control sanitization 2022-08-21 15:40:03 -04:00
harry 319b365787 Cheats config improvements for Qt GUI. Added global cheat enable/disable hotkey functionality. Added code to raise and set focus on cheat dialog when attempting to open it when it is already opened. Add code to update/refresh cheat dialog when loading a new ROM. 2022-08-21 14:57:03 -04:00
zeromus 6b8387b849 fix compile errors on linux, probably 2022-08-20 21:49:30 -04:00
zeromus f7e7773b5a add a hotkey to disable active cheats (windows port only, but adding elsewhere would be easy now). fixes #504 2022-08-20 20:19:10 -04:00
harry f3b33a628f Minor fixes for warnings found by gcc undefined behavior sanitizer. 2022-08-19 22:33:09 -04:00
harry f4ea336349 Qt GUI fixes for recent changes to fceu core cheats API. 2022-08-19 19:57:27 -04:00
zeromus c37f86dbd1 change cheat system name buffer management to use std::string to avoid issues caused by returning the name buffer to the user who could then use it in ways the cheat system didn't expect ultimately leading to invalid strcpy(X,X) calls and possible use of buffers after freeing. this will break all frontends probably (except for windows which I fixed at this time). fixes #512 2022-08-19 12:41:28 -04:00
harry 3eddaf8052 Fixed Qt GUI --help command line option when no window system is present (X11/wayland). There is now a pre-gui initialization sweep of command line options. Also added a --version command line option and a warning that the --no-gui option is not supported (should someone try to use it). Fixes issue #528. 2022-08-17 21:59:48 -04:00
zeromus 32bd9a7f49 supper mapper218 (fixes #447) 2022-08-11 23:16:39 -04:00
harry d834ac4e53 Qt trace logger optimization. Added code to flush data to disk when emulation is paused. This allows the file to updated with latest data when hitting breakpoints during debugging. 2022-08-09 21:28:58 -04:00
zeromus d225d4863c make scmrev command work like desmume does (using system32 directory instead of sysnative). this probably fixes #459? or if not then desmume is broken, too. I'm not sure why the 32bit version can't be used every time. I think it can be. 2022-08-08 21:19:45 -04:00
zeromus 11f903d363 change built-in palettes to be bit-shifted properly so that whites are pure FF. fixes #540 2022-08-07 20:54:11 -04:00
zeromus bb1fc08d8e rename all iNES Header Editor to NES Header Editor (re #519) 2022-08-04 21:23:34 -04:00
harry 0e9ad2f400 Bug fix for mismatched allocation/deallocation calls. Memory allocated with malloc should use free (not delete) to deallocate memory. 2022-08-04 21:15:59 -04:00
harry 0c36a3575e Bug fix for missing va_end on stdarg list. According to online documentation, vfprintf does not call va_end. This was caught by cppcheck. 2022-08-04 21:15:59 -04:00
harry 44c8e15503 Fix for small memory leak in GetBackupFileName(). strdup allocates memory and returns a char pointer to it. However std::string allocates its own memory already. Since FCEU_MakeFName returns a std::string already, there is no reason to use strdup in between the assignment of one std::string to another. 2022-08-04 21:15:59 -04:00
harry 02bf3dbb4d Added cmake command line option to build with clang/gcc address sanitizer enabled. 2022-08-04 21:15:59 -04:00
harry 1b32752800 Removed redundant chunk size field from auds header in Avi RIFF viewer. 2022-08-04 21:15:59 -04:00
harry 9d18523731 Fix for heap read overflow in Qt Avi Riff viewer when reading avi files created by ffmpeg. Caught by running with clang/gcc address sanitizer. 2022-08-04 21:15:59 -04:00
harry 3fed0331cc Fix for global variable SFCPU read overflow error when running with clang/gcc address sanitizer. The code that writes the save state to disk expects the parameter description to at least be 4 bytes. 2022-08-04 21:15:59 -04:00
negative 14c215208e Fix Apple Town Story (FDS) crash
Fix https://github.com/TASEmulators/fceux/issues/487

fceumm and mednafen-nes has similar placement for SIRQStat
2022-06-05 16:18:07 -04:00
negative 2c85cc53c5 FDS: Update IRQ based on latest hardware notes
- IRQ updates based on latest notes. Verified with test rom.

https://www.nesdev.org/wiki/Family_Computer_Disk_System#IRQ_control_($4022)

Discussion and test rom file:
https://forums.nesdev.org/viewtopic.php?f=3&t=16507
test rom: https://forums.nesdev.org/viewtopic.php?p=205052#p205052

- Puff Puff Golf is still problematic and unplayable. added notes for
  it.

- Fix typo for a previous commit.
2022-06-05 16:18:07 -04:00
Dwedit dd35f4b12a Add size limit of 32768 to strings to guard against corrupt files
Add count limit for bookmarks and bookmark shortcuts
2022-06-03 16:18:06 -04:00
negative 2e70e27ba0 Mapper 235: Update support for 260-in-1 and add UNROM mode
- Using Soft-reset with switch between multicarts or the extra PRG rom
  which loads Contra game.

Fix: https://github.com/TASEmulators/fceux/issues/489
2022-06-03 16:16:57 -04:00
harry 971d7212ee Minor optimization of openGL alpha blending for Qt GUI. 2022-05-31 22:56:52 -04:00
harry 0287395bee For Qt GUI, added logic to raise and shift focus to hex editor window when opening from debugger. Fixes issue #509. 2022-05-31 22:56:52 -04:00
harry fc9f89dafc For Qt GUI build, make timestamp UTC based for reproducible builds. Patch from debian. 2022-05-31 22:56:52 -04:00
harry a87902b427 For Qt GUI, enable openGL GL_BLEND and set blend function to GL_ONE_MINUS_SRC_ALPHA. Fixes openGL driver issue #513 for running on wayland. 2022-05-31 22:56:52 -04:00
harry f32a98c89a Fix libswresample-dev dependency name for ubuntu linux appveyor build script. 2022-05-31 22:56:52 -04:00
zeromus b912004f69 oops, we've got to stub FCEUD_FlushTrace on these other platforms 2022-04-26 14:08:37 -04:00
zeromus def5768b9e remove fflush call on every single instruction trace, which can make modern SSD go totally dysfunctional. attempt to recover from this by flushing once a frame and whenever emulation pauses, so that you have a flushed trace file while debugging or whenever the main menu is interactive. 2022-04-26 13:22:22 -04:00
mjbudd77 4ed47577bd Updated home and download web pages for new release. 2022-03-23 21:46:45 -04:00
mjbudd77 2b8c618020 Updated readmes for 2.6.4 2022-03-23 20:29:37 -04:00
mjbudd77 043be28645 Added 2.6.4 release notes to help docs. 2022-03-23 20:26:50 -04:00
Matthew Budd 9df718c0fd Added 2.6.4. web page press release. 2022-03-23 20:15:28 -04:00
mjbudd77 9ce4b081e3 Fix for Qt iNES header editor mapper index. Account for mapper array not being continuously sequential. For issue #480. 2022-03-14 07:28:40 -04:00
mjbudd77 cf8c496a59 Updated unix debug build script to allow for selectable Qt5 or Qt6 build. 2022-03-11 21:37:41 -05:00
mjbudd77 9b6ab85424 Minor compiler warning cleanup 2022-03-11 06:58:16 -05:00
mjbudd77 a4dbabfcc5 More debug print clean up for Qt. 2022-03-11 06:38:13 -05:00
mjbudd77 49590c40bb Commented out more debug print statements in Qt GUI. 2022-03-11 06:29:32 -05:00