Compare commits

...

3293 Commits

Author SHA1 Message Date
thor2016 2b8f6e7627
Merge pull request #776 from awjackson/mapper92
Reimplement mapper 92 correctly
2025-01-19 15:03:14 -05:00
thor2016 eb5ca2e6d6
Merge pull request #778 from awjackson/mapper97
More mapper fixes
2025-01-19 15:02:12 -05:00
Alex W. Jackson 4008488b80 Mapper fixes: Fix 97, remove deprecated 101 and 151, add names to various mappers 2025-01-14 07:16:18 -05:00
Alex W. Jackson f15fb4f37c Implement mapper 92 correctly (it's not an address latching mapper but a mapper 72 variant) 2025-01-12 22:38:01 -05:00
thor2016 71ba361794
Merge pull request #774 from chenrui333/revert-766-fix-x265-4.0
chore: scope the patch for x265 4.0 build
2025-01-03 13:22:27 -05:00
Rui Chen 3bf931e5ca
chore: scope the patch for x265 4.0 build
upstream has reverted the x265_encoder_encode api change in 78e5b703b1 per 4.1 release, thus the patch is no longer needed, hence reverting for now. (previous 4.0 API change commit, c69c113960)

Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-12-28 22:12:52 -05:00
thor2016 fe65681012
Merge pull request #772 from brad0/arm64_build
Use proper symbol name checking for arm64
2024-12-08 09:23:39 -05:00
Brad Smith f803006608 Use proper symbol name checking for arm64
The proper symbol for checking for 64-bit ARM is __aarch64__
2024-12-08 07:49:34 -05:00
harry e315b06ff3 Updated MacOSX auto build environment to ventura OS. 2024-11-24 04:22:51 -05:00
harry 214773faae Added tas editor lua null checks for Qt GUI. 2024-11-24 04:16:27 -05:00
thor2016 0ba9ffe3a4
Merge pull request #755 from parasyte/fix/cdlogger-invalidation
Fix PRG reads and writes in CD Logger
2024-11-24 03:49:19 -05:00
thor2016 6dc277a27c
Merge pull request #756 from parasyte/fix/debugger-overflow
Fix "OVERFLOW" byte not being shown at address $FFFF.
2024-11-24 03:47:20 -05:00
thor2016 3c8e0a0dcb
Merge pull request #754 from parasyte/fix/attribution
Fix attribution
2024-11-24 03:45:48 -05:00
thor2016 4a2d980f9d
Merge pull request #765 from negativeExponent/patch-2
MMC5: Fix initial values for chr banks and nametables
2024-11-24 03:41:08 -05:00
thor2016 940c895de5
Merge pull request #767 from negativeExponent/add_m451_m471
Add mappers 451 and 471
2024-11-24 03:39:46 -05:00
thor2016 3f599cb3e6
Merge pull request #758 from silverslither/master
Enable TAS Editor Lua functions on QT
2024-11-24 03:38:45 -05:00
thor2016 cd057bb13f
Merge pull request #766 from chenrui333/fix-x265-4.0
chore: update AviRecord to comply with updated x265 API
2024-11-24 03:35:45 -05:00
Rui Chen a6fcb73b11
chore: update AviRecord to comply with updated x265 API
Some patch ref: https://code.videolan.org/videolan/vlc/-/merge_requests/6167
upstream commit: c69c113960

Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-11-23 17:17:48 -05:00
negative fb0b178c1d
Add mappers 451 and 471
As requested.
Fix https://github.com/TASEmulators/fceux/issues/761
2024-10-31 11:07:19 +08:00
negativeExponent 4441f3cbdf
MMC5: Fix initial values for chr banks and nametables
At least 1 game expect chr bank and nametables to be initialized at zero (fix Deathloop 256)
2024-10-28 15:32:24 +08:00
Jay Oster 65f4a482d5 Do not treat jump destinations as data accesses
The two JMP instructions have address modes that imply a data access
occurs. All branch instructions and JSR have `optype` 0, so they don't
have this problem.
2024-09-13 12:46:48 -07:00
silverslither daa2f817a9 enabled taseditor lua functions for QT 2024-09-13 13:02:38 -04:00
Jay Oster 5886b9e157 Fix "OVERFLOW" byte not being shown at address $FFFF. 2024-09-13 00:59:01 -07:00
Jay Oster 9da80206f8 Fix PRG writes in CD Logger
This code was added for FDS RAM, but it breaks PRG writes with normal
cartridge-based memory controllers.

The bug inappropriately resets (clears) the access mode bits previously
recorded when an MMIO register is written in PRG address space. For
instance, if an instruction is executed at $8000 and then some code
later writes to $8000, the instruction execution would have been
forgotten.
2024-09-12 15:25:00 -07:00
Jay Oster 0f6c5b2936 Fix attribution
This change de-duplicates Xodnizel's identity in some "About" windows.

Closes #753
2024-08-19 13:04:40 -07:00
thor2016 f980ec2bc7
Merge pull request #732 from awjackson/fix_731
Make X24C02 only enter read/write state if I2C address matches; fixes #731
2024-06-09 14:22:20 -04:00
harry e6efd7f694 Fix for gcc misleading indentation in lua-engine.cpp. 2024-06-09 14:10:15 -04:00
harry eecb2e77b6 Replace strncpy usage in favor of Strlcpy to get rid of compiler warnings. 2024-06-09 14:07:41 -04:00
harry ecbfca1084 Minor gcc/clang compiler warning fix. 2024-06-09 09:34:08 -04:00
thor2016 c919de08b2
Merge pull request #735 from awjackson/fixbuild
Fix Linux build
2024-05-29 07:35:46 -04:00
Alex W. Jackson d94157e125 Fix Linux build 2024-05-28 19:56:07 -04:00
Alexey Cluster 14df08d804 Take NES 2.0 header WRAM size into account for MMC3 2024-05-28 14:03:27 +04:00
harry ffb28e1131 Changed Qt Avi recording to use atomic buffer indices to ensure both threads are aware of changes when they happen. 2024-05-11 07:09:42 -04:00
harry 283aea91db For Qt netplay, reset client frame rate adjustment to normal on disconnect. 2024-05-11 06:16:12 -04:00
Alex W. Jackson 38bb5b1f51 Make X24C02 only enter read/write state if I2C address matches; fixes SD Gundam Gaiden 2 2024-05-07 17:32:15 -04:00
harry c4dd4f5153 Updated client netplay rom requests to only send extracted archive files as well. 2024-05-05 06:29:47 -04:00
harry 0ea2670ae0 For Qt GUI, store archive file index so that a hard reload knows how to refind the ROM inside the archive. For netplay, don't send entire zip archives. Instead just send the single extracted ROM of interest. 2024-05-05 05:57:11 -04:00
harry 4b36de6ec9 Build fix. 2024-05-04 23:08:34 -04:00
harry 4e57ca40ae For Qt GUI, create a temp directory per every boot of application that can be used to store temporary files for things such as netplay roms. This folder is deleted at application exit. 2024-05-04 22:04:29 -04:00
thor2016 151c951d63
Merge pull request #730 from TheRealQuantam/indy-fix
"(z),Y" addressing incorrectly shown as "(z,Y)" in debugger
2024-04-18 21:29:12 -04:00
TheRealQuantam 1028732d84 Remember that Qt and Win versions have different disassembly code 2024-04-16 18:40:09 -07:00
TheRealQuantam fa6e4411dd "(z),Y" addressing incorrectly shown as "(z,Y)" in debugger 2024-04-16 18:15:22 -07:00
harry 84b823ffa7 Added more netplay status data to host status dialog. 2024-04-13 15:57:09 -04:00
harry 94975d7dbe Fix code so that FCEUGI fully constructs properly and is not clobbered after the construction by a memset. Also, some minor code cleanup in related areas. 2024-04-12 08:14:20 -04:00
harry c97e2c9ad3 For Qt Netplay, added code to sync cheats between server and clients. 2024-04-11 06:58:43 -04:00
harry 6e698433aa Added netplay debug mode for interface debug logging. 2024-04-08 07:07:08 -04:00
harry 9036dd07bd Added logic to allow netplay host to control pause state of clients. 2024-04-07 21:21:18 -04:00
harry e7d234136c Netplay sync state fixes. 2024-04-07 20:22:32 -04:00
harry 9f8310bbe1 Minor cleanup of netplay main menu. 2024-04-07 15:11:27 -04:00
harry e032d65811 For Qt netplay, changed client message dialogs to be non-blocking. This prevents re-entrant event loops. 2024-04-07 14:53:06 -04:00
thor2016 e751431099
Merge pull request #726 from negativeExponent/patch-1
unrom512.cpp: Expand support for PRG ROM size upto 4M
2024-04-06 10:07:36 -04:00
thor2016 3e1a8ec486
Merge pull request #728 from liyansong2018/master
Fix Path Traversal #727 in Netplay server
2024-04-06 10:05:08 -04:00
liyansong2018 48b48e7c13 Fix Path Traversal in Netplay server 2024-04-06 10:40:29 +08:00
harry f71b912afb Qt netplay fixes for processing input packet data. Don't attempt spawn dialog windows when in read loop, it will cause event loop re-entrancy issues. 2024-04-04 06:43:10 -04:00
harry 10418f551a Added framework for Qt netplay client status dialog. 2024-04-03 04:55:07 -04:00
harry 2fe563181e Added ROM unload handling logic for netplay. 2024-03-26 20:58:21 -04:00
harry 25cab8195f Bug fix for Qt win64 netplay, make sure rom files are opened in binary mode. 2024-03-26 20:20:01 -04:00
harry f50b70b87e Reduce netplay max tcp transmission size to 8k for ROM transfers. 2024-03-24 22:08:15 -04:00
harry 84654b1c06 Set low delay tcp option for netplay. 2024-03-24 21:34:07 -04:00
harry 6e22998336 Increased netplay tcp OS level send/receive buffer sizes. 2024-03-24 21:29:41 -04:00
harry a63f5e6051 Netplay modified data read code to allow smaller buffered data to arrive in pieces rather than waiting for full data set. 2024-03-24 20:49:17 -04:00
harry 450870ef77 Build fix for constexpr vars that conflicted with some win macros. 2024-03-24 16:29:13 -04:00
harry bed9b10380 Added netplay ROM comparison logic. 2024-03-24 15:42:10 -04:00
negativeExponent 79c533ffdc
unrom512.cpp: Expand support for PRG ROM size upto 4M
at least 1 cart in Mapper30 has 2MB. current implementation only allows carts of upto 512K
2024-03-24 10:27:52 +08:00
harry cc61b7b5ab Added app version check between netplay host and clients to ensure interface compatibility. 2024-03-23 19:01:33 -04:00
harry cc234ae04b Added on state loaded callback function to core so that driver code can be notified of a new state being loaded. In Qt driver, emit a signal on state loads that objects can connect to. For a resync of all netplay clients when server detects a new state load. 2024-03-23 07:32:25 -04:00
harry 2ff6084935 Qt netplay host game UI dialog improvements. 2024-03-21 22:29:15 -04:00
harry 5a0898ccbe For Qt GUI, added netplay client state load request functionality. 2024-03-21 22:06:40 -04:00
harry 55654f7191 For Qt GUI, changed instruction tracing to be enabled/disabled by registering callback functions. This increases efficiency when tracing is disabled. 2024-03-18 06:02:30 -04:00
thor2016 5eeeb2219f
Merge pull request #721 from vampirecat35/master
Update StringBuilder.h
2024-03-05 08:36:48 -05:00
Andy Vandijck 1926729680
Update StringBuilder.h
Fix nullptr_t to std::nullptr_t
2024-03-05 11:12:34 +01:00
harry 72d1a8edf2 Added netplay client frame throttling functionality to keep it in step with server. 2024-03-04 06:47:09 -05:00
harry 798c5a1d9c For NetPlay, added ability for client to request a ROM to load. 2024-03-03 20:30:35 -05:00
harry ee814f99e5 Added NetPlay server force resync and drop player UI functionality. 2024-03-03 13:09:28 -05:00
harry 75e9627aa8 Added framework for a net play host status dialog window. 2024-02-28 07:18:19 -05:00
harry d212b894a7 Added ROM loaded and NES reset signals to allow for net play to reconfigure accordingly during those events. 2024-02-26 07:02:59 -05:00
harry 145fc1614f Added a simple ping message to Qt netplay in an effort to measure round trip message delay. 2024-02-26 06:05:01 -05:00
harry 015f6a0acd Added client pause flag to status message for net play. 2024-02-25 16:22:18 -05:00
harry 6832eaa964 Added custom string class that mirrors the C++ std::string API but also allows for fixed size buffers on the stack. This new class also has various C style functions (like sprintf) built into it. 2024-02-25 16:08:35 -05:00
harry 0123e1fbf8 Added sync checking and network byte ordering code for Qt net play. 2024-02-25 08:40:36 -05:00
harry 8d93015a56 Put win64 auto build back to Qt5 until the Qt6 build issue can be solved. 2024-02-24 18:19:34 -05:00
harry 245a8701e0 More attempted to fix Qt6 win build. 2024-02-24 17:37:00 -05:00
harry 9d08ff453a Another win64 Qt6 build fix 2024-02-24 17:01:43 -05:00
harry ce0dd16abd QHelp build for Mac OSX 2024-02-24 14:03:14 -05:00
harry c14dd99efc Build fix for Qt win platforms when UNICODE defaults to wide chars. 2024-02-24 14:00:31 -05:00
harry f63ac15aa2 Help pages build fixes for Qt6. 2024-02-24 13:56:06 -05:00
harry de549f0eb9 Build fix for const qualifier not being respected. 2024-02-24 13:28:36 -05:00
harry 5f3ce5896a Compile fix for <QtPlatformHeaders/QWindowsWindowFunctions> header not existing in Windows Qt 6. Set Qt win64 auto build to build against Qt 6. 2024-02-24 10:35:09 -05:00
harry e2ac013cbb Run cppcheck static analyzer against code base. Fixed a few warnings. 2024-02-24 08:46:06 -05:00
harry c324a82526 More cleanup of sprintf usage in favor of snprintf. This is to resolve deprecation warnings on Mac OSX 2024-02-24 07:27:20 -05:00
thor2016 db8fd407ab
Merge pull request #718 from TheRealQuantam/tracefix4
Non-SDL/Qt Windows Trace Logging Optimizations
2024-02-24 07:10:36 -05:00
TheRealQuantam 0605967820 Non-SDL/Qt Windows optimizations 2024-02-24 00:11:56 -08:00
harry 548635a2f2 Resolved vsprintf deprecation compiler warning, swap out for vsnprintf 2024-02-23 22:56:27 -05:00
harry 37574f9bef More cleanup of sprintf usage in favor of snprintf. This is to resolve deprecation warnings on Mac OSX 2024-02-23 22:38:40 -05:00
harry 7b79d9db4c Partial cleanup of sprintf usage in favor of snprintf. This is to resolve deprecation warnings on Mac OSX 2024-02-23 20:53:01 -05:00
harry 80f17c664b Resolved a couple gcc compiler warnings in trace logger. 2024-02-23 09:09:08 -05:00
thor2016 b25f56fe12
Merge pull request #686 from negativeExponent/vrc5_128k
Fix 128K CHR-ROM variants for VRC5
2024-02-23 07:34:17 -05:00
thor2016 3d5a062799
Merge pull request #714 from TheRealQuantam/tracefix2
Trace logging optimizations and bug fixes
2024-02-23 07:33:55 -05:00
TheRealQuantam 2d468d7926 Dummy commit to re-validate PR 2024-02-22 00:19:51 -08:00
TheRealQuantam 56980510b7 Trace logging optimizations and bug fixes 2024-02-21 21:00:05 -08:00
harry 780a445468 Added global module import function to Qt GUI JS engine. 2024-02-21 06:59:43 -05:00
harry f04e8a5ea4 NetPlay config and GUI improvements. 2024-02-20 06:56:26 -05:00
harry 0e4c122623 Added a clear recent ROM list menu item to Qt GUI. 2024-02-20 05:11:58 -05:00
harry 36614540fd Minor config improvements. Modified Qt recent ROM menu to drop file entries that no longer exist on disk. 2024-02-20 04:54:07 -05:00
harry cb45321433 More Qt netplay updates. 2024-02-19 15:53:11 -05:00
harry 84c2591d3f Added initial framework for netplay on Qt GUI. Still much TODO here. 2024-02-19 11:57:12 -05:00
harry 2f2279f5ff Added more functions to JS File object. 2024-02-18 21:10:24 -05:00
thor2016 72b297980b
Merge pull request #709 from andyvand/master
Fix strings
2024-02-18 16:08:56 -05:00
harry c62f62b497 Added option on how to handle new gamepad device detection. Can now choose to do nothing, prompt user, or auto reconfigure of button mappings when a new device is detected. 2024-02-18 16:04:00 -05:00
Andy Vandijck 3cf7615aeb
Merge pull request #3 from TASEmulators/master
For Qt GUI, poll SDL events immediately after initializing the joysti…
2024-02-18 17:25:49 +01:00
harry 9ed1dd481b For Qt GUI, poll SDL events immediately after initializing the joystick subsystem to process all input device add events. Added gamepad init logging. 2024-02-18 10:37:26 -05:00
Andy Vandijck 2e18434959 Fix Linux build
Fix Linux build
2024-02-18 15:52:24 +01:00
Andy Vandijck 897849111c Fix Linux build
Fix Linux build
2024-02-18 15:51:11 +01:00
Andy Vandijck b8fce760dd Fix Linux
Fix Linux build
2024-02-18 15:49:36 +01:00
Andy Vandijck 1227e9ebc0 Fix Linux build
Fix Linux build
2024-02-18 15:45:48 +01:00
Andy Vandijck b8ebb122cd Remove .orig file
Remove left overs from patch
2024-02-18 15:14:51 +01:00
Andy Vandijck 2d632dfeeb Change toUtf8() to toLocal8Bit()
Change strings
2024-02-18 14:52:19 +01:00
Andy Vandijck 6e33b530c0
Merge pull request #2 from TASEmulators/master
Improvements
2024-02-18 09:15:04 +01:00
harry 9cd7b620dd Minor JS File object fixes. 2024-02-17 21:01:24 -05:00
harry 460bf597d5 Added initial framework for a JS File object. 2024-02-17 20:52:09 -05:00
harry b5ae9012ce Include missing headers to fix build. 2024-02-17 19:20:04 -05:00
Andy Vandijck ef5df90e69
Update CMakeLists.txt 2024-02-17 20:11:10 +01:00
Andy Vandijck 56b24556df
Merge pull request #1 from TASEmulators/master
Add improvements
2024-02-17 20:08:20 +01:00
Andy Vandijck cde83851ba Fix build for newer targets
Fix build
2024-02-17 19:21:47 +01:00
thor2016 3f81906926
Merge pull request #708 from andyvand/master
Fix timestamp arm64
2024-02-17 10:26:20 -05:00
harry 7b9829eda9 Changed JS log file save function so that it doesn't truncate the current temp file. 2024-02-17 08:42:12 -05:00
harry a929eda845 Added JS log file functionality. 2024-02-17 07:54:00 -05:00
Andy Vandijck 6332900833 Fix timestamp arm64
Fix timestamp arm64
2024-02-17 11:22:03 +01:00
harry ab46158f05 Added movie js function remaps 2024-02-17 04:23:11 -05:00
harry df12fa2a85 Added more movie JS interface functions. Hooked up lua joypad.getimmediate functionality for Qt GUI. 2024-02-16 22:52:04 -05:00
harry aaa519d29c Added initial framework for movie JS API. Still TODO implement rest of movie functions. 2024-02-16 07:12:25 -05:00
harry af9b53ba75 Added joypad button override functionality to JS API. 2024-02-15 22:04:11 -05:00
harry f85f93c5bd JS joypad API improvements. 2024-02-14 06:28:26 -05:00
harry 446763b232 Added JS joypad object functionality. 2024-02-11 14:56:58 -05:00
harry 6248b0ee64 Added ability to pass command line arguments to JS scripts. 2024-02-11 10:43:40 -05:00
harry 20a9c151be JS logging improvements. 2024-02-11 10:25:47 -05:00
harry 2229d32720 Added a QJSEngine wrapper class to maintain link to script instance and dialog window with new script objects. 2024-02-10 23:00:07 -05:00
thor2016 290c4ccd96
Merge pull request #706 from negativeExponent/patch-1
QT: Fix volume adjustment for APU
2024-02-10 08:49:11 -05:00
negativeExponent 8d0fe851bf
QT: Fix volume adjustment for APU
Volume adjustments for the apu channel has a range of 0-256. With a value of 256, this acts as a bypass (toggle) and skips the computation entirely when set. This fixes issues when the original signal is too low already that passing it through volume controls will attunuate the signal instead and silence it.

The main volume does not behave the same way and 256 is not a toggle, so left it as-is.

@thor2016 feel free to make it better if necessary, maybe a toggle instead of a 256 max value or something.
2024-02-09 10:19:47 +08:00
harry 8ebb560d1c Added emulator save state JS interface. 2024-02-06 22:44:08 -05:00
harry 2f2482e950 Minor null check fix. 2024-02-05 18:34:03 -05:00
harry 401110bae8 Added ppu interface functions to JS engine. 2024-02-05 18:29:25 -05:00
harry a5071f10f0 Implemented ROM JS interface object. 2024-02-05 06:43:27 -05:00
harry 61da515f11 Finished remaining JS interface functions for JS emu object. 2024-02-05 05:56:40 -05:00
harry 1fc813803e Added JS script monitoring thread to prevent bad scripts from hanging the gui. 2024-02-04 22:09:59 -05:00
thor2016 5495c7eddc
Merge pull request #699 from TheRealQuantam/luafixes2
Multiple Lua Implementation Fixes
2024-02-04 09:07:23 -05:00
harry 4fa0d0651a Added vsync timer logic to Qt OpenGL video driver. 2024-01-31 07:08:08 -05:00
harry 01358407fd For Qt GUI, changed onFrameFinished callback to only update video buffer. Don't do any input processing as this will mess up when running turbo mode. Added a draw timer to SDL video renderer to better align is scheduling with the next vsync. 2024-01-31 06:49:54 -05:00
harry d363d04dbb For Qt GUI, add video buffer mutex to ensure clean transfer between emulation and GUI threads. Use common FCEU::mutex wrapper for cleaner code. 2024-01-31 05:28:41 -05:00
thor2016 cb0edc5a21
Merge pull request #695 from negativeExponent/mapper413
Mapper413
2024-01-31 04:29:21 -05:00
TheRealQuantam f702b5b989 Retriggering checks 2024-01-30 14:25:06 -08:00
harry 19abb0b249 Fix for build break, QJSEngine::setObjectOwnership does not exist in Qt5. Only in version 6. 2024-01-30 06:50:40 -05:00
TheRealQuantam c56b234b85 Multiple Lua support fixes:
- Do not crash when a Lua script calls rom.gethash when no ROM is loaded
- Do NOT assume the error message from lua_pcall will always be in stack slot 1, as sometimes it won't be
2024-01-30 02:41:42 -08:00
TheRealQuantam c7330d4543 Revert bad fix for not terminating script on initial error 2024-01-30 01:41:13 -08:00
harry 6b96016047 JS scripting in work. 2024-01-29 23:17:15 -05:00
harry 813d4c0c4b Added nullptr check in the event QStyle factory fails. 2024-01-29 20:19:36 -05:00
TheRealQuantam 5ff4edbdad Multiple Lua support fixes:
- Move call to info_onstop from FCEU_LuaStop to FCEU_LuaOnStop so it will always get called
- Do NOT assume the error message from lua_pcall will always be in stack slot 1, as sometimes it won't be
- After calling HandleCallbackError ensure L still exists before calling lua_settop
2024-01-28 19:01:49 -08:00
negative 5631e488f4
fix indents 2024-01-29 07:57:43 +08:00
harry a85f348e50 For Qt GUI, edit frame throttling logic when using turbo mode or really fast emulation speed to not be so wasteful when emulation is paused. Don't make sense to waste CPU resources spinning on nothing. Fixes #681. 2024-01-28 08:15:00 -05:00
harry c50c1d570c Change linear filter checkbox text to not include OpenGL. This function not specific to OpenGL and works for all supported video drivers. 2024-01-27 19:35:01 -05:00
harry b03c9c9c8b Removed const qualifiers to fix Qt build. Different versions of Qt QJSValue don't allow the call method to called from a const object. 2024-01-27 01:04:48 -05:00
harry fe0496a6cf Bug fix for issue in new LUA memory hook scheme where the callbacks get unregistered from the x6502 while still running. Fixes #693 2024-01-27 00:39:23 -05:00
harry a02ae8d3e0 Added memory hooks to JS engine. 2024-01-26 22:57:54 -05:00
thor2016 4f604b7708
Merge pull request #690 from negativeExponent/fix_ntsc_clip
Clip Left/Right Sides option now taken into account when using NTSC s…
2024-01-26 22:04:15 -05:00
harry 23cf99afe5 Added source listing to gdb debug output. 2024-01-26 22:00:20 -05:00
harry 3e8978c2aa Added debug script to aid in getting crash callstacks from users. 2024-01-26 20:33:40 -05:00
negative 82a99060e5
Use macro and minor offset adjustment 2024-01-25 18:10:48 +08:00
negative 8e935a05a6
Clip Left/Right Sides option now taken into account when using NTSC scaler 2024-01-24 14:52:45 +08:00
harry 2fce5ffe74 Added memory access functions for JS script interface. 2024-01-19 16:54:56 -05:00
harry 7a0be296fa Added logic to realtime update js global variable viewer. 2024-01-17 07:14:10 -05:00
harry 1dde9e7e75 Minor fixes for JS global variable viewer. 2024-01-16 22:04:00 -05:00
harry dc2d3c26aa Added global JS property tree to allow exploring of engine data. 2024-01-16 21:48:13 -05:00
harry 9a9f9541d6 Build fix for systems without Qt QML installed. 2024-01-15 20:09:25 -05:00
harry 198cdafbf8 Qt JS script engine interface in work. 2024-01-15 14:17:13 -05:00
harry 8e7e5e8c05 Minor refactor of script memory hook interface so that both lua and js script can coexist nicely. Script engines now register themselves with the CPU module for their functions to be called. 2024-01-15 09:31:53 -05:00
harry f90a269386 Build fix for Qt6. 2024-01-15 05:57:24 -05:00
harry e51a748a05 Qt JS engine in work. 2024-01-15 05:34:13 -05:00
harry ecda95ed70 Qt JS engine in work. 2024-01-15 04:33:27 -05:00
harry 3436e221de For Qt GUI, added initial framework for use of the Qt built-in ECMAScript (javascript based) engine. This scripting capability will allow users to load their own custom UI windows (created using Qt Creator tool) in the GUI. This is intended to serve as a the Qt GUI's functional replacement for building GUI elements using IUP in LUA scripts. This is a work in progress. 2024-01-14 08:58:10 -05:00
negative d742620d72
Fix 128K CHR-ROM variants for VRC5 2024-01-13 09:30:42 +08:00
negative aace08d0b6
Add mapper 413 support 2024-01-07 22:03:33 +08:00
negative 647c08e1e6
Add support for misc rom area 2024-01-07 21:59:25 +08:00
harry b53d087fca Changed Qt Win64 1px fullscreen window border to be a configuration option. Doesn't seem to be necessary for all users and maybe not at all anymore. We will see if the QOpenGLWidget issue resurfaces with this setting off. Fixes #514 2023-12-12 21:27:55 -05:00
Alexey Cluster e806a5a25a
Merge pull request #676 from negativeExponent/master
Fix handling of roms with  prg size below 16K
2023-12-09 22:46:54 +04:00
negative 1bd7e2f5b9
Fix handling of roms with prg size below 16K
Fix https://github.com/TASEmulators/fceux/issues/675
2023-12-08 18:39:15 +08:00
harry 72b949efcd For Qt GUI, added hot keys for certain emulation speed presets. Presets are: 1/4x, 1/2x, Normal 1x, 2x, 4x, 8x, and 16x. These hot keys can be mapped to gamepads using advanced key bindings. 2023-11-30 21:09:52 -05:00
harry 8600679636 Comment out warning message about debug file not being able to be opened for reading. It is normal for the file to not exist so it seems silly to warn about not being able to open it. 2023-11-24 09:02:50 -05:00
harry 2909846446 Upgrade appveyor macos build environment to monterey. Also auto build macos app with Qt6. 2023-11-17 21:57:16 -05:00
Alexey 'Cluster' Avdyukhin 5a5faa7372 More mapper 45 fixes 2023-10-26 23:33:49 +04:00
Alexey 'Cluster' Avdyukhin 764e1ebd76 Mapper 45 fixes 2023-10-26 23:19:38 +04:00
Alexey 'Cluster' Avdyukhin 33aca22af2 Issue #654 fix 2023-10-02 23:38:44 +04:00
Alexey 'Cluster' Avdyukhin e0138e5bfd Mapper 134 fix 2023-10-02 22:57:04 +04:00
Alexey 'Cluster' Avdyukhin 1ffa4d7f0c Mapper 134 CHR and PRG masks 2023-10-02 22:42:48 +04:00
harry d2ee6351c0 Added feature macro __FCEU_X86_TSC_ENABLE to enable usage of the X86 TSC. 2023-09-07 19:12:44 -04:00
zeromus 396096223e fix build errors from rdtsc (fixes #663) 2023-09-07 18:56:48 -04:00
harry d86c81e26e Fixed memory leak bug where FCEU_LoadGameSave and FCEU_SaveGameSave functions were not closing out their file handles. 2023-08-30 17:47:16 -04:00
harry 5252188010 Updated web pages and download links for 2.6.6 release. 2023-08-28 06:56:26 -04:00
harry 34eb7601c4 Fixed pkgconfig libarchive path for MacOSX build. 2023-08-26 13:04:21 -04:00
harry 79147dd9e7 Updated help docs for upcoming 2.6.6 release. 2023-08-24 21:26:26 -04:00
Alexey 'Cluster' Avdyukhin 3981ffc8a2
Merge pull request #655 from negativeExponent/patch-2
MMC5: Fix PRG in 32K bank switching
2023-08-22 23:21:14 +04:00
harry 35218bd313 Added initial web press release notes for version 2.6.6 2023-08-19 21:32:21 -04:00
harry 1adbb9c91b Fix for windows appveyor pipeline. Use strawberry perl to run build script. 2023-07-17 21:45:01 -04:00
100thCoin 4c28daf4a8 Write instructions now update the databus
This corrects open bus execution following write instructions.
2023-07-14 14:28:21 -07:00
harry dda4443ae9 Minor tscValid function correction. 2023-06-26 22:40:49 -04:00
negativeExponent 3f1e080672
Fix PRG in 32K bank mode
PRG register $5117 value is used for the entire $8000-$FFFF CPU range in 32K mode.

See https://www.nesdev.org/wiki/MMC5#PRG_mode_($5100) in PRG bankswitching
2023-06-27 09:03:46 +08:00
harry 99bb679ac5 Integrated suggested changes for issue #649 2023-06-18 18:11:03 -04:00
harry 530fec6aff Cleanup a few hard coded constants in timeStamp.h 2023-05-28 11:14:01 -04:00
harry 43cd7ef60a Updated Qt driver FCEUD_GetTime and FCEUD_GetTimeFreq functions to allow for a higher timing resolution. 2023-05-21 18:41:24 -04:00
harry 70aa850c15 Build fix for win64 Qt GUI. 2023-05-21 16:56:52 -04:00
harry 1a3170fd68 Changed Qt GUI frame throttling to use new time stamp record for computing timing. This fixes an issue where frame timing starts to lose precision when application time gets to float large values by performing calcultions using integer math 2023-05-21 16:44:20 -04:00
harry 6fb899e9a1 Another win32 build fix. 2023-05-19 22:37:13 -04:00
harry 2d896c10bc Build fix for win32. 2023-05-19 22:35:22 -04:00
harry e597f6a4a3 Moved time stamp functions to its own file. Use new common time stamp functions in Qt GUI timing. 2023-05-19 22:31:01 -04:00
harry a20f6f559b Compiler warning fix for potential uninitialized var. 2023-05-15 21:29:42 -04:00
harry be38e34a06 For Qt GUI, added code to save/restore window geometry for ROM selection from archive dialog. 2023-05-15 21:11:19 -04:00
harry 584593816f Remove debug symbol save call from load symbols function so that live file edits are not overwriten. Added a save debug symbols debugger menu action so that this can be explicitly performed. Fixes issue #642. 2023-05-15 20:42:17 -04:00
harry 7573f1b7dc Added profiler per thread logging. 2023-05-13 20:26:56 -04:00
harry 58b87387eb Cleanup of Qt GUI video driver viewport loading/unloading. Use QObject::deleteLater for a cleaner shutdown of a viewport. 2023-05-11 08:05:14 -04:00
harry 52c53dfe5b Removed commented out code Qt GUI video interface code. 2023-05-10 21:30:27 -04:00
harry b125d48db5 For Qt GUI add code that forces video alpha bits to 255 for all pixels. Some video drivers aren't ignoring the alpha bits as they should so make sure they as always set to be safe. 2023-05-10 20:58:19 -04:00
harry 3208c01b38 Hooked up bi-linear filter for new QPainter video driver. 2023-05-10 00:25:07 -04:00
harry 13b52f5c8e A few corrections to the QPainter Video driver. 2023-05-09 23:01:53 -04:00
harry 3d6cf7a730 Added a third video driver option for Qt GUI that uses a QPainter object to render QImages to the viewport. Consolidated video driver interface into a base class so generic object pointer can be used throughout the code to control the viewport. 2023-05-09 22:57:05 -04:00
harry a9f4176f2b Minor profiler update 2023-05-09 22:53:40 -04:00
harry d0d822447d Preparing to merge debug profiler in to main dev line. 2023-05-09 18:28:49 -04:00
harry 157b8531a2 Added TSC timing to suppliment lower resolution time measurements. 2023-05-09 08:26:28 -04:00
harry 9a0578dba9 Merge branch 'master' of github.com:TASEmulators/fceux 2023-05-09 05:59:32 -04:00
Alexey 'Cluster' Avdyukhin 3d1062c9fe Removed debug code from mapper 342 2023-05-08 19:42:58 +04:00
harry 5847c0c364 Initial add of execution profiling debug code. This code is only included in the build if the __FCEU_PROFILER_ENABLE__ macro is set. 2023-05-08 07:50:26 -04:00
Alexey 'Cluster' Avdyukhin 62b72b6141 Minor comments fixes 2023-05-08 15:17:53 +04:00
Alexey 'Cluster' Avdyukhin e95e1d1095 Mapper 342 fixes 2023-05-08 13:46:43 +04:00
harry f660f132af Added GNU profiler instrumentation build option to Qt GUI. 2023-05-07 07:37:48 -04:00
thor2016 94f2696a83
Merge pull request #626 from bbbradsmith/ppu_internal_memory_init
Memory initialization settings for PPU internal memory
2023-05-04 20:58:47 -04:00
thor2016 2265f3effe
Merge pull request #643 from fmahnke/mem-reg-read
Implement LUA function memory.registerread
2023-05-04 20:55:07 -04:00
Fritz Mahnke 150372eeca Remove some code that was ported to FCEUX from gens, but isn't used. 2023-05-04 14:50:11 -07:00
Fritz Mahnke 17e04a9b74 Implement LUA function memory.registerread. 2023-05-04 14:50:11 -07:00
Alexey 'Cluster' Avdyukhin f8b8e93eaf Mapper 342 memory optimization 2023-05-02 14:35:08 +04:00
harry 201cb50d89 Updated README and macOSX build from source instructions to include optional dependency libarchive. 2023-04-30 09:16:59 -04:00
Alexey 'Cluster' Avdyukhin 8b37ad91e5 Commit 8857f99d rollback 2023-04-28 17:33:05 +04:00
Alexey 'Cluster' Avdyukhin d72d9daebb Merge branch 'master' of github.com:TASEmulators/fceux 2023-04-28 15:02:22 +04:00
Alexey 'Cluster' Avdyukhin 8857f99dd0 Using 8KB of CHR RAM memory for UNROM-512 by default (required by some games), use NES 2.0 to override 2023-04-28 15:02:04 +04:00
harry f4c88411b0 Added libarchive to Qt GUI macOS build. 2023-04-25 21:21:40 -04:00
harry e1e88b7298 Added libarchive to Qt win64 build. 2023-04-25 04:14:30 -04:00
harry 99bc0fa17f Add nullptr check to ensure that libarchive version strings are valid before printing. They will be null when a particular format or filter is not supported. 2023-04-24 23:14:43 -04:00
harry 02baa1dfaa Added libarchive to linux build pipeline. 2023-04-24 23:11:20 -04:00
harry b7bc8a29f0 Added libarchive version info to Qt GUI about window. 2023-04-24 23:08:05 -04:00
harry 45b0ea6f8d Added cross-platform libarchive interface to allow Qt GUI to use 7zip ROM archives. Code is setup to allow for libarchive to be an optional dependency and will fallback to regular minizip if unavailable. 2023-04-24 22:49:30 -04:00
harry 084b2b9ccc Added snap by number of frames (instead of by time) option for Qt state recorder. 2023-04-22 15:56:31 -04:00
thor2016 0942d160ca
Merge pull request #636 from fmahnke/cheat-fix
Fixes for updating the cheats list.
2023-04-20 21:18:55 -04:00
Fritz Mahnke dbb688ec41 Fixes for updating the cheats list.
Update the cheats list after adding a new cheat from the Game Genie window. With
this change, the new cheat is shown immediately in the cheats window, if it's
open.

Fix an issue where the cheats list isn't always immediately updated after a
change. For example, clicking Add while an item is already selected might not
show the item until some other user action is taken. This change updates the
cheats list QTreeWidget viewport explicitly after making changes to its items.
This causes changes to be shown immediately.

Remove unused GuiCheatsDialog_t::actvCheatRedraw member.
2023-04-20 13:11:27 -04:00
thor2016 7666f1f7aa
Merge pull request #635 from fmahnke/ppu-viewer-fix
Don't divide by 0 when PPU/sprite viewer windows are small.
2023-04-20 06:23:36 -04:00
Fritz Mahnke 783aa5f38c Don't divide by 0 when PPU/sprite viewer windows are small.
Some of the views are proportional to window dimensions. This caused division by
0 where window dimensions round down to 0. This change avoids that, instead
setting those views' sizes to 0 in these cases.
2023-04-19 01:41:44 -04:00
thor2016 50d4d58276
Merge pull request #634 from fmahnke/no-scroll-pc
Don't always scroll to PC when updating debug window assembly view.
2023-04-17 21:26:54 -04:00
thor2016 b3d2a5f230
Merge pull request #633 from fmahnke/null-fix
Don't index into empty QString in HexEditor.
2023-04-17 21:26:34 -04:00
harry da7c7761a2 Added breakpoint editor address validity checking to Qt GUI. 2023-04-17 21:21:59 -04:00
Fritz Mahnke 39bb749f5d Don't always scroll to PC when updating debug window assembly view.
Change ConsoleDebugger::updateWindowData and updateAllDebuggerWindows to support
two different types of updates: UPDATE_ALL and UPDATE_NO_SCROLL. The new
"no scroll" type lets callers request the assembly view be updated without
scrolling the view to the PC line.

Change the hex editor and trace logger calls to updateAllDebuggerWindows to use
the no scroll update. The user may use these functions with the current
disassembly position in mind and not want to lose it.
2023-04-17 17:41:24 -07:00
thor2016 46054d190c
Merge pull request #632 from fmahnke/focus-fix2
Remove redundant setFocus call, which actually removes focus.
2023-04-17 19:49:18 -04:00
Fritz Mahnke f885abb71b Don't index into empty QString in HexEditor.
QKeyEvent::text may return an empty string in some environments for some keys,
such as modifier keys. This can cause a cause a crash. Add a check for the
hex editor to skip the editing code, which assumes the keyboard event is a
printable character and depends on a non-empty keyboard event text.
2023-04-17 08:28:37 -07:00
Fritz Mahnke 46ad7bbd38 Remove redundant setFocus call, which actually removes focus.
Under i3wm 4.21.1/Qt 6.4.1, the existing code actually removes keyboard focus
from the newly-activated window. Removing the call to setFocus in these cases
fixes the problem. The call to activateWindow is enough to put keyboard focus on
it.

The documentation for activateWindow implies the same.
2023-04-17 08:13:09 -07:00
thor2016 771bccd820
Merge pull request #631 from negativeExponent/m227_chrr_protect_fix
Mapper 227: Fix CHR-RAM protect check
2023-04-17 07:16:43 -04:00
negative c4ce3ac3fd Mapper 227: Fix CHR-RAM protect check 2023-04-17 17:53:42 +08:00
harry 8649a38ef9 Removed old commented out method in Qt debugger. 2023-04-16 21:41:49 -04:00
harry 259c5754ee Code cleanup of conddebug.cpp. Make functions that are not externally used static. Changed condition to have a constructor/destructor and allocate via std new/delete. Fixed a small memory leak. For Qt GUI, refactored debugger breakpoint editor window so that it has its own class to allow for more detailed error checking methods to be added. 2023-04-16 21:38:50 -04:00
harry 5adbc1fcf2 Minor initialization fix for state recorder. 2023-04-15 15:53:17 -04:00
thor2016 c5182aacce
Merge pull request #629 from thesamesam/gcc13
Fix build with GCC 13
2023-04-10 06:59:19 -04:00
Sam James 6ad3837eeb
Fix build with GCC 13
GCC 13 (as usual for new compiler releases) shuffles around some internal includes and so etc is no longer transitively included:
```
In file included from /var/tmp/portage/games-emulation/fceux-2.6.5/work/fceux-2.6.5/src/drivers/Qt/AboutWindow.cpp:33:
/usr/include/x264.h:40:4: warning: #warning You must include stdint.h or inttypes.h before x264.h [-Wcpp]
   40 | #  warning You must include stdint.h or inttypes.h before x264.h
      |    ^~~~~~~
/usr/include/x264.h:127:5: error: uint8_t does not name a type
  127 |     uint8_t *p_payload;
      |     ^~~~~~~
```

See https://gnu.org/software/gcc/gcc-13/porting_to.html.

Bug: https://bugs.gentoo.org/900611
2023-04-10 05:20:23 +01:00
harry 4cb6d97183 Added state recorder config dialogs to Qt GUI that prompt user to apply selected settings and to restart recorder for changes to take effect. 2023-04-03 21:42:24 -04:00
harry 47f795b04b For Qt GUI, added state recorder status display to config window. 2023-04-02 07:39:00 -04:00
harry b4efaa91d8 Changed memory_savestate and compressed_buf buffers in state.cpp to be static file scope. No reason to export these to the linker with global scope. 2023-04-02 06:01:37 -04:00
harry 55bcb3d41a Added a load prev and next state functions for state recorder. 2023-04-01 21:17:34 -04:00
harry 99aefa563a Fix for state recorder load state function. Set EMUFILE_MEMORY read position back to beginning of memory block before calling FCEUSS_LoadFP. 2023-04-01 19:39:37 -04:00
harry e95c0fe86b For Qt GUI, hooked up state recorder pause on load options. 2023-04-01 18:22:54 -04:00
harry 86c6d3e56c Qt GUI state recorder config window updates. Added estimated state save CPU time display. Pause on load time widgets in work. 2023-03-31 06:55:59 -04:00
harry 3e9398f973 Added a timed pause state for use by the state history loader. When the user backs up to a previous state, give the option of temporarily pausing to give the user time to visually process the state before resuming game play. When in this state, an unpause count down can also be optionally shown on the upper left of the video display. Also, setting pause during this state down will cancel the count down and put the emulation into full pause. TODO add GUI config hooks to control video overlay and duration config options. 2023-03-31 05:34:32 -04:00
harry b6a8b46de0 For Qt GUI, added feature that allows save state files to be loaded via window drag n drop from a file dialog. 2023-03-26 17:05:19 -04:00
Brad Smith 46654ed585
ignore 7z_64.dll in output folder 2023-03-26 15:48:26 -04:00
bbbradsmith 4774a773a8 Apply memory initialization settings to nametable, palettes, and sprites. 2023-03-26 15:40:30 -04:00
harry 4b8528588d Added code to save/load state recorder config parameters for Qt gui. 2023-03-12 20:46:45 -04:00
harry bb76573112 State recorder config setup in work. 2023-03-11 20:45:13 -05:00
harry f87d746350 State recorder config dialog in work for Qt GUI. 2023-03-11 15:54:44 -05:00
harry bc6164260d State recorder in work. 2023-03-11 07:47:58 -05:00
harry 326d09d546 Merge branch 'master' of github.com:TASEmulators/fceux 2023-03-11 07:18:11 -05:00
thor2016 88c01cba6c
Merge pull request #624 from negativeExponent/master
Add mapper 174, update mapper 78, fix mapper 205
2023-03-10 21:20:37 -05:00
negative 0aa49a5627 Mapper 205: Fix for split-rom variant (UNIF) 2023-03-06 14:42:25 +08:00
negative 012fbca2d8 Move mapper 205 to mapper 361/366, add proper mapper 205
- Current mapper 205 implementation moved to describe mappers 361 and 366
instead.
- Then add mapper new mapper 205.
These mapper changes should now reflect
what is described in mapper's wiki article
2023-03-06 14:03:18 +08:00
negative 43bdd96d7e Add mapper 174 2023-03-06 13:24:20 +08:00
negative 6babc7fdaf Mapper 78: Add submapper support 2023-03-06 13:13:06 +08:00
harry d7c23fa92e FCEU state recorder in work. 2023-03-04 16:34:21 -05:00
thor2016 c0eee08ce5
Merge pull request #622 from negativeExponent/patch-1
Mapper 354: Add CHR-RAM protect
2023-03-03 20:50:54 -05:00
negativeExponent 9cf87738bf
Mapper 354: Add CHR-RAM protect
Fix https://github.com/TASEmulators/fceux/issues/621#issuecomment-1449284275
2023-03-01 11:42:28 +08:00
harry 5bdbf628a0 For Qt GUI, set palupdate flag after force grayscale or use custom palette settings changeto ensure that PAL 3x filter updates appropriately. Fixes issue #618 2023-02-21 18:56:06 -05:00
harry da05b56cba Added checkbox to Qt debugger menu to control trace logger auto start function on debugger open. Also added code to stop the trace logger on debugger close if it was the debugger who started it in the first place. 2023-02-20 18:36:07 -05:00
harry 25cdc5ade1 Ensure proper initialized returns for emufile read functions. 2023-02-20 12:53:55 -05:00
harry 6f2c0a84f9 Refactor save game RAM code so that the mappers call a function to register their buffers instead of writing directly to the cartinfo variables. Added optional reset callback function that can registered and will be called when FCEU_ClearGameSave runs. This is for memory that needs to be reset to non-zero values. 2023-02-20 11:21:04 -05:00
harry b199bb9787 Update version.h so iterim git is not confused with latest release. 2023-02-19 21:02:06 -05:00
harry dfd5e13b8f Minor cleanup of unrom512 flash state save/load init. Removed debug pragma message. 2023-02-19 20:58:03 -05:00
harry 20b982854d Commented out unrom512 flash save RAM hooks until movie FCEU_ClearGameSave issue can be fixed. 2023-02-19 20:34:04 -05:00
harry 92b021171f Fixed compiler endianness detection. Unified to use common macros in endian.h 2023-02-19 20:07:50 -05:00
harry d5fd976ccf Added button icons for ok/cancel buttons on Qt select from zip archive window. 2023-02-19 15:39:04 -05:00
harry 56c0d30f83 Fix crash in Qt CDL when cdloggerVideoDataSize is zero. 2023-02-19 15:22:34 -05:00
harry 6b73e91c38 Ensure a few static variables are initialized properly. 2023-02-18 16:24:28 -05:00
harry e9f97f520a Change size input for allocation functions to size_t type instead of uint32. 2023-02-18 16:23:28 -05:00
harry 903e035a95 For Qt GUI added code to warn user that symbol table will be wiped when importing ld65 dbg files. Added code to clear and redraw debugger window data after importing new symbols. 2023-02-14 20:33:46 -05:00
harry 791ff7478d Commented out debug print. 2023-02-13 18:56:14 -05:00
harry 53cf1eaf2a Added a macro for NES header size to avoid having magic number 16 all over code. Fixed ld65 bank calculation to account for header. 2023-02-13 18:53:53 -05:00
harry b33b27c25b First semi-successful ld65 debug symbol import 2023-02-12 22:21:05 -05:00
harry e0aa5a71fa ld65 debug database loader in work. 2023-02-12 14:47:00 -05:00
harry 0beac5d725 ld65 debug file parser in work. 2023-02-12 12:54:20 -05:00
harry 07617997f4 Added hooks to Qt GUI for importing of ld65 debug symbol files. 2023-02-12 09:09:17 -05:00
harry c1e7465fe5 Laying out framework for ld65 debug symbol loader feature. 2023-02-12 08:30:14 -05:00
harry 18f09c8e76 Fix for UBSAN left shift of negative number error in SexyFilter2 2023-02-09 20:06:18 -05:00
harry 66f35e1074 Fixed 2.6.5 release source download link labels. 2023-02-08 20:29:20 -05:00
harry 785327db33 Updated web page download links for 2.6.5 release. 2023-02-08 20:25:05 -05:00
zeromus ea6ed69b87 add missing StateRestore on mapper 354 2023-02-08 17:47:15 -05:00
harry ed192bec5c Updated 2.6.5 web page press release. 2023-02-08 04:43:30 -05:00
harry cb0301b12d Added a flag to control whether duplicate debug symbol names are allowed. Default value to true. 2023-02-08 04:38:06 -05:00
harry cd5253babe Updated and regenerated help docs with new debugger.getsymboloffset lua info. 2023-02-07 21:31:04 -05:00
harry 66e2576595 Fixed string over-read in win port by added a exit condition for loop in ASM debugger logic. 2023-02-06 21:26:40 -05:00
harry 410810ac18 Fix for win port editing core debug symbol table entries. 2023-02-06 20:49:09 -05:00
harry 47530d614c Added code to check for duplicate debug symbol names when editing the name of an existing symbol. 2023-02-05 20:44:36 -05:00
harry 130d1dcd45 Changed symbolic debug table error printf statements to use FCEU_printf so that messages are logged in message viewer for user to read. 2023-02-05 08:20:28 -05:00
harry e4749425ba Added code to remap symbolic debug name in lookup table if editted via gui. 2023-02-05 03:57:23 -05:00
harry 98008bcd4d Fixed memory leak in Qt GUI when adding a new symbolic debug fails. Added error messaging to inform user why it failed. 2023-02-04 21:00:29 -05:00
harry fb75b34b1d Added smarts to Qt debugger context menu to show add/edit for symbols and bookmarks on whether they already exist or not. 2023-02-04 20:14:47 -05:00
harry b3386027bd Fixed ASAN error in debug symbol delete. 2023-02-04 15:40:52 -05:00
harry 575b019659 Changed core symbol table to have private data that can be accessed via methods. The goal is to control access to this data to prevent table lookups getting messed up when symbols are editted via the gui. 2023-02-04 15:15:31 -05:00
harry fa7da51ccd Patch new core debug symbol table into win port. 2023-02-04 07:25:39 -05:00
thor2016 5bdbdd61b1
Merge pull request #608 from tsone/lua_improve_getsymboloffset
Renamed Lua debugger.getsymboladdress() -> getsymboloffset()
2023-02-03 20:46:11 -05:00
tsone ef1f7ec39a Renamed Lua debugger.getsymboladdress -> getsymboloffset and added the function documentation. 2023-02-01 16:00:28 +01:00
harry 2d81c9c7b2 Added frame advance delay config parameter to Qt GUI and set delay default to 40 frames to match win port timing. Also, reset frameAdvance_Delay_count to zero before setting frameAdvanceRequested flag to avoid possible race condition where emulation thread can miss seeing zero count and not temporarily pause when it should. 2023-02-01 01:06:48 -05:00
harry b602de6ce0 Removed old common config code from Qt build. The Qt port only uses the newer C++ style common config system. 2023-01-31 23:02:21 -05:00
harry d32ab0ad51 Added a mutex to the debug symbol table access functions to ensure that access to symbol maps is thread safe. Since a map change will invalidate any iterators operating on the map, it is important to ensure that access to the map is locked when a thread is iterating or operating on the map. 2023-01-31 22:14:49 -05:00
harry 5cec622e58 Disabled integer loss of data conversion compiler warnings (4267,4244) for win64 builds. All warnings are converting between 32 and 64 bit types and is doubtful to an issue. 2023-01-31 01:56:04 -05:00
harry 4a54f43246 Updated state.cpp so that .luasav file paths use std::string so that they aren't limited in size. 2023-01-31 00:27:01 -05:00
harry 5ed3463c01 Cleaned up -Wunused-result compiler warnings in lua-engine.cpp 2023-01-31 00:03:16 -05:00
harry be9ad4ccf2 Fix small memory leak that occurred when loading a ROM with auto-resume enabled and now resume save file currently exists. Created fceuScopedPtr class type to help prevent memory leaks on temporary memory allocations in functions with early outs. 2023-01-30 23:10:03 -05:00
harry d4c2a7e2d9 Fix for Qt ram watch window save file symbol type parameter sometimes being undefined. 2023-01-30 22:13:28 -05:00
harry 6a2e384469 Fix for Qt Ram Watch window save files to allow for max path. 2023-01-30 21:41:03 -05:00
zeromus 8ea0a3e7e3 fix msvc building 2023-01-30 18:04:34 -05:00
tsone d5a3cecea0 Moved debug symbol table (.nl file) related code to own file and added symbol name -> address lookup. Example uses in Lua and Debugger breakpoint. 2023-01-30 17:00:10 -06:00
harry d061ba2bfa Fixes for -Wformat compiler warnings when using custom printf style functions. 2023-01-30 09:24:49 -05:00
harry 3266a20970 Changed printf attribute check to look for gcc and clang compilers specifically. 2023-01-29 20:46:16 -05:00
harry f815c849c2 Added FCEU printf format specifier macros to enable compiler checking of format strings for custom printf style functions. 2023-01-29 19:38:30 -05:00
harry 0a19794cec Fixed a few warnings for -Wunused-result with fread usage. 2023-01-29 12:32:47 -05:00
harry 4944faf618 Cleaned up -Wunused-result warnings for usage of fgets. fgets from stdin should really never fail so just added nullptr return handling to silence warning. 2023-01-29 11:42:32 -05:00
harry 421c7b35e7 Resolved strncpy -Wstringop-truncation warning in Qt NES header editor. 2023-01-29 11:28:58 -05:00
harry 727e403917 A couple more int compare sign warning fixes. 2023-01-28 22:51:33 -05:00
harry 5a98a7fc0d Re-enable int comparison sign mismatch compiler warnings. 2023-01-28 20:28:51 -05:00
harry 7c3c3caf93 More int comparison sign mismatch compiler warning fixes. 2023-01-28 20:24:17 -05:00
harry 213f4e2579 More fixes for int compare sign mismatch warnings in Qt TAS Editor. 2023-01-28 16:24:04 -05:00
harry 7910da7805 More int comparison sign mismatch compiler warning fixes. 2023-01-28 16:03:05 -05:00
harry 7a40075f3e Build fix for ssize_t not being available in windows. 2023-01-28 15:05:58 -05:00
harry c075cdca4f More int comparison sign mismatch compiler warning fixes. 2023-01-28 14:05:21 -05:00
harry 4434974350 Cleaned up int comparison sign mismatches in Qt TasEditor markers. 2023-01-28 13:49:09 -05:00
harry d530bab2e7 Resolved gcc -Wsign-compare compiler warnings in state.cpp. 2023-01-28 09:11:42 -05:00
harry 5b9385b2c8 Resolved int comparison compiler warning. 2023-01-28 09:09:58 -05:00
harry a45aa73a4a Fix for int conversion compiler warning. 2023-01-28 08:04:05 -05:00
harry 5582df13d7 A few signed/unsigned int comparison mismatch compiler warning fixes. 2023-01-28 07:54:31 -05:00
harry c2dc8cd25b A few more int conversion compiler warning fixes. 2023-01-28 07:49:24 -05:00
harry 2d158a8298 Updated a few types to size_t to match std. 2023-01-27 21:01:51 -05:00
harry a81632b7e1 Changed compiler attribute checking to play nice with older compilers. 2023-01-27 20:38:47 -05:00
harry d4d4001d32 Added a guard to not double define __WIN_DRIVER__ macro. 2023-01-27 08:14:58 -05:00
harry 85dfcef243 One more compiler warning fix for size_t to long conversion. 2023-01-27 08:06:28 -05:00
harry a9562cd655 Cleaned up a few compiler warnings caused by last commit. 2023-01-26 08:03:18 -05:00
harry 5e9e80eddc Change EMUFILE fseek,ftell, and other related functions to use types that follow the C standard (long int for position offsets and size_t for sizes). This allows for larger max file sizes on unix platforms and cleaner code that better maps to the C standard. 2023-01-25 21:46:30 -05:00
harry b338d4a037 Fix for UBSAN error: left shift of negative value 2023-01-25 20:36:32 -05:00
harry 01821d89b5 Fix for Qt GUI Avi codec save settings to support max file path. 2023-01-23 22:26:56 -05:00
harry 41878d95ef Added Qt empty scan code to Qt Key map for Mac OS platform. QKeyEvent::nativeScanCode() does not return valid codes on Mac OS, so this backup conversion method will not work on that platform. 2023-01-23 21:40:59 -05:00
harry 53288c0a75 Cleaned up native scan code to Qt key conversion code for windows. Use known key definitions instead of hardcoded values when possible. 2023-01-23 21:20:19 -05:00
harry f4a9fa6898 Comment out debug print statements for Qt keyscan code. 2023-01-22 21:51:29 -05:00
harry 39aafe7a88 Cleaned up native scan code to Qt key conversion code for linux. Use known key definitions instead of hardcoded values when possible. 2023-01-22 21:15:56 -05:00
Alexey 'Cluster' Avdyukhin 9a74d64b2c Fix for #510, for Windows 2023-01-22 21:32:13 +04:00
Alexey 'Cluster' Avdyukhin 99dc99831c Fix for #510 2023-01-22 20:43:30 +04:00
harry a4a799feef Changed Qt GUI TAS editor recent menu to show file name separated by some space and then full path to file. This is so that the file name can still be read when the full path is ridiculusly long. 2023-01-22 10:00:00 -05:00
harry 6d622cc787 Fix for Qt GUI TAS editor to support max file path for fm3 files. 2023-01-22 09:55:20 -05:00
harry 93c0e13572 Fix for Qt GUI wave file recording to support max file path length. 2023-01-22 09:45:22 -05:00
harry 44a5c58e44 Added realloc error checking in convert_fcm function to fix cppcheck warning. 2023-01-21 12:32:52 -05:00
harry b9385118bd Further protect against overlapping string copy by checking if pointers are different... just to be sure it is safe. 2023-01-21 12:11:41 -05:00
harry 26f623f5ea Fix crash in Qt GUI for movie player file path parser. 2023-01-21 11:59:56 -05:00
harry 821e82a069 Fix indentation and add braces to silence empty while loop body compiler warning. 2023-01-21 11:41:55 -05:00
harry aad52488ac Bug fix for ASAN error overlapping strcpy source and destination caused curMovieFilename being passed to openRecordingMovie which copies over itself. Changed type from char array to std::string whose assign function will allocate new memory to copy to before deleting the old string buffer. 2023-01-21 09:59:50 -05:00
harry 2b468be264 Changed temp save/load state file path variables to be std::string. 2023-01-20 23:53:29 -05:00
harry 2f7b4abab2 Reset std::strings lastSavestateMade and lastLoadstateMade using clear method. 2023-01-20 23:42:05 -05:00
harry 47435295ff Fixed if conditionals using lastSavestateMade address that always evaluates to true. Changed lastSavestateMade and lastLoadstateMade to std::string instead of char buffer, ensures proper initialization at startup and allows for unix max path. 2023-01-20 22:37:17 -05:00
harry f0a4e8bd11 Added a proper contructor to CHEATF_SUBFAST struct to fix clang compiler initializer warning. 2023-01-20 22:02:32 -05:00
harry 8fc3ea8ba2 Added FCEU_UNUSED and FCEU_MAYBE_UNUSED macros to help silence certain unused variable and function warnings. Used FCEU_MAYBE_UNUSED to silence unused static function warnings (until it can be deemed that these functions will never be needed). Also, cleaned up a few other unused variable warnings. 2023-01-20 21:50:26 -05:00
harry 5f44e8f374 For Qt GUI, fixed http references to https://fceux.com to avoid redirection. 2023-01-19 06:45:15 -05:00
harry 243eb1d3fd Added 2.6.5 release notes to chm file and regenerated web html. 2023-01-18 21:28:05 -05:00
harry 4b9430e8b1 Added recent mapper 225 and 255 update to release notes. 2023-01-18 21:03:02 -05:00
zeromus ebf0c2c737 update 225 from fceumm to get 255 support too. 2023-01-18 11:05:43 -06:00
harry db6d5bed8c Initial cut at web press release page for upcoming 2.6.5 release. 2023-01-17 21:00:43 -05:00
Alexey 'Cluster' Avdyukhin b40cb9bcf1 Added separator to the menu (win) 2023-01-17 16:55:00 +04:00
harry 5c1c71be67 For Qt GUI, added feature that allows for lua script loading via file drag and drop operations. 2023-01-17 07:02:03 -05:00
harry dd77569621 More large filepath parsing updates for Qt GUI. 2023-01-16 21:11:09 -05:00
harry 1adffbdf00 Modified Qt GUI recent ROM menu items to show the ROM base name following by a tab space and then the full path. This allows for the ROM file name to be in view in the event that the full path is excessively long. 2023-01-16 20:57:26 -05:00
harry 38089b62c0 Fix for Qt GUI compiler warnings in iNesHeaderEditor for potential stack buffer overflows on snprintf usage. 2023-01-16 20:34:00 -05:00
harry f589dfed05 Merge branch 'master' of github.com:TASEmulators/fceux 2023-01-16 20:21:16 -05:00
harry 42039004b5 Fix for Qt GUI symbolic debug filename widget size exploding when the ROM file path is large. 2023-01-16 20:21:10 -05:00
zeromus 3501ab9a40 add mapper 354 from fceu-mm 2023-01-16 10:34:13 -06:00
harry 50a7bb70c8 Changed Qt symbolic debugger file save function to use std::string for filepath. 2023-01-16 09:50:38 -05:00
harry ba47f169ca Fixed stack buffer overflow in Qt GUI loading a ROM with a large filepath from file dialog. 2023-01-16 09:44:32 -05:00
harry 3564f61849 Changed Qt GUI NL filename utility functions to operate on std::string arguments instead of char buffers to better allow for large file paths. 2023-01-16 09:35:22 -05:00
harry 097c8dc79d Increase configSys file parsing line buffer to be able to handle 4096 characters. This allows for unix max file path accomodation. 2023-01-16 09:33:55 -05:00
harry 5760a26863 Add include cart.h to ines.h for CartInfo definition. 2023-01-16 09:09:59 -05:00
harry 4c9a0ad7cf Increased array size of LoadedRomFName buffer to allow for max unix filepath length. Remove duplicate extern definitions in cpp and instead include ines.h header which contains official extern definition. 2023-01-16 08:42:33 -05:00
harry 600588910f Another build fix for Qt GUI. 2023-01-15 04:38:53 -05:00
harry 2be7794ab5 Build fix for Qt GUI. 2023-01-15 01:44:34 -05:00
harry 8a59bd3191 Qt GUI build fix for new ffmpeg macro that expands to a C++20 designated initializer that is not supported by earlier compiler standards. 2023-01-15 01:04:39 -05:00
harry 9a969edf99 Another Qt batch change to try to catch error. 2023-01-15 00:31:57 -05:00
harry ba73c0b2f8 Changed error check command for Qt auto build batch file. 2023-01-15 00:05:05 -05:00
harry 210069b78a Change temp stack variable that holds full ROM path from fixed char array to std::string. This will allow for larger file paths. 2023-01-14 22:43:45 -05:00
harry c837c8981c For QT GUI added logic to check for an FCEUX_CONFIG_DIR environment variable to specify the folder where fceux data resides. This allows users to specify there own data folder that doesn't have a .fceux hidden folder get auto created. 2023-01-14 18:34:03 -05:00
harry 90d03a6374 For Qt GUI, add libav version preprocessor guard to make sure that AV_OPT_TYPE_UINT64 definition exists before using it in source. Fixes issue #578 2023-01-13 01:18:58 -05:00
harry a3240e9c2e Qt GUI deprecation usage fixes for ffmpeg 5.1.x libavutil. Code is now compatible with new AVChannelLayout data structure. Used proper version macros so that code is still setup to be backwards compatible with ffmpeg 4.x 2023-01-13 00:45:44 -05:00
harry ff24dd7a68 For win64 Qt GUI build, disable annoying data type conversion/comparison warnings. 2023-01-12 21:33:05 -05:00
harry ec4d76707c Reset Qt GUI audio buffer samples to zero when killing SDL sound. 2023-01-11 21:57:51 -05:00
harry 37bf5c9bf2 Added logic to Qt GUI to protect against invalid audio sample rates or buffer sizes being fed from the command line to the sound system. Sound will use default values if inputs are deemed invalid. Fixes issue #603 2023-01-11 21:38:29 -05:00
harry cc1e6a8f8b Minor change to Qt GUI window focus audio mute logic. Ensure that it is always re-computed on a window active change event. 2023-01-11 21:08:55 -05:00
harry 739c01f051 Added Qt GUI sound mute function. This function is accessible either via hot key or checkbox on sound config window. Mute state is a config parameter and will persist between application boots. Fixes issue #591 2023-01-11 20:47:11 -05:00
harry e06d1cd506 Modified Qt GUI parseFilepath to output std::string types instead of char * buffers to remove file path length limitations. 2023-01-10 21:14:10 -05:00
harry 4dd8943724 Added negative index protections into GetCHRAddress to protect against a large unsigned number being passed and interpretted as a negative number. Caught by gcc UBSAN. 2023-01-10 17:42:45 -05:00
harry 293fc7b672 Upgrade mac OS build image to 'Big Sur' for appveyor builds. Homebrew has dropped pre-build support for Catalina. 2023-01-07 17:52:36 -05:00
Alexey 'Cluster' Avdyukhin d1368c8213 Debugger and hex editor fix for Vs. System ROMs 2023-01-07 19:46:10 +04:00
Alexey 'Cluster' Avdyukhin c9cdca11c4 Comments for mapper 342 2023-01-07 19:40:59 +04:00
Alexey 'Cluster' Avdyukhin e1c20e4928 Removed some warnings 2023-01-07 19:27:04 +04:00
harry 2c5c3a9fe4 Fix for compiler sprintf usage warning: too many arguments for format. 2023-01-07 02:52:55 -05:00
harry 4c71af3212 Fix for apparent logic error of self-comparison always evaluates to true. Resolves g++ compiler warning. 2023-01-07 02:51:34 -05:00
harry 6ae834a1df Changed interface to Qt GUI function getDirFromFile to pass reference to std::string so that returned string will not have string length limitations. Buffer size will grow as needed for the path and will not be allocated on the stack. 2023-01-07 01:47:45 -05:00
harry 4e54ea54ac Refactor Qt GUI function fceuExecutablePath to be more efficient. Since the path to the executable never changes during the lifetime of the process, save it off the first time this function is called for later use. Function interface changed to just pass back a pointer to the saved string. Saves on stack memory and is more efficient since it does not have to continually copy data onto the stack. 2023-01-07 01:19:29 -05:00
harry b3717c008b Refactor Qt GUI function getDirFromFile to use QFileInfo to get absolute directory path. Also, added a input buffer size argument to prevent string copy buffer overflows. Fixes issue #598. 2023-01-07 00:43:35 -05:00
harry 77b894df0e Changed Qt debugger data save file extension to be .fdb instead of .dbg so that it does not conflict/overwrite ld65 debug symbol files. Fixes issue #600. 2023-01-06 23:27:06 -05:00
Alexey 'Cluster' Avdyukhin 552be94c1a
Merge pull request #596 from Kagamiin/feature/vrc-irq-cycle-mode
Implementing cycle IRQ mode for Konami VRC mappers
2023-01-06 18:18:50 +04:00
Alexey 'Cluster' Avdyukhin 04e1b32675 Linux build fix 2023-01-06 18:04:45 +04:00
Alexey 'Cluster' Avdyukhin ac18eb3c37 Vs. System - unused DIP switches replaced with second coin and service buttons 2023-01-06 17:58:02 +04:00
Alexey 'Cluster' Avdyukhin 598a291daf Vs. System error messages and DIP switch visualization 2023-01-06 16:50:33 +04:00
Alexey 'Cluster' Avdyukhin 2c35a6dfae Allow to open HEX editor when emulation is not paused + minor fix 2023-01-06 16:37:47 +04:00
Alexey 'Cluster' Avdyukhin e6e17ded38 Linux build fix 2023-01-06 16:34:46 +04:00
Alexey 'Cluster' Avdyukhin 4c215246fe Minor GUI fix 2023-01-06 16:31:31 +04:00
Alexey 'Cluster' Avdyukhin d2aed113b8 More NES 2.0 header fields: Vs. System settings, expansion type 2023-01-06 16:03:34 +04:00
Alexey 'Cluster' Avdyukhin 88ad9ceca9 Mapper 342 update 2022-12-23 20:35:35 +04:00
Kagamiin~ 77b252bf50 Implementing cycle IRQ mode for Konami VRC mappers 2022-12-21 15:16:29 -03:00
Alexey 'Cluster' Avdyukhin a04df761a9 Mapper 470 2022-12-21 12:30:04 +04:00
Alexey 'Cluster' Avdyukhin f3675320d8 Fixed IPS loader to prevent double archive browser 2022-12-19 14:55:53 +04:00
Alexey 'Cluster' Avdyukhin f53c2470fc Submappers 268.8 and 268.9 2022-12-16 20:10:21 +04:00
Alexey 'Cluster' Avdyukhin 9ae27c7ded Mapper 268, submappers 6 and 7 2022-12-12 23:38:56 +04:00
Alexey 'Cluster' Avdyukhin 47c2ce5a38 Mapper 268, support for ROMs with 1 MiB CHR-ROM 2022-12-12 23:13:42 +04:00
Alexey 'Cluster' Avdyukhin 773eaa868c Mapper 268, submappers 8,9 merged into 2,3 and fixed (https://www.nesdev.org/wiki/Talk:NES_2.0_Mapper_268) + refactoring 2022-12-12 17:48:56 +04:00
Alexey 'Cluster' Avdyukhin 0fb86b9740 Fixed broken UNROM-512 emulation + some refactoring 2022-12-07 20:04:27 +04:00
Alexey 'Cluster' Avdyukhin 689d763f67 Windows build fix 2022-12-07 09:42:05 +04:00
Alexey 'Cluster' Avdyukhin 853b2718b7 Removed debug messages 2022-12-06 22:51:41 +04:00
Alexey 'Cluster' Avdyukhin b6bf83db7f Mapper 268, submappers 8,9 2022-12-06 17:59:26 +04:00
Alexey 'Cluster' Avdyukhin a70bc4c72c Mapper 268, submappers 4,5 2022-12-05 23:25:49 +04:00
Alexey 'Cluster' Avdyukhin 92c0417783 Mapper 268 refactoring 2022-12-05 23:15:09 +04:00
Alexey 'Cluster' Avdyukhin d6d5b44a35 Mapper 268, submappers 2,3 fix 2022-12-05 21:56:50 +04:00
Alexey 'Cluster' Avdyukhin 7a64e06b88 Mapper 268, submappers 1,2,3 2022-12-05 21:55:38 +04:00
Alexey 'Cluster' Avdyukhin 856a19352f Forgot to update CMakeLists.txt 2022-12-05 17:50:11 +04:00
Alexey 'Cluster' Avdyukhin 90aecc0543 COOLGIRL mapper (mapper 342) 2022-12-05 14:56:31 +04:00
Alexey 'Cluster' Avdyukhin 328e351255 Typo fix 2022-12-05 14:09:21 +04:00
Alexey 'Cluster' Avdyukhin d075c2b46a COOLBOY fixes and self-writable feature 2022-12-05 13:54:50 +04:00
harry 35c5fa36c1 Upgraded Qt/SDL win64 build dependencies to use SDL-2.24.1 and ffmpeg-5.1.2 2022-10-12 20:51:11 -04:00
harry 06c3473c29 Undo packaging of LUA DLLs for Qt Win64 GUI. Static lib seems to be more stable. 2022-10-10 22:04:48 -04:00
harry 83c529efb6 Package lua DLLs and auxlib.lua into Qt win64 zip for IUP functionality. 2022-10-10 09:54:52 -04:00
harry 900305b587 For Qt GUI, added option to use palette background color as video background color. This option can be accessed from via main menu -> option submenu. 2022-10-09 21:09:52 -04:00
harry 06467ce73a Fix for Qt GUI OpenGL blending parameters. 2022-10-09 20:11:54 -04:00
harry 1ad9a3d857 For Qt GUI, added logic to prevent controller buttons that are bound to the keyboard from being active when family keyboard is enabled. Controller buttons that are mapped to physical gamepad or joystick are unaffected. For issue #572. 2022-10-08 09:56:49 -04:00
mjbudd77 edae2d4f57 Updated download links for interim auto builds for new interim-build pre-release setup (uploaded from appveyor using github release deployment) 2022-10-01 17:33:17 -04:00
mjbudd77 7b007332c4 Updated access token. 2022-10-01 17:03:20 -04:00
mjbudd77 99eb406b1a Added appveyor github release functionality. Master auto builds are now uploaded to a rolling interim-build pre-release. Release tag builds will upload official release builds from appveyor automatically. 2022-10-01 16:29:02 -04:00
Brad Smith 897491b3f5
how to find newer old releases 2022-09-25 20:36:54 -04:00
zeromus 06b53e912e fix initialization of xdbuf and xdbackbuf 2022-09-10 15:31:48 -04:00
harry eaa5d6f88f For Qt GUI, added code to update debugger window ASM view when RAM or ROM edits are made from the hex editor. Fixes #508. 2022-09-01 20:32:51 -04:00
zeromus 6b0d1a52ca winport - apply ROM file pasting as a single undoable action using the multi-byte capability already in ApplyPatch. Fixes #394 2022-08-28 17:15:05 -04:00
zeromus 069727c191 fix a bug in applying some IPS files 2022-08-28 04:41:45 -04:00
zeromus 60f7b875f8 winport - support loading ips files on top of already loaded roms. I guess this could be factored to an FCEUI_TestFileIsPatch and an FCEUI_ReloadWithPatch?? well, that's for whoever does this on other platforms to do. 2022-08-28 04:33:38 -04:00
zeromus 20d03d4434 minimum framework to support loading ips files on top of already loaded roms 2022-08-28 04:32:23 -04:00
zeromus 9d831d8b8b ok, I realized we need to realloc buffers allocated by FCEU_malloc (why didn't I guess that..) which makes the fact that they're aligned be horrible. so I added FCEU_amalloc and FCEU_afree instead to do aligned allocs and frees. 2022-08-28 04:31:34 -04:00
zeromus 1798fca76a proper deemph handling for win32 aviout. used 57ec344b1f from 7 years ago as a reference (when the png writing was fixed). fixes #429 2022-08-23 22:58:18 -04:00
zeromus d5a073741a ModernDeemphColorMap const args 2022-08-23 22:56:47 -04:00
zeromus ff633d5acd add new function FCEU_abort() for calling abort() with a message; use it when memory allocation fails instead of exit() 2022-08-23 22:01:29 -04:00
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
mjbudd77 97465f0266 Commented out debug print statements for Qt window closure. 2022-03-10 20:59:47 -05:00
mjbudd77 2ded6783f3 Bump version number to next patch level to differentiate from previous release. 2022-03-10 20:00:44 -05:00
mjbudd77 93a084caad Updated about text. 2022-03-10 19:55:33 -05:00
mjbudd77 f57ea9cf49 Commented out a couple unused variables for Qt GUI. 2022-03-09 20:51:14 -05:00
mjbudd77 795173b662 Added logic to force raise of Qt family keyboard dialog to top of window stack after key map dialog closes. Fixes irregular window focus issue on mac OS. 2022-03-09 19:42:30 -05:00
mjbudd77 c327dcd009 Updated web home and download pages for 2.6.3 release 2022-03-08 20:32:48 -05:00
mjbudd77 3bc0af149b Changed family keyboard key map dialog logic to prevent premature deletion of object during close. 2022-03-08 20:08:03 -05:00
mjbudd77 84cf82cb6a Added 2.6.3 web press release. 2022-03-07 06:58:10 -05:00
mjbudd77 b82cf16a16 Updated help docs with recent changes for the upcoming 2.6.3 release. 2022-03-07 06:21:50 -05:00
mjbudd77 c175086cbf Added logic to limit maximum font point size for Qt Family Keyboard Text. Prevents crash if user enters an excessive value. 2022-03-06 22:06:29 -05:00
mjbudd77 2b26c041d5 Added logic to allow resizing of Qt Family Keyboard Dialog to minimum size via GUI 2022-03-06 22:02:19 -05:00
mjbudd77 3acbdc1c5a
Merge pull request #473 from negativeExponent/m225_extra_ram
Mapper 225: Implement extra RAM
2022-03-06 21:49:01 -05:00
mjbudd77 3e7dc3474a Added enable/disable button for Qt family keyboard dialog. Added button mapping save, recall and reset to default functions for Qt FKB. 2022-03-06 21:47:36 -05:00
negative 7f4eb7e14f Mapper 225: Implement extra RAM
Some multicarts are buggy without extra ram implemented,

Fix https://github.com/TASEmulators/fceux/issues/467
2022-03-07 09:11:52 +08:00
mjbudd77 bef4e80e08 Merge branch 'master' of github.com:TASEmulators/fceux 2022-03-06 12:47:59 -05:00
mjbudd77 3510b5801c Added logic to save/load key bindings for family keyboard for Qt GUI. 2022-03-06 12:47:46 -05:00
negativeExponent 3bd6da8e83
FDS: Improve IRQ emulation (#469)
Fix https://github.com/TASEmulators/fceux/issues/468

Co-authored-by: negative <negativeExponent@users.noreply.github.com>
2022-03-06 19:39:17 +02:00
mjbudd77 aaa66388de Minor tweaks to key names and labels for Qt virtual family keyboard. 2022-03-06 07:41:25 -05:00
mjbudd77 a9a8898677 Added logic to display family keyboard key binding tree view for Qt GUI. 2022-03-06 07:17:24 -05:00
mjbudd77 0f25a40b93 Added logic to show shifted key characters on Qt virtual keyboard when shift is held down. 2022-03-06 05:46:20 -05:00
mjbudd77 540b62f487 Added logic to save/recall Qt family keyboard window location and size. 2022-03-06 04:59:13 -05:00
mjbudd77 6c42f9588c Qt virtual family keyboard is now functional. 2022-03-05 22:08:40 -05:00
mjbudd77 a6c6dd048c Successful test of virtual family keyboard. 2022-03-05 19:15:20 -05:00
mjbudd77 db10fcb6bc Virtual family keyboard in work. 2022-03-05 18:28:56 -05:00
mjbudd77 7d3f0690e6 Virtual family keyboard in work for Qt GUI. 2022-03-05 15:18:30 -05:00
mjbudd77 8ad5767a3b Updated help docs for upcoming 2.6.3 release. 2022-03-05 06:42:35 -05:00
mjbudd77 c46a786dba Updated TODO-SDL to state that old GTK GUI is retired. 2022-03-03 07:00:11 -05:00
mjbudd77 96f4c6a712 Added additional windows modifier key checks for windows Qt GUI. 2022-03-02 22:22:38 -05:00
mjbudd77 ddaa20f171 Bug fix for windows Qt GUI left/right modifier key determination. 2022-03-02 21:42:51 -05:00
mjbudd77 35028fc3e5 Merge branch 'master' of github.com:TASEmulators/fceux 2022-02-28 20:44:40 -05:00
mjbudd77 c97a36ae2b Bug fix for Qt GUI mac OSX command and control key mappings. 2022-02-28 20:44:12 -05:00
mjbudd77 c4d9a70fc3 Bug fix for Qt GUI mac OSX command and control key mappings. 2022-02-28 20:44:02 -05:00
mbudd02 658036b402 Bug fix for Qt GUI mac OSX command and control key mappings. 2022-02-28 20:36:09 -05:00
mbudd02 4d6d060757 Bug fix for Qt GUI mac OSX command and control key mappings. 2022-02-28 20:29:56 -05:00
mjbudd77 6d74be0b21 Added support for left/right modifier virtual key codes for mac OSX. 2022-02-28 06:38:04 -05:00
mjbudd77 c0dff9bbfe Qt Keyscan update for left/right meta keys. MacOSX menu accelerator fix. 2022-02-27 20:41:25 -05:00
mjbudd77 5e6fd870fe Added code to differentiate left vs right modifier keys on windows and linux. Cannot do this yet on mac OSX. 2022-02-27 12:38:57 -05:00
mjbudd77 187ee9646c Bug fix for Qt GUI family keyboard shift key issue. Family BASIC appears to not like when both shift keys are down at the same time. For issue #464 2022-02-24 07:06:14 -05:00
mjbudd77 98f3e57ac2 Bug fix for odd SDL scancode returns in Qt GUI. For issue #464. 2022-02-23 05:37:23 -05:00
mjbudd77 d767153531 Bug fix for family keyboard mapping of caret character. Fix for family keyboard potential data tearing on key state. For issue #464 2022-02-23 04:55:43 -05:00
mjbudd77 04e39e4fc9 Added logic to Qt key scanner to fix key scancodes for characters that are only accessible via the use of the shift key (dual function keys). Should help issue #464. 2022-02-21 21:17:01 -05:00
Alexey 'Cluster' Avdyukhin 8e6d99a1ac Meta keys combinations fix (win32) 2022-02-13 22:32:05 +03:00
mbudd02 a00ce315b8 Version bump to differentiate interim git from latest release. Bump MacOSX pipeline SDL2 versionto 2.0.20 2022-02-13 08:04:22 -05:00
negativeExponent c96a802904
Update 8237.cpp (#457)
Fix incorrect address mask for UNL8237A write registers. The game Lion Kings writes to 0x5010/0x5080.
2022-02-13 14:08:23 +02:00
mjbudd77 442f4e8934
Merge pull request #461 from negativeExponent/bus_conflict
Only enable bus conflict for submapper 2 (mapper 2, mapper 3)
2022-02-11 07:06:18 -05:00
negative f7dd4430fb Only enable bus conflict for submapper 2 (mapper 2, mapper 3)
Fix https://github.com/TASEmulators/fceux/issues/460

https://wiki.nesdev.org/w/index.php?title=NES_2.0_submappers#002.2C_003.2C_007:_UxROM.2C_CNROM.2C_AxROM
2022-02-11 19:16:19 +08:00
Alexey 'Cluster' Avdyukhin 0e04da81b3 Fix for release config 2022-02-09 22:04:24 +03:00
Alexey 'Cluster' Avdyukhin 132e062d77 Debugger address validation, fix for #444 2022-02-09 20:06:22 +03:00
mjbudd77 a75c27d517 Removed a couple unused variables from Qt Tas Editor. 2022-02-09 05:44:05 -05:00
mjbudd77 20f852eb26 Set minimum width on misc ROM entry field in iNES header editor for Qt GUI. 2022-02-09 05:23:34 -05:00
mjbudd77 6d942379d6 Bug fix for mapper 16 submapper 4, allow writes to address range 6000 - 600D. For issue #458. 2022-02-08 19:01:32 -05:00
mjbudd77 2dde684af4 Merge branch 'master' of github.com:TASEmulators/fceux 2022-02-07 18:15:19 -05:00
mjbudd77 c3b8a4b92f Updated compiler strings for Qt/SDL GUI. Added more detail for msvc and added clang check. 2022-02-07 18:14:55 -05:00
Alexey 'Cluster' Avdyukhin 50ed1b6cfb Fixed windows debugger bug introduced by commit 129fbe3c32 2022-02-07 07:24:18 +03:00
mjbudd77 fdb9e62192 Updated download links for 2.6.2 release. 2022-02-03 22:10:51 -05:00
mjbudd77 4a482d6133 Update to 2.6.2 press release. 2022-02-03 21:09:32 -05:00
mjbudd77 c685033a13 Updated docs and web pages for upcoming 2.6.2 release. 2022-02-03 20:16:06 -05:00
mjbudd77 7e3191d801 Default disable PPU sprite limit config option to false (Max sprites = 8) for Qt GUI. 2022-02-01 20:36:03 -05:00
mjbudd77 6d35018b9a Zero MMC5 WRAM size on close. 2022-01-31 21:35:08 -05:00
mjbudd77 2d4fa02bbd Minor change to MMC5 mapper to only call memory init on WRAM if it exists. 2022-01-31 21:29:46 -05:00
mjbudd77 93f3260a98 Bug fix for VROM size needing to be a power of 2. Fixes issue #455 2022-01-31 21:23:02 -05:00
mjbudd77 73f8b70fdc Added preliminary release notes for version 2.6.2 2022-01-30 07:12:50 -05:00
mjbudd77 dc3408205e Fixed deprecated QKeySequence::key()[] int operator usage for Qt6 2022-01-29 20:07:31 -05:00
mjbudd77 e4908b5a2e A few Qt6 deprecation fixes for use of QMouseEvent::globalPos. 2022-01-29 19:14:41 -05:00
mjbudd77 3062cadb84 Build fixes for Qt6 use. Specifically Qt version 6.2.2 2022-01-29 19:00:32 -05:00
mjbudd77 3bcb9888dd Change Qt Hex editor cursor blink logic to be a function of refresh rate so that blink rate is consistent. Also, added a 50hz update rate option. 2022-01-29 16:04:33 -05:00
mjbudd77 44f81dedc3 Bug fix for Qt Hex editor row/column highlighting in ROM view. 2022-01-29 15:36:13 -05:00
mjbudd77 1f20021946 Bump patch level to differentiate interim dev builds from last release. 2022-01-29 14:21:19 -05:00
mjbudd77 f87602f703 Merge remote-tracking branch 'mjbudd77/master' 2022-01-29 12:58:35 -05:00
mjbudd77 95d2ca7982 Added auto hide main menu on fullscreen functionality to Qt GUI. Issue #454. 2022-01-29 12:55:41 -05:00
Alexey 'Cluster' Avdyukhin c8a0f4ca78 Added WRAM support for OneBus mapper (mapper 256) 2022-01-25 21:44:49 +03:00
mjbudd77 e42a966afc Added GPL header to splashscreen.cpp file. 2022-01-22 21:10:36 -05:00
mjbudd77 3e577b014e Added logic to Qt Hex Editor to wrap cursor to next line after entering data at the end of a line. Fixes issue #451. Also, added memory read/write protections to ensure that ROM patches cannot go beyond the valid ROM memory block. 2022-01-22 13:05:07 -05:00
mjbudd77 91e530aa99 Fix for Qt hex editor viewport getting out of sync with vertical scroll bar. Force line offset to come directly from scroll bar value during paint event. Issue #450 2022-01-21 23:10:17 -05:00
mjbudd77 41df815cf6 Added a constructor to GUIMESSAGE struct to ensure memory is initialized in a consistant way. 2022-01-21 18:41:09 -05:00
mjbudd77 c4010846e1 For Qt/SDL, added logic to make GUI message video overlays optional via video config dialog. Issue #448. 2022-01-21 18:23:49 -05:00
mjbudd77 ed4bb30ffe Bug fix for SDL sound on FreeBSD OS (Issue #449). Force audio spec sample set size to be a power of 2 per SDL documentation. 2022-01-21 16:57:56 -05:00
mjbudd77 333d2364c1 Updated webpage download links for 2.6.1 release. 2022-01-17 15:19:39 -05:00
mjbudd77 7173d283c3 Updated readme files for 2.6.1 release. 2022-01-17 13:50:37 -05:00
mjbudd77 71a6da0bba Updated help docs with 2.6.1 change log. 2022-01-17 13:47:58 -05:00
mjbudd77 1369313ec2 Added 2.6.1 press release for webpage. 2022-01-17 13:35:10 -05:00
mjbudd77 b1f62d694c Reduced fade out rate of splashscreen. 2022-01-16 11:27:32 -05:00
mjbudd77 cb5bb3446d Made custom Qt GUI splashscreen that fades out when initialization is finished. Showing splash screen at startup is now a configuration parameter and defaults to off. Can be turned on in GUI config dialog. 2022-01-16 11:12:13 -05:00
mjbudd77 47098b2b8c Bump patch version number for upcoming maintainence release. 2022-01-16 10:02:00 -05:00
mjbudd77 2a1c529231 For Qt GUI. Added logic to show busy cursor when closing out an AVI recording. Fix for overloading GUI cursor, always call QGuiApplication::restoreOverrideCursor() to reset cursor to default. 2022-01-16 07:08:37 -05:00
mjbudd77 7ecff090f2 Updated Qt windows pipeline to build and link against SDL 2.0.20 and ffmpeg 5.0 2022-01-16 06:57:02 -05:00
mjbudd77 1acdb31490 Changed Qt RAM search logic to skip over RAM mirrors. Changed GUI to allow for searching of RAM, SRAM, and ROM regions to be individually selectable. Issue #446. 2022-01-15 23:47:42 -05:00
mjbudd77 1f1ca26d83 Cleaned up a few compiler warnings. 2022-01-15 22:11:17 -05:00
mjbudd77 2da182aed5 Updated minimum cmake version to 3.8 2022-01-15 21:14:39 -05:00
mjbudd77 f6e184952b Applied cmake SOURCE_DATE_EPOCH patch for reproducible builds. 2022-01-15 21:12:02 -05:00
mjbudd77 bb4b88d00e Fixed inverted vertical scroll on Qt Trace logger. Added page up/down key shortcuts for Trace logger viewport. 2022-01-15 20:06:10 -05:00
mjbudd77 77c946734a Added optional compile time option to build in a splash screen during Qt application startup. 2022-01-15 18:17:34 -05:00
mjbudd77 7cc15b41c3 Uploaded new QtSDL debug tools image for website. 2022-01-15 17:13:39 -05:00
mjbudd77 494c7ca5b5 Bug fix for Qt GUI crash upon a 2nd CDL window open. 2022-01-15 14:31:46 -05:00
mjbudd77 ea9874c587 Fixed home page changelog link for 2.6.0. 2022-01-12 21:39:07 -05:00
mjbudd77 b509eb7656 Updated website home page for new 2.6.0 release. 2022-01-12 21:37:01 -05:00
mbudd02 08e88f17c1 Updated download links on website to point to 2.6.0 release. 2022-01-12 21:28:11 -05:00
mjbudd77 1ca8b8e9d0 Hot fix for reversed scroll direction when dragging input above or below Qt piano roll view. 2022-01-12 19:46:37 -05:00
mjbudd77 c075043727 Updated help change log for upcoming 2.6.0 release. 2022-01-11 23:05:06 -05:00
mjbudd77 f8787bafa5 Added version 2.6.0 press release for website. 2022-01-11 22:35:16 -05:00
mjbudd77 2776b30550 Minor README updates in preparation for upcoming 2.6.0 release. 2022-01-11 21:54:52 -05:00
mjbudd77 25a239b39f Added TAS project loading progress dialog for Qt GUI. Added busy mouse cursor during TAS project save/load. 2022-01-11 06:57:30 -05:00
feos d4e04fc0d3 fix qt build script to work locally
/d is needed in case you have things on different drives
vs2019 is selected in case you have vs2022
2022-01-11 14:15:49 +03:00
mjbudd77 26386b8483 Added logic to animate Qt branch view cloud in the Y axis. 2022-01-10 21:42:23 -05:00
mjbudd77 91a4f05314 Logic change to scale cloud Y position with height of grid. 2022-01-10 21:34:47 -05:00
mjbudd77 de7300c06d Qt branch view vertical grid scaling fixes. 2022-01-10 20:58:38 -05:00
mjbudd77 e976ffac5b Changed playback pauseFrame variable and accessor functions to be static in PLAYBACK class so that they are thread safe for Qt GUI. 2022-01-10 19:49:04 -05:00
mjbudd77 a673ee4a26 Added logic to protect against TAS seek overruns in Qt/SDL emulation thread. 2022-01-10 07:16:52 -05:00
mjbudd77 d380fc7f50 Ensure that Qt TAS piano roll recalculates line width for horizontal scroll bar when reset is called. This fixes incorrect horizontal scroll bar behavior when loading new projects that have a different controller count. 2022-01-10 06:31:20 -05:00
mjbudd77 c890f6c1bb Another fix to ensure that Qt TAS piano roll frame number width is at least 9 chars wide. 2022-01-09 16:31:31 -05:00
mjbudd77 020e1e208a Minor vertical text placement changes for Qt bookmarks view. 2022-01-09 16:23:58 -05:00
mjbudd77 686f9d27bb Ensure piano roll font is always forced to bold before calculating font pixel sizes. 2022-01-09 15:59:21 -05:00
mjbudd77 01e16837ef Minor syntax cleanup. 2022-01-09 15:48:36 -05:00
mjbudd77 a77cb754bf More minor vertical adjustments to Qt piano roll text placement. 2022-01-09 15:39:35 -05:00
mjbudd77 0d84862d93 More text placement adjustments to Qt TAS piano roll. 2022-01-09 15:36:59 -05:00
mjbudd77 93ee0efe3b Minor vertical adjustments to Qt piano roll text placement. 2022-01-09 14:56:03 -05:00
mjbudd77 80a7afd7f5 Account for font bearing in centering of text number in Qt branch cards. 2022-01-09 14:42:42 -05:00
mjbudd77 1e5a1eddd0 Slight adjustments to text placement in Qt branch view cards. 2022-01-09 14:22:35 -05:00
mjbudd77 2b88e96814 Added playback progress bar to Qt TAS editor. 2022-01-08 15:05:52 -05:00
mjbudd77 72af0270a3 Added a progress dialog for saving Qt TAS projects to disk. 2022-01-08 14:40:12 -05:00
mjbudd77 a28bbb3ce3 Fixed Qt advanced hotkey gamepad bindings also be able to handle escape characters. 2022-01-08 06:56:03 -05:00
mjbudd77 97e509b8ef Added code to escape keyboard gamepad bindings if the key name interferes with the config file syntax. Fixes save/load of comma key gamepad bindings. For issue #443 2022-01-08 06:37:55 -05:00
mjbudd77 94eab8f8ef Replaced all calls to clock() in Qt TAS editor. Clock was giving inconsistent time stamps since it actually returns CPU use time, not actual time. Instead use SDL_GetTicks() to get actual time in milliseconds. 2022-01-08 05:31:15 -05:00
mjbudd77 ed29139b87 Draw fix for italic text not being turned off when it should in drawing of Qt TAS piano roll. 2022-01-08 04:41:22 -05:00
mjbudd77 3db26d3fb0 Logic fix for Qt TAS piano roll ensure line is visible. 2022-01-08 04:30:15 -05:00
mjbudd77 f135fd2888 Added Qt TAS turbo seek functionality. 2022-01-08 04:17:16 -05:00
mjbudd77 2dfa98ac9f Coming back full circle on Qt TAS branch view text placement. Original implementation works best across all platforms. 2022-01-07 09:07:06 -05:00
mjbudd77 9cafd99e16 More Qt TAS branch view text placement adjustments. 2022-01-07 07:15:32 -05:00
mjbudd77 cf31b874ed Adjusted Qt TAS branch view text placement to better center text into card. 2022-01-07 06:11:46 -05:00
mjbudd77 71c5ebc133 Changed Qt TAS piano roll grid draw logic to always make header grid lines darker. 2022-01-07 06:00:11 -05:00
mjbudd77 c6293af030 Qt TAS project save compact bug fixes. 2022-01-06 06:48:44 -05:00
mjbudd77 d1fa388846 Bug fix for cut & paste errors in Qt TAS saving options dialogs. 2022-01-06 05:44:27 -05:00
mjbudd77 0badec6124 Added a custom window splitter for Qt Tas editor to better control sizing of right panel. 2022-01-05 20:17:17 -05:00
mjbudd77 ede8c5fc7e Commented out unused block of code in Qt branches view paint. 2022-01-04 21:19:21 -05:00
mjbudd77 66971b7e6b Calcation fix for is line visible in Qt TAS piano roll. 2022-01-04 21:11:49 -05:00
mjbudd77 975632856f Added Save As TAS project file overwrite warning dialog for Qt GUI. 2022-01-04 20:55:03 -05:00
mjbudd77 734ec96269 Added logic to ensure playback cursor is visible when follow cursor option toggles from false to true. 2022-01-03 21:48:04 -05:00
mjbudd77 b04ddd3fbb Uninverted Qt TAS piano roll vertical scroll appearance. Code was getting unnecessarily complicated with that implementation. 2022-01-03 21:43:36 -05:00
mjbudd77 ec663196c1 Increased fade in/out rate for Qt bookmark preview popup window. Change instantly if already up. 2022-01-03 20:51:53 -05:00
mjbudd77 b4734ac45f Disabled Qt/SDL mutex lock debug code. 2021-12-31 07:01:57 -05:00
mjbudd77 31a859b6df Upgraded Qt/SDL win64 auto-build to use SDL 2.0.18. 2021-12-31 06:40:27 -05:00
mjbudd77 4291c104d7 Bump dev version number to 2.6.0. The Qt TAS editor is far enough along that it is time to differentiate from previous 2.5.0 version. 2021-12-31 06:25:48 -05:00
mjbudd77 c198739c30 Implemented missing warning dialogs in Qt TAS project loader. 2021-12-31 05:59:51 -05:00
mjbudd77 31e6578877 Set minimum branch view height to be smaller so that scroll bar is less likely to be required and in view. 2021-12-31 05:27:36 -05:00
mjbudd77 bb6f149e4d Minor updates to Qt branches view. 2021-12-31 05:22:04 -05:00
mjbudd77 90a7dd9a0d Qt branch view grid spacing logic updates. 2021-12-31 05:03:30 -05:00
mjbudd77 5fc47dce6a Added logic to force orderly close of Qt TAS editor any time a ROM is closed or the application is quit. 2021-12-30 21:38:23 -05:00
mjbudd77 8ee625c473 Added project reset call after SaveAs function completes to ensure that project shows no changes before removing * from window caption. 2021-12-30 21:17:24 -05:00
mjbudd77 dbcc485e24 Cleaned up a few annoying compiler warnings. 2021-12-30 20:36:45 -05:00
mjbudd77 309f417c6d Custom vertical scroll wheel event modifications for robustness. 2021-12-30 20:16:25 -05:00
mjbudd77 71977ef15d Set Qt TAS piano roll grid width back to 1 pixel. Value is now stored in a variable which can be later be a configuration parameter if desired. 2021-12-30 19:52:00 -05:00
mjbudd77 952c3918b9 Implemented a custom vertical scroll bar widget for the Qt TAS piano roll to allow for overriding of default mouse wheel scroll behavior. 2021-12-30 18:51:15 -05:00
mjbudd77 f3897c69d3 Changed text draw functions in Qt TAS piano roll to use a defined rectangle and center justification. Instead of manually computing center, let QPainter determine center. 2021-12-30 12:53:33 -05:00
mjbudd77 4d3716c741 Minor changes to Qt TAS piano roll grid and selection grid coloring logic. 2021-12-30 12:29:15 -05:00
mjbudd77 0ad291df75 Added logic to reuse existing preview popup window when switching quickly between bookmarks (for Qt GUI). 2021-12-30 10:47:36 -05:00
mjbudd77 04b8d8a789 Bug fix for stack overflow error that can occur when calling QCoreApplication::processEvents() and not guarding against recursion on calling parent function. 2021-12-29 22:23:00 -05:00
mjbudd77 199a3d8d72 Efficiency fix for Qt TAS history view. Only redraw if it is visible in tabbed widget. 2021-12-29 21:48:53 -05:00
mjbudd77 52792378c0 Qt TAS branch view background fill bug fix. Only draw in the visible area. 2021-12-29 21:34:12 -05:00
mjbudd77 a891b080c5 Added message guard to not spam terminal with mutex warnings when GUI thread is blocking emulation thread from executing. 2021-12-29 21:11:02 -05:00
mjbudd77 9fd2bf559c Simplified CLOCKS_PER_SEC calculations for Qt GUI. 2021-12-29 21:02:00 -05:00
mjbudd77 be81d1870c Swapped out time int types for proper clock_t type. 2021-12-29 20:33:13 -05:00
mjbudd77 96c1f588e4 Bug fix for bookmark preview popup window placement. Now is always placed left of scrollable area viewport. 2021-12-29 19:52:54 -05:00
mjbudd77 d55d2c3f8a Fixed branch view bookmark text placement inside scrollable region. 2021-12-29 19:42:25 -05:00
mjbudd77 d3a167ee04 Added separate linux core dump debug target to vscode config. 2021-12-29 16:32:34 -05:00
mjbudd77 ec6cfb1e40 Commented out debug abort call. 2021-12-29 16:11:39 -05:00
mjbudd77 68693ca29d Added FCEU_WRAPPER_LOCK macros to allow for tracking of critical section mutex locking. 2021-12-29 15:56:47 -05:00
mjbudd77 425e3104de Slight speed increase to fade in/out effect for TAS bookmark preview popup for Qt GUI. 2021-12-28 22:11:30 -05:00
mjbudd77 57ed6d8ecc Reimplemented Qt bookmark preview popup window to allow for alpha fade effect. 2021-12-28 21:52:10 -05:00
mjbudd77 fd1f33f27e Added lower marker note focus on quick double click for Qt TAS editor. 2021-12-27 23:23:33 -05:00
mjbudd77 df7bedd349 Implemented different marker drag and drop scheme to support fade away effect and fix windows instability using QDrag. 2021-12-27 23:09:36 -05:00
mjbudd77 f1bf200d5d Default TAS piano roll grid color to mid-level gray. 2021-12-27 21:04:27 -05:00
mjbudd77 e4c8dee040 Ensure that cloud position is initialized properly in Qt TAS branch view. 2021-12-27 21:01:57 -05:00
mjbudd77 7f97f2fd4b Implemented piano roll drag vertical scroll line shifting logic for Qt GUI. 2021-12-27 20:11:48 -05:00
mjbudd77 58b093e549 Added call to close all windows on application close. 2021-12-25 20:39:41 -05:00
mjbudd77 4006bb500f Added screen snapshot capture message to Qt GUI. 2021-12-24 07:06:08 -05:00
mjbudd77 79d989a798 Added newline character to end of region log message. 2021-12-24 06:55:26 -05:00
mjbudd77 b05e210982 Minor order of execution changes to Qt GUI application quit to prevent crash on MacOS. 2021-12-23 23:27:46 -05:00
mjbudd77 d757f972bf Added windows vscode debug target. 2021-12-23 21:16:31 -05:00
mjbudd77 571caf3234 cppcheck and valgrind code hardening for Qt Tas editor. 2021-12-23 21:02:16 -05:00
mjbudd77 ceaa04b0f4 Minor draw fix for branches text. 2021-12-23 14:32:29 -05:00
mjbudd77 0c1c338ce7 Changed Qt piano roll single wheel detent to move by 6 lines. 2021-12-23 14:14:55 -05:00
mjbudd77 f4181e799b Added logic to allow for customization of Qt TAS piano roll grid coloring. 2021-12-23 14:04:25 -05:00
mjbudd77 bdd0bda016 Force Qt TAS bookmarks/branches font to bold. 2021-12-23 13:44:42 -05:00
mjbudd77 86e7f7a889 Added TAS config parameter load/save logic for Qt GUI. 2021-12-23 13:29:48 -05:00
mjbudd77 4c7b8bf64c Minor marker drag code changes for robustness. 2021-12-23 12:57:13 -05:00
mjbudd77 b4735a1aea Added missing follow playback cursor if needed function in Qt TAS GUI. 2021-12-22 23:54:14 -05:00
mjbudd77 a442354ef6 Added a short delay to TAS marker drag n drop setup in the event that the mouse button is quickly released. 2021-12-22 23:41:07 -05:00
mjbudd77 1e0b2f37ce Added piano roll marker drag n drop logic for Qt GUI. 2021-12-22 23:29:16 -05:00
mjbudd77 c51b545fbf Added middle button double click logic for Qt TAS piano roll. 2021-12-22 21:35:27 -05:00
mjbudd77 c0495bd62b Added Qt TAS piano roll double click handling logic. 2021-12-22 21:30:53 -05:00
mjbudd77 772901cfa7 Bug fix for Qt TAS editor allowing cross columns during drag with alt held. 2021-12-22 20:47:13 -05:00
mjbudd77 f3fd0a8016 Bug fix for inverted vertical scroll bar on Qt TAS piano roll view. 2021-12-22 20:31:34 -05:00
mjbudd77 a4d25deaf5 Changed Qt TAS playback buttons to trigger on press instead of release. 2021-12-20 21:59:41 -05:00
mjbudd77 d0bdab8c63 Added press and hold logic to Qt TAS editor playback push buttons. 2021-12-20 21:55:45 -05:00
mjbudd77 f1eb0a94fe Reduced number of characters in Qt piano roll frame cell. 2021-12-20 21:33:52 -05:00
mjbudd77 6d81529b4c Bug fix for close event on Qt TAS editor. Ignore event if save project dialog returns false. 2021-12-20 21:14:51 -05:00
mjbudd77 e79de93c18 Directional fix for Qt TAS piano roll vertical scroll bar page step 2021-12-20 20:57:13 -05:00
mjbudd77 ef8e076bba Added logic to Qt TAS editor to allow for delayed history widget updates to be scheduled so that update can occur in GUI thread 2021-12-20 20:42:47 -05:00
mjbudd77 1fa028b6e6 Increase Qt video transfer buffer size to further reduce possibility of buffer overrun when transfering frames from emulation to GUI threads. Added input device update code to emulation frame finished callback to ensure that input devices are always updated before screen is redrawn. 2021-12-17 06:30:29 -05:00
mjbudd77 c35b18751d Added a triple buffer for video frame data to ensure clean transfer of that data between emulation and Qt GUI threads. 2021-12-13 21:16:53 -05:00
mjbudd77 74a48e92d6 Added a vertical sync test pattern to Qt GUI. 2021-12-13 20:48:30 -05:00
mjbudd77 c72eac9970 Fixed mouse wheel scroll direction on Qt trace logger and TAS piano roll. 2021-12-12 15:42:37 -05:00
mjbudd77 c596593fd0 Added hot changes coloring to Qt piano roll. 2021-12-12 14:52:29 -05:00
mjbudd77 0ad04f819e Draw fixes for Qt Tas piano roll arrows and bookmark labels. 2021-12-12 14:13:54 -05:00
mjbudd77 a3b3cf563b Changed marked frames to be unbold and italic in Qt TAS editor. 2021-12-12 13:57:47 -05:00
mjbudd77 6f3b25646d Put branches viewport into a scrollable area. 2021-12-12 13:40:23 -05:00
mjbudd77 8ab19f64f6 Changed piano roll marked frames to show in italic. Set all other text to bold. For Qt GUI. 2021-12-12 13:14:09 -05:00
mjbudd77 465f7d725d Moved TAS history view to tabbed widget with branches/bookmarks for Qt GUI. 2021-12-12 13:05:26 -05:00
mjbudd77 53d721b560 Added TAS editor project save compact dialog to Qt GUI. 2021-12-12 11:58:13 -05:00
mjbudd77 4187b8a9b1 Added logic to Qt TAS piano roll to toggle inputs on selected lines when buttons are clicked in the header. 2021-12-12 11:10:56 -05:00
mjbudd77 79d2005495 Fix for Qt TAS piano roll left click and drag functionality. Force column selection to always be what it was at initial button press. Ensure that all row frames are not skipped between mouse events. 2021-12-12 07:59:59 -05:00
mjbudd77 dd9b911b60 Added video vertical sync refresh option to Qt GUI. 2021-12-12 06:35:42 -05:00
mjbudd77 9e1564df0d Ensure to lock emulator with accessing bookmark preview popup. 2021-12-11 21:18:25 -05:00
mjbudd77 9633f081ca Changed bookmark image view implementation so that it doesn't use tooltip events. 2021-12-11 20:54:19 -05:00
mjbudd77 e0c3f2445f Checked marker labels to appear as push buttons in Qt TAS editor. 2021-12-11 16:00:20 -05:00
mjbudd77 b1a4ebda48 Added branch load on double click to Qt TAS editor branch view. 2021-12-11 13:25:22 -05:00
mjbudd77 fd208cb8f8 Bug fixes for Qt TAS editor playback cursor following. 2021-12-11 10:02:22 -05:00
mjbudd77 cd1d8f643e Added users local desktop folder to file dialog quick access navigation. 2021-12-08 21:53:04 -05:00
mjbudd77 5a34a78a24 Modified Qt TAS branches view to compensate for different font sizes. 2021-12-08 21:43:39 -05:00
mjbudd77 77ced676f0 Added TAS editor font selection options for piano roll, bookmarks, and branches view for Qt GUI. 2021-12-08 20:31:09 -05:00
mjbudd77 f6b52262da Bug fix for Qt TAS editor, don't call updateCaption from within emulation thread. Instead, set a flag to notify GUI thread to update caption. 2021-12-07 06:40:22 -05:00
mjbudd77 53463bc370 Merge remote-tracking branch 'TasVideos/master' 2021-12-06 20:54:52 -05:00
mjbudd77 0271552ceb Added logic to reset TAS window hot keys if a key sequence is changed on the hotkey config dialog. 2021-12-06 20:54:16 -05:00
mjbudd77 f351150ad9 Added hot key shortcuts for Qt TAS editor window. 2021-12-06 20:48:36 -05:00
zeromus 1c26e754ef Update issue templates 2021-12-05 21:35:46 -05:00
mjbudd77 8cfab72523 Added save/restore geometry logic for Qt TAS find note dialog. 2021-12-05 20:30:43 -05:00
mjbudd77 2072269edc Added contect menu to Qt TAS piano roll. 2021-12-05 20:22:17 -05:00
mjbudd77 d124808c1b Added TAS window caption logic for Qt GUI. 2021-12-04 07:52:12 -05:00
mjbudd77 eb335f227d Added branch under mouse frame number and time text to branch display for Qt GUI. 2021-12-04 07:24:41 -05:00
mjbudd77 989f6d38d4 Added recent projects menu to Qt TAS editor menu. 2021-12-03 08:16:46 -05:00
mjbudd77 556ac79038 Added Qt TAS editor about dialog. 2021-12-03 07:09:27 -05:00
mjbudd77 d63517dc75 Qt TAS editor minor improvements. 2021-12-03 06:28:19 -05:00
mjbudd77 f18604926a Qt build fix for missing function StrStrI. Changed code to use cross platform QString::indexOf instead. 2021-12-03 06:15:40 -05:00
mjbudd77 c2f1c5193b Hooked up jump to marker selection logic for Qt GUI. 2021-12-02 23:30:03 -05:00
mjbudd77 802019e879 Added mouse button logic to marker entry fields for Qt GUI. 2021-12-02 22:51:59 -05:00
mjbudd77 01d87a6576 Merge remote-tracking branch 'TasVideos/master' 2021-12-02 22:37:37 -05:00
mjbudd77 b9e53bbe95
Merge pull request #427 from sgadrat/qt-input-load
fix loading of keyboard mapping for controllers > 1
2021-12-02 20:31:32 -06:00
mjbudd77 080ab42f80 Fixed Qt TAS editor notes. 2021-12-02 16:08:50 -05:00
mjbudd77 4133ea900c Added find note window to Qt TAS editor. 2021-12-01 19:30:09 -05:00
Sylvain Gadrat 71724460f5 fix loading of keyboard mapping for controllers > 1 2021-12-01 17:07:51 +01:00
mjbudd77 93e1dca8bc Added a few missing mouse wheel functions to Qt piano roll. 2021-11-28 21:44:16 -05:00
mjbudd77 b8c2ea09cf Added mouse wheel event logic to Qt TAS piano roll. 2021-11-28 20:45:54 -05:00
mjbudd77 9360f7e1a8 Tas editor dialog menu action sensitivity fix for Qt GUI. 2021-11-28 20:29:53 -05:00
mjbudd77 27fb529830 Implemented playback mouse middle button functionality for Qt Tas editor. 2021-11-28 20:12:18 -05:00
mjbudd77 a7244cf343 Implemented piano roll save/load state functionality for Qt GUI. Fixed periodic autosave for Qt Tas editor. 2021-11-28 18:56:22 -05:00
mjbudd77 148d6a4af5 Bug fix for inverted piano roll vertical slider buttons on Qt GUI. 2021-11-27 11:09:08 -05:00
mjbudd77 82f76e3434 cppcheck fixes for Qt TAS editor. 2021-11-27 10:26:52 -05:00
mjbudd77 da993c51a2 Added piano roll header light logic for Qt GUI. 2021-11-26 20:38:21 -05:00
mjbudd77 94007b6313 Qt piano roll touch ups. 2021-11-26 15:55:46 -05:00
mjbudd77 8b1e42cf33 Added branches tool tips and frame preview. 2021-11-26 10:58:50 -05:00
mjbudd77 82bd4b55a7 Bug fix for Qt GUI crashing when trying to display a snapshot of an empty bookmark slot. 2021-11-26 08:39:53 -05:00
mjbudd77 b116c219ec Added more tool tips to Qt TAS editor. 2021-11-26 08:21:48 -05:00
mjbudd77 cd9ec79570 Qt TAS editor tool tips in work. 2021-11-26 06:53:14 -05:00
mjbudd77 062bd05ce2 Fixed input type button sensitivity logic in Qt TAS editor. 2021-11-26 06:36:19 -05:00
mjbudd77 4b3ae8fead Hooked up Lua menu actions in Qt Tas Editor. 2021-11-26 06:16:38 -05:00
mjbudd77 fa748b0a41 Resolved a few FIXME comments in Qt TAS editor. 2021-11-26 05:56:30 -05:00
mjbudd77 c7bfb684ae Added TAS input pattern selection Qt GUI code. Fixed a few clock timing calculations in Qt TAS editor. 2021-11-26 05:45:16 -05:00
mjbudd77 22b28195c6 Added TAS project save options dialog to Qt GUI. 2021-11-25 21:13:56 -05:00
mjbudd77 67fb525e5c Bug fix for vector overrun in Qt TAS editor piano roll. 2021-11-24 13:13:22 -05:00
mjbudd77 abf980fd75 Implemented TAS bookmark preview popup for Qt GUI. 2021-11-24 06:50:15 -05:00
mjbudd77 349e977bdd
Merge pull request #424 from bbbradsmith/mapper71_fix
Mapper 71 fixes for #389
2021-11-24 03:51:01 -05:00
bbbradsmith 73e0aacb8c Mapper 71 fix hardwired mirroring restore after power/savestate, fix uninitialized preg. See issue #389 2021-11-24 01:08:38 -05:00
mjbudd77 d319b5574f Added input dialogs for setting greenzone and max undo capacities in Qt TAS editor. 2021-11-23 21:00:41 -05:00
mjbudd77 9c8efa165e Bug fix for Qt TAS editor when in input record mode. History tree display cannot have GUI changes done in emulation thread. 2021-11-23 20:27:06 -05:00
mjbudd77 3b3404af55 Merge branch 'master' of github.com:TASEmulators/fceux 2021-11-21 20:25:09 -05:00
mjbudd77 6897f5b3c9 Added functionality for movie import/export in Qt TAS editor. Added online help quick access for TAS documentation in Qt GUI. 2021-11-21 20:24:37 -05:00
zeromus 7d2e479701 fix an old tasvideos link 2021-11-21 14:29:45 -05:00
mjbudd77 5ea57a6b49 Set Qt TAS piano roll font to bold for marker frame text. 2021-11-19 22:44:57 -05:00
mjbudd77 570aab926f Added create new project window for Qt TAS editor. 2021-11-19 18:32:23 -05:00
mjbudd77 62b377b97c Namespaced custom swap templated function to prevent it from conflicted with Qt. 2021-11-18 21:55:31 -05:00
mjbudd77 7dfa1f8ae4 Added TAS marker label click logic to Qt GUI. 2021-11-18 21:28:47 -05:00
mjbudd77 f4f1ca750a Added marker edit logic to Qt GUI TAS editor. 2021-11-18 21:07:24 -05:00
mjbudd77 1f534656ad Added branch spritesheet to Qt GUI. 2021-11-16 21:43:23 -05:00
mjbudd77 f84694afa2 Hooked up mouse callbacks for Qt Tas editor branches viewer. 2021-11-16 21:42:56 -05:00
mjbudd77 28f4e87121 Modified Qt GUI Lua loadRom functionality to signal the main thread to perform the ROM load. Doing so in the emulation thread can cause crashes. 2021-11-16 00:10:34 -05:00
mjbudd77 84bf5a5fc4 Added missing cloud icon for Qt TAS editor. 2021-11-15 21:49:16 -05:00
mjbudd77 61aa68f910 Fixed Qt TAS editor clock scaling. Use CLOCKS_PER_SEC macro as it seems to vary based on OS. 2021-11-15 21:47:15 -05:00
mjbudd77 03230aed07 Qt branches view in work. 2021-11-15 21:17:15 -05:00
mjbudd77 13f8180c96 Qt Tas editor branch view in work. 2021-11-15 20:38:14 -05:00
mjbudd77 27e0f16e08 Qt TAS branches viewport in work. 2021-11-14 21:33:32 -05:00
mjbudd77 06ea1bf29a Qt TAS editor bookmark list paint code implemented. 2021-11-14 20:34:55 -05:00
mjbudd77 96f6a28cc6 Qt TAS editor bookmarks widget in work. 2021-11-14 17:58:14 -05:00
mjbudd77 40f301c665 Moved Lua groupbox on Qt TAS editor to menu to save window space. 2021-11-13 06:48:18 -05:00
mjbudd77 326a190bd3 Merge remote-tracking branch 'TasVideos/master' into TasEditor 2021-11-11 22:29:25 -05:00
mjbudd77 b59ad1bf3b Qt TAS Editor bookmarks/branches view in work. 2021-11-11 22:22:41 -05:00
mjbudd77 9cea7f1551 Added a null check for GameInfo to FCEUMOV_CreateCleanMovie function to prevent crash if ROM is not loaded. 2021-11-10 22:11:49 -05:00
mjbudd77 ff44284dfc Hooked up Qt TAS editor config callback functions. 2021-11-10 22:06:32 -05:00
mjbudd77 c0d0d559be TAS History treeview bug fixes for Qt GUI 2021-11-10 21:25:04 -05:00
mjbudd77 d2193d3e83 Qt TAS editor key logic in work. 2021-11-10 21:07:18 -05:00
mjbudd77 8b4caef750 Added code to populate history tree view in Qt TAS Editor. 2021-11-09 23:24:31 -05:00
mjbudd77 a20b7c0749 Added TAS editor menu items to Qt GUI. 2021-11-09 22:05:12 -05:00
mjbudd77 1251b8df93 Hooked up Qt TAS edit menu functions. 2021-11-08 20:40:11 -05:00
mjbudd77 b2244b3a0b Qt TAS row selection in work. 2021-11-06 09:47:03 -04:00
mjbudd77 4acf8ab61b Qt TAS selection and splicer operation in work. 2021-11-05 20:21:43 -04:00
mjbudd77 39f90e04e7 Fixed TAS splicer functions so that they build uncommented. 2021-11-05 15:08:42 -04:00
mjbudd77 be417b7d3b Re-added line for win32 build. 2021-11-04 07:01:33 -04:00
mjbudd77 51ea52f94b Added code to init Qt TAS patterns. 2021-11-02 22:06:00 -04:00
mjbudd77 7dce4b650b Qt TAS editor mouse tracking in work. 2021-11-02 21:52:59 -04:00
mjbudd77 ffe8aacdc1 Hooked up TAS playback button functionality for Qt GUI. 2021-11-01 23:48:51 -04:00
mjbudd77 09d2204d9c Qt TAS piano roll draw functions in work. 2021-11-01 22:58:54 -04:00
mjbudd77 9284ee8545 Qt TAS editor recorder gui inputs hooked up. 2021-10-31 22:21:56 -04:00
mjbudd77 ce7e3b591a Qt TAS Editor input control in work. 2021-10-31 21:55:06 -04:00
mjbudd77 a39a2c6d03 Qt piano roll widget in work. 2021-10-31 14:44:16 -04:00
mjbudd77 da39715509 Qt TasEditor port in work. 2021-10-29 23:00:19 -04:00
mjbudd77 068d85aede Updated website downloads page text description of win32 and Qt/SDL ports. 2021-10-29 20:45:20 -04:00
mjbudd77 c0bf822cfb TAS editor project load/save mechanisms inwork for Qt GUI. 2021-10-28 21:59:14 -04:00
mjbudd77 306923afd9 Merge branch 'master' into TasEditor 2021-10-28 20:18:27 -04:00
mjbudd77 03341dd834 Further fixing av_init_packet deprecation. In the future AVPacket will not be able to be allocated on the stack. Instead using av_packet_alloc/av_packet_free. 2021-10-27 07:02:44 -04:00
mjbudd77 672e6cb0a6 Merge remote-tracking branch 'mjbudd77/master' 2021-10-26 20:46:34 -04:00
mjbudd77 b6ece28e76 Preparing for the removal of av_init_packet. It is depricated in the latest release of ffmpeg. 2021-10-26 20:45:45 -04:00
mjbudd77 1e5fa3d6f7
Merge pull request #417 from h3xx/fix-man-install-path
Use GNUInstallDirs for man page install paths
2021-10-25 21:00:14 -04:00
Dan Church 860a182233
Use GNUInstallDirs for man page install paths 2021-10-25 16:05:59 -05:00
mjbudd77 dbc200166c Removed a few references to _itoa. It is not cross platform. 2021-10-24 18:00:38 -04:00
mjbudd77 801bd77639 Ported over TAS modules to Qt. They compile but need to be integrated. 2021-10-24 17:58:45 -04:00
mjbudd77 f00613007b Porting Tas Editor modules from win32. In work. 2021-10-23 06:59:29 -04:00
mjbudd77 4cea83fd1b Changed command line lua script fullpath resolution logic to use cross platform QFileInfo instead of unix realpath. 2021-10-23 05:55:17 -04:00
mjbudd77 019c30b229 Porting over win32 TAS modules. In work. 2021-10-23 05:06:08 -04:00
mjbudd77 a61a92f1e0 Merge branch 'master' into TasEditor 2021-10-22 20:39:02 -04:00
mjbudd77 d656e309a6 Updated binary download links on website downloads page. 2021-10-22 20:20:13 -04:00
mjbudd77 6c3a31a4f2 Fixed build pass/fail reference in readme.md. 2021-10-21 21:14:00 -04:00
mjbudd77 c6c4053acf Updated website home page for new release. Updated release date on notes. 2021-10-21 20:32:14 -04:00
mjbudd77 0b4ab1a0b9 Updated README and SDL html docs 2021-10-21 19:50:38 -04:00
mjbudd77 607ca6fe29 Modified Qt GUI to make Qt Help module an optional dependency. 2021-10-21 19:24:10 -04:00
mjbudd77 7d6ea59c5a Added SDL gamepad button mapping bug fix to 2.5.0 release notes. 2021-10-21 08:20:11 -04:00
mjbudd77 150856e20a Updated SDL README and TODO files. Added upcoming release to version.html. 2021-10-20 20:59:56 -04:00
mjbudd77 02246f4324 Initial add of 2.5.0 release notes into built in help. 2021-10-20 20:19:39 -04:00
mjbudd77 66c301d109 Changed version number to 2.5.0 in anticipation of new release. Typed up some initial release notes for the website. 2021-10-19 21:21:22 -04:00
mjbudd77 f523b49f9b Qt Tas editor module setup in work. 2021-10-18 20:59:14 -04:00
mjbudd77 a77f69a931 More Qt TAS editor control panel development. 2021-10-18 20:18:07 -04:00
zeromus afd65c12f3 Merge branch 'master' of https://github.com/TASEmulators/fceux 2021-10-16 14:09:03 -04:00
zeromus e8b8bff3ec update some urls 2021-10-16 14:08:47 -04:00
zeromus a67d970be8 Create CNAME 2021-10-16 14:07:20 -04:00
zeromus 5e345b7ed3 Delete CNAME 2021-10-16 14:07:15 -04:00
mjbudd77 1cdb85eadd Qt TAS editor window layout in work. 2021-10-16 06:34:11 -04:00
mjbudd77 1db99e21d8 Added initial placeholder widget for Qt TAS piano roll. 2021-10-16 05:22:48 -04:00
mjbudd77 b7ad6cab38 Initial add of empty Tas Editor window for Qt GUI. 2021-10-16 04:43:16 -04:00
mjbudd77 9c4b03c327 Modified Qt main viewport logic so that side panel coloring so that changes via the color picker dialog are seen immediately. Previous behavior is it would only show change upon accepting new color in dialog. Choosing cancel in dialog will return color to original state. 2021-10-09 21:03:55 -04:00
mjbudd77 80b36379e7 Mouse screen coordinates calculation fix for NTSC 2X video scaler. Fixes issue #409 for the Qt GUI. 2021-10-09 18:31:20 -04:00
mjbudd77 5c4d3be30b Movie action text in main movie menu modified to match AVI/WAV convention for Qt GUI. 2021-10-08 21:56:56 -04:00
mjbudd77 fcfddba64b Modified show FPS algorithm to show average frames over the course of one second and only updates text display at that time. 2021-10-08 21:53:16 -04:00
mjbudd77 b69043bbf0 Commented out mac OSX make install in pipeline script since it is already invoked by cpaack. No need to run twice. 2021-10-08 19:56:56 -04:00
mjbudd77 a0ab302b3c MacOSX pipeline bundling library fix. 2021-10-08 19:55:11 -04:00
mjbudd77 cd4d22cc6a Minor audio sink tuning to better play sound when running emulation speeds > 100%. Added logic to prevent the audio sink from emtpying when emulation is paused. This provides a seemless transition when transitioning in/out of pause. 2021-10-06 22:01:52 -04:00
mjbudd77 80ca06224b Fix for macOSX homebrew ffmpeg bundling error. 2021-10-06 18:29:58 -04:00
mjbudd77 59b8c825b5 Added ffmpeg dependency information for Qt/SDL GUI to web pages. 2021-10-05 22:12:26 -04:00
mjbudd77 d695207a71 Bug fix for menu bar for AVI RIFF viewer on mac OS. 2021-10-05 21:49:41 -04:00
mjbudd77 b3f182d91d Added ffmpeg library version to list of open source dependencies on the Qt About Fceux window. 2021-10-05 20:19:06 -04:00
mjbudd77 527fa3901b Added operating system info to AVI metadata encoding. 2021-10-05 07:04:17 -04:00
mjbudd77 e0f9754e80 For Qt GUI, implemented a new method of timing frame advance hold delay so that the delay time is more constant with changing emulation speed. 2021-10-05 06:49:16 -04:00
mjbudd77 4352fd8da0 Added avi metadata encoding code for libgwavi driver (old Qt GUI avi backend). 2021-10-04 22:38:15 -04:00
mjbudd77 6f0f4177f2 Added avi metadata encoding to libav for Qt GUI. 2021-10-04 22:18:09 -04:00
mjbudd77 899dd03ac9 Added code to AVI RIFF viewer to calculate/display video frame rate. 2021-10-04 19:54:01 -04:00
mjbudd77 65565cd1dd Added meta data decoding to AVI RIFF viewer. 2021-10-03 15:46:39 -04:00
mjbudd77 edebc11048 AVI file load efficiency fix. Read entire chunks at a time to increase disk read performance. 2021-10-03 11:19:21 -04:00
mjbudd77 674e3dc8f3 Added a AVI file load progress dialog to give feedback when loading large files. 2021-10-03 10:55:55 -04:00
mjbudd77 a290718962 Modified AVI RIFF viewer code to allow for multiple instances of the window. 2021-10-03 10:16:30 -04:00
mjbudd77 c799d3f11e Removed unused symbol. 2021-10-03 09:43:56 -04:00
mjbudd77 8ccc46d5ec Cleanup of Qt AVI RIFF Viewer. 2021-10-03 09:35:50 -04:00
mjbudd77 becec5c8a7 Added code to decode AVI headers in AVI RIFF viewer. 2021-10-03 09:24:06 -04:00
mjbudd77 6856921c38 AVI RIFF viewer tool in work. 2021-10-03 04:58:15 -04:00
mjbudd77 41e04ece0b Added first cut at AVI RIFF Viewer tool window. 2021-10-02 11:33:35 -04:00
mjbudd77 9853ff37b0 Ensure that show lag count, show frame count, and movie bind state options get saved when toggled with a hot key. 2021-10-01 20:19:14 -04:00
mjbudd77 b23db9f8fc Added debug print statements for AVI video FPS. 2021-10-01 20:02:06 -04:00
mjbudd77 e3a9160797 Added more AVI audio buffer protections. 2021-10-01 17:10:13 -04:00
mjbudd77 df56e32027 Added suggested file names to AVI/WAV Record As file dialogs. 2021-10-01 16:39:13 -04:00
mjbudd77 7717e699cd Buffer AVI audio samples for more efficient packing into file chunks. 2021-10-01 16:28:33 -04:00
mjbudd77 52194fdf3d Bug fix for AVI audio when video compressor gives null frames. 2021-10-01 07:00:10 -04:00
mjbudd77 b06b7a98c6 Modified name of audio sink starve counter reset button to make it more intuitive. 2021-09-30 23:10:42 -04:00
mjbudd77 ec076a772a Added Movie word back into associated main menu movie items. 2021-09-30 23:07:37 -04:00
mjbudd77 35cbbbacf9
Merge pull request #405 from tekktonic/master
Fix on OpenBSD
2021-09-30 19:01:52 -04:00
Daniel Wilkins df154af823 Fix on OpenBSD 2021-09-30 17:34:04 -04:00
mjbudd77 35a4a612fa Added optional ffmpeg dependency info to README. 2021-09-30 07:12:20 -04:00
mjbudd77 2615f9e1e0 Slight efficiency update for showFPS. Only need to pull time stamp from realtime clock once per frame. 2021-09-29 20:23:28 -04:00
mjbudd77 6dc5e678c9 Disabled libgwavi video/audio encoder options button for now. 2021-09-29 20:16:44 -04:00
mjbudd77 3f4a7f55d5 Added missing settings from Qt movie options window to saved config. 2021-09-28 22:39:40 -04:00
mjbudd77 fa84da706f Initialize default sound volume to full for Qt GUI. 2021-09-28 22:05:25 -04:00
mjbudd77 8fe52cb400 Added option to Qt GUI to allow for setting of the color of the video background side panel color (side panels on either side of video image in fullscreen or large windowed modes). 2021-09-28 21:52:43 -04:00
mjbudd77 2b9b2386d3 Bug fix for audio stream header still being written to AVI file even though audio capture has been disabled (for Qt GUI using old libgwavi). 2021-09-27 20:55:11 -04:00
mjbudd77 672dcac6b2 Bug fix for frame advance delay when using emulation speeds other than normal. Scale delay count by ratio of the actual frame rate over the nominal base rate. 2021-09-27 20:14:23 -04:00
mjbudd77 cc316f688b Added logic to save/recall last output directory for AVI/WAV files. 2021-09-25 20:57:36 -04:00
mjbudd77 dcd248c152 Removed AVI/WAV submenus from Qt GUI. AVI/WAV record/stop menu items are now all part of movie menu. 2021-09-25 20:17:24 -04:00
mjbudd77 2dd9756bc5 Bug fix for audio crackle when turning frames per second video indication on/off. 2021-09-25 19:11:35 -04:00
mjbudd77 a3ddca2f4a Sort encoder options alphabetically. 2021-09-25 18:08:36 -04:00
mjbudd77 2212dbacab Sort libav video/audio encoders alphabetically. 2021-09-25 15:40:23 -04:00
mjbudd77 8f0f6f23e1 Fix for frame count not initializing correctly on video options page. 2021-09-25 15:23:01 -04:00
mjbudd77 5fd9b12a15 Added tool tips to libav options window. 2021-09-25 13:32:43 -04:00
mjbudd77 92a0b84110 Added ffmpeg optional dependency install to mac OSX appveyor pipeline. 2021-09-24 19:47:13 -04:00
mjbudd77 374e8e7578 Added ffmpeg dependency install to linux appveyor pipeline. 2021-09-24 19:42:56 -04:00
mjbudd77 12183443bd Another build fix for missing libav. 2021-09-24 19:19:11 -04:00
mjbudd77 c0e923fd7d Build fix for case where libav is not installed on linux. 2021-09-24 18:50:03 -04:00
mjbudd77 5d79033a21 Bug fix for X264 and X265 libs not being installed. 2021-09-24 18:23:39 -04:00
mjbudd77 3fc74aedbe Moved all avi config parameters/options to motion options window for Qt GUI. 2021-09-24 16:31:19 -04:00
mjbudd77 819357129f Added logic to save AVI audio recording option. Added to logic to not add an audio stream into AVI (libav driver) when this is active. 2021-09-23 17:19:09 -04:00
mjbudd77 84737be59f Added combo entry boxes for libav audio sample format, rate, and channel layout selection. 2021-09-23 13:27:48 -04:00
mjbudd77 14eb41cfd3 Added libav av flags option type handling config logic. 2021-09-23 09:10:20 -04:00
mjbudd77 4a574c9c1c Modified avi codec config parameter save functionality to only save differences from defaults values. 2021-09-22 23:43:55 -04:00
mjbudd77 c5a9238774 Qt AVI debug print cleanup. Moved avi codec config files to /avi. 2021-09-22 22:40:15 -04:00
mjbudd77 f774d320de Added boolean option type config code for libav. 2021-09-22 22:31:32 -04:00
mjbudd77 1f1551a716 Added save/load codec config parameters functionality. 2021-09-22 22:18:09 -04:00
mjbudd77 135325f9ae Added libav audio encoder config window. 2021-09-21 22:54:32 -04:00
mjbudd77 d20a7bb452 libav option changing window in work. 2021-09-21 22:34:53 -04:00
mjbudd77 a844963c8a Added libav video pixel format selection via combo box. 2021-09-20 20:42:27 -04:00
mjbudd77 591b21f4af Added a log file to detail avi recording issues. Memory allocation cleanup fixes for libav. 2021-09-20 19:39:09 -04:00
mjbudd77 74e3b81536 Bug fix for crash video format conversion in the case that desired video pixel format is already in bgra so no conversion is necessary. Fixes crash for ffv1 encoder. 2021-09-18 07:17:26 -04:00
mjbudd77 0076f048f8 Merge remote-tracking branch 'TasVideos/master' 2021-09-17 22:36:30 -04:00
mjbudd77 9758a8bb09 Bug fix for unhooked combo box callback to avi backend. 2021-09-17 22:35:41 -04:00
mjbudd77 fd2560a283 Merge remote-tracking branch 'mjbudd77/master' 2021-09-17 22:27:25 -04:00
mjbudd77 435c332902 Bug fix for auto-detection of default encoders for libav. 2021-09-17 22:26:22 -04:00
mjbudd77 4501292f7b Bug fix for finding encoder. Search by string name instead of integer ID since the name is the only unique parameter. 2021-09-17 21:43:45 -04:00
mjbudd77 dffab9e57f Sync libav video/audio encoder selections to config. 2021-09-17 20:43:11 -04:00
mjbudd77 1dd9036da6 Bug fix for libav MPEG4 video frame rate encoding. 2021-09-16 23:40:29 -04:00
mjbudd77 b514c143b6 libav movie options in work. 2021-09-16 23:15:32 -04:00
mjbudd77 3262e182e8 Setup qt win64 pipeline to auto download libav from external site and link into program. Make linking libav optional in cmake for qt win64 build. 2021-09-16 21:20:59 -04:00
mjbudd77 4f01ed546b
Merge pull request #400 from minucce/mmc5-fix
Fix MMC5 battery loading
2021-09-16 19:49:35 -04:00
mjbudd77 954e7d847c Windows build fix for compiling against newer libav. 2021-09-15 01:54:51 -04:00
mjbudd77 8e2af98295 Build fix for various versions of libav. 2021-09-14 21:36:50 -04:00
mjbudd77 18768ef4b3 Bug fix for libav audio encoding. 2021-09-14 21:31:40 -04:00
mjbudd77 2007d03eef Build fixes for linking libav in windows. 2021-09-14 00:56:59 -04:00
mjbudd77 233d555ffe Unsuccessful attempts at changing RGB->YUV coefficients to get proper color output. Turns out a gamma correction is needed that is more involved than I thought. 2021-09-13 23:04:14 -04:00
mjbudd77 a83826c187 Raw video BGR24 testing changes. 2021-09-09 22:14:09 -04:00
minucce cec337a431
Fix MMC5 battery loading 2021-09-09 03:19:08 +00:00
mjbudd77 679813e2d2 libav option debugging in work. 2021-09-08 23:14:17 -04:00
mjbudd77 425a2eedaa Added a print available libav encoders debug function. 2021-09-07 22:22:53 -04:00
mjbudd77 d8d7b59f34 Removed deprecated libavresample functions in favor of libswresample. 2021-09-07 22:02:43 -04:00
mjbudd77 e4cd3b0d1a Added libav audio encoding logic. 2021-09-07 20:59:59 -04:00
Alexey 'Cluster' Avdyukhin 80032f8f84 NES 2.0 exponent-multiplier notation support 2021-09-07 20:39:13 +03:00
mjbudd77 f3ce245746 First successful recording of video using libav. 2021-09-07 01:41:40 -04:00
mjbudd77 80df18351a libav recording in work. 2021-09-07 00:10:30 -04:00
mjbudd77 54fcaf4baf Libav integration in work. 2021-09-06 15:48:42 -04:00
mjbudd77 f711dbd23d Added logic to add AVI 2.0 STD index chunks to stream at 2GB intervals. 2021-09-02 21:37:05 -04:00
mjbudd77 2ddfc43bc2 Implemented first cut at avi 2.0 indexing for Qt GUI. 2021-09-02 21:13:54 -04:00
mjbudd77 4e1a335f81 Changed file I/O markers to be 64 bit for Qt AVI. 2021-09-01 20:57:06 -04:00
mjbudd77 51ef32413b Created wrapper functions for fseek and ftell for Qt avi 64 bit file I/O. 2021-09-01 20:53:34 -04:00
mjbudd77 fe87e1387f Minor cleanup of x265 encoding code. 2021-08-31 21:40:14 -04:00
mjbudd77 59724ffafd Added libx265 encoder library dependency (optional) to linux and macosx pipelines. 2021-08-31 21:15:51 -04:00
mjbudd77 520e146b80 Added X265 video encoder feature to AVI Qt GUI. 2021-08-31 21:13:42 -04:00
mjbudd77 bf3a02fe9b Implemented sound use global focus in a different way so that it will mute physical audio without also muting avi/wav recording audio. 2021-08-31 17:18:46 -04:00
mjbudd77 934437dddc Added AVI debug as an optional compile time setting to Qt GUI. 2021-08-31 20:47:48 -04:00
mjbudd77 1c6a08e868 Force audio stream frames to always be keyframes. 2021-08-31 16:31:23 -04:00
mjbudd77 83633b11f3 Added proper avi keyframe logic for libx264 on Qt GUI. 2021-08-31 16:12:57 -04:00
mjbudd77 77c3fa8ab4 Moved Vfw compressor choose window popup to be after file overwrite warning popup for Qt GUI. 2021-08-31 15:25:48 -04:00
mjbudd77 8d3a27e1a5 Added functionality to properly encode keyframes into AVI file for Qt GUI. 2021-08-31 13:10:16 -04:00
mjbudd77 15c4a729b9 Added a config parameter to save VfW compressor choice for Qt GUI. 2021-08-30 18:21:45 -04:00
mjbudd77 21cc75eb45 Fix for Qt Avi offset index memory reserve calculation. 2021-08-29 22:11:20 -04:00
mjbudd77 f879757d27 Commented out Qt AVI debug function in main menu until the window is finished. 2021-08-29 22:05:37 -04:00
mjbudd77 f10d50fe6b Replaced realloc calls with a std::vector for efficiency. 2021-08-29 22:01:28 -04:00
mjbudd77 f47665609b Added debug code for decoding index block. 2021-08-29 21:35:32 -04:00
mjbudd77 a47fd82334 Bug fix for Qt AVI encoding of idx1 chunk sizes. 2021-08-29 16:06:50 -04:00
mjbudd77 04aa7afb1f Bug fix for incorrect audio and video chunk size. Data pad should not be included in the ckSize field. 2021-08-29 15:36:02 -04:00
mjbudd77 4e1b5873b9 Bug fixes for Qt AVI debug decoder. 2021-08-29 15:08:00 -04:00
mjbudd77 a0ada0748b Added debug print of main avi header. 2021-08-25 22:27:09 -04:00
mjbudd77 95db43d3f9 Added an AVI decode debug function to Qt GUI. 2021-08-25 22:04:39 -04:00
mjbudd77 5db7abf118 Fixed rounding error in avi frame rate calculation. Fixed avi fps calculation to account for the case where the user has integer frame rate selected. 2021-08-21 10:35:29 -04:00
mjbudd77 c719058991 Added a protection in Qt/SDL sound to prevent audio buffer overflow during turbo mode. 2021-08-20 22:10:09 -04:00
mjbudd77 c3b44910a0 Updated controller input display label text to be more intuitive. 2021-08-20 21:54:16 -04:00
mjbudd77 062c4c527d Force VfW FOURCC characters to upper case. 2021-08-20 21:06:16 -04:00
mjbudd77 ba5be09a28 Fix for Qt AVI encoding of dwRate and dwScale in the stream header. 2021-08-20 16:27:30 -04:00
mjbudd77 d13ef4cdbe Fix to ensure that Qt hex editor gets updated at each breakpoint. 2021-08-19 23:06:54 -04:00
mjbudd77 9d2acd6931 Added memory write undo functionality for debugger step back. 2021-08-19 21:32:14 -04:00
mjbudd77 07f73c2fb9 First cut at implementing instruction step back function using trace logger data. 2021-08-19 18:46:02 -04:00
mjbudd77 09117e5286 Added debugger step back button. Functionality still TODO. 2021-08-19 18:15:27 -04:00
mjbudd77 525deb2a8f Path fix for MacOS pipeline for qhelpgenerator. 2021-08-17 22:59:52 -04:00
mjbudd77 42f743158d Added TAS editor pages to table of contents. 2021-08-17 22:33:56 -04:00
mjbudd77 0d4b604689 Added missing unix make docs script. Added table of contents to qhp file. 2021-08-17 22:16:57 -04:00
mjbudd77 8b0f4a0fc0 Added unix docs build to pipeline. Added navigation buttons to help window. 2021-08-17 21:23:39 -04:00
mjbudd77 db6c1b8291 Added qttools5-dev package install for QtHelp dependencies to linux build. 2021-08-16 22:01:12 -04:00
mjbudd77 6762a1bb7c Added fceux help page viewer using QHelpEngine. 2021-08-16 21:44:03 -04:00
mjbudd77 fa52003d37 Fixed Qt video debug log output. Cleaned up some unused video functions. 2021-08-16 19:00:30 -04:00
mjbudd77 2e53904467 Added code to allow for an external chm viewer to be used for unix OS. 2021-08-16 06:29:57 -04:00
mjbudd77 f8b6d19a94 Build fixes for Qt windows chm help file loader. 2021-08-15 21:09:12 -04:00
mjbudd77 90d8dbd411 Added offline help pages for windows Qt GUI. 2021-08-15 20:42:51 -04:00
mjbudd77 1e13f3f7c3 Added overclocking parameters to saved config settings for Qt GUI. 2021-08-15 20:21:16 -04:00
mjbudd77 0e64829682 Added a Run PPU half frame icon (that doesn't look like a stop icon) for debugger run 128 lines. 2021-08-14 21:18:09 -04:00
mjbudd77 490637e937 Changed step over debugger icon. 2021-08-14 20:41:11 -04:00
mjbudd77 a20735de96 Changed Step into and out debugger icons to look more standard. 2021-08-14 20:05:27 -04:00
mjbudd77 e6d0822dad Added save/recall window geometry for various windows in Qt GUI. 2021-08-14 17:21:19 -04:00
mjbudd77 911e903ecb Created a custom read only QCheckBox whose state cannot be changed via mouse button clicks. The widget is for boolean state display purposes only. 2021-08-14 16:54:48 -04:00
mjbudd77 d8a1425715 Change trace logger Log Last text to be a label instead of a checkbox. Logging will always go to screen even if also going to a file. The same buffer is used for both. 2021-08-14 12:59:00 -04:00
mjbudd77 03a40f22ac Save state of cheat window checkbox options for Qt GUI. 2021-08-14 07:46:05 -04:00
mjbudd77 8b59b85be8 Making sure that all Tools windows have their geometry saved and recalled for Qt GUI. 2021-08-14 06:36:46 -04:00
mjbudd77 20d69ffa9f Set hot key row coloring to alternate. 2021-08-12 21:09:05 -04:00
mjbudd77 9e70db952e Changed Qt hotkey window to sort the hot keys into logical groups. 2021-08-12 21:05:43 -04:00
mjbudd77 136ae9a336 Added AVI overwrite warning dialog to Qt GUI. 2021-08-11 21:26:02 -04:00
mjbudd77 a571677cdb Changed Qt GUI AVI recording video pickoff point so that HUD/messages can be optional in the recorded image. 2021-08-11 21:11:00 -04:00
mjbudd77 88da722533 Added a few missing config parameters to Qt trace logger. Namely, save to file (flag and path) and automatic window update. 2021-08-10 21:49:44 -04:00
mjbudd77 8e798cbbb9 Save main window position so that it can be restored at same location and size. 2021-08-10 20:50:49 -04:00
mjbudd77 e406583256 Set Standard 4:3 to be default aspect ratio if force aspect is selected. Renamed default 1:1 to be Square Pixels 1:1. 2021-08-10 20:22:50 -04:00
mjbudd77 1d15fc49c3 Added window resize presets to Qt main menu. 2021-08-10 20:12:19 -04:00
mjbudd77 443752b7b8 Fix for input display label. 2021-08-09 22:25:11 -04:00
mjbudd77 87a99e50dc Sync state of video overlay Qt widgets in a periodic update to ensure that hot key functions do not get window out of sync with state. 2021-08-09 22:19:19 -04:00
mjbudd77 49534e8f4b Modified Qt video settings window to group video overlays together. Added frame, lag, and re-record count overlays checkbox options to window. Added input display overlay combo box. 2021-08-09 22:06:45 -04:00
mjbudd77 8d4e535d0a Changed ROM patch logic on Qt GUI so that a byte block can be undone as one undo. 2021-08-08 20:49:09 -04:00
mjbudd77 f834069180 Changed SDL audio locks to not be called as often. Gives slight performance increase. 2021-08-08 14:28:10 -04:00
mjbudd77 52b5ee51f4 Another minor change to the Qt sound scaling algorithm to better scale at frame rates faster than realtime. 2021-08-08 14:02:06 -04:00
mjbudd77 07455a7201 Fixed subtitle text in Qt movie options window. 2021-08-07 19:52:41 -04:00
mjbudd77 d53a746f18 Minor tweaks to new Qt sound setup. 2021-08-07 12:49:55 -04:00
mjbudd77 896af76167 Changed Qt sound underflow/overflow so that it better scales with changing running faster or slower than realtime. 2021-08-07 10:24:37 -04:00
mjbudd77 301fb99a8a Added audio sink starve counter label to sound config window. This in conjunction with the audio buffer usage bar, can help determine if the sound system is buffering properly. 2021-08-06 23:00:41 -04:00
mjbudd77 ebec5422bf Qt sound fix for integer frame rates. Now computes the proper expected number of samples per frame. 2021-08-06 22:27:59 -04:00
mjbudd77 728a7c3580 Added sound use global focus option to Qt GUI. 2021-08-06 00:14:37 -04:00
mjbudd77 f925e82d85 Added backend logic to mute sound when GUI focus is lost. Still TODO add window controls. 2021-08-05 23:43:44 -04:00
mjbudd77 455df4caae Added movie record input dialog to Qt GUI. 2021-08-05 22:35:29 -04:00
mjbudd77 f3af816eda Minor menu fixes for Qt GUI. 2021-08-05 19:37:28 -04:00
Alexey 'Cluster' Avdyukhin 3fe7e4e02e (Qt) More input devices for NES 2.0 header editor 2021-08-05 20:10:16 +03:00
Alexey 'Cluster' Avdyukhin 06fab0fe57 (Qt) NES 2.0 header editor bugfix for input device 2021-08-05 20:09:06 +03:00
Alexey 'Cluster' Avdyukhin 2d5552c800 More input devices for NES 2.0 header editor 2021-08-05 20:07:38 +03:00
Alexey 'Cluster' Avdyukhin c9643cd0ab NES 2.0 header editor bugfix for input device 2021-08-05 20:03:55 +03:00
mjbudd77 61661ff233 Minor tweak to trace log clear to make screen refresh instantly. 2021-08-05 09:10:47 -04:00
mjbudd77 7767e8d162 Added trace logger clear log functionality to Qt GUI. 2021-08-05 08:09:58 -04:00
mjbudd77 236fb67b7d Added show trace data option to Qt disassembly display. 2021-08-05 06:16:01 -04:00
mjbudd77 0a70f46a9f Added a debug pause button to the Qt debugger tool bar. 2021-08-05 05:17:17 -04:00
mjbudd77 e0bc4ab67b Bug fix for emulation thread incorrectly accessing GUI widgets. All widget access must be done in GUI thread. 2021-08-03 23:44:50 -04:00
mjbudd77 50861ab903 Added symbol address and value to assembly look ahead popup window. 2021-08-03 23:26:09 -04:00
mjbudd77 63c4a18e46 Added logic to allow for ROM offsets to be selected in the assembly view window. 2021-08-03 22:11:37 -04:00
mjbudd77 d04d08d2e9 Default new breakpoints to be enabled in dialog. 2021-08-03 21:10:56 -04:00
mjbudd77 8d7f2032fc Added checks to Qt GUI to prevent user from mapping joystick buttons to the keyboard device. Added warning popups to indicate to user what is wrong. 2021-08-03 20:48:54 -04:00
mjbudd77 10f5988e62 Initialize button states to zero. 2021-08-02 21:58:06 -04:00
mjbudd77 eabde5f134 Added tool tips to gamepad config profile buttons. 2021-08-02 21:29:21 -04:00
mjbudd77 39480dcf91 Moved advanced key binding buttons to bottom of window. 2021-08-02 21:10:53 -04:00
mjbudd77 da084fb184 For Qt GUI, added option to have up to 3 alternate gamepad button bindings in addition to the primary mapping. 2021-08-02 21:02:02 -04:00
mjbudd77 f76df49bf8 Set enable opposite directionals default to false for Qt. 2021-08-02 07:59:36 -04:00
mjbudd77 2054efa3de Changed default style to fusion for windows platforms. 2021-08-02 00:15:43 -04:00
mjbudd77 d4051e2387 Default force aspect ratio to off for Qt GUI video. 2021-08-02 00:11:21 -04:00
mjbudd77 eecbba3fc3 Added button icons to cancel/ok buttons on breakpoint add/edit window. 2021-08-01 23:38:47 -04:00
mjbudd77 8c19cb5257 Added detected screen refresh rate display to Qt video config window. Minor memory fixes. 2021-08-01 21:05:08 -04:00
mjbudd77 a925270df4 Added PPUSTATUS register flags to PPU control/mask/status tool tip popup. 2021-08-01 20:25:39 -04:00
mjbudd77 77b2f1be33 Updated Qt PPU debugger display. 2021-08-01 20:16:42 -04:00
mjbudd77 f45ba2f8af Merge branch 'master' of github.com:TASVideos/fceux 2021-07-31 20:07:51 -04:00
mjbudd77 c978c1631a Added an integer frame rate option to Qt GUI better sync with video. 2021-07-31 20:07:18 -04:00
Alexey 'Cluster' Avdyukhin ea4505ae39 NES 2.0 loader for COOLBOY/MINDKIDS (mapper 268) 2021-07-30 18:28:04 +03:00
Alexey 'Cluster' Avdyukhin f8d1258a1c More fixes to the new input system in win32 2021-07-30 17:46:10 +03:00
mjbudd77 6b65d1264d Added code to warn user of unsaved advanced gamepad bindings when closing gamepad config. 2021-07-29 21:16:30 -04:00
mjbudd77 9ea53e210e Successful save/load of advanced gamepad button to hotkey function bindings for Qt GUI. 2021-07-29 20:59:30 -04:00
mjbudd77 7affd34b2c Successful save/load of advanced gamepad button to hotkey function bindings for Qt GUI. 2021-07-29 20:53:27 -04:00
mjbudd77 56f1794b57 Changed Qt advanced gamepad bindings to be stored separately for each individual gamepad port. 2021-07-28 22:01:06 -04:00
mjbudd77 c85cd6cb03 Save OAM viewer settings for Qt GUI. 2021-07-27 06:53:26 -04:00
mjbudd77 212dab2c58 Added remaining config parameters for Qt PPU Viewer. 2021-07-27 06:08:01 -04:00
mjbudd77 c8686e222e Save PPU viewer color preferences. 2021-07-27 05:56:28 -04:00
mjbudd77 a08a824ad7 Added config parameters to save settings for Qt name table viewer. 2021-07-26 20:41:13 -04:00
mjbudd77 11f2a0ce07 Added break on bad opcodes, unlogged code, and unlogged data to list of saved config parameters for Qt gui. 2021-07-26 06:54:47 -04:00
mjbudd77 ff991bb9c4 Changed menu accelerator key for break on cycles. 2021-07-25 14:24:20 -04:00
mjbudd77 e95c26ea42 Finished new break on cycle/instruction counter feature for Qt GUI. 2021-07-25 14:18:53 -04:00
mjbudd77 bcbd3218d2 Breakpoint on CPU cycles/instructions GUI setup dialog in work. 2021-07-24 15:03:13 -04:00
mjbudd77 08def74ceb Added code to save symbolic debug preferences in Qt debugger. 2021-07-24 09:48:03 -04:00
mjbudd77 cbb1aeae4a Added hot key assignment text to debugger tool bar buttons. 2021-07-23 23:06:21 -04:00
mjbudd77 f0b3754d45 Bug fix for jump address line function in debugger. Logic change to only show address look ahead for addresses seen in operand part of assembly line. 2021-07-23 22:40:10 -04:00
mjbudd77 558a76ccc2 Added an assembly look ahead at address popup feature. 2021-07-23 22:21:49 -04:00
mjbudd77 3751589939 Modified Qt debugger breakpoint checking logic to also look for ROM addressed breakpoints. 2021-07-23 18:56:59 -04:00
mjbudd77 129fbe3c32 Added a breakpoint on execution of specific ROM Address feature to debugger. 2021-07-19 21:31:29 -04:00
mjbudd77 4301b96b4a Bug fix for Qt PPU viewer CDL masking options. 2021-07-18 20:43:58 -04:00
mjbudd77 37f66eb7f4 Removed unused deprecated color picker object for hex editor. Cleaned up comments. Changed RAM view naming to CPU view as it is really a view of the CPU memory bus. 2021-07-18 20:21:18 -04:00
mjbudd77 67d64b0e63 Added code to save last position of Qt movie play window. 2021-07-18 20:08:21 -04:00
mjbudd77 829e8cb3f1 Added missing config paramaters for Qt Hex Editor. 2021-07-18 20:01:15 -04:00
mjbudd77 bf41302862 Added logic to ensure that text highlighting always has coloring preference over other coloring options (activitiy coloring, ROM coloring, etc). 2021-07-18 19:36:08 -04:00
mjbudd77 54aeeebb5d Used better color menu item object for hex editor color selection. 2021-07-18 18:48:40 -04:00
mjbudd77 6aa0c9fec1 Added main window context menu for Qt GUI. 2021-07-18 18:07:58 -04:00
mjbudd77 fcaadd7e84 Rearranged a few of the debugger menu items. 2021-07-18 17:27:45 -04:00
mjbudd77 db0ab29be2 Added missing override virtual function syntax sugar to debugger header. Moved Movie menu item to 2nd in list after File. 2021-07-18 17:09:04 -04:00
mjbudd77 34e4e03fe4 Set -DLUA_USE_LINUX compiler flag when internally building and static linking lua. This is required for lua plugin functionality on linux and macosx. 2021-07-18 15:41:29 -04:00
mjbudd77 2f5e23adfb Fixed hex editor scroll bars to use proper page step. 2021-07-17 21:37:25 -04:00
mjbudd77 67e19b6d13 Trace logger menu bars page size fixes. 2021-07-17 21:26:54 -04:00
mjbudd77 7eb3dcddb7 Bug fix for debugger assembly viewport scroll bars. Page size is now proper computed for both horizontal and vertical bars. Now hide horizontal bar if viewport is large enough to show full amount of longest line. 2021-07-17 20:04:09 -04:00
mjbudd77 e4f5384069 Debugger menu text cleanup. Removed redundant text. 2021-07-17 15:35:37 -04:00
mjbudd77 1b745599c7 Minor logic fixes for transitions between debugger layout presets. 2021-07-17 15:08:33 -04:00
mjbudd77 e49b40e6c3 Set default display option to be compact split view for debugger. 2021-07-17 15:01:22 -04:00
mjbudd77 31cbbebc8e Added layout presets to debugger. 2021-07-17 14:48:53 -04:00
mjbudd77 a3669b5b93 Added code to save display state of debugger window. 2021-07-17 11:49:50 -04:00
mjbudd77 c8e22140f3 Removed qgroupboxes in favor of qframes for new debugger tabbed widget approach. 2021-07-16 07:15:05 -04:00
mjbudd77 0cef9783ff Merge remote-tracking branch 'TasVideos/master' 2021-07-15 23:58:28 -04:00
mjbudd77 415d4a2c84 Code clean up from tabbed widget development. 2021-07-15 23:56:36 -04:00
mjbudd77 4a216de908 Added a tabbed widget approach to displaying data blocks on Qt GUI. 2021-07-15 23:50:34 -04:00
mjbudd77 baa0af5d7c Added a custom tool tip base class to handle common window management details. 2021-07-15 00:54:52 -04:00
mjbudd77 e31384ab60 Made a custom popup for the PPU control register status display. 2021-07-14 22:48:48 -04:00
Alexey 'Cluster' Avdyukhin f828826771 Button binding dialog fixes, XBox controller support fixed 2021-07-15 01:04:26 +03:00
Alexey 'Cluster' Avdyukhin e72a8bc577 Tabs! Damn it. 2021-07-14 22:49:34 +03:00
Alexey 'Cluster' Avdyukhin 16be0d6915 Added Downtown Special to savie[] because it's without battery flag in GoodNES V3.23b 2021-07-14 22:41:59 +03:00
mjbudd77 0a367374da Added a navigate backwards/forwards line history to Qt debugger assembly view. 2021-07-13 23:36:27 -04:00
mjbudd77 086163e062 Added go to assembly address on double click and context menu option. 2021-07-11 19:05:29 -04:00
mjbudd77 4ffcafd138 Minor fix for tool tip CPU address field. 2021-07-11 16:55:14 -04:00
mjbudd77 e307f5a282 Changed visibility text labels to visible for compactness. 2021-07-11 16:37:14 -04:00
mjbudd77 1fad7e599a Initialized state of menu items for display viewport controls for Qt GUI. 2021-07-11 16:34:56 -04:00
mjbudd77 d212e1aae1 Bug fix for assembly tool tip check going off end of string. 2021-07-11 13:26:59 -04:00
mjbudd77 b601d36641 More Qt debugger window layout options. 2021-07-11 13:03:25 -04:00
mjbudd77 15a3fddf41 Moved debugger bookmark area to far right of window. TODO will make data display area positioning configurable. 2021-07-11 08:01:21 -04:00
mjbudd77 467089cac1 Changed size policy for debugger bookmark and breakpoint tree views. Now can resize window better. 2021-07-11 07:45:37 -04:00
mjbudd77 6e5bbc1c7c Re-organized creation of Qt debugger window layout and widgets to make it more managable. 2021-07-11 07:05:37 -04:00
mjbudd77 1e6264dd05 Added logic to show/hide breakpoint list in Qt debugger. 2021-07-11 05:18:54 -04:00
mjbudd77 a85d668f2f Added a tool tip for getting operand address information to Qt debugger. 2021-07-10 22:13:38 -04:00
mjbudd77 036c9106ad Qt debugger line spacing adjustments. 2021-07-10 21:22:00 -04:00
mjbudd77 d3ba6c540f Added a function to draw a nicer colored arrow for the instruction pointer on the assembly view for the Qt debugger. 2021-07-10 19:42:52 -04:00
mjbudd77 bb8c591742 Renamed debugger assembly syntax coloring config parameters to be shorter and not be debugger specific. The trace logger may use these later. 2021-07-10 18:43:42 -04:00
mjbudd77 fdb58db949 Display fix for Color menu picker window title. Filter out & accelerator characters. 2021-07-10 18:41:03 -04:00
mjbudd77 fcf250e350 For Qt debugger. Added logic to make byte code display configurable. Saved color configs to file. 2021-07-10 16:49:18 -04:00
mjbudd77 8314f7bad1 Fix for gamepad button text postioning and sizing. 2021-07-10 14:18:03 -04:00
mjbudd77 21291430b4 Bug fix for stack overrun in lua-engine on mac OSX. 2021-07-10 14:17:42 -04:00
mjbudd77 5c992a8610 Initial add of color syntax logic in Qt debugger. 2021-07-09 21:36:26 -04:00
mjbudd77 ea7deb0fd0 Initial add of assembly color option logic for Qt debugger. 2021-07-09 21:08:39 -04:00
mjbudd77 151bee01dc Added font selection options to Qt debugger. For #352. 2021-07-09 15:16:32 -04:00
mjbudd77 37abb7305b Added sizing logic to Qt debugger stack view to resize to display needs. 2021-07-09 14:15:45 -04:00
mjbudd77 1efe2de1f7 Added logic to allow for quick toggling of breakpoints by just clicking left mouse button between the end of cdl end boundary and the beginning of the line address text. 2021-07-09 00:01:32 -04:00
mjbudd77 a712448d81 Added logic to determine what ASM line a breakpoint is on and draw a red circle graphic on that line. 2021-07-08 23:36:24 -04:00
mjbudd77 2030d18e40 Added logic to code data and trace logger windows so that if already open, the windows are raised and given input focus. 2021-07-08 22:18:20 -04:00
mjbudd77 17933eb86e Added logic to Qt PPU, sprite and nametable viewer windows so that if already open, the windows are raised and given input focus. 2021-07-08 22:06:56 -04:00
mjbudd77 27fc890977 Changed Qt debugger code so that only one debugger can be open at a time. 2021-07-08 22:00:32 -04:00
mjbudd77 c7627d9d26 Minor Qt debugger coloring changes. 2021-07-08 20:43:10 -04:00
mjbudd77 bcb620ccf9 Added debug symbol address decode tool top. 2021-07-08 19:43:25 -04:00
mjbudd77 b6ab045651 Updated short descriptions for opcode tool tips. 2021-07-08 18:00:35 -04:00
mjbudd77 15f799beff Added long descriptions to opcode tool tips. 2021-07-07 18:40:39 -04:00
mjbudd77 edb167ab2a Debugger opcode tool tips in work. 2021-07-07 08:03:02 -04:00
mjbudd77 692e137e6f Opcode tool tips in work for Qt debugger. 2021-07-06 22:56:33 -04:00
mjbudd77 47da5cbc17 Added tool tips for CPU status display on Qt debugger. 2021-07-06 19:58:12 -04:00
mjbudd77 a993487d13 Compatibility fix for Qt 5.9. Should fix issue #384. 2021-07-04 07:25:03 -04:00
mjbudd77 fb9c902373
Merge pull request #382 from qeeg/master
Fix SYA and SXA opcodes in the CPU. blargg_nes_cpu_test5 now works
2021-07-04 07:14:44 -04:00
qeeg f3bab87c38 Fix SYA and SXA opcodes in the CPU. blargg_nes_cpu_test5 now works 2021-07-03 10:30:45 -05:00
mjbudd77 7c70db115e Commented out unused break on exceed counter widgets that will later be removed. 2021-07-02 21:54:59 -04:00
mjbudd77 91298bb24f Moved CPU cycle and instruction counter displays to same area as CPU register status on debugger window. 2021-07-02 21:35:37 -04:00
mjbudd77 4170384b72 Added missing question box for debugger step out in already running. 2021-07-02 20:02:01 -04:00
mjbudd77 cae2d15e47 Add seek to PC and change PC menu functions to debugger. 2021-07-02 19:40:45 -04:00
mjbudd77 aa02836972 Added counter reset button to debugger tool bar. 2021-07-02 16:31:51 -04:00
mjbudd77 78d7ee958e Added missing icons. 2021-07-02 16:27:08 -04:00
mjbudd77 7af00f523e Added go to address function to debugger tool bar. 2021-07-02 16:26:44 -04:00
mjbudd77 fd6876a09d Added tool bar to Qt debugger window. 2021-07-02 15:15:26 -04:00
mjbudd77 c3fbabc633 Go to address dialog adjustments for debugger and hex editor. 2021-07-01 22:34:30 -04:00
mjbudd77 e9cb6498cd Added goto address menu function for Qt debugger. 2021-07-01 22:11:37 -04:00
mjbudd77 117bfd0223 Moved debugger reset counter to menu instead of pushbutton on window. 2021-07-01 21:17:06 -04:00
mjbudd77 77a4e610fb For Qt GUI, moved debugger assembly view checkbox options to the debug window main menu. This gives more room to expand the bookmark viewport. 2021-07-01 21:10:59 -04:00
mjbudd77 f9c785ba65 Added debugger breakpoint on unlogged code/data feature request #379. Moved break on bad opcodes checkbox from debug window layout to menu (saves valuable space in debug window for other things). 2021-06-30 21:24:13 -04:00
mjbudd77 7b1e171ba7 Added code to save/restore Qt window geometry for commonly used tools and debug windows. 2021-06-30 06:50:31 -04:00
mjbudd77 d57cf3e35c Added code/data logger indications to Qt debugger assembly view. 2021-06-29 21:50:16 -04:00
mjbudd77 89966a2374 Set clipSidesOffset appropriately so that messages are not clipped in Qt GUI. 2021-06-28 20:23:20 -04:00
Alexey 'Cluster' Avdyukhin 6376c9a311 Removed unnecessary malloc() at all 2021-06-28 09:18:48 +03:00
Alexey 'Cluster' Avdyukhin 2c74b61bf9 Fixed regularly crashes when using Ctrl+A in HEX editor 2021-06-28 08:57:53 +03:00
mjbudd77 d74e14912d Added missing HTML press release pages for versions 2.3.0 and 2.4.0 to web site. 2021-06-27 12:52:30 -04:00
mjbudd77 a2d08f62ec Same macosx palette search logic added for palette editor window. 2021-06-26 00:24:57 -04:00
mjbudd77 fa3b135a44 Updated Palette config to search in applications resources folder for palettes. Palette, lua scripts, and documentation files are now packaged into MacOSX DragNDrop package. 2021-06-26 00:16:53 -04:00
mjbudd77 941da60ecb Bug fix for stack buffer overflow on mac osx. 2021-06-25 12:04:18 -04:00
mjbudd77 42fd7b1894 Updated latest release text on home page. 2021-06-25 00:09:14 -04:00
mjbudd77 2b0fd97ae7 Updated most recent release text on readme. 2021-06-24 21:38:26 -04:00
mjbudd77 5cdabe7223 Added generated help chm/html files with 2.4.0 release notes. 2021-06-24 21:27:09 -04:00
mjbudd77 572e89ee90 Cleaned up a few unused variables. Added blit and render counters to help debug if GUI rendering is on time with emulation thread. 2021-06-23 20:30:33 -04:00
mjbudd77 0b7c7f1924 Minor updates to SDL README. 2021-06-23 07:02:47 -04:00
mjbudd77 2cc52f101f Merge remote-tracking branch 'mjbudd77/master' 2021-06-21 20:33:21 -04:00
mjbudd77 637559c7b7 Added logic to only hook up screen changed signal handler once the window has fully been constructed. 2021-06-21 20:06:13 -04:00
mjbudd77 bcdfa2a834 Added logic to watch for screen change events coming from main window and notify OpenGL widget to recalculate screen pixel ratio and texture sizes. 2021-06-20 22:12:53 -04:00
Alexey 'Cluster' Avdyukhin 655609079b Fix for #376 2021-06-20 15:02:32 +03:00
mjbudd77 0053a52929 Tuned PAL palette slider and label minimum widths for Qt palette config window. 2021-06-19 17:12:21 -04:00
mjbudd77 45779c4331 Use function pointer to save having to do if/else if scale check on every pixel. Makes ModernDeemphColorMap slightly more efficient. 2021-06-19 09:37:24 -04:00
zeromus f20fea7b90 fix bug that made prior commits not work in release ModernDeemphColorMap
fixes #375
2021-06-18 12:38:09 -04:00
zeromus d6e89e2147 fix some scaling cases 2021-06-18 12:34:32 -04:00
mjbudd77 c53a04dfda Merge remote-tracking branch 'mjbudd77/master' 2021-06-18 07:11:19 -04:00
mjbudd77 80d0df9c6b Added PAL sharpness percent indication label. 2021-06-18 07:10:43 -04:00
zeromus 907af7f87e try optimizing deemph vs scale2x (should fix #375) 2021-06-17 22:32:48 -04:00
mjbudd77 359b5c3786 Slight size adjustments to PAL palette sliders. Since sharpness has less range than the others, size it smaller so that the others have finer control. 2021-06-17 21:27:54 -04:00
mjbudd77 b87452861c Merge branch 'master' of github.com:TASVideos/fceux 2021-06-17 20:44:54 -04:00
mjbudd77 9f85d445c5 Added logic to better size the comment area of Qt palette config window. 2021-06-17 20:44:26 -04:00
mjbudd77 39a50e46f4 Changed PAL palette emulation sensitivity logic for Qt palette config window. Now can only be used if PAL filter is active. 2021-06-17 20:21:42 -04:00
Alexey 'Cluster' Avdyukhin 701541432c More achive improvements/fixes 2021-06-18 02:50:15 +03:00
mjbudd77 38b8d8e9db Added config parameters to save state of PAL palette controls, force grayscale, and de-emphasis bit swap settings. 2021-06-16 23:00:40 -04:00
mjbudd77 92e983a7e8 Initial add of PAL emulation palette controls for Qt GUI. 2021-06-16 22:43:37 -04:00
mjbudd77 167bda0d37 Minor logic change for Qt gamepad button mapping initialization. If the user specifically choose keyboard in gamepad config, then don't attempt to match to a gamepad device. Use keyboard bindings instead. 2021-06-16 07:15:10 -04:00
mjbudd77 4fb3b36aef Updated MacOS Logo Icons 2021-06-15 22:13:02 -04:00
mjbudd77 d295472df3 Increased icon size on Qt about fceux window. 2021-06-15 21:55:20 -04:00
mjbudd77 40046f6e7e
Merge pull request #374 from ClusterM/new-win-icon
New icon for Windows version
2021-06-15 21:28:15 -04:00
Alexey 'Cluster' Avdyukhin db928c2be5 Updated fceux1.png 2021-06-16 03:10:32 +03:00
Alexey 'Cluster' Avdyukhin bc62eb3c2c Same icon for Qt and Win" 2021-06-16 02:47:49 +03:00
Alexey 'Cluster' Avdyukhin f3c622d248 Credits to Terwilf 2021-06-16 02:27:18 +03:00
Alexey 'Cluster' Avdyukhin 058ccfd319 New icon for Windows version 2021-06-15 19:37:32 +03:00
Alexey 'Cluster' Avdyukhin e1f67a0a86
Merge pull request #373 from ClusterM/archive-window
Resizable "open archive window" for Windows version
2021-06-15 14:28:27 +03:00
Alexey 'Cluster' Avdyukhin aa721d61a9 More informative error messages 2021-06-15 14:06:09 +03:00
Alexey 'Cluster' Avdyukhin a50fdb64aa Sizable "open archive" window (fix for #353) 2021-06-15 13:32:09 +03:00
mjbudd77 64bb9a8c51 Added undo/redo color operation functionality to the Qt palette editor. 2021-06-14 20:52:36 -04:00
mjbudd77 34290e747a Added more descriptive text to unsaved gamepad button mappings warning. 2021-06-13 22:40:35 -04:00
mjbudd77 2f0aa22b42 Fixed cut/paste error. 2021-06-13 22:20:22 -04:00
mjbudd77 279b7c0e58 Merge remote-tracking branch 'mjbudd77/master' 2021-06-13 22:01:52 -04:00
mjbudd77 49735af561 Updated hot key to gamepad binding logic for Qt GUI. 2021-06-13 22:00:45 -04:00
Alexey 'Cluster' Avdyukhin 2837e929d0 Fix for #370 2021-06-13 22:16:56 +03:00
mjbudd77 f6f868671e Added a hot key selection dialog for advanced gamepad function bindings. Makes it more intuitive to setup gamepad function bindings. 2021-06-13 14:19:30 -04:00
mjbudd77 2b0e4a8876 Change JS search loop to be more efficient on game pad config window. 2021-06-13 12:35:01 -04:00
mjbudd77 5f96a20385 Added JS/gamepad config hotplug functionality. Fixes for adding/removing devices while config window is open. 2021-06-12 22:32:06 -04:00
mjbudd77 55bf88547c Auto formated using vs code to fix tab vs spaces indentation issues. 2021-06-12 22:30:36 -04:00
Alexey 'Cluster' Avdyukhin d6769d052c Tabs, not spaces 2021-06-12 06:14:12 +03:00
Alexey 'Cluster' Avdyukhin 24600dece2 Merge branch 'master' of https://github.com/TASVideos/fceux 2021-06-12 06:11:42 +03:00
Alexey 'Cluster' Avdyukhin 9bee6d191d Added CRC32 for 'Super Mogura Tataki!!' (issue #344) 2021-06-12 06:11:17 +03:00
mjbudd77 da36b4afd8 Commented out redundant hot key set window activation. itemActivated and itemDoubleClicked signals are not both needed. A double click will also trigger itemActivated signal. 2021-06-11 23:09:10 -04:00
mjbudd77 e79f0159df Changed PAL filter name to PAL 3x to match recent win32 version changes. 2021-06-11 23:00:11 -04:00
mjbudd77 d5e2087ce1
Merge pull request #371 from ClusterM/grayscale-fix
Grayscale filter fix
2021-06-11 21:46:31 -05:00
Alexey 'Cluster' Avdyukhin d1b5301f64 Minor refactoring, comments 2021-06-12 04:47:01 +03:00
Alexey 'Cluster' Avdyukhin ac2818e3da Moved grayscale filter to ChoosePalette() 2021-06-12 03:55:04 +03:00
mjbudd77 2861067933 Fixed SDL video init for linux, force window to be reshown after calling SDL_DestroyWindow as the destroy calls hide. 2021-06-11 14:55:49 -04:00
mjbudd77 cdf2f1e150 Changed last commit to only affect windows builds, for some reason it does not work the same in linux. 2021-06-11 00:04:37 -04:00
mjbudd77 afdf192a46 Merge remote-tracking branch 'TasVideos/master' 2021-06-10 23:10:22 -04:00
mjbudd77 72de93bc94 SDL window initialization and resize logic fix. Should only be calling SDL_CreateWindowFrom once. Wait for window to full be created and initialized before attempting to init SDL video renderer. 2021-06-10 23:06:43 -04:00
Brad Smith 6be59b2d8d
win64_build.bat should use 7z_64.dll 2021-06-08 17:43:13 -04:00
Alexey 'Cluster' Avdyukhin 867a3e7838 Added UpdateMenuHotkeys() call after DriverInitialize to redraw tooltips with updated joystick numbers 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 232394ba87 Reverted init order back, crashes on release build 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin bfbea5c398 Refactored input system for Windows version 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 2d4f8eb7bd Minor fix to avoid warning 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin f22f48e46e For some weird reason NumLock and Pause keys are messed up - fixed 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 7c6e7f5e15 Removed more unused stuff 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 8733067f5b Ability to cancel keys input dialog 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin b88be3a9ee Removed huge amount of unused code 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin ab1264064c Migrated FCEUD_CommandMapping to ButtConfig, finally. 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 91756a9593 Autohold migrated to ButtConfig, DWaitButton and DTestButton, code clean-up 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin 86cde43be2 Support for Z, RX, RY and RX joystick axes 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin ad1b126539 Ability to map 'win' keys, binding dialog fix 2021-06-08 14:16:27 -04:00
Alexey 'Cluster' Avdyukhin c5d59a24b5 Ability to bind key combinations using "DWaitButton", refactoring 2021-06-08 14:16:27 -04:00
feos 49427511f1 captured from r57shell's PAL composite signal shader 2021-06-08 16:15:51 +03:00
Alexey 'Cluster' Avdyukhin 9efd26fe58 Holy Diver is not four-screen at all, proof: http://bootgod.dyndns.org:7777/profile.php?id=4038 2021-06-06 16:33:20 +03:00
feos d146718204 don't automatically force deemph swap since it's configured in palette manually 2021-06-05 21:09:57 +03:00
feos c2606a54cf I was begged to restore pal simulation 2021-06-05 14:28:05 +03:00
zeromus 84ae911e09 for some reason 7z dropped the signature for zip at some point.
so add our own PK signature checker
2021-06-05 05:16:26 -04:00
zeromus f92b4ae541 add 64bit 7z.dll to fix #361 2021-06-05 04:53:32 -04:00
mjbudd77 b1b9b50f7b Fixed logic issue so that the main window size is not saved if the screen is in full or maximize modes. Only save previous screen size to config if in normal window mode. This prevents the next start of fceux setting the initial window size to close to maximum. 2021-06-04 20:53:11 -04:00
mjbudd77 c808d1f2d0 Merge branch 'master' of https://github.com/mjbudd77/fceux 2021-06-03 20:01:29 -04:00
mjbudd77 d9f10a960f Added a fix for fullscreen Qt opengl based windows. This addresses a known Qt issue referenced here: https://doc.qt.io/qt-5/windows-issues.html#fullscreen-opengl-based-windows 2021-06-03 20:01:22 -04:00
mjbudd77 d46ef48d55 Changed video scanline entry fields to use QSpinBox instead of QLineEdit. The spin box has better range limiting controls. 2021-06-02 22:56:25 -04:00
mjbudd77 9c6f895e2a Initial add of 2.4.0 release notes to documentation help file. 2021-06-02 21:38:39 -04:00
mjbudd77 b97b652df7 Added PPU overclocking feature to Qt GUI. 2021-06-02 07:09:13 -04:00
mjbudd77 a9f6dafa15 Added a list of open source dependencies that the application has been compiled against for debug traceability. 2021-06-01 21:43:49 -04:00
mjbudd77 a849cdcd2f Added decor icons to buttons on custom autofire pattern dialog window. 2021-06-01 20:57:29 -04:00
mjbudd77 4af2ef744e Merge branch 'master' of github.com:TASVideos/fceux 2021-06-01 20:16:05 -04:00
mjbudd77 32d26df3de Added logic to not resize Qt main window when applying video settings if screen is in fullsize or maximize modes. 2021-06-01 20:11:07 -04:00
zeromus f5668dbf8b move irc to libera 2021-06-01 16:22:12 -04:00
mjbudd77 b0d31411b7 Updated FirebrandX palette package files for Issue #354. 2021-06-01 07:12:26 -04:00
mjbudd77 df03d4581b Added code to destroy SDL window handle when SDL video driver is deleted. 2021-05-31 21:41:35 -04:00
mjbudd77 1de4aea0a8 Added code to reload cursor image any time the Qt video driver is changed. 2021-05-31 21:27:41 -04:00
mjbudd77 bab53e8433 Cleaned up dead code. 2021-05-31 21:00:44 -04:00
mjbudd77 842aab44aa Added logic to also init SDL mouse cursor shape in addition to Qt just incase SDL is drawing mouse cursor. 2021-05-31 20:47:57 -04:00
mjbudd77 b61b30e0bb Re-enabled all Qt sound control sliders. At least until it is determined what should be disbaled when low quality is selected. 2021-05-31 20:00:36 -04:00
mjbudd77 7c0413b5ac For Qt GUI, added code to build windows fceux.ico icon into application. 2021-05-30 20:52:42 -04:00
mjbudd77 ced185df89 For Qt GUI, added logic to clear screen to black pixels on ROM close. 2021-05-30 11:19:14 -04:00
mjbudd77 68e43eeb6b Bug fix for NTSC 2x and PAL special scalers with 8px side clipping active. 2021-05-30 11:07:09 -04:00
mjbudd77 4ab45b82d8 Added logic to disable square2, noise, and pcm sliders on Qt sound config window if low sound quality is active. 2021-05-29 23:00:44 -04:00
mjbudd77 3788dc872e Applied video updates to SDL driver. 2021-05-29 22:02:00 -04:00
mjbudd77 96c569a652 Changed GL video scaling so that special filter does not effect the size of the overall window. 2021-05-29 21:52:32 -04:00
mjbudd77 b58d4f903c Slight tweak to CDL auto save logic. 2021-05-29 15:19:28 -04:00
mjbudd77 1c15c829d4 Added logic to ensure that empty symbolic debug files are not created when closing a ROM. Also, added logic to prevent saving of auto defined register symbolic names as they will aways load internally. This prevents debug files from being created when a user is not using emulator debug features. 2021-05-29 13:59:55 -04:00
mjbudd77 a2aa5ba90f Added logic to only auto save a CDL file is the code data logger was actually started at least once. This will prevent empty cdl files from being created on ever ROM close when auto saving of cdl files is enabled. 2021-05-29 13:46:14 -04:00
mjbudd77 2b9058ea13 Bug fix for Qt drag and drop ROM load. Prefer local file paths if possible. 2021-05-29 13:10:14 -04:00
mjbudd77 9cdbdb31b0 Added ROM file drag and drop into Qt main window feature. This will load the ROM into the emulator when dropped. 2021-05-29 09:16:30 -04:00
mjbudd77 10f599fd5b Removed old unused blocks of code from SDL video for Qt GUI. 2021-05-28 20:31:58 -04:00
mjbudd77 635cd07020 Added autofire pattern presets to Qt emulation menu. Changed custom autofire pattern entry to use a single dialog window. Autofire pattern is now saved as a config parameter. 2021-05-28 20:25:52 -04:00
mjbudd77 11f1a16ce5 Merge remote-tracking branch 'mjbudd77/master' 2021-05-28 15:50:24 -04:00
mjbudd77 f214da8314 Added logic to save/load video force aspect ratio property to/from config settings. 2021-05-28 15:49:20 -04:00
g0me3 67942accc7 - better log for FDS aware of RAM based code + bios log at the same time (for convinience)
- new FDS save/load code tested and works just fine, except they forgot to use DiskWritten var to have saved data flushed, fixed, now all saves are complete
2021-05-28 19:29:23 +02:00
mjbudd77 9013fad6a9 Bug fix for mouse button capture in windows when using SDL video driver. SDL video is intercepting mouse events causing Qt not to see them. Added an extra check to see what the SDL mouse button state is in addition to Qt check. 2021-05-27 20:56:05 -04:00
mjbudd77 a1ae042775 Added debug code to SDL viewport to see if mouse events are coming from SDL. 2021-05-27 19:51:57 -04:00
g0me3 b10b6254c3 better CDL for RAM based FDS system (writes to the RAM discards the logged bits to allow to log different loaded files separately) 2021-05-27 20:32:26 +02:00
mjbudd77 7bd1d6c2e8 Added draw input aid configuration option to Qt GUI. 2021-05-23 21:06:34 -04:00
mjbudd77 5c4f402a1f Added NULL pointer check to avoid crashes when initializing zapper with no ROM loaded. 2021-05-23 18:48:25 -04:00
mjbudd77 c2c76de841 Reverted Qt windows build to use Qt 5.15 instead of Qt 6.0. Qt6 needs a little more time to stablize. 2021-05-23 06:32:29 -04:00
mjbudd77 af1fe48655 Fixed clip sides image distortion issue for SDL video driver by forcing re-build of video textures when applying the change. 2021-05-23 06:30:05 -04:00
mjbudd77 20a691e608 Changed Qt GUI to use FCEU core autofire pattern logic instead of attempting to calculate its own. 2021-05-21 06:28:14 -04:00
mjbudd77 596c27ea5e Changed autofire algorithm to not require using a static array. Now just does an on/off frame calculation based on where it is in the overall duty cycle of the square wave. 2021-05-21 06:27:35 -04:00
mjbudd77 092fc97078 Changed sound volume config settings to init to the proper 255 max (not 256). 2021-05-19 22:28:50 -04:00
mjbudd77 d3f25269c8 Re-send aspect ratio settings to viewer when changing video driver. 2021-05-19 22:16:04 -04:00
mjbudd77 4eb7543838 Bug fix for SDL video not initializing correctly. 2021-05-19 21:25:50 -04:00
mjbudd77 e8573b79bc Added openGL extension checks for GL_ARB_texture_rectangle and GL_ARB_texture_non_power_of_two. Default to GL_TEXTURE_2D if GL_TEXTURE_RECTANGLE is not available. Force power of 2 size for texture width and height if non-power of two externsion is not available. 2021-05-19 21:16:03 -04:00
mjbudd77 4ff17bcb8e Set auto-resume QAction using a cleaner method. 2021-05-18 21:29:22 -04:00
mjbudd77 009733be8a Bug fix for initialization of Auto-Resume checkbox state at Qt GUI startup. 2021-05-18 21:25:20 -04:00
mjbudd77 a5cd18fe30 Minor code cleanup for readability. 2021-05-18 20:41:33 -04:00
mjbudd77 d01c019f11 Memory leak fix in video blit cleanup. 2021-05-18 20:41:14 -04:00
mjbudd77 6d54990580 Updated version to 2.4.0 in anticipation of upcoming release. 2021-05-18 20:19:56 -04:00
mjbudd77 d36a4b058b cppcheck warning fix for realloc return value handling. 2021-05-18 20:01:35 -04:00
mbudd02 91a45a216c cppcheck fixes. 2021-05-18 18:21:29 -04:00
mjbudd77 16bec45063 Increased max string sizes for load lua file dialog directory pathing for Qt GUI. Just incase users have long directory paths, set max path size to 2048 bytes. 2021-05-18 06:25:20 -04:00
mjbudd77 eae4dd8312 Added a minimum column pixel width to ensure that at least 6 characters can be displayed on name table viewer text fields. 2021-05-17 21:16:56 -04:00
mjbudd77 e60abba722 Set title for palette color selection window. Disabled unused context menu. 2021-05-16 15:25:21 -04:00
mjbudd77 c9c7a5105e Added palette color copy to clipboard functionality for Qt PPU viewer window. 2021-05-16 15:20:20 -04:00
mjbudd77 c1944fa25a Added active nametable and sprite palette export to ACT format option for Qt GUI. 2021-05-16 14:41:57 -04:00
mjbudd77 31608a5c6d Added logic to further ensure that changes to emulation video settings force an settings change on the Qt console viewer. 2021-05-15 07:03:53 -04:00
mjbudd77 6fda3ca0b3 Initialization fix for some of the Qt video settings at startup. 2021-05-14 22:22:30 -04:00
mjbudd77 8f245c9332 Changed Qt GUI screen shot function to use Qt image capture of the actual video viewport so that a higher resolution image that has the effects of the aspect ratio and scaler video selections in it. 2021-05-14 21:30:28 -04:00
mjbudd77 2f37a95e75 Added an nes palette export as adobe color table feature to Qt GUI. 2021-05-14 20:18:09 -04:00
mjbudd77 25d1002648 Updates to SDL README files. 2021-05-13 18:46:17 -04:00
mjbudd77 eab121801e Entry field improvements on Qt Debugger window. 2021-05-12 20:38:12 -04:00
mjbudd77 15a6584685 Further fixes for entry boxes in Qt Cheat Window. 2021-05-12 20:16:38 -04:00
sleepingkirby 884bf21d4d
For Qt version: Cheat codes with addresses ending in '0' are getting truncated. This … (#350)
* Cheat codes with addresses ending in '0' are getting truncated. This is due to the masking at line 141 (cheatAddrEntry->setInputMask( ">HHHH;0" );) combined with
cheatAddrEntry->displayText() on 860/934.
As per: https://doc.qt.io/qt-5/qlineedit.html#inputMask-prop

"When an input mask is set, the text() method returns a modified copy of the line edit content where all the blank characters have been removed.
The unmodified content can be read using displayText()."

So an address of "00B0" is returning as just "B"(as the mask as determined that 0 is a blank character. Which is what you want for an empty input
 field to have all 0;s.), which, when entered as an address, is just 0x000B. Fixing that by replacing text() with displayText() as
per documentation.

* same issue with cheatAddrEntry->text() exists with cheatValEntry->text(). Replacing those with displayText() as well
2021-05-12 19:30:08 -04:00
mjbudd77 e9a85d2e1c Ported FDS CDL fix to Qt GUI from win32. 2021-05-11 21:57:58 -04:00
mjbudd77 9b55e0a579 Added a color selection box on the palette editor to make it more obvious which box is being edited. 2021-05-11 20:10:17 -04:00
mjbudd77 f19016011e Bug fix for palette reset function on PPU viewer. 2021-05-10 20:00:00 -04:00
mjbudd77 3b81ff141f Added a palette color picker for changing tile background or sprite palette colors. 2021-05-07 23:22:01 -04:00
mjbudd77 2fee85444b Removed unused variables. 2021-05-07 21:16:43 -04:00
mjbudd77 f4d590dd83 Slight tweaks to ppu palette views to make more eye appealing. 2021-05-07 21:12:42 -04:00
g0me3 a4fa6225a0 little fix to more correct fds cdl 2021-05-07 20:11:01 +02:00
mjbudd77 0b689d65c4 Added WAV file recording capability to Qt GUI. 2021-05-05 20:25:34 -04:00
mjbudd77 d7ca6ccc18 Added code to save trace logger recording preferences to the config file (Qt GUI). 2021-05-04 21:06:28 -04:00
mjbudd77 e12e41a093 Minor pixel alignments to Qt hex editor. 2021-05-04 20:38:08 -04:00
mjbudd77 acde2c61d5 Added font selection option to Qt hex editor. 2021-05-04 06:49:13 -04:00
mjbudd77 225ba8a9e9 Qt Hex Editor color picker improvements. Added cursor row/column color highlight and alternate column coloring options. 2021-05-04 06:16:18 -04:00
mjbudd77 a0088e271b Added a cursor row/column color highlight option to Qt hex editor. 2021-05-03 21:51:51 -04:00
mjbudd77 68555d98ab Added config parameters to save PPU viewer tile focus policy preferences for Qt GUI. 2021-05-03 20:25:54 -04:00
mjbudd77 02e3c4e075 Added hot keys for AVI recording to Qt GUI. 2021-05-03 19:52:32 -04:00
mjbudd77 b3700f58b4 Fixed mac OSX x264 dependency package name. 2021-05-03 19:40:41 -04:00
mjbudd77 cfc91e2223 Commented out debug print statement. 2021-05-02 21:35:47 -04:00
mjbudd77 ac340e0a4c Added logic to immediately save the debug symbol table to disk after any change is made. For Qt GUI. 2021-05-02 21:28:14 -04:00
mjbudd77 974d2aefba Bug fix for segmentation fault when deleting all cheats. Instead of using callback based iterator function to delete each cheat, added a new function that will just cleanly delete all cheats without the need for a callback. 2021-05-02 20:49:08 -04:00
mjbudd77 b97bf287b2 Bug fix for Qt GUI when closing ROM while the emulation thread is haning on a breakpoint. Now the thread is allowed to complete its frame so that it is idle with a minimal call stack before the ROM is closed. This prevents the emulation thread from coming out of its breakpoint wait loop at attempting to continue running its frame with no ROM data loaded. This fixes a segmentation fault crash that was mentioned in the project Qt issues thread. 2021-05-02 19:45:36 -04:00
mjbudd77 a74c2ae80b Updated documentation for new Qt GUI AVI recording capabiliity. 2021-05-02 18:51:10 -04:00
mjbudd77 6283dc4687 Successful test of fully integrated avi recording in Qt GUI. 2021-05-02 18:36:34 -04:00
mjbudd77 4a498d20af Initial menu functionality added to GUI for avi recording. 2021-05-02 15:49:15 -04:00
mjbudd77 90e36c15c6 Hooked up video quality input from avi compression chooser. 2021-05-01 14:54:30 -04:00
mjbudd77 da4997ea9c Set default value for AVI video driver to be a safe choice that is supported by all platforms. 2021-05-01 01:32:17 -04:00
mjbudd77 e57e8f7e4c Memory leak fixes for VFW avi encoder. 2021-05-01 01:22:48 -04:00
mjbudd77 33d645f911 First successful test of VFW avi recording on Qt GUI. 2021-05-01 01:08:34 -04:00
mjbudd77 22523076de Added code to save avi files in base folder. 2021-04-30 16:26:54 -04:00
mjbudd77 ec33153e88 Added x264 dependency to linux and macos appveyor pipeline. 2021-04-30 14:09:22 -04:00
mjbudd77 b1638f7c07 Successful test of x264 encoder in linux. 2021-04-30 13:40:17 -04:00
mjbudd77 07776bc471 Initial integration of x264 codec for avi record. 2021-04-30 12:47:36 -04:00
mjbudd77 ce554b5e7b Added I420 (YUV 4:2:0) conversion option to avi recorder. 2021-04-30 11:57:23 -04:00
mjbudd77 b9f6bf281f Restructured Qt AVI writer to run is its own thread. 2021-04-29 21:50:45 -04:00
mjbudd77 e9dbe9428a Set avi fps based on region type. 2021-04-29 06:42:51 -04:00
mjbudd77 9b4b9b6549 Successful recording of small avi in RGB24 format. 2021-04-29 06:21:16 -04:00
mjbudd77 fb30f57bec Removed unistd.h include from file. 2021-04-29 04:51:05 -04:00
mjbudd77 366c8a8792 Removed rgbtorgb from build as it does not build in windows. 2021-04-28 21:59:19 -04:00
mjbudd77 b78003dc00 Initial add of avi recording code for Qt GUI. 2021-04-28 21:40:46 -04:00
mjbudd77 69ed92eada Indentation fixes in sdl-sound.cpp. 2021-04-27 20:50:56 -04:00
mjbudd77 9fc0237a01 Fixed constant limit to be in the correct base number system. 2021-04-27 20:22:39 -04:00
mjbudd77 0006cb265d Fix for re-arm buffer overrun warning on logging restart. 2021-04-27 06:45:54 -04:00
mjbudd77 4afb2ac2ac Changed linux Qt trace logger to use low level disk write functions to increase efficiency. 2021-04-26 21:41:22 -04:00
mjbudd77 f386dfb428 Changed Qt trace logger to use native windows file access functions to make disk access more efficient. 2021-04-26 21:10:55 -04:00
mjbudd77 84b900b73b Added logic to wait for trace logger disk thread to be ready for more data when logging to disk. This will slow down the realtime execution of the emulation but will ensure that all instructions are properly logged to the disk. 2021-04-25 23:28:51 -04:00
mjbudd77 f146a7f7f1 Added a separate thread to Qt trace logger whose job is to just write the logged instructions to disk (when disk logging is enabled only). This allows for bottle necks with disk I/O to not slow down the emulation. Also, buffer 4k blocks before writing to disk to make more efficient. 2021-04-25 22:07:59 -04:00
mjbudd77 aa5ce14c06 Added a debug message output for warn of buffer overruns when logging to a file with the Qt trace logger. 2021-04-24 19:13:46 -04:00
mjbudd77 e2716ae2c5 Fixed segmentation fault in Qt trace logger when changing from a large buffer size to a smaller buffer size. Ensure that buffer head and tail pointers are reset as well. Fixed memory leak with old trace log buffer not being freed when allocating the new buffer size. 2021-04-24 13:57:20 -04:00
mjbudd77 2169dd07fb Changed nametable scanline entry box to be a spin box instead of line edit widget. 2021-04-21 21:03:18 -04:00
mjbudd77 5fcad9507e Added nametable tile palette view widget. 2021-04-21 20:46:02 -04:00
mjbudd77 2ef01ec824 Added palette hex codes to ppu palette views. 2021-04-21 20:12:41 -04:00
mjbudd77 6fddbb3f41 Minor spelling fix. 2021-04-20 22:53:12 -04:00
mjbudd77 5ec2c5efdc Fixed small memory leak in Qt debugger asm viewer. 2021-04-20 22:26:28 -04:00
mjbudd77 867ad36a2d Change sprite viewer layout to be more compact. 2021-04-20 21:49:33 -04:00
mjbudd77 b8cb24499f Added logic to make force the default Qt style to be a known good value. This is windows style for windows platform and fusion style for linux and mac osx. Depending on which Qt style plugins are installed on the OS, certain ones are known to be unstable (such as gtk2 style). 2021-04-18 19:18:05 -04:00
mjbudd77 72588e0eec Minor adjustments to sprite preview resizing logic. 2021-04-17 09:02:18 -04:00
mjbudd77 922c34c00e Added sprite preview area sizing options to menu. 2021-04-17 07:25:44 -04:00
mjbudd77 a09121b28d Added logic to increase size of sprite preview area. 2021-04-17 07:11:29 -04:00
mjbudd77 838ba76284 Modified sprite viewer data field boxes to use monospace font for both ease of reading and calculating minimum pixel width to fully display data. 2021-04-17 06:48:30 -04:00
mjbudd77 83e2d36480 Added logic to allow the sprite preview area to be hidden if desired. 2021-04-17 06:32:14 -04:00
mjbudd77 53047762c4 Implemented first cut at sprite preview area. 2021-04-17 06:11:42 -04:00
mjbudd77 9d138bd8eb Added an option to show sprite X/Y coordinates in either decimal or hex. 2021-04-16 20:08:51 -04:00
mjbudd77 82b0bdbc4e Added a quick tile selection link from sprite viewer to PPU CHR viewer via context menu. 2021-04-16 15:51:55 -04:00
mjbudd77 76b82b289a Fixed sprite viewer crashes when no ROM is loaded. 2021-04-16 15:35:47 -04:00
mjbudd77 187522b4cc Hooked up sprite viewer window menu options. 2021-04-16 15:25:49 -04:00
mjbudd77 d7773c7b3d Added arrow key logic for sprite viewer. 2021-04-16 14:49:29 -04:00
mjbudd77 3613a7da4e Hooked up sprite info data fields. 2021-04-16 14:42:39 -04:00
mjbudd77 369459ba63 Added data fields sprite viewer. 2021-04-16 09:50:23 -04:00
mjbudd77 ad5c666268 Added sprite viewer mouse selection logic. 2021-04-16 09:09:30 -04:00
mjbudd77 42ac942e23 Fixed sprite viewer addressing errors. First successful viewing of sprite table. 2021-04-16 08:44:04 -04:00
mjbudd77 26e5e46da8 Sprite viewer in work. 2021-04-15 22:52:27 -04:00
mjbudd77 c4fa40975a Reverted Mac OSX build back to Qt5. Added an SDL2 build from source in the event that brew install sdl2 fails. 2021-04-13 23:01:45 -04:00
mjbudd77 029cea534c Hooked up validity states for a few Qt main menu items. 2021-04-12 21:42:57 -04:00
mjbudd77 d84e4c3663 Fixed a few memory leaks caught by valgrind tool. 2021-04-12 20:40:55 -04:00
mjbudd77 1a8369f1b3 Added event accept lines for console window key events. Helps improve mac os responsiveness. 2021-04-12 20:06:49 -04:00
mjbudd77 f330ca2946 Updated README file with Qt6 build info and GTK GUI retirement notice. 2021-04-12 06:47:14 -04:00
mjbudd77 5cea05d183 Changed default behavior of pausing when main menu is active to false. 2021-04-12 06:28:04 -04:00
mjbudd77 904652efa9 Changed GetModuleFileName calls to GetModuleFileNameA to ensure that the 8 bit character version is used. Fixes build errors with Qt6 using C++17. 2021-04-12 06:27:04 -04:00
mjbudd77 c1d6d7f4cf Another TCHAR substitution for char to fix Qt6 build error. 2021-04-11 22:36:54 -04:00
mjbudd77 eb1393367e Changed TCHAR to regular char type to fix build error in lua-engine for windows builds. 2021-04-11 22:11:31 -04:00
mjbudd77 3faacbb308 Build fix for Windows Qt6. 2021-04-11 21:35:19 -04:00
mjbudd77 a3c73c5a4d Set Windows Qt appveyor build to use Qt6. Build fix for Mac OSX pipeline using Qt6. 2021-04-11 21:26:46 -04:00
mjbudd77 229705f693 Updated Mac OSX appveyor pipeline to build against Qt6 2021-04-11 20:56:47 -04:00
mjbudd77 ca232c8b3c Added Qt6 build option to Cmakelists. 2021-04-11 20:34:43 -04:00
mjbudd77 806486e13d Build fixes for Qt6 on Mac OSX. 2021-04-11 17:39:37 -04:00
mjbudd77 27bb85f282 Added logic to make Qt GUI main menu access pause emulation functionality a configurable parameter. 2021-04-11 15:25:24 -04:00
mjbudd77 9e92e28419 Fix for mismatch class/struct declaration. 2021-04-11 14:05:40 -04:00
mjbudd77 c790f1481c Added logic to Qt GUI to produce an error message dialog in the event that an ambiguous activation of conflicting hot key sequences occurs. 2021-04-11 13:53:34 -04:00
mjbudd77 5f40358a06 Added code for Qt GUI to pause emulation when main menu is active. This feature is currently disabled. 2021-04-11 13:10:09 -04:00
mjbudd77 86edfd490a Changed Qt warnings to not display as error dialogs, instead just prints
to main log.
2021-04-10 09:40:20 -04:00
mjbudd77 7f85544e63 Bug fix for Qt GUI family keyboard conflicting with new hot key shortcuts. 2021-04-08 20:50:51 -04:00
mjbudd77 19891e1155 Bug fix for Qt GUI emulation speed up/down hot keys. 2021-04-06 22:54:29 -04:00
mjbudd77 caa9e67544 Bug fixes for Qt GUI load/save state hot keys. 2021-04-06 22:44:49 -04:00
mjbudd77 40668462a8 Qt Hot Key title window logic in work. 2021-04-06 22:02:02 -04:00
mjbudd77 4cc02ed25b More Qt GUI hot key fixes for new setup. 2021-04-06 21:23:41 -04:00
mjbudd77 0419e22179 Further hot key rework, fixed Qt Turbo hot key function. 2021-04-05 22:42:59 -04:00
mjbudd77 2f2abfdbb2 Bug fixes for a few Qt hot key shortcuts. 2021-04-05 22:09:59 -04:00
mjbudd77 e0f5c3c58e Added code to fix Qt key sequences to avoid impossible combinations. 2021-04-05 21:01:50 -04:00
mbudd02 7acaf7f2bd Added more error logging to Qt GUI. 2021-03-30 09:06:27 -04:00
mbudd02 7ccfd43a98 Added code to route Qt GUI/Core messages to message log. 2021-03-30 08:44:31 -04:00
mbudd02 adc08cfd1d Added a set defaults button to Qt hot keys window. 2021-03-30 08:13:45 -04:00
mjbudd77 1d7dd522ba Changed Qt GUI hot key set logic to be more like Win32 version. Each key now spawns a set/clear key state dialog window. 2021-03-30 04:32:00 -04:00
mjbudd77 cf7d23694c Added checkboxes to enable/disable hot keys. 2021-03-29 20:59:30 -04:00
mjbudd77 cbdd6e43d9 Further hot key config rework. 2021-03-29 20:52:58 -04:00
mjbudd77 da401d9833 Qt hot key rework intermediate commit. 2021-03-29 20:04:29 -04:00
mjbudd77 5a9010b8e2 Qt hot key rework intermediate commit. 2021-03-29 17:39:19 -04:00
mjbudd77 3505e81710 Reworking of Qt Hot Keys. Intermediate commit. 2021-03-27 22:44:55 -04:00
mjbudd77 18c7c95ef3 Added logic to allow switching the Qt GUI video driver while program is running with out needing a restart... although a restart is still probably the safest. 2021-03-25 20:20:01 -04:00
mjbudd77 4be5045fc7 Added logic to filter out standalone modifier keys when setting game pad button to key sequence remaps. 2021-03-25 06:28:31 -04:00
mjbudd77 739dc2a16d Run keyboard command processing on every key event to make sure none are missed. 2021-03-25 04:50:31 -04:00
mjbudd77 b810164759 Added logic to allow for advanced key sequence options to be shown/hidden on game pad window. 2021-03-24 22:21:53 -04:00
mjbudd77 41caf1500f Game pad key sequence tree column title fixes. 2021-03-23 22:20:24 -04:00
mjbudd77 c3b911ab5c Added logic for gamepad key remap edit and delete buttons. 2021-03-23 22:07:22 -04:00
mjbudd77 c753820d32 Successful test of basic gamepad button remapping to keyboard sequences. 2021-03-23 21:38:13 -04:00
mjbudd77 16fc02daaf Advanced game pad button to key remapping in work. 2021-03-22 22:57:53 -04:00
mjbudd77 96dfa954e1 Advanced game pad key sequence mapper in work. 2021-03-22 22:24:50 -04:00
mjbudd77 13d93f1b84 Added initial window layout for advanced gamepad key binding feature. 2021-03-21 21:11:16 -04:00
mjbudd77 3836e03f53 Merge branch 'master' into gp-function_binding 2021-03-21 20:05:21 -04:00
mjbudd77 099f5820e2 Bug fix for hot key toggling of background render plane for Qt GUI. 2021-03-21 19:47:00 -04:00
mjbudd77 04caf3a03f Added logic to process all QCoreApplication events in main window loop to ensure that GUI stays responsive when rendering slows app execution down. Mac OS OpenGL was causing odd event processing delays. So now we will ensure all events are processed before attempting any rendering. 2021-03-21 18:31:20 -04:00
mjbudd77 b942f07e9f Minor correction to Lua script path line edit box. Added clear buttons for line edit boxes on Lua console window. 2021-03-21 15:00:39 -04:00
mjbudd77 26ee4ea14a Force default mac OS path separator to be / instead of old style : 2021-03-21 14:32:16 -04:00
mjbudd77 95aa96a14e Aspect ratio pixel scaling fixes for Qt GUI. For issue #341. 2021-03-21 13:47:12 -04:00
mjbudd77 b825454fee Added to fix Qt build issue with pre Qt 5.12 builds. 2021-03-21 08:34:08 -04:00
mjbudd77 451b0f8474 For Qt GUI, change square pixel video option to be a force aspect ratio option and added a small list of preselect aspect options via video config window. Aspect ratio is now a configuration parameter for the video viewport. This addresses most of issue #341. Still TODO add custom aspect entry capability. 2021-03-21 07:17:01 -04:00
mjbudd77 9e1eb03b96 Added initial framework for being able to bind gamepad button presses to emulator key sequences. This makes it possible to trigger any short cut or hot key. 2021-03-20 09:24:02 -04:00
mjbudd77 afe54a5ab9 Fixed iNES_HEADER struct/class definition miscompare warning. 2021-03-19 22:05:20 -04:00
mjbudd77 fda056cdc3 Resolved a couple signed vs unsigned miscompare warnings. 2021-03-19 22:01:12 -04:00
mjbudd77 d52c4c24b6 Swapped out deprecated QPalette::Background symbol for QPalette::Window. 2021-03-19 21:53:10 -04:00
mjbudd77 2f097ff4b3 Resolved a couple bool/int comparision compiler warnings. Fixed Qt GUI crash when setting 4 score settings without a ROM loaded. 2021-03-19 21:37:27 -04:00
mjbudd77 bc3b156cf5 Compiler warning cleanup of unused variables and exception handling. 2021-03-19 20:59:03 -04:00
mjbudd77 456251861a Added a targeting reticle icon that can be used as a mouse cursor on the main viewport of Qt GUI. Easier to aim with for zapper games emulated by mouse. 2021-03-18 22:30:40 -04:00
mjbudd77 ffd5de60aa Added logic to Qt GUI to allow for the shape of the viewport cursor to be selectable between an arrow, cross, or blank. Also added a viewport cursor visibility configuration parameter. Cursor visibility and shape can be set via the video config option window. 2021-03-14 14:02:10 -04:00
mjbudd77 b1c0c4447f Successful test of using saved QPalette color settings. 2021-03-07 13:28:44 -05:00
mjbudd77 9642be0db1 Added functions to save QPalette color settings to a file and load then on request. 2021-03-06 22:30:56 -05:00
mjbudd77 7eb8ea9608 Added a GUI widget style test window. Contains most of the widget types for ease of seeing style changes. 2021-03-06 00:40:58 -05:00
mjbudd77 a9059517a5 Added menu to GUI palette color editor. 2021-03-05 22:26:32 -05:00
mjbudd77 037f1e04f9 Added color picker logic for GUI color palette selection. 2021-03-05 22:03:25 -05:00
mjbudd77 5ee2c6875e Created framework for GUI color palette edit window. 2021-03-05 21:29:50 -05:00
mjbudd77 0203344802 Added logic to look for a QResource (rcc) file along side a qss file when loading a new stylesheet. 2021-03-05 15:09:28 -05:00
mjbudd77 f7480c8560 Style fix for Qt gamepad config window button text. 2021-03-05 12:24:36 -05:00
mjbudd77 cb0bc74fd4 Added a styling wrapper class to allow for more control over palette colors. 2021-03-03 22:48:45 -05:00
mjbudd77 2a6a31fa48 Added Qt stylesheet GUI selection code. 2021-03-01 21:48:57 -05:00
mjbudd77 ac0f377873 Added a GUI style selection combo box. Lists all built in GUI styles available. This allows user to change the GUI style while it is running. Also, style setting is saved and used for future GUI startups. 2021-03-01 20:24:00 -05:00
mjbudd77 8347e2fd0b Bug fix for Qt GUI using default settings to force the minimum viewport until after the GUI has been drawn/resized at least once to ensure that the menu bar size has been finalized and the viewport meets demanded values. At the first resize event, the viewport minimum size is reset back to 1x values so that the window can still be shrunk by dragging the lower window corners and edges. 2021-02-27 19:29:50 -05:00
mjbudd77 8241973af1 Fixed order of execution bug to ensure that first startup of Qt GUI with default config sizes window exactly right. 2021-02-27 18:21:39 -05:00
mjbudd77 081d55ea45 Added menu bar to the Qt RAM search window. Currently only has a File->Close menu entry. 2021-02-27 17:16:04 -05:00
mjbudd77 623c2151a7 Added a menu bar to the Qt code data logger window with basic file load/save and window close functionality. 2021-02-27 17:07:20 -05:00
mjbudd77 c962e2bd43 Added --no-compiler-runtime command line option to windeployqt in qfceux appveyor build script. This will omit vc_redist_x64.exe from being included in the built zip file. 2021-02-27 09:30:34 -05:00
mjbudd77 194a2cfca2 Fixed file dialog code in input.cpp to use QFileDialog. 2021-02-27 09:08:15 -05:00
mjbudd77 8e4282fb42 Bug fix for Qt GUI ROM hard reset function. Function was using last open file config variable to determine which ROM to reload. Changed this function to read currently loaded ROM file path from core as this will always be correct. 2021-02-26 06:16:35 -05:00
mjbudd77 1cf00640c4 Added RAM init menu option to Qt GUI. 2021-02-25 20:19:41 -05:00
mjbudd77 ffc7e70b0d For Qt GUI fixed region auto detection logic to preserve dendy mode if an NTSC game is loaded. Also, added an option to enable/disable region auto detection functionality. This allows for the users selection via the GUI to be strictly enforced. Also, added a region select sub menu to the emulation main menu. Fixes issue #335. 2021-02-25 19:36:08 -05:00
mjbudd77 67c6386688 Logic for to allow for Qt GUI to auto detect NTSC/PAL at ROM load. 2021-02-24 19:23:07 -05:00
mjbudd77 2f83d11baa Added current window and viewport size readouts to Qt video config window. 2021-02-23 22:22:03 -05:00
mjbudd77 dda6cb33bb Added some protections to prevent user from reversing start/end scanlines via video config window. 2021-02-23 21:19:17 -05:00
mjbudd77 e3f2970dcd Added scanline start/end entry boxes for NTSC and PAL/Dendy to Qt Video config window. 2021-02-23 21:04:50 -05:00
mjbudd77 c544c137f5 Compiler warning cleanup for movie.cpp. Reordered initializer in constructor to match the order in which they are declared. Gave case statement a default for unhandled enum values. 2021-02-22 07:21:14 -05:00
mjbudd77 33882cb0d7 Fix for annoying compiler warning complaining about misleading indentation following if conditional. 2021-02-21 21:12:20 -05:00
mjbudd77 bf17e53335 Fix for mismatched fceu.cpp free()/malloc() error flagged by valgrind. 2021-02-21 21:04:02 -05:00
mjbudd77 3d2d3cbf26 Changed logic for Qt windows users for the config file to be located in the same directory as the executable by default. If a user wishes to override that behavior, they can set an FCEUX_HOME environment variable and that will become the users fceux config settings are stored. 2021-02-21 20:52:55 -05:00
mjbudd77 aacee3ddb9 Bug fixes for Qt hex editor ascii section key input. Key inputs now use character table. 2021-02-21 20:21:11 -05:00
mjbudd77 e07cd5ec52 Added a menu bar to the Qt trace logger with a File/Close option. 2021-02-21 18:39:18 -05:00
mjbudd77 79dcb51073 Auto Format of Qt code data and trace logger. Fix spaces/tabs code readability. 2021-02-21 18:32:30 -05:00
mjbudd77 9175eabf76 Added a close window button to the Qt game genie window. 2021-02-21 18:29:09 -05:00
mjbudd77 0bff7b7608 Added File/Close menu option to PPU tile editor window. 2021-02-21 18:24:30 -05:00
mjbudd77 7c4e8cfeec Added File/Close menu options to Qt debugger, ppu viewer, and name table viewer. 2021-02-21 18:21:00 -05:00
mjbudd77 348c26d78c Added TBL support to Qt hex editor. 2021-02-21 14:20:04 -05:00
mjbudd77 29e4825d12 Added code to free config memory at application exit. 2021-02-21 11:06:48 -05:00
mjbudd77 c107de92cd Cleanup code data logger allocated memory at application close. 2021-02-21 10:48:06 -05:00
mjbudd77 2a2e1b7bca Re-added code to free allocated video memory at application close. Free Qt NES wrapper memory at application close. 2021-02-21 10:39:21 -05:00
mjbudd77 b8e647fbc6 Fixed segmentation fault when offsetStringToInt is called without a loaded ROM. 2021-02-20 18:40:48 -05:00
mjbudd77 7dc77269b5 Added close buttons to Qt GUI config and tools windows. Debug windows still to be evaluated. Only exceptions are when the window has a menu bar with a file -> close option. 2021-02-20 06:57:25 -05:00
mjbudd77 e6754c87ba Added a recent ROMs sub menu to the Qt main menu. 2021-02-19 20:46:27 -05:00
mjbudd77 67fb5263cc Added a few context menu accelerators to debugger, hex editor, ppu viewer, and name table viewer Qt windows. 2021-02-19 00:15:23 -05:00
mjbudd77 350f7fa468 More QFileDialog show()/exec() fixes. #332 2021-02-18 23:28:31 -05:00
mjbudd77 5eb79dcf9d Removed all redundant QFileDialog calls to show() when exec() is already being called. The show() function is a non-blocking call to create a dialog window. exec() is a blocking call and is required to use the native windows file browser. Since all the file dialog callback functions are designed to be blocking anyway, the show() calls really shouldn't be there anyway. This fixes part of #332. 2021-02-18 23:14:31 -05:00
mjbudd77 5f46fd098f Added a refresh rate submenu under View in the Qt hex editor that allows for setting the update rate to the following values in Hz: 5, 10, 20, 30, and 60 (for those with super human eye-to-brain processing times). 2021-02-18 22:28:59 -05:00
mjbudd77 41c9125788 Added logic to Qt hex editor to force a redraw event when keyboard or mouse events that effect the cursor occur. 2021-02-18 22:04:13 -05:00
mjbudd77 90d31dadca Added logic to Qt hex editor to set minimum line width to full line length at construction. Part of #322. 2021-02-18 21:48:57 -05:00
mjbudd77 ea97709f85 Set minimum debugger assembly viewport width at construction to avoid window resizing when upon initial load of assembly text. Part of #322. 2021-02-18 21:29:55 -05:00
mjbudd77 86ffdcee3a Removed calls to old text console based cheat menu in favor of Qt GUI cheat menu. Default hot key for opening the cheat menu is F1 and was crashing when trying to bring up text cheat console. Qt window does not have this issue. Fixes part of #332. 2021-02-18 20:13:05 -05:00
mjbudd77 32e897479c Bug fix for hex editor crashing when changing view to PPU or ROM with no game loaded. Fixes part of #332. 2021-02-18 19:56:19 -05:00
mjbudd77 e7e6aac71d Merge branch 'master' of github.com:TASVideos/fceux 2021-02-17 21:35:07 -05:00
mjbudd77 aefb834552 Auto Reformat Qt RamSearch.cpp. 2021-02-17 21:27:03 -05:00
mjbudd77 67752c1ea2 Minor performance improvements to Qt Ram Search window. 2021-02-17 21:22:25 -05:00
zeromus 4c3d727ad0 fix for rare crash 2021-02-17 20:42:08 -05:00
mjbudd77 14b07ab5f2 Added a link to online documentation in the Qt GUI help menu. 2021-02-16 22:16:05 -05:00
mjbudd77 7e3086d92c Added more accelerators for Qt menu items. 2021-02-16 21:44:47 -05:00
mjbudd77 08df12db74 Bug fix for Qt GUI main menu permanently hi-jacking input focus when using menu accelerators. 2021-02-15 10:08:03 -05:00
mjbudd77 049f1017d4 For Qt GUI, fixed thread timing bug in rapid autofire pattern. Also, added hooks to make the autofire pattern number of on/off frames configurable. Minor indentation fixes in code. 2021-02-15 08:43:14 -05:00
mjbudd77 e8bd912830 For Qt GUI, added logic to gray out timing statistics when not enabled. Makes it more obvious for user to realize that the calculations are not active until the enable button is hit. 2021-02-14 15:08:41 -05:00
mjbudd77 0768579faa Palette file pathing fixes for Qt GUI. 2021-02-14 12:02:24 -05:00
mjbudd77 df315f8e9c Added QFileDialog urls for lua load window. 2021-02-14 11:16:39 -05:00
mjbudd77 769ab81027 Setup QFileDialog side urls for various windows. 2021-02-14 10:53:21 -05:00
mjbudd77 a5a0a5edee Added a function that returns the executable file path. Added this path to the list of urls to search for palette files. 2021-02-14 09:37:04 -05:00
mjbudd77 3556c1cbfc Added sidebar urls to Qt palette open file browser. 2021-02-14 07:10:34 -05:00
mjbudd77 bf00cb62ca Added logic to also look for $USERPROFILE env var on windows systems. 2021-02-14 06:35:25 -05:00
mjbudd77 15b983fc76 Added logic to make Qt GUI search for $HOMEPATH in the event that $HOME is not defined (for Windows). 2021-02-14 06:20:16 -05:00
mjbudd77 5d0c9b2225 Added button icons to the bottom row of the Qt iNES header editor. 2021-02-14 05:55:57 -05:00
mjbudd77 b98feca574 Added standard core about text into Qt About Fceux Window. 2021-02-14 05:27:36 -05:00
mjbudd77 c3473dbf4d Made one full pass over all Qt window menus and added accelerators where it makes sense. 2021-02-14 05:09:44 -05:00
mjbudd77 58c3081176 Added ALT+F accelerator for Qt main menu. 2021-02-13 20:16:51 -05:00
mjbudd77 bff4dd4d93 Removed scroll bars from Qt game pad window as its new layout makes it unnecessary. 2021-02-13 20:10:20 -05:00
mjbudd77 5abdc4a50e Added an game pad graphic on the Qt game pad config page with buttons that change color when pressed. 2021-02-13 16:36:59 -05:00
mjbudd77 1ced2f59b9 Added logic to Qt nametable viewer to not render tiles that are not in view. Also subbanded table rendering into separate frames to increase performance. 2021-02-12 21:07:24 -05:00
mjbudd77 04bd1ffcf6 Added a function to pre-calculate pixel locations for the nametable viewer in order to save computation time during Qt paint events. 2021-02-12 18:51:04 -05:00
mjbudd77 97990b671a Merge branch 'master' of github.com:TASVideos/fceux 2021-02-11 20:48:17 -05:00
mjbudd77 f80214da90 Added code to allow for setting of thread priorities in windows for Qt GUI. 2021-02-11 20:24:10 -05:00
mjbudd77 1a622b5f30 Bug fix for Qt GUI message log in windows. 2021-02-11 18:09:48 -05:00
g0me3 56adae5e6c fixed copypaste bug in cdlogger introduced in #310 merge
(cdl auto load were broken, an error occures while attempting to save changes to cdl window settings)
2021-02-10 20:09:27 +03:00
mjbudd77 97c8c591bd Added download links for packaged Win64 Qt/SDL application built on appveyor. 2021-02-09 23:04:40 -05:00
mjbudd77 a562da6db3 Merge remote-tracking branch 'mjbudd77/Qt_WinBuild' 2021-02-09 22:32:57 -05:00
mjbudd77 6b4c5c1c1b Added logic to look for the HOMEPATH env var if HOME is undefined. 2021-02-09 22:22:19 -05:00
mjbudd77 b8a5db5580 Build fix for Qt/SDL default input settings. Use SDLK_ macros directly to ensure there is not a conflict. 2021-02-10 03:07:41 -05:00
mjbudd77 43a9d7a411 Changed windows Qt/SDL appveyor job name so that it does not contain / char. 2021-02-09 21:03:57 -05:00
mjbudd77 ea8fbbf774 Removed unnecessary headers from nes_shm.cpp. 2021-02-09 20:30:47 -05:00
mjbudd77 deea77a30b Merge remote-tracking branch 'TasVideos/master' into Qt_WinBuild 2021-02-09 19:56:49 -05:00
mjbudd77 2a66f25c7a Upgraded MSVC platform toolset to use v142. Added __WIN_DRIVER__ preprocessor definition to project to ensure that it is set for all compiled files for original non-Qt based GUI. 2021-02-09 19:50:57 -05:00
mjbudd77 cef3fe10c2 Moved CHM into a doc folder inside Qt/SDL deployed zip file. 2021-02-09 00:10:44 -05:00
mjbudd77 fdba5abb39 First successful build of Windows Qt/SDL on appveyor. 2021-02-08 23:33:21 -05:00
mjbudd77 13f0f5d5e4 Added a script to build Qt windows fceux. 2021-02-08 21:37:50 -05:00
mjbudd77 70919c9458 Added a windows batch file version of the gitGenHdr script. 2021-02-08 20:51:24 -05:00
Oleg V. Polivets 766aa1e8fd
Fixes regarding RAM Search and RAM Watch dialogs. (#323)
* FIX: invalid size of watch region after adding it from RAM Search dialog.

* FIX: endianness of 2 byte value not same for same address in RAM Search and RAM Watch dialogs.

* FIX: RAM Watch dialog not suppot 4 byte values.
2021-02-08 19:28:20 -05:00
Oleg V. Polivets 23db1b35b0
Qt: GamePadConf change buttons sequentially. (#322) 2021-02-07 12:58:34 -05:00
mjbudd77 24863422ff Lua Qt Win build fixes. 2021-02-07 12:23:31 -05:00
mjbudd77 8d9e99fd18 Build fixes for linux from changes made for Qt windows compatibility. 2021-02-06 19:15:06 -05:00
mjbudd77 5edd659949 Re-added memset statement to ensure that Qt GUI memory is zeroed at
startup.
2021-02-06 13:41:16 -05:00
mjbudd77 fd9b269a90 Merge branch 'master' into Qt_WinBuild 2021-02-06 13:31:01 -05:00
mjbudd77 cf04b90ef1 Added logic to zero nes_shm for Qt gui 2021-02-06 13:23:23 -05:00
mjbudd77 35bb4be6f6 First successful build of Qt windows fceux. 2021-02-06 12:15:28 -05:00
mjbudd77 f2c898f4c3 Bug fix for Qt nametable viewer not always updating as it should. 2021-02-05 15:39:52 -05:00
mjbudd77 1307adc115 For Qt GUI, added a custom color picker for the palette editor that allows for colors to be dynamically tweaked while a game is actively running. 2021-02-03 21:40:18 -05:00
mjbudd77 31819d246d Added initial framework for Qt palette editor window. 2021-02-02 22:37:01 -05:00
mjbudd77 df83c790d9 Changed conditional direct include of openGL logic to be if QT_OPENGL_ES
is defined. This is more correct than checking system arch.
2021-02-02 07:08:31 -05:00
jnahmias ab4cde7dbb
add missing GL include needed on arm arch's (#316)
* add missing GL include needed on arm arch's

On other arch's, including amd64, this gets pulled in via QOpenGLWidget.
However, since it uses GL functions directly and GL.h doesn't get pulled in
automatically, this is necessary on arm.

* Add preprocessor arch checks for linux arm

Co-authored-by: mjbudd77 <44712797+mjbudd77@users.noreply.github.com>
2021-02-01 21:31:20 -05:00
mjbudd77 663e357553 Syntax style preference change on NULL pointer check 2021-02-01 20:15:18 -05:00
Oleg V. Polivets 45fc222467
fix: ppuViewer crashes the app when ROM is not opened (#319) 2021-02-01 20:09:51 -05:00
owomomo 30fcc91fdc
Customizing Hex Editor and Debugger Highlight Colors (#310)
* Configurable Hex Editor text colors.
* Add a customizable color for address title.
* 1. Add some more colors to Debugger highlight
2. Sorting all the colors out for future customization.
3. Re-arranged some includes.
* Make the debugger highlight color customizable.
* Move the button to the right and make the default window size wider.
* Adding color icons and hex values to the color menu items.
* 1. Enlarge the color icon a few pixels
* Debugger and Hex Editor shares the same custom color buffer.
This function finally completed. I believe there is no more details can be developed in recent period.
* 1. Add icon to color menu in another way to prevent the odd space between icons and text.
2. Free some malloc() resources when exit, though it would be somehow eventually recycled by system, but that's not a good rabbit.
3. GetROMName and GetROMPath has malloc() and called so many times in the code, it seems there's no any free() call for their returned char*, it's OK to make them directly return a std::string which is more comfortable for use.
* I forgot hDebug is still NULL in WM_INITDIALOG.
* 1. Rewrite debugger resizing logic, now all the controls on the dialog can stretch and shrink with the window size, when you enlarge the window, the controls on the right is also stretched to fit the height.
2. Moved Syntax highlight and Default window size button to the menu bar, in the past, if the window size is too small to show the default size button on the bottom right corner, it can't be pressed to restore the window, but now you can press it anytime.
* Changed ID of color menu to prevent conflict of some existing dialog controls.
* I don't know why restore default window size cannot be done before game loaded.
* 1. Fix Debugger default width with IDA font.
2. Fix Hex Editor single byte highlight in red.
2021-02-01 20:41:02 +03:00
jnahmias dfd84dc349
replace corrupted manpages with original versions (#318) 2021-02-01 05:44:39 -05:00
jnahmias 6286ba7505
honor standard build environment variables (#317)
allow PREFIX to be overridden
use CXX for compiling C++ code, overriddable
include CXXFLAGS & LDFLAGS when compiling linking
2021-02-01 05:44:10 -05:00
jnahmias ab0a683aef
fceux.desktop: use proper Exec field code (#315)
This allows proper opening of .nes files with the proper mime-type.
For details on how this works, see:
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables
2021-02-01 00:16:01 -05:00
jnahmias 6f45846975
fix spelling mistakes caught by lintian (#314) 2021-01-31 23:57:24 -05:00
mjbudd77 215f64eab3 For Qt GUI, fixed arrow key tile indexing bug with view mode is sprite 8x16. 2021-01-31 22:14:27 -05:00
mjbudd77 8161e3d80b Added logic to make focus policy configurable for Qt PPU viewer window. 2021-01-31 21:27:05 -05:00
mjbudd77 2940f1da66 Added ppu viewer selected tile movement via key board keys. Added selected tile indication to PPU viewer. 2021-01-31 21:09:21 -05:00
mjbudd77 e74dbeeb51 Added a menu bar to the Qt PPU viewer. Added logic to make the grid and tile selector color selectable. 2021-01-31 15:39:01 -05:00
mjbudd77 9c70a682b7 Added hot key to close hex editor window by pressing Esc key. Added logic to open ppu viewer from name table editor. 2021-01-31 14:07:50 -05:00
mjbudd77 1958daf6cb Added a context menu to the Qt nametable viewer. 2021-01-31 13:50:39 -05:00
mjbudd77 27e94f0fad Added a selected tile view to tile info frame on Qt nametable viewer. 2021-01-30 15:49:56 -05:00
mjbudd77 8bf49b193d For Qt GUI nametable viewer: added option to have click or hover tile focus policy. Fixed a few screen refresh issues when emulator is paused. Fixed a few sync issues between window state and indicated menu settings. 2021-01-30 14:16:31 -05:00
mjbudd77 ec9da639f5 For Qt GUI, added fractional refresh rate to nametable viewer menu. 2021-01-29 06:53:32 -05:00
mjbudd77 9b0ae8840b For Qt GUI, added logic to make nametable viewer tile select, tile grid,
and attribute grid colors configurable.
2021-01-29 06:13:50 -05:00
mjbudd77 aff634b0ed Changed Qt name table viewer layout to more like mesen. 2021-01-28 22:33:28 -05:00
mjbudd77 b5008d89bc For Qt GUI, added name table viewer selected tile box indication. Alse
added scroll and zoom functionality.
2021-01-27 21:36:15 -05:00
mjbudd77 acdbc979ed For Qt GUI, added a menu bar to the name table viewer window. Also added
a compact window view mode.
2021-01-25 22:25:27 -05:00
mjbudd77 a2e3c2705a Added grid lines option to Qt nametable viewer. 2021-01-25 21:13:46 -05:00
mjbudd77 909e3c0c20 Added grid lines to the PPU pattern table viewer for the Qt GUI. 2021-01-25 20:26:09 -05:00
mjbudd77 7ce62ebee3 Added logic to Qt GUI to save off window size and video scaling parameters at application exit so that they can be used at startup to restore window to same size it was previously. 2021-01-24 14:21:18 -05:00
mjbudd77 6cbcc9cc59 Added logic to save the video auto scaling config setting between restarts of Qt GUI. This addresses part of issue #311. 2021-01-24 12:30:42 -05:00
mjbudd77 6f4537733c Added a help menu to new Qt PPU pattern table tile editor. 2021-01-24 11:24:05 -05:00
mjbudd77 d3bc4fb752 Added a PPU pattern table tile editor to the Qt/SDL GUI. This editor allows the user
to graphically set the values of individual pixel cells in the pattern tables.
2021-01-23 19:17:09 -05:00
mjbudd77 c6752c4193 Added standard FCEU GPL2 license header to Qt cpp files that were
missing it.
2021-01-20 19:19:22 -05:00
tch69 788308fb05
Using /usr/bin/env bash instead of /bin/bash (#307)
/bin/bash" makes the script Linux-specific, so change it to "/usr/bin/env bash"
2021-01-17 14:51:21 -05:00
mjbudd77 c80e65ff79 Reverted unix build script back to bash instead of sh. This script has
bash specific syntax in it.
2021-01-16 14:54:47 -05:00
mjbudd77 1454238f1e
Added #if defined(__unix__) in the appropriate places to allow for the code to compile for FreeBSD 12.2 using the clang 10.0.1 compiler. (#305) 2021-01-16 14:40:28 -05:00
tch69 6d541c6d62
rename /bin/bash to /bin/sh to scripts in 'scripts folder (#302)
* Update genGitHdr.sh

* Update linux_makeIcons.sh

* Update unix_debug_build.sh
2021-01-13 18:30:20 -05:00
Brad Smith 356cae005d
add 2.2.3 source to old versions on download page 2021-01-13 17:14:24 -05:00
owomomo 0e0d75cea8
Fix Issue #89, Hex Editor features etc (#295)
* 1. Fix a bug that VS System, Extend System and Input Device Combobox don't change any value of the header.
2. Add hex preview to iNES Header Editor.

* Detail bug fix.

* Header Editor Hotfix

* ...

* ...

* Trying to fix Issue #89.

* Add array symbolic debug naming feature to Hex Editor.

* Separate the focus of Hex Editor cursor in different color, and Tab key to switch between them.

* 1. Shift+ArrowKeys to select a range of bytes (Shift+Home/End/PageUp/PageDown currently not supported)
2. Tab to switch between Hex and Text column, and use different color to make it clearer.
3. Sorted out some codes of Hex Editor, they are somehow crowded mess with ambiguous.
4. Detail.

* ...

* I hope there's no more bugs digging out...

* Fix calc bug of GetScreenCoordy(int offset).

* Some document says ExtTextOut is a bit faster than TextOut.

* Ctrl, Shift with arrow keys

* ...

* ...

* ...
2021-01-13 13:32:11 +03:00
zeromus 8ab8db5809 i dont see why ram watches have to be "valid hardware addresses"
it should show exactly whatever hex editor does.
it's probably old and out of date.
2021-01-11 00:03:08 -05:00
mjbudd77 5edf503041 Updated MacOS specific installation and build information on web page. 2021-01-10 23:14:50 -05:00
mjbudd77 de669bf73a Updated non-functional netplay statement on downloads web page. Netplay is currenly not functional. 2021-01-10 20:13:04 -05:00
mjbudd77 f4183a6495
Fixed net server C++11 warning: dynamic exception specifications are deprecated in C++11, which results in a compiler error when using C++17 standard. (#300) 2021-01-09 21:18:49 -05:00
mjbudd77 8e6e40848d
VS Code integration (#298)
* Integrated VS Code IDE into project. A very useful tool for debugging Qt/SDL port.

* Fixed Qt/SDL debug launch target in vscode config for MacOS
2021-01-08 15:14:23 -05:00
mjbudd77 314e3d90a1
Removed unused deprecated automake build files. (#297) 2021-01-06 21:21:35 -05:00
mjbudd77 427daa3543
Added logic to Qt GUI to allow for the main menu bar to be hidden. (#296) 2021-01-05 21:50:37 -05:00
mjbudd77 6d8cd5f64b Updated the web page binary and source download links to point to new 2.3.0 release files. 2021-01-02 21:29:58 -05:00
mjbudd77 3714351f3d Fixed typo on web home page. 2021-01-02 20:49:21 -05:00
zeromus 06c71a418b update homepage to indicate 2.3.0 release 2021-01-02 19:15:53 -05:00
owomomo 65c5b0d2a1
Header editor (#294)
* 1. Fix a bug that VS System, Extend System and Input Device Combobox don't change any value of the header.
2. Add hex preview to iNES Header Editor.

* Detail bug fix.
2021-01-01 17:44:49 +03:00
Dan Weiss 5f1263aef3
Fix Load State for Mapper 19, should not call `SyncMirror` after calling `FixNTAR` (#293) 2020-12-31 16:49:09 +03:00
Dan Weiss b66bcfb3e2
Fix SFMDATA getting a terminator that it shouldn't get if NULL pointer is given (#290) 2020-12-31 16:48:54 +03:00
zeromus 61709a0e6d somehow /mp wasnt set on the vcxproj 2020-12-30 20:36:59 -05:00
mjbudd77 6724062581 Fixed NULL check for SPostSave function pointer. Initialized SPreSave and SPostSave pointers to NULL to ensure their initial state is consistent. Also, init FCEU_state_loading_old_format to false as it is always better to have an initial state defined than none at all. 2020-12-30 15:20:34 -05:00
mjbudd77 fde7bfab9f
NL file parsing fix for Qt Gui to properly load array variable entries. (#288)
* Ported over recent fix to PalettePoke function from windows to Qt.

* NL file parsing fix for Qt Gui to properly load array variable entries.
2020-12-29 17:24:38 -05:00
mjbudd77 8d1082b290
Ported over recent fix to PalettePoke function from windows to Qt. (#287) 2020-12-28 17:07:25 -05:00
g0me3 8ae1807957 attpet to fix #282 2020-12-28 22:36:33 +03:00
g0me3 1b0edf183d Merge branch 'master' of https://github.com/TASVideos/fceux 2020-12-28 22:20:02 +03:00
g0me3 ffd322424e fix for #285 2020-12-28 22:19:46 +03:00
CaH4e3 358a53eb18
Merge pull request #286 from owomomo/bugfix
Fix Issue #283
2020-12-28 21:32:14 +03:00
owomomo f173e11152 1. Fix "Restore Window Size" restores to a wrong size when screen dpi is not 96.
2. Fix Issue #283, currently no break or crash have been found...
3. Detail.
2020-12-28 23:23:55 +08:00
owomomo 3093ddfa71
Merge pull request #29 from TASVideos/master
Sync code to the newest
2020-12-24 20:06:58 +08:00
owomomo 159bc33dbc Sync code to the newest. 2020-12-24 20:05:42 +08:00
CaH4e3 1b01d03f96
Merge pull request #279 from bbbradsmith/chr1k_safety
minimum CHRRAMSize allocation for safety < 1k
2020-12-23 22:42:58 +03:00
bbbradsmith 6b5fae2e7d minimum CHRRAMSize allocation for safety < 1k 2020-12-23 14:39:47 -05:00
feos b63b327d42 recreate help files 2020-12-23 21:05:36 +03:00
g0me3 9fc4c98f04 MemViewUpdate cleanup, readability, removed redundant code and stuff. better to see in profiler now the real bottleneck for highlighted coloring being too slow
(TextOutA with not highlight - 32000 calls, 3200000 calls with highlightings+fading)
2020-12-23 18:46:06 +03:00
CaH4e3 a9b59c8b9a
Merge pull request #278 from bbbradsmith/doc_update
Doc update re: #274
2020-12-23 14:00:17 +03:00
bbbradsmith 6a608a4cfe Document 2C03/2C04 RGB palettes 2020-12-22 20:49:21 -05:00
bbbradsmith 8bfa36e8bc update 2.3.0 changelog with everything I worked on that wasn't mentioned 2020-12-22 20:40:37 -05:00
bbbradsmith f272ca5650 Palette.html was missing notes about new 512 entry format: https://sourceforge.net/p/fceultra/code/3161/ 2020-12-22 20:26:17 -05:00
mjbudd77 13c18d6f42
Merge pull request #276 from mjbudd77/master
Added Qt/SDL Debug Tools Image to web page home.
2020-12-22 14:19:19 -05:00
mjbudd77 81ae8b2daa Added Qt/SDL Debug Tools Image to web page home. 2020-12-22 13:39:02 -05:00
owomomo dcb086e570
Update Help Document and Minor bug fix (#275)
1. Update help document for new features.
2. Fixed "FamicomDiskSytem" typo in hnd file.
3. Fixed a bug of RAM Watch.
2020-12-22 21:05:31 +03:00
owomomo 16e7619634 1. Update help document for new features.
2. Fixed "FamicomDiskSytem" typo in hnd file.
3. Fixed a bug of RAM Watch.
2020-12-23 00:41:27 +08:00
owomomo 16493b6dc8
Merge pull request #28 from TASVideos/master
Sync code to the newest
2020-12-22 18:21:55 +08:00
owomomo a142e656da Sync code to the newest 2020-12-22 18:20:03 +08:00
owomomo beb9ba9883 Detail bug fix. 2020-12-22 17:47:31 +08:00
feos d0df933b76 help:
- fix page name for 2.3.0 whatsnew
- generate chm and html files
2020-12-21 22:57:17 +03:00
feos a4b655e649 help:
- resurrected help updates that were done on (autogenerated) html files directly and manually, and got wiped away after proper regeneration
- documented some stuff that I implemented since last release
- fixed FDS page that became a folder in 2.2.2, and fixed the "Sytem" typo
2020-12-21 22:48:42 +03:00
owomomo 4ad03e4cb1
New features in Symbolic Name Debugging (#268)
* New Symbolic Debug Naming dialog:
1. Multiline comments can be directly edited in the dialog.
2. You can add an array of comments to the addresses.
3. More convinient features of symbolic debug naming.
* Update the help document with the new feature of symbolic naming in Debugger.
2020-12-21 19:04:05 +03:00
Alexey 'Cluster' Avdyukhin 6aebbcbb9b FDS fix (SubLoad() returns 0 on success now) 2020-12-21 09:44:41 +03:00
owomomo 0fdc75471b Update the help document with the new feature of symbolic naming in Debugger. 2020-12-21 14:25:25 +08:00
mjbudd77 1709fb7990
Merge pull request #272 from mjbudd77/master
Added fceux name and version information to the main window title bar…
2020-12-21 00:23:10 -05:00
owomomo 1265ed8a7b
Merge pull request #27 from TASVideos/master
Sync code to the newest
2020-12-21 13:21:29 +08:00
mjbudd77 e64aac93ee Added fceux name and version information to the main window title bar for the Qt/SDL port. 2020-12-20 23:39:25 -05:00
mjbudd77 d0fc2f89a9
Merge pull request #271 from mjbudd77/master
New Symbolic Debug Feature Update for Qt/SDL Port
2020-12-20 23:37:56 -05:00
mjbudd77 8073210cc7 Minor array ndexing bug fix for Qt/SDL port symbolic debug array edit feature 2020-12-20 23:10:17 -05:00
mjbudd77 4d4e6b282a Merge branch 'master' of https://github.com/TASVideos/fceux into development 2020-12-20 22:27:27 -05:00
mjbudd77 9f6463c0b8 Updates Qt trace logger with new debug symbol window. 2020-12-20 22:14:47 -05:00
owomomo 2b5a8a5614
Merge pull request #26 from TASVideos/master
Sync code to the newest
2020-12-21 10:47:38 +08:00
mjbudd77 8ccf6fe37f Added new array indexing symbolic debug feature logic to Qt/SDL debugger and hex editor. 2020-12-20 21:46:25 -05:00
Alexey 'Cluster' Avdyukhin ddf3fb631e Refactored loader code for better error messages 2020-12-21 02:19:48 +03:00
Alexey 'Cluster' Avdyukhin ed4d1a7217 Minor refactoring, unreachable code removed 2020-12-21 00:36:08 +03:00
owomomo fbfe851994 Detail. 2020-12-21 01:20:23 +08:00
Alexey 'Cluster' Avdyukhin 395af9d283 Issue #264 fix (mapper 256 support) 2020-12-20 19:40:36 +03:00
Alexey 'Cluster' Avdyukhin 33d7d517db Updated and recompiled help files 2020-12-20 18:54:48 +03:00
owomomo cd0486ff9f Detail. 2020-12-20 23:12:09 +08:00
owomomo d42ef61fc5
Merge branch 'master' into master 2020-12-20 19:08:31 +08:00
owomomo 67e64410a8 New Symbolic Debug Naming dialog:
1. Multiline comments can be directly edited in the dialog.
2. You can add an array of comments to the addresses.
3. More convinient features of symbolic debug naming.
2020-12-20 18:48:35 +08:00
owomomo 6e0a5a391b
Fix Issue #88 (#266)
* Trying to fix Issue #88.
* Fix a grammar mistake.
* Add single comment without name with symbol naming dialog.
2020-12-19 12:31:30 +03:00
owomomo 022909e9ac
HOTFIX 2020-12-19 16:26:52 +08:00
owomomo 0197920068 HOTFIX 2020-12-19 14:49:51 +08:00
owomomo a673805f42 Add single comment without name with symbol naming dialog. 2020-12-19 14:42:29 +08:00
owomomo 4828b29338 1. Trying to fix Issue #88.
2. Fix a grammar mistake.
2020-12-19 13:31:00 +08:00
owomomo ead6ff6dc5
Merge pull request #25 from TASVideos/master
Sync code to the newest
2020-12-19 11:35:18 +08:00
zeromus b01728f620 make scm script use lightweight tags 2020-12-18 19:59:09 -05:00
zeromus f08b853f19 update aboutbox a bit 2020-12-18 19:42:40 -05:00
mjbudd77 aae05ff0bf Added a wildcard pattern to force jekyll to include _*.js and _*.json files. 2020-12-16 23:02:51 -05:00
mjbudd77 a3e852df0c Try #4 2020-12-16 22:19:36 -05:00
mjbudd77 68d5b723b5 Try #3 for web page. 2020-12-16 21:59:16 -05:00
mjbudd77 022b36b6ea Try #2 for getting _ files to be included by jeykll 2020-12-16 21:55:36 -05:00
mjbudd77 2b0d966b44 Force inclusion of web files that start with an '_' 2020-12-16 21:38:04 -05:00
mjbudd77 b9f6f82e44
Merge pull request #263 from mjbudd77/master
Updated Help Source Files and Regenerated HTML and CHM with HelpNDoc 7.0.0.199
2020-12-16 20:54:41 -05:00
mjbudd77 a2e4b6bdaf Added notes to help doc readme file that mention that the fceux.hnd and taseditor.hnd files have been updated to the HelpNDoc 7.0.0.119 format. 2020-12-16 20:26:42 -05:00
Matt Budd ba969eb469 Updated taseditor.hnd file. Helpndoc 7.0.0.119 2020-12-16 20:13:49 -05:00
Matt Budd 14cf17b91f Updated taseditor.hnd file to helpndoc 7.0.0.199 format. Rebuilt html
pages and chm files.
2020-12-16 20:12:15 -05:00
Matt Budd fa325bc97a Rebuilt fceux help chm file. 2020-12-16 19:46:35 -05:00
Matt Budd 2a382567a7 Added missing newly generated html related files. 2020-12-16 19:36:18 -05:00
Matt Budd f852fd2799 Regeneration of help files using helpndoc 7.0.0.199 2020-12-16 06:41:37 -05:00
mjbudd77 ba74582b03
Merge pull request #262 from mjbudd77/master
Fix for WhatsNew230 Table of Contents reference
2020-12-14 22:45:43 -05:00
mjbudd77 39094c0194 Fix for WhatsNew230 Table of Contents reference 2020-12-14 22:14:01 -05:00
mjbudd77 2f253607c1
Merge pull request #261 from mjbudd77/master
Started a What's New web page for upcoming release 2.3.0.
2020-12-14 22:00:45 -05:00
mjbudd77 b861bc1c5f Started a Whats New web page for upcoming release 2.3.0. 2020-12-14 21:20:32 -05:00
mjbudd77 f333a62d66
Merge pull request #260 from mjbudd77/master
Added menu and button icons to Qt GUI.
2020-12-13 22:51:34 -05:00
mjbudd77 2e4fae6de6 Added more button and menu icons to Qt GUI. 2020-12-13 21:45:39 -05:00
mjbudd77 6f78a086d2 Added more button icons to Qt gui game pad and palette config windows. 2020-12-13 17:48:51 -05:00
mjbudd77 380fc72917 Added a few more menu icons to Qt gui. 2020-12-13 15:24:48 -05:00
mjbudd77 58624be83b Added a few more icons to Qt GUI menu. 2020-12-13 15:02:23 -05:00
mjbudd77 af8c63fcc2 Added a few standard icons to menu entries and buttons in Qt GUI. 2020-12-13 14:51:04 -05:00
mjbudd77 a5bb52949c
Merge pull request #259 from mjbudd77/master
Added logic and necessary functions to SDL port for new Lua emu.exit(…
2020-12-12 07:46:28 -05:00
mjbudd77 35720a78ce Added logic and necessary functions to SDL port for new Lua emu.exit() function. 2020-12-12 06:59:07 -05:00
Alexey 'Cluster' Avdyukhin 3bab27ff76 Added emu.exit() function to Lua, added description to fceux.chm about it 2020-12-12 13:38:11 +03:00
mjbudd77 c1bc9a7ea8
Merge pull request #258 from mjbudd77/master
Removed unused/non-functional automake related files. SDL project onl…
2020-12-11 22:35:12 -05:00
mjbudd77 2c80f32bfd Removed unused/non-functional automake related files. SDL project only uses cmake from now on. 2020-12-11 21:53:46 -05:00
mjbudd77 8f71dee57e
Merge pull request #257 from mjbudd77/master
Version Numeric Code Bugfix/Update
2020-12-11 16:53:26 -05:00
mjbudd77 7c13a85056 Updated readme.md in preparation for new release. 2020-12-11 16:08:00 -05:00
mjbudd77 108b817c70 Bug fix for numeric version code. Set correctly for upcoming new release 2.3.0 2020-12-11 16:05:00 -05:00
mjbudd77 6cec8b33da
Merge pull request #256 from mjbudd77/master
Qt/SDL Release Preparation
2020-12-10 23:06:14 -05:00
mjbudd77 3020099c29 Removed deleted files from exclude list. 2020-12-10 21:58:17 -05:00
mjbudd77 9e781da116 Removed unused/deprecated scons and automake build files from project. SDL uses cmake now and its never going back. 2020-12-10 21:55:38 -05:00
mjbudd77 fb965bbee0 Updated source and build script version references in preparation for new release. Updated SDL web documentation. Removed a few deprecated command line arguments from code and help text. Removed last few references to GTK in Qt GUI. 2020-12-10 21:43:50 -05:00
mjbudd77 f113f8b60d
Merge pull request #255 from mjbudd77/master
Updated SDL information on Downloads web page.
2020-12-09 23:48:19 -05:00
mjbudd77 e7ba648d3b Updated SDL information on Downloads web page. 2020-12-09 23:11:41 -05:00
mjbudd77 650d9eb472
Merge pull request #254 from mjbudd77/master
For Qt/SDL port, added logic to always attempt to resolve the absolute path to the ROM…
2020-12-09 23:05:17 -05:00
Matthew Budd 03390b4d89 Added logic to always attempt to resolve the absolute path to the ROM file when loading a new game. 2020-12-09 21:48:17 -05:00
mjbudd77 1d33f9ad4a
Merge pull request #253 from mjbudd77/master
Added context menu to trace logger viewport. Through this menu, debug…
2020-12-09 05:40:57 -05:00
Matthew Budd 9e6c963733 Removed debug print statements from Qt debugger 2020-12-08 22:14:54 -05:00
Matthew Budd 90f122ef82 Added context menu to trace logger viewport. Through this menu, debug symbols and breakpoints can be set for the selected hex address in the viewport. 2020-12-08 21:46:21 -05:00
mjbudd77 58a8dbd695
Merge pull request #252 from mjbudd77/master
Qt GUI Fixes/Improvements for Debugger/Trace Logger
2020-12-07 23:07:37 -05:00
Matthew Budd accc476623 Cleaned up a couple cppcheck warnings in Qt GUI. 2020-12-07 22:34:05 -05:00
Matthew Budd fbf8fe6eb5 Added logic to allow for copy/paste of trace logger viewport to/from clipboard. 2020-12-07 22:04:36 -05:00
Matthew Budd 561f258770 Qt debugger breakpoint highlight bug fixes. 2020-12-07 20:12:34 -05:00
mjbudd77 41934ce849
Merge pull request #251 from mjbudd77/master
Added a frame timing statistics window to the Qt tools. Allows user t…
2020-11-30 23:17:39 -05:00
mjbudd77 afaea86abd Added a frame timing statistics window to the Qt tools. Allows user to enable frame timing statistical calculations and view the output on a window in realtime. Is used to verify emulator is getting the proper clock interrupts from the OS and thus check that emulation timing is deterministic. 2020-11-30 22:29:51 -05:00
mjbudd77 e86c001c2a
Merge pull request #250 from mjbudd77/master
Added message log viewer window to Qt GUI.
2020-11-29 20:53:04 -05:00
Matthew Budd 4f08d7a8cc Added message log viewer window to the Qt GUI. 2020-11-29 20:11:28 -05:00
mjbudd77 c7903e2129
Merge pull request #249 from mjbudd77/master
Bug fix for cmake pkg-config search for lua 5.1 package. Ubuntu packa…
2020-11-29 00:08:07 -05:00
Matthew Budd 3ae463d1f2 Bug fix for Qt GUI crashing when to load a non-existant ROM via the command line. 2020-11-29 00:04:20 -05:00
Matthew Budd ca005b498b Bug fix for cmake pkg-config search for lua 5.1 package. Ubuntu packages this as lua5.1 and Fedora names it lua-5.1. Changed cmake file to use pkg_search_module to search for both package names and use the first one it finds. 2020-11-28 23:28:35 -05:00
mjbudd77 f53fbf3de2
Merge pull request #248 from mjbudd77/master
Build fix for __THROWNL not being defined on libc that is used by Alp…
2020-11-28 23:20:26 -05:00
mjbudd77 3ccbc61aa1
Merge pull request #247 from mjbudd77/master
Frame Timing and Thread Scheduling Enhancements for Qt GUI
2020-11-28 22:40:37 -05:00
Matthew Budd 4decd24bcd Build fix for __THROWNL not being defined on libc that is used by Alpine Linux 2020-11-28 22:38:57 -05:00
Matthew Budd d13c151817 Default Qt GUI Timing statistics calcutions to off. TODO make timing stats enable via GUI. 2020-11-28 22:05:39 -05:00
Matthew Budd 35e0bc441f Removed debug print statement. 2020-11-28 21:55:55 -05:00
Matthew Budd 4812c804fd Added timing options selection combo box to timing window on Qt GUI. 2020-11-28 21:46:41 -05:00
Matthew Budd f198996cd4 Added logic to auto set process scheduling priorities at startup. 2020-11-28 21:03:26 -05:00
Matthew Budd 961aa83a51 Bug fixes for Qt timing priority configs. 2020-11-28 20:43:34 -05:00
Matthew Budd 18e9dc1a9e Added logic to check whether the user has the permissions necessary to increase the priority (nice) of the process. If not, disable the slider on the Qt timing window. 2020-11-28 15:40:27 -05:00
Matthew Budd e67b17795c Added scheduler config parameters to Qt GUI. 2020-11-28 00:28:28 -05:00
mjbudd77 ab31c760d5 Build fix for mac os 2020-11-27 23:48:57 -05:00
Matthew Budd d5d6b32787 Added GUI scheduling parameters to Qt timing config window 2020-11-27 23:42:32 -05:00
Matthew Budd e154b38327 Qt Timing config window bug fixes for cases when OS does not have proper permissions. 2020-11-27 23:04:41 -05:00
Matthew Budd 6b8e4f883b Initial add of timing configuration window to Qt GUI. 2020-11-27 22:18:04 -05:00
Matthew Budd 8d0de7793a Merge branch 'development' of https://github.com/mjbudd77/fceux into development 2020-11-27 19:56:31 -05:00
mjbudd77 a7b031ee81 Qt GUI thread priority functionality added for mac os 2020-11-27 19:53:14 -05:00
Matthew Budd 3982d1b897 CAdded 2020-11-27 14:23:17 -05:00
Matthew Budd 2b05c7169d Initial add of logic to allow for high priority threads in Qt GUI. Modified speed throttle logic to have more accurate frame timing. 2020-11-26 23:44:59 -05:00
mjbudd77 521846cf97
Merge pull request #245 from mjbudd77/master
For Qt GUI, added an input config window
2020-11-25 06:50:12 -05:00
Matthew Budd 16af95771d Build fix for linux appveyor pipeline. Ensure OS package updates are pulled in from server before attempting to pull dependencies. 2020-11-24 20:32:41 -05:00
Matthew Budd 14766432ae Added periodic checking logic to ensure that gamepad 4 score checkboxes on input and gamepad config windows stay synchronized. 2020-11-24 19:46:22 -05:00
Matthew Budd c9d0eddec6 For Qt GUI, added a checkbox to allow for auto load/save of input presets on ROM open/close. 2020-11-24 16:22:09 -05:00
Matthew Budd fa18154ac3 Added a low rate periodic update function to Qt input window to ensure that it stays synchronized with the state of the emulator input settings. 2020-11-24 07:01:34 -05:00
Matthew Budd c4a066c25c Qt Input config window further code hardening. 2020-11-24 06:25:12 -05:00
Matthew Budd 85cee7fd4a Added load/save input preset file logic for Qt GUI. 2020-11-23 22:16:52 -05:00
Matthew Budd f541822557 Qt input preset configs in work. 2020-11-23 16:22:01 -05:00
Matthew Budd adce35cc58 Added input preset configuration scheme for Qt GUI. 2020-11-23 16:09:11 -05:00
Matthew Budd 396029743a Added input device selection/configuration window for Qt GUI. Still TODO, button config windows for non-gamepad devices. 2020-11-23 13:50:26 -05:00
mjbudd77 e21ab72f7d
Merge pull request #244 from mjbudd77/master
Corrections for zapper emulation via mouse using Qt GUI.
2020-11-21 15:04:17 -05:00
Matthew Budd 30b3a92c38 Corrections for zapper emulation via mouse using Qt GUI. 2020-11-21 14:15:36 -05:00
mjbudd77 2b4dc79eb2
Merge pull request #242 from mjbudd77/master
Added ROM edit undo history functionality to Qt hex editor
2020-11-19 21:15:28 -05:00
Matthew Budd 6ac1d9e171 Removed a comment that is no longer valid. 2020-11-19 20:43:25 -05:00
Matthew Budd b1c0f7aaba Added ROM edit undo functionality to Qt hex editor. 2020-11-19 20:35:44 -05:00
mjbudd77 3f5d479f44
Merge pull request #240 from mjbudd77/master
Added edit copy, paste, and find functions to Qt Hex Editor
2020-11-17 00:27:40 -05:00
mjbudd77 5cbfb8b1a5 Added a text highlight clear function and now clear when hex editor view mode changes. 2020-11-17 00:06:10 -05:00
mjbudd77 5cce2db826 Updated TODO-SDL file. 2020-11-16 23:50:40 -05:00
mjbudd77 7127b858e1 Added find pattern functionality to Qt hex editor. 2020-11-16 23:35:33 -05:00
mjbudd77 4968e50202 Added copy/paste functionality for Qt hex editor. 2020-11-16 21:26:53 -05:00
mjbudd77 9d12336903
Merge pull request #239 from mjbudd77/master
Qt Debugger Window Enhancements
2020-11-15 19:32:45 -05:00
Matthew Budd 5e35c181c8 Qt debugger slight change in main menu entry 'Run to Cursor' is now 'Run to Selected Line'. Run to Cursor option is still present in assembly viewer context menu. 2020-11-15 18:55:03 -05:00
Matthew Budd 386f943140 For Qt debugger, added a run to cursor menu shortcut key. 2020-11-15 14:47:57 -05:00
Matthew Budd 8629e19273 Added PC line placement options for Qt debugger assembly viewer. Old behavior was to always to display program counter line at the top of the viewer when a breakpoint is hit. Now that behavior is selectable to be top, upper-mid, center, lower-mid, bottom, or custom line offset. 2020-11-15 14:30:38 -05:00
Matthew Budd d3b779a4e3 Added a run to cursor debugger feature to Qt debugger window assembly view context menu. 2020-11-15 11:57:43 -05:00
mjbudd77 bb1879b5e7
Merge pull request #238 from mjbudd77/master
Misc Qt Debugger Assembly View Improvements
2020-11-14 16:04:40 -05:00
Matthew Budd 13ea28dad4 Added window menu to Qt debugger and shortcuts for debug execution control buttons. 2020-11-14 14:56:57 -05:00
Matthew Budd 0d6f5e567e Minor changes to Qt debugger window to allow for it to be more compact. 2020-11-14 14:35:11 -05:00
Matthew Budd e36f53609e Added logic to clear QClipboard contents at program exit. This will prevent a momentary terminal X11 hang and following error message "QClipboard: Unable to receive an event from the clipboard manager in a reasonable time" 2020-11-14 14:01:23 -05:00
Matthew Budd 2ce2e5a8a3 Fixed wheel event scroll direction for custom QWidgets 2020-11-14 13:42:43 -05:00
mjbudd77 4f11fc5a7a
Merge pull request #237 from mjbudd77/master
For Qt, added mouse wheel scrolling logic to all custom QWidgets (Debugger Assembly Viewer, Trace Log Viewer, Hex Editor, and RAM Search Viewer)
2020-11-14 09:55:21 -05:00
Matthew Budd c5cdd77fb1 For Qt, added mouse wheel scrolling logic to all custom QWidgets (Debugger Assembly Viewer, Trace Log Viewer, Hex Editor, and RAM Search Viewer) 2020-11-14 09:24:10 -05:00
Matthew Budd 43f87541b6 Added mouse wheel scrolling capability for Qt debugger ASM viewer. 2020-11-13 13:31:04 -05:00
mjbudd77 2532eca30b
Merge pull request #236 from mjbudd77/master
Qt Debugger Window Copy/Paste Functionality Added. Misc debugger bugfixes for Mac OSX.
2020-11-13 13:16:12 -05:00
Matthew Budd bfa70c1f25 Bug fix for Qt debugger attempting to save symbol/bookmarks at window close with no game loaded. 2020-11-13 11:47:55 -05:00
Matthew Budd 836127afd0 Changed Qt debugger ASM viewer to render text a single character at a time to have better control of horizontal char advance. Mac OS seems to not always draw characters with the same spacing if not done this way. 2020-11-13 11:27:55 -05:00
mjbudd77 58a1d76e2c Changed shared memory allocation to a standard malloc to prevent crash
on systems that do not allow large shm sizes.
2020-11-13 11:17:35 -05:00
Matthew Budd 7dab1976f6 Added text copy/paste functionality via Qt clipboard to Qt debugger ASM viewer. 2020-11-13 10:44:09 -05:00
mjbudd77 93bfc01b34
Merge pull request #235 from mjbudd77/master
Added logic to allow for symbol names to be clicked in Qt debugger AS…
2020-11-12 21:16:26 -05:00
Matthew Budd 242620b782 Added logic to allow for symbol names to be clicked in Qt debugger ASM viewer. 2020-11-12 20:48:52 -05:00
mjbudd77 e3e30997ff
Merge pull request #234 from mjbudd77/master
Bug fix for Qt Code Data Logger auto resume function.
2020-11-11 21:45:40 -05:00
Matthew Budd c8f0649223 Bug fix for Qt Code Data Logger auto resume function. 2020-11-11 21:25:53 -05:00
mjbudd77 d1acb8864e
Merge pull request #233 from mjbudd77/master
Added video special scalers to Qt GUI. SDL build fix for newly added mapper.
2020-11-11 21:09:09 -05:00
Matthew Budd 3ca86a1748 Added new mapper to cmakelist for SDL build. 2020-11-11 20:19:56 -05:00
Matthew Budd b3b46adcd5 Merge branch 'master' of https://github.com/TASVideos/fceux into development 2020-11-11 20:17:53 -05:00
Matthew Budd 4c94acf68a Added video special scaler functionality to Qt GUI. 2020-11-11 20:14:00 -05:00
g0me3 452fdfa5a3 new UNIF mappers for chinese dumps 2020-11-11 19:18:31 +03:00
mjbudd77 21b209c2d6
Merge pull request #232 from mjbudd77/master
Qt Symbolic Debug Improvements and Hex Editor RAM Freeze Feature
2020-11-10 22:41:02 -05:00
Matthew Budd 0b5c73bd23 Removed inline from cheat functions to allow them to properly link in Qt/SDL executable. 2020-11-10 21:57:58 -05:00
Matthew Budd d60a00caeb Further improvements to Qt symbolic debugging. 2020-11-10 21:52:38 -05:00
Matthew Budd 90911ff17e Added RAM freeze feature to Qt hex editor. 2020-11-10 20:19:49 -05:00
mjbudd77 d2f543b094
Merge pull request #231 from mjbudd77/master
Qt Debugger Assembly View Selected Address Logic Update
2020-11-09 21:23:58 -05:00
Matthew Budd 889f74b5c8 Added Qt debugger assembly context menu shortcut key functionality. 2020-11-09 20:14:16 -05:00
Matthew Budd 3023ab7d50 Changed Qt debugger asssembly window address selection logic to allow for any valid hex address on the display to be selected. Previously was only allowing the instruction address at the beginning of the line to be selected. 2020-11-09 20:02:06 -05:00
mjbudd77 8c0edf2eb4
Merge pull request #230 from mjbudd77/master
Qt GUI Hot Key Modifier Logic Update, Minor Debugger Updates
2020-11-08 23:47:10 -05:00
Matthew Budd 49ab65bcc9 Changed debugger breakpoint/symbol add/edit windows to have the OK button as the default widget that is activated when the enter key is pressed. 2020-11-08 23:20:18 -05:00
Matthew Budd 92ccbd8a49 Changed Qt GUI hot key logic to allow for hot key bindings to include the use of modifier keys (Shift,Alt,Ctrl) to form key sequences instead of just being limited to single key bindings. 2020-11-08 22:57:28 -05:00
mjbudd77 08efa35e21
Merge pull request #229 from mjbudd77/master
Added logic to Qt GUI to allow for frame advance usage when at a debu…
2020-11-08 22:50:56 -05:00
Matthew Budd 2fa810d1ad Added logic to Qt GUI to allow for frame advance usage when at a debugger breakpoint. 2020-11-08 19:52:15 -05:00
mjbudd77 53a5213e45
Merge pull request #228 from mjbudd77/master
Added Game Genie encode/decode window to Qt GUI.
2020-11-08 16:20:32 -05:00
Matthew Budd 8adcc1a699 Added Game Genie encode/decode window to Qt GUI. 2020-11-08 15:42:48 -05:00
mjbudd77 b7d5e0b0f1
Merge pull request #227 from mjbudd77/master
Added Movie Play Window to Qt GUI, Misc Style Improvements and Options
2020-11-07 15:53:11 -05:00
Matthew Budd 3c2c039f3a Added custom style sheet usage comment to command line help for Qt GUI. 2020-11-07 15:06:07 -05:00
Matthew Budd e38793f352 Added Qt style command line options to help printout. 2020-11-07 14:44:07 -05:00
Matthew Budd f4da749a44 Added logic to Qt trace logger and ram search to change fore/background color scheme based on style theme. 2020-11-07 14:19:22 -05:00
Matthew Budd e42232777e Successful integration of Qt movie play window. 2020-11-07 13:32:40 -05:00
Matthew Budd 018204089a Qt Movie play window updates. 2020-11-07 00:08:51 -05:00
Matthew Budd 412ca246c7 Successful loading of a movie from the movie play window. Styling update for debugger window for dark themes. 2020-11-06 23:45:39 -05:00
Matthew Budd bbb878c20d Qt Movie Play dialog window in work. 2020-11-05 07:03:32 -05:00
Matthew Budd 4314ccbfc3 Movie play window for Qt GUI in work. 2020-11-05 06:49:50 -05:00
mjbudd77 0075e42ecb
Merge pull request #226 from mjbudd77/master
For Qt GUI, added movie options dialog window. iNES Header Save Bug Fix
2020-11-05 06:48:44 -05:00
Matthew Budd 9bc07b8c2c Ported over another missing fix to the Qt iNES header editor from the windows version. 2020-11-05 06:02:30 -05:00
Matthew Budd fe5953a205 Added movie load full save state checkbox comment to Qt GUI. 2020-11-05 05:57:30 -05:00
Matthew Budd fc1ce9da85 Build fix for GTK GUI, re-declaration of an external symbol of a different type is a dangerous thing. 2020-11-05 05:45:18 -05:00
Matthew Budd d8d696e1a1 Added movie options dialog window to Qt GUI. 2020-11-05 05:24:21 -05:00
Matthew Budd feff0f79c3 Added a config parameter to Qt GUI to store movie directory path. 2020-11-04 06:39:16 -05:00
mjbudd77 f2ce08d4b8
Merge pull request #225 from mjbudd77/master
Ported over recent iNES header editor mapper decoding fix from window…
2020-11-03 18:33:02 -05:00
Matthew Budd 6672e53098 Ported over recent iNES header editor mapper decoding fix from windows to Qt. 2020-11-03 18:12:26 -05:00
Alexey 'Cluster' Avdyukhin 7e38d08bdb Fixed header editor bug, mappers>255 support were totally broken 2020-11-03 15:29:30 +03:00
mjbudd77 9471ff5e7b
Merge pull request #224 from mjbudd77/master
Bug fix for issue #217. The Qt hex editor memory reads are now synchr…
2020-11-03 07:05:46 -05:00
Matthew Budd e72cc4d0d5 Bug fix for issue #217. The Qt hex editor memory reads are now synchronized with emulation thread execution. This ensures that calls to GetMem will not improperly interfere with certain memory mapped registers while the emulation thread is executing. Reading at an inappropriate time from controller registers mapped at addresses $4016 and $4017 can cause the emulator to miss button presses. Thread synchronization fixes this. 2020-11-03 06:36:30 -05:00
mjbudd77 b63f8657a5
Merge pull request #223 from mjbudd77/master
Qt iNES Header Editor Feature, Lua emu.loadrom return value
2020-11-01 22:21:01 -05:00
Matthew Budd 87b6368956 Changed the lua emu.loadrom function to have a string return value containing the path to the currently loaded ROM. The old function had no return value. This return value allows for the user to determine what game was loaded since the function behavior is to try to reload the last known ROM if the passed argument cannot be loaded. 2020-11-01 21:45:36 -05:00
Matthew Budd 9f10a1fb20 First successful test of Qt iNES header editor. 2020-11-01 21:18:08 -05:00
Matthew Budd bcef387bb0 Added logic to open file if a ROM is not currently loaded when opening the iNES header editor. 2020-11-01 20:04:21 -05:00
Matthew Budd 1055294895 Qt iNES header editor in work. 2020-11-01 19:02:30 -05:00
Matthew Budd b04938901f Qt iNES header editor in work. 2020-11-01 16:43:09 -05:00
Matthew Budd ef8c426549 Merge branch 'master' into development 2020-11-01 15:39:48 -05:00
mjbudd77 69a35ee825
Merge pull request #221 from mjbudd77/master
Changed Family Keyboard enable toggle logic to by a configurable hot …
2020-10-31 21:48:14 -04:00
Matthew Budd 3f4d8898a0 Changed Family Keyboard enable toggle logic to by a configurable hot key instead of the hardcoded scroll lock key. Fixes issue #214. 2020-10-31 20:38:44 -04:00
mjbudd77 b163eb6e0a
Merge pull request #220 from mjbudd77/master
Qt Lua Bug Fixes
2020-10-31 17:16:53 -04:00
Matthew Budd 22f47c43c6 Merge branch 'master' of https://github.com/mjbudd77/fceux 2020-10-31 16:27:10 -04:00
Matthew Budd 5c29bdbd8d Lua scripting pathing improvements for Linux/MacOS. Use realpath when possible to always have a absolute path for scripts and roms internally. 2020-10-31 16:25:29 -04:00
mjbudd77 ddb879b21a Build fix for MacOS. 2020-10-31 16:12:40 -04:00
Matthew Budd 0cca02e765 Bug fix for issue #215. MacOS was not changing the current working directory to the lua script location when loading a lua script. 2020-10-31 16:08:22 -04:00
Matthew Budd ec875b9357 Changed Lua console message buffer to allow for strings that are much longer than 256 characters. 2020-10-31 16:01:15 -04:00
mjbudd77 e6ef7a3a3a
Merge pull request #218 from mjbudd77/master
Lua Error Reporting and Crash Bug fixes for Issue #216
2020-10-31 13:32:23 -04:00
mjbudd77 5d6cda446a Compile fix for macOS. 2020-10-31 12:40:31 -04:00
Matthew Budd 939e2ae27e Added logic to direct lua script error messages to the output console window. Fixed crash issue described in issue #216. Crash was due to Qt GUI functions being used in the emulator thread. Only the main GUI thread is allowed to call Qt GUI functions. 2020-10-31 12:24:52 -04:00
Matthew Budd 91f035fbf2 Qt iNES header editor in work. 2020-10-29 22:06:49 -04:00
mjbudd77 ed61b97050
Merge pull request #213 from brianlheim/topic/pkg-dmg
cmake: use macdeployqt instead of fixup_bundle to deploy on macOS
2020-10-29 18:55:36 -04:00
Brian Heim 74e4cfe0de appveyor: add qt5 prefix path to CMAKE_PREFIX_PATH when configuring 2020-10-29 10:00:54 -05:00
Brian Heim a3e66d0a80 gitignore: add /build 2020-10-29 10:00:35 -05:00
Brian Heim 2480ee81d4 cmake: use macdeployqt instead of fixup_bundle to deploy on macOS
remove unused variable - bundle generator vars are unused by dragndrop

see comments for more info
2020-10-29 09:35:08 -05:00
Matthew Budd 461d3f88cd Added initial framework for Qt iNES header editor window. 2020-10-28 23:25:32 -04:00
mjbudd77 ebd79e5c13
Merge pull request #211 from mjbudd77/master
Qt GUI Disassembly with Symbolic Debug Function Update
2020-10-28 23:21:10 -04:00
Matthew Budd 58407e4ac3 Removed old comment block from Qt Trace logger. 2020-10-28 20:39:53 -04:00
Matthew Budd 130547fa89 Added symbolic debug replacement functionality during disassembly on Qt trace logger. 2020-10-28 20:37:39 -04:00
Matthew Budd cde409dece Added a disassembly with debug symbols function that replaces numeric addresses with text symbol names during the disassembly process. This allows for the symbol maps to be keyed into directly with an integer value and is more efficient that the text search replace algorithm. Currently the Qt debugger window is the only window that uses this function. The trace logger will be next. 2020-10-28 20:22:40 -04:00
Matthew Budd 82b5de3880 Restored Qt Gamepad config window to be modal. 2020-10-28 17:55:09 -04:00
mjbudd77 405ae70e02
Merge pull request #210 from mjbudd77/master
Changed all debug and tools windows to be non-modal top level windows…
2020-10-27 23:06:29 -04:00
Matthew Budd 86a12c96f9 Changed all debug and tools windows to be non-modal top level windows. This allows then to be minimized and maximized via the title bar buttons and will also show in the task bar of the window environment as separate windows. 2020-10-27 22:26:58 -04:00
mjbudd77 83cfd4b38b
Merge pull request #209 from mjbudd77/master
Added a scrollable area to the Qt gamepad config dialog window that w…
2020-10-27 21:10:51 -04:00
Matthew Budd 02dbc9e42d Added a scrollable area to the Qt gamepad config dialog window that will show anytime the window is not large enough to display full widget content. The scrollable area will act as a viewport into the larger widget layout from within the smaller dialog window. Again, it will only show the scroll bars if the window is not large enough. This will allow for the window to be fully viewable on smaller monitors such as the 1024x768 monitor in issue #208. 2020-10-27 20:22:25 -04:00
mjbudd77 1eb226b41d
Merge pull request #207 from mjbudd77/master
For Qt, added logic to allow for auto video scaling on window resize …
2020-10-27 07:35:47 -04:00
Matthew Budd 81cbabbf1f For Qt, added logic to allow for auto video scaling on window resize to be optional. An 'Auto scale on resize' checkbox has been added to the video config window. When this box is checked (and applied) the window will always auto rescale the video image to a best fit on a resize. If not checked, window will use the specified numerical scale values as a maximum scaling limit. This means that the window will allow scaling the image down if the window is not large enough to fit image at the requested scale, but will never scale the image up past the request scale. So if the window is at a large size and the requested scale is small, the result will be a small video image on a big window with a lot of black space. This is for issue #205. 2020-10-27 07:00:43 -04:00
mjbudd77 77f621e676
Merge pull request #206 from mjbudd77/master
Numerical Video Pixel Scaling Feature Added to Qt GUI Video Config Window
2020-10-26 21:45:01 -04:00
Matthew Budd 8f336bf8d3 Added logic to the Qt GUI Video Config Window to allow for the image pixel scaling to be numerically set. Also added a square pixel option to allow for the X and Y scales to either be set separately or tied together. This addresses issue #205. 2020-10-26 20:53:36 -04:00
Matthew Budd 2c7c87e3c8 Deleted unused icon file. 2020-10-26 17:28:11 -04:00
mjbudd77 4a5aafd638
Merge pull request #204 from mjbudd77/master
Bug fix for Qt GUI full screen command line switch.
2020-10-25 19:43:54 -04:00
Matthew Budd bd440682fd Bug fix for Qt GUI full screen command line switch. 2020-10-25 18:55:16 -04:00
mjbudd77 3f571003d5
Merge pull request #203 from mjbudd77/master
Various Improvements/Fixes for Qt GUI Zip File Archive Support
2020-10-25 12:43:14 -04:00
Matthew Budd 78d78ceab9 Modified the getRomFile Qt GUI function for ROMs opened from zip archives. The returned path will be the directory to the zip file and the base and suffix file parts come from the inner deflated zip file name. 2020-10-25 12:02:41 -04:00
Matthew Budd c09b1f6c7a For Qt GUI, added a zip archive ROM list selection window for the case where a zip file contains more than one ROM file in it. 2020-10-25 11:34:33 -04:00
Matthew Budd b0c460fd1d Bug fix for saving of CDL and debug files when the ROM was loaded from an archive. 2020-10-25 10:25:11 -04:00
mjbudd77 be3ed9b8d8
Merge pull request #202 from mjbudd77/master
Added code to allow for ROMs to be extracted and opened from zip file…
2020-10-24 22:55:09 -04:00
Matthew Budd 0ce058b35b Added code to allow for ROMs to be extracted and opened from zip file in Qt GUI. 2020-10-24 22:04:00 -04:00
adelikat 03e889dcde add ads.txt 2020-10-24 11:48:15 -05:00
mjbudd77 6a91541f42
Merge pull request #201 from mjbudd77/master
Added all non-compressed useable file types to the open ROM file dial…
2020-10-24 10:52:49 -04:00
Matthew Budd c01d4e8621 Added all non-compressed useable file types to the open ROM file dialog filters for Qt GUI. 2020-10-24 09:43:38 -04:00
mjbudd77 cb28e8d425
Merge pull request #200 from mjbudd77/master
SDL linux desktop integration updates
2020-10-23 00:29:02 -04:00
Matthew Budd 4c4d1f9ce3 Merge branch 'master' of https://github.com/mjbudd77/fceux 2020-10-22 22:57:35 -04:00
Matthew Budd ebffe467d5 Modified the linux build pipeline script to use standard installation prefix in cmake command and then used make install DESTDIR= to install to target packaging directory. This is to allow for cmake to pass the installation path directly to the compile environment as it will be seen on the target computer. 2020-10-22 22:54:00 -04:00
mjbudd77 c6837840a2 Regenerated icon set for Mac OSX 2020-10-22 22:39:03 -04:00
Matthew Budd 040c7abaef Updated linux desktop installation to use higher resolution icon. Added a white trim to the icon to have contrast on dark desktop backgrounds. 2020-10-22 22:19:47 -04:00
mjbudd77 8cc4ea302a
Merge pull request #199 from mjbudd77/master
Added QDir::AllDirs argument to all Qt GUI file browser instances to …
2020-10-22 00:38:00 -04:00
Matthew Budd 1d2fa00335 Added QDir::AllDirs argument to all Qt GUI file browser instances to ensure that all directories will be shown any time a QFileDialog is opened. 2020-10-22 00:17:32 -04:00
mjbudd77 f79ebce55a
Merge pull request #198 from mjbudd77/master
SDL Minor Bug Fixes
2020-10-21 23:29:34 -04:00
Matthew Budd 919a42d9fd Minor corrections to SDL build/install instructions. 2020-10-21 22:54:31 -04:00
Matthew Budd 8252a94202 Minor code cleanup. 2020-10-21 22:05:15 -04:00
mjbudd77 bf696c6494 Build fix for Mac OSX emu.getdir() lua code. 2020-10-21 21:52:32 -04:00
Matthew Budd 80022a40d6 Changed logic to use dirname for Mac OS emu.getdir(). 2020-10-21 21:40:27 -04:00
Matthew Budd 379ff6d757 Added emu.getdir() logic for linux and mac OSX 2020-10-21 21:21:49 -04:00
Matthew Budd fede6f5690 Minor cleanup of lua engine load rom update for SDL port. 2020-10-21 20:45:50 -04:00
Matthew Budd 58e87898f2 Merge branch 'master' of https://github.com/mjbudd77/fceux 2020-10-21 20:33:22 -04:00
mjbudd77 e1419b5fd8
Merge pull request #1 from randomCharacter/lua-loadrom-linux
Added support for loading ROM files from Lua script on Linux
2020-10-21 20:32:54 -04:00
Matthew Budd f0c13a57ec Fixed Qt context menus so that all child widgets are destroyed after the menu parent goes out of scope. 2020-10-21 20:31:39 -04:00
Mario Perić 432ffeeec2 Use LoadGame instead of FCEUI_LoadGame 2020-10-22 01:20:48 +02:00
Mario Perić ec72160f39 Added support for loading ROM files from Lua script on Linux 2020-10-21 22:09:55 +02:00
mjbudd77 5f4af397d0
Merge pull request #194 from mjbudd77/master
Added video pixel linear filtering capability for SDL video backend option.
2020-10-20 07:51:26 -04:00
mjbudd77 7c4c524152 Added a line to ensure that linear filter option is initialized at startup for Qt gui. 2020-10-20 07:28:46 -04:00
mjbudd77 812ef25629 Added pixel linear filtering option logic for SDL viewport (for OpenGL and Direct3D backends only) 2020-10-20 07:19:47 -04:00
mjbudd77 86c4be258a
Merge pull request #193 from mjbudd77/master
Added Tile View Feature to PPU Pattern Table Viewer for Qt GUI
2020-10-20 00:06:20 -04:00
mjbudd77 fd5e68efd0 For Qt GUI, added PPU pattern view key shortcuts for context menu options. 2020-10-19 23:34:28 -04:00
mjbudd77 2f716e0e77 For the Qt GUI, added a PPU pattern tile zoomed view feature via a context menu. The pattern view context menu can now be use to change palettes, toggle tile grid lines, and enter/exit tile zoom mode. Also, added a Qt message capture function to get any error, warning, info, or debug messages that come out of the Qt application core. 2020-10-19 23:21:00 -04:00
mjbudd77 a6df86f7d9
Merge pull request #192 from mjbudd77/master
Qt GUI Minor Fixes and Style Improvements
2020-10-18 23:07:28 -04:00
mjbudd77 1c762f95d1 Added code to the Qt gui to allow for individual users to set custom Qt styling. The Qt gui will check to see if an environment variable exists named FCEUX_QT_STYLESHEET, which should contain the full path to a Qt stylesheet file. If the variable is defined and the file exists and can be opened, then the style content for that file will be used by the application. 2020-10-18 22:13:00 -04:00
mjbudd77 9e57c49f5a Added logic to initialize the fore and background color palettes of the Qt trace logger viewport. 2020-10-18 21:36:49 -04:00
mjbudd77 1c0d999033 Hooked up OpenGL linear filtering enable function to Qt video config checkbox. 2020-10-18 21:31:37 -04:00
mjbudd77 b33e45cdb5
Merge pull request #191 from mjbudd77/master
Added a circular buffer to the Qt Lua output console to allow for mes…
2020-10-18 16:12:37 -04:00
mjbudd77 ce2afe23e1 Added a circular buffer to the Qt Lua output console to allow for messages to be passed in a thread safe way from the emulation thread to the GUI thread. This fixes the crash issue mentioned in Issue #190. 2020-10-18 15:30:14 -04:00
mjbudd77 07cef83c3f
Merge pull request #189 from mjbudd77/master
Added emulation speed control main menu functionality to Qt GUI.
2020-10-18 11:21:02 -04:00
mjbudd77 da0ab1359c Added set frame advance delay menu and input dialog logic for Qt GUI. 2020-10-18 10:53:31 -04:00
mjbudd77 8b5e99909a Added emulation speed control main menu functionality to Qt GUI. 2020-10-18 10:34:03 -04:00
mjbudd77 30f6f385ec
Merge pull request #188 from mjbudd77/master
Per request, changed the Qt debugger stack display to use a more comp…
2020-10-18 00:32:14 -04:00
mjbudd77 0f33735e06 Per request, changed the Qt debugger stack display to use a more compact address text format. 2020-10-17 23:57:10 -04:00
mjbudd77 9ad3cc8c7c
Merge pull request #187 from mjbudd77/master
Bug fix for order of destruction issue caused when shutting down the …
2020-10-17 23:50:41 -04:00
mjbudd77 598f036d56 Bug fix for order of destruction issue caused when shutting down the application with the debugger window open. 2020-10-17 23:26:49 -04:00
mjbudd77 707368157d
Merge pull request #186 from mjbudd77/master
For Qt GUI debugger window, added logic to allow for display of stack…
2020-10-17 23:07:55 -04:00
mjbudd77 c1fca59e74 For Qt GUI debugger window, added logic to allow for display of stack addresses to be toggle-able on/off via either context menu or A key when widget has focus. 2020-10-17 22:41:29 -04:00
mjbudd77 1caeb2ba71
Merge pull request #185 from mjbudd77/master
Bug fix and Improvements for Qt Debugger Stack Display
2020-10-17 22:24:00 -04:00
mjbudd77 fffa78b507 Bug fix for Qt debugger stack display clipping end of line. Added logic to allow for the stack display to auto show a horizontal scroll bar if needed. Also added a stack display bytes per line config option. This can be changed by either right clicking the stack display widget and selecting the desired value in the context menu or using the number keys 1-8 when the widget has focus. 2020-10-17 21:22:19 -04:00
mjbudd77 b1bb6b4f08 Removed fceux.pro qmake file. Qt/SDL port will always use cmake. 2020-10-17 19:40:49 -04:00
mjbudd77 e66a162430
Merge pull request #184 from mjbudd77/master
Added RAM Search Window to Qt GUI
2020-10-17 00:23:56 -04:00
mjbudd77 5715ec235a Added Qt Hex Editor goto Address Dialog. Added RAM search to Qt GUI capability list. 2020-10-16 23:53:20 -04:00
mjbudd77 e77dd77b7c Resolved simple cppcheck warning on Qt Ram watch window. 2020-10-16 23:18:13 -04:00
mjbudd77 3c67d440e8 Added logic to Qt RAM search window to not store search history when auto search is active. This will avoid excessive memory allocation. 2020-10-16 23:15:23 -04:00
mjbudd77 c98276945e Added RAM Watch quick access from RAM search window for Qt GUI 2020-10-16 22:44:23 -04:00
mjbudd77 65bb526951 Added logic to refresh cheat window when adding from RAM search or watch windows for Qt GUI 2020-10-16 22:30:04 -04:00
mjbudd77 1dc0181e01 Added RAM search quick eliminate and hex editor functions for Qt GUI. 2020-10-16 22:04:45 -04:00
mjbudd77 4215f2d3f7 Successful test of all RAM search functions in Qt GUI. 2020-10-16 20:47:29 -04:00
mjbudd77 abe66aceec Successful test of RAM specific value search 2020-10-16 20:20:29 -04:00
mjbudd77 7803cc3294 Successful test of ram relative search functionality. 2020-10-16 20:05:51 -04:00
zeromus fca059aaf4 mmc5 was making no virtually no effort to clear data on power-on, creating nondeterminisms on movie plays. I revised all that.. and it's making me think fceux fundamentally doesn't work well with this. In particular I'm not sure about the timing of the loaded save data. If we get called in the order: mapper_init, loadsavedata, mapper_power -- then we will clobber the WRAM in mapper_power (at least, the way I have it now in mmc5) which will lose the save data. save data should really be loaded AFTER a power-on command. but I don't think fceux ever through through any of this very well. well, at least this fixes my case of a deterministic fm2. 2020-10-16 13:02:06 -04:00
mjbudd77 ebfe3702f9 Qt RAM search input validation in work. 2020-10-15 22:22:44 -04:00
mjbudd77 9412b850cb Ram search by relative value in work. 2020-10-15 20:39:56 -04:00
Matthew Budd 1368d0550e Bug fix for Qt GUI frame advance logic. Updated RamSearch to run after ever completed frame. 2020-10-12 15:51:24 -04:00
Matthew Budd 25152af42a Qt RAM search window in work. 2020-10-12 00:09:00 -04:00
Matthew Budd 5dc72e7924 Added custom widget to optimize Qt ram search view 2020-10-11 22:54:19 -04:00
Matthew Budd cfa752a693 Qt Ram Search window in work. QTreeWidget does not handle large data sets very efficiently. Going to have to make a custom widget. 2020-10-11 21:36:26 -04:00
Matthew Budd 0f506dc348 Qt Ram search logic in work. 2020-10-11 11:25:35 -04:00
Matthew Budd baa724ed14 Added initial layout of Qt RAM Search window. 2020-10-11 10:40:27 -04:00
mjbudd77 50d789f4f5
Merge pull request #182 from mjbudd77/master
Added Qt RAM Watch Window Feature
2020-10-10 09:48:21 -04:00
Matthew Budd 689e1d1898 Updated TODO-SDL window so finished status on Qt RAM Watch window. 2020-10-10 09:28:38 -04:00
Matthew Budd a03b5d9ae8 Qt RAM watch window separator logic changed so that separator lines can span full width of viewport. Minor bug fixes to Qt RAM watch add/edit window 2020-10-10 09:03:19 -04:00
Matthew Budd 66c34c2d49 A couple bug fixes for the Qt RAM watch window. 2020-10-09 23:08:40 -04:00
Matthew Budd e03c558db6 Updated Qt RAM watch file format to match windows version. 2020-10-09 22:51:56 -04:00
Matthew Budd 1f11c67c84 Successful test of all Qt RAM watch features. Minor cppcheck warning cleanup. 2020-10-09 22:08:38 -04:00
Alexey 'Cluster' Avdyukhin 4f0dbfb389 LCD Zapper sensor logic should be inverted because 0: detected; 1: not detected 2020-10-09 23:26:51 +03:00
Matthew Budd 778d9c733d Added logic for add, edit and remove ram watch entries. 2020-10-08 22:05:31 -04:00
CaH4e3 679e59ab45
Merge pull request #133 from JasonWThompson/Issue130
Add LCD Mod Compatible Zapper support
2020-10-08 21:52:55 +03:00
Alexey 'Cluster' Avdyukhin 9d837056c9
Merge branch 'master' into Issue130 2020-10-08 19:56:48 +03:00
Alexey 'Cluster' Avdyukhin e9f6c4d237 Fixed HEX editor copy/paste bug introduced by commit a9c4bc95
Paste function was bugged while using HEX editor in "ROM" mode
2020-10-08 17:18:08 +03:00
Matthew Budd f440c820fd Added initial layout for Qt Ram Watch Edit window. 2020-10-08 07:08:47 -04:00
Matthew Budd f8e7187f05 Build fix for MacOSX 2020-10-08 06:39:08 -04:00
Matthew Budd ff694ebe49 Qt Ram watch logic in work. 2020-10-07 21:01:39 -04:00
Matthew Budd ab922df318 Added initial window layout for Qt RAM Watch window. 2020-10-07 20:35:52 -04:00
mjbudd77 c5e39608c9
Merge pull request #181 from mjbudd77/master
Added Name Table Viewer Feature for Qt GUI
2020-10-06 21:52:13 -04:00
Matthew Budd 6dfd3fb2d0 Added logic to draw scroll lines on NT Viewer for Qt GUI 2020-10-06 21:31:40 -04:00
Matthew Budd a79400720b Hooked up logic for NT View attribute and hide palette functionality in Qt GUI 2020-10-06 21:08:10 -04:00
Matthew Budd 2d403fac3e Added logic to fillout property labels on NT view Qt GUI. 2020-10-06 21:02:10 -04:00
Matthew Budd 652cc4f2c9 Added logic to protect against PPU and NT view windows from crash when being opened with no game loaded. 2020-10-06 20:08:17 -04:00
Matthew Budd c66fc35a40 Build fix for GTK GUI missing NT view function needed by core. 2020-10-06 19:52:02 -04:00
Matthew Budd 2b15f8611e Added NT Mirroring display and selection logic for Qt GUI 2020-10-06 19:50:22 -04:00
Matthew Budd 4765bc8bdd Added widgets for mirroring and properties frames on Qt NT viewer 2020-10-06 19:00:32 -04:00
Matthew Budd 826a39c83e Added logic to not call window update from emulator thread in Qt GUI. Qt widget update() should always be called from within main gui thread. 2020-10-06 18:40:14 -04:00
CaH4e3 0120f63ed0
Merge pull request #180 from ClusterM/hori
Hori 4-Player Adapter support
2020-10-06 14:29:29 +03:00
CaH4e3 30fec6c438
Merge pull request #175 from barbeque/master
Famicom Disk Sytem -> System
2020-10-06 14:29:05 +03:00
CaH4e3 fb86ac871c
Merge pull request #172 from owomomo/master
Hex Editor bookmark Bugfixes and Feature Updates
2020-10-06 14:28:48 +03:00
owomomo 6890f79768 1. More informative Hex Editor bookmark edit dialog.
2. Fix some logic bugs of importing bookmarks.
3. Detail
2020-10-06 18:59:37 +08:00
Alexey 'Cluster' Avdyukhin bc086823e4 Hori 4-Player Adapter support 2020-10-06 09:37:31 +03:00
Matthew Budd 03cd068439 Qt Name table Viewer in work. 2020-10-05 23:17:27 -04:00
Matthew Budd 73726114c5 Name table view first successful drawing on Qt GUI. 2020-10-05 22:49:09 -04:00
Matthew Budd 579a8d2159 Initial layout of Qt Name Table window in work. 2020-10-05 21:14:49 -04:00
Matthew Budd 1f12627c8f Added initial file for Qt name table viewer 2020-10-05 20:52:09 -04:00
mjbudd77 45e9922ff9
Merge pull request #179 from mjbudd77/master
Minor cleanup and bug fixes for Qt/SDL PPU Viewer
2020-10-05 20:34:12 -04:00
Matthew Budd b31a2131b4 Minor cleanup of debug print statements in Qt GUI. 2020-10-05 20:11:01 -04:00
Matthew Budd 6ef21c4433 Added logic to fill out palette label when moving cursor over tile. 2020-10-05 20:02:16 -04:00
Matthew Budd cc70f501c8 Minor bugfix for pattern table label when mouse scroll out of bounds. 2020-10-05 19:35:14 -04:00
owomomo 8f785ba9d3 Fix issue #101 the note of separator shifts after reload. 2020-10-05 21:32:47 +08:00
owomomo d5ff6ff2fe Fix a bug that KillMemView() calls multiple times to cause crash problems. 2020-10-05 19:12:47 +08:00
mjbudd77 717967c4d9
Merge pull request #178 from mjbudd77/master
Added PPU Viewer Feature to Qt/SDL GUI
2020-10-05 00:42:15 -04:00
Matthew Budd bf20184937 Updated TODO-SDL file to show that Qt5 GUI now has PPU Viewer capability. 2020-10-04 23:48:33 -04:00
Matthew Budd 9241c33c22 Added place holder function for FCEUD_UpdatePPUView in the GTK/SDL GUI. This fixes GTK GUI build issue that occurred when Qt/SDL PPU Viewer feature was added. GTK GUI will not support the PPU Viewer feature at this time. 2020-10-04 23:42:49 -04:00
Matthew Budd 59d726230d Added logic for Qt PPU Viewer scanline entry box. 2020-10-04 23:38:10 -04:00
Matthew Budd b19c86bc10 Minor display updates to Qt PPU viewer. 2020-10-04 23:23:27 -04:00
Matthew Budd 202bbc0b15 Added logic to fill out PPU selected tile label 2020-10-04 22:44:30 -04:00
Matthew Budd ec6a6e06e7 Added logic to display sprite 8x16 on Qt PPU viewer 2020-10-04 22:07:33 -04:00
owomomo d4a8962695 Add import/export bookmarks feature to Hex Editor. 2020-10-05 10:05:27 +08:00
Matthew Budd ccb8b63282 Re-organized Qt PPU viewer to have each pattern table in its own frame. 2020-10-04 20:36:33 -04:00
owomomo e0aa1e1edc
Merge pull request #23 from TASVideos/master
Sync code to the newest
2020-10-05 07:29:50 +08:00
Matthew Budd fa55d6024b Added PPU Viewer control widgets to window. Still TODO, write logic. 2020-10-04 19:17:11 -04:00
Matthew Budd cf2b43f31a First successful viewing of pattern and palatte colors on Qt PPU Viewer. 2020-10-04 09:54:51 -04:00
Matthew Budd c21041e26e Setup initial menu options and window open for Qt GUI PPU Viewer. 2020-10-03 11:46:14 -04:00
mjbudd77 33a961d0e6
Merge pull request #177 from mjbudd77/master
Added Qt GUI Trace Logger Feature
2020-10-02 22:39:54 -04:00
Matthew Budd 896a979689 Added logic to auto open log file dialog window if file logging is checked and a start logging event occurs. 2020-10-02 22:14:00 -04:00
Matthew Budd 4fc2224309 Updated TODO-SDL file to show new Qt GUI features 2020-10-02 21:58:34 -04:00
Matthew Budd af35f81f4f More logic updates for Qt trace logger window. Added log to file feature. 2020-10-02 21:44:47 -04:00
mjbudd77 022abb880a Added lines skipped logic for trace logger new code/data functionality. 2020-10-02 16:54:29 -04:00
mjbudd77 5bf2b65378 Added logic to display running trace log in Qt window viewport 2020-10-02 16:47:36 -04:00
Matthew Budd 0b3d377e18 Changed trace instruction logger to be more efficient. 2020-10-01 07:04:52 -04:00
Matthew Budd 2524667d12 Enabled trace instruction function. Still TODO, try to make it more efficient. 2020-10-01 06:14:35 -04:00
Matthew Budd 08da8fd76e Trace logger custom widget setup in work. 2020-09-30 22:44:56 -04:00
Matthew Budd 9da84e16ca More setup of Qt Trace Logger window. 2020-09-30 22:21:18 -04:00
Matthew Budd c288c60c68 Added initial window layout for trace logger. 2020-09-30 20:56:50 -04:00
mjbudd77 0da191bd7f
Merge pull request #176 from mjbudd77/master
Added Code/Data Logger Feature to Qt/SDL Port
2020-09-29 00:18:13 -04:00
Matthew Budd de2fd3eef3 Added Qt hex editor logic to color ROM bytes from CD Logger data. 2020-09-28 23:40:13 -04:00
Matthew Budd 92007f8467 Added CDL generated ROM functionality. 2020-09-28 22:18:25 -04:00
Matthew Budd 63933a1821 Added CDL File load/save logic. 2020-09-28 21:51:14 -04:00
Matthew Budd 445b17104a Successful initial test of Qt Code/Data Logger Window. 2020-09-28 21:23:47 -04:00
Matthew Budd 086d523566 Added initial code data logger window layout for Qt GUI. 2020-09-27 10:59:24 -04:00
mike 7afaf91207 Famicom Disk Sytem -> System 2020-09-26 17:08:58 -06:00
Alexey 'Cluster' Avdyukhin 55e34bd0c8 Header editor bugfix 2020-09-25 20:07:07 +03:00
mjbudd77 e8bbb4fe0c
Merge pull request #174 from mjbudd77/master
Qt/SDL Debugger Bookmark Update
2020-09-24 07:16:56 -04:00
mjbudd77 250ae371b6 Merge https://github.com/TASVideos/fceux into development 2020-09-24 06:16:19 -04:00
mjbudd77 7003f6c01a Added code to load/save debugger bookmarks in game specific debug files. 2020-09-24 06:10:48 -04:00
Matthew Budd a4b45fc252 Added symbolic debug popup window capability to hex editor. 2020-09-20 22:00:48 -04:00
Matthew Budd 97784ec09b Added quick breakpoint add via hex editor context menu. 2020-09-20 21:40:31 -04:00
Matthew Budd a458f7526b Added logic to update hex editor title with view mode and selected address included in text. 2020-09-20 21:03:41 -04:00
Matthew Budd c2ca5dc9d8 Added initial functions for hex editor quick access from debugger. 2020-09-20 17:01:40 -04:00
Matthew Budd 3099a233c3 Added debugger bookmark add/edit via ASM view context menu. 2020-09-20 16:37:41 -04:00
Matthew Budd 39a0f24445 More debugger bookmarking logic added. 2020-09-20 14:31:21 -04:00
Matthew Budd a882125224 Added logic to add,edit, and delete debugger bookmarks 2020-09-20 14:14:59 -04:00
adelikat 52658aa41c website - attempt at making adds async so they dont' affect page load times 2020-09-19 13:52:44 -05:00
Matthew Budd abd4089cbb Added logic to highlight ASM view selected line. 2020-09-19 14:38:10 -04:00
Matthew Budd 59e4ca1ff9 Added logic to init IDA font checkbox to checked and keep unselectable. I am forcing the font in the Qt debugger assembly view to be a monospace Courier New. For now I plan to keep it this way. 2020-09-18 06:18:09 -04:00
Matthew Budd dad6ddfe64 Added Qt debugger auto open on game load feature. 2020-09-18 06:00:19 -04:00
mjbudd77 debdf6cfa7
Merge pull request #173 from mjbudd77/master
Qt GUI debugger window
2020-09-17 23:58:55 -04:00
Matthew Budd fdd246fcd6 Updates to README and SDL TODO files. 2020-09-17 23:12:01 -04:00
Matthew Budd e70eb49bf9 Added logic for ASM view horizontal scroll. Set debugger bookmark buttons to insensitive until code can be added. 2020-09-17 22:59:56 -04:00
Matthew Budd b319273765 Added logic for auto debug file load/save checkbox option. 2020-09-17 21:54:47 -04:00
Matthew Budd 90e67b4ebb Added logic to selectively load/save breakpoint data from/to files only if a debugger window is open. 2020-09-17 20:44:33 -04:00
Matthew Budd 63dbda4b35 Added logic to load/save breakpoint data into game specific files. 2020-09-16 21:02:43 -04:00
Matthew Budd c62dfd464f Updates to debug symbol loader. 2020-09-15 22:53:36 -04:00
Matthew Budd b37fb45172 Added symbolic debug edit window logic. 2020-09-15 21:32:54 -04:00
Matthew Budd cef4ad4e1d Added logic for breakpoint tree view enable checkbox. 2020-09-15 20:11:17 -04:00
Matthew Budd d5b6c28df6 Added logic to save game debug symbols when closed. 2020-09-15 19:53:47 -04:00
Matthew Budd ced49bebc7 Added logic for debug window reload symbols button. 2020-09-14 21:42:10 -04:00
Matthew Budd 097aaa3214 Hooked up symbolic debug asm view checkbox. 2020-09-14 21:18:54 -04:00
Matthew Budd a4df1e3c06 Added logic to load debug symbols from files. 2020-09-14 21:08:38 -04:00
Matthew Budd f442404149 Added initial framework for symbolic debug feature in Qt port. 2020-09-13 21:43:50 -04:00
Matthew Budd d1f689ef61 Minor updates to Qt breakpoint add/edit and display functionality. 2020-09-12 09:31:24 -04:00
Matthew Budd bb29b73af5 Added initial framework for Qt debug window's asm view context menu. 2020-09-12 08:53:51 -04:00
Matthew Budd 1a05b2d7d0 Added ASM view cursor position label logic to Qt debug window. 2020-09-11 22:56:04 -04:00
Matthew Budd fc81335cc0 Added a emulator status label to debugger window. 2020-09-11 21:26:40 -04:00
Matthew Budd 6b79d20037 Added logic to set flags register when resuming from a breakpoint. 2020-09-11 20:29:45 -04:00
Matthew Budd 823e7948c0 Debug window breakpoint highlighting when hit in work. 2020-09-09 23:13:53 -04:00
Matthew Budd 1403ab607d More widget logic added to Qt debug window. 2020-09-09 21:58:09 -04:00
Matthew Budd 473ef5b7dc Added a little more logic to Qt debug window. 2020-09-09 20:22:31 -04:00
owomomo 19397d1b41 Detail. 2020-09-10 01:44:28 +08:00
owomomo 6dbac1304a Slightly widen the Cheat Search dialog. 2020-09-10 00:53:44 +08:00
Matthew Budd dd7aa8fc2c Added initial framework for adding, editing, and removing breakpoints. 2020-09-08 22:18:49 -04:00
owomomo a3a0e3e543 Fix some logic bug of Directories Dialog. 2020-09-07 01:57:32 +08:00
owomomo 757c13e22a Cheat Search: Switch of show address in Game Genie format 2020-09-06 08:20:20 +08:00
Matthew Budd 4e3e4d2e54 Added logic to update PPU labels on debug window. 2020-09-04 06:48:29 -04:00
Matthew Budd abf863a6a2 Debugger window functionality in work. 2020-09-04 06:37:22 -04:00
Matthew Budd e688ebe23b ASM view port in work. 2020-09-03 22:39:01 -04:00
Matthew Budd fc201b5ff7 Created custom widget for ASM viewport. 2020-09-03 22:21:53 -04:00
Matthew Budd 254a1a1d37 ASM display window changed to use QPlainTextEdit instead of QTextEdit. 2020-09-02 22:16:41 -04:00
Matthew Budd ccbcab5e77 Initial port of ASM window code. 2020-09-02 21:31:54 -04:00
Matthew Budd 7001b55569 Added initial framework for console breakpoint debugger window. 2020-09-01 22:04:59 -04:00
owomomo 1f42929f4f 1. Fix an ancient bug: .deb file doesn't store edit mode for Hex Editor, when the next time it launches, all the bookmarks are treated as RAM bookmarks.
Since this bug was forgotten by developers for years, saving the missing data along with the other preferences would make the emulator backward incompatible. So I finally decided to append them to the end of the preferences.
The older version of FCEUX didn't read/write the .deb file that far, they would stop earlier though the file created by the newer version has more data, because they don't have the appended code.
I hope this modification doesn't break anything as I've tried my best to prevent incompatibilities.
We're facing a difficult choice here, fortunately, it looks like the preferences of Hex Editor stores at last of .deb, so I can just append information in the function. However what could we do if someday someone found a bug in the middle of the deb file such as debuggers etc? As we can only append data, the functions have to be split into more parts, which is damage to the code maintainability and readability.
The problems can't be easily resolved as far as I can think, although currently it is possible to make it work without too much problems.
2. Improved Bookmark Editing Dialog of Hex Editor, now it can edit almost all properties the bookmark has, you can directly change its address and even its view.
3. Changed some logic of debugger bookmark, the address can be directly changed in the dialog.
4. Decoupled Debugger and Hex Editor bookmark editing dialogs and callback functions from sharing one dialog, as they are not in the same system, the differences is worth to make them apart.
5. Disabled input barcode menu in movie recording and no game loading.
6. Detail.
2020-09-01 21:42:06 +08:00
owomomo 8388d4025f Input Barcode is neither supported by movie recording nor TAS, disable the menu when using them. 2020-08-31 23:27:15 +08:00
owomomo 3945f290d1
Merge pull request #22 from TASVideos/master
Sync code to the newest
2020-08-31 21:59:23 +08:00
owomomo 2bdbfdba8f Sync code to the newest 2020-08-31 21:59:02 +08:00
owomomo f8e4696f4a Sync code to the newest. 2020-08-31 21:57:50 +08:00
mjbudd77 2524c1d88e
Merge pull request #169 from mjbudd77/master
Added hex editor fore and back ground color options to config file. O…
2020-08-30 19:20:57 -04:00
Matthew Budd 0349bb3a86 Added hex editor fore and back ground color options to config file. Options are now also saved when using the editor color picker. 2020-08-30 10:35:00 -04:00
mjbudd77 6d88d3df4c
Merge pull request #168 from mjbudd77/master
SDL Qt5 GUI Hex Editor Bookmark Functionality
2020-08-28 22:24:56 -04:00
Matthew Budd e6369e142e Updated Mac OSX build web page. Provided instructions on how to install the necessary dependencies to run the appveyor pipeline autobuild. 2020-08-28 21:40:51 -04:00
Matthew Budd e711b21ee4 Added hex editor remove all bookmarks question acknowledgement box. 2020-08-28 20:23:20 -04:00
Matthew Budd ca59812e97 Added hex editor bookmark auto load/save functionality. 2020-08-27 22:43:13 -04:00
Matthew Budd 1032e6f443 Bookmark menu action memory management fix. QMenu will only delete QActions if it has ownership of the widget. 2020-08-26 22:53:39 -04:00
Matthew Budd 114e22c48f Added hex editor bookmark functionality. Still TODO save bookmarks to file based on ROM name. 2020-08-26 22:44:11 -04:00
mjbudd77 36c39aa0e9
Merge pull request #167 from mjbudd77/master
Added QT GUI Hex Editor
2020-08-25 22:18:34 -04:00
Matthew Budd 51019a6e06 Cleanup up old commented out code in QT GUI main window. 2020-08-25 21:24:34 -04:00
Matthew Budd c23fa5dc60 Memory management fix for QT dialog windows. Ensure that window is marked for deletion when it is closed. 2020-08-25 20:59:36 -04:00
Matthew Budd a624278fca Added native menu option to hex editor. 2020-08-25 18:41:58 -04:00
Matthew Budd 67f6be539a Added TODO comments to hex editor context menu. These menu options can not be finished until other debug features such as the debugger and code/data trace/log functionality has been created. 2020-08-24 20:50:06 -04:00
Matthew Budd 1f09ecca2c Added hex editor window close menu option. 2020-08-24 20:27:12 -04:00
Matthew Budd 14f0da12c7 Added save ROM as hex editor functionality 2020-08-24 20:06:36 -04:00
Matthew Budd 08feb4710b Added utility function to strip out a base file name from a full path. 2020-08-24 19:52:28 -04:00
Matthew Budd e8f1ffdf8d Added hex editor horizontal scroll logic. 2020-08-23 22:24:54 -04:00
Matthew Budd a93af6f821 Cleanup of hex editor code, consolidated as much as possible into QHexEdit custom widget. 2020-08-23 10:00:54 -04:00
Matthew Budd 832a6b0a64 Setting up framework for hex editor bookmarks 2020-08-22 22:01:53 -04:00
Matthew Budd ff3125cbf8 Bug fix for updating vertical bar when using page up/down functions. 2020-08-22 21:42:51 -04:00
Matthew Budd 4b92abdb47 Added framework for hex editor context menu. 2020-08-22 21:38:09 -04:00
Matthew Budd 66810fdb9d Changed cursor movement logic to move to nearest hex address. 2020-08-22 20:48:31 -04:00
Matthew Budd b01b1c7a4c Cursor selection update to Hex editor 2020-08-22 20:42:33 -04:00
Matthew Budd f3af7cc6c8 Added hex editor fore ground and back ground color options. 2020-08-22 20:20:18 -04:00
Matthew Budd 6a425f61d1 Added activity color options to hex editor menu. 2020-08-22 19:54:11 -04:00
Matthew Budd 6aacaa5595 Added activity color highlight logic. 2020-08-22 19:15:56 -04:00
Matthew Budd c99c729b23 Added hex editor view mode menu logic. 2020-08-22 14:16:13 -04:00
Matthew Budd ecf558c1a3 Moved pixel space to cursor position conversion into its own function. 2020-08-22 13:57:36 -04:00
Matthew Budd 1eaa3f46f9 Added logic to position cursor via left mouse clicks on hex editor. 2020-08-21 21:05:52 -04:00
mjbudd77 b37e1e03f0 Cppcheck warning fixes for Qt GUI. 2020-08-21 11:55:19 -04:00
mjbudd77 b614edee75 Added memory write logic to hex editor. 2020-08-21 11:50:36 -04:00
Matthew Budd 75b076f256 Added a couple more key bindings to hex editor cursor control. 2020-08-20 22:44:14 -04:00
Matthew Budd f6afca360f Added hex editor X,Y cursor movement via arrow keys. 2020-08-20 22:34:45 -04:00
Matthew Budd 5f57455de7 Cursor positioning logic in work. 2020-08-20 22:28:02 -04:00
Matthew Budd 65f6b06033 Added ascii output to hex editor. 2020-08-20 21:47:21 -04:00
Matthew Budd b23349e870 Added vertical slider logic. 2020-08-20 21:21:48 -04:00
Matthew Budd b6b2038c96 Added initial framework for hex editor menu. 2020-08-20 20:41:38 -04:00
Matthew Budd 12f27d2158 Moved hex text editor into its own widget QHexEdit 2020-08-20 20:22:24 -04:00
Matthew Budd 9b90d2d684 Updated Hex editor fore/back ground color schemes to use dark background and light foreground text. 2020-08-19 23:05:01 -04:00
Matthew Budd 09ec672597 Changed approach to Qt hex editor to use raw painting of text. 2020-08-19 22:27:42 -04:00
Matthew Budd 466e513778 QHexEdit did not meet performance goals. Removing to try other options. 2020-08-18 22:19:53 -04:00
Matthew Budd d4d59b0c01 Trying out different QHexEdit function as QTextEdit was too inefficient. 2020-08-17 22:35:27 -04:00
Matthew Budd 4e7e82dbcd Qt Hex Editor in work. 2020-08-16 21:24:27 -04:00
Matthew Budd 490289a6f7 Qt Hex editor in work. 2020-08-16 10:38:42 -04:00
Matthew Budd 11ccdf77b4 Added initial framework for hex editor. 2020-08-15 21:41:06 -04:00
Matthew Budd b749c0982e Changed cheat window text entry field sizing to be proportional to average font char width. 2020-08-15 21:20:58 -04:00
Matthew Budd 3f07f63aea Merge branch 'master' of https://github.com/mjbudd77/fceux 2020-08-15 15:10:39 -04:00
Matthew Budd cf9d6798b3 Added more debug output to GTK GLX window 2020-08-15 14:45:44 -04:00
mjbudd77 19f16f5655
Merge pull request #165 from mjbudd77/master
Added logic to generate default game pad mappings for new controllers
2020-08-15 14:39:32 -04:00
Matthew Budd 9dee79bd8b Added game pad default mapping file generation logic for new controllers to Qt GUI. 2020-08-15 13:27:07 -04:00
Matthew Budd 0c4af737dd Added logic to GTK GUI to generate default mapping files for new game controllers. 2020-08-15 13:18:16 -04:00
mjbudd77 5752310804
Merge pull request #164 from mjbudd77/master
Cleaned up a few compiler and cppcheck warnings in code base. There a…
2020-08-14 23:11:16 -04:00
Matthew Budd ebae060035 Cleaned up a few compiler and cppcheck warnings in code base. There are still quite a few more TODO. 2020-08-14 22:15:47 -04:00
Matthew Budd e9dd3b162e Merge branch 'master' of ../../fceux 2020-08-14 21:22:07 -04:00
Matthew Budd d2a00887a0 Header file relative pathing fixes for GTK SDL GUI. 2020-08-14 21:19:50 -04:00
mjbudd77 abadbc8d06
Merge pull request #163 from mjbudd77/master
Updated GTK GUI GLX window / context setup to better match glx code f…
2020-08-14 21:03:10 -04:00
Matthew Budd c2a322e48f Updated GTK GUI GLX window / context setup to better match glx code from snes9x GTK backend. 2020-08-14 20:42:54 -04:00
mjbudd77 267377a367
Merge pull request #162 from mjbudd77/master
Minor code cleanup in SDL game pad config. Small logic change to joys…
2020-08-13 22:35:16 -04:00
Matthew Budd 3618f30f0d Minor code cleanup in SDL game pad config. Small logic change to joystick init. 2020-08-13 21:08:02 -04:00
mjbudd77 ccee5cbd82
Merge pull request #159 from mjbudd77/master
Updated TODO-SDL File
2020-08-12 21:40:12 -04:00
Matthew Budd ee318e291b Merge branch 'master' of ../TasVideo/fceux into development 2020-08-12 21:19:24 -04:00
Matthew Budd baefa987b9 Added a SDL Qt vs GTK GUI capability matrix to the TODO-SDL file. 2020-08-12 21:15:13 -04:00
mjbudd77 a2aa55a69c
Merge pull request #158 from mjbudd77/master
Build Options and Documentation Updates for SDL README
2020-08-11 22:25:47 -04:00
Matthew Budd 0751904693 Added FCEUX debugger compiler flag to cmake build 2020-08-11 21:19:52 -04:00
Matthew Budd d11cea3a98 Added OpenGL preference (GLVND or LEGACY) command line options to cmake build. 2020-08-11 20:58:54 -04:00
Matthew Budd d3b0ce3acb Updated build README for building GTK based GUI. 2020-08-11 20:31:53 -04:00
g0me3 79d81e513c datach barcode reader input changed a little bit control code recalculating logic.
now if you input full 13 or 8 digit code the control code won't be recalculated.
only if you input partial 12- or 7-digit code without control number it will calculate it.
this is done because some game uses it's own control code calc logic and need to be input as is.
otherwise it will be recalculated and won't be accepted by the game.
2020-08-11 20:28:11 +03:00
mjbudd77 fffe6a77dd
Merge pull request #155 from mjbudd77/master
Back port of SDL2 Game Controller Updates from Qt to GTK GUI
2020-08-10 21:42:36 -04:00
Matthew Budd b16514fcb4 A few box spacing updates on GTK gamepad config window. 2020-08-10 21:12:40 -04:00
Matthew Budd 1c6851c3f0 Bug fix for SDL joystick not working using SDL video driver. By default SDL joystick inputs are ignored if the SDL window does not have focus. Set SDL HINT to allow for background joystick inputs to accepted (i.e. joystick inputs come through even though window not in focus). 2020-08-10 21:04:42 -04:00
Matthew Budd cd99eaecd3 Added missing files. 2020-08-09 22:20:02 -04:00
Matthew Budd 1d417a49ae Back ported SDL2 game controller improvements to GTK from QT GUI. 2020-08-09 22:19:38 -04:00
Matthew Budd 1331aeca14 input device select combo box logic in work for GTK Gui. 2020-08-09 07:11:28 -04:00
Matthew Budd 5bfbbbba7e Back ported SDL joystick/gamepad improvements from Qt to GTK gui. 2020-08-09 05:55:59 -04:00
Matthew Budd 61894c7772 Bug fix to sync video driver selection on GTK GUI at init. 2020-08-09 05:21:29 -04:00
Matthew Budd 989d39c26e Back ported SDL sound bug fixes from QT to GTK GUI. 2020-08-09 05:17:48 -04:00
mjbudd77 9723a0612f
Merge pull request #154 from mjbudd77/master
GTK SDL GUI Video Driver Options
2020-08-07 22:45:20 -04:00
Matthew Budd 33c5b328b2 Changed sdl video resize logic to ensure that it is always syncd to the size of the drawing area. 2020-08-07 21:44:12 -04:00
Matthew Budd a2fbb33d68 Added video driver select option for GTK/SDL GUI. Currently there are 3 possible video drivers: OpenGL GLX, SDL2, and Cairo. 2020-08-07 21:22:07 -04:00
mjbudd77 550d73b217
Merge pull request #153 from mjbudd77/master
GTK/SDL GUI added to cmake build
2020-08-07 18:07:58 -04:00
Matthew Budd 5e2ac49da7 Bug fix for LSB_FIRST definition in GTK build in cmake environment. 2020-08-07 17:09:12 -04:00
Matthew Budd 1b0888e146 Added git url/revision info to the GTK/SDL GUI about window. Added git url/revision information to command line help print out for both GTK and QT versions. 2020-08-07 16:59:27 -04:00
Matthew Budd bb4adb36b4 Merge branch 'master' of ../TasVideo/fceux 2020-08-07 16:34:39 -04:00
mjbud77 80e1c6d35e Bug fix for debian package creation script to include both gtk and Qt versions. 2020-08-07 19:20:20 +00:00
Matthew Budd 4e157c37fa Added ldd print of gtk fceux executable. 2020-08-07 14:59:55 -04:00
mjbudd77 1b9a36de17 Added GTK3 dependency install back into pipeline for GTK GUI version build 2020-08-07 13:56:26 -04:00
zeromus 6f4bbacca0 fix height of win32 inputbox. fixes #145 2020-08-07 13:55:50 -04:00
mjbudd77 b13eaaccd0 Added code to linux build script to also build GTK3/SDL2 version of fceux GUI in addition to the QT5/SDL2 version. Only the Linux pipeline will attempt to build and package both the GTK and QT GUIs. The MacOSX will only build and pacakge QT version. 2020-08-07 13:40:28 -04:00
zeromus 398cce5f3d Create CNAME 2020-08-07 13:29:02 -04:00
mjbudd77 d582615d76 Merge branch 'master' into development 2020-08-07 13:25:33 -04:00
mjbudd77 d416ceb0c4 Added GTK3/SDL2 based fceux build capability into cmake build file. It is configurable from the command line which GUI to build GTK or QT (default). 2020-08-07 13:23:43 -04:00
mjbudd77 815bb17644 Modified SConstruct to use more reliable pkg-config. 2020-08-07 10:00:22 -04:00
mjbudd77 9cd4b59cb3
Merge pull request #151 from mjbudd77/master
Changed GTK GUI shutdown order of execution so that the main window c…
2020-08-06 21:40:53 -04:00
Matthew Budd 27875aac17 Changed GTK GUI shutdown order of execution so that the main window cannot be deleted until the event loop has fully exited. 2020-08-06 21:36:50 -04:00
mjbudd77 75f04fd1df
Merge pull request #148 from mjbudd77/master
GTK GUI Quit Logic Change
2020-08-05 21:02:24 -04:00
Matthew Budd ae30dc41c3 Merge branch 'master' of ../TasVideo/fceux 2020-08-05 20:43:02 -04:00
Matthew Budd 46d02fc61a Modified GTK GUI quit logic to just set a flag in the quit callback function to allow the gui exit its main loop under normal conditions and then proceed with an orderly cleanup/shutdown outside of the GTK event loop. 2020-08-05 20:33:19 -04:00
mjbudd77 06352de68a
Merge pull request #146 from mjbudd77/master
QT SDL cheat window minor update.
2020-08-03 22:03:44 -04:00
Matthew Budd b7067cc1da Removed debug print statement. 2020-08-03 21:12:54 -04:00
Matthew Budd bbd0fe4470 Added cheat save file logic to cheat window export button. 2020-08-03 21:04:58 -04:00
Matthew Budd 4a494f8dc1 Added code to center text inside numerical entry fields on the cheat window. 2020-08-03 20:30:45 -04:00
mjbudd77 0fdf8cec14 Changed character used for width to be an X instead of 0 2020-08-03 20:20:48 -04:00
mjbudd77 4f33d2016d
Merge pull request #144 from mjbudd77/master
Qt / SDL Cheat Window Added
2020-08-02 22:06:03 -04:00
Matthew Budd b0529d564a Added pause while cheat window is active checkbox logic. 2020-08-02 21:19:32 -04:00
Matthew Budd 7c84e7b383 Added global cheat enable and auto load/save checkboxes 2020-08-02 20:58:59 -04:00
Matthew Budd e99cc1d64d Added logic to lock emulation when modifying cheats. 2020-08-02 20:31:21 -04:00
Matthew Budd 7d6f1fdacc Added logic to lock emulation when adding or deleting cheats. 2020-08-02 20:29:24 -04:00
Matthew Budd 53c96c9fbd Added button sensitivity logic for cheat search window. 2020-08-02 20:23:12 -04:00
Matthew Budd 2905c105bf Added cheat add/delete button logic. 2020-08-02 20:04:59 -04:00
Matthew Budd 34279fd5ac Added logic for modify active cheat parameter update button. 2020-08-01 21:33:43 -04:00
Matthew Budd 2d57b88e64 Added code to populate active cheat list. 2020-07-31 22:03:14 -04:00
Matthew Budd 3e1cfb3a94 More cheat search updates. 2020-07-31 20:18:39 -04:00
Matthew Budd b6871bc36d Added callbacks for cheat search buttons. 2020-07-31 20:14:17 -04:00
Matthew Budd cf54c8d225 Cheat window widget layout in work. 2020-07-30 23:06:02 -04:00
Matthew Budd bec89112e2 More updates to cheat window. 2020-07-28 22:54:52 -04:00
Matthew Budd 5088991a8d Added more widgets to the cheat window. 2020-07-28 21:37:28 -04:00
Matthew Budd c76d70582a Adding GUI framework for cheat window. 2020-07-27 22:26:41 -04:00
Matthew Budd 3c2a93d7c4 Added a protection in the audio output loop to break out of the loop if the audio sink is not draining. This will prevent lockups in the event that the audio output device has failed. 2020-07-27 21:20:25 -04:00
mjbudd77 42df5f6171
Merge pull request #141 from mjbudd77/master
Qt SDL GUI Message Dialog Updates
2020-07-26 22:41:58 -04:00
Matthew Budd 3528adea30 Changed error message window to use QMessageBox instead of QErrorMessage to have more control over display image. 2020-07-26 22:04:31 -04:00
Matthew Budd e918f8562a Added an error message window to the GUI. Added About Qt window to GUI. 2020-07-26 21:31:32 -04:00
Matthew Budd 0112782eab Added logic to change color of changed button mapping to red until they are save to a profile. Also, added a warning message to inform user of unsaved mappings. 2020-07-26 14:07:28 -04:00
Matthew Budd 91ac62e998 Merge branch 'master' of https://github.com/TASVideos/fceux 2020-07-25 19:40:50 -04:00
g0me3 f2eb89c629 Merge branch 'master' of https://github.com/TASVideos/fceux 2020-07-25 21:22:13 +03:00
g0me3 6145fe22ab bandai and sunsoft barcode readers support GUI restore for WIN build
157 mapper (barcode battler) support for main unit's and cart's eeproms. all datach games are able to save properly now.
2020-07-25 21:21:37 +03:00
mjbudd77 f1d36ae7c7
Merge pull request #139 from mjbudd77/master
Qt SDL GUI Game Pad Config Updates
2020-07-25 10:30:46 -04:00
Matthew Budd db67cd0d18 Merge branch 'master' of https://github.com/TASVideos/fceux 2020-07-25 10:22:46 -04:00
Matthew Budd b48b81c938 Commented out command line INOP inputCfg functionality. With new GUI gamepad config, this should not be required anymore. 2020-07-24 23:04:56 -04:00
Matthew Budd 976266547c Bug fix for shutdown of joystick system. 2020-07-24 22:41:19 -04:00
Matthew Budd 4175ca6052 Added logic to skip unassigned buttons in the config. 2020-07-24 22:26:09 -04:00
Matthew Budd 3db85cd1d2 Game pad code cleanup. 2020-07-24 22:12:45 -04:00
Matthew Budd da04bbdfc5 Added logic to init game pad mappings at startup 2020-07-24 21:47:57 -04:00
Matthew Budd 67e87787e3 Added logic to load default keyboard mapping. 2020-07-24 18:44:18 -04:00
mjbudd77 8afeb43759 Added code to allow for deletion of game pad profiles. 2020-07-24 17:14:03 -04:00
mjbudd77 b71630379a Added game pad button mapping profile logic. 2020-07-24 16:56:48 -04:00
mjbudd77 675b73cbed Added mapping profile widgets. Still TODO, write code behind them. 2020-07-24 11:05:20 -04:00
mjbudd77 b815fbfe47 Added logic to show state of mapped buttons on game pad config page. 2020-07-24 09:50:03 -04:00
Matthew Budd e50d6e22ed Added logic to load default game pad button bindings from SDL database. 2020-07-24 00:11:11 -04:00
Matthew Budd e018b4b945 Removed unused button config arrays in preparation for implementing SDL2 game controller setup. 2020-07-23 18:43:45 -04:00
Matthew Budd 10b84fa47c Added SDL game controller logic to sdl-joystick. Preparing to re-vamp the input module. 2020-07-22 22:17:53 -04:00
mjbudd77 9faf29ad73
Merge pull request #137 from mjbudd77/master
Added Mac OS X interim build links to web page and readme.md.
2020-07-21 22:02:05 -04:00
Matthew Budd 3d72eed4fa Added Mac OS X interim build links to web page and readme.md. 2020-07-21 21:58:04 -04:00
mjbudd77 3fad48edea
Merge pull request #136 from mjbudd77/master
Qt SDL Port Video Driver and Menu Bar Config Options
2020-07-21 21:42:57 -04:00
Matthew Budd 02c3012215 Added a checkbox option to the gui config page to allow for the gui to use the native OS menu bar for mac os and certain linux distros. 2020-07-21 20:06:25 -04:00
Jason W. Thompson 79d3396d6e Rename "Real Zapper" to "LCD Compatible Zapper"
Per feedback, "Real Zapper" was renamed to "LCD Compatible Zapper" to better reflect the purpose of this input device.
2020-07-20 22:28:29 -05:00
Matthew Budd 3fc99f7d30 Added logic to allow the use to optionally select either the Qt/OpenGL or SDL as the video driver. 2020-07-20 22:45:33 -04:00
Matthew Budd f59bf15d30 Created a console utilities file to hold misc functions used by the Qt/SDL port. 2020-07-20 21:06:49 -04:00
mjbudd77 92724b50d3
Merge pull request #135 from mjbudd77/master
Qt SDL Lua Console Window
2020-07-20 20:05:14 -04:00
Matthew Budd 982ed7689d Added Lua window hooks to old sdl port that are now needed by core library. These functions do not do much on the old port and really only exist to resolve linker issues. 2020-07-20 19:36:22 -04:00
zeromus 2c5502116e this sln was not configured correctly for forcing vs2015... which is what we're using now, i guess 2020-07-20 11:21:46 -04:00
Matthew Budd 4e9601a241 Added logic for the lua output display console. 2020-07-19 21:33:20 -04:00
Matthew Budd 122473b575 Added Lua control window. 2020-07-19 21:15:56 -04:00
Matthew Budd 188320147a Bug fix for file name patterns used with QFileDialog 2020-07-19 20:04:42 -04:00
Matthew Budd 397e17ba99 Added a GUI config window to for misc GUI options. Added an option to use the native OS file browser when looking for files. 2020-07-19 18:43:42 -04:00
mjbudd77 d7dac74d9a
Merge pull request #134 from mjbudd77/master
Qt SDL Gui Palette Config Window Updates
2020-07-19 10:57:11 -04:00
Matthew Budd b846ed31db Merge branch 'master' of ../TasVideo/fceux 2020-07-19 10:12:20 -04:00
Matthew Budd 564e8b228e Updated comments in the INSTALL readme file. 2020-07-19 10:02:36 -04:00
Jason W. Thompson ca472ee6ae Add Real Zapper support
Adds a two button controller that can be used to represent the states of a real Zapper.
2020-07-18 23:32:29 -05:00
Jason W. Thompson 9d29392af7 Add instructions to install XP toolset 2020-07-19 00:27:02 -04:00
Matthew Budd c0febe1d3e Added a hook in the core palette emulation to allow for the gui to determine if a custom user palette is available and in use. 2020-07-18 21:58:38 -04:00
owomomo 96a116e096
Shortcuts of bookmarks in Hex Editor can be customized. (#129) 2020-07-18 18:43:23 -04:00
Matthew Budd 002481c6b9 Added a few more options to the palette config window. 2020-07-18 15:19:01 -04:00
mjbudd77 49a330532d
Merge pull request #131 from mjbudd77/master
Qt GUI Palette Config Window Update
2020-07-17 22:28:25 -04:00
Matthew Budd 2d4451a43c Added logic in the emulator thread to check if requests to acquire the mutex have been made by the gui. If requests are found, the emulator thread will sleep so that the gui thread can gain access and service the requests. 2020-07-17 22:14:20 -04:00
Matthew Budd 6fb247d785 Changed QMutex to be recursive to prevent dead-locks in gui and emulator. A few bug fixes for the palette config window. 2020-07-17 21:50:23 -04:00
Matthew Budd be7dcda45e Added palette config window and logic. 2020-07-16 21:18:57 -04:00
owomomo 000106b00b Shortcuts of bookmarks in Hex Editor can be customized. 2020-07-16 23:01:43 +08:00
owomomo e466c7f6e3
Merge pull request #21 from TASVideos/master
Sync code to the newest
2020-07-15 22:47:37 +08:00
mjbudd77 ce495a6434
Merge pull request #127 from mjbudd77/master
SDL GUI Ported to Qt5 from GTK3
2020-07-12 21:06:55 -04:00
Matthew Budd 1cdb6fc9fa Updated SDL README and TODO files. 2020-07-12 20:54:18 -04:00
Matthew Budd 7df1fdd25f Added logic to Mac OS pipeline to save generated DMG package as an artifact. 2020-07-12 16:11:23 -04:00
mjbudd77 f8558a9636 Added component runtime to cpack line 2020-07-12 15:43:48 -04:00
mjbudd77 08beead253 Successful addition of fceux icon to mac osx dmg package. 2020-07-12 14:10:32 -04:00
Matthew Budd 44750bf88f Added a higher resolution icon to project. 2020-07-12 12:53:41 -04:00
Matthew Budd 71f64529bf Added sudo calls to mac os build 2020-07-12 12:33:42 -04:00
mjbudd77 70a2b3023a Added logic to generate a mac osx drag and drop package. 2020-07-12 11:50:18 -04:00
mjbudd77 1a3427685e Added logic to print shared object dependencies of mac os executable. 2020-07-12 09:00:17 -04:00
Matthew Budd 35b0227809 Added logic to initialize the video PAL combo box with proper config value at window creation. 2020-07-11 22:37:29 -04:00
Matthew Budd 3a6c861326 Bug fix for SDL port lock up when selecting dendy video option. 2020-07-11 22:36:55 -04:00
Matthew Budd c93d0b3113 Added command line help output. 2020-07-11 22:09:51 -04:00
Matthew Budd 76d8b829bd Bug fix for file browser initial directory calculation. 2020-07-11 21:29:23 -04:00
Matthew Budd d43383d8bf Fixed directory pathing for file browser. 2020-07-11 21:14:37 -04:00
Matthew Budd b3c51ef4b1 Added movie menu logic to gui. 2020-07-11 20:48:48 -04:00
Matthew Budd f2dc2c5755 Added debug statements to genGitHdr script. 2020-07-11 20:04:58 -04:00
Matthew Budd 96df0c25e1 Added logic to auto embed the git URL and revision into the executable so that it can be displayed on the About dialog window. 2020-07-11 19:52:14 -04:00
Matthew Budd 9fc2d905de Added script to generate C header with git repo url and rev info. 2020-07-11 17:48:14 -04:00
Matthew Budd 889250b720 Updated About Window. 2020-07-11 17:26:08 -04:00
Matthew Budd f436408b06 Updated about window to use embedded png. 2020-07-11 17:06:22 -04:00
Matthew Budd 2c370389fd Added window icon resource. 2020-07-11 16:55:45 -04:00
Matthew Budd 32116210b8 About FCEUX window in work. 2020-07-11 16:11:48 -04:00
Matthew Budd 210e04fe92 Added FDS menu functionality. 2020-07-11 14:42:02 -04:00
Matthew Budd 6fcfb2af7a Added insert coin menu functionality. 2020-07-11 14:21:20 -04:00
Matthew Budd b4280ee33d Added menu logic to load Game Genie ROM file 2020-07-11 14:03:40 -04:00
Matthew Budd c41cd863c6 Added game genie enable menu logic. 2020-07-11 12:59:14 -04:00
Matthew Budd 74afb50949 Added basic functions of emulation menu 2020-07-11 11:58:11 -04:00
Matthew Budd b830e0aae5 Added screen shot menu function. 2020-07-11 10:29:03 -04:00
mjbudd77 0188c11e8b Added OpenGL preference variable to cmake build file to get rid of nuisance warning. 2020-07-10 15:08:05 -04:00
mjbudd77 69a761a477 More Cmake fixes between linux and mac os 2020-07-10 14:57:55 -04:00
mjbudd77 cc4ce19784 A few build fixes for the mac os with cmake. 2020-07-10 14:48:46 -04:00
mjbudd77 9b0fb8efe4 Moved MAC OSX build to cmake instead of qmake. 2020-07-10 14:09:33 -04:00
mjbudd77 cb453fa194 Moved linux pipeline to cmake instead of qmake. 2020-07-10 13:51:32 -04:00
mjbudd77 321ea729d4 Successful build of Qt GUI on MAC OSX using cmake. 2020-07-10 11:22:10 -04:00
mjbudd77 1206fcebbd Successful build of QT gui using cmake instead of qmake. 2020-07-10 10:59:07 -04:00
Matthew Budd 26e320b163 Bug fix for small memory leak on window init. 2020-07-09 21:38:31 -04:00
Matthew Budd 67b7c34576 Added change state select menu radio button logic. 2020-07-09 21:33:53 -04:00
Matthew Budd 0d8c442b35 Added a few state load menu items. 2020-07-09 21:00:04 -04:00
Matthew Budd 5958dc18fb Added fullscreen menu function. 2020-07-07 21:45:24 -04:00
Matthew Budd d87b5c7ab7 Added logic for auto-resume play menu item. 2020-07-07 21:26:15 -04:00
Matthew Budd 46271dfa61 Added video region combo box logic. 2020-07-07 21:06:24 -04:00
Matthew Budd ea1782bfe5 Added checkbox logic for video config window. 2020-07-07 20:53:31 -04:00
Matthew Budd 313bba68f9 Added missing tr function calls around string literals. 2020-07-07 18:49:58 -04:00
Matthew Budd ce0a8fdf63 Added framework for video config window. Still TODO writing logic. 2020-07-07 08:59:47 -04:00
Matthew Budd b2c094a6bf Added QT Hotkey configuration window. 2020-07-06 21:44:23 -04:00
Matthew Budd 1a99903933 Changed name of main window periodic update function so that is not the same name as QWidget base update function. 2020-07-05 22:10:28 -04:00
Matthew Budd f9b5796ef0 Created a local buffer for the openGL video image to better sync the image with the drawing frame in the gui thread. 2020-07-05 21:40:19 -04:00
Matthew Budd 4dca42bfca Moved the physical input update to the main thread since the MAC OS X SDL2 requires it to be so. 2020-07-05 21:16:31 -04:00
Matthew Budd 70a00fab13 Added mutex sync when changing sound properties of the emulator. 2020-07-05 16:54:33 -04:00
Matthew Budd ac43cc3e62 Renamed gameViewer to ConsoleViewer. 2020-07-05 16:44:36 -04:00
Matthew Budd 824bdda083 Renamed a few of the files and class objects to be more appropriate to what the actually are. 2020-07-05 16:37:26 -04:00
Matthew Budd f2e7b66c61 changed QThread setup to be a separate object from the console window. 2020-07-05 16:27:13 -04:00
Matthew Budd acc02ee98e Moved FCEU emulation to its own thread for better timing control. 2020-07-05 16:11:53 -04:00
Matthew Budd c496c0f281 Added logic to increase/decrease emulation speed via hotkeys using QTimer system. Bug fix for = key Qt to SDL mapping. 2020-07-03 21:52:27 -04:00
mjbudd77 72141845f0 Changed gl_shm name to nes_shm. Added audio circular buffer to shared memory. 2020-07-03 15:58:53 -04:00
Matthew Budd 7eca2978ed Minor removal of underscored F on File menu. 2020-07-02 21:08:46 -04:00
Matthew Budd 91e5427258 Successful test of full sound config window functionality. 2020-07-02 21:05:08 -04:00
Matthew Budd 021452b7f0 Sound configure window in work. 2020-07-02 20:49:52 -04:00
Matthew Budd afc3a61014 Started putting together window framework for sound configuration. 2020-07-01 22:03:59 -04:00
Matthew Budd ab664db06c Big fix for linux build script, make directories before installing files. 2020-07-01 20:47:57 -04:00
Matthew Budd e79650845f Added install commands in pipeline script 2020-07-01 20:33:32 -04:00
Matthew Budd 4a52e9d374 Added qmake install prefix to linux build script. 2020-07-01 20:15:34 -04:00
Matthew Budd e748fb67f4 Added QT5 dependency installation to the linux build 2020-06-30 22:28:02 -04:00
Matthew Budd 9407867e18 Added qmake in to linux pipeline 2020-06-30 22:04:50 -04:00
Matthew Budd 588d566b92 Added comments into macOS pipeline script. Added other OSs back into pipeline. 2020-06-30 21:37:09 -04:00
Matthew Budd 2fbf934633 MacOS build take 4 2020-06-30 21:28:18 -04:00
Matthew Budd fa8b2ce810 macOS take 3 2020-06-30 20:53:54 -04:00
Matthew Budd e161869bf5 Mac standalone test 2020-06-30 20:50:11 -04:00
Matthew Budd bb312d8a55 Take 2 mac build 2020-06-30 20:42:16 -04:00
Matthew Budd e8d3b9da46 Added macOS build script for pipeline. 2020-06-30 20:20:50 -04:00
mjbudd77 104f7c465e Updated init call for game viewer SDL to match GL. 2020-06-30 20:04:17 -04:00
mjbudd77 d38f1b0c1b Build fix for minizip include in MAC OS 2020-06-30 20:00:29 -04:00
mjbudd77 2762d53791 Cleaned up game viewer GL. 2020-06-30 19:53:29 -04:00
mjbudd77 e2b853661d More testing with SDL game viewer driver, keeps drawing over the menu
bar on the mac os. Thinking native GL inside QT is the way to go.
2020-06-30 09:22:59 -04:00
mjbudd77 41b54b9813 Solved MAC OpenGL scaling issue. Turns out it was related to the retina
screen having a 2x device to framebuffer scaling.
2020-06-29 23:24:41 -04:00
Matthew Budd c6b46bfcc1 Added software pixel remapper function to openGL renderer. 2020-06-29 22:24:34 -04:00
Matthew Budd 26fe3c7da5 Added logic to keep proper aspect ratio on SDL driven screen. 2020-06-29 21:13:05 -04:00
Matthew Budd 53dcb48a90 Successful test of SDL video driver inside QT window. 2020-06-29 10:11:02 -04:00
Matthew Budd 95d055da2c Renamed openGL based game viewer so to distinguish it from others that will be tested. 2020-06-29 08:15:26 -04:00
Matthew Budd 970afc2bea Added logic to use GL_TEXTURE_RECTANGLE instead of GL_TEXTURE_2D 2020-06-28 10:11:03 -04:00
Matthew Budd 59462545ca Gui controller calibration fixes and enhancements. 2020-06-27 21:08:02 -04:00
Matthew Budd 7ba7ef4b82 Include path fixes for qmake incorrectly marking sdl folder for heading includes. 2020-06-27 20:07:24 -04:00
Matthew Budd 1980dd8c5b Game Pad calibration page still in work. 2020-06-26 21:56:26 -04:00
Matthew Budd cb664b44a0 commented out debug print statement. 2020-06-26 20:32:44 -04:00
Matthew Budd 950004503b Hooked up checkboxes on gamepad config page. 2020-06-26 20:27:20 -04:00
mjbudd77 002e9e0f34 Added logic to configure gamepad buttons. Still needs more testing. 2020-06-26 16:35:41 -04:00
Matthew Budd ee02883ac7 QT gamepad window in work. 2020-06-26 12:46:48 -04:00
Matthew Budd f1153bfc6b Successful test of loading ROM via QFileDialog, changed logic to not use native gnome file dialog as it is very lagged. 2020-06-26 09:29:47 -04:00
Matthew Budd d6ff002af0 Added keyboard QT to SDL2 key conversion functionality. 2020-06-24 21:57:43 -04:00
Matthew Budd f53bbc8cde Added logic to close game and shutdown FCEU system on window close. 2020-06-23 23:04:10 -04:00
Matthew Budd 095415790c Cleaned up unnecessary test code. 2020-06-23 22:55:48 -04:00
Matthew Budd 0352483a19 Successful display of video in QT gui. 2020-06-23 22:51:10 -04:00
Matthew Budd be4c650238 Starting new QT gui. 2020-06-23 20:40:43 -04:00
Matthew Budd fb9ee25800 Bug fix for cmake install target. 2020-06-20 00:54:26 -04:00
Matthew Budd 70a77cbe41 Added install target to cmake. 2020-06-20 00:53:18 -04:00
Matthew Budd 9a30cce921 Fixed compiler warning for unchecked fgets return value. 2020-06-20 00:39:44 -04:00
Matthew Budd 6271d63ba6 Added cmake package check for zlib 2020-06-20 00:36:43 -04:00
Matthew Budd 714e7bbfb2 Added logic to make cmake output verbose. 2020-06-20 00:20:58 -04:00
Matthew Budd 36b9cf3fb3 Fixed references to print error function in win tas editor. 2020-06-20 00:13:08 -04:00
Matthew Budd cc15338ebb Cast const char * to char * to get past winbuild.... this is not the best way to go, but it works. 2020-06-20 00:06:47 -04:00
Matthew Budd 7919071a25 Cleaned up gcc compiler warning : ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2020-06-19 23:58:12 -04:00
Brad Smith 309e30bea6
jekyll exclude list
using multiline syntax and alphabetizing
added exe files explicitly, maybe this will finally suppress the warning e-mail... but probably not
2020-06-18 16:41:21 -04:00
bbbradsmith 79c42a8eea manifest pragma to specify windows common controls version 6
(64-bit bit version uses older control styles without this)
2020-06-18 05:18:27 -04:00
Brad Smith aa06113dac
contact link for bugs/requests should go to github 2020-06-17 06:55:40 -04:00
Brad Smith 6a1a50f850
win64_build.bat can't find 7z.dll 2020-06-17 06:49:30 -04:00
Brad Smith bd64b513e0
jekyll config to suppress files not part of the website (fix warning emails) 2020-06-17 06:31:08 -04:00
bbbradsmith 8aaaacfc9f win64 rename executable to fceux64.exe
if people are going to be testing this might cut down error report confusion
2020-06-17 04:59:23 -04:00
bbbradsmith e5f671a9e0 links to interim builds 2020-06-17 04:17:54 -04:00
bbbradsmith 0d1ffc3ffd appveyor only job name needs - prefix 2020-06-17 04:17:54 -04:00
bbbradsmith 379662ae25 appveyor jobs separated and named 2020-06-17 04:17:54 -04:00
bbbradsmith 0cfb6b8dd4 win64 zip archive files from other folders need directory stripped 2020-06-17 03:21:41 -04:00
bbbradsmith 1daf99614b win64 appveyor build 2020-06-17 03:21:41 -04:00
bbbradsmith 1f4bc4bb89 fix long pointer casting in Win64 build 2020-06-17 03:21:41 -04:00
zeromus 13b5c1f67a change an outdated link from googlecode to github. there are a lot more.. i dont have time for this 2020-06-17 02:43:35 -04:00
zeromus 45438334c9 add an index.html, so hopefully github.io will use this to bounce to the web directory? 2020-06-17 02:27:14 -04:00
Brad Smith fe4472f574
fix broken win32 appveyor build (#121)
* fix broken win32 appveyor build:
- does not report build errors!
- wrong configuration, should be release
- should include auxlib.lua
2020-06-17 01:50:38 -04:00
owomomo 876455a4f7
Merge pull request #20 from TASVideos/master
Sync code to the newest
2020-06-17 11:46:54 +08:00
mjbudd77 4c6a5b5313
Merge pull request #119 from mjbudd77/master
Appveyor Artifacts Fix
2020-06-16 22:13:34 -04:00
Matthew Budd 3490be8c83 Merge branch 'development' 2020-06-16 22:01:44 -04:00
Matt Budd 531afbe404 Trying again.... 2020-06-16 21:51:45 -04:00
Matt Budd 22c58e1a21 Trying again with artifacts 2020-06-16 21:45:16 -04:00
Matt Budd 5e30f22381 Trying out not using archive script and just pushing directly to
appveyor artifacts
2020-06-16 21:33:57 -04:00
Matt Budd be6dff9d68 Added 7z.dll to zipped package file. 2020-06-16 21:23:52 -04:00
Matt Budd bce4ea30f8 Added win32 build script for pipeline. 2020-06-16 21:14:44 -04:00
Matthew Budd fcf2135426 win32 build packaging pathing fixes. 2020-06-16 09:47:28 -04:00
Matthew Budd 968c15f0f7 Added windows packaging script call to appveyor config. 2020-06-16 09:38:15 -04:00
Matthew Budd d094891bb4 Testing build artifact push 2020-06-16 09:12:55 -04:00
Matthew Budd ad69657d02 Resolved a few more cppcheck/compiler warnings in core input module. 2020-06-15 22:53:45 -04:00
Matthew Budd e6329b911a Resolved cppcheck warnings in win/header_editor.cpp 2020-06-15 22:21:54 -04:00
Matthew Budd 96cba27965 Resolved cppcheck warnings in cheats.cpp. 2020-06-15 22:09:12 -04:00
Matthew Budd 9eaad6e14d Revolved Deallocating a deallocated pointer: buf warning in archive.cpp. 2020-06-15 21:58:13 -04:00
Matthew Budd ce03bf18e7 Resolved cppcheck warnings in OutputDS.cpp 2020-06-15 21:48:32 -04:00
mjbudd77 8490dd9800
Merge pull request #118 from TASVideos/linux_feature_updates
Linux feature updates
2020-06-15 21:32:21 -04:00
mjbudd77 b1b6a87c47
Merge pull request #117 from mjbudd77/master
SDL2 Update
2020-06-15 21:23:20 -04:00
Matthew Budd 9748d39169 Resolved dangerous usage of c_str(). The value returned by c_str() is invalid after this call 2020-06-14 20:11:59 -04:00
Matthew Budd c5bbd3cec5 Added uninitialized class members to constructor for debug window. 2020-06-14 19:55:36 -04:00
Matthew Budd f5e8b09200 Bug fix for enable/disabling of glx double buffering. Single buffering allows for faster emulation rates, double buffering is not allowing faster than 60hz due to vsync. 2020-06-14 10:15:47 -04:00
Matthew Budd a1c0e86026 Code cleanup, found that rendering of openGL graphics are limiting the max frame speed to 60 hz. Have not solution for it yet. 2020-06-13 20:07:01 -04:00
Matthew Budd b4b2cca9ec Bug fix for menu visibility toggle. 2020-06-13 12:51:57 -04:00
Matthew Budd 6de7a68149 Added a TODO for fixing the menu bar hide function. 2020-06-12 21:34:18 -04:00
Matthew Budd a4309af847 Removed SDL1 from pipeline build script. 2020-06-12 21:10:52 -04:00
Matthew Budd 6dd0ef841e Cleaned up unused variable. 2020-06-12 20:51:46 -04:00
Matthew Budd c440b8127e Bugfix for GUI hanging when gamepad config window is closed while waiting a button press. 2020-06-12 20:34:26 -04:00
Matthew Budd d340c1465e Removed the last of the SDL1 specific functions. 2020-06-12 19:48:51 -04:00
Matthew Budd 47ad3b1dee More SDL1 cleanup. 2020-06-12 19:40:46 -04:00
Matthew Budd 0a61bab99e More SDL1 cleanup. 2020-06-12 19:14:26 -04:00
Matthew Budd 4cbfed2a72 Clean up of input and video files. Removed SDL1 code. 2020-06-12 18:59:38 -04:00
Matthew Budd 1463e7c0f8 Added logic to now pass ALT + Return to the SDL event queue as the is fullscreen toggle that is handled by GTK. 2020-06-09 22:09:29 -04:00
Matthew Budd d086714040 Bug fix for full screen mode update. 2020-06-09 21:47:07 -04:00
Matthew Budd cfbe2dc5f3 Bug fixes for GL linear filters and double buffering options. 2020-06-09 09:23:32 -04:00
Matthew Budd 3e2802a2de Bug fix for switching between openGL and cairo graphics contexts. 2020-06-09 08:44:51 -04:00
Matthew Budd 9db334275f Added logic to allow for switching from openGL to cairo draw functions. There is still an issue with the GTK draw update stops getting called when switch from openGL to cairo. 2020-06-08 09:14:01 -04:00
Matthew Budd 79b796f790 Implementing secondary cairo interface. 2020-06-07 13:58:09 -04:00
Matthew Budd 5bbbd0e8e7 Successful use of GLX openGL inside gtk3 window. This eliminates the need for SDL video. 2020-06-07 10:54:00 -04:00
Matthew Budd 4f27c58856 Moved poor performing cairo draw routines into their own functions. Removed GtkGlArea experimental code that did not work. 2020-06-07 09:32:47 -04:00
Matthew Budd 76df04d830 Added an experimental shared memory interface to allow for the video window to be a separate process. 2020-06-06 22:53:34 -04:00
Matthew Budd 6b406e411f Bug fixes for SDL2 keyboard interaction. 2020-06-06 09:02:36 -04:00
Matthew Budd 8c2cea1ed4 Added logic to change how full screen mode works with cairo drawing. 2020-06-05 21:23:33 -04:00
Matthew Budd 1fc0725e94 Successful display of graphics using cairo. Not as efficient as other methods but works. 2020-06-05 21:08:53 -04:00
mjbudd77 eeacd3c1d0
Merge pull request #116 from mjbudd77/master
Linux GTK GUI Feature Update
2020-06-05 08:01:33 -04:00
Matthew Budd 88e0c838e2 Merge https://github.com/TASVideos/fceux 2020-06-05 07:37:16 -04:00
Brad Smith 914a22383b
point source link at Github, point interim build at appveyor 2020-06-04 18:39:20 -04:00
Matthew Budd a59f1421b5 Added logic to refresh video display with last pass image data when inside debug loop. 2020-06-02 05:02:43 -04:00
Matthew Budd a25a5c914c Added a refresh list button to the active cheat list window to allow for the displayed list to be resync'd to the true active cheat list in case a new game ROM is loaded and new cheats are automatically loaded as a result. 2020-06-01 09:37:36 -04:00
Matthew Budd f929a7cc23 Added logic to cheat search window to make all sorting buttons insentive until the search reset button is hit once. 2020-06-01 09:32:51 -04:00
Matthew Budd a58f5dc5e0 Added logic to make cheat window edit/delete buttons insensitive unless a row is selected in treeview list. 2020-06-01 09:19:55 -04:00
zeromus 322c671ea7
Merge pull request #114 from owomomo/master
Bookmark description in the Hex Editor can be directly edit
2020-05-31 16:13:46 -05:00
zeromus 74b11ae84c
Merge pull request #103 from bbbradsmith/lua_zapper_set
zapper.set for lua
2020-05-31 16:13:29 -05:00
Matthew Budd 1ace69f5f9 Updated cheat list tree view to update entry fields when a line in the tree is selected with corresponding to the selected lines data. 2020-05-31 14:53:54 -04:00
Matthew Budd 51be2877ef Added logic to set registers via text entry boxes prior to running new instructions in debugger window. 2020-05-31 14:28:49 -04:00
Matthew Budd 8a0165f54b changed unimplemented functions on debugger window to be have insensitive widgets for now. 2020-05-31 13:53:07 -04:00
Matthew Budd acbd2cf3c8 Added logic to debugger to make breakpoint edit/delete button sensitive only when a breakpoint is selected in the tree view. 2020-05-31 13:48:58 -04:00
Matthew Budd 358a2309db Created separate debug menu for debugger and hex editor on main window. 2020-05-31 10:11:52 -04:00
Matthew Budd 34e8afe39d Bug fix for memory view window when handling large ROM displays. 2020-05-31 06:48:37 -04:00
Matthew Budd 9eab3f9e5d Added logic to sync memview activity coloring menu options at startup. 2020-05-30 19:44:30 -04:00
Matthew Budd 8c04403062 Added logic to allow for configurable coloring on memory view window. 2020-05-30 17:20:06 -04:00
Matthew Budd b7877f1a5e Added configurable fore and back ground color picking for memview window. 2020-05-30 11:26:36 -04:00
Matthew Budd a92874a5b6 Added logic to sync memory last pass values at startup. 2020-05-29 17:19:44 -04:00
Matthew Budd 7500446b2c Changed memory buffer setup to allow for color and activity data to be stored for each address. 2020-05-29 16:53:20 -04:00
Matthew Budd 6e33c48a1f Added memory view highlight activity coloring. Still TODO, add logic to switch colors in menu. 2020-05-29 15:00:33 -04:00
Matthew Budd d362161269 Added logic to only allow select key presses through to the textview widget on the debugger window. 2020-05-29 09:30:07 -04:00
Matthew Budd 5e0cbc1cbc Improved logic for hex editor button inputs. 2020-05-29 09:24:28 -04:00
Matthew Budd 0d9b9254ff memory viewer (hex editor) window viewport calculation improvement. Much more accurate and efficient than previous. 2020-05-29 06:52:53 -04:00
Matthew Budd 4c3bf6cf6c Removed automatic condition insertion on asm debug breakpoint entry window. 2020-05-28 21:57:40 -04:00
Matthew Budd 05de1a8356 Added PPU data display to debug window. 2020-05-28 21:54:14 -04:00
Matthew Budd 7d08906a89 Efficiency fixes for the debugger asm text view window. 2020-05-28 21:30:12 -04:00
Matthew Budd d15623b7e6 Added logic to seek the PC on the debug window every time a breakpoint is hit. 2020-05-27 06:46:20 -04:00
Matthew Budd 27e326ce90 Added seek to PC and seek to Addr logic. 2020-05-27 05:48:38 -04:00
Matthew Budd 64444129c3 Added callback functions for editing break cycle/instruction limit text fields 2020-05-25 20:44:39 -04:00
Matthew Budd 20af463419 Added a few hooks for break on cycles, instructions and bad opcode checkboxes. Still TODO add break cycle/instruction limit set logic. 2020-05-25 20:28:42 -04:00
Matthew Budd 41e1bdc592 Added logic to context menu to prefill breakpoint add popup. 2020-05-25 20:06:16 -04:00
Matthew Budd db17dc06e6 Added logic to capture asm list. 2020-05-25 09:28:22 -04:00
Matthew Budd c50b5581d6 Added logic to sync breakpoint edit window parameters to actual state upon opening. 2020-05-25 08:11:01 -04:00
Matthew Budd 2755c9cdb2 Added logic to allow for use of a enable checkbox to next to each breakpoint in the list 2020-05-24 21:31:29 -04:00
Matthew Budd 9f009a1850 Successful test of basic debugger functions. 2020-05-24 21:10:10 -04:00
Matthew Budd 613dd479d4 Added logic to set values for debugger window register displays. 2020-05-24 12:50:13 -04:00
Matthew Budd df236e3628 Added framework for breakpoint add/edit window. 2020-05-24 11:06:31 -04:00
Matthew Budd 4c199ef4fe Added initial framework for debugger window. 2020-05-23 23:25:28 -04:00
Matthew Budd 69790db498 Initial framework for debugger window in work. 2020-05-23 22:37:31 -04:00
Matthew Budd 40379a32dc Added a memory write boundary protection in the ram watch window to prevent users from writing into ROM memory area. 2020-05-23 16:28:43 -04:00
Matthew Budd c46d3e2a9d Added logic to clear edited row and column indices on null pointer error in RAM watch window. 2020-05-23 16:22:56 -04:00
Matthew Budd 484f299107 Added a NULL check to prevent crash in RAM watch window. 2020-05-23 16:20:40 -04:00
Matthew Budd 11d02a31c4 Added logic in memview window to make set address and value entry windows exit on an enter key press. 2020-05-23 16:09:14 -04:00
Matthew Budd 6947f2bd05 Bug fix for GUI initialization with a specified game on the command line. Sometimes the X-server needs a little more time to initialize the window. Added a short 0.1 sec usleep at startup to give X the time it needs. A few more cppcheck warning fixes made as well. 2020-05-23 15:08:03 -04:00
Matthew Budd 04a4b6de74 Added more functionality to the memview window. Now can view all memory types. New context menu allows for seeking to a new location by address, poking memory locations, and jumping from RAM to ROM. 2020-05-23 14:56:42 -04:00
Matthew Budd 9ac2803533 Added logic to get NES ROM address from RAM location for context menu. 2020-05-22 09:30:16 -04:00
Matthew Budd b731245171 Added a few context menu items. TODO create callback functions for them 2020-05-22 09:19:45 -04:00
Matthew Budd 475464cca2 Added logic to display a label showing the address of the cursor selected memory location in hex editor. 2020-05-22 09:00:07 -04:00
Matthew Budd c05c85bcfd Added popup context menu framework for memview. 2020-05-21 22:07:10 -04:00
Matthew Budd 364ae8c689 Added callback for context menu on memview window. 2020-05-20 21:48:39 -04:00
Matthew Budd 5db17d7913 Cleaned out treeview logic in favor of text view. Text view is much more efficient. 2020-05-19 01:00:14 -04:00
Matthew Budd 284a787104 bug fix for memory poke logic. 2020-05-19 00:51:03 -04:00
Matthew Budd fe4d1f85af Successful test of poking into RAM with hex editor in text view. 2020-05-19 00:30:24 -04:00
Matthew Budd 41cfd69fe2 Successful display of memview. 2020-05-19 00:03:30 -04:00
Matthew Budd 267966b0b3 Text View hex editor in work. 2020-05-18 22:03:58 -04:00
Matthew Budd 6460a3035b Tree view inner / outer slider functions but is not ideal. Going to try out text view object instead. 2020-05-18 08:29:05 -04:00
Matthew Budd 90482feac8 Memview successful initial test, but performance is slightly lacking. Going to change tree view logic. 2020-05-17 11:36:55 -04:00
Matthew Budd 3c10dcc1fd Added logic to allow for writing into memory via the mem view hex editor. 2020-05-16 23:50:58 -04:00
Matthew Budd 5834dd3661 Added memory view window framework. Still TODO memory poke functionality. 2020-05-16 22:17:24 -04:00
Matthew Budd 9dcad0b211 Bug fix for gamepad configuration when using keyboard inputs. 2020-05-16 18:50:29 -04:00
Matthew Budd c7f9a4257a Bug fixes for screen sizing at startup with a ROM specified on the command line. 2020-05-16 15:06:40 -04:00
Matthew Budd 74923eaccc Removed static hotkey string array from global header and added an accessor function. 2020-05-16 13:16:24 -04:00
Matthew Budd 26f36da7e7 Another bug fix for gamepad config loading at startup, the first fix was in the wrong place. Removed static video variable from header. 2020-05-16 11:13:24 -04:00
Matthew Budd 00e316b521 Bug fix for loading gamepad config at startup. 2020-05-16 10:40:57 -04:00
Matthew Budd 01c60c4dc1 Bug fix for displaying button names when reloading gamepad config window. 2020-05-16 10:14:37 -04:00
Matthew Budd e5e02e20f4 Bug fix for gamepad key name display when calibrating buttons. 2020-05-16 09:47:13 -04:00
Matthew Budd b63772b774 Removed debug print statement. 2020-05-16 09:19:25 -04:00
Matthew Budd c3e4db0faa Hotkey selected state cleanup. Sync gui menu selected state when state changes occur via hotkeys. Removed deprecated gtk widgets from sdl/input.cpp. 2020-05-16 09:09:36 -04:00
Matthew Budd 3573a596e9 Added logic to the deb pkg script to not put duplicate entries into the pkg depends list. 2020-05-16 07:38:20 -04:00
Matthew Budd 09d84283cd bug fix for test install of debian pkg 2020-05-15 21:27:17 -04:00
Matthew Budd e70b38cf5f Bug fixes for debian package builder script. Added package build to pipeline. 2020-05-15 21:17:54 -04:00
Matthew Budd 2f00e3517b Added debian package creation script. 2020-05-15 20:12:21 -04:00
Matthew Budd 172dffec55 Changed window size variables in gui to be static as their is no reason to export them to the linker. 2020-05-15 17:08:13 -04:00
Matthew Budd 5173b85ac1 Added logic to check if the screen size has actually changed in the window configure event callback. Do not reset video is screen size is the same. This prevents annoying screen flickering during transitions to/from full screen mode. 2020-05-15 17:02:33 -04:00
Matthew Budd 017ee17ee1 Updated linux ubuntu build script to latest 2020-05-15 16:14:03 -04:00
Matthew Budd 8339508f21 Added an appveyor pipeline configure file to allow for a side by side build of both the windows and linux application. 2020-05-15 16:06:18 -04:00
Matthew Budd bcbac77084 When a lua script is provided on the command line with the --loadlua option. Added code to always resolve any relative file path to an absolute as the lua core changes the current working directory which then invalidates the relative pathing from where the current working directory was at the time the program had initially been started. 2020-05-14 23:47:57 -04:00
Matthew Budd 7fb5ed52c4 Removed --fix-missing references from pipeline script. The issue with the pipeline lies on the microsoft side with there linux package servers. There is nothing that can be done here. 2020-05-14 20:04:49 -04:00
Matthew Budd 0605427979 Added --fix-missing to apt-get sdl1 due to pipeline virtual machine failing to download all dependencies 2020-05-14 19:08:14 -04:00
Matthew Budd 87d3db2406 Added screen dimension limits. Added some debug statements to pipeline script. 2020-05-14 18:16:04 -04:00
Matthew Budd 1ba5929ea2 Modified screen display logic to always center image in the center of the window. 2020-05-14 09:16:09 -04:00
Matthew Budd f162600f54 Added clean before build in pipeline. 2020-05-14 07:55:57 -04:00
Matthew Budd 9f615d6f81 Found a better way to clear the screen to a black background. 2020-05-14 07:55:06 -04:00
Matthew Budd c702a86b67 commented out window configure print statements. 2020-05-13 22:00:00 -04:00
Matthew Budd 575e090aff Ran indent program on new cheat and ramwatch cpp files to apply hard tabs. 2020-05-13 21:13:22 -04:00
Matthew Budd 699069b7ee Ran indent program to gui.cpp to re-apply hard tabs. 2020-05-13 21:07:31 -04:00
Matthew Budd 7ac726d415 Replaced deprecated gtk_key_snoop function with standard gtk key press/release event handling functions. 2020-05-13 09:24:31 -04:00
Matthew Budd 48bbec8fba Added logic to clear screen to black during startup and if a screen configure event occurs and no game is loaded. 2020-05-13 09:00:07 -04:00
Matthew Budd 42233b0425 Removed unused global window symbol for hotkey gui window 2020-05-13 08:36:35 -04:00
Matthew Budd c45c6c00cf Removed old menu comments from gtk gui. 2020-05-13 08:33:55 -04:00
Matthew Budd 61f55f3e28 Ensure that pallette variable has been freed before attempting malloc a new heap. 2020-05-12 22:45:08 -04:00
Matthew Budd 9583c0fbdd A few more bug fixes for the ram watch window. 2020-05-12 22:39:03 -04:00
Matthew Budd 57561ad563 Moved RAM watch window logic to its own separate file. 2020-05-12 22:13:22 -04:00
Matthew Budd 309cb00f93 Moved cheat window code to its own file. Created a cheat window class object to better manage multiple instances of the cheat window. 2020-05-12 20:14:11 -04:00
owomomo 2024d321b7 1. The description of the bookmarks in Hex Editor can be edited instead of delete and add again.
2. When click close button of the bookmark name window, the operation can be canceled.
3. Detail.
2020-05-12 17:25:23 +08:00
owomomo b20093f572
Merge pull request #19 from TASVideos/master
Sync code to the newest
2020-05-11 22:04:54 +08:00
Matthew Budd 754e621735 Bug fixes for gtk hot key config window. 2020-05-11 00:47:31 -04:00
Matthew Budd dfd236c9d1 Fixed gtk window gui resizing logic. Can now resize by dragging the corners of the window with the mouse as well as through the vidio menu. 2020-05-10 23:38:36 -04:00
Matthew Budd d6a798962c Removed deprecated gtk_widget_modify_bg. 2020-05-10 17:29:14 -04:00
Matthew Budd bfaf429664 Removed deprecated GTK_STOCK usages. 2020-05-10 17:11:15 -04:00
Matthew Budd d87d5b2271 Fixed & character usage in authors string text in about window. 2020-05-10 16:42:45 -04:00
Matthew Budd 73a4efcad9 Finished reworking main menu. 2020-05-10 16:40:28 -04:00
Matthew Budd 81b9555ad0 Finished updating emulation menu to new non-deprecated widgets. 2020-05-10 16:24:44 -04:00
Matthew Budd ee35a5bab4 Updated options sub menu. 2020-05-10 15:32:32 -04:00
Matthew Budd 89895fdd18 Finished File menu of main menu bar. 2020-05-10 14:59:49 -04:00
Matthew Budd af36752585 Working on removing deprecated main menu and replacing with non-deprecated functions. 2020-05-10 11:17:59 -04:00
Matthew Budd 5a74646bb5 Removed use of deprecated gtk_alignment widgets 2020-05-10 10:18:57 -04:00
Matthew Budd 260b45273e Swapped out deprecated gtk table in favor of gtk grid on game pad configure window. 2020-05-10 09:54:25 -04:00
Matthew Budd b68aff598e Fixed a few more deprecated gtk function usages. 2020-05-09 21:00:51 -04:00
Matthew Budd 6ab46618fc Replaced a few more deprecated gtk function calls for their newer variants. 2020-05-09 20:47:47 -04:00
Matthew Budd 7610dea7fb Removed deprecated UI manager from the ram watch menu. Ram watch menu is now created by raw gtk functions. 2020-05-09 20:35:15 -04:00
Matthew Budd 3231589d25 Changed out depricated gtk_hbox_new and gtk_vbox_new in favor of gtk_box_new 2020-05-09 16:42:34 -04:00
Matthew Budd fcf8f57085 Changed memory tree views to use monospace and have vertical dividers for columns. 2020-05-09 10:36:55 -04:00
Matthew Budd f4985e4add Merge branch 'master' into linux-cheats 2020-05-09 09:32:10 -04:00
Matthew Budd 3f2ab57a20 Merge branch 'master' of https://github.com/TASVideos/fceux into development 2020-05-09 09:23:28 -04:00
Matthew Budd 77471eb1a0 Merge branch 'development' into linux-cheats 2020-05-08 23:55:29 -04:00
Matthew Budd 70a804e90f Fixed a few code errors identified by cppcheck static code analyzer.
Fixed incorrect error handling of realloc function to prevent memory leak.
Fixed a few uninitialized local stack variables.
Changed (1 << 31) to (1u << 31) to fix error stating that a signed 32 bit integer shifted by 31 bits can result in undefined behavior.
2020-05-08 23:30:31 -04:00
Matthew Budd 10d57762b0 Force GTK3 usage as default over GTK2... its time to move on. 2020-05-08 22:11:55 -04:00
Matthew Budd 292a1de39b Added azure pipeline configuration file.
Runs a build in an Ubuntu Linux 18.04LTS
2020-05-08 22:07:19 -04:00
Matthew Budd 056bd2bf18 Merge branch 'master' into linux-cheats 2020-05-08 08:16:07 -04:00
Matthew Budd 94973b0078 Removed azure-pipeline comfig file that does not work. 2020-05-08 08:14:39 -04:00
Matthew Budd 2bf8a4d943 Pipeline update. 2020-05-08 07:58:35 -04:00
Matthew Budd 4d91f4e2be Merge branch 'master' into linux-cheats 2020-05-08 07:55:53 -04:00
mjbudd77 e39c8ab6df Set up CI with Azure Pipelines
[skip ci]
2020-05-08 07:53:39 -04:00
Matthew Budd 305e8b58e8 Added memory write functionality to RAM watch window. 2020-05-07 23:25:33 -04:00
Matthew Budd 27cbbdf534 Added logic to load/save RAM watch files. 2020-05-07 21:31:55 -04:00
Matthew Budd c901c7273d Added directly cheat list cell editing functionality to gtk GUI. 2020-05-07 09:49:03 -04:00
Matthew Budd b4f4f816d7 Added logic to allow for RAM watch display updates to be non-destructive. 2020-05-06 09:00:53 -04:00
Matthew Budd 4490f650f1 RAM watch entry window bug fixes. 2020-05-06 08:36:08 -04:00
Matthew Budd ab5d3f5f14 Successful view of memory in ram watch window. Still TODO, added rest of button functionality. 2020-05-06 00:17:59 -04:00
Matthew Budd 19deda1314 Added initial framework for RAM watch window. 2020-05-05 23:08:50 -04:00
Matthew Budd d1fd5a8e2d A few bug fixes while testing the cheat window. 2020-05-05 20:42:25 -04:00
Matthew Budd 45d88df6b0 Hooked up cheats pause while window active function. 2020-05-05 19:56:38 -04:00
Matthew Budd 30aec1e534 Added cheat modification via update button logic. 2020-05-05 08:18:41 -04:00
Matthew Budd 7bc778fd0e Added active toggle functionality to cheat list window. 2020-05-05 08:06:08 -04:00
Matthew Budd d081c68db3 Successful loading of cheat codes from file via cheat window. 2020-05-05 00:18:15 -04:00
Matthew Budd add91354de Successful test of Add, remove, and update functions to the active cheat list. 2020-05-04 23:50:33 -04:00
Matthew Budd 37bb110601 Added file chooser function for loading cheats from file. 2020-05-04 22:01:15 -04:00
Matthew Budd 52cc2629eb Successful initial test of cheat search functionality. 2020-05-04 21:42:56 -04:00
Matthew Budd 7416ad2fdb Added initial layout for gui cheat window. 2020-05-03 16:29:28 -04:00
CaH4e3 d89ead783e
Merge pull request #98 from owomomo/master
Add Multiple RAM Watches At Once In Edit Watch Window
2020-05-03 22:28:19 +03:00
CaH4e3 12667209de
Merge pull request #110 from bbbradsmith/toosmall_chrram
CHR size < 1k allows NES program to corrupt memory
2020-05-03 22:27:44 +03:00
Matthew Budd 9844caf69d Bug fix for command line game genie enable logic with linux based gtk GUI. GUI was forcing game genie to disabled at startup which was overriding command line selection. The GUI logic has been fixed to sync the state of menu game genie toggle box to the desired startup configuration of game genie. 2020-05-02 19:57:11 -04:00
Matthew Budd aaa432d0f4 Build fixes for RHEL8 systems. CheckLibWithHeader of minizip installation is failing so I resorted to a simpler pkg-config check. Fixed lua library check, include path and linker flag references. 2020-05-02 14:31:19 -04:00
bbbradsmith 2cdb283a64 iNES_Init error reporting 2020-05-02 00:42:44 -04:00
bbbradsmith e8597862f1 CHR size < 1k allows NES program to corrupt memory because VPage is 1k granularity
returning 0 from iNES_Init is not ideal, error is "unsupported mapper" but at least it's an error
also adding CHRmask1/2/4/8 fallback, not sure if needed but looks suspicious for <8k
2020-05-02 00:20:44 -04:00
zeromus 16a965d15c oops, had that backwards (re #106) 2020-04-14 18:09:09 -04:00
zeromus fadb200856 in 01dfbf5afa I broke the disable-sprite-in-leftmost-8-pixels part of the oldppu. this fixes it. fixes #106 2020-04-14 16:44:45 -04:00
g0me3 5d872472ef - N106 sound issue requested fix, see comments
- new inex 2.0 mapper 406 added without flash support though
- dpcm data log now does proper memory area logging (not worth actually, always be like C000 lol)
2020-04-09 20:54:05 +03:00
bbbradsmith e79bbc0b1c zapper lua typo fix 2020-03-21 23:09:34 -04:00
bbbradsmith ce16e47410 lua: document zapper.set 2020-03-21 23:00:04 -04:00
owomomo 5d7c3a6631
Merge pull request #18 from TASVideos/master
Update code to the newest
2020-02-23 10:22:00 +08:00
bbbradsmith 747fba7711 Virtual Boy controller forgot signature bit 14 2020-02-08 15:58:24 -05:00
bbbradsmith b22753762f Virtual Boy controller support 2020-02-08 15:58:24 -05:00
owomomo 7a278b10a8 RAM Watch: Adding multiple watches in the dialog, when adding multiple watches from other window, the watches is also in the address edit control.
I realized that the watch operation need to be decoupled from the RAM Watch list, but things seem get too complicated, hoping this is not get even worse.
2020-02-05 22:56:30 +08:00
owomomo a9c4bc9592 1. Trying to find a more efficient way to know which byte has a cheat. Since the cheat map occupies a lot of memory, I decided to make it only exists when necessary.
2. Reorganized some codes.
2020-02-01 16:51:33 +08:00
owomomo c3d0d40aa6 Trying to find a more efficient way to know which byte has a cheat. It might be memory cost but it's 2020. 2020-02-01 01:00:34 +08:00
owomomo c830d2cc7d ... 2020-01-31 20:13:41 +08:00
owomomo 935cdaf178
Merge pull request #17 from TASVideos/master
Sync code to the newest
2020-01-31 19:46:54 +08:00
Devine Lu Linvega e48b208918
Fix typo in LuaFunctionsList.html (#96) 2020-01-30 18:27:21 -05:00
Devine Lu Linvega f83e488a65
Fixed type in lua-engine.cpp (#95) 2020-01-30 18:26:52 -05:00
g0me3 fb8d46d969 fix for cdl sram logging hack crashes nsf logging (fixed #94) 2020-01-29 20:44:49 +03:00
g0me3 18165938d4 preliminary, basic hookup of Family Network System base board + MMC1 cassette emulation 2020-01-16 21:33:37 +03:00
g0me3 4fe5da841c forgot to remove debug code 2020-01-12 17:07:23 +03:00
g0me3 db003f841d fixed #90 (debug breakpoint missing if conditions used) 2020-01-12 16:56:37 +03:00
g0me3 e43fe75b67 forgot to upload file 2020-01-04 13:48:32 +03:00
g0me3 6abfe09caf Famicom Network System controller added
misc fixes to mappers
2020-01-04 13:16:54 +03:00
dinkc64 0b4be4b639 fds.cpp: new fds image handling, fixes saving issues with some games (Bubble Bobble, Super Lode Runner II, ...) 2019-12-16 00:45:14 -05:00
bbbradsmith c4ee998148 zapper control from lua 2019-12-15 15:31:09 -05:00
Aleksandr Charkov 749567adf6 fix mispell (#86) deprecated 2019-12-05 17:27:01 -05:00
Andypro1 ed4f5d0000 Moved lua memory_writebyte() to legacymemory_writebyte() and changed the memory_writebyte() implementation to avoid the legacy cheat engine code. (#67) 2019-11-22 23:29:25 -05:00
Brad Smith 88d7f392a9
MMC5 arbitrary WRAM size support via iNES 2 (#84) 2019-11-22 23:22:08 -05:00
Brad Smith fbabd180eb
restore symbolic addresses for debugger
some of the debugger addresses should not be filtered, as strings can be used like NMI, RST, IRQ, LOAD, INIT, PLAY, NMI1, NMI2, NMI3
2019-11-10 21:10:40 -05:00
Brad Smith 5c8421d410
Palette mirror fix (#81)
* ppuview and memview fixes for palette mirroring
* New PPU $2001 rendering off palette mirroring fixed
2019-11-08 00:03:31 -05:00
g0me3 25c0b96c30 mapper 547 (ines 2.0 version of KONAMI-QTAi UNIF board) 2019-10-25 20:52:08 +03:00
owomomo 829c07bc3c
Merge pull request #16 from TASVideos/master
Sync code to the newest
2019-10-20 00:44:34 +08:00
g0me3 0fc18be6b8 mapper 15 - fixed regression by previous fixes (waising / subors does not work properly with CHR write protection on mode 0) 2019-10-02 20:03:38 +03:00
CaH4e3 d21c3d0c4d
Merge pull request #77 from norill/patch-1
Update 15.cpp
2019-10-02 19:47:11 +03:00
norill 5ca7f608f7
Update 15.cpp
changes in accordance to the reverse-engineered mapper schematics:
- changed bank mode 1 mapping CPU $C000-$DFFF from "fixed to last bank" to "B OR 7" to support multiple 128KiB UNROM games in one cart
- latch D.7 bit ignored outside bank mode 2
- fixed latch D.6 bit interpreted as bank number bit
2019-10-02 18:30:36 +02:00
g0me3 8b1c405d95 mapper 15 chr protection implemented 2019-10-01 22:01:30 +03:00
owomomo 3fd6f9cb1e
Merge pull request #15 from TASVideos/master
Sync code to the newest
2019-09-22 14:29:33 +08:00
zeromus 00beb14f16
Merge pull request #75 from hexregex/master
Altered SCons build scripts to work with Python 3.
2019-09-10 21:38:10 -05:00
deep-thought 878245fedf Altered SCons build scripts to work with Python 3. 2019-09-10 17:05:22 -06:00
g0me3 63421d411b vrc5 extended ppu rendering simulation fix 2019-08-07 01:17:57 +03:00
owomomo 2e6b728e57
Merge pull request #14 from TASVideos/master
Sync code to the newest
2019-07-29 11:02:15 +08:00
Brad Smith 72120b0bb9
Windows 64-bit build support (#66)
* correcting x64 configurations to actually use x64
defining NOMINMAX to fix std::max error

* more preprocessor definitions for x64

* 64-bit libraries from the last published version of DXSDK with dinput

* should define WIN64 as well? unfortunately seem to require retention of WIN32

* added an x64 build of luaperks.lib, this compiles links and runs now

* relocate win32 luaperks.lib to src/drivers/win/lua/win32 and leave a note explaining it

* luaperks.lib x64 needed to be /MT
two more missing x64 libs
debug x64 configuration was set to compile C++ as C?

* importing the rest of the usable WIN32 preprocessor defines, debugger now functions!

* revert unnecessary VS solution version change

* 64-bit lua working (fixed the 64-bit build of luaperks.lib)

* VSUIENTRY hashes are unsigned, not signed

* more hashes that are actually unsigned

* fix a few pointer to int casts in lua console

* fix a few more pointer truncations in windows dialog stuff
a few printf arguments need a cast to int

* explicit size_t cast to quiet spurious warnings on an inline function
2019-07-23 15:12:03 -04:00
g0me3 1f5ce9e120 fix to prev, now all ROMs are happy 2019-07-22 13:48:49 +03:00
g0me3 a3d4db6b1a fix for #68 (mapper 227 chr write protection emulation) 2019-07-22 13:32:42 +03:00
owomomo 50bbacfb4d Detail 2019-07-12 15:46:39 +08:00
owomomo ddf760c6b6
Merge pull request #13 from TASVideos/master
Sync code to the newest.
2019-07-04 01:09:57 +08:00
g0me3 57d0b92a0f 8 times lesser conversion table for previous lol. 2019-06-30 18:58:16 +03:00
g0me3 d5896a8b93 removed debug assert for prev 2019-06-30 14:04:10 +03:00
g0me3 7c9dca50bd new unif "KONAMI-QTAI" board (VRC-V code name) along with PPU hack for it (16-bit extra NT like in MMC5) for both New and Old PPUs. very hacky for new ppu, sorry. 2019-06-30 14:00:59 +03:00
owomomo a9604c162f Re-attach my changes to the conflict file. 2019-06-29 10:53:44 +08:00
owomomo f5b6b51070
Merge pull request #12 from TASVideos/master
Sync code to the newest
2019-06-29 10:39:32 +08:00
owomomo 56f27ee194 Temporarily revert my changes to solve conflict 2019-06-29 10:39:13 +08:00
owomomo c1e94dd999 ... 2019-06-29 10:35:21 +08:00
owomomo 297ff8ee31 ... 2019-06-29 10:34:07 +08:00
owomomo 5d443badea ... 2019-06-29 10:28:24 +08:00
CaH4e3 97c9cb0068
Merge pull request #62 from bbbradsmith/dlgproc_fix
DLGPROC and SetWindowLong fixes
2019-06-29 00:12:13 +03:00
CaH4e3 5b425c72f8
Merge pull request #65 from bbbradsmith/lua_stack_fix
extra stack clear for lua library table registration
2019-06-29 00:12:01 +03:00
bbbradsmith 17e36e9882 lua library table registration needs an extra stack clear (is overflowing) 2019-06-27 03:14:12 -04:00
owomomo 7dde5467fd 1. Limit text input for Edit watch dialog and ram search.
2. As bbbradsmith in Pull Request #62 mentioned, SetWindowLong is replaced by SetWindowLongPtr for 64 bit compatible, I partially changed those written by myself.
2019-06-27 00:53:52 +08:00
owomomo fb0f6ee35f ... 2019-06-24 22:39:02 +08:00
g0me3 705f1c905c KT-008 handling fix for FF Xn games. probably they are the same mapper with a set of different modes switching by specific bits (TODO, check the hardware: i have FFX games, but haven't any KT-008 games!) 2019-06-24 15:52:06 +03:00
owomomo 2d6bdcd0d1 ... 2019-06-24 20:32:02 +08:00
owomomo 8a3edc18e3
Merge pull request #11 from TASVideos/master
Sync code to the newest
2019-06-24 20:30:17 +08:00
owomomo 25b67593f6 ... 2019-06-24 20:25:08 +08:00
owomomo 07c897df91 ... 2019-06-24 20:23:11 +08:00
owomomo 547dcd3a59 Detail bug fix 2019-06-24 20:16:01 +08:00
zeromus 8b19f0124f
Merge pull request #61 from gauauu/fix_60_linux_build
fixes #60
2019-06-23 22:29:17 -04:00
bbbradsmith db175c358f cheat.cpp has one more DLGPROC BOOL return fix that I missed 2019-06-21 15:51:44 -04:00
bbbradsmith 339ba7c923 SetWindowLongPtr needs to use LP defines, not L 2019-06-21 15:47:52 -04:00
bbbradsmith 2396d1c702 Replace SetWindowLong with SetWindowLongPtr for 64-bit compliance 2019-06-21 15:02:11 -04:00
bbbradsmith 850390e5ba Merge branch 'master' into dlgproc_fix 2019-06-21 14:15:41 -04:00
bbbradsmith c33ab17da4 DLGPROC return type is INT_PTR, not BOOL and not LRESULT. These are compatible return types in 32-bit but not 64-bit. 2019-06-21 14:03:05 -04:00
Nathan Tolbert 5a59e8522d fixes https://github.com/TASVideos/fceux/issues/60 - only prompt about cheats on windows build 2019-06-21 11:25:06 -05:00
owomomo d138a01860 1. Add popup tip for "Auto load / save with game" checkbox, because its tri-state may be perplexed for some reason.
2. Fix a bug, when the cheat editing controls lost focus, but editing mode is still there, which makes case EN_UPDATE triggered when user is not typing in them, that's an inappropriate circumstance. It might make the cheat editing control shows nothing when selecting a cheat.
3. Re-arranged some controls in resource file.
4. Changed some directory dialog logic, use defined ID rather than hard-code the actural number.
5. Detail.
2019-06-21 19:59:57 +08:00
g0me3 e1f52e6ffb little bit win gui polishing 2019-06-20 22:32:27 +03:00
g0me3 9ab9fd1e82 fix watch edit dialog 2019-06-20 22:04:00 +03:00
CaH4e3 7f91f6072a
Merge pull request #59 from Moliman/binary-view-on-ram-watch
Add binary data type on RAM watch
2019-06-20 21:53:06 +03:00
CaH4e3 3b8928fd50
Merge branch 'master' into binary-view-on-ram-watch 2019-06-20 21:52:55 +03:00
CaH4e3 d292d33328
Merge pull request #58 from owomomo/master
New feature: iNES header editor
2019-06-20 21:41:37 +03:00
Moliman 647eb5ab3d Add binary data type on RAM watch
* Currently support only 1 byte size
2019-06-19 22:00:11 -04:00
owomomo fee4fc83a8 1. Add more controls to limit input text.
2. Changed limit input behaviour to match the system default ES_NUMBER.
2019-06-20 01:58:35 +08:00
owomomo 4e3473ac5d 1. Fixed accidentally added the cheat name control to the limit list.
2. Add text limit to Memory Watch for experiment.
3. Make the IDs of controls in Memory Watch predefined rather than directly coded, that's not quite standard in programming. Calculations to ID is not always trusted as they are automatically determined by the development tool.
2019-06-19 18:33:50 +08:00
owomomo f0396ef980 1. Fixed accidentally added the cheat name control to the limit list.
2. Add text limit to Memory Watch for experiment.
3. Make the IDs of controls in Memory Watch predefined rather than directly coded, that's not quite standard in programming. Calculations to ID is not always trusted as they are automatically determined by the development tool.
2019-06-19 15:53:47 +08:00
owomomo 56f0db87fa 1. Experimental limit the input characters for some edit control.
2. Separated cheat code and game genie in Cheat window.
3. Don't show a game genie code when affected address is under 0x8000.
4. Detail: set font for some edit control, replaced some static global variable.
5. Other details.

By the way, why there're so many useless brackets in some functions?
2019-06-19 13:14:27 +08:00
owomomo cc31ee1a37 1. Experimental limit the input characters for some edit control.
2. Removed HWND pwindow, since it's ambiguous and not too much used. The pallete window use it's own global HWND variable.
2019-06-18 16:56:10 +08:00
owomomo 9fd9841d6f ... 2019-06-18 11:50:28 +08:00
owomomo 4adb28e1d3 ... 2019-06-18 11:48:32 +08:00
owomomo 5a80b67e57 Rip the dialog position calculating code to a function and use it in more dialogbox. 2019-06-18 11:47:08 +08:00
owomomo 17a36d9b9f Slightly adjusted the UI of header editor. 2019-06-14 16:38:41 +08:00
owomomo 29b36a801d Cheat console:
1. Added a global switch for all cheats, it is checked by default. Check or uncheck it can quickly tweak all cheats enabled or disabled. It's not game specific and effective to all games.
2. Added a checkmark to check behaviour of automatically load cheats.
3. Fixed a wierd bug in loading names of cheats from file.
iNES Header Editor:
4. Disable iNES header editor menu when currently loaded game is not in iNES format.
Others:
5. Some of the checkbox passed parameter MF_CHECKED, the right one is BST_CHECKED, though they have the same value.
6. Code/Data Logger is created by CreateDialog(), but destroyed by EndDialog()? A non-modal window should be destroy by DestroyWindow(), EndDialog() is for DialogBox(). It seems nobody noticed this bug for years.
7. Detail.

Currently there are some opposite tweaks in the config file for the new feature in cheat console, for example the unchcecked state is 1 in config file, that's for backward compatibility.
The iNES header editor might not quite stable as newly baked from the oven, there might be some improvements to its code.
2019-06-12 23:02:20 +08:00
owomomo fb1d489cfa Cheat console:
1. Added a global switch for all cheats, it is checked by default. Check or uncheck it can quickly tweak all cheats enabled or disabled. It's not game specific and effective to all games.
2. Added a checkmark to check behaviour of automatically load cheats.
3. Fixed a wierd bug in loading names of cheats from file.
iNES Header Editor:
4. Disable iNES header editor menu when currently loaded game is not in iNES format.
Others:
5. Some of the checkbox passed parameter MF_CHECKED, the right one is BST_CHECKED, though they have the same value.
6. Code/Data Logger is created by CreateDialog(), but destroyed by EndDialog()? A non-modal window should be destroy by DestroyWindow(), EndDialog() is for DialogBox(). It seems nobody noticed this bug for years.

Currently there are some opposite tweaks in the config file for the new feature in cheat console, for example the unchcecked state is 1 in config file, that's for backward compatibility.
The iNES header editor might not quite stable as newly baked from the oven, there might be some improvements to its code.
2019-06-12 22:16:01 +08:00
owomomo 5ef8394745 Merge branch 'iNESHeaderEditor' 2019-06-12 00:42:09 +08:00
owomomo 0dbcce537e Detail 2019-06-12 00:35:56 +08:00
owomomo 8ae26f4b72 Detail 2019-06-12 00:28:29 +08:00
owomomo 5b1805b3e4 Detail 2019-06-12 00:18:48 +08:00
owomomo 02df3d6993 Sync the code to master branch. 2019-06-11 17:39:30 +08:00
owomomo f3d1b270b5 Add an export button to cheat dialog. 2019-06-11 15:14:53 +08:00
owomomo 0c9e7659d9 Detail 2019-06-10 20:59:36 +08:00
owomomo 3b54181e4d Merge branch 'master' of https://github.com/owomomo/fceux 2019-06-10 17:27:10 +08:00
owomomo d87970f4ad ... 2019-06-10 17:25:37 +08:00
owomomo b114ba4f4d
Merge pull request #8 from TASVideos/master
Sync code to the newest
2019-06-10 17:15:38 +08:00
owomomo faf6289c12
Merge pull request #7 from TASVideos/master
Sync code to the newest
2019-06-10 17:12:54 +08:00
owomomo 9369bed6ec New feature: iNES head editor 2019-06-10 14:27:57 +08:00
zeromus 7047a998fa
Merge pull request #53 from owomomo/master
Attempt to fix Issue #52
2019-06-06 13:34:59 -04:00
zeromus bf372552bc fix overflowing buffer made worse by 0d26e6f or possibly created by that commit. fixes #30 better.
the debugger was replacing comments and names inside a buffer returned from the old portable disassembly function, which was returning a privately retained 64 byte buffer. previously names were limited to 30 characters, so it's possible expanding names in disassembly never blew that buffer.

testing of the 0d26e6f commit either stressed it harder than ever before, or hard enough to break it for the first time

solved by copying the disassembly buffer into a new buffer for expanding address labels to names, etc
2019-06-06 13:33:45 -04:00
owomomo 959c94fcdf Attempt to fix Issue #52 2019-05-23 18:59:30 +08:00
CaH4e3 5dc4f288a3
Merge pull request #51 from owomomo/master
Updated some features of Cheat Dialog
2019-05-11 21:43:29 +03:00
owomomo 91c408468a Attempting to fix Issue #43. 2019-05-11 00:06:43 +08:00
owomomo a680d67fa1
Fix weird compile error.
it's quite strange that the macro define missed a line feed.
2019-05-10 19:18:30 +08:00
owomomo b93ea26b32 1. Since the radio switch is not quite necessary in cheat window, I canceled it to freely edit style.
2. After some nightly consideration, I decided to remove some unused resource IDs from resource file, some of them were obseleted, renamed, mistyped or temporary, currently nothing was corrupted...
3. Detail.
2019-05-10 18:53:41 +08:00
owomomo c927728736 1. Since the radio switch is not quite necessary in cheat window, I canceled it to freely edit style.
2. After some nightly consideration, I decided to remove some unused resource IDs from resource file, some of them were obseleted, renamed, mistyped or temporary, currently nothing was corrupted...
3. Detail.
2019-05-10 18:47:24 +08:00
owomomo 0713de844c 1. New cheat list box 0.0.0.4 Alpha, separated the normal cheat adding method and the cheat code/game genie method. While you're inputting the values, they are synced to the formatted string which is very convinience. In the past, the game genie was added from the name edit control, now the name is separated and the code can have a name even if it's a game genie.
2. Solved a problem of the add/editing watch dialog when pop up repeatedly from multiple places, because there are 3 places can pop up it now.
3. Fixed a bug when loading cheats from file crashes the emulator.
4. Detail.
2019-05-10 02:17:16 +08:00
owomomo 07f0c1af2c 1. Fix go to hex editor in possiblilities list doesn't select the address.
2. Detail.
2019-05-08 21:05:43 +08:00
owomomo 885bc1e889 1. Fix freeze ram in Hex Editor doesn't refresh the related window.
2. detail
2019-05-08 17:24:45 +08:00
owomomo 9adcbf16cb 1. Fix crash when add multiple watches in RAM Search window, and adding multiple watches here can be batch named.
2. New cheat list box 0.0.0.3 Alpha, changed the possibilities box to a CListCtrl rather than a simple CListBox, use a map for its buffer. It may not quite efficient currently, but I personally think it's much better than adding and deleting the items repeatedly every frame, and now its item can be selected while emulation is running, although there's not much usage for this...
3. added several context menus to possible list, now you can directly add address to memory watch or ram watch, or go to hex editor from here, currently it's still a single select list.
2019-05-08 13:55:53 +08:00
owomomo f0859ce1e3 detail 2019-05-02 03:15:57 +08:00
owomomo a3280d664d 1. New cheat list box 0.0.0.1 alpha, changed the toggle cheat from double click to selecting checkboxes in the item. It can show the code and name in the same time.
2. Fixed an ancient bug of cheat dialog that importing new cheats makes old existing cheats uneffective.
3. Restructured some cheat searching type to macros since the meaning of the mysterious number is unclear. Maybe the switch case was more efficient than if else... or not?
4. Use a temporary variable rather than a global one to indicate whether the null file pointer is cased by user clicking the cancel or close button of the open archive dialog or a loading error.
5. When recording a movie with cheats, show warning to the user and asking for disabling them.
6. Removed some seems like unused variables, hope this didn't break compiling crossing platforms.
2019-05-02 03:13:05 +08:00
owomomo 9f0459731a
Merge pull request #6 from TASVideos/master
Update code to the newest
2019-04-29 13:58:10 +08:00
g0me3 fecfd0ea42 update to prev, nw 2019-04-27 21:40:48 +03:00
g0me3 60b314feb3 vrc5 mapper update, prepare to add extra ppu render for it
cheats.cpp int converions warnings fix
change default tool index for vc project. if you have problem with it, feel free to revert. but i can't compile with just "8.1" in there sadly...
2019-04-27 21:35:59 +03:00
CaH4e3 3270461703
Merge pull request #49 from chrisledet/cl/web-link-update
Update commit browser link on home web page
2019-04-27 21:15:51 +03:00
CaH4e3 63ffafa0a2
Merge pull request #50 from owomomo/master
Use a better look for the separator in RAM watch.
2019-04-27 21:15:13 +03:00
owomomo cb5ff1bcea
Merge pull request #5 from TASVideos/master
Sync the code to the newest
2019-04-24 13:34:50 +08:00
zeromus 0d26e6fcd9 change NL_MAX_NAME_LEN to 1000 (see github #30) 2019-04-23 17:11:40 -04:00
owomomo c4b4292a12 When edited a RAM watch item, it is in the original place rather than jump to the last one. 2019-04-24 03:13:20 +08:00
owomomo 43f2862127 Disable add cheat button for separator. 2019-04-20 21:04:34 +08:00
owomomo da99ce1894
detail 2019-04-20 19:15:04 +08:00
owomomo e7f4393fcc detail 2019-04-20 18:49:21 +08:00
owomomo 206cb06f47 Cache some item drawing related data and objects to prevent calculate them repeatedly when drawing.
Changed the watch list to a map for future developments.
2019-04-20 18:12:03 +08:00
owomomo 74853a83fb
Hotfix crash bug when load .wch file 2019-04-18 20:46:04 +08:00
owomomo 993b6fbb2c Use a better look for the separator in RAM watch.
There are still many disadvantages, the list is not efficient enough since the separator needs too much calculation, when there are too many separators, the watchlist maybe slow.
I think some of their data can be stored in some map or list for fast accessing in the future development, since they don't requires calc every time.
2019-04-18 00:41:21 +08:00
CaH4e3 247a6f4640
Merge pull request #48 from Dwedit/BUSC_fix
Remove the BUSC tag from datalatch mappers
2019-04-12 23:58:46 +03:00
Chris Ledet 8854ee7c9d
update commit browser link on home web page 2019-04-11 00:41:06 -07:00
Dwedit 5d96c96cb4 For datalatch mappers, remove the BUSC tag from savestates to prevent the bus conflict status from another game to override the current game. 2019-04-10 13:29:17 -05:00
owomomo a9a027940b resolve conflicts 2019-04-07 03:41:36 +08:00
owomomo 7901de120a ... 2019-04-07 03:38:13 +08:00
CaH4e3 0eed8fa234
Merge pull request #47 from owomomo/master
Some features for RAM search and watch.
2019-04-05 21:55:08 +03:00
owomomo 07e14fd26f
Update res.rc 2019-04-06 02:14:52 +08:00
owomomo 8f5cfcb9b5
Update ram_search.cpp 2019-04-06 02:09:05 +08:00
owomomo 99636689d7 1. Mark cheat affected address range in RAM search and RAM watch.
2. RAM Watch now can give separator a name.
3. Reconstruct watch manage logic, removed IDD_PROMPT.
2019-04-06 00:41:35 +08:00
owomomo 3f6475c268 ... 2019-04-03 00:48:30 +08:00
owomomo 85c77109c0 1. Use different background color for addresses affected by cheats in RAM Search.
2. Fix nothing was checked in the View menu when Hex Editor first launch.
3. Fix when Hex Editor is open, disabling all cheats in replay doesn't refresh the freezed addresses.
2019-04-02 23:11:46 +08:00
CaH4e3 59abf58a61
Merge pull request #44 from owomomo/master
Fix Ram search bug
2019-04-01 09:26:05 +03:00
owomomo 19d8e8ffbb
Merge pull request #4 from TASVideos/master
VRC7 patch set is finally properly dumped
2019-04-01 01:04:32 +08:00
owomomo c2b39fdf3f 1. Fix cheat column in the list of RAM Search dialog show the wrong number.
2. Some mysterious things:
In RAM Search, when the Data size was set to 4 Bytes, the value in the list was changed to 4 bytes but the gap of the items is still 2 bytes. I'm unclear it's an old bug or intentional, since some of the macros are used in comparison, they describe the template of the function as a short even in 4 bytes situation, but that might not compare 4 bytes value correctly.
2019-04-01 00:58:23 +08:00
Brad Smith 45dcb3e242
VRC7 patch set is finally properly dumped 2019-03-22 12:58:34 -04:00
owomomo 68993285f8 Fix shortcut key bug. 2019-03-22 14:47:26 +08:00
owomomo b6518a038c
Merge pull request #3 from TASVideos/master
Update code to the newest
2019-03-21 22:42:46 +08:00
zeromus f9094a4655 fix savestate.create(integer)
maybe fixes #41 (not sure)
2019-03-18 00:26:26 -04:00
zeromus 3a14fc724c fix merge conflict 2019-03-18 00:14:12 -04:00
zeromus 320c868ebd
Merge pull request #32 from owomomo/master
UI improvements and detail fixes
2019-03-18 00:10:06 -04:00
zeromus afbb4fe37f
Merge branch 'master' into master 2019-03-18 00:08:52 -04:00
zeromus abed13c392 Revert "Fix for the interframe-pause-skips-updating-next-frame bugs, mostly noticeable when dumping AVIs."
This reverts commit c7710ae244.

fixes #39
2019-02-22 20:48:59 -05:00
zeromus e72202f3b8 fix linux build (probably) 2019-02-22 15:01:12 -05:00
owomomo 8c485d23a2
Merge branch 'master' into master 2019-02-02 17:14:09 +08:00
zeromus f14321113a
Merge pull request #21 from retro-wertz/gtk_audio_silence
gtk: fix audio going on/off when entering Sound Config option
2019-02-02 04:00:07 -05:00
zeromus 9f7147c42a fix overflow in RTS trace logging (maybe) (fixes #30) 2019-02-02 03:58:00 -05:00
zeromus f8d5a91363 lua: make emu.speedmode nothrottle and maximum set to 100% frameskip, as originally intended (fixes #34) 2019-01-27 21:32:22 -05:00
zeromus adc9efec56 run 1st frame of lua scripts after the lua console is hooked up, rather than before (fixes #33) 2019-01-27 20:45:23 -05:00
Brad Smith 20f0783a96
windows mouse left/right buttons should be independent, not XOR
(forgot the additional "relative" mouse implementation with last commit)
2019-01-26 21:04:07 -05:00
Brad Smith 01c3f40f1d
windows mouse left/right buttons should be independent, not XOR 2019-01-26 20:46:58 -05:00
feos cddb8af1a2 SoundDisplay2.lua tweaks 2019-01-22 23:58:58 +03:00
Brad Smith bc41bc80ee
LUA script for sprite debugging (#35)
Useful script adapted from one created by tokumaru (with permission)
2019-01-21 20:29:23 -05:00
owomomo fc35a990f4 Fix compile error 2019-01-09 18:30:30 +08:00
owomomo 9407df7d2c Ram search show cheat count in current range. 2019-01-09 17:28:05 +08:00
owomomo a5572c1b06 .vcxproj file cleanup 2019-01-08 00:52:46 +08:00
owomomo d3e5d7dee9 1. Fix Map Hotkey dialog list header and add sort icon to the header of Map Hotkeys.
2. Fix Nametable Viwer checkbox state mismatch when closing and opening again.
3. Fix linux build error.
2019-01-08 00:42:57 +08:00
owomomo 38d5909a92
Merge pull request #2 from TASVideos/master
winport - reorganize emulation speed menu so it's a little more clear…
2019-01-07 16:24:05 +08:00
zeromus 327bb202a2 winport - reorganize emulation speed menu so it's a little more clear how it works 2019-01-06 17:07:52 -05:00
owomomo d9d3f1b56b 1. Further reconstruct the hotkey menu item code, menus belongs different parent menus with the same id can be defined in one struct rather than four. Removing the repeated menu hotkey update, only update the needed range. I wish this is not too complicated.
2. Map Hotkey dialog items now can be sorted by click on the column header.
3. Fix a logic bug when user cancels open archive dialog.
4. Trying to fix Linux build (not sure).
2019-01-03 20:38:33 +08:00
owomomo 29b06101d7
Merge pull request #1 from TASVideos/master
Update code to the newest
2019-01-03 12:55:21 +08:00
zeromus a84ccfe3e9 dont support vc10 anymore. should make sure 2015 and 2017 works instead (I just confirmed) 2019-01-01 15:46:00 -05:00
zeromus 5eb6cc31c9 Revert "Revert "Some ui interface logic changes and improvements.""
This reverts commit d48105e97d.
2019-01-01 15:45:32 -05:00
zeromus 82be140eee Merge branch 'master' of https://github.com/TASVideos/fceux 2019-01-01 15:42:04 -05:00
zeromus 0aa3e7da7f hack vcxproj to select platformtoolset between 2015 (vc140_xp) and 2017 depending on what's available 2019-01-01 15:41:48 -05:00
CaH4e3 da336c9c6d
Merge pull request #26 from TASVideos/revert-25-master
Revert "Some ui interface logic changes and improvements."
2019-01-01 16:36:44 +03:00
CaH4e3 d48105e97d
Revert "Some ui interface logic changes and improvements." 2019-01-01 16:36:24 +03:00
CaH4e3 5df55d88f1
Merge pull request #25 from owomomo/master
why not
2019-01-01 16:29:40 +03:00
zeromus b8c484ed1f fix gradius-bullethell script (solves SF bug 839) 2018-12-31 17:52:14 -05:00
zeromus 608bbe83fe fix SF issue #838 better and fully 2018-12-31 00:58:20 -05:00
zeromus 76f7af16c8 try fixing SF bug 838 "gui.drawbox border is overlapping itself"
I didnt test it, maybe I broke everything. please check it
2018-12-30 17:05:58 -05:00
owomomo 8320ebedd8 1. When cancel from archive loading dialog, don't show loading error boxes and the current playing game doesn't close.
2. Completely rewrite shortcut key displaying logic, now it is not only shown in main menu, but also in context menu.
3. Fix bugs that TAS Editor tooltips shown shortcut keys were not sync when hotkey was changed.
4. If cheat is activated when loading a movie, confirm to disable them as they could cause playback problems.
5. When switching to new ppu with overclocking enabled, prompt to user that new ppu doesn't support overclocking.
6. Other minor details about the UI.
2018-12-29 00:02:02 +08:00
owomomo 274ac1b770 1. When cancel from archive loading dialog, don't show loading error boxes and the current playing game doesn't close.
2. Completely rewrite shortcut key displaying logic, now it is not only shown in main menu, but also in context menu.
3. Fix bugs that TAS Editor tooltips shown shortcut keys were not sync when hotkey was changed.
4. If cheat is activated when loading a movie, confirm to disable them as they could cause playback problems.
5. When switching to new ppu with overclocking enabled, prompt to user that new ppu doesn't support overclocking.
6. Other minor details about the UI.
2018-12-28 23:55:24 +08:00
owomomo 4009d397aa 1. When cancel from archive loading dialog, don't show loading error boxes and the current playing game doesn't close.
2. Completely rewrite shortcut key displaying logic, now it is not only shown in main menu, but also in context menu.
3. Fix bugs that TAS Editor tooltips shown shortcut keys were not sync when hotkey was changed.
4. If cheat is activated when loading a movie, confirm to disable them as they could cause playback problems.
5. When switching to new ppu with overclocking enabled, prompt to user that new ppu doesn't support overclocking.
6. Other minor details about the UI.
2018-12-28 23:44:27 +08:00
zeromus a6219f5006
Merge pull request #23 from aquanull/master
A batch of various bugfixes and several feature enhancements mixed in.
2018-12-24 15:39:36 -05:00
aquanull@gmail.com dd5a0e908e Re-enabled running the Lua script when loaded. 2018-12-24 13:54:32 +08:00
aquanull@gmail.com 08c602a3f2 Registered Lua callbacks via gui.register() are now only called at frame boundaries. 2018-12-24 12:01:32 +08:00
aquanull@gmail.com b6df31d0f3 Fixed potential buffer overflows in RAM Search. 2018-12-24 12:01:28 +08:00
aquanull@gmail.com fe64ca3771 Fixed the ancient buffer overflows in Memory Watch. 2018-12-24 12:01:25 +08:00
zeromus 5a1e6c552a ignore lmouse and rmouse lua input when main window isnt focused. it seems unlikely anyone would want these for any other purpose (xmouse and ymouse are based on the emulated window so the clicks should be too)
untested.

intended for SF bug 836
2018-12-17 15:11:30 -05:00
zeromus 14ad02632a use cd and im bindings for lua. needed rebuild luaperks to include binding sources 2018-12-16 13:20:45 -05:00
retro-wertz 6432e18a79 gtk:fix audio going on/off when entering Sound Config option
Adds check if sound was already enabled and only then only call
InitSound() when it was not enabled. This seems to be a better option
than calling KillSound() which causes unnecessary audio pop when you
are just entering the menu and not adjusting stuff yet.
2018-12-10 05:04:07 +08:00
CaH4e3 58b4dd0a0f
Merge pull request #20 from retro-wertz/master
update apu sweep units
2018-12-09 21:05:25 +03:00
retro-wertz 9788d9745a update apu sweep units 2018-12-09 20:49:46 +08:00
cah4e3 972ec09e92 fixed #11 R.C.Pro Am II title music channel bug 2018-12-05 17:46:29 +03:00
cah4e3 951c325cc1 fixed long standing bug in GG encoder for 8000 address 2018-12-05 15:24:29 +03:00
Brendan Byrd f9f35cbadb Add playback/record Lua functions 2018-11-30 00:10:22 -05:00
Brendan Byrd 47c8491114 Add support for base64 in rom.gethash 2018-11-30 00:10:22 -05:00
Brendan Byrd 319293e20b Add rom.getfilename Lua function
Also, add documention to rom.gethash function
2018-11-30 00:10:22 -05:00
Brendan Byrd 03851153ed Don't Lua print extra newlines in *NIX 2018-11-30 00:10:22 -05:00
Brendan Byrd 76c423fa4a Add getemuscreen support to gui.gdscreenshot Lua call 2018-11-30 00:10:22 -05:00
Brendan Byrd 5f23a565e8 Whitespace cleanup
Should be nothing with 'git show -b'
2018-11-30 00:10:22 -05:00
Brendan Byrd e50f7bfd71 Add stace traces to failed Lua executions 2018-11-30 00:10:22 -05:00
Brendan Byrd 7225958aed Add support for LuaJIT when SYSTEM_LUA is set
This also adds variables for controlling where to find the libraries/includes
2018-11-30 00:10:22 -05:00
Brad Smith 349aed4aaf
Fix null pointer crash when lua script fails to load. 2018-11-12 17:33:42 -05:00
zeromus 717153ac19 fix hang in symbolic debugger syntax highlighting in rare cases. fixes #18 2018-11-12 03:19:07 -05:00
zeromus 286875f9ef try to fix writes to palette mirrors 2018-11-07 04:01:36 -05:00
zeromus 01dfbf5afa fix the way memview reads mirrored palette regs. Should fix bug 833 on SF but I'm not completely sure 2018-11-07 03:10:09 -05:00
Brad Smith be86d96278
cheapocabra.cpp typo: CHR-RAM not CHR-ROM 2018-10-31 17:00:50 -04:00
Alexey 'Cluster' Avdyukhin 388e10b473 Fixes for COOLBOY mapper, added MINDKIDS mapper (alternative COOLBOY) 2018-08-30 19:10:10 +03:00
adelikat 21c09717c4 don't need the link images anymore 2018-07-14 13:23:11 -05:00
adelikat 1b03bf2566 Cleanup the menu bar of the site - remove baked in images and replace with some decent css instead, and get rid of the javascript in favor of some css 2018-07-14 13:11:23 -05:00
zeromus 4939859cf4 lua - savestate.create() can now accept a string which should be the filesystem path to a savestate; you can then use savestate.load on it 2018-07-02 15:19:09 -05:00
Brad Smith 5be92d3ee5
Propagating memory initialization option to WRAM (#13)
1. Including WRAM in the RAM initialization options. Since it was usually initialized to zero by default, the "default" setting must do that as well, the explicit settings should follow the others.

2. unif.cpp extending memory randomization of 4-screen VRAM to match ines.cpp version, except it had no explicit initialization before: static array should initialize to 0, so its default will still do this

3. MALEE WRAM never initialized, replacing a few existing explicit (non gmalloc) WRAM clears with MemoryRand, removing a few memsets now unneeded because of gmalloc clear.
2018-06-26 22:11:01 -04:00
Brad Smith e8c61d1b23 NTSC filter was missing the newer more accurate support for emphasis (was using an old 1-emph-per-blit approximation) 2018-06-19 23:06:55 -04:00
Brad Smith 386545e063 not sure why PAL filter text is commented (is it unfinished? seems to be functional) out but it's accessible in the dropdown and it leaves garbage in the name 2018-06-19 21:56:40 -04:00
Brad Smith d68a57e367 .gitignore missing newline 2018-06-19 21:45:05 -04:00
Chris Broome d3cc7f0ba7 Fix yscale out of bounds rounding error (#12)
* Fix rounding error causing yscale out of bounds
* Ignore linux build output
2018-06-19 21:42:07 -04:00
Brad Smith 4c3b96aefb ignore save RAM and savestate files 2018-06-19 21:38:33 -04:00
zeromus e3b7197128 add "record from sram" (to fix SF bug #828) 2018-06-18 22:19:59 -05:00
zeromus 166e7a8ad9 fix some problem in the scmrev stuff 2018-06-18 22:19:23 -05:00
Chris Broome 95e82b57ba Fix Linux build errors (#3)
Enable usage of `nullptr` by passing `-std=c++0x`
- SConstruct
- src/Makefile.am

Add missing mappers to boards/Makefile.am.inc:
- boards/190.cpp
- boards/80013-B.cpp
- boards/hp10xx_hp20xx.cpp
2018-06-15 13:02:23 -04:00
Brad Smith 9b6ff8fe49
Mapper 30 4-screen (#10)
mapper 30 support for both 1-screen and 4-screen configurations (see: Black Box Challenge)
2018-06-05 02:17:38 -04:00
Rongjian Zhang 211c7972a9 Fix compile error at macOS (#9)
* Fix compile error at macOS
* If fixing some of the whitespace in this file with this patch, might as well go the whole way?
* > 0 to != NULL
2018-06-03 03:37:39 -04:00
Brad Smith 458eb30f3d
Small improvement to sound output options. #6
1. Force 8-bit sound option confused some users who thought it might be an emulation accuracy option instead of selecting output bit depth, replaced it with a drop-down that's consistent with the other sound output options instead (hiding the temptation of setting "8-bit" and thinking that's a desirable thing for an NES emulator).
2. Making the default samplerate 48000, because it is the most common native device rate now.
3. Increasing the AVI output's 1 second buffer size to allow the maximum samplerate of 96000.
2018-06-02 03:11:33 -04:00
Brad Smith e90b7e17b7
Merge pull request #8 from bbbradsmith/mmc5_warning
mmc5.cpp fix warning about int to boolean type conversion
2018-06-02 02:29:37 -04:00
Brad Smith f1af3a0f44
Merge pull request #7 from bbbradsmith/vc10_ignores
Ignores for VC10
2018-06-02 02:29:08 -04:00
Brad Smith 29171209a7 mmc5.cpp fix warning about int to boolean type conversion 2018-06-01 21:08:35 -04:00
Brad Smith 18735ead37 Ignores for VC10 2018-06-01 20:58:28 -04:00
zeromus fd29f48d01 dont require git to build 2018-06-01 16:56:46 -04:00
zeromus f0819b988c make vs2010 project not garbage 2018-06-01 16:49:53 -04:00
zeromus 4245280271 apply patch #827 : Fix "non-constant-expression cannot be narrowed from type" compile error 2018-05-31 12:52:38 -04:00
zeromus c5bb44a37f implement namco 340 NT mirroring register (fixes wagyan land 3) 2018-05-26 20:45:27 -04:00
zeromus e5f98c7c57
Update readme.md 2018-05-07 17:20:14 -05:00
zeromus 00b56787f8 readd old vc10 projects 2018-04-11 16:36:12 -05:00
zeromus 4a1ea6dd1f support vc100 toolchain once more 2018-04-11 16:11:49 -05:00
zeromus 3155ae970d meant to use v140_xp toolset, but left it as v140 in a few cases 2018-04-11 14:51:48 -05:00
zeromus 8dd5ae414d gitignores 2018-04-11 01:16:59 -05:00
zeromus 05a1886861 fix release mode build errors 2018-04-11 01:07:27 -05:00
zeromus e2c85a2d50 fix more warnings. didnt do a great job last time. 2018-04-11 01:05:41 -05:00
zeromus f8f9dd967f fix warning 2018-04-11 01:04:37 -05:00
zeromus 9ff8ecb856 fix Uchuu Keibitai SDF in oldppu (broken in r3360) 2018-04-11 00:47:00 -05:00
zeromus bb5cd1527d uhhh did i leave this hacked when i fixed re-un-broke cv3 recently? 2018-04-11 00:17:30 -05:00
zeromus 7c5395e10b gitignore 2018-04-11 00:16:59 -05:00
zeromus 95a7673191 add build outputs to gitignore 2018-04-10 23:22:39 -05:00
zeromus c626ff0987 change some build outputs from vc10 to vc14 2018-04-10 23:22:39 -05:00
zeromus f42fb23276 delete excess gitignores (we're starting from scratch) 2018-04-10 23:22:39 -05:00
zeromus 6936766d93 fix warning 2018-04-10 23:22:39 -05:00
zeromus 104e17522e fix scmrev stuff to use git (copied from desmume) 2018-04-10 23:22:39 -05:00
zeromus 2afdc2769e change to use vs2015 2018-04-10 23:22:39 -05:00
zeromus 3a07e69599 start new gitignore 2018-04-10 23:22:38 -05:00
zeromus f28d236729 change subwcrev to use git instead 2018-04-10 23:22:38 -05:00
zeromus 8b3c15d0a4
Update readme.md 2018-04-08 18:54:14 -05:00
zeromus 5b99edbc2f
readme.md 2018-04-08 18:44:34 -05:00
zeromus 5439890395 Merge branch 'web' 2018-04-08 17:44:24 -05:00
zeromus df35afc8f8 tidying (dir for web) 2018-04-08 17:42:51 -05:00
zeromus 32dc4a2cd9 tidying (rename gfceu to final location) 2018-04-08 17:40:44 -05:00
zeromus 4666d75f0b Merge branch 'gfceu' 2018-04-08 17:39:50 -05:00
zeromus c0078a17fc tidying (reorg gfceu) 2018-04-08 17:39:25 -05:00
zeromus 0307e3b827 migration tidying (build master from trunk) 2018-04-08 17:35:15 -05:00
zeromus 4d2e8eee53 migration tidying 2018-04-08 17:31:44 -05:00
zeromus 23efe1ed7f "build fix for latest clang" 2018-04-05 07:14:22 +00:00
aquanull 3b531d0d7c Small fixes. 2018-04-04 18:26:57 +08:00
aquanull da4194ec7a Fixed the bug that the first frame of user input after movie end would be ignored. 2018-04-13 11:59:34 +08:00
aquanull c7710ae244 Fix for the interframe-pause-skips-updating-next-frame bugs, mostly noticeable when dumping AVIs. 2018-04-12 22:43:39 +08:00
aquanull 9137dfbf3f Tiny refactoring on input display. 2018-04-05 18:51:16 +08:00
aquanull 56f61b9b0b Now it clears previous input display when starts playing a movie from power-on. 2018-04-05 18:51:00 +08:00
aquanull f16f6548bb Adds 2 movie recording modes imported from VBA-rr.
Frame display is modified to indicate the currently selected mode.
2018-04-05 08:18:53 +08:00
aquanull e7adca9132 Allows changing Read-Only state by toggling Recording/Playing even if movie finished. 2018-04-05 00:53:56 +08:00
aquanull 23c7ce7342 Adds new command to toggle movie Recording/Playing directly.
Adds new command to truncate movie in Read+Write mode.
Adds new command to insert/delete 1 frame in Read+Write mode.
2018-04-04 21:13:42 +08:00
aquanull 693607f66b Fixes the bug that extra frames could be saved in the movie file, when rerecording from middle of the movie.
Also flushes the movie file more often.
2018-04-04 19:32:29 +08:00
aquanull b08267b84a Allows loading post-movie-end savestates if consistency of the timeline can be verified. 2018-04-04 18:49:33 +08:00
aquanull c161dd892b Fixes the bug loading the wrong movie extras via Movie->Recent. 2018-04-04 18:33:42 +08:00
aquanull 9560521507 RAM Watch now respects Directories Configuration for Memory Watch. 2018-04-13 11:59:23 +08:00
aquanull 7f8e2dd7e8 Fixes the focus bug of the main window minimized with clicks on Windows Taskbar. 2018-04-05 18:46:19 +08:00
aquanull 2d81852e81 Fixes for some file handles and memory leaks. 2018-04-04 18:28:42 +08:00
zeromus 352b1747bd fix CV3 in oldppu (regression from r3360). fixes #821 2018-04-01 17:38:41 +00:00
CaH4e3 5d7d99a3d9 reverted some of previous hacks fixed newppu crash... seems something with mmc5 in oldppu is wrong now... 2018-02-18 12:52:07 +00:00
CaH4e3 fbece4b5e8 CDLogger: MMC5 BG CHR logging fixed. 2018-02-11 15:24:54 +00:00
rainwarrior 2c64456617 should have kept rand() in the seed generator, it does get a time seed at init, also the |1 wasn't needed (the splitmix in the seed function takes care of that) so it's up to 32 bits 2018-01-17 05:12:01 +00:00
rainwarrior 2ed3f51b51 rt-01 mapper should use the new deterministic prng instead of rand() 2018-01-17 04:52:12 +00:00
rainwarrior ad3797655e followup on randomization vs movies fix:
1. Save/load RAMInitSeed in config so FCEUX doesn't always start up with the same first seed.
2. Moved seeding to PowerNES (FCEU_MemoryRand can be called multiple times, reseeding causes duplication.)
3. Increased bit depth of seed randomization from 15 to 31 bits for more possibilities.
2018-01-17 04:40:15 +00:00
zeromus 3a1d872a6d use pseudo-deterministic PRNG for random ram initialization (reseed PRNG from system clock every time poweron happens -- except when dealing with movies) 2018-01-17 03:42:59 +00:00
zeromus e8d85a9eb2 fix #818 (Memory randomization desyncs FM2 movie recording) 2018-01-17 00:11:36 +00:00
CaH4e3 caf8a070ce mapper 213 - updated for a new dump "168-in-1_[p1][!]"
UNIF HPxx - new board added for various multigame dumps
2018-01-04 16:22:48 +00:00
zeromus 62108ca281 fix #790 (conditional debugger can crash when using divide by zero) 2017-12-29 01:06:17 +00:00
CaH4e3 345b4e6139 Mapper 036 - update with mirroring command used by 4-in-1 MGC-026 (not break other game though) 2017-12-18 18:42:15 +00:00
CaH4e3 2841bb9374 BMC 80013-B unif mapper added for "90-in-1 Hwang Shinwey" dump 2017-12-17 22:28:37 +00:00
zeromus 77c7b0fded debugger: widen PC seek editbox so that wide things like DDDD can fit in it 2017-12-14 02:43:03 +00:00
zeromus 9cd3ac5353 fix crash in hex editor when rightclicking address with empty symbolic name 2017-12-04 02:19:17 +00:00
zeromus c7df3a0123 fix bugs in recent debugger commits: remove some spaces, fix some totally messed up replacements; fix an old bug that would have made the wrong bank' symbol get used for replacing an address 2017-12-04 02:15:29 +00:00
zeromus 7fdba82d67 symbolic debugging / disasm: refinements to r3379 2017-12-01 09:05:18 +00:00
zeromus 08b81a9089 fix #790 RIGHT NOW for some lazy guy. this means addresses such as "$1234" are no longer replaced with "mysymbol" but will now appear as "$1234 mysymbol". If anyone doesn't like this, you'll have to write about it in the bug ticket and I'll add it as an option. also fix replacement of zero page addresses (for instance, $F0 couldn't be replaced because the search token was $00F0) 2017-12-01 05:53:51 +00:00
zeromus 3077b3c904 fix: typo in game genie encoder/decoder window caption, "possible affected rom file addresses" opening OAM view in hex editor instead of ROM view (fixes #810) 2017-11-29 07:03:19 +00:00
CaH4e3 7d800d4b30 fk23c fixes 2017-10-27 20:03:43 +00:00
feos-tas 3240303cba use piano roll font to set row height for bookmarks
fix #805
2017-09-19 18:29:54 +00:00
zeromus b187ceb413 taseditor - demonstrate technique for controlling listview item height 2017-09-19 03:43:59 +00:00
rainwarrior f03df821ed NTSC filter null pointer crash fix from: https://sourceforge.net/p/fceultra/bugs/804/ 2017-08-28 02:24:15 +00:00
zeromus 9e2267412f support 64KB of mmc5 battery backed wram 2017-08-27 20:44:58 +00:00
alexwjackson 1c78ce233d apparently partialmd5 is the *last* 64 bits 2017-05-30 23:54:00 +00:00
alexwjackson a7a0a89aaf fix build again 2017-05-30 23:36:33 +00:00
alexwjackson e364248fac fix build again 2017-05-30 23:34:45 +00:00
alexwjackson 39d5db025a mmc1: improve support for >8K RAM 2017-05-30 23:31:38 +00:00
alexwjackson 1a84466703 fix mapper 23 2017-05-30 20:54:44 +00:00
alexwjackson b3a71e8af6 fix build 2017-05-30 20:48:35 +00:00
alexwjackson 268cf919e8 parameterize vrc2and4 register mappings 2017-05-30 20:39:45 +00:00
zeromus fca1c78925 lua: add debuggerloopstep 2017-05-15 17:21:58 +00:00
zeromus 6021ba627d lua: add emu_debuggerloop 2017-05-15 05:09:13 +00:00
zeromus 96997ddf95 fix breakpoints in stack triggering once when theyre fresh, or something like that 2017-04-30 06:39:27 +00:00
zeromus a85a840f36 try to fix major ancient screw-up with breakpoints data structure being open for reading while breakpoints fire, where the user can then modify breakpoints, causing the logic reading it to go nuts when resuming execution (addressing #790). I didnt test this very much. 2017-04-30 06:10:01 +00:00
zeromus a57d8b9583 mmc5 - fix oldppu 2007 reads, and tidy 2017-04-30 00:16:33 +00:00
zeromus 9f104fc38c fix extended attributes in newppu better, and fix old ppu's chr banking to match newppu maybe? 2017-04-29 23:03:35 +00:00
zeromus f3afacc5aa fix mmc5 extended attributes in newppu 2017-04-29 22:26:25 +00:00
zeromus 1a05549ad2 test commit for buildbot 2017-04-29 17:58:08 +00:00
zeromus 10b0e2711c test commit for buildbot 2017-04-29 17:49:47 +00:00
zeromus 00b0422ce9 test commit for buildbot 2017-04-29 17:45:34 +00:00
zeromus 0743d5da7b test commit for buildbot 2017-04-29 17:41:47 +00:00
feos-tas d78c0a9643 fix another case of 2-byte zp disasm
it seems to have been explicitly used, but we don't want it anymore

also make zp wrap
2017-04-29 13:52:53 +00:00
zeromus 305ebbc6d5 revert r3348 2017-04-29 08:05:22 +00:00
zeromus 4a1e4b6423 mmc5: use PPUON instead of spriteon and screenon 2017-04-29 05:38:32 +00:00
zeromus 7a54c133ce attempt to apply changes to MMC5 specified by #787 2017-04-29 04:22:03 +00:00
zeromus 0677dbe6b7 fool around with vrc2 and vrc4 to bring selected address bits up to modern knowledge standards. fixes #789 2017-04-29 02:10:48 +00:00
zeromus f99caee01a remove hack to fix "Ganbare Goemon Gaiden" credits, but which are supposed to be broken. Fixes #788 2017-04-29 01:58:58 +00:00
zeromus e31ac723b0 change width of more ZP instructions to 2 2017-04-28 22:11:39 +00:00
zeromus 50c0c2e5e4 dont crash when loading states into newppu which were taken on oldppu 2017-04-27 22:59:35 +00:00
zeromus 83275f30d7 lua: dont call write hooks twice for main memory 2017-04-23 04:47:57 +00:00
zeromus 1fea325020 fix #785 - emu.loadrom() should reload the current rom nicely 2017-04-19 05:37:19 +00:00
zeromus a9d305da3f consensus of everyone is that ZP,y instructions should print ex. "LDX $01,Y" instead of "LDX $0001,Y". Fixes #784 2017-04-15 21:31:00 +00:00
zeromus a85ba2a641 add GameHBIRQHook2 in newppu (fixes mapper 90 [contra spirits {pirate}]) (fixes #783). Kind of a semi-wild guess but I think it has a fair chance at being right. 2017-03-20 01:51:44 +00:00
zeromus e1609b143c "fix" mmc5 irq timing thingy in new PPU, to help SDF ship intro, but I'm not 100% sure this is right. check for regressions in any other mmc5 splits. but i checked the CV3 menubar and it was broken before and it's fixed now, so I think this is good. 2017-03-18 17:46:10 +00:00
zeromus 1c39740f3d crudely fix mmc5 split screen for SDF 2017-03-18 17:43:25 +00:00
zeromus 984d9b0035 fix #780 (error when dragging mouse up out of debugger box) 2017-03-06 18:08:55 +00:00
zeromus 33ad5a1e4d fix tiny mistake in mapper 28 that made CHR register writes not take effect in some cases (fixes #779) 2017-02-28 02:43:43 +00:00
zeromus fa22ade5bf oops, left my debug code in 2017-02-24 08:29:50 +00:00
zeromus 9f075c71a3 fix #777 (debugger loses comments with russian scribbles) 2017-02-23 21:58:10 +00:00
zeromus 089ddeeb5e apply patch #776 - cdlog lua library (and rom.readbytes) 2017-02-23 21:29:43 +00:00
zeromus f92a0991c3 fix link error 2017-02-15 06:28:02 +00:00
zeromus 9659e787a0 support mapper 190 2017-02-12 05:38:48 +00:00
zeromus c1e0edbe7f increase limit of x/yscale in linux gui from 10 to 40 2017-01-24 12:27:45 +00:00
zeromus 293fdbe333 fix bug in rom.writebyte 2017-01-16 20:59:14 +00:00
rainwarrior 152bffa627 PPU Viewer: fix incorrect display of $00 for sprite transparent colour value. 2017-01-14 21:49:53 +00:00
zeromus 4d259bf5e5 winport: fix errors in configuring pads 3&4 (related to snes support addition) 2017-01-07 18:25:17 +00:00
zeromus ea0b230bb9 winport: fix bugs in memview reducing characters after 0x80 to be dots (due to erroneous signed char < 0x20 test)
meant to address bug #768
2017-01-05 19:03:24 +00:00
zeromus 3f0647fb5f fix newppu rendering of justbreed BG (due to extended nametable mode). did i break other mmc5 games? 2016-12-26 23:38:07 +00:00
feos-tas 2c80da6cc7 add ppu lua library
only has readbyte and readbyterange so far
2016-12-22 15:15:38 +00:00
zeromus 79c27047e4 apply patch #766 (use tv_system from nes 2.0 header) 2016-12-21 19:57:03 +00:00
zeromus d54b7388b9 sdl: world's biggest hack: add --movielength int_num_frames for automated dumping with a good process exit. how was this missing? 2016-12-20 09:11:33 +00:00
feos-tas 2958f2e5df lua: obtain register values via memory, like hexeditor does 2016-12-13 18:13:46 +00:00
zeromus 71e414cfac fix lua print() on some systems, due to mistaken use of printf %Lg instead of just plain %g 2016-12-12 22:25:41 +00:00
zeromus df3d5c9bbe support chrram on uxrom via nes 2.0 2016-12-11 23:40:17 +00:00
zeromus ebcc1fdc0c fix crash by nes 2.0 boards with no chrram and no chrrom 2016-12-11 23:40:05 +00:00
feos-tas f292acee4f debugger: fix rightclicking the left panel that spawns hexeditor
hexeditor: make caption a bit less chatty
2016-09-26 16:57:32 +00:00
feos-tas 1ab2293aa9 debugger:
- more highlighting
- fix address selection
- fix default size to allow one more line
2016-09-25 19:42:18 +00:00
feos-tas 11b17219eb debugger highlight:
- add numbers
- fix opcodes
- tweak pc

default size restoration respects ida font width
2016-09-24 14:25:47 +00:00
feos-tas ff1c1e0977 debugger: start basic syntax highlighter 2016-09-23 21:27:55 +00:00
rainwarrior e2b761d9a5 ntview.cpp removing some legacy comments (seems like there used to be PPU viewer stuff in the NT viewer long ago?) 2016-09-23 20:08:40 +00:00
rainwarrior 7496340a89 PPU viewer: "Mask unused graphics" button cuts off text
guiconfig.cpp: making CB_PARTIALVISUALTHEME inline manifest file hack more readable (what does this do???)
2016-09-23 19:47:14 +00:00
rainwarrior 3c510966df replacing MS Sans Serif with Tahoma, apparently Windows does "special" things to MS Sans Serif that ignore DPI setting if installed on a high DPI monitor, related to bug #753 2016-09-23 18:26:49 +00:00
rainwarrior 602177c032 ppu viewer / nametable viewer pre-adjustment window sizes need to be big enough to fit the default DPI content 2016-09-23 18:07:32 +00:00
rainwarrior 16933e95c1 spacing out PPU viewer / nametable viewer UI layout (when I laid this out earlier my MS Sans Serif font was broken, apparently, see bug #735 for info) 2016-09-23 04:07:25 +00:00
rainwarrior 601cce4084 ppu viewer now expands to minimum size for pixel-based controls (also some cleanup of parallel solution in nt viewer), fixes second half of bug #753 2016-09-22 23:01:29 +00:00
rainwarrior 1d5c5b27c0 nametable viewer: add auto-resizing to accomodate smaller DPI, partial fix for bug #753 2016-09-22 21:17:42 +00:00
feos-tas f7841a1c8b debugger:
- move disasm to richedit control
- change font color for current PC instead of BG.
- IDA font option
- normal button with text for original size restoration

tracer: fix autoselection
2016-09-22 18:33:58 +00:00
feos-tas 2bf748a94c debugger: rework to display disasm bg in white and current PC bg in blue 2016-09-17 19:57:51 +00:00
feos-tas 7b1609e75e tracer: log bank number
mandatory when debugging banking glitches
2016-09-17 13:28:23 +00:00
rainwarrior 298d2e796b mentioning new fixed palette in PPU Viewer documentation 2016-09-07 20:11:37 +00:00
rainwarrior a01894c913 slight adjustment of PPU Viewer and Name Table Viewer layout to be a little bit more compact 2016-09-07 19:56:32 +00:00
rainwarrior 7b41cf06d9 adding greyscale palette option to PPU viewer and Nametable Viewer, for debugging while actual palettes are all-black 2016-09-07 18:38:49 +00:00
rainwarrior 1de49661ee ppuview.cpp replacing inconsistent spaces vs tabs 2016-09-07 17:39:42 +00:00
rainwarrior b0a91f5b0b visual attribute display mode for nametable viewer 2016-09-07 17:28:47 +00:00
rainwarrior c5d5989406 added attribute display to nametable viewer (replaced unused "Mirror" field) 2016-09-07 17:15:00 +00:00
rainwarrior 90044bba62 cheapocabra: revised mirroring in Software ID mode 2016-09-05 21:03:11 +00:00
punkrockguy318 4edd578c27 autotools: fix gd 2016-09-04 02:08:54 +00:00
punkrockguy318 f591649878 autotools: fix frameskip flag 2016-09-04 01:37:01 +00:00
punkrockguy318 841cb9dbfb sdl: add autogen script 2016-09-01 23:00:30 +00:00
punkrockguy318 3012b36569 sdl: add missing autotools include 2016-09-01 22:38:43 +00:00
punkrockguy318 b5cf94f5c6 sdl: update autotools gtk requirement and add required readme 2016-09-01 22:37:57 +00:00
punkrockguy318 4cc9274d71 sdl: added autotools build system 2016-09-01 22:34:32 +00:00
rainwarrior 9a6d4f50cf cheapocabra: Software ID mode disables entire ROM not just lowest 2 addresses, adding ID mode to save state 2016-08-31 19:52:25 +00:00
rainwarrior b0500e4925 cheapocabra forgot to initialize some of flash state, implemented software ID 2016-08-31 09:38:15 +00:00
rainwarrior c27986d340 cheapocabra minor documentation 2016-08-31 09:07:27 +00:00
rainwarrior 9e4eaab0e6 cheapocabra implemented self-flashing 2016-08-31 08:58:46 +00:00
rainwarrior 7ff81e92cb cheapocabra forgot to free CHR-RAM on close 2016-08-31 06:29:06 +00:00
rainwarrior f8d791b465 forgot to submit boards/cheapocabra.cpp 2016-08-31 06:11:03 +00:00
rainwarrior 1c33275e1d mapper 111 "cheapocabra" preliminary implementation (basic features only, no self-flashing yet) 2016-08-31 05:51:12 +00:00
rainwarrior 4a39895f1c exit box text replacing "FCE Ultra" with "FCEUX" 2016-08-31 03:39:19 +00:00
rainwarrior c4bc741ee1 improvement on r3284: instead fix new ppu debug reset problem by suspending CPU until the new PPU is in synch for a new frame 2016-08-31 03:33:04 +00:00
rainwarrior fc71914b23 fix new-PPU misalignment (garbled graphics) after reset while debugging 2016-08-31 02:46:16 +00:00
rainwarrior bb0f6234aa fix broken randomizer on silly quit messages (only 4 of 7 were displayed) 2016-08-31 02:04:33 +00:00
rainwarrior d9eb69523d nesgNoBGFillColor support for new ppu, re-enable old ppu sprite layer hiding 2016-08-30 09:40:36 +00:00
zeromus 72276d9b1c newppu: dont break sprite0 hit when disabling BG or OBJ display 2016-08-30 07:55:50 +00:00
rainwarrior cf175a60bd adding a set of 16 colours to the "unvaried" palette, especially useful for Lua overlay graphics 2016-08-25 12:33:21 +00:00
rainwarrior a23b61eea0 hex editor (memview) can now load from file too, not just dump to file anymore 2016-08-25 09:51:46 +00:00
rainwarrior b632b1d7a5 Relative mouse motion interface for SNES and Subor mouse; this allows fullscreen mode to keep the mouse fixed in the centre of the screen, permitting infinite motion. 2016-08-25 07:24:08 +00:00
rainwarrior 89a75e28fc alternative way of fixing fstat header conflict from r3276 (in case older/other compilers were relying on it), this is only used by netplay.cpp 2016-08-24 23:23:41 +00:00
rainwarrior f7a50ad163 removing #define fstat _fstat: ends up interacting with inline fstat code causing an infinite recursion on VS 2010 2016-08-24 23:17:27 +00:00
rainwarrior 74139bf111 RAM initialization options: default (00 00 00 00 FF FF FF FF as always), all FF, all 00, random. 2016-08-24 22:42:21 +00:00
rainwarrior ed3783db55 Hex editor memview:
1. expanded bookmarks to work correctly with all views (not just RAM)
2. fixed Find dialog to be able to find the first or last byte of the memory region.
2016-08-24 19:21:43 +00:00
rainwarrior bec851a768 Hex editor memview: prevent middle mouse button from attempting to "FreezeRam" when not in RAM mode. 2016-08-24 18:20:44 +00:00
rainwarrior a157b4a105 documenting hex editor's new OAM view from: r3271 2016-08-24 08:10:36 +00:00
rainwarrior 1814be4da5 hex editor memview: added OAM view and dump to file, added HOME/END key response, added bounds checking in a bunch of places to keep the view and edits within the memory bounds 2016-08-24 08:08:53 +00:00
rainwarrior 35b1f160dc remove unused variable from debug.cpp:DebugCycle (accidentally added while working on it) 2016-08-24 05:46:52 +00:00
rainwarrior 152a5f6173 documenting conditional breakpoints change from r3268 2016-08-24 05:42:02 +00:00
rainwarrior 6e5cfae6f7 1. added new 'R' and 'W' conditions for breakpoints which evaluate to the value read by read instructions, or the value about to be written by write instructions.
2. added illegal opcode support for breakpoints (filled in missing fields of optype matrix)
2016-08-24 05:35:51 +00:00
rainwarrior 539f5ce872 documenting third lua callback parameter from change r3266 2016-08-23 08:47:46 +00:00
rainwarrior f947ef06e7 lua write callbacks: adding optional third parameter to retrieve the value written, added Sprites.lua script to visualize sprites (requires and demonstrates feature just added) 2016-08-23 08:46:22 +00:00
zeromus 2873344ce8 fix parsing of lua colors over 0x80000000 on 32bits systems 2016-08-21 20:12:49 +00:00
CaH4e3 c4ec35c518 CDL: fixed vram data logging glitch 2016-08-07 12:34:58 +00:00
zeromus 4b562ff1af support (maybe? untested) 'S' register in conditional debugger breakpoints 2016-07-31 21:03:12 +00:00
feos-tas d591735196 restore interims on the site 2016-07-31 20:47:19 +00:00
feos-tas d61634cfe4 -pal won't die if dendy was loaded from config on launch. if -dendy isn't specified, and if left from config, it will get overridden by -pal.
make deploy.bat a bit more handy
2016-07-31 20:46:32 +00:00
feos-tas c6fc15afdd fix help regarding command line options
updated site

[[Split portion of a mixed commit.]]
2016-07-31 17:55:40 +00:00
feos-tas b830b49724 fix help regarding command line options
updated site

[[Split portion of a mixed commit.]]
2016-07-31 17:55:40 +00:00
feos-tas cde2e63efc better name 2016-07-31 17:11:04 +00:00
feos-tas 69752141c4 simple fix to -pal cmd setting turned into updating the whole infrastructure responsible for regions. now region change is also reported if it was specified in cmd.
fix #743
2016-07-31 17:06:46 +00:00
feos-tas 284d735bb9 found this great script just now
it's especially great for sound effects
2016-07-30 17:56:43 +00:00
zeromus 186005be3a etc 2016-07-28 21:07:05 +00:00
zeromus 1c5cb52946 etc 2016-07-28 21:04:20 +00:00
zeromus b7aa774a75 update compiling notes 2016-07-28 21:03:45 +00:00
zeromus 005b8e3a27 etc 2016-07-28 21:02:21 +00:00
zeromus b13e741b8b add dendy to homepage 2016-07-28 21:01:34 +00:00
zeromus eb0d73a9a9 update some random docs 2016-07-28 20:46:50 +00:00
zeromus 17d0c62a20 add 223 pressrelease 2016-07-28 20:40:30 +00:00
zeromus a94bb7e70c re-export web help with correct release date 2016-07-28 20:40:14 +00:00
feos-tas 12bc077765 added what's new 2.2.3
[[Split portion of a mixed commit.]]
2016-07-23 14:49:49 +00:00
feos-tas 54202b5a7d help: hint on PAL autodetection.
[[Split portion of a mixed commit.]]
2016-07-15 16:15:11 +00:00
feos-tas ead61dfe9b recompile chm and html
[[Split portion of a mixed commit.]]
2016-07-07 18:52:52 +00:00
feos-tas bfd4a489a7 help: mention new filters, palettes, duty and deemph swap checkboxes.
add Unsaturated-V6.pal

[[Split portion of a mixed commit.]]
2016-07-07 18:36:41 +00:00
feos-tas 40206ce1fd lua: fix #734 by adding emu.getpath() and emu.loadrom()
update help

[[Split portion of a mixed commit.]]
2016-07-03 12:01:17 +00:00
feos-tas 2cbcae6f6d help: address region/dendy and overclocking
[[Split portion of a mixed commit.]]
2016-07-02 17:02:24 +00:00
rainwarrior 913dddd7aa updating palette documentation to explain 512 entry .pal files 2015-09-17 20:46:03 +00:00
zeromus 13f6ce14eb fix bug in redirect to LuaScripting from google links (the embedded Script text triggered some sanitizing which broke redirecting. its a bug in helpndoc) 2015-06-18 07:07:09 +00:00
ansstuff 4bc9be8ff0 fixed typos in the pressrelease
[[Split portion of a mixed commit.]]
2013-09-24 12:51:30 +00:00
ansstuff 605fcb2440 updated site
[[Split portion of a mixed commit.]]
2013-09-23 22:50:46 +00:00
ansstuff 7e518e1e15 * Taseditor/Hexeditor: made HotChanges colors slightly darker again
* updated docs

[[Split portion of a mixed commit.]]
2013-09-23 20:00:46 +00:00
ansstuff f1095dc2c3 updated docs
[[Split portion of a mixed commit.]]
2013-09-22 18:54:01 +00:00
ansstuff dae16cd697 * web: redirect old online Help index to the new online Help 2013-09-12 12:11:54 +00:00
ansstuff ab9ce76ca7 updated Taseditor docs (basically, only hotchanges-colors.png)
[[Split portion of a mixed commit.]]
2013-09-05 15:38:18 +00:00
ansstuff 5e701eee27 updated docs
[[Split portion of a mixed commit.]]
2013-09-05 15:15:17 +00:00
ansstuff f56a7976a6 * Taseditor: handle "Insert Coin" command correctly (no recording while seeking/etc)
* Taseditor: updated docs

[[Split portion of a mixed commit.]]
2013-06-15 19:44:11 +00:00
ansstuff 8a55e7443e * movie recording: fixed bug when emulator allowed recording commands outside the range of FM2 specs (#615)
* movie recording: added "Insert coin" command
* updated docs accordingly

[[Split portion of a mixed commit.]]
2013-06-15 18:46:52 +00:00
ansstuff f54f56acae * Hexeditor: specify Data bank condition when adding a Breakpoint by context menu
* updated docs

[[Split portion of a mixed commit.]]
2013-05-27 15:42:08 +00:00
ansstuff 382995f111 updated docs
[[Split portion of a mixed commit.]]
2013-05-07 14:53:50 +00:00
ansstuff 6c2c160958 * web: fixed typo in the release date 2013-04-02 15:11:11 +00:00
zeromus a271309c48 test hook 2013-03-26 18:45:40 +00:00
ansstuff 58866002c0 fix html page 2013-03-11 20:52:11 +00:00
ansstuff bdefe65697 changed homepage pic 2013-03-10 23:46:22 +00:00
ansstuff d557682ec1 updated site
[[Split portion of a mixed commit.]]
2013-03-10 23:06:00 +00:00
ansstuff 1eed03d068 updated docs
[[Split portion of a mixed commit.]]
2013-03-10 21:18:37 +00:00
ansstuff 04bcce1864 * CDLogger: removed "Enable New PPU" note, because Old PPU is now functional as well
* updated docs

[[Split portion of a mixed commit.]]
2013-03-10 20:14:13 +00:00
ansstuff 2bcb72abf8 * added JumpingFCEUXWindow.lua
* updated docs
* Taseditor: some more cleanup

[[Split portion of a mixed commit.]]
2013-03-09 14:04:01 +00:00
feos-tas ca9d62d673 Tweaked SoundDisplay2.lua a bit.
Added LuaPerks description.
TODO: write LuaPerks samples.

[[Split portion of a mixed commit.]]
2013-03-03 15:24:05 +00:00
ansstuff e44c2357cd forgot to add the file 2013-03-01 16:32:36 +00:00
ansstuff 799195d93f updated docs
[[Split portion of a mixed commit.]]
2013-03-01 12:49:18 +00:00
ansstuff a8e244fd8f win32: fixed restoring maximized window after switching from fullscreen
win32: holding Shift when resizing FCEUX window reverts "Force integral factors" meaning
win32: remodel "Video config" dialog:
* removed the list of predefined modes (they were broken anyway)
* removed FS stretching options (obsoleted by "Best Fit")
* removed broken display of "Current Pixel Aspect Ratio" (may return it after implementing the 4:3 mode)
* "Full Screen (hotkey: Alt + Enter or double-click)" - reads current hotkey mapping

[[Split portion of a mixed commit.]]
2012-12-19 19:35:00 +00:00
ansstuff 5df5312223 * fixed "Auto-resume old play session", for some reason NSFs don't allow loading savestate right after opening the ROM
* updated docs

[[Split portion of a mixed commit.]]
2012-12-16 13:07:50 +00:00
ansstuff ae4b602c3c web: added cool pic
[[Split portion of a mixed commit.]]
2012-11-29 21:39:44 +00:00
ansstuff 71e416505f web: fixed download links 2012-11-27 20:07:43 +00:00
punkrockguy318 8534a1ce4d web: changed link to static changelog to link to commit browser 2012-11-27 20:00:43 +00:00
ansstuff 31891bad88 updated site
updated docs

[[Split portion of a mixed commit.]]
2012-11-27 19:52:11 +00:00
punkrockguy318 a94d844aa2 web: updated the link to svn 2012-11-27 17:19:44 +00:00
ansstuff 9c3eba6c84 fixed docs
[[Split portion of a mixed commit.]]
2012-11-27 17:11:25 +00:00
ansstuff a4a56ec5a8 updated docs and changed version to 2.2.0
[[Split portion of a mixed commit.]]
2012-11-27 17:03:56 +00:00
ansstuff fe45494191 initial upload of English version of TAS Editor Manual
[[Split portion of a mixed commit.]]
2012-11-25 17:07:47 +00:00
ansstuff 4a98f4339e taseditor-ru: updates
[[Split portion of a mixed commit.]]
2012-11-25 17:01:57 +00:00
ansstuff 09faa324e2 improved SaveSnapshot performance ($552)
[[Split portion of a mixed commit.]]
2012-11-12 12:21:59 +00:00
ansstuff 7fe54e1924 * Taseditor: update RAM Search and RAM Watch when jumping causes game state to change
* added BoulderDash_AmoebaAI.lua
* added CustomLagIndicator_RvT.lua

[[Split portion of a mixed commit.]]
2012-10-29 12:43:22 +00:00
ansstuff 1971817b6d updated docs
[[Split portion of a mixed commit.]]
2012-10-12 20:00:29 +00:00
ansstuff dd0de14e13 updated docs
[[Split portion of a mixed commit.]]
2012-10-02 13:39:20 +00:00
ansstuff fa39315a2e fixed previous commit
[[Split portion of a mixed commit.]]
2012-09-28 19:41:12 +00:00
ansstuff cc1a56f198 * Tracer: fixed crash when logging undefined opcodes
* Hexeditor: display 0x4000-0x5FFF properly (fixes #545)
* Hexeditor: Ctrl+F opens Find dialog
* Code/Data Logger: fixed VROM dumping in Old PPU mode
* updated docs

[[Split portion of a mixed commit.]]
2012-09-28 15:55:14 +00:00
ansstuff afa3e044bc * improved FPS display, added a hotkey to toggle it
* Debugger: single click on any address copies this address to the "Seek To" field and "Bookmark Add" field
* Debugger: "Name" button in Bookmarks, total revamp of Bookmarks
* updated docs

[[Split portion of a mixed commit.]]
2012-09-26 20:19:01 +00:00
ansstuff 0fc6688c26 * Lua: auto-clearing previous frame drawings (same behaviour as other emulators)
* Debugger: fixed mouseover when using Symbolic debugging
* Debugger: mouseover works for the disassembly window too
* updated docs

[[Split portion of a mixed commit.]]
2012-09-23 12:45:28 +00:00
ansstuff a06c9c9904 * taseditor-ru: updates 2012-09-21 13:09:54 +00:00
ansstuff 7680c2c910 * Taseditor: cleaned up AdjustUp and AdjustDown logic
* updated docs

[[Split portion of a mixed commit.]]
2012-09-14 15:37:46 +00:00
ansstuff 873138b1dd * Debugger: deleting a breakpoint leaves selection in the Breakpoints list
* Debugger: changed "Load .DEB" checkbox caption to ".DEB files" to emphasize that it also affects saving .deb files, not just loading them
* updated docs
* Taseditor: fixed extremely rare LagLog bug in History.jump() and RegisterBranching
* Taseditor: fixed RegisterLuaChange to also consider LagLog changes

[[Split portion of a mixed commit.]]
2012-09-11 15:32:11 +00:00
ansstuff 4d7584eb77 * Debugger: fixed Symbolic Debugging (Names and Comments display)
* Debugger: special strings (NMI/IRQ/etc) can be also used in "Seek To" field and Bookmarks
* updated docs

[[Split portion of a mixed commit.]]
2012-09-06 15:00:27 +00:00
ansstuff e7b5bdde81 * fixed conditional breakpoints bug #538
* updated the documentation on Debugger according to rainwarrior's edits, removed "Debugger Usage (Intermediate)"

[[Split portion of a mixed commit.]]
2012-09-05 15:25:10 +00:00
ansstuff 945b1d833d * fixed savestates filenaming bug when working with a movie
* updated docs

[[Split portion of a mixed commit.]]
2012-08-30 15:51:19 +00:00
ansstuff 533327bfa6 updated SubWCRev
[[Split portion of a mixed commit.]]
2012-08-28 15:23:05 +00:00
ansstuff 4c556052a6 * fixed MessageLog bug #537
* taseditor-ru: updates

[[Split portion of a mixed commit.]]
2012-08-26 19:50:44 +00:00
ansstuff bd43c39e12 * total revamp of Video config stuff, now current screen resolution is always suggested by default
* Best Fit also works for fullscreen mode
* "Hide mouse cursor" and "Use console BG color for empty areas" options
* "Switch fullscreen by double-click" option in GUI config
* Fixed "Reload ROM" hotkey in fullscreen
* updated docs

[[Split portion of a mixed commit.]]
2012-08-20 20:41:45 +00:00
ansstuff 579bfa851e * "Maintain aspect ratio (best fit)" option in Video config
* updated docs

[[Split portion of a mixed commit.]]
2012-08-19 20:31:40 +00:00
ansstuff c8465b09b6 taseditor-ru: glossary update and various fixes 2012-08-18 20:49:51 +00:00
ansstuff 1ef200ff52 * Added FPS display to Win32 port (Config->Display->FPS)
* Debugger: double-click breakpoint also adds current bank number to breakpoint condition
* Debugger: "Display ROM offsets" option
* updated docs

[[Split portion of a mixed commit.]]
2012-08-12 16:22:22 +00:00
ansstuff 08f14816f4 taseditor-ru: minor fixes 2012-08-08 15:15:13 +00:00
ansstuff fd1360db10 updated docs
[[Split portion of a mixed commit.]]
2012-08-08 15:00:14 +00:00
ansstuff fa4d8fbd38 taseditor-ru: first fixes 2012-07-26 20:08:09 +00:00
ansstuff dc43c5e634 Web: uploaded Russian version of TAS Editor Manual. English version is in progress... 2012-07-26 13:53:35 +00:00
ansstuff 1e38d32451 Taseditor: auto-starting Note editing when creating Marker by double-click
[[Split portion of a mixed commit.]]
2012-07-25 19:16:58 +00:00
ansstuff b207305974 Updated SVN link and fixed paths in BATs
[[Split portion of a mixed commit.]]
2012-07-25 13:37:24 +00:00
ansstuff f438b260d1 * Taseditor: Markers are bound to Input by default; some minor fixes
* fixed docs

[[Split portion of a mixed commit.]]
2012-07-23 16:45:36 +00:00
zeromus af36c7ee4a fix fm2 docs romChecksum 2012-07-04 18:39:20 +00:00
ansstuff caf5d883b4 * updated docs
* new hotkey "Run Manual Lua function" (not mapped by default)
* Taseditor: general cleanup of codebase

[[Split portion of a mixed commit.]]
2012-07-01 14:11:24 +00:00
punkrockguy318 f84f270427 web: update tracker url 2012-06-30 12:12:23 +00:00
punkrockguy318 52f684cfa0 web: fix typo on release date on home page 2012-06-24 16:21:20 +00:00
ansstuff 05a400ede6 * Lua functions emu.pause() and emu.unpause() don't yield and don't reset emulator speed anymore
* updated docs

[[Split portion of a mixed commit.]]
2012-05-01 21:05:35 +00:00
punkrockguy318 f0e20784fa sdl: reverted default frame advance key to backslash (from backtick)
[[Split portion of a mixed commit.]]
2012-04-07 21:47:58 +00:00
ansstuff 6497a90da4 * Taseditor: changed the order of "Select between Markers"
* Taseditor: applying PAL and PPU flags when loading projects
* Taseditor: much better way of calculating Branches Tree; hinting full timelines
* Taseditor: miniarrow showing current Playback cursor position in Branches Tree
* Taseditor: "Bookmark#" modtype, undo/redo works for Bookmarks
* Taseditor: version data in fm3
* fixed HUD/messages dumping in AVI

[[Split portion of a mixed commit.]]
2012-04-07 17:10:29 +00:00
ansstuff 00babac07d * Taseditor: Alt+Wheel = jump across gaps in Input/Markers
* updated the site on fm2 format

[[Split portion of a mixed commit.]]
2012-03-26 18:40:35 +00:00
ansstuff 2be6585036 * Taseditor: BookmarksList clicks apply on buttonup only
* returned default mapping of Frame Advance hotkey to Backslash
* updated documentation on fm2 format

[[Split portion of a mixed commit.]]
2012-03-25 15:37:45 +00:00
ansstuff c63b80ded3 updated documentation 2012-03-23 20:30:31 +00:00
ansstuff 06cb8c5c02 * Taseditor: changed Shift+V and Shift+Ins to Ctrl+Shift+V and Ctrl+Shift+Ins
* updated documentation

[[Split portion of a mixed commit.]]
2012-03-23 20:20:50 +00:00
punkrockguy318 98ec2cf1d3 web: minor clarity adjustments 2012-03-11 21:58:03 +00:00
punkrockguy318 6600d12c1d web: fixed typo (on the main page) 2012-03-06 19:14:55 +00:00
punkrockguy318 b0863d98f5 docs: preliminary cfg.d information; other minor changes 2012-03-06 08:09:15 +00:00
adelikat a636096a1c document the different command values 2012-02-19 20:24:23 +00:00
punkrockguy318 f4d4486e9e docs: updated sdl-faq (can someone pull this pls? thx :D ) 2012-02-10 05:50:19 +00:00
ansstuff 144228c191 * updated fceux.chm
* uploaded new online documentation (old fceux-2.0.2 doc is still there)
* converted old HelpNDoc project file to HelpNDoc3 format

[[Split portion of a mixed commit.]]
2012-02-02 19:06:42 +00:00
ansstuff 1ca05a68d7 * 1 new Lua function in Joypad library: getimmediate()
* 1 new Lua function in TAS Editor library: getsuperimpose()
* added 5 new Lua scripts demonstrating some TAS Editor library functions
* updated fceux.chm and online documentation, uploaded HelpNDoc3 project file

[[Split portion of a mixed commit.]]
2012-02-01 22:02:26 +00:00
punkrockguy318 6856a1ca4c sdl: switched default frame advance key from "\" to "`" for consistency with Win32 port
[[Split portion of a mixed commit.]]
2012-01-08 18:29:12 +00:00
punkrockguy318 4d46f9c7a2 move gfceu out of old; it's still being packaged by ubuntu apparently
use python2 explicitly


[[Split portion of a mixed commit.]]
2011-11-21 03:21:14 +00:00
zeromus 4866456799 remove misleading insinuation of interim build uptodateness from website 2011-10-31 19:30:57 +00:00
punkrockguy318 cb61de9469 moving fceu-server to old/, makes more sense than in fceux source tree
[[Split portion of a mixed commit.]]
2011-10-23 23:02:05 +00:00
punkrockguy318 a0bf17a846 doc: update to reflect new hotkey in 2.1.6 2011-10-19 02:48:02 +00:00
punkrockguy318 b0cea418b8 sdl: docs update -- wow these are old 2011-10-11 23:12:09 +00:00
punkrockguy318 a6a7d23107 web: adjust website to prepare for release; add links to 2.1.5 2011-06-04 15:14:29 +00:00
punkrockguy318 7eb733297b added some gtk changes to draft press release 2011-05-30 06:34:09 +00:00
punkrockguy318 272e510094 web - Added draft for 2.1.5 press release. 2011-05-30 06:23:20 +00:00
adelikat 1cfb185edb Fix documentation of movie mnemonics 2011-05-20 00:00:08 +00:00
punkrockguy318 3a4bfed369 web: clean up 2011-01-25 05:47:52 +00:00
punkrockguy318 56ba3588d0 web: fixed some errors and outdated info on download.html 2011-01-25 05:42:29 +00:00
punkrockguy318 043cada9b9 minor bugfix for gfceux (which is obsolete anyway) 2010-11-01 16:00:38 +00:00
punkrockguy318 1352bf1e0f moved gfceu/gfceuX to old/ folder to avoid confusion
the python launchers are obsolete, use the built-in GUI

[[Split portion of a mixed commit.]]
2010-10-19 19:56:17 +00:00
punkrockguy318 dc5091e79b moved gfceu/gfceuX to old/ folder to avoid confusion
the python launchers are obsolete, use the built-in GUI
2010-10-19 19:56:17 +00:00
punkrockguy318 dddf070dab updated sdl info on download page 2010-08-15 23:48:59 +00:00
zeromus 97166aa361 update osx docs 2010-07-18 05:56:11 +00:00
adelikat 9009f74a8e Web - Fix a broken link, add a few doc files that got left out last time. 2010-06-01 02:26:32 +00:00
adelikat dcaf39d489 getting stuff ready for a 2.1.4a maintenance release.
[[Split portion of a mixed commit.]]
2010-06-01 01:54:30 +00:00
adelikat 0c9d62bb9b Web - add download link to win2000/98 binary 2010-05-31 03:04:36 +00:00
adelikat 9048555c42 Compile Help docs & webpages, Fix version string, fix up web pages for release. Update changelog to reflect release date + svn.
[[Split portion of a mixed commit.]]
2010-05-31 01:46:29 +00:00
adelikat 1c164a6108 Fix up all press releases to conform to site formatting (css, menus, etc) 2010-05-31 00:56:32 +00:00
adelikat 4c550ea985 Better document new loadstate logic and fix up changelogs
[[Split portion of a mixed commit.]]
2010-05-30 23:45:55 +00:00
adelikat 63bc019c2b Adding 2.1.4 press release file, unfinished (since we aren't done) but since the changelog is so large I thought I would go ahead and take care of some of that ahead of time. 2010-05-29 20:13:53 +00:00
adelikat d031a44f11 Web stuff 2010-05-22 22:55:41 +00:00
adelikat dc1eb6723f Web stuff 2010-05-22 22:45:12 +00:00
adelikat 758922f257 Web stuff 2010-05-22 22:42:17 +00:00
adelikat c41a18d546 Web stuff 2010-05-22 22:34:42 +00:00
adelikat b36ffcf4e3 Web stuff 2010-05-22 20:18:40 +00:00
adelikat ad413efbb9 Web - updated downloads page with information about the SVN repository and compiling. 2010-05-19 01:42:26 +00:00
adelikat 9e3a0b94ce Web - change method of contacting an admin 2010-05-12 02:00:43 +00:00
ugetab 537faf95ff Made updating the Interim version also include the revision and data of that revision. Updated the changelog for something else. Run \fceu\vc\defaultconfig\MakeDownloadHTML.bat to enable/disable download.html updating when compiling a Release version.
[[Split portion of a mixed commit.]]
2010-05-09 00:16:33 +00:00
ugetab 1ffe0a2291 Added the TASVideos forum topic to the website contact page. 2010-04-23 19:51:53 +00:00
adelikat bbf1207004 Web - add old versions to downloads page 2010-04-17 02:50:40 +00:00
adelikat 7f21373ee6 Web - Fix links 2010-04-08 16:35:28 +00:00
adelikat 0886430758 fixed link 2010-04-08 14:33:10 +00:00
adelikat 9b9dd5a077 typo 2010-04-08 14:29:21 +00:00
adelikat fdf005edad And one more web update 2010-04-08 14:26:49 +00:00
adelikat 77a085b7e6 And these 2010-04-08 14:10:00 +00:00
adelikat 01d09ac435 Update web docs 2010-04-08 14:06:47 +00:00
adelikat 67ab127bea Lua - fixed zapper.read() to read movie data if a movie is playing. Also changed the struct values to x,y,fire. This breaks lua scripts that used it previous, sorry. Fixed the zapper lua scripts to be compatible with the new zapper code. Updated documentation to reflect this change.
[[Split portion of a mixed commit.]]
2010-03-28 04:47:02 +00:00
punkrockguy318 008c7fe0be sdl doc change 2010-03-04 03:54:47 +00:00
punkrockguy318 4c5f65ee2b updated sdl doc 2010-03-04 03:53:56 +00:00
punkrockguy318 ae5221aff9 gfceux: change default sound rate 2010-03-03 21:29:56 +00:00
punkrockguy318 e141f9b42d updated sdl docs 2010-03-03 09:27:22 +00:00
adelikat 1c601cf7c8 Document movie FDS flag on help.chm
[[Split portion of a mixed commit.]]
2010-03-03 04:08:58 +00:00
adelikat 59c4a4eddd document the new FDS flag to FM2.html 2010-03-03 03:53:54 +00:00
punkrockguy318 0b512f29f4 fixed indentation issue
changed default uninstlal folder to /usr/local
2010-01-08 03:31:35 +00:00
punkrockguy318 452a4e675e some stuff to put networking back in gfceux 2009-12-31 07:09:14 +00:00
adelikat 4fbf0c9070 Website - bleh, no the link is fixed 2009-12-21 02:31:34 +00:00
adelikat 6d3d550e81 Website - fix broken link and remove files that are no longer needed. 2009-12-21 02:27:49 +00:00
zeromus e605a6fda1 fix ntview for new ppu?
[[Split portion of a mixed commit.]]
2009-12-08 05:54:21 +00:00
zeromus cc424c8447 cleartype begone! 2009-12-05 16:48:18 +00:00
adelikat 609f5d587d Web site - more moving around. 2009-12-05 00:22:35 +00:00
adelikat 869fb48d45 Web site - moving some files around. 2009-12-05 00:18:07 +00:00
adelikat c0839e5d55 Web site - bleh, SVN removed these. 2009-12-05 00:09:51 +00:00
adelikat 05712e8c0c Website - more cleanup 2009-12-05 00:05:16 +00:00
adelikat 80e5aa54b1 Web site - Add Heading & Navigation bar to all pages. Fix up formatting. 2009-12-04 22:42:48 +00:00
adelikat 26d34682d8 Forgot to upload new files. 2009-12-04 18:34:14 +00:00
adelikat c8e46abb4a Website - Test - Added heading and a navigation bar with buttons to home.html. 2009-12-04 18:32:42 +00:00
adelikat 62dce9e715 Web site - more stuff. 2009-12-04 18:04:46 +00:00
adelikat 705d509c73 Web site - A few more little things 2009-12-04 17:04:16 +00:00
adelikat 9a6c209be7 Website - more stuff. 2009-12-04 17:01:40 +00:00
adelikat b72f965411 Website - much more content and fixes. 2009-12-04 16:39:34 +00:00
adelikat 8a9c6c9c3e Web site - minor fixes. 2009-12-04 00:51:17 +00:00
adelikat 15497abe1f Web site - More content, more fixes, etc. 2009-12-03 19:58:46 +00:00
adelikat ce6587cf26 Web site - lots more changes and content 2009-12-03 17:30:56 +00:00
adelikat da53ca1ca1 Web site - more fixes, some more files. 2009-12-02 17:29:51 +00:00
adelikat 130df87173 Website - checking in the help chm compiled as htm files 2009-11-30 00:26:27 +00:00
adelikat 5af9e15880 Web - whoops 2009-11-27 16:21:19 +00:00
adelikat 7eada81ac8 Web - checking in some temp files. Nothing useful here. 2009-11-27 15:53:16 +00:00
adelikat 19b91b03e0 Website - Move images 2009-11-21 18:45:46 +00:00
adelikat cdb8128a7f Website - added some images, compressed existing ones, fixed a few. 2009-11-21 18:40:35 +00:00
adelikat 1d6d2e6bd7 Web - checking in some uncropped images of dialogs. 2009-11-18 21:08:44 +00:00
adelikat adb04b1fec Going ahead and checking in some files for the new web site. 2009-11-18 19:06:02 +00:00
adelikat b68d02d3bf Fixing more stupid errors in web docs. Yay. 2009-11-03 16:07:37 +00:00
adelikat 83cc34760c Fix my errors in the web docs 2009-11-03 16:01:25 +00:00
adelikat 13c7a7b42a Getting everything release ready, version number, web site changes, documentation changes. This SVN number marks FCEUX 2.1.2
[[Split portion of a mixed commit.]]
2009-11-03 15:36:47 +00:00
adelikat 96aaf32b5a Minor fix ups to documentation plus info added to 2.1.2 press release.
[[Split portion of a mixed commit.]]
2009-11-03 04:58:17 +00:00
adelikat 3f1f71f736 Win32 - Changes to help docs and renamed it better, compile and update the .chm file. Create a 2.1.2 press release file.
[[Split portion of a mixed commit.]]
2009-11-03 04:44:40 +00:00
qeed 505f609e72 use sys.exit() instead of exit() 2009-09-07 12:58:58 +00:00
qeed f3f13bdaee fix gfceux 2009-09-07 12:48:49 +00:00
adelikat 7de54cb16b More webiste fixes, doh 2009-07-29 21:14:39 +00:00
adelikat f5dba7c09a Website fixes 2009-07-29 21:10:44 +00:00
adelikat dabf4deccc Added press release 2.1.1, updated index & downloads php files, updated .chm with the 2.1.1 changelog
[[Split portion of a mixed commit.]]
2009-07-29 20:27:02 +00:00
punkrockguy318 b34699c371 don't like this file 2009-04-29 05:12:19 +00:00
punkrockguy318 7b60d5cdc7 Removed the need for the glade XML converter
Also removed some silly glade errors
Changed the installation instructions to prevent breakage
2009-04-29 05:09:52 +00:00
punkrockguy318 dd21307e7a attempt to load the in-tree gfceux scripts before loading the installed scripts (to ease development out of the tree) 2009-04-29 04:41:00 +00:00
punkrockguy318 9e3b6195d6 gfceux now runs from its source directory without being installed 2009-04-29 04:39:47 +00:00
adelikat 97af95b75a Minor fixes to index.php 2009-04-05 17:10:19 +00:00
adelikat 0a62399c16 Updated web docs for 2.1.0a release 2009-04-05 16:53:00 +00:00
zeromus 861287dfbd add deb download link 2009-04-01 22:22:38 +00:00
adelikat 6edcc48365 doh 2009-03-30 01:24:15 +00:00
adelikat 928250bb7c Fixed typo on main page 2009-03-30 01:02:56 +00:00
adelikat 4415ffe18c updated downloads page 2009-03-30 00:11:11 +00:00
adelikat 5fb82583e2 Adding pressrelease-2.1.html 2009-03-29 14:31:02 +00:00
adelikat b767c72946 Updated web docs for the 2.1 release 2009-03-29 14:30:20 +00:00
punkrockguy318 66a5dc8a94 Bumped version number to 2.1 for gfceux 2009-03-28 14:14:17 +00:00
punkrockguy318 7ab151035d increased width on sdl inputcfg window 2009-03-17 04:53:52 +00:00
punkrockguy318 4c877572af fixed bug where all gamepad configs from gui were to gamepad4 2009-03-17 04:52:29 +00:00
punkrockguy318 c9e2b938cb oops also left out this file
gfceux now installs fine again; i moved around some files and forgot to commit them to svn
2009-03-17 04:22:16 +00:00
punkrockguy318 932b3aabec oops somehow this got missing from svn? 2009-03-17 04:17:42 +00:00
punkrockguy318 9462a9c727 rearranged the files into packages 2009-02-16 09:40:28 +00:00
punkrockguy318 53256867a1 setup.py install is fixed 2009-02-11 15:33:19 +00:00
punkrockguy318 1b63129449 restored old config behavior because the gui doesn't support joysticks yet
added note to install file that setup.py is broken right now
2009-01-13 09:02:27 +00:00
punkrockguy318 d7812c852a fixed indentation error in gfceux 2008-12-19 02:52:15 +00:00
punkrockguy318 adefbb3069 initial joystick config support in gfceux 2008-12-07 15:28:20 +00:00
punkrockguy318 fb0220dbd7 keygrabber now inits joystick subsystem in sdl 2008-12-05 22:50:43 +00:00
punkrockguy318 41c1a26b54 added some fresh ideas for gfceux 2008-12-05 17:47:44 +00:00
punkrockguy318 e2a63b1107 initial joystick support for python keygrabber (shinydoofy i need your help to test this i dont have a joystick around) 2008-12-05 17:41:27 +00:00
punkrockguy318 c063fdaf99 documented and cleaned up the python fceux config parser 2008-12-05 17:37:01 +00:00
punkrockguy318 ffaa490eb1 updated about box UI 2008-12-05 10:19:18 +00:00
punkrockguy318 30bf680160 minorUI fixes / changes i didn't know what was good 2008-12-05 09:12:21 +00:00
punkrockguy318 ff1128bfe3 gfceux stuff 2008-12-05 09:02:00 +00:00
punkrockguy318 589d939c67 UI cleanup and shit 2008-12-05 08:44:43 +00:00
punkrockguy318 78a310ba09 shut up some glade warnings and also made pygame optional, but recommended. Pygame is required for the GUI of the gamepads. if pygame is not found, the old --inputcfg method is used. 2008-12-05 08:18:29 +00:00
punkrockguy318 1fdb739619 turbo a and b support forr GUI 2008-12-05 07:37:43 +00:00
punkrockguy318 5eda05d2b4 autogen a config file and directory if one doesn't exist 2008-12-05 07:09:20 +00:00
punkrockguy318 a006cb249a changed coding style to 4 spaces for indent (from 2). note to self: never use two spaces again its impossible to read 2008-12-05 07:00:09 +00:00
punkrockguy318 b0d4eb7035 initiual GUI for gamepad config (currently only works with keyboards, joystick support to come) 2008-12-02 20:40:23 +00:00
punkrockguy318 ab899d720e config parser now works a lot better 2008-12-02 19:31:04 +00:00
punkrockguy318 1e7a87f370 New python object: FceuxConfigParser. This will be used by gfceux to map different things in the config. 2008-12-02 09:02:57 +00:00
punkrockguy318 665698e8e1 minor website changes 2008-12-01 01:49:58 +00:00
punkrockguy318 83bc523ac5 website cleanup 2008-12-01 01:47:20 +00:00
punkrockguy318 ee2de016f4 removed cheat converter off the website as the file is 404 2008-12-01 01:39:37 +00:00
punkrockguy318 cfba0af3ff minor webpage change` 2008-12-01 01:36:54 +00:00
punkrockguy318 291d9a7ca9 updated webpage 2008-12-01 01:34:38 +00:00
punkrockguy318 00e8b23a5f fixed gcc compile error and made hotkeys consistant with docs
[[Split portion of a mixed commit.]]
2008-12-01 00:37:40 +00:00
punkrockguy318 56d66eca2c more sdl doc cleanup 2008-12-01 00:24:41 +00:00
punkrockguy318 33283bcb55 updated sdl doc 2008-12-01 00:19:26 +00:00
punkrockguy318 840dddcd2f updated sdl doc 2008-12-01 00:18:41 +00:00
punkrockguy318 17612dbee4 more documentation cleanup 2008-12-01 00:07:09 +00:00
punkrockguy318 00df583858 update sdl docs 2008-11-30 23:54:45 +00:00
punkrockguy318 2dad09a2e9 fixed typo is sdl doc 2008-11-30 23:41:12 +00:00
punkrockguy318 fb955902cd SDL documentation update 2008-11-30 23:39:45 +00:00
punkrockguy318 53a2a3720a linked the ubuntu/debian building howto on the download page 2008-11-10 05:21:44 +00:00
punkrockguy318 9da46b197c version bump and moved options into new fceux dir (.fceux) 2008-11-10 05:01:58 +00:00
zeromus a4a94602d4 biz 2008-11-02 19:29:01 +00:00
zeromus 5ff276e5d9 PR for 2.0.3 release
[[Split portion of a mixed commit.]]
2008-11-02 19:10:53 +00:00
punkrockguy318 b2a00e7bf7 minor string changes to gfceu 2008-10-19 18:24:06 +00:00
punkrockguy318 a3303b1ec1 doced the new uninstall script 2008-09-24 07:12:40 +00:00
punkrockguy318 addf44fd11 added uninstall script for gfceux 2008-09-24 07:07:17 +00:00
punkrockguy318 7205b82ad9 UI improvements and code cleanup; changelog for details 2008-09-22 08:17:49 +00:00
punkrockguy318 cf4a00e602 Added bugfix to changelog 2008-09-14 22:47:07 +00:00
punkrockguy318 9befb65786 Made error message of missing fceux binary more elegant 2008-09-14 22:31:53 +00:00
punkrockguy318 b531d9c16d fixed typo 2008-08-24 07:23:24 +00:00
punkrockguy318 9ed58b9426 added sdl faq 2008-08-23 08:15:22 +00:00
punkrockguy318 67212a759b GUI cleanup for GTK inputcfg 2008-08-22 17:26:41 +00:00
punkrockguy318 70213ada5d preliminary gamepad config 2008-08-21 05:07:56 +00:00
zeromus 795db790e0 update web content 2008-08-19 05:57:56 +00:00
zeromus 3efe588d0f update web content 2008-08-19 05:54:57 +00:00
zeromus 675f432aa7 add desynching docs 2008-08-18 19:28:34 +00:00
zeromus 948ccbac29 website fix 2008-08-15 01:54:24 +00:00
zeromus 8084d2ea10 update website content 2008-08-15 01:33:51 +00:00
zeromus 2a92dd4d38 update press release 2008-08-15 01:20:59 +00:00
punkrockguy318 953c7c03f6 added notice to SDL docs that they are incomplete 2008-08-14 17:29:59 +00:00
zeromus 7014951029 docs update 2008-08-14 15:43:35 +00:00
zeromus 0e67b9ad19 restore savestate error recovery functionality. This should have the side effect of guaranteeing that ( SF [ 2040761 ] Wrong savestate bug - crashes FCEUX) is resolved.
[[Split portion of a mixed commit.]]
2008-08-14 07:50:41 +00:00
punkrockguy318 3d7536ceb2 string change 2008-08-14 00:04:42 +00:00
punkrockguy318 bb1c02ef09 string changes for 2.0.2 2008-08-13 23:45:12 +00:00
zeromus 39b645f936 website docs prep 2008-08-13 23:12:30 +00:00
zeromus 17cc1ac326 add 2.0.2 pressrelease content 2008-08-13 23:04:41 +00:00
zeromus 76f9ddfba9 docs reorg 2008-08-13 22:59:27 +00:00
zeromus fb523e082a docs reorg 2008-08-13 22:34:21 +00:00
zeromus 29ae3f917b docs reorg 2008-08-13 22:31:48 +00:00
zeromus 9458823859 docs reorg 2008-08-13 22:29:33 +00:00
zeromus 7dcb7b8055 docs reorg 2008-08-13 22:24:50 +00:00
zeromus c6126e7452 docs reorg
[[Split portion of a mixed commit.]]
2008-08-13 22:05:08 +00:00
punkrockguy318 a66f6d2ba6 fceux now writes config direcoty as soon as it starts whether a rom is
loaded or not

[[Split portion of a mixed commit.]]
2008-08-11 04:26:37 +00:00
punkrockguy318 258d14b213 More permissions setup and svn cleanup
[[Split portion of a mixed commit.]]
2008-08-11 03:31:23 +00:00
punkrockguy318 ebe632f2c3 More permissions setup and svn cleanup
[[Split portion of a mixed commit.]]
2008-08-11 03:31:23 +00:00
punkrockguy318 8bcf7c411c Permissions update and man page update on gfceux
[[Split portion of a mixed commit.]]
2008-08-11 03:27:11 +00:00
punkrockguy318 d96331c6d3 Permissions update and man page update on gfceux
[[Split portion of a mixed commit.]]
2008-08-11 03:27:11 +00:00
punkrockguy318 eec4472c7b Gfceux bugfixes and sdl fceux bugfixes
[[Split portion of a mixed commit.]]
2008-08-11 03:16:46 +00:00
punkrockguy318 63c939c8f5 Numerious bugfixes and improvements, see changelogs for details
[[Split portion of a mixed commit.]]
2008-08-10 10:56:55 +00:00
zeromus be4afbad47 web site announces 2.0.1 release 2008-08-04 23:06:28 +00:00
zeromus 5c3cca4edd Deleted broken old link and fixed a bug on the website 2008-08-03 16:52:59 +00:00
zeromus 85d3ca7202 Added some more info to the website about the SDL build 2008-08-03 16:49:53 +00:00
punkrockguy318 fc57bd4889 gfceu 0.6.1 maintainence release 2008-08-03 14:30:18 +00:00
punkrockguy318 79fa0a8758 updated some website things 2008-08-03 05:45:42 +00:00
zeromus b42bfc419a final web site 2008-08-03 01:26:45 +00:00
punkrockguy318 534b6c2a27 made some changes to the 0.6 to reflect the incompatibility with fceux 2.0 2008-08-03 01:03:46 +00:00
punkrockguy318 8495f6d77a Made install instructions more cross platform 2008-08-03 00:58:29 +00:00
punkrockguy318 96dce16bad Fixed some build issues and updated man page 2008-08-03 00:55:21 +00:00
punkrockguy318 12450a8819 Prepare gfceux for release 2008-08-03 00:50:40 +00:00
punkrockguy318 1d063028cf Added support for lua scripts and movie playback from the linux GUI 2008-08-03 00:40:46 +00:00
zeromus 620f0b9a92 etc 2008-08-02 21:20:05 +00:00
zeromus 7a417c79c2 etc 2008-08-02 21:17:01 +00:00
zeromus d37161f0e2 testing a more generalized web site setup 2008-08-02 20:59:56 +00:00
punkrockguy318 1cc72aaafb added french translation 2008-08-01 21:59:12 +00:00
punkrockguy318 3be144b230 made default bpp in gfceux to be 32 2008-07-23 02:12:11 +00:00
punkrockguy318 5db27f23fd code cleanup 2008-07-17 04:39:28 +00:00
punkrockguy318 eb54d81e5e started work on the python config parser 2008-07-16 06:47:42 +00:00
punkrockguy318 1bfa59edd6 code cleanup and build script update 2008-07-16 06:06:04 +00:00
punkrockguy318 6785d6708a Wrote the get key program. This program creates an SDL window and waits
for user input.  It then will print the button type, device number, and 
button number.

Some of the code was derived straight from the fceu codebase to ensure 
full compatibility.

I want gfceux to be able to directly modify the button configuration.  
With fceux new config file system, gfceux will be able to rewrite values 
based on user input.  This would be a much friendlier option than the 
whole "titlebar" input sytem.

I wrote this in C, because I didn't want another bullshit dependency to 
get gfceux to run right (pygame sdl bindings)
2008-07-16 05:58:39 +00:00
punkrockguy318 ee1e742261 gfceu now looks in the script directory for fceux
this will make it easy to pump out (g)fceux sdl builds for testing
2008-07-02 17:30:06 +00:00
punkrockguy318 af4be663f2 renamed folders for clarity's sake
[[Split portion of a mixed commit.]]
2008-07-02 06:02:39 +00:00
punkrockguy318 db7f0658bc renamed folders for clarity's sake
[[Split portion of a mixed commit.]]
2008-07-02 06:02:39 +00:00
punkrockguy318 ebadaa21a7 gfceu now supports autoscaling 2008-07-02 05:58:29 +00:00
zeromus ad95d3e524 cleaning up my test files
[[Split portion of a mixed commit.]]
2008-07-01 05:44:07 +00:00
zeromus c4cd9aacd7 13 2008-07-01 05:19:40 +00:00
zeromus 261e813fdd test12 2008-07-01 04:50:54 +00:00
zeromus 14415e37f0 test11 2008-07-01 04:46:29 +00:00
zeromus a86214059d test10 2008-07-01 04:45:50 +00:00
zeromus d3e90d8870 test9 2008-07-01 04:44:59 +00:00
zeromus 7ef3285000 test8 2008-07-01 04:41:40 +00:00
zeromus df92e3dd4d tet7 2008-07-01 04:40:50 +00:00
zeromus 29829a5f85 test6 2008-07-01 04:39:45 +00:00
zeromus 59e4bd8ca3 test 2008-07-01 04:36:22 +00:00
zeromus d7f0e796ef 2008-07-01 04:33:28 +00:00
zeromus 30ddc679eb 2008-07-01 04:29:51 +00:00
zeromus 3fba45f6c3 2008-07-01 04:28:22 +00:00
zeromus de3eafb90b 2008-07-01 04:26:20 +00:00
punkrockguy318 2ebe9a8a46 oops 2008-06-29 01:13:50 +00:00
punkrockguy318 e560984671 code cleanup
fixed some stupid bugs with the saving of options
2008-06-29 01:12:28 +00:00
punkrockguy318 508734aee6 Modularized the sdl KeyGrabber 2008-06-28 19:19:06 +00:00
punkrockguy318 2db6590fbd added a new module that creates a sdl window and gets a key from the user
this can be used so that hotkeys and input can be controlled from the GUI
directly

this module however adds an additional depenency to the program: pygame

i might just rewrite this in c so gfceu doesn't have another dependency
2008-06-28 19:13:37 +00:00
punkrockguy318 ac2abd91f1 code cleanup 2008-06-28 01:56:25 +00:00
punkrockguy318 9bc3055053 updated ui 2008-06-25 16:34:39 +00:00
punkrockguy318 b2ef9985fb code cleanup 2008-06-24 16:43:26 +00:00
punkrockguy318 656d98c45b code cleanup 2008-06-24 04:43:47 +00:00
punkrockguy318 0c521a6327 No longer requires gnome-vfs to play games over the network 2008-06-24 04:41:05 +00:00
adelikat e915bf8739 2008-06-22 15:27:54 +00:00
punkrockguy318 8cd90d3352 added support for sound buffer size
also created a script to generate the gfceu.xml file
2008-06-18 01:46:02 +00:00
punkrockguy318 427c7ad721 fixed gamepad config issue 2008-06-17 17:36:01 +00:00
punkrockguy318 a5d1f30977 updated setup files to reflect glade->builder change 2008-06-17 17:33:48 +00:00
punkrockguy318 763a886c74 ocd 2008-06-17 16:04:14 +00:00
punkrockguy318 f4228ee4d8 [[Split portion of a mixed commit.]] 2008-06-17 16:02:45 +00:00
punkrockguy318 76ba622dcc [[Split portion of a mixed commit.]] 2008-06-17 16:02:45 +00:00
punkrockguy318 a9dc04c394 [[Split portion of a mixed commit.]] 2008-06-17 16:02:45 +00:00
punkrockguy318 12e4300a35 bumped version number to .7
gfceu works with stable fceu
gfceu .7 works with fceux
2008-06-17 15:53:40 +00:00
punkrockguy318 cff7eb225a Major code cleanup 2008-06-17 15:46:41 +00:00
punkrockguy318 e6cc29b7d2 code cleanup 2008-06-17 15:04:13 +00:00
punkrockguy318 d547cc57ba Transitioned from gtk.glade to gtk.Builder. gtk.glade will be depreciated soon and builder is much cleaner.
gtk.Builder requires pygtk >= 2.12, so as does gfceux
2008-06-17 14:39:48 +00:00
punkrockguy318 bb4030d361 Fixed some issues with loading the glade file.
Fixed an issue where the glade UI wouldn't load when prefix isn't /usr/
Elegantly closes when the glade file cannot be read
2008-06-17 13:59:54 +00:00
punkrockguy318 3d98cd56a6 started some glade gtk mockups for controller config 2008-06-11 01:57:28 +00:00
punkrockguy318 357170ae26 Reopened the config tab, now that config works again =] 2008-06-10 17:58:55 +00:00
punkrockguy318 02b56cfa33 fixed bug in which gfceux would fail to start on virgin systems 2008-06-10 05:56:27 +00:00
punkrockguy318 47edbe2852 fixed bug where advanced options would not work 2008-06-08 13:29:21 +00:00
punkrockguy318 2b97f23288 got rid of bpp from gui until its fixed 2008-06-08 03:54:38 +00:00
punkrockguy318 2abda3ed4a xscale/yscale options still work
todo: bpp
2008-06-08 03:45:41 +00:00
punkrockguy318 1295e797e5 cleaned up sound options 2008-06-08 03:33:53 +00:00
punkrockguy318 3ecd31976e now remembers sound settings on load and quit 2008-06-07 22:08:34 +00:00
punkrockguy318 19c976aa0b New GUI options for soundq and soundrate 2008-06-07 22:06:12 +00:00
punkrockguy318 73aec896e3 added some sounds options to the glade file (though they do not work in the code yet) 2008-06-07 00:12:07 +00:00
punkrockguy318 15c65c8968 added news item 2008-06-06 02:22:49 +00:00
punkrockguy318 714b2a13ee moved gfceu that works with stable fceu back to gfceu 2008-06-06 00:33:27 +00:00
punkrockguy318 9eb1841bd8 moved gfceu to gfceux 2008-06-06 00:32:42 +00:00
punkrockguy318 944128ae91 moved gfceu to gfceux
[[Split portion of a mixed commit.]]
2008-06-06 00:32:42 +00:00
punkrockguy318 dfacf938e9 creates new config file, to be seperate from stable gfceu
also mocked up some video options in the glade
2008-06-06 00:23:26 +00:00
punkrockguy318 742fa86e3b disabled network tab in glade because fceu-server fceux compatibility is completely broken right now 2008-06-05 23:36:37 +00:00
punkrockguy318 32f5774cb8 gfceu is now compatible with fceux 2008-06-05 23:31:28 +00:00
punkrockguy318 d30dd3de0a gfceu-stable will remain compatible until a release ever gets out for fceux. gfceu will be worked on to be compatible with the latest subversion fceux
[[Split portion of a mixed commit.]]
2008-06-05 23:13:00 +00:00
punkrockguy318 5d0b4e8947 fixed dead link 2008-06-05 03:16:30 +00:00
punkrockguy318 487eba21b0 updated some dead links 2008-06-05 03:09:59 +00:00
punkrockguy318 89ad67e441 fixed some glade loading issues and updated some strings in the glade file 2008-06-05 03:06:21 +00:00
punkrockguy318 00a47173b4 fixed weird issue where glade file wasn't working 2008-06-05 02:04:33 +00:00
punkrockguy318 89c4dcc76a 2008-06-05 01:59:44 +00:00
thekingant 2911dab026 Shuffle things around so people don't think this guy create the
rom format, or the roms.
2008-02-20 07:14:35 +00:00
thekingant 37afc347af I was looking at an older email. I guess SETPAL has kind of been
replaced with MiNES.
2008-02-20 07:13:13 +00:00
thekingant 9ee5ca197c Make sure people know these tools were written by Mateusz Viste.
And that path on shell.sourceforge.net should have been
/home/groups/f/fc/fceultra/

It's also good to "chmod -R ug+rwX /home/groups/f/fc/fceultra" and
"chgrp -R fceultra /home/groups/f/fc/fceultra"
2008-02-20 07:07:24 +00:00
thekingant ac521d5ed2 Add links to FCEU-PAL and SETPAL from Mateusz Viste.
FYI when you update these files in the repository you need to
ssh to shell.sourceforge.net, cd to /home/groups/c/co/cobertura
then "svn update"
2008-02-20 06:59:15 +00:00
punkrockguy318 31f58d983f fixed link 2007-04-07 23:49:48 +00:00
punkrockguy318 1f5b7e3b35 ridded steuptools 2007-02-11 14:20:10 +00:00
punkrockguy318 1980074fb2 2007-01-02 02:30:41 +00:00
punkrockguy318 735b7d7f1b Version 0.6.0 2007-01-02 02:28:59 +00:00
punkrockguy318 26cf8fad70 Fixed join/host bug 2006-12-10 14:02:36 +00:00
punkrockguy318 164cd0f951 Test 0.5.2 release 2 2006-10-14 23:06:05 +00:00
punkrockguy318 c8e12cb6db Cleaned up code a bit 2006-10-14 22:13:58 +00:00
punkrockguy318 1b2e04ee75 Accepted scots improved options patch 2006-10-14 21:41:08 +00:00
punkrockguy318 69bd6ba6bc Fixed silly hack when forcing GTK event processing 2006-09-26 20:48:29 +00:00
punkrockguy318 ea35466dd2 0.5.1 release 2006-09-22 02:46:43 +00:00
punkrockguy318 1bdeb57300 0.5.1svn -> 0.5.1 2006-09-22 02:29:55 +00:00
punkrockguy318 7376f30421 Fixed stupid bug 2006-09-22 02:12:56 +00:00
punkrockguy318 13503e4bca Added patch from Scott Brown 2006-09-22 01:45:21 +00:00
punkrockguy318 f53c339781 Moved options file to gfceu_options 2006-09-21 19:46:25 +00:00
punkrockguy318 c8fd4f0978 bump to 0.5.1 2006-09-07 19:37:36 +00:00
punkrockguy318 c3eb9a23ec added bug 2006-07-30 04:07:20 +00:00
punkrockguy318 3588759582 YUCK! Converted dos eol style to UNIX 2006-07-30 04:00:49 +00:00
zeromus 11eeb7d9be added back in other projects
[[Split portion of a mixed commit.]]
2006-07-29 05:49:34 +00:00
zeromus 5b226ed263 added back in other projects
[[Split portion of a mixed commit.]]
2006-07-29 05:49:34 +00:00
8228 changed files with 380225 additions and 1597175 deletions

31
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,31 @@
---
name: Bug report
about: Create a bug report
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**(please complete the following information):**
- OS and Version: [e.g. Windows 10]
- Version of FCEUX used (QT or non-QT)
**Additional context**
Add any other context about the problem here.

69
.gitignore vendored
View File

@ -1,21 +1,50 @@
# A simulation of Subversion default ignores, generated by reposurgeon.
build
/vc/defaultconfig/scmrev.h
/vc/.vs
/vc/vc14_bin_Debug
/vc/vc14_obj_Debug
/vc/vc14_obj_Release
/vc/vc14_obj_PublicRelease
/vc/vc10_bin_Debug
/vc/vc10_obj_Debug
/vc/vc10_obj_Release
/vc/vc10_obj_PublicRelease
/vc/x64
/vc/*.user
/vc/*.sdf
/vc/*.opensdf
/vc/*.suo
/vc/ipch
/output/auxlib.lua
/output/fceux.pdb
/output/7z.dll
/output/7z_64.dll
/output/fceux.exe
/output/fceux.exp
/output/fceux.lib
/output/fceux.cfg
/output/sav/*.sav
/output/fcs/*.fc*
/vc/userconfig/scmrev.h
/vc/fceux.zip
/vc/fceux64.zip
# macOS junk
.DS_Store
# linux build output
bin
src/fceux
fceux-net-server
*.o
*.lo
*.la
*.al
*.libs
*.so
*.so.[0-9]*
*.a
*.pyc
*.pyo
*.rej
*~
*.#*
.*.swp
.DS_store
# Simulated Subversion default ignores end here
# The contents of the svn:ignore property on the branch root.
/.sconsign.dblite
/config.log
/.sconf_temp
.sconf_temp/
.sconsign.dblite
.deps
.dirstamp
/output/movies
/output/cheats
/output/snaps
/output/sav
# typical CMake build directory
/build

70
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,70 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch (Linux)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/src/fceux",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "(gdb) Core Dump (Linux)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/src/fceux",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"coreDumpPath": "${workspaceFolder}/build/core-fceux",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/build/src/Debug/fceux.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"console": "externalTerminal"
},
{
"name": "(lldb) Launch (MacOS)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/src/fceux.app/Contents/MacOS/fceux",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
}
]
}

28
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,28 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build - Incremental",
"type": "shell",
"command": "${workspaceFolder}/scripts/unix_debug_build.sh",
"problemMatcher": [ "$gcc" ],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Build - Full/Clean",
"type": "shell",
"command": "${workspaceFolder}/scripts/unix_debug_build.sh -B",
"problemMatcher": [ "$gcc" ],
"group": {
"kind": "build",
"isDefault": false
}
}
]
}

7
CMakeLists.txt Normal file
View File

@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 3.8)
project(fceux)
add_subdirectory( src )

1
CNAME Normal file
View File

@ -0,0 +1 @@
fceux.com

9
INSTALL Normal file
View File

@ -0,0 +1,9 @@
To compile and install FCEUX for SDL, follow the instructions in the README file.
Users of Microsoft Visual Studio can use the solution files within the vc directory. The Windows XP toolset is required to open and build this solution. If it
is not installed, go to "Tools" > "Get Tools and Features". Select "Individual Components" and then install "C++ Windows XP Support for VS 2017 (v141) tools".
These solution files will compile FCEUX and some included libraries for full functionality.
The SDL port build tool of choice has come full circle back to Cmake. The cmake build tool will compile the new Qt version of the SDL GUI.
Building of the SDL fceux no longer supports use of the scons build tool.

159
README Normal file
View File

@ -0,0 +1,159 @@
FCEUX SDL 2.6.4 SDL README
==========================
Originally By Lukas Sabota (sf: punkrockguy318)
Updated By mjbudd77
[NOTE: This only applies to Qt/SDL builds]
https://fceux.com
Last Modified: April 30, 2023
Table of Contents
-----------------
1. Requirements
2. Installation
3. Compile-time options
4. GUI
5. LUA Scripting
5. FAQ
6. Contact
1 - Requirements
----------------
* sdl2 - Version >= 2.0 (sdl2 >= 2.8 recommended)
* cmake - Required to build fceux. (cmake >= 3.8 recommended)
* qt5 OR qt6 - (qt version >= 5.11 recommended)
- Required Qt Modules: Widgets and OpenGL
- Optional Qt Modules: Help
* liblua5.1 (optional) - Will statically link internally if the system cannot provide this.
* libx264 (optional) - H.264 video encoder for avi recording (recommended)
* libx265 (optional) - H.265 video encoder for avi recording (recommended)
* ffmpeg libraries (optional) - for avi recording (recommended)
* - ffmpeg libraries used: libavcodec libavformat libavutil libswresample libswscale
* libarchive (optional) - for 7zip archive support (test with version 3.4.0)
* minizip
* zlib
* openGL
* c++ compiler -- you may use g++ from gcc or clang++ from llvm or msvc 2019
2 - Installation
----------------
The old scons build system is no longer supported.
Fceux can be compiled and built using the cmake build system. To compile, run:
mkdir build; cd build;
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. # For a release build
To build a binary with debug information included in it:
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..
The Qt version of the GUI builds by default and this is the preferred GUI for use.
For those who must have GTK/Gnome style, there is a GTK style plugin for Qt that
can be installed to the OS and selected for use via the GUI.
The previous GTK version of the GUI is now retired and has been removed from the build.
The Qt version GUI by far exceeds the old GTK gui in capability and performance.
The Qt GUI can build/link against both Qt5 and Qt6. To enable building against Qt6, use -DQT6=1 argument:
cmake -DCMAKE_INSTALL_PREFIX=/usr -DQT6=1 -DCMAKE_BUILD_TYPE=Debug ..
To do the actual compiling:
make
To compile faster with multiple processes in parallel:
make -j `nproc`
After a sucessful compilation, the fceux binary will be generated to
./build/src/fceux . You can install fceux to your system with the following command:
sudo make install
By default cmake will use an installation prefix of /usr/local.
The recommended installation prefix is /usr (this is where the installed fceux.desktop file expects everything to be)
You can choose to install the lua scripts (located in output/luaScripts) to a directory of your choosing:
cp -R output/luaScripts /usr/local/some/directory/that/i/will/find/later
If you would like to do a full clean build a 'make clean' like function, you can do either of following:
make clean # from inside build directory
OR:
Delete build directory and start over at initial cmake step:
rm -rf build;
3 - Compile-time options
------------------------
You can enable and disable certain features of fceux at build time.
Look in the src/CMakeList.txt file to tweak options.
4 - GUI
-------
The Qt GUI is required and automatically builds as part of the build. The Qt GUI is the default.
When invoking cmake, Qt6 can be used (instead of Qt5) by specifying a -DQT6=1 on the command line.
See above build instructions.
OpenGL options:
For Linux builds, the OpenGL library preference can be either GLVND or LEGACY (default).
To use GLVND OpenGL, add a -DGLVND=1 on the cmake command line.
Qt Help Engine options:
The GUI supports both online and offline documentation options.
Online documentation requires an internet connection and a browser.
Qt supports an help engine that can read compiled html files (made via the Qt qhelpgenerator tool),
these files can reside locally on ones computer and be accessed by the GUI using the Qt help engine module.
The Qt help engine is an optional dependency and can be enabled in the build by
adding a -DQHELP=1 on the cmake command line.
Qt Styling Options:
The Qt GUI can use custom Qt widget styling by providing it a Qt stylesheet file.
Use the GUI config window to set style options.
5 - LUA Scripting
-----------------
FCEUX provides a LUA 5.1 engine that allows for in-game scripting capabilities. LUA is enabled either way. It is just a matter of whether LUA is statically linked internally or dynamically linked to a system library.
A collection of LUA scripts are provided with the source distribuition in the output directory:
$source_directory/output/luaScripts
You should be able to run most of the scripts in this directory out of the box. However, some of the the lua scripts require functionality from the "auxlib.lua" library. This file can be copied from "./bin/auxlib.lua" or "./src/auxlib.lua". You will need to place this file in the LUA library search path if a script bombs out looking for auxlib.lua. If the script bombs out, the console output will let you know what the search path are (/usr/local/lib/lua/5.1/ on my particular system). You can simply copy the auxlib to a preferred location to utilize the functions in the auxiliary lua library.
In addition, some of the lua scripts require functionality from the "iup" GUI library. You can obtain binaries and source for "iup" upstream (http://www.tecgraf.puc-rio.br/iup/), but I would recommend obtaining packages from your Linux distribution if you are able, as it can be difficult to compile or get the binaries working correctly on a given system.
You will need to add the location that the libiup*.so files to the LUA_CPATH. This can be done with the following command (please note that the location where iup is installed with vary based on how you installed iup):
export LUA_CPATH="/path/to/iup/lib/lib?51.so;"
For example, if libiuplua51.so is located in '/usr/lib', you can run the following command before executing fceux to place the library in the search path:
export LUA_CPATH="/usr/lib/lib?51.so;"
Finally, if any scripts complaints about "attempt to index global 'iup' (a nil value)", this means that "iup" needs to be explicitly loaded into the script. You can add the following line to the head of script to manually load "iup":
require("iuplua")
The latest version of iup (3.5 at the time of writing) is recommended.
6 - FAQ
-------
* Q. Im having issues with my sound!
* A. Try different SDL audio drivers to see if this makes any difference. You can do this by using this command before running fceux:
export SDL_AUDIODRIVER=driver
where driver is either: 'pulse' for pulseaudio;' alsa' for ALSA; 'dsp' for OSS; 'esd' for ESD; see SDL documentation for details (http://www.libsdl.org/docs/html/sdlenvvars.html)
There are sound options that you can tweak at runtime through command line switches:
* -soundq x internal sound quality hack value (0 off)
* -soundrate x sound rate (sane values: 28000 48000
* -soundbuffersize x (in ms) sane values (30, 50, 100, 120)
Running fceux through esddsp is known to fix some audio issues with pulseaudio on some older Ubuntu versions.
7 - Contact
-----------
If you have an issue with fceux, report it in the github bug tracker (see fceux at github.com). If you would like to contact the author of this readme personally, e-mail LTsmooth42 <at> gmail <dot> com. You can also check us out at #fceu on irc.freenode.net.

View File

@ -1,76 +0,0 @@
file_list = Split("""
cart.cpp
cheat.cpp
crc32.cpp
config.cpp
debug.cpp
endian.cpp
fceu.cpp
fds.cpp
file.cpp
filter.cpp
general.cpp
ines.cpp
input.cpp
md5.cpp
memory.cpp
netplay.cpp
nsf.cpp
palette.cpp
ppu.cpp
sound.cpp
state.cpp
unif.cpp
video.cpp
vsuni.cpp
wave.cpp
x6502.cpp
movie.cpp
unzip.c""")
Export('file_list')
SConscript(Split("""
boards/SConscript
input/SConscript
fir/SConscript
mappers/SConscript
drivers/common/SConscript
drivers/pc/SConscript
"""))
#palettes/SConscript
Import('file_list')
# XXX path separator fixed right now
opts = Options()
opts.Add('PSS_STYLE', 'Path separator style', 1)
opts.Add('LSB_FIRST', 'Least significant byte first?', 1)
env = Environment(options = opts,
CPPDEFINES={'PSS_STYLE' : '${PSS_STYLE}',
'LSB_FIRST' : '${LSB_FIRST}'})
# use sdl-config to get the cflags and libpath
import os;
sdl_cflags_pipe = os.popen("sdl-config --cflags");
sdl_cflags = sdl_cflags_pipe.read();
sdl_cflags = sdl_cflags.rstrip(os.linesep);
sdl_cflags_pipe.close();
sdl_libpath = [];
sdl_libs = [];
sdl_libflags_pipe = os.popen("sdl-config --libs");
sdl_libflags = sdl_libflags_pipe.read();
for flag in sdl_libflags.split(' '):
if flag.find("-L") == 0:
sdl_libpath.append(flag.strip("-L"));
else:
sdl_libs.append(flag.strip("-l"));
sdl_libflags_pipe.close();
# add zlib
libs = sdl_libs;
libs.append('z');
env.Program('fceu', file_list, CCFLAGS=sdl_cflags, LIBS=libs, LIBPATH=sdl_libpath)

73
TODO-SDL Normal file
View File

@ -0,0 +1,73 @@
Priorities
==========
* Clean out old unused files - scons build system is dead, cmake is the way to go.
* GTK GUI was not cross-platform. A Qt5 version of the GUI has been created to meet this need.
The GTK GUI has been retired and is no longer supported.
* The Qt GUI has by far exceeded the capabilities of the older GTK version. Below is a GUI capability
matrix showing the differences between the two. I HIGHLY RECOMMEND USING THE Qt GUI.
* Code cleanup. Lots of compiler warnings with newer GCC. Maybe I'm OCD... but these warnings bother me.
Features
========
* Emulator no runs as a separate thread from the GUI. Much improved performance.
* Cross platform QT GUI is fully functional
---------------------------------------------------------------------------------|
---------------------- GUI Capability Matrix -----------------------------------|
---------------------------------------------------------------------------------|
Feature | Qt5 | GTK3 |
-----------------------------------------------------|-------------|-------------|
Basic game ROM open/run and close via menu functions | YES | YES |
Load/save game states | YES | YES |
Select and execute Lua script via file browser | YES | YES |
Lua Console/Control Window | YES | NO |
Screenshot snap/save functionality | YES | YES |
Virtual game pad button mapping window | YES | YES |
Other input device type button mapping window | NO | NO |
Audio mixer / config window | YES | YES |
Video config window | YES | YES |
OpenGL graphics | YES | YES |
Hot key config window | YES | YES |
Palette config window | YES | YES |
Multi-thread (GUI and emulation on separate threads) | YES | NO |
Emulation speed control via menu | YES | NO |
Emulation speed control via hotkeys | YES | YES |
Fullscreen functionality | YES | YES |
AVI/WAV Record Functionality | YES | NO |
NES Emulation Power/Reset/Pause functionality | YES | YES |
Game genie load/enable capability | YES | YES |
Movie record/save/play functionality | YES | YES |
Cheat search window | YES | YES |
Active Cheat window | YES | YES |
RAM Search Window | YES | NO |
RAM Watch Window | YES | YES |
Memory Watch Window | NO | NO |
TAS Editor | YES | NO |
6502 Debugger Window | YES | YES |
PPU Viewer | YES | NO |
Name Table Viewer | YES | NO |
Sprite Viewer | YES | NO |
NES Palette Editor | YES | NO |
Memory Hex Editor | YES | YES |
Trace Logger | YES | NO |
Code/Data Logger | YES | NO |
Game Genie Encoder/Decoder | YES | NO |
iNES Header Editor | YES | NO |
Built in help pages | YES | NO |
Network play (who actually uses this???) | NO | NO |
-----------------------------------------------------|-------------|-------------|
---------------------------------------------------------------------------------|
---------------------------------------------------------------------------------|
QT
===
* Clean out rest of old GTK comments and #ifdefs
* GUI Debug Tools Pretty Much Done
* GUI now compiles in windows as well.
BUGS
====
DOCS
====
* Docs REALLY need a cleanup/rewrite

45
_config.yml Normal file
View File

@ -0,0 +1,45 @@
# jekyll configuration for github pages
# ignore stuff not part of the website, everything except:
# - documentation/
# - web/
# - fceux.png
# - index.html
exclude:
- attic
- fceux-server
- getSDLKey
- gfceu
- m4
- output
- pipelines
- src
- vc
- .gitignore
- COPYING
- ChangeLog
- INSTALL
- Makefile.am
- NEWS
- NewPPUtests.txt
- README
- STYLE-GUIDELINES-SDL
- TODO-SDL
- _config.yml
- appveyor.yml
- autogen.sh
- azure-pipelines.yml
- changelog.txt
- configure.ac
- doxygen
- fceux.desktop
- readme.md
- fceux-server/fceux-net-server.exe
- vc/BizHawk.Build.Tool.exe
- vc/pscp.exe
- vc/upx.exe
- vc/zip.exe
# Include all .js and .json files that start with an '_'
include: [ "_*.js", "_*.json" ]

88
appveyor.yml Normal file
View File

@ -0,0 +1,88 @@
version: 1.0.{build}
environment:
matrix:
- job_name: Windows 32
appveyor_build_worker_image: Visual Studio 2019
- job_name: Windows 64
appveyor_build_worker_image: Visual Studio 2019
- job_name: Win64 Qt
appveyor_build_worker_image: Visual Studio 2019
- job_name: Ubuntu
appveyor_build_worker_image: Ubuntu2004
- job_name: MacOS
appveyor_build_worker_image: macos-ventura
for:
-
matrix:
only:
- job_name: Windows 32
build_script:
- cmd: pipelines/WinAppveyorBuild.bat win32
-
matrix:
only:
- job_name: Windows 64
build_script:
- cmd: pipelines/WinAppveyorBuild.bat win64
-
matrix:
only:
- job_name: Win64 Qt
build_script:
- cmd: pipelines/WinAppveyorBuild.bat win64-QtSDL
-
matrix:
only:
- job_name: Ubuntu
build_script:
- sh: perl pipelines/build.pl linux
-
matrix:
only:
- job_name: MacOS
build_script:
- sh: perl pipelines/build.pl macOS
deploy:
- provider: GitHub
tag: interim-build
release: interim-build
description: 'Interim Builds - Latest auto builds off master branch - commit: $(APPVEYOR_REPO_COMMIT)\nDate: $(APPVEYOR_REPO_COMMIT_TIMESTAMP)'
auth_token:
secure: pYXqhuxNn7vivsJ6cnWCHlORrTtaWO7fyGOvGFUNKtM2apSY44gjbAhGIlD+OdtF
artifact: $(WIN32_ARTIFACT), $(WIN64_ARTIFACT), $(WIN64_QTSDL_ARTIFACT), $(MACOS_ARTIFACT), $(LINUX_ARTIFACT)
draft: false
prerelease: true
force_update: true
on:
branch: master # release from master branch only
APPVEYOR_REPO_TAG: false # never deploy on tag push
- provider: GitHub
description: 'Release Builds - commit: $(APPVEYOR_REPO_COMMIT)'
auth_token:
secure: pYXqhuxNn7vivsJ6cnWCHlORrTtaWO7fyGOvGFUNKtM2apSY44gjbAhGIlD+OdtF
artifact: $(WIN32_ARTIFACT), $(WIN64_ARTIFACT), $(WIN64_QTSDL_ARTIFACT), $(MACOS_ARTIFACT)
draft: false
prerelease: false
force_update: false
on:
APPVEYOR_REPO_TAG: true # deploy on tag push only

0
branches/fceux-2.2.2/attic/compile → attic/compile Executable file → Normal file
View File

0
branches/fceux-2.2.2/attic/config.guess → attic/config.guess vendored Executable file → Normal file
View File

0
branches/fceux-2.2.2/attic/config.sub → attic/config.sub vendored Executable file → Normal file
View File

0
branches/fceux-2.2.2/attic/depcomp → attic/depcomp Executable file → Normal file
View File

View File

0
branches/fceux-2.2.2/attic/missing → attic/missing Executable file → Normal file
View File

View File

View File

@ -1,72 +0,0 @@
#ifdef __cplusplus
extern "C" {
#endif
#include "../common/args.h"
#include "../common/config.h"
#include "input.h"
extern FCEUGI *CurGame;
extern CFGSTRUCT DriverConfig[];
extern ARGPSTRUCT DriverArgs[];
extern char *DriverUsage;
void DoDriverArgs(void);
uint8 *GetBaseDirectory(void);
int InitSound(FCEUGI *gi);
void WriteSound(int32 *Buffer, int Count);
int KillSound(void);
uint32 GetMaxSound(void);
uint32 GetWriteSound(void);
void SilenceSound(int s); /* DOS and SDL */
int InitMouse(void);
void KillMouse(void);
void GetMouseData(uint32 *MouseData);
int InitJoysticks(void);
int KillJoysticks(void);
uint32 *GetJSOr(void);
int InitKeyboard(void);
int UpdateKeyboard(void);
char *GetKeyboard(void);
void KillKeyboard(void);
int InitVideo(FCEUGI *gi);
int KillVideo(void);
void BlitScreen(uint8 *XBuf);
void LockConsole(void);
void UnlockConsole(void);
void ToggleFS(); /* SDL */
int LoadGame(const char *path);
int CloseGame(void);
int GUI_Init(int argc, char **argv, int (*dofunc)(void));
int GUI_Idle(void);
int GUI_Update(void);
void GUI_Hide(int);
void GUI_RequestExit(void);
int GUI_SetVideo(int fullscreen, int width, int height);
char *GUI_GetKeyboard(void);
void GUI_GetMouseState(uint32 *b, int *x, int *y);
void UpdatePhysicalInput(void);
int DTestButton(ButtConfig *bc);
int DWaitButton(const uint8 *text, ButtConfig *bc, int wb);
int ButtonConfigBegin(void);
void ButtonConfigEnd(void);
void Giggles(int);
void DoFun(void);
int FCEUD_NetworkConnect(void);
#ifdef __cplusplus
}
#endif

View File

@ -1,161 +0,0 @@
#ifdef SDL
#include <SDL.h>
#define SDLK_A SDLK_a
#define SDLK_B SDLK_b
#define SDLK_C SDLK_c
#define SDLK_D SDLK_d
#define SDLK_E SDLK_e
#define SDLK_F SDLK_f
#define SDLK_G SDLK_g
#define SDLK_H SDLK_h
#define SDLK_I SDLK_i
#define SDLK_J SDLK_j
#define SDLK_K SDLK_k
#define SDLK_L SDLK_l
#define SDLK_M SDLK_m
#define SDLK_N SDLK_n
#define SDLK_O SDLK_o
#define SDLK_P SDLK_p
#define SDLK_Q SDLK_q
#define SDLK_R SDLK_r
#define SDLK_S SDLK_s
#define SDLK_T SDLK_t
#define SDLK_U SDLK_u
#define SDLK_V SDLK_v
#define SDLK_W SDLK_w
#define SDLK_X SDLK_x
#define SDLK_Y SDLK_y
#define SDLK_Z SDLK_z
#define SDLK_LEFTCONTROL SDLK_LCTRL
#define SDLK_RIGHTCONTROL SDLK_RCTRL
#define SDLK_LEFTALT SDLK_LALT
#define SDLK_RIGHTALT SDLK_RALT
#define SDLK_LEFTSHIFT SDLK_LSHIFT
#define SDLK_RIGHTSHIFT SDLK_RSHIFT
#define SDLK_CURSORDOWN SDLK_DOWN
#define SDLK_CURSORUP SDLK_UP
#define SDLK_CURSORLEFT SDLK_LEFT
#define SDLK_CURSORRIGHT SDLK_RIGHT
#define SDLK_ENTER SDLK_RETURN
#define SDLK_EQUAL SDLK_EQUALS
#define SDLK_APOSTROPHE SDLK_QUOTE
#define SDLK_BRACKET_LEFT SDLK_LEFTBRACKET
#define SDLK_BRACKET_RIGHT SDLK_RIGHTBRACKET
#define SDLK_SCROLLLOCK SDLK_SCROLLOCK /* I guess the SDL people don't like lots of Ls... */
#define SDLK_GRAVE SDLK_BACKQUOTE
#define MKK(k) SDLK_##k
#define MKK_COUNT (SDLK_LAST+1)
#elif DOS
#define SCAN_GRAVE 0x29
#define SCAN_1 0x02
#define SCAN_2 0x03
#define SCAN_3 0x04
#define SCAN_4 0x05
#define SCAN_5 0x06
#define SCAN_6 0x07
#define SCAN_7 0x08
#define SCAN_8 0x09
#define SCAN_9 0x0A
#define SCAN_0 0x0B
#define SCAN_MINUS 0x0C
#define SCAN_EQUAL 0x0D
#define SCAN_BACKSLASH 0x2B
#define SCAN_BACKSPACE 0x0E
#define SCAN_TAB 0x0F
#define SCAN_Q 0x10
#define SCAN_W 0x11
#define SCAN_E 0x12
#define SCAN_R 0x13
#define SCAN_T 0x14
#define SCAN_Y 0x15
#define SCAN_U 0x16
#define SCAN_I 0x17
#define SCAN_O 0x18
#define SCAN_P 0x19
#define SCAN_BRACKET_LEFT 0x1A
#define SCAN_BRACKET_RIGHT 0x1B
#define SCAN_LOWBACKSLASH 0x2B
#define SCAN_CAPSLOCK 0x3A
#define SCAN_A 0x1E
#define SCAN_S 0x1F
#define SCAN_D 0x20
#define SCAN_F 0x21
#define SCAN_G 0x22
#define SCAN_H 0x23
#define SCAN_J 0x24
#define SCAN_K 0x25
#define SCAN_L 0x26
#define SCAN_SEMICOLON 0x27
#define SCAN_APOSTROPHE 0x28
#define SCAN_ENTER 0x1C
#define SCAN_LEFTSHIFT 0x2A
#define SCAN_Z 0x2C
#define SCAN_X 0x2D
#define SCAN_C 0x2E
#define SCAN_V 0x2F
#define SCAN_B 0x30
#define SCAN_N 0x31
#define SCAN_M 0x32
#define SCAN_COMMA 0x33
#define SCAN_PERIOD 0x34
#define SCAN_SLASH 0x35
#define SCAN_RIGHTSHIFT 0x36
#define SCAN_LEFTCONTROL 0x1D
#define SCAN_LEFTALT 0x38
#define SCAN_SPACE 0x39
/* Extended keys. */
#define SCAN_RIGHTALT (0x38|0x80)
#define SCAN_RIGHTCONTROL (0x1D|0x80)
#define SCAN_BL_INSERT (0x52|0x80)
#define SCAN_BL_DELETE (0x53|0x80)
#define SCAN_BL_CURSORLEFT (0x4B|0x80)
#define SCAN_BL_HOME (0x47|0x80)
#define SCAN_BL_END (0x4F|0x80)
#define SCAN_BL_CURSORUP (0x48|0x80)
#define SCAN_BL_CURSORDOWN (0x50|0x80)
#define SCAN_BL_PAGEUP (0x49|0x80)
#define SCAN_BL_PAGEDOWN (0x51|0x80)
#define SCAN_BL_CURSORRIGHT (0x4D|0x80)
#define SCAN_SCROLLLOCK 0x46
/* Keys often found in the key pad area. */
#define SCAN_NUMLOCK 0x45
#define SCAN_HOME 0x47
#define SCAN_CURSORLEFT 0x4B
#define SCAN_END 0x4F
#define SCAN_SLASH 0x35
#define SCAN_CURSORUP 0x48
#define SCAN_CENTER 0x4C
#define SCAN_CURSORDOWN 0x50
#define SCAN_INSERT 0x52
#define SCAN_PAUSE 0xC5
#define SCAN_ASTERISK 0x37
#define SCAN_PAGEUP 0x49
#define SCAN_CURSORRIGHT 0x4D
#define SCAN_PAGEDOWN 0x51
#define SCAN_DELETE 0x53
#define SCAN_KP_MINUS 0x4A
#define SCAN_KP_PLUS 0x4E
#define SCAN_KP_ENTER 0x1C
#define SCAN_ESCAPE 0x01
#define SCAN_F1 0x3B
#define SCAN_F2 0x3C
#define SCAN_F3 0x3D
#define SCAN_F4 0x3E
#define SCAN_F5 0x3F
#define SCAN_F6 0x40
#define SCAN_F7 0x41
#define SCAN_F8 0x42
#define SCAN_F9 0x43
#define SCAN_F10 0x44
#define SCAN_F11 0x57
#define SCAN_F12 0x58
#define MK_COUNT 256
#define MK(k) SCAN_##k
#endif

View File

@ -1,553 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <string.h>
#include <strings.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
#include "throttle.h"
#include "../common/cheat.h"
#include "input.h"
#include "dface.h"
extern int32 fps_scale;
int CloseGame(void);
static char *soundrecfn=0; /* File name of sound recording. */
static int ntsccol=0,ntschue=0,ntsctint=0;
int soundvol=100;
long soundq=0;
int _sound=1;
long soundrate=48000;
#ifdef WIN32
long soundbufsize=52;
#else
long soundbufsize=24;
#endif
#ifdef FRAMESKIP
static int frameskip=0;
#endif
static int inited=0;
static int isloaded=0; // Is game loaded?
int srendlinev[2]={8,0};
int erendlinev[2]={231,239};
static uint8 *DrBaseDirectory;
int eoptions=0;
static void DriverKill(void);
static int DriverInitialize(FCEUGI *gi);
int gametype;
FCEUGI *CurGame=NULL;
static void ParseGI(FCEUGI *gi)
{
ParseGIInput(gi);
gametype=gi->type;
}
#ifndef EXTGUI
void FCEUD_PrintError(char *s)
{
puts(s);
}
void FCEUD_Message(char *s)
{
fputs(s,stdout);
}
#endif
static char *cpalette=0;
static void LoadCPalette(void)
{
uint8 tmpp[192];
FILE *fp;
if(!(fp=FCEUD_UTF8fopen(cpalette,"rb")))
{
printf(" Error loading custom palette from file: %s\n",cpalette);
return;
}
fread(tmpp,1,192,fp);
FCEUI_SetPaletteArray(tmpp);
fclose(fp);
}
#ifdef EXTGUI
extern CFGSTRUCT GUIConfig;
#endif
static CFGSTRUCT fceuconfig[]={
AC(soundrate),
AC(soundq),
AC(_sound),
AC(soundvol),
AC(soundbufsize),
ACS(cpalette),
AC(ntsctint),
AC(ntschue),
AC(ntsccol),
AC(eoptions),
ACA(srendlinev),
ACA(erendlinev),
ADDCFGSTRUCT(InputConfig),
ADDCFGSTRUCT(DriverConfig),
#ifdef EXTGUI
ADDCFGSTRUCT(GUIConfig),
#endif
ENDCFGSTRUCT
};
static void SaveConfig(void)
{
char tdir[2048];
sprintf(tdir,"%s"PSS"fceu98.cfg",DrBaseDirectory);
FCEUI_GetNTSCTH(&ntsctint, &ntschue);
SaveFCEUConfig(tdir,fceuconfig);
}
static void LoadConfig(void)
{
char tdir[2048];
sprintf(tdir,"%s"PSS"fceu98.cfg",DrBaseDirectory);
FCEUI_GetNTSCTH(&ntsctint, &ntschue); /* Get default settings for if
no config file exists. */
LoadFCEUConfig(tdir,fceuconfig);
InputUserActiveFix();
}
static void CreateDirs(void)
{
char *subs[7]={"fcs","fcm","snaps","gameinfo","sav","cheats","movie"};
char tdir[2048];
int x;
#ifdef WIN32
mkdir(DrBaseDirectory);
for(x=0;x<6;x++)
{
sprintf(tdir,"%s"PSS"%s",DrBaseDirectory,subs[x]);
mkdir(tdir);
}
#else
mkdir(DrBaseDirectory,S_IRWXU);
for(x=0;x<6;x++)
{
sprintf(tdir,"%s"PSS"%s",DrBaseDirectory,subs[x]);
mkdir(tdir,S_IRWXU);
}
#endif
}
#ifndef WIN32
static void SetSignals(void (*t)(int))
{
int sigs[11]={SIGINT,SIGTERM,SIGHUP,SIGPIPE,SIGSEGV,SIGFPE,SIGKILL,SIGALRM,SIGABRT,SIGUSR1,SIGUSR2};
int x;
for(x=0;x<11;x++)
signal(sigs[x],t);
}
static void CloseStuff(int signum)
{
DriverKill();
printf("\nSignal %d has been caught and dealt with...\n",signum);
switch(signum)
{
case SIGINT:printf("How DARE you interrupt me!\n");break;
case SIGTERM:printf("MUST TERMINATE ALL HUMANS\n");break;
case SIGHUP:printf("Reach out and hang-up on someone.\n");break;
case SIGPIPE:printf("The pipe has broken! Better watch out for floods...\n");break;
case SIGSEGV:printf("Iyeeeeeeeee!!! A segmentation fault has occurred. Have a fluffy day.\n");break;
/* So much SIGBUS evil. */
#ifdef SIGBUS
#if(SIGBUS!=SIGSEGV)
case SIGBUS:printf("I told you to be nice to the driver.\n");break;
#endif
#endif
case SIGFPE:printf("Those darn floating points. Ne'er know when they'll bite!\n");break;
case SIGALRM:printf("Don't throw your clock at the meowing cats!\n");break;
case SIGABRT:printf("Abort, Retry, Ignore, Fail?\n");break;
case SIGUSR1:
case SIGUSR2:printf("Killing your processes is not nice.\n");break;
}
exit(1);
}
#endif
static void DoArgs(int argc, char *argv[])
{
int x;
static ARGPSTRUCT FCEUArgs[]={
{"-soundbufsize",0,&soundbufsize,0},
{"-soundrate",0,&soundrate,0},
{"-soundq",0,&soundq,0},
#ifdef FRAMESKIP
{"-frameskip",0,&frameskip,0},
#endif
{"-sound",0,&_sound,0},
{"-soundvol",0,&soundvol,0},
{"-cpalette",0,&cpalette,0x4001},
{"-soundrecord",0,&soundrecfn,0x4001},
{"-ntsccol",0,&ntsccol,0},
{"-pal",0,&eoptions,0x8000|EO_PAL},
{"-lowpass",0,&eoptions,0x8000|EO_LOWPASS},
{"-gg",0,&eoptions,0x8000|EO_GAMEGENIE},
{"-no8lim",0,&eoptions,0x8001},
{"-snapname",0,&eoptions,0x8000|EO_SNAPNAME},
{"-nofs",0,&eoptions,0x8000|EO_NOFOURSCORE},
{"-clipsides",0,&eoptions,0x8000|EO_CLIPSIDES},
{"-nothrottle",0,&eoptions,0x8000|EO_NOTHROTTLE},
{"-slstart",0,&srendlinev[0],0},{"-slend",0,&erendlinev[0],0},
{"-slstartp",0,&srendlinev[1],0},{"-slendp",0,&erendlinev[1],0},
{0,(int *)InputArgs,0,0},
{0,(int *)DriverArgs,0,0},
{0,0,0,0}
};
ParseArguments(argc, argv, FCEUArgs);
if(cpalette)
{
if(cpalette[0]=='0')
if(cpalette[1]==0)
{
free(cpalette);
cpalette=0;
}
}
FCEUI_SetVidSystem((eoptions&EO_PAL)?1:0);
FCEUI_SetGameGenie((eoptions&EO_GAMEGENIE)?1:0);
FCEUI_SetLowPass((eoptions&EO_LOWPASS)?1:0);
FCEUI_DisableSpriteLimitation(eoptions&1);
FCEUI_SetSnapName(eoptions&EO_SNAPNAME);
for(x=0;x<2;x++)
{
if(srendlinev[x]<0 || srendlinev[x]>239) srendlinev[x]=0;
if(erendlinev[x]<srendlinev[x] || erendlinev[x]>239) erendlinev[x]=239;
}
FCEUI_SetRenderedLines(srendlinev[0],erendlinev[0],srendlinev[1],erendlinev[1]);
DoDriverArgs();
}
#include "usage.h"
/* Loads a game, given a full path/filename. The driver code must be
initialized after the game is loaded, because the emulator code
provides data necessary for the driver code(number of scanlines to
render, what virtual input devices to use, etc.).
*/
int LoadGame(const char *path)
{
FCEUGI *tmp;
CloseGame();
if(!(tmp=FCEUI_LoadGame(path,1)))
return 0;
CurGame=tmp;
ParseGI(tmp);
RefreshThrottleFPS();
if(!DriverInitialize(tmp))
return(0);
if(soundrecfn)
{
if(!FCEUI_BeginWaveRecord(soundrecfn))
{
free(soundrecfn);
soundrecfn=0;
}
}
isloaded=1;
#ifdef EXTGUI
if(eoptions&EO_AUTOHIDE) GUI_Hide(1);
#endif
FCEUD_NetworkConnect();
return 1;
}
/* Closes a game. Frees memory, and deinitializes the drivers. */
int CloseGame(void)
{
if(!isloaded) return(0);
FCEUI_CloseGame();
DriverKill();
isloaded=0;
CurGame=0;
if(soundrecfn)
FCEUI_EndWaveRecord();
#ifdef EXTGUI
GUI_Hide(0);
#endif
InputUserActiveFix();
return(1);
}
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count);
void DoFun(void)
{
uint8 *gfx;
int32 *sound;
int32 ssize;
static int fskipc=0;
static int opause=0;
#ifdef FRAMESKIP
fskipc=(fskipc+1)%(frameskip+1);
#endif
if(NoWaiting) {gfx=0;}
FCEUI_Emulate(&gfx, &sound, &ssize, fskipc);
FCEUD_Update(gfx, sound, ssize);
if(opause!=FCEUI_EmulationPaused())
{
opause=FCEUI_EmulationPaused();
SilenceSound(opause);
}
}
int CLImain(int argc, char *argv[])
{
int ret;
if(!(ret=FCEUI_Initialize()))
return(0);
DrBaseDirectory=GetBaseDirectory();
FCEUI_SetBaseDirectory(DrBaseDirectory);
CreateDirs();
#ifdef EXTGUI
if(argc==2 && !strcmp(argv[1],"-help")) // I hope no one has a game named "-help" :b
#else
if(argc<=1)
#endif
{
ShowUsage(argv[0]);
return(0);
}
LoadConfig();
DoArgs(argc-2,&argv[1]);
FCEUI_SetNTSCTH(ntsccol, ntsctint, ntschue);
if(cpalette)
LoadCPalette();
/* All the config files and arguments are parsed now. */
#ifdef EXTGUI
return(1);
#else
if(!LoadGame(argv[argc-1]))
{
DriverKill();
return(0);
}
while(CurGame)
DoFun();
#if(0)
{
int x;
for(x=1;x<argc;x++)
{ LoadGame(argv[x]); while(CurGame) DoFun(); }
}
#endif
CloseGame();
SaveConfig();
FCEUI_Kill();
#endif
return(1);
}
static int DriverInitialize(FCEUGI *gi)
{
#ifndef WIN32
SetSignals(CloseStuff);
#endif
/* Initialize video before all else, due to some wacko dependencies
in the SexyAL code(DirectSound) that need to be fixed.
*/
if(!InitVideo(gi)) return 0;
inited|=4;
if(InitSound(gi))
inited|=1;
if(InitJoysticks())
inited|=2;
if(!InitKeyboard()) return 0;
inited|=8;
InitOtherInput();
return 1;
}
static void DriverKill(void)
{
SaveConfig();
#ifndef WIN32
SetSignals(SIG_IGN);
#endif
if(inited&2)
KillJoysticks();
if(inited&8)
KillKeyboard();
if(inited&4)
KillVideo();
if(inited&1)
KillSound();
if(inited&16)
KillMouse();
inited=0;
}
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count)
{
#ifdef NETWORK
extern int FCEUDnetplay;
#endif
int ocount = Count;
// apply frame scaling to Count
Count = (Count<<8)/fps_scale;
if(Count)
{
int32 can=GetWriteSound();
static int uflow=0;
int32 tmpcan;
// don't underflow when scaling fps
if(can >= GetMaxSound() && fps_scale<=256) uflow=1; /* Go into massive underflow mode. */
if(can > Count) can=Count;
else uflow=0;
WriteSound(Buffer,can);
//if(uflow) puts("Underflow");
tmpcan = GetWriteSound();
// don't underflow when scaling fps
if(fps_scale>256 || ((tmpcan < Count*0.90) && !uflow))
{
if(XBuf && (inited&4) && !(NoWaiting & 2))
BlitScreen(XBuf);
Buffer+=can;
Count-=can;
if(Count)
{
if(NoWaiting)
{
can=GetWriteSound();
if(Count>can) Count=can;
WriteSound(Buffer,Count);
}
else
{
while(Count>0)
{
WriteSound(Buffer,(Count<ocount) ? Count : ocount);
Count -= ocount;
}
}
}
} //else puts("Skipped");
#ifdef NETWORK
else if(!NoWaiting && FCEUDnetplay && (uflow || tmpcan >= (Count * 1.8)))
{
if(Count > tmpcan) Count=tmpcan;
while(tmpcan > 0)
{
// printf("Overwrite: %d\n", (Count <= tmpcan)?Count : tmpcan);
WriteSound(Buffer, (Count <= tmpcan)?Count : tmpcan);
tmpcan -= Count;
}
}
#endif
}
else
{
if(!NoWaiting && (!(eoptions&EO_NOTHROTTLE) || FCEUI_EmulationPaused()))
SpeedThrottle();
if(XBuf && (inited&4))
{
BlitScreen(XBuf);
}
}
FCEUD_UpdateInput();
//if(!Count && !NoWaiting && !(eoptions&EO_NOTHROTTLE))
// SpeedThrottle();
//if(XBuf && (inited&4))
//{
// BlitScreen(XBuf);
//}
//if(Count)
// WriteSound(Buffer,Count,NoWaiting);
//FCEUD_UpdateInput();
}
/* Maybe ifndef WXWINDOWS would be better? ^_^ */
#ifndef EXTGUI
FILE *FCEUD_UTF8fopen(const char *fn, const char *mode)
{
return(fopen(fn,mode));
}
#endif

View File

@ -1,432 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sdl.h"
#include "sdl-opengl.h"
#include "../common/vidblit.h"
#include "sdl-icon.h"
#include "dface.h"
SDL_Surface *screen;
SDL_Surface *BlitBuf; // Used as a buffer when using hardware-accelerated blits.
SDL_Surface *IconSurface=NULL;
static int curbpp;
static int srendline,erendline;
static int tlines;
static int inited=0;
#ifdef OPENGL
extern int sdlhaveogl;
static int usingogl;
static double exs,eys;
#else
static int exs,eys;
#endif
static int eefx;
#define NWIDTH (256-((eoptions&EO_CLIPSIDES)?16:0))
#define NOFFSET (eoptions&EO_CLIPSIDES?8:0)
static int paletterefresh;
/* Return 1 if video was killed, 0 otherwise(video wasn't initialized). */
int KillVideo(void)
{
if(IconSurface)
{
SDL_FreeSurface(IconSurface);
IconSurface=0;
}
if(inited&1)
{
#ifdef OPENGL
if(usingogl)
KillOpenGL();
else
#endif
if(curbpp>8)
KillBlitToHigh();
SDL_QuitSubSystem(SDL_INIT_VIDEO);
inited&=~1;
return(1);
}
inited=0;
return(0);
}
static int sponge;
int InitVideo(FCEUGI *gi)
{
const SDL_VideoInfo *vinf;
int flags=0;
FCEUI_printf("Initializing video...");
FCEUI_GetCurrentVidSystem(&srendline,&erendline);
if(_fullscreen) sponge=Settings.specialfs;
else sponge=Settings.special;
#ifdef OPENGL
usingogl=0;
if(_opengl && sdlhaveogl && !sponge)
{
flags=SDL_OPENGL;
usingogl=1;
}
#endif
#ifdef EXTGUI
GUI_SetVideo(_fullscreen, 0, 0);
#endif
if(!(SDL_WasInit(SDL_INIT_VIDEO)&SDL_INIT_VIDEO))
if(SDL_InitSubSystem(SDL_INIT_VIDEO)==-1)
{
FCEUD_PrintError(SDL_GetError());
return(0);
}
inited|=1;
SDL_ShowCursor(0);
tlines=erendline-srendline+1;
vinf=SDL_GetVideoInfo();
if(vinf->hw_available)
flags|=SDL_HWSURFACE;
if(_fullscreen)
flags|=SDL_FULLSCREEN;
flags|=SDL_HWPALETTE;
//flags|=SDL_DOUBLEBUF;
#ifdef OPENGL
if(usingogl)
{
FCEU_printf("\n Initializing with OpenGL(Use \"-opengl 0\" to disable).\n");
if(_doublebuf)
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
}
else
#endif
if(_doublebuf && (flags&SDL_HWSURFACE))
flags|=SDL_DOUBLEBUF;
if(_fullscreen)
{
int desbpp=_bpp;
exs=_xscalefs;
eys=_yscalefs;
eefx=_efxfs;
#ifdef OPENGL
if(!usingogl) {exs=(int)exs;eys=(int)eys;}
else desbpp=0;
if(sponge)
{
exs=eys=2;
if(sponge == 3 || sponge == 4) exs = eys = 3;
eefx=0;
if(sponge == 1 || sponge == 3) desbpp = 32;
}
if( (usingogl && !_stretchx) || !usingogl)
#endif
if(_xres<NWIDTH*exs || exs <= 0.01)
{
FCEUD_PrintError("xscale out of bounds.");
KillVideo();
return(0);
}
#ifdef OPENGL
if( (usingogl && !_stretchy) || !usingogl)
#endif
if(_yres<tlines*eys || eys <= 0.01)
{
FCEUD_PrintError("yscale out of bounds.");
KillVideo();
return(0);
}
#ifdef EXTGUI
GUI_SetVideo(_fullscreen, _xres, _yres);
#endif
#ifdef OPENGL
if(!(screen = SDL_SetVideoMode(_xres, _yres, desbpp, flags)))
#else
if(!(screen = SDL_SetVideoMode(_xres, _yres, desbpp, flags)))
#endif
{
FCEUD_PrintError(SDL_GetError());
return(0);
}
}
else
{
int desbpp=0;
exs=_xscale;
eys=_yscale;
eefx=_efx;
if(sponge)
{
exs=eys=2;
if(sponge >= 3) exs=eys=3;
eefx=0;
// SDL's 32bpp->16bpp code is slighty faster than mine, at least :/
if(sponge == 1 || sponge == 3) desbpp=32;
}
#ifdef OPENGL
if(!usingogl) {exs=(int)exs;eys=(int)eys;}
if(exs <= 0.01)
{
FCEUD_PrintError("xscale out of bounds.");
KillVideo();
return(0);
}
if(eys <= 0.01)
{
FCEUD_PrintError("yscale out of bounds.");
KillVideo();
return(0);
}
#endif
#ifdef EXTGUI
GUI_SetVideo(_fullscreen, (NWIDTH*exs), tlines*eys);
#endif
screen = SDL_SetVideoMode((NWIDTH*exs), tlines*eys, desbpp, flags);
}
curbpp=screen->format->BitsPerPixel;
if(!screen)
{
FCEUD_PrintError(SDL_GetError());
KillVideo();
return(0);
}
//BlitBuf=SDL_CreateRGBSurface(SDL_HWSURFACE,256,240,screen->format->BitsPerPixel,screen->format->Rmask,screen->format->Gmask,screen->format->Bmask,0);
inited=1;
FCEU_printf(" Video Mode: %d x %d x %d bpp %s\n",screen->w,screen->h,screen->format->BitsPerPixel,_fullscreen?"full screen":"");
if(curbpp!=16 && curbpp!=24 && curbpp!=8 && curbpp!=32)
{
FCEU_printf(" Sorry, %dbpp modes are not supported by FCE Ultra. Supported bit depths are 8bpp, 16bpp, and 32bpp.\n",curbpp);
KillVideo();
return(0);
}
if(gi->name)
SDL_WM_SetCaption(gi->name,gi->name);
else
SDL_WM_SetCaption("FCE Ultra","FCE Ultra");
#ifdef LSB_FIRST
IconSurface=SDL_CreateRGBSurfaceFrom((void *)fceu_playicon.pixel_data,32,32,24,32*3,0xFF,0xFF00,0xFF0000,0x00);
#else
IconSurface=SDL_CreateRGBSurfaceFrom((void *)fceu_playicon.pixel_data,32,32,24,32*3,0xFF0000,0xFF00,0xFF,0x00);
#endif
SDL_WM_SetIcon(IconSurface,0);
paletterefresh=1;
if(curbpp>8)
#ifdef OPENGL
if(!usingogl)
#endif
InitBlitToHigh(curbpp>>3,screen->format->Rmask,screen->format->Gmask,screen->format->Bmask,eefx,sponge);
#ifdef OPENGL
if(usingogl)
if(!InitOpenGL((eoptions&EO_CLIPSIDES)?8:0,256-((eoptions&EO_CLIPSIDES)?8:0),srendline,erendline+1,exs,eys,eefx,_openglip,_stretchx,_stretchy,screen))
{
FCEUD_PrintError("Error initializing OpenGL.");
KillVideo();
return(0);
}
#endif
return 1;
}
void ToggleFS(void)
{
extern FCEUGI *CurGame;
KillVideo();
_fullscreen=!_fullscreen;
if(!InitVideo(CurGame))
{
_fullscreen=!_fullscreen;
InitVideo(CurGame);
}
}
static SDL_Color psdl[256];
void FCEUD_SetPalette(uint8 index, uint8 r, uint8 g, uint8 b)
{
psdl[index].r=r;
psdl[index].g=g;
psdl[index].b=b;
paletterefresh=1;
}
void FCEUD_GetPalette(uint8 index, uint8 *r, uint8 *g, uint8 *b)
{
*r=psdl[index].r;
*g=psdl[index].g;
*b=psdl[index].b;
}
static void RedoPalette(void)
{
#ifdef OPENGL
if(usingogl)
SetOpenGLPalette((uint8*)psdl);
else
#endif
{
if(curbpp>8)
SetPaletteBlitToHigh((uint8*)psdl);
else
{
SDL_SetPalette(screen,SDL_PHYSPAL,psdl,0,256);
}
}
}
void LockConsole(){}
void UnlockConsole(){}
void BlitScreen(uint8 *XBuf)
{
SDL_Surface *TmpScreen;
uint8 *dest;
int xo=0,yo=0;
if(!screen) return;
if(paletterefresh)
{
RedoPalette();
paletterefresh=0;
}
#ifdef OPENGL
if(usingogl)
{
BlitOpenGL(XBuf);
return;
}
#endif
XBuf+=srendline*256;
if(BlitBuf) TmpScreen=BlitBuf;
else TmpScreen=screen;
if(SDL_MUSTLOCK(TmpScreen))
if(SDL_LockSurface(TmpScreen))
{
return;
}
dest=(uint8*)TmpScreen->pixels;
if(_fullscreen)
{
xo=(((TmpScreen->w-NWIDTH*exs))/2);
dest+=xo*(curbpp>>3);
if(TmpScreen->h>(tlines*eys))
{
yo=((TmpScreen->h-tlines*eys)/2);
dest+=yo*TmpScreen->pitch;
}
}
if(curbpp>8)
{
if(BlitBuf)
Blit8ToHigh(XBuf+NOFFSET,dest, NWIDTH, tlines, TmpScreen->pitch,1,1);
else
Blit8ToHigh(XBuf+NOFFSET,dest, NWIDTH, tlines, TmpScreen->pitch,exs,eys);
}
else
{
if(BlitBuf)
Blit8To8(XBuf+NOFFSET,dest, NWIDTH, tlines, TmpScreen->pitch,1,1,0,sponge);
else
Blit8To8(XBuf+NOFFSET,dest, NWIDTH, tlines, TmpScreen->pitch,exs,eys,eefx,sponge);
}
if(SDL_MUSTLOCK(TmpScreen))
SDL_UnlockSurface(TmpScreen);
if(BlitBuf)
{
SDL_Rect srect;
SDL_Rect drect;
srect.x=0;
srect.y=0;
srect.w=NWIDTH;
srect.h=tlines;
drect.x=0;
drect.y=0;
drect.w=exs*NWIDTH;
drect.h=eys*tlines;
SDL_BlitSurface(BlitBuf, &srect,screen,&drect);
}
SDL_UpdateRect(screen, xo, yo, NWIDTH*exs, tlines*eys);
if(screen->flags&SDL_DOUBLEBUF)
SDL_Flip(screen);
}
uint32 PtoV(uint16 x, uint16 y)
{
y=(double)y/eys;
x=(double)x/exs;
if(eoptions&EO_CLIPSIDES)
x+=8;
y+=srendline;
return(x|(y<<16));
}

16
azure-pipelines.yml Normal file
View File

@ -0,0 +1,16 @@
# C/C++ with GCC
# Build your C/C++ project with GCC using make.
# Add steps that publish test results, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/c-cpp/gcc
trigger:
- master
- development
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
./pipelines/linux_build.sh
displayName: 'make'

View File

@ -1,75 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 reg[4];
static SFORMAT StateRegs[]=
{
{reg, 4, "REGS"},
{0}
};
static void Sync(void)
{
setprg32(0x8000,(reg[2]>>2)&1);
setchr8(reg[2]&3);
}
static DECLFW(UNL22211WriteLo)
{
// FCEU_printf("bs %04x %02x\n",A,V);
reg[A&3]=V;
}
static DECLFW(UNL22211WriteHi)
{
// FCEU_printf("bs %04x %02x\n",A,V);
Sync();
}
static DECLFR(UNL22211ReadLo)
{
if(reg[3])
return reg[2];
else
return X.DB;
}
static void UNL22211Power(void)
{
Sync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetReadHandler(0x4100,0x4100,UNL22211ReadLo);
SetWriteHandler(0x4100,0x4103,UNL22211WriteLo);
SetWriteHandler(0x8000,0xFFFF,UNL22211WriteHi);
}
static void StateRestore(int version)
{
Sync();
}
void UNL22211_Init(CartInfo *info)
{
info->Power=UNL22211Power;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,92 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 reg[8];
static uint8 mirror, cmd;
static uint8 *WRAM=NULL;
static SFORMAT StateRegs[]=
{
{&cmd, 1, "CMD"},
{&mirror, 1, "MIRR"},
{reg, 8, "REGS"},
{0}
};
static void Sync(void)
{
setmirror(mirror^1);
setprg8(0x8000,reg[0]);
setprg8(0xA000,reg[1]);
setchr2(0x0000,reg[2]>>1);
setchr2(0x0800,reg[3]>>1);
setchr1(0x1000,reg[4]);
setchr1(0x1400,reg[5]);
setchr1(0x1800,reg[6]);
setchr1(0x1C00,reg[7]);
}
static DECLFW(M112Write)
{
// FCEU_printf("bs %04x %02x\n",A,V);
switch(A)
{
case 0xe000: mirror=V&1; Sync(); ;break;
case 0x8000: cmd=V&7; break;
case 0xa000: reg[cmd]=V; Sync(); break;
// default: FCEU_printf("bs %04x %02x\n",A,V);
}
}
static void M112Close(void)
{
if(WRAM)
FCEU_gfree(WRAM);
WRAM = NULL;
}
static void M112Power(void)
{
setprg16(0xC000,~0);
setprg8r(0x10,0x6000,0);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M112Write);
SetWriteHandler(0x4020,0x5FFF,M112Write);
SetReadHandler(0x6000,0x7FFF,CartBR);
SetWriteHandler(0x6000,0x7FFF,CartBW);
}
static void StateRestore(int version)
{
Sync();
}
void Mapper112_Init(CartInfo *info)
{
info->Power=M112Power;
info->Close=M112Close;
GameStateRestore=StateRestore;
WRAM=(uint8*)FCEU_gmalloc(8192);
SetupCartPRGMapping(0x10,WRAM,8192,1);
AddExState(WRAM, 8192, 0, "WRAM");
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,101 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 prgreg[4], chrreg[8];
static uint8 IRQa, IRQCount, IRQLatch;
static SFORMAT StateRegs[]=
{
{&IRQa, 1, "IRQA"},
{&IRQCount, 1, "IRQC"},
{&IRQLatch, 1, "IRQL"},
{prgreg, 4, "PREGS"},
{chrreg, 8, "CREGS"},
{0}
};
static void Sync(void)
{
int i;
setprg8(0x8000,prgreg[0]);
setprg8(0xa000,prgreg[1]);
setprg8(0xc000,prgreg[2]);
setprg8(0xe000,prgreg[3]);
for(i=0; i<8; i++)
setchr1(i<<10,chrreg[i]);
}
static DECLFW(M117Write)
{
if(A<0x8004)
{
prgreg[A&3]=V;
Sync();
}
else if((A>=0xA000)&&(A<=0xA007))
{
chrreg[A&7]=V;
Sync();
}
else switch(A)
{
case 0xc001: IRQLatch=V; break;
case 0xc003: IRQCount=IRQLatch; IRQa|=2; break;
case 0xe000: IRQa&=~1; IRQa|=V&1; X6502_IRQEnd(FCEU_IQEXT); break;
case 0xc002: X6502_IRQEnd(FCEU_IQEXT); break;
}
}
static void M117Power(void)
{
prgreg[0]=~3; prgreg[1]=~2; prgreg[2]=~1; prgreg[3]=~0;
Sync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M117Write);
}
static void M117IRQHook(void)
{
if(IRQa==3&&IRQCount)
{
IRQCount--;
if(!IRQCount)
{
IRQa&=1;
X6502_IRQBegin(FCEU_IQEXT);
}
}
}
static void StateRestore(int version)
{
Sync();
}
void Mapper117_Init(CartInfo *info)
{
info->Power=M117Power;
GameHBIRQHook=M117IRQHook;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,117 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 cmd;
static uint8 DRegs[8];
static SFORMAT StateRegs[]=
{
{&cmd, 1, "CMD"},
{DRegs, 8, "DREG"},
{0}
};
static void Sync(void)
{
setprg32(0x8000,(DRegs[0]<<4)|(DRegs[1]&0xF));
setchr8(0);
}
static void StateRestore(int version)
{
Sync();
}
static DECLFW(Write)
{
switch (A&0x7300)
{
case 0x5100: DRegs[0]=V; Sync(); break;
case 0x5000: DRegs[1]=V; Sync(); break;
}
}
static DECLFW(Write2)
{
// FCEU_printf("bs %04x %02x\n",A,V);
switch (A&0x7300)
{
case 0x5200: DRegs[0]=V; Sync(); break;
case 0x5000: DRegs[1]=V; Sync(); break;
}
}
static uint8 WRAM[8192];
static DECLFR(AWRAM)
{
return(WRAM[A-0x6000]);
}
static DECLFW(BWRAM)
{
WRAM[A-0x6000]=V;
}
static void Power(void)
{
memset(DRegs,0,8);
DRegs[1]=0xFF;
cmd=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x4020,0xFFFF,Write);
SetReadHandler(0x6000,0x7FFF,AWRAM);
SetWriteHandler(0x6000,0x7FFF,BWRAM);
Sync();
}
static void M163HB(void)
{
if(scanline==127&&DRegs[1]&0x80)
setchr4(0x0000,1);
}
static void Power2(void)
{
memset(DRegs,0,8);
DRegs[1]=0xFF;
cmd=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x4020,0xFFFF,Write2);
SetReadHandler(0x6000,0x7FFF,AWRAM);
SetWriteHandler(0x6000,0x7FFF,BWRAM);
Sync();
}
void Mapper164_Init(CartInfo *info)
{
info->Power=Power;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}
void Mapper163_Init(CartInfo *info)
{
info->Power=Power2;
GameHBIRQHook=M163HB;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,117 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Gimmick Bootleg
*/
#include "mapinc.h"
static uint8 prg[4];
static uint8 chr[8];
static uint8 IRQCount;
static uint8 IRQPre;
static uint8 IRQa;
static SFORMAT StateRegs[]=
{
{prg, 4, "PRG"},
{chr, 8, "CHR"},
{&IRQCount, 1, "IRQCOUNT"},
{&IRQPre, 1, "IRQPRE"},
{&IRQa, 1, "IRQA"},
{0}
};
static void SyncPrg(void)
{
setprg8(0x6000,0);
setprg8(0x8000,prg[0]);
setprg8(0xA000,prg[1]);
setprg8(0xC000,prg[2]);
setprg8(0xE000,~0);
}
static void SyncChr(void)
{
int i;
for(i=0; i<8; i++)
setchr1(i<<10,chr[i]);
}
static void StateRestore(int version)
{
SyncPrg();
SyncChr();
}
static DECLFW(M183Write)
{
if(((A&0xF80C)>=0xB000)&&((A&0xF80C)<=0xE00C))
{
uint8 index=(((A>>11)-6)|(A>>3))&7;
chr[index]=(chr[index]&(0xF0>>(A&4)))|((V&0x0F)<<(A&4));
SyncChr();
}
else switch (A&0xF80C)
{
case 0x8800: prg[0]=V; SyncPrg(); break;
case 0xA800: prg[1]=V; SyncPrg(); break;
case 0xA000: prg[2]=V; SyncPrg(); break;
case 0x9800: switch (V&3)
{
case 0: setmirror(MI_V); break;
case 1: setmirror(MI_H); break;
case 2: setmirror(MI_0); break;
case 3: setmirror(MI_1); break;
}
break;
case 0xF000: IRQCount=((IRQCount&0xF0)|(V&0xF)); break;
case 0xF004: IRQCount=((IRQCount&0x0F)|((V&0xF)<<4)); break;
case 0xF008: IRQa=V; if(!V)IRQPre=0; X6502_IRQEnd(FCEU_IQEXT); break;
case 0xF00C: IRQPre=16; break;
}
}
static void M183IRQCounter(void)
{
if(IRQa)
{
IRQCount++;
if((IRQCount-IRQPre)==238)
X6502_IRQBegin(FCEU_IQEXT);
}
}
static void M183Power(void)
{
IRQPre=IRQCount=IRQa=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M183Write);
SetReadHandler(0x6000,0x7FFF,CartBR);
SyncPrg();
SyncChr();
}
void Mapper183_Init(CartInfo *info)
{
info->Power=M183Power;
GameHBIRQHook=M183IRQCounter;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,115 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "mapinc.h"
static uint8 *DummyCHR=NULL;
static uint8 datareg;
static void(*Sync)(void);
static SFORMAT StateRegs[]=
{
{&datareg, 1, "DREG"},
{0}
};
// on off
//1 0x0F, 0xF0 - Bird Week
//2 0x33, 0x00 - B-Wings
//3 0x11, 0x00 - Mighty Bomb Jack
//4 0x22, 0x20 - Sansuu 1 Nen, Sansuu 2 Nen
//5 0xFF, 0x00 - Sansuu 3 Nen
//6 0x21, 0x13 - Spy vs Spy
//7 0x20, 0x21 - Seicross
static void Sync185(void)
{
// little dirty eh? ;_)
if((datareg&3)&&(datareg!=0x13)) // 1, 2, 3, 4, 5, 6
setchr8(0);
else
setchr8r(0x10,0);
}
static void Sync181(void)
{
if(!(datareg&1)) // 7
setchr8(0);
else
setchr8r(0x10,0);
}
static DECLFW(MWrite)
{
datareg=V;
Sync();
}
static void MPower(void)
{
datareg=0;
Sync();
setprg16(0x8000,0);
setprg16(0xC000,~0);
SetWriteHandler(0x8000,0xFFFF,MWrite);
SetReadHandler(0x8000,0xFFFF,CartBR);
}
static void MClose(void)
{
if(DummyCHR)
FCEU_gfree(DummyCHR);
DummyCHR=NULL;
}
static void MRestore(int version)
{
Sync();
}
void Mapper185_Init(CartInfo *info)
{
int x;
Sync=Sync185;
info->Power=MPower;
info->Close=MClose;
GameStateRestore=MRestore;
DummyCHR=(uint8*)FCEU_gmalloc(8192);
for(x=0;x<8192;x++)
DummyCHR[x]=0xff;
SetupCartCHRMapping(0x10,DummyCHR,8192,0);
AddExState(StateRegs, ~0, 0, 0);
}
void Mapper181_Init(CartInfo *info)
{
int x;
Sync=Sync181;
info->Power=MPower;
info->Close=MClose;
GameStateRestore=MRestore;
DummyCHR=(uint8*)FCEU_gmalloc(8192);
for(x=0;x<8192;x++)
DummyCHR[x]=0xff;
SetupCartCHRMapping(0x10,DummyCHR,8192,0);
AddExState(StateRegs, ~0, 0, 0);
}

View File

@ -1,104 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Family Study Box by Fukutake Shoten
*/
#include "mapinc.h"
static uint8 SWRAM[2816];
static uint8 *WRAM=NULL;
static uint8 regs[4];
static SFORMAT StateRegs[]=
{
{regs, 4, "DREG"},
{SWRAM, 2816, "SWRAM"},
{0}
};
static void Sync(void)
{
setprg8r(0x10,0x6000,regs[0]>>6);
setprg16(0x8000,regs[1]);
setprg16(0xc000,0);
}
static DECLFW(M186Write)
{
if(A&0x4203) regs[A&3]=V;
Sync();
}
static DECLFR(M186Read)
{
switch(A)
{
case 0x4200: return 0x00; break;
case 0x4201: return 0x00; break;
case 0x4202: return 0x40; break;
case 0x4203: return 0x00; break;
}
return 0xFF;
}
static DECLFR(ASWRAM)
{
return(SWRAM[A-0x4400]);
}
static DECLFW(BSWRAM)
{
SWRAM[A-0x4400]=V;
}
static void M186Power(void)
{
setchr8(0);
SetReadHandler(0x6000,0xFFFF,CartBR);
SetWriteHandler(0x6000,0xFFFF,CartBW);
SetReadHandler(0x4200,0x43FF,M186Read);
SetWriteHandler(0x4200,0x43FF,M186Write);
SetReadHandler(0x4400,0x4EFF,ASWRAM);
SetWriteHandler(0x4400,0x4EFF,BSWRAM);
regs[0]=regs[1]=regs[2]=regs[3];
Sync();
}
static void M186Close(void)
{
if(WRAM)
FCEU_gfree(WRAM);
WRAM=NULL;
}
static void M186Restore(int version)
{
Sync();
}
void Mapper186_Init(CartInfo *info)
{
info->Power=M186Power;
info->Close=M186Close;
GameStateRestore=M186Restore;
WRAM=(uint8*)FCEU_gmalloc(32768);
SetupCartPRGMapping(0x10,WRAM,32768,1);
AddExState(WRAM, 32768, 0, "WRAM");
AddExState(StateRegs, ~0, 0, 0);
}

View File

@ -1,105 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
#include "../sound.h"
static void M187CW(uint32 A, uint8 V)
{
if((A&0x1000)==((MMC3_cmd&0x80)<<5))
setchr1(A,V|0x100);
else
setchr1(A,V);
}
static void M187PW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x80)
{
uint8 bank=EXPREGS[0]&0x1F;
if(EXPREGS[0]&0x20)
setprg32(0x8000,bank>>2);
else
{
setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
setprg8(A,V&0x3F);
}
static DECLFW(M187Write8000)
{
EXPREGS[2]=1;
MMC3_CMDWrite(A,V);
}
static DECLFW(M187Write8001)
{
if(EXPREGS[2])
MMC3_CMDWrite(A,V);
}
static DECLFW(M187Write8003)
{
EXPREGS[2]=0;
if(V==0x28)setprg8(0xC000,0x17);
else if(V==0x2A)setprg8(0xA000,0x0F);
}
static DECLFW(M187WriteLo)
{
EXPREGS[1]=V;
if(A==0x5000)
{
EXPREGS[0]=V;
FixMMC3PRG(MMC3_cmd);
}
}
static uint8 prot_data[4] = { 0x83, 0x83, 0x42, 0x00 };
static DECLFR(M187Read)
{
return prot_data[EXPREGS[1]&3];
}
static void M187Power(void)
{
EXPREGS[0]=EXPREGS[1]=EXPREGS[2]=0;
GenMMC3Power();
Write_IRQFM(0x4017,0x40);
SetReadHandler(0x5000,0x5FFF,M187Read);
SetWriteHandler(0x5000,0x5FFF,M187WriteLo);
SetWriteHandler(0x8000,0x8000,M187Write8000);
SetWriteHandler(0x8001,0x8001,M187Write8001);
SetWriteHandler(0x8003,0x8003,M187Write8003);
}
void Mapper187_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
pwrap=M187PW;
cwrap=M187CW;
info->Power=M187Power;
AddExState(EXPREGS, 3, 0, "EXPR");
}

View File

@ -1,48 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static void M189PW(uint32 A, uint8 V)
{
setprg32(0x8000,EXPREGS[0]&3);
}
static DECLFW(M189Write)
{
EXPREGS[0]=V|(V>>4); //actually, there is a two versions of 189 mapper with hi or lo bits bankswitching.
FixMMC3PRG(MMC3_cmd);
}
static void M189Power(void)
{
EXPREGS[0]=EXPREGS[1]=0;
GenMMC3Power();
SetWriteHandler(0x4120,0x7FFF,M189Write);
}
void Mapper189_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
pwrap=M189PW;
info->Power=M189Power;
AddExState(EXPREGS, 2, 0, "EXPR");
}

View File

@ -1,95 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Dragon Ball Z 2 - Gekishin Freeza! (C)
* Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (C)
* San Guo Zhi 2 (C)
*
*/
#include "mapinc.h"
#include "mmc3.h"
static void M199PW(uint32 A, uint8 V)
{
setprg8(A,V);
setprg8(0xC000,EXPREGS[0]);
setprg8(0xE000,EXPREGS[1]);
}
static void M199CW(uint32 A, uint8 V)
{
setchr1r((V<8)?0x10:0x00,A,V);
setchr1r((DRegBuf[0]<8)?0x10:0x00,0x0000,DRegBuf[0]);
setchr1r((EXPREGS[2]<8)?0x10:0x00,0x0400,EXPREGS[2]);
setchr1r((DRegBuf[1]<8)?0x10:0x00,0x0800,DRegBuf[1]);
setchr1r((EXPREGS[3]<8)?0x10:0x00,0x0c00,EXPREGS[3]);
}
static void M199MW(uint8 V)
{
// FCEU_printf("%02x\n",V);
switch(V&3)
{
case 0: setmirror(MI_V); break;
case 1: setmirror(MI_H); break;
case 2: setmirror(MI_0); break;
case 3: setmirror(MI_1); break;
}
}
static DECLFW(M199Write)
{
if((A==0x8001)&&(MMC3_cmd&8))
{
// FCEU_printf("%02x=>%02x\n",MMC3_cmd,V);
EXPREGS[MMC3_cmd&3]=V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
else
if(A<0xC000)
MMC3_CMDWrite(A,V);
else
MMC3_IRQWrite(A,V);
}
static void M199Power(void)
{
EXPREGS[0]=~1;
EXPREGS[1]=~0;
EXPREGS[2]=1;
EXPREGS[3]=3;
GenMMC3Power();
SetWriteHandler(0x8000,0xFFFF,M199Write);
}
void Mapper199_Init(CartInfo *info)
{
int CHRRAMSize=1024*8;
GenMMC3_Init(info, 512, 256, 8, info->battery);
cwrap=M199CW;
pwrap=M199PW;
mwrap=M199MW;
info->Power=M199Power;
CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSize);
SetupCartCHRMapping(0x10, CHRRAM, CHRRAMSize, 1);
AddExState(CHRRAM, CHRRAMSize, 0, "CHRR");
AddExState(EXPREGS, 4, 0, "EXPR");
}

View File

@ -1,83 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 lut[256]={
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x59, 0x49, 0x19, 0x09, 0x59, 0x49, 0x19, 0x09,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x51, 0x41, 0x11, 0x01, 0x51, 0x41, 0x11, 0x01,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x59, 0x49, 0x19, 0x09, 0x59, 0x49, 0x19, 0x09,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x51, 0x41, 0x11, 0x01, 0x51, 0x41, 0x11, 0x01,
0x00, 0x10, 0x40, 0x50, 0x00, 0x10, 0x40, 0x50,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x18, 0x48, 0x58, 0x08, 0x18, 0x48, 0x58,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x40, 0x50, 0x00, 0x10, 0x40, 0x50,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x18, 0x48, 0x58, 0x08, 0x18, 0x48, 0x58,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x58, 0x48, 0x18, 0x08, 0x58, 0x48, 0x18, 0x08,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x50, 0x40, 0x10, 0x00, 0x50, 0x40, 0x10, 0x00,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x58, 0x48, 0x18, 0x08, 0x58, 0x48, 0x18, 0x08,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59,0x50, 0x40, 0x10, 0x00, 0x50, 0x40, 0x10, 0x00,
0x01, 0x11, 0x41, 0x51, 0x01, 0x11, 0x41, 0x51,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x09, 0x19, 0x49, 0x59, 0x09, 0x19, 0x49, 0x59,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x11, 0x41, 0x51, 0x01, 0x11, 0x41, 0x51,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x09, 0x19, 0x49, 0x59, 0x09, 0x19, 0x49, 0x59,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static void M208PW(uint32 A, uint8 V)
{
setprg32(0x8000,EXPREGS[5]);
}
static DECLFW(M208Write)
{
EXPREGS[5]=(V&0x1)|((V>>3)&0x2);
FixMMC3PRG(MMC3_cmd);
}
static DECLFW(M208ProtWrite)
{
if(A<=0x57FF)
EXPREGS[4]=V;
else
EXPREGS[(A&0x03)]=V^lut[EXPREGS[4]];
}
static DECLFR(M208ProtRead)
{
return(EXPREGS[(A&0x3)]);
}
static void M208Power(void)
{
EXPREGS[5]=3;
GenMMC3Power();
SetWriteHandler(0x4800,0x4FFF,M208Write);
SetWriteHandler(0x5000,0x5fff,M208ProtWrite);
SetReadHandler(0x5800,0x5FFF,M208ProtRead);
SetReadHandler(0x8000,0xffff,CartBR);
}
void Mapper208_Init(CartInfo *info)
{
GenMMC3_Init(info, 128, 256, 0, 0);
pwrap=M208PW;
info->Power=M208Power;
AddExState(EXPREGS, 6, 0, "EXPR");
}

View File

@ -1,103 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "mapinc.h"
static uint8 IRQCount, IRQPre;
static uint8 IRQa;
static uint8 prg_reg[2];
static uint8 chr_reg[8];
static SFORMAT StateRegs[]=
{
{&IRQCount, 1, "IRQC"},
{&IRQa, 1, "IRQA"},
{prg_reg, 2, "PRG"},
{chr_reg, 8, "CHR"},
{0}
};
static void M222IRQ(void)
{
if(IRQa)
{
IRQCount++;
if((IRQCount)>=240)
{
X6502_IRQBegin(FCEU_IQEXT);
IRQa=0;
}
}
}
static void Sync(void)
{
int i;
setprg8(0x8000,prg_reg[0]);
setprg8(0xA000,prg_reg[1]);
for(i=0; i<8; i++)
setchr1(i<<10,chr_reg[i]);
}
static DECLFW(M222Write)
{
switch(A&0xF003)
{
case 0x8000: prg_reg[0]=V; break;
case 0xA000: prg_reg[1]=V; break;
case 0xB000: chr_reg[0]=V; break;
case 0xB002: chr_reg[1]=V; break;
case 0xC000: chr_reg[2]=V; break;
case 0xC002: chr_reg[3]=V; break;
case 0xD000: chr_reg[4]=V; break;
case 0xD002: chr_reg[5]=V; break;
case 0xE000: chr_reg[6]=V; break;
case 0xE002: chr_reg[7]=V; break;
// case 0xF000: FCEU_printf("%04x:%02x %d\n",A,V,scanline); IRQa=V; if(!V)IRQPre=0; X6502_IRQEnd(FCEU_IQEXT); break;
// / case 0xF001: FCEU_printf("%04x:%02x %d\n",A,V,scanline); IRQCount=V; break;
// case 0xF002: FCEU_printf("%04x:%02x %d\n",A,V,scanline); break;
// case 0xD001: IRQa=V; X6502_IRQEnd(FCEU_IQEXT); FCEU_printf("%04x:%02x %d\n",A,V,scanline); break;
case 0xC001: IRQPre=0; FCEU_printf("%04x:%02x %d\n",A,V,scanline); break;
case 0xF000: IRQPre=8; IRQCount=V; IRQa=V; X6502_IRQEnd(FCEU_IQEXT); FCEU_printf("%04x:%02x %d\n",A,V,scanline); break;
default: FCEU_printf("%04x:%02x %d\n",A,V,scanline);
}
Sync();
}
static void M222Power(void)
{
setprg16(0xC000,~0);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M222Write);
}
static void StateRestore(int version)
{
Sync();
}
void Mapper222_Init(CartInfo *info)
{
info->Power=M222Power;
GameHBIRQHook=M222IRQ;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,70 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint16 cmdreg;
static SFORMAT StateRegs[]=
{
{&cmdreg, 2, "CMDREG"},
{0}
};
static void Sync(void)
{
if(cmdreg&0x400)
setmirror(MI_0);
else
setmirror(((cmdreg>>13)&1)^1);
if(cmdreg&0x800)
{
setprg16(0x8000,((cmdreg&0x300)>>3)|((cmdreg&0x1F)<<1)|((cmdreg>>12)&1));
setprg16(0xC000,((cmdreg&0x300)>>3)|((cmdreg&0x1F)<<1)|((cmdreg>>12)&1));
}
else
setprg32(0x8000,((cmdreg&0x300)>>4)|(cmdreg&0x1F));
}
static DECLFW(M235Write)
{
cmdreg=A;
Sync();
}
static void M235Power(void)
{
setchr8(0);
SetWriteHandler(0x8000,0xFFFF,M235Write);
SetReadHandler(0x8000,0xFFFF,CartBR);
cmdreg=0;
Sync();
}
static void M235Restore(int version)
{
Sync();
}
void Mapper235_Init(CartInfo *info)
{
info->Power=M235Power;
GameStateRestore=M235Restore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,91 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 reg;
static uint8 IRQCount, IRQa;
static SFORMAT StateRegs[]=
{
{&IRQCount, 1, "IRQC"},
{&IRQa, 1, "IRQA"},
{&reg, 1, "REG"},
{0}
};
static void Sync(void)
{
setprg4(0x5000,16);
setprg8(0x6000,2);
setprg8(0x8000,1);
setprg8(0xa000,0);
setprg8(0xc000,reg);
setprg8(0xe000,9);
setchr8(0);
}
static DECLFW(M43Write)
{
int transo[8]={4,3,4,4,4,7,5,6};
switch(A&0xf1ff)
{
case 0x4022: reg=transo[V&7]; Sync(); break;
case 0x8122: IRQa=V&1; IRQCount=0; break;
}
}
static void M43Power(void)
{
reg=0;
Sync();
// SetReadHandler(0x5000,0x5fff,CartBR);
SetReadHandler(0x5000,0xffff,CartBR);
SetWriteHandler(0x4020,0xffff,M43Write);
}
static void M43Reset(void)
{
}
static void FP_FASTAPASS(1) M43IRQHook(int a)
{
IRQCount+=a;
if(IRQa)
if(IRQCount>=4096)
{
IRQa=0;
X6502_IRQBegin(FCEU_IQEXT);
}
}
static void StateRestore(int version)
{
Sync();
}
void Mapper43_Init(CartInfo *info)
{
info->Reset=M43Reset;
info->Power=M43Power;
MapIRQHook=M43IRQHook;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,92 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "mapinc.h"
static uint8 prg_reg;
static uint8 chr_reg;
static uint8 hrd_flag;
static SFORMAT StateRegs[]=
{
{&hrd_flag, 1, "DIPSW"},
{&prg_reg, 1, "PRG"},
{&chr_reg, 1, "CHR"},
{0}
};
static void Sync(void)
{
if(prg_reg&0x80)
setprg32(0x8000,prg_reg>>6);
else
{
setprg16(0x8000,(prg_reg>>5)&3);
setprg16(0xC000,(prg_reg>>5)&3);
}
setmirror((prg_reg&8)>>3);
setchr8((chr_reg&3)|(prg_reg&7)|((prg_reg&0x10)>>1));
}
static DECLFR(M57Read)
{
return hrd_flag;
}
static DECLFW(M57Write)
{
if((A&0x8800)==0x8800)
prg_reg=V;
else
chr_reg=V;
Sync();
}
static void M57Power(void)
{
prg_reg=0;
chr_reg=0;
hrd_flag=0;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M57Write);
SetReadHandler(0x6000,0x6000,M57Read);
Sync();
}
static void M57Reset()
{
hrd_flag++;
hrd_flag&=3;
FCEU_printf("Select Register = %02x\n",hrd_flag);
}
static void StateRestore(int version)
{
Sync();
}
void Mapper57_Init(CartInfo *info)
{
info->Power=M57Power;
info->Reset=M57Reset;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,48 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 lut[4] = { 0x00, 0x02, 0x02, 0x03 };
static DECLFW(UNL6035052ProtWrite)
{
EXPREGS[0]=lut[V&3];
}
static DECLFR(UNL6035052ProtRead)
{
return EXPREGS[0];
}
static void UNL6035052Power(void)
{
GenMMC3Power();
SetWriteHandler(0x4020,0x7FFF,UNL6035052ProtWrite);
SetReadHandler(0x4020,0x7FFF,UNL6035052ProtRead);
}
void UNL6035052_Init(CartInfo *info)
{
GenMMC3_Init(info, 128, 256, 0, 0);
info->Power=UNL6035052Power;
AddExState(EXPREGS, 6, 0, "EXPR");
}

View File

@ -1,81 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint16 cmdreg;
static uint8 invalid_data;
static SFORMAT StateRegs[]=
{
{&invalid_data, 1, "INVD"},
{&cmdreg, 2, "CMDREG"},
{0}
};
static void Sync(void)
{
setprg16r((cmdreg&0x060)>>5,0x8000,(cmdreg&0x01C)>>2);
setprg16r((cmdreg&0x060)>>5,0xC000,(cmdreg&0x200)?(~0):0);
setmirror(((cmdreg&2)>>1)^1);
}
static DECLFR(UNL8157Read)
{
if(invalid_data&&cmdreg&0x100)
return 0xFF;
else
return CartBR(A);
}
static DECLFW(UNL8157Write)
{
cmdreg=A;
Sync();
}
static void UNL8157Power(void)
{
setchr8(0);
SetWriteHandler(0x8000,0xFFFF,UNL8157Write);
SetReadHandler(0x8000,0xFFFF,UNL8157Read);
cmdreg=0x200;
invalid_data=1;
Sync();
}
static void UNL8157Reset(void)
{
cmdreg=0;
invalid_data^=1;
Sync();
}
static void UNL8157Restore(int version)
{
Sync();
}
void UNL8157_Init(CartInfo *info)
{
info->Power=UNL8157Power;
info->Reset=UNL8157Reset;
GameStateRestore=UNL8157Restore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,93 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 cmdin;
static uint8 UNL8237_perm[8] = {0, 2, 6, 1, 7, 3, 4, 5};
static void UNL8237CW(uint32 A, uint8 V)
{
setchr1(A,((EXPREGS[1]&4)<<6)|V);
}
static void UNL8237PW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x80)
{
if(EXPREGS[0]&0x20)
setprg32(0x8000,(EXPREGS[0]&0xF)>>1);
else
{
setprg16(0x8000,(EXPREGS[0]&0x1F));
setprg16(0xC000,(EXPREGS[0]&0x1F));
}
}
else
setprg8(A,V&0x3F);
}
static DECLFW(UNL8237Write)
{
if((A&0xF000)==0xF000)
IRQCount=V;
else if((A&0xF000)==0xE000)
X6502_IRQEnd(FCEU_IQEXT);
else switch(A&0xE001)
{
case 0x8000: setmirror(((V|(V>>7))&1)^1); break;
case 0xA000: MMC3_CMDWrite(0x8000,(V&0xC0)|(UNL8237_perm[V&7])); cmdin=1; break;
case 0xC000: if(cmdin)
{
MMC3_CMDWrite(0x8001,V);
cmdin=0;
}
break;
}
}
static DECLFW(UNL8237ExWrite)
{
switch(A)
{
case 0x5000: EXPREGS[0]=V; FixMMC3PRG(MMC3_cmd); break;
case 0x5001: EXPREGS[1]=V; FixMMC3CHR(MMC3_cmd); break;
}
}
static void UNL8237Power(void)
{
IRQa=1;
EXPREGS[0]=EXPREGS[1]=0;
GenMMC3Power();
SetWriteHandler(0x8000,0xFFFF,UNL8237Write);
SetWriteHandler(0x5000,0x7FFF,UNL8237ExWrite);
}
void UNL8237_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
cwrap=UNL8237CW;
pwrap=UNL8237PW;
info->Power=UNL8237Power;
AddExState(EXPREGS, 3, 0, "EXPR");
AddExState(&cmdin, 1, 0, "CMDIN");
}

View File

@ -1,87 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 reg[8];
static uint8 mirror, cmd, is154;
static SFORMAT StateRegs[]=
{
{&cmd, 1, "CMD"},
{&mirror, 1, "MIRR"},
{reg, 8, "REGS"},
{0}
};
static void Sync(void)
{
setchr2(0x0000,reg[0]>>1);
setchr2(0x0800,reg[1]>>1);
setchr1(0x1000,reg[2]|0x40);
setchr1(0x1400,reg[3]|0x40);
setchr1(0x1800,reg[4]|0x40);
setchr1(0x1C00,reg[5]|0x40);
setprg8(0x8000,reg[6]);
setprg8(0xA000,reg[7]);
}
static void MSync(void)
{
if(is154)setmirror(MI_0+(mirror&1));
}
static DECLFW(M88Write)
{
switch(A&0x8001)
{
case 0x8000: cmd=V&7; mirror=V>>6; MSync(); break;
case 0x8001: reg[cmd]=V; Sync(); break;
}
}
static void M88Power(void)
{
setprg16(0xC000,~0);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M88Write);
}
static void StateRestore(int version)
{
Sync();
MSync();
}
void Mapper88_Init(CartInfo *info)
{
is154=0;
info->Power=M88Power;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}
void Mapper154_Init(CartInfo *info)
{
is154=1;
info->Power=M88Power;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,512 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#define DEBUG90
// Mapper 090 is simpliest mapper hardware and have not extended nametable control and latched chr banks in 4k mode
// Mapper 209 much compicated hardware with decribed above features disabled by default and switchable by command
// Mapper 211 the same mapper 209 but with forced nametable control
static int is209;
static int is211;
static uint8 IRQMode; // from $c001
static uint8 IRQPre; // from $c004
static uint8 IRQPreSize; // from $c007
static uint8 IRQCount; // from $c005
static uint8 IRQXOR; // Loaded from $C006
static uint8 IRQa; // $c002, $c003, and $c000
static uint8 mul[2];
static uint8 regie;
static uint8 regie2;
static uint8 tkcom[4];
static uint8 prgb[4];
static uint8 chrlow[8];
static uint8 chrhigh[8];
static uint8 chr[2];
static uint16 names[4];
static uint8 tekker;
static SFORMAT Tek_StateRegs[]={
{&IRQMode, 1, "IRQMODE"},
{&IRQPre, 1, "IRQPRE"},
{&IRQPreSize, 1, "IRQPRESIZE"},
{&IRQCount, 1, "IRQC"},
{&IRQXOR, 1, "IRQXOR"},
{&IRQa, 1, "IRQa"},
{mul, 2, "MUL"},
{&regie, 1, "REGI"},
{tkcom, 4, "TKCO"},
{prgb, 4, "PRGB"},
{chr, 2, "CHRLATCH"},
{chrlow, 4, "CHRL"},
{chrhigh, 8, "CHRH"},
{&names[0], 2|FCEUSTATE_RLSB, "NMS0"},
{&names[1], 2|FCEUSTATE_RLSB, "NMS1"},
{&names[2], 2|FCEUSTATE_RLSB, "NMS2"},
{&names[3], 2|FCEUSTATE_RLSB, "NMS3"},
{&tekker, 1, "TEKR"},
{0}
};
static void mira(void)
{
if((tkcom[0]&0x20&&is209)||is211)
{
int x;
if(tkcom[0]&0x40) // Name tables are ROM-only
{
for(x=0;x<4;x++)
setntamem(CHRptr[0]+(((names[x])&CHRmask1[0])<<10),0,x);
}
else // Name tables can be RAM or ROM.
{
for(x=0;x<4;x++)
{
if((tkcom[1]&0x80)==(names[x]&0x80)) // RAM selected.
setntamem(NTARAM+((names[x]&0x1)<<10),1,x);
else
setntamem(CHRptr[0]+(((names[x])&CHRmask1[0])<<10),0,x);
}
}
}
else
{
switch(tkcom[1]&3)
{
case 0: setmirror(MI_V); break;
case 1: setmirror(MI_H); break;
case 2: setmirror(MI_0); break;
case 3: setmirror(MI_1); break;
}
}
}
static void tekprom(void)
{
uint32 bankmode=((tkcom[3]&6)<<5);
switch(tkcom[0]&7)
{
case 00: if(tkcom[0]&0x80)
setprg8(0x6000,(((prgb[3]<<2)+3)&0x3F)|bankmode);
setprg32(0x8000,0x0F|((tkcom[3]&6)<<3));
break;
case 01: if(tkcom[0]&0x80)
setprg8(0x6000,(((prgb[3]<<1)+1)&0x3F)|bankmode);
setprg16(0x8000,(prgb[1]&0x1F)|((tkcom[3]&6)<<4));
setprg16(0xC000,0x1F|((tkcom[3]&6)<<4));
break;
case 03: // bit reversion
case 02: if(tkcom[0]&0x80)
setprg8(0x6000,(prgb[3]&0x3F)|bankmode);
setprg8(0x8000,(prgb[0]&0x3F)|bankmode);
setprg8(0xa000,(prgb[1]&0x3F)|bankmode);
setprg8(0xc000,(prgb[2]&0x3F)|bankmode);
setprg8(0xe000,0x3F|bankmode);
break;
case 04: if(tkcom[0]&0x80)
setprg8(0x6000,(((prgb[3]<<2)+3)&0x3F)|bankmode);
setprg32(0x8000,(prgb[3]&0x0F)|((tkcom[3]&6)<<3));
break;
case 05: if(tkcom[0]&0x80)
setprg8(0x6000,(((prgb[3]<<1)+1)&0x3F)|bankmode);
setprg16(0x8000,(prgb[1]&0x1F)|((tkcom[3]&6)<<4));
setprg16(0xC000,(prgb[3]&0x1F)|((tkcom[3]&6)<<4));
break;
case 07: // bit reversion
case 06: if(tkcom[0]&0x80)
setprg8(0x6000,(prgb[3]&0x3F)|bankmode);
setprg8(0x8000,(prgb[0]&0x3F)|bankmode);
setprg8(0xa000,(prgb[1]&0x3F)|bankmode);
setprg8(0xc000,(prgb[2]&0x3F)|bankmode);
setprg8(0xe000,(prgb[3]&0x3F)|bankmode);
break;
}
}
static void tekvrom(void)
{
int x, bank=0, mask=0xFFFF;
if(!(tkcom[3]&0x20))
{
bank=(tkcom[3]&1)|((tkcom[3]&0x18)>>2);
switch (tkcom[0]&0x18)
{
case 0x00: bank<<=5; mask=0x1F; break;
case 0x08: bank<<=6; mask=0x3F; break;
case 0x10: bank<<=7; mask=0x7F; break;
case 0x18: bank<<=8; mask=0xFF; break;
}
}
switch(tkcom[0]&0x18)
{
case 0x00: // 8KB
setchr8(((chrlow[0]|(chrhigh[0]<<8))&mask)|bank);
break;
case 0x08: // 4KB
// for(x=0;x<8;x+=4)
// setchr4(x<<10,((chrlow[x]|(chrhigh[x]<<8))&mask)|bank);
setchr4(0x0000,((chrlow[chr[0]]|(chrhigh[chr[0]]<<8))&mask)|bank);
setchr4(0x1000,((chrlow[chr[1]]|(chrhigh[chr[1]]<<8))&mask)|bank);
break;
case 0x10: // 2KB
for(x=0;x<8;x+=2)
setchr2(x<<10,((chrlow[x]|(chrhigh[x]<<8))&mask)|bank);
break;
case 0x18: // 1KB
for(x=0;x<8;x++)
setchr1(x<<10,((chrlow[x]|(chrhigh[x]<<8))&mask)|bank);
break;
}
}
static DECLFW(M90TekWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
switch(A&0x5805)
{
case 0x5800: mul[0]=V; break;
case 0x5801: mul[1]=V; break;
case 0x5803: regie=V; break;
// case 0x5803: regie2=V; break;
// default: regie=V; break;
}
}
static DECLFR(M90TekRead)
{
switch(A&0x5805)
{
case 0x5000: return tekker;
case 0x5800: return (mul[0]*mul[1]);
case 0x5801: return((mul[0]*mul[1])>>8);
case 0x5803: return (regie);
// case 0x5804: return (regie2);
}
return(0xff);
}
static DECLFW(M90PRGWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
prgb[A&3]=V;
tekprom();
}
static DECLFW(M90CHRlowWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
chrlow[A&7]=V;
tekvrom();
}
static DECLFW(M90CHRhiWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
chrhigh[A&7]=V;
tekvrom();
}
static DECLFW(M90NTWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
if(A&4)
{
names[A&3]&=0x00FF;
names[A&3]|=V<<8;
}
else
{
names[A&3]&=0xFF00;
names[A&3]|=V;
}
mira();
}
static DECLFW(M90IRQWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
switch(A&7)
{
case 00: //FCEU_printf("%s IRQ (C000)\n",V&1?"Enable":"Disable");
IRQa=V&1;if(!(V&1)) X6502_IRQEnd(FCEU_IQEXT);break;
case 02: //FCEU_printf("Disable IRQ (C002) scanline=%d\n", scanline);
IRQa=0;X6502_IRQEnd(FCEU_IQEXT);break;
case 03: //FCEU_printf("Enable IRQ (C003) scanline=%d\n", scanline);
IRQa=1;break;
case 01: IRQMode=V;
// FCEU_printf("IRQ Count method: ");
// switch (IRQMode&3)
// {
// case 00: FCEU_printf("M2 cycles\n");break;
// case 01: FCEU_printf("PPU A12 toggles\n");break;
// case 02: FCEU_printf("PPU reads\n");break;
// case 03: FCEU_printf("Writes to CPU space\n");break;
// }
// FCEU_printf("Counter prescaler size: %s\n",(IRQMode&4)?"3 bits":"8 bits");
// FCEU_printf("Counter prescaler size adjust: %s\n",(IRQMode&8)?"Used C007":"Normal Operation");
// if((IRQMode>>6)==2) FCEU_printf("Counter Down\n");
// else if((IRQMode>>6)==1) FCEU_printf("Counter Up\n");
// else FCEU_printf("Counter Stopped\n");
break;
case 04: //FCEU_printf("Pre Counter Loaded and Xored wiht C006: %d\n",V^IRQXOR);
IRQPre=V^IRQXOR;break;
case 05: //FCEU_printf("Main Counter Loaded and Xored wiht C006: %d\n",V^IRQXOR);
IRQCount=V^IRQXOR;break;
case 06: //FCEU_printf("Xor Value: %d\n",V);
IRQXOR=V;break;
case 07: //if(!(IRQMode&8)) FCEU_printf("C001 is clear, no effect applied\n");
// else if(V==0xFF) FCEU_printf("Prescaler is changed for 12bits\n");
// else FCEU_printf("Counter Stopped\n");
IRQPreSize=V;break;
}
}
static DECLFW(M90ModeWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
tkcom[A&3]=V;
tekprom();
tekvrom();
mira();
#ifdef DEBUG90
switch (A&3)
{
case 00: FCEU_printf("Main Control Register:\n");
FCEU_printf(" PGR Banking mode: %d\n",V&7);
FCEU_printf(" CHR Banking mode: %d\n",(V>>3)&3);
FCEU_printf(" 6000-7FFF addresses mapping: %s\n",(V&0x80)?"Yes":"No");
FCEU_printf(" Nametable control: %s\n",(V&0x20)?"Enabled":"Disabled");
if(V&0x20)
FCEU_printf(" Nametable can be: %s\n",(V&0x40)?"ROM Only":"RAM or ROM");
break;
case 01: FCEU_printf("Mirroring mode: ");
switch (V&3)
{
case 0: FCEU_printf("Vertical\n");break;
case 1: FCEU_printf("Horizontal\n");break;
case 2: FCEU_printf("Nametable 0 only\n");break;
case 3: FCEU_printf("Nametable 1 only\n");break;
}
FCEU_printf("Mirroring flag: %s\n",(V&0x80)?"On":"Off");
break;
case 02: if((((tkcom[0])>>5)&3)==1)
FCEU_printf("Nametable ROM/RAM select mode: %d\n",V>>7);
break;
case 03:
FCEU_printf("CHR Banking mode: %s\n",(V&0x20)?"Entire CHR ROM":"256Kb Switching mode");
if(!(V&0x20)) FCEU_printf("256K CHR bank number: %02x\n",(V&1)|((V&0x18)>>2));
FCEU_printf("512K PRG bank number: %d\n",(V&6)>>1);
FCEU_printf("CHR Bank mirroring: %s\n",(V&0x80)?"Swapped":"Normal operate");
}
#endif
}
static DECLFW(M90DummyWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
}
static void CCL(void)
{
if((IRQMode>>6) == 1) // Count Up
{
IRQCount++;
if((IRQCount == 0) && IRQa)
{
X6502_IRQBegin(FCEU_IQEXT);
}
}
else if((IRQMode>>6) == 2) // Count down
{
IRQCount--;
if((IRQCount == 0xFF) && IRQa)
{
X6502_IRQBegin(FCEU_IQEXT);
}
}
}
static void ClockCounter(void)
{
uint8 premask;
if(IRQMode & 0x4)
premask = 0x7;
else
premask = 0xFF;
if((IRQMode>>6) == 1) // Count up
{
IRQPre++;
if((IRQPre & premask) == 0) CCL();
}
else if((IRQMode>>6) == 2) // Count down
{
IRQPre--;
if((IRQPre & premask) == premask) CCL();
}
}
void FP_FASTAPASS(1) CPUWrap(int a)
{
int x;
if((IRQMode&3)==0) for(x=0;x<a;x++) ClockCounter();
}
static void SLWrap(void)
{
int x;
if((IRQMode&3)==1) for(x=0;x<8;x++) ClockCounter();
}
static uint32 lastread;
static void FP_FASTAPASS(1) M90PPU(uint32 A)
{
if((IRQMode&3)==2)
{
if(lastread!=A)
{
ClockCounter();
ClockCounter();
}
lastread=A;
}
if(is209)
{
uint8 l,h;
h=A>>8;
if(h<0x20&&((h&0x0F)==0xF))
{
l=A&0xF0;
if(l==0xD0)
{
chr[(h&0x10)>>4]=((h&0x10)>>2);
tekvrom();
}
else if(l==0xE0)
{
chr[(h&0x10)>>4]=((h&0x10)>>2)|2;
tekvrom();
}
}
}
else
{
chr[0]=0;
chr[1]=4;
}
}
static void togglie()
{
tekker+=0x40;
tekker&=0xC0;
FCEU_printf("tekker=%02x\n",tekker);
memset(tkcom,0x00,sizeof(tkcom));
memset(prgb,0xff,sizeof(prgb));
tekprom();
tekvrom();
}
static void M90Restore(int version)
{
tekprom();
tekvrom();
mira();
}
static void M90Power(void)
{
SetWriteHandler(0x5000,0x5fff,M90TekWrite);
SetWriteHandler(0x8000,0x8ff0,M90PRGWrite);
SetWriteHandler(0x9000,0x9fff,M90CHRlowWrite);
SetWriteHandler(0xA000,0xAfff,M90CHRhiWrite);
SetWriteHandler(0xB000,0xBfff,M90NTWrite);
SetWriteHandler(0xC000,0xCfff,M90IRQWrite);
SetWriteHandler(0xD000,0xD5ff,M90ModeWrite);
SetWriteHandler(0xE000,0xFfff,M90DummyWrite);
SetReadHandler(0x5000,0x5fff,M90TekRead);
SetReadHandler(0x6000,0xffff,CartBR);
mul[0]=mul[1]=regie=0xFF;
memset(tkcom,0x00,sizeof(tkcom));
memset(prgb,0xff,sizeof(prgb));
memset(chrlow,0xff,sizeof(chrlow));
memset(chrhigh,0xff,sizeof(chrhigh));
memset(names,0x00,sizeof(names));
if(is211)
tekker=0xC0;
else
tekker=0x00;
tekprom();
tekvrom();
}
void Mapper90_Init(CartInfo *info)
{
is211=0;
is209=0;
info->Reset=togglie;
info->Power=M90Power;
PPU_hook=M90PPU;
MapIRQHook=CPUWrap;
GameHBIRQHook2=SLWrap;
GameStateRestore=M90Restore;
AddExState(Tek_StateRegs, ~0, 0, 0);
}
void Mapper209_Init(CartInfo *info)
{
is211=0;
is209=1;
info->Reset=togglie;
info->Power=M90Power;
PPU_hook=M90PPU;
MapIRQHook=CPUWrap;
GameHBIRQHook2=SLWrap;
GameStateRestore=M90Restore;
AddExState(Tek_StateRegs, ~0, 0, 0);
}
void Mapper211_Init(CartInfo *info)
{
is211=1;
info->Reset=togglie;
info->Power=M90Power;
PPU_hook=M90PPU;
MapIRQHook=CPUWrap;
GameHBIRQHook2=SLWrap;
GameStateRestore=M90Restore;
AddExState(Tek_StateRegs, ~0, 0, 0);
}

View File

@ -1,125 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "../ines.h"
static uint8 lastA;
static uint8 DRegs[8];
static uint8 cmd;
static uint8 MirCache[8];
static SFORMAT DB_StateRegs[]={
{DRegs, 8, "DREG"},
{&cmd, 1, "CMD"},
{&lastA, 1, "LAST"},
{0}
};
static void toot(void)
{
int x;
MirCache[0]=MirCache[1]=(DRegs[0]>>4)&1;
MirCache[2]=MirCache[3]=(DRegs[1]>>4)&1;
for(x=0;x<4;x++)
MirCache[4+x]=(DRegs[2+x]>>5)&1;
onemir(MirCache[lastA]);
}
static void Sync()
{
setchr2(0x0000,DRegs[0]&0x1F);
setchr2(0x0800,DRegs[1]&0x1F);
setchr1(0x1000,DRegs[2]&0x1F);
setchr1(0x1400,DRegs[3]&0x1F);
setchr1(0x1800,DRegs[4]&0x1F);
setchr1(0x1C00,DRegs[5]&0x1F);
setprg8(0x8000,DRegs[6]&0x1F);
setprg8(0xa000,DRegs[7]&0x1F);
toot();
}
static DECLFW(Mapper95_write)
{
switch(A&0xF001)
{
case 0x8000: cmd = V; break;
case 0x8001:
switch(cmd&0x07)
{
case 0: DRegs[0]=(V&0x3F)>>1; break;
case 1: DRegs[1]=(V&0x3F)>>1; break;
case 2: DRegs[2]=V&0x3F; break;
case 3: DRegs[3]=V&0x3F; break;
case 4: DRegs[4]=V&0x3F; break;
case 5: DRegs[5]=V&0x3F; break;
case 6: DRegs[6]=V&0x3F; break;
case 7: DRegs[7]=V&0x3F; break;
}
Sync();
}
}
static void FP_FASTAPASS(1) dragonbust_ppu(uint32 A)
{
static int last=-1;
static uint8 z;
if(A>=0x2000) return;
A>>=10;
lastA=A;
z=MirCache[A];
if(z!=last)
{
onemir(z);
last=z;
}
}
static void DBPower(void)
{
memset(DRegs,0x3F,8);
DRegs[0]=DRegs[1]=0x1F;
Sync();
setprg8(0xc000,0x3E);
setprg8(0xe000,0x3F);
SetReadHandler(0x8000,0xffff,CartBR);
SetWriteHandler(0x8000,0xffff,Mapper95_write);
}
static void StateRestore(int version)
{
Sync();
}
void Mapper95_Init(CartInfo *info)
{
info->Power=DBPower;
AddExState(DB_StateRegs, ~0, 0, 0);
PPU_hook=dragonbust_ppu;
GameStateRestore=StateRestore;
}

View File

@ -1,55 +0,0 @@
fceu_SOURCES += boards/01-222.cpp
fceu_SOURCES += boards/112.cpp
fceu_SOURCES += boards/117.cpp
fceu_SOURCES += boards/164.cpp
fceu_SOURCES += boards/183.cpp
fceu_SOURCES += boards/185.cpp
fceu_SOURCES += boards/186.cpp
fceu_SOURCES += boards/187.cpp
fceu_SOURCES += boards/189.cpp
fceu_SOURCES += boards/199.cpp
fceu_SOURCES += boards/208.cpp
fceu_SOURCES += boards/222.cpp
fceu_SOURCES += boards/235.cpp
fceu_SOURCES += boards/43.cpp
fceu_SOURCES += boards/57.cpp
fceu_SOURCES += boards/603-5052.cpp
fceu_SOURCES += boards/8157.cpp
fceu_SOURCES += boards/8237.cpp
fceu_SOURCES += boards/88.cpp
fceu_SOURCES += boards/90.cpp
fceu_SOURCES += boards/95.cpp
fceu_SOURCES += boards/__dummy_mapper.cpp
fceu_SOURCES += boards/a9711.cpp
fceu_SOURCES += boards/addrlatch.cpp
fceu_SOURCES += boards/bmc13in1jy110.cpp
fceu_SOURCES += boards/bmc42in1r.cpp
fceu_SOURCES += boards/bmc64in1nr.cpp
fceu_SOURCES += boards/bmc70in1.cpp
fceu_SOURCES += boards/bonza.cpp
fceu_SOURCES += boards/datalatch.cpp
fceu_SOURCES += boards/deirom.cpp
fceu_SOURCES += boards/dream.cpp
fceu_SOURCES += boards/edu2000.cpp
fceu_SOURCES += boards/fk23c.cpp
fceu_SOURCES += boards/h2288.cpp
fceu_SOURCES += boards/karaoke.cpp
fceu_SOURCES += boards/kof97.cpp
fceu_SOURCES += boards/konami-qtai.cpp
fceu_SOURCES += boards/malee.cpp
fceu_SOURCES += boards/mapinc.h"
fceu_SOURCES += boards/mmc1.cpp
fceu_SOURCES += boards/mmc3.cpp
fceu_SOURCES += boards/mmc3.h"
fceu_SOURCES += boards/mmc5.cpp
fceu_SOURCES += boards/n-c22m.cpp
fceu_SOURCES += boards/n106.cpp
fceu_SOURCES += boards/novel.cpp
fceu_SOURCES += boards/sachen.cpp
fceu_SOURCES += boards/sheroes.cpp
fceu_SOURCES += boards/sl1632.cpp
fceu_SOURCES += boards/subor.cpp
fceu_SOURCES += boards/super24.cpp
fceu_SOURCES += boards/supervision.cpp
fceu_SOURCES += boards/t-262.cpp
fceu_SOURCES += boards/tengen.cpp

View File

@ -1,61 +0,0 @@
Import('file_list')
my_list = Split("""
01-222.cpp
112.cpp
117.cpp
164.cpp
183.cpp
185.cpp
186.cpp
187.cpp
189.cpp
199.cpp
208.cpp
222.cpp
235.cpp
43.cpp
57.cpp
603-5052.cpp
8157.cpp
8237.cpp
88.cpp
90.cpp
95.cpp
a9711.cpp
addrlatch.cpp
bmc13in1jy110.cpp
bmc42in1r.cpp
bmc64in1nr.cpp
bmc70in1.cpp
bonza.cpp
datalatch.cpp
deirom.cpp
dream.cpp
__dummy_mapper.cpp
edu2000.cpp
fk23c.cpp
h2288.cpp
karaoke.cpp
kof97.cpp
konami-qtai.cpp
malee.cpp
mmc1.cpp
mmc3.cpp
mmc5.cpp
n106.cpp
n-c22m.cpp
novel.cpp
sachen.cpp
sheroes.cpp
sl1632.cpp
subor.cpp
super24.cpp
supervision.cpp
t-262.cpp
tengen.cpp
""")
for x in range(len(my_list)):
my_list[x] = 'boards/' + my_list[x]
file_list = my_list + file_list
Export('file_list')

View File

@ -1,96 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 reg[8];
/*
static uint8 *WRAM=NULL;
static uint32 WRAMSIZE;
static uint8 *CHRRAM=NULL;
static uint32 CHRRAMSIZE;
*/
static SFORMAT StateRegs[]=
{
{reg, 8, "REGS"},
{0}
};
static void Sync(void)
{
}
static DECLFW(MNNNWrite)
{
}
static void MNNNPower(void)
{
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,MNNNWrite);
}
static void MNNNReset(void)
{
}
/*
static void MNNNClose(void)
{
if(WRAM)
FCEU_gfree(WRAM);
if(CHRRAM)
FCEU_gfree(CHRRAM);
WRAM=CHRRAM=NULL;
}
*/
static void MNNNIRQHook(void)
{
X6502_IRQBegin(FCEU_IQEXT);
}
static void StateRestore(int version)
{
Sync();
}
void MapperNNN_Init(CartInfo *info)
{
info->Reset=MNNNReset;
info->Power=MNNNPower;
// info->Close=MNNNClose;
GameHBIRQHook=MNNNIRQHook;
GameStateRestore=StateRestore;
/*
CHRRAMSIZE=8192;
CHRRAM=(uint8*)FCEU_gmalloc(CHRRAMSIZE);
SetupCartPRGMapping(0x10,CHRRAM,CHRRAMSIZE,1);
AddExState(CHRRAM, CHRRAMSIZE, 0, "WRAM");
*/
/*
WRAMSIZE=8192;
WRAM=(uint8*)FCEU_gmalloc(WRAMSIZE);
SetupCartPRGMapping(0x10,WRAM,WRAMSIZE,1);
AddExState(WRAM, WRAMSIZE, 0, "WRAM");
*/
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,74 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 m_perm[8] = {0, 1, 0, 3, 0, 5, 6, 7};
static void UNLA9711PW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x20)
{
uint8 bank=EXPREGS[0]&0x1F;
if(EXPREGS[0]&0x20)
setprg32(0x8000,bank>>2);
else
{
// setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
setprg8(A,V&0x3F);
}
static DECLFW(UNLA9711Write8000)
{
// FCEU_printf("bs %04x %02x\n",A,V);
// if(V&0x80)
// MMC3_CMDWrite(A,V);
// else
// MMC3_CMDWrite(A,m_perm[V&7]);
if(V!=0x86) MMC3_CMDWrite(A,V);
}
static DECLFW(UNLA9711WriteLo)
{
FCEU_printf("bs %04x %02x\n",A,V);
EXPREGS[0]=V;
FixMMC3PRG(MMC3_cmd);
}
static void UNLA9711Power(void)
{
EXPREGS[0]=EXPREGS[1]=EXPREGS[2]=0;
GenMMC3Power();
SetWriteHandler(0x5000,0x5FFF,UNLA9711WriteLo);
// SetWriteHandler(0x8000,0xbfff,UNLA9711Write8000);
}
void UNLA9711_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
pwrap=UNLA9711PW;
info->Power=UNLA9711Power;
AddExState(EXPREGS, 3, 0, "EXPR");
}

View File

@ -1,151 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint16 latche, latcheinit;
static uint16 addrreg0, addrreg1;
static void(*WSync)(void);
static readfunc defread;
static DECLFW(LatchWrite)
{
// FCEU_printf("%04x:%02x\n",A,V);
latche=A;
WSync();
}
static void LatchPower(void)
{
latche=latcheinit;
WSync();
SetReadHandler(0x8000,0xFFFF,defread);
SetWriteHandler(addrreg0,addrreg1,LatchWrite);
}
static void StateRestore(int version)
{
WSync();
}
static void Latch_Init(CartInfo *info, void (*proc)(void), readfunc func, uint16 init, uint16 adr0, uint16 adr1)
{
latcheinit=init;
addrreg0=adr0;
addrreg1=adr1;
WSync=proc;
if(func)
defread=func;
else
defread=CartBR;
info->Power=LatchPower;
GameStateRestore=StateRestore;
AddExState(&latche, 2, 0, "LATC");
}
//------------------ UNLCC21 ---------------------------
static void UNLCC21Sync(void)
{
setprg32(0x8000,0);
setchr8(latche&1);
setmirror(MI_0+((latche&2)>>1));
}
void UNLCC21_Init(CartInfo *info)
{
Latch_Init(info, UNLCC21Sync, 0, 0, 0x8000, 0xFFFF);
}
//------------------ BMCD1038 ---------------------------
static uint8 dipswitch;
static void BMCD1038Sync(void)
{
if(latche&0x80)
{
setprg16(0x8000,(latche&0x70)>>4);
setprg16(0xC000,(latche&0x70)>>4);
}
else
setprg32(0x8000,(latche&0x60)>>5);
setchr8(latche&7);
setmirror(((latche&8)>>3)^1);
}
static DECLFR(BMCD1038Read)
{
if(latche&0x100)
return dipswitch;
else
return CartBR(A);
}
static void BMCD1038Reset(void)
{
dipswitch++;
dipswitch&=3;
}
void BMCD1038_Init(CartInfo *info)
{
Latch_Init(info, BMCD1038Sync, BMCD1038Read, 0, 0x8000, 0xFFFF);
info->Reset=BMCD1038Reset;
AddExState(&dipswitch, 1, 0, "DIPSW");
}
//------------------ Map 058 ---------------------------
static void BMCGK192Sync(void)
{
if(latche&0x40)
{
setprg16(0x8000,latche&7);
setprg16(0xC000,latche&7);
}
else
setprg32(0x8000,(latche>>1)&3);
setchr8((latche>>3)&7);
setmirror(((latche&0x80)>>7)^1);
}
void BMCGK192_Init(CartInfo *info)
{
Latch_Init(info, BMCGK192Sync, 0, 0, 0x8000, 0xFFFF);
}
//------------------ Map 200 ---------------------------
static void M200Sync(void)
{
// FCEU_printf("A\n");
setprg16(0x8000,latche&7);
setprg16(0xC000,latche&7);
setchr8(latche&7);
setmirror((latche&8)>>3);
}
void Mapper200_Init(CartInfo *info)
{
Latch_Init(info, M200Sync, 0, 0xff, 0x8000, 0xFFFF);
}

View File

@ -1,103 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* BMC 42-in-1 reset switch
*/
#include "mapinc.h"
static uint8 bank_mode;
static uint8 bank_value;
static uint8 prgb[4];
static SFORMAT StateRegs[]=
{
{0}
};
static void Sync(void)
{
FCEU_printf("%02x: %02x %02x\n", bank_mode, bank_value, prgb[0]);
switch(bank_mode&7)
{
case 0:
setprg32(0x8000,bank_value&7); break;
case 1:
setprg16(0x8000,((8+(bank_value&7))>>1)+prgb[1]);
setprg16(0xC000,(bank_value&7)>>1);
case 4:
setprg32(0x8000,8+(bank_value&7)); break;
case 5:
setprg16(0x8000,((8+(bank_value&7))>>1)+prgb[1]);
setprg16(0xC000,((8+(bank_value&7))>>1)+prgb[3]);
case 2:
setprg8(0x8000,prgb[0]>>2);
setprg8(0xa000,prgb[1]);
setprg8(0xc000,prgb[2]);
setprg8(0xe000,~0);
break;
case 3:
setprg8(0x8000,prgb[0]);
setprg8(0xa000,prgb[1]);
setprg8(0xc000,prgb[2]);
setprg8(0xe000,prgb[3]);
break;
}
}
static DECLFW(BMC13in1JY110Write)
{
FCEU_printf("%04x:%04x\n",A,V);
switch(A)
{
case 0x8000:
case 0x8001:
case 0x8002:
case 0x8003: prgb[A&3]=V; break;
case 0xD000: bank_mode=V; break;
case 0xD001: setmirror(V&3);
case 0xD002: break;
case 0xD003: bank_value=V; break;
}
Sync();
}
static void BMC13in1JY110Power(void)
{
prgb[0]=prgb[1]=prgb[2]=prgb[3]=0;
bank_mode=0;
bank_value=0;
setprg32(0x8000,0);
setchr8(0);
SetWriteHandler(0x8000,0xFFFF,BMC13in1JY110Write);
SetReadHandler(0x8000,0xFFFF,CartBR);
}
static void StateRestore(int version)
{
Sync();
}
void BMC13in1JY110_Init(CartInfo *info)
{
info->Power=BMC13in1JY110Power;
AddExState(&StateRegs, ~0, 0, 0);
GameStateRestore=StateRestore;
}

View File

@ -1,110 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* BMC 42-in-1 reset switch
*/
#include "mapinc.h"
extern uint32 ROM_size;
static uint8 hrd_sw;
static uint8 latche;
static SFORMAT StateRegs[]=
{
{&hrd_sw, 1, "DIPSW"},
{&latche, 1, "LATCHE"},
{&hrd_sw, 1, "HRDSW"},
{0}
};
static void Sync(void)
{
/* if(!(latche&0x02))
setprg32r(0,0x8000,(latche&0x3F)>>1);
else
{
setprg16r(0,0x8000,latche&0x3f);
setprg16r(0,0xC000,latche&0x3f);
}
*/
if(!(latche&0x20))
setprg32r(hrd_sw,0x8000,(latche>>1)&0x0f);
else
{
setprg16r(hrd_sw,0x8000,latche&0x1f);
setprg16r(hrd_sw,0xC000,latche&0x1f);
}
setmirror((latche>>6)&1);
}
static DECLFW(BMC42in1rWrite)
{
latche=V;
Sync();
}
static void BMC42in1rReset(void)
{
hrd_sw^=1;
Sync();
}
static void BMC42in1rPower(void)
{
latche=0;
hrd_sw=0;
setchr8(0);
Sync();
SetWriteHandler(0x8000,0xFFFF,BMC42in1rWrite);
SetReadHandler(0x8000,0xFFFF,CartBR);
}
static void StateRestore(int version)
{
Sync();
}
void BMC42in1r_Init(CartInfo *info)
{
info->Power=BMC42in1rPower;
info->Reset=BMC42in1rReset;
AddExState(&StateRegs, ~0, 0, 0);
GameStateRestore=StateRestore;
}
static void M226Power(void)
{
if(ROM_size==64)
SetupCartPRGMapping(1,PRGptr[0]+512*1024,512,0);
latche=0;
hrd_sw=0;
setchr8(0);
Sync();
SetWriteHandler(0x8000,0xFFFF,BMC42in1rWrite);
SetReadHandler(0x8000,0xFFFF,CartBR);
}
void Mapper226_Init(CartInfo *info)
{
info->Power=M226Power;
info->Reset=BMC42in1rReset;
AddExState(&StateRegs, ~0, 0, 0);
GameStateRestore=StateRestore;
}

View File

@ -1,93 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* BMC 42-in-1 reset switch
*/
#include "mapinc.h"
static uint8 regs[4];
static SFORMAT StateRegs[]=
{
{regs, 4, "REGS"},
{0}
};
static void Sync(void)
{
if(regs[0]&0x80)
{
if(regs[1]&0x80)
setprg32(0x8000,regs[1]&0x1F);
else
{
int bank=((regs[1]&0x1f)<<1)|((regs[1]>>6)&1);
setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
{
int bank=((regs[1]&0x1f)<<1)|((regs[1]>>6)&1);
setprg16(0xC000,bank);
}
if(regs[0]&0x20)
setmirror(MI_H);
else
setmirror(MI_V);
setchr8((regs[2]<<2)|((regs[0]>>1)&3));
}
static DECLFW(BMC64in1nrWriteLo)
{
regs[A&3]=V;
Sync();
}
static DECLFW(BMC64in1nrWriteHi)
{
regs[3]=V;
Sync();
}
static void BMC64in1nrPower(void)
{
regs[0]=0x80;
regs[1]=0x43;
regs[2]=regs[3]=0;
Sync();
SetWriteHandler(0x5000,0x5003,BMC64in1nrWriteLo);
SetWriteHandler(0x8000,0xFFFF,BMC64in1nrWriteHi);
SetReadHandler(0x8000,0xFFFF,CartBR);
}
static void StateRestore(int version)
{
Sync();
}
void BMC64in1nr_Init(CartInfo *info)
{
info->Power=BMC64in1nrPower;
AddExState(&StateRegs, ~0, 0, 0);
GameStateRestore=StateRestore;
}

View File

@ -1,130 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 is_large_banks, hw_switch;
static uint8 large_bank;
static uint8 prg_bank;
static uint8 chr_bank;
static uint8 bank_mode;
static uint8 mirroring;
static SFORMAT StateRegs[]=
{
{&large_bank, 1, "LB"},
{&hw_switch, 1, "DIPSW"},
{&prg_bank, 1, "PRG"},
{&chr_bank, 1, "CHR"},
{&bank_mode, 1, "BM"},
{&mirroring, 1, "MIRR"},
{0}
};
static void Sync(void)
{
switch (bank_mode)
{
case 0x00:
case 0x10: setprg16(0x8000,large_bank|prg_bank);
setprg16(0xC000,large_bank|7);
break;
case 0x20: setprg32(0x8000,(large_bank|prg_bank)>>1);
break;
case 0x30: setprg16(0x8000,large_bank|prg_bank);
setprg16(0xC000,large_bank|prg_bank);
break;
}
setmirror(mirroring);
if(!is_large_banks)
setchr8(chr_bank);
}
static DECLFR(BMC70in1Read)
{
if(bank_mode==0x10)
// if(is_large_banks)
return CartBR((A&0xFFF0)|hw_switch);
// else
// return CartBR((A&0xFFF0)|hw_switch);
else
return CartBR(A);
}
static DECLFW(BMC70in1Write)
{
if(A&0x4000)
{
bank_mode=A&0x30;
prg_bank=A&7;
}
else
{
mirroring=((A&0x20)>>5)^1;
if(is_large_banks)
large_bank=(A&3)<<3;
else
chr_bank=A&7;
}
Sync();
}
static void BMC70in1Reset(void)
{
bank_mode=0;
large_bank=0;
Sync();
hw_switch++;
hw_switch&=0xf;
}
static void BMC70in1Power(void)
{
setchr8(0);
bank_mode=0;
large_bank=0;
Sync();
SetReadHandler(0x8000,0xFFFF,BMC70in1Read);
SetWriteHandler(0x8000,0xffff,BMC70in1Write);
}
static void StateRestore(int version)
{
Sync();
}
void BMC70in1_Init(CartInfo *info)
{
is_large_banks=0;
hw_switch=0xd;
info->Power=BMC70in1Power;
info->Reset=BMC70in1Reset;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}
void BMC70in1B_Init(CartInfo *info)
{
is_large_banks=1;
hw_switch=0x6;
info->Power=BMC70in1Power;
info->Reset=BMC70in1Reset;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,139 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 prg_reg;
static uint8 chr_reg;
static uint8 sim0reg, sim0bit, sim0byte, sim0parity, sim0bcnt;
static uint16 sim0data;
static uint8 sim0array[128] =
{
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xAA,
};
static SFORMAT StateRegs[]=
{
{&prg_reg, 1, "PREG"},
{&chr_reg, 1, "CREG"},
{0}
};
static void Sync(void)
{
setprg32(0x8000, prg_reg);
setchr8(chr_reg);
}
static void StateRestore(int version)
{
Sync();
}
static DECLFW(M216WriteHi)
{
// FCEU_printf("%04x:%04x\n",A,V);
prg_reg=A&1;
chr_reg=(A&0x0E)>>1;
Sync();
}
static DECLFW(M216Write5000)
{
// FCEU_printf("WRITE: %04x:%04x\n",A,V);
sim0reg=V;
if(!sim0reg)
{
sim0bit=sim0byte=sim0parity=0;
sim0data=sim0array[0];
sim0bcnt=0x80;
}
else if(sim0reg&0x20)
{
sim0bcnt=0x20;
}
}
static DECLFR(M216Read5000)
{
if(sim0reg&0x60)
{
sim0reg=(sim0reg^(sim0reg<<1))&0x40;
return sim0reg;
}
else
{
uint8 sim0out=0;
if(sim0bit<8)
{
// sim0data=((sim0array[sim0byte]<<(sim0bit))&0x80)>>1;
sim0out=(sim0data&1)<<6;
sim0data>>=1;
sim0bit++;
sim0parity+=sim0data;
}
else if(sim0bit==8)
{
sim0bit++;
sim0out=sim0parity&1;
}
else if(sim0bit==9)
{
if(sim0byte==sim0bcnt)
sim0out=0x60;
else
{
sim0bit=0;
sim0byte++;
sim0data=sim0array[sim0byte];
sim0out=0;
}
}
// FCEU_printf("READ: %04x (%04x-%02x,%04x)\n",A,X.PC,sim0out,sim0byte);
return sim0out;
}
}
static void Power(void)
{
prg_reg = 0;
chr_reg = 0;
Sync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M216WriteHi);
SetWriteHandler(0x5000,0x5000,M216Write5000);
SetReadHandler(0x5000,0x5000,M216Read5000);
}
void Mapper216_Init(CartInfo *info)
{
info->Power=Power;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,350 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 latche, latcheinit;
static uint16 addrreg0, addrreg1;
static void(*WSync)(void);
static DECLFW(LatchWrite)
{
// FCEU_printf("bs %04x %02x\n",A,V);
latche=V;
WSync();
}
static void LatchPower(void)
{
latche=latcheinit;
WSync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(addrreg0,addrreg1,LatchWrite);
}
static void StateRestore(int version)
{
WSync();
}
static void Latch_Init(CartInfo *info, void (*proc)(void), uint8 init, uint16 adr0, uint16 adr1)
{
latcheinit=init;
addrreg0=adr0;
addrreg1=adr1;
WSync=proc;
info->Power=LatchPower;
GameStateRestore=StateRestore;
AddExState(&latche, 1, 0, "LATC");
}
//------------------ CPROM ---------------------------
static void CPROMSync(void)
{
setchr4(0x0000,0);
setchr4(0x1000,latche&3);
setprg16(0x8000,0);
setprg16(0xC000,1);
}
void CPROM_Init(CartInfo *info)
{
Latch_Init(info, CPROMSync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 184 ---------------------------
static void M184Sync(void)
{
setchr4(0x0000,latche);
setchr4(0x1000,latche>>4);
setprg16(0x8000,0);
setprg16(0xC000,1);
}
void Mapper184_Init(CartInfo *info)
{
Latch_Init(info, M184Sync, 0, 0x6000, 0x7FFF);
}
//------------------ CNROM ---------------------------
static void CNROMSync(void)
{
setchr8(latche&3);
setprg16(0x8000,0);
setprg16(0xC000,1);
}
void CNROM_Init(CartInfo *info)
{
Latch_Init(info, CNROMSync, 0, 0x8000, 0xFFFF);
}
//------------------ ANROM ---------------------------
static void ANROMSync()
{
setprg32(0x8000,latche&0xf);
setmirror(MI_0+((latche>>4)&1));
setchr8(0);
}
void ANROM_Init(CartInfo *info)
{
Latch_Init(info, ANROMSync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 70 ---------------------------
static void M70Sync()
{
setprg16(0x8000,latche>>4);
setprg16(0xc000,~0);
setchr8(latche&0xf);
}
void Mapper70_Init(CartInfo *info)
{
Latch_Init(info, M70Sync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 152 ---------------------------
static void M152Sync()
{
setprg16(0x8000,(latche>>4)&7);
setprg16(0xc000,~0);
setchr8(latche&0xf);
setmirror(MI_0+((latche>>7)&1)); /* Saint Seiya...hmm. */
}
void Mapper152_Init(CartInfo *info)
{
Latch_Init(info, M152Sync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 78 ---------------------------
/* Should be two separate emulation functions for this "mapper". Sigh. URGE TO KILL RISING. */
static void M78Sync()
{
setprg16(0x8000,(latche&7));
setprg16(0xc000,~0);
setchr8(latche>>4);
setmirror(MI_0+((latche>>3)&1));
}
void Mapper78_Init(CartInfo *info)
{
Latch_Init(info, M78Sync, 0, 0x8000, 0xFFFF);
}
//------------------ MHROM ---------------------------
static void MHROMSync(void)
{
setprg32(0x8000,latche>>4);
setchr8(latche&0xf);
}
void MHROM_Init(CartInfo *info)
{
Latch_Init(info, MHROMSync, 0, 0x8000, 0xFFFF);
}
void Mapper140_Init(CartInfo *info)
{
Latch_Init(info, MHROMSync, 0, 0x6000, 0x7FFF);
}
void Mapper240_Init(CartInfo *info)
{
Latch_Init(info, MHROMSync, 0, 0x4020, 0x5FFF);
// need SRAM.
}
//------------------ Map 87 ---------------------------
static void M87Sync(void)
{
setprg16(0x8000,0);
setprg16(0xC000,1);
setchr8(latche>>1);
}
void Mapper87_Init(CartInfo *info)
{
Latch_Init(info, M87Sync, ~0, 0x6000, 0xFFFF);
}
//------------------ Map 11 ---------------------------
static void M11Sync(void)
{
setprg32(0x8000,latche&0xf);
setchr8(latche>>4);
}
void Mapper11_Init(CartInfo *info)
{
Latch_Init(info, M11Sync, 0, 0x8000, 0xFFFF);
}
void Mapper144_Init(CartInfo *info)
{
Latch_Init(info, M11Sync, 0, 0x8001, 0xFFFF);
}
//------------------ UNROM ---------------------------
static void UNROMSync(void)
{
setprg16(0x8000,latche);
setprg16(0xc000,~0);
setchr8(0);
}
void UNROM_Init(CartInfo *info)
{
Latch_Init(info, UNROMSync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 93 ---------------------------
static void SSUNROMSync(void)
{
setprg16(0x8000,latche>>4);
setprg16(0xc000,~0);
setchr8(0);
}
void SUNSOFT_UNROM_Init(CartInfo *info)
{
Latch_Init(info, SSUNROMSync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 94 ---------------------------
static void M94Sync(void)
{
setprg16(0x8000,latche>>2);
setprg16(0xc000,~0);
setchr8(0);
}
void Mapper94_Init(CartInfo *info)
{
Latch_Init(info, M94Sync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 180 ---------------------------
static void M180Sync(void)
{
setprg16(0x8000,0);
setprg16(0xc000,latche);
setchr8(0);
}
void Mapper180_Init(CartInfo *info)
{
Latch_Init(info, M180Sync, 0, 0x8000, 0xFFFF);
}
//------------------ Map 107 ---------------------------
static void M107Sync(void)
{
setprg32(0x8000,(latche>>1)&3);
setchr8(latche&7);
}
void Mapper107_Init(CartInfo *info)
{
Latch_Init(info, M107Sync, ~0, 0x8000, 0xFFFF);
}
//------------------ Map 113 ---------------------------
static void M113Sync(void)
{
setprg32(0x8000,(latche>>3)&7);
setchr8(((latche>>3)&8)|(latche&7));
// setmirror(latche>>7); // only for HES 6in1
}
void Mapper113_Init(CartInfo *info)
{
Latch_Init(info, M113Sync, 0, 0x4100, 0x7FFF);
}
//------------------ A65AS ---------------------------
// actually, there is two cart in one... First have extra mirroring
// mode (one screen) and 32K bankswitching, second one have only
// 16 bankswitching mode and normal mirroring... But there is no any
// correlations between modes and they can be used in one mapper code.
static void BMCA65ASSync(void)
{
if(latche&0x40)
setprg32(0x8000,(latche>>1)&0x0F);
else
{
setprg16(0x8000,((latche&0x30)>>1)|(latche&7));
setprg16(0xC000,((latche&0x30)>>1)|7);
}
setchr8(0);
if(latche&0x80)
setmirror(MI_0+(((latche>>5)&1)));
else
setmirror(((latche>>3)&1)^1);
}
void BMCA65AS_Init(CartInfo *info)
{
Latch_Init(info, BMCA65ASSync, 0, 0x8000, 0xFFFF);
}
//------------------ NROM ---------------------------
#ifdef DEBUG_MAPPER
static DECLFW(WriteHandler)
{
FCEU_printf("bs %04x %02x\n",A,V);
}
#endif
static void NROMPower(void)
{
setprg16(0x8000,0);
setprg16(0xC000,~0);
setchr8(0);
SetReadHandler(0x8000,0xFFFF,CartBR);
#ifdef DEBUG_MAPPER
SetWriteHandler(0x4020,0xFFFF,WriteHandler);
#endif
}
void NROM_Init(CartInfo *info)
{
info->Power=NROMPower;
}

View File

@ -1,82 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 cmd;
static uint8 DRegs[8];
static SFORMAT DEI_StateRegs[]=
{
{&cmd, 1, "CMD"},
{DRegs, 8, "DREG"},
{0}
};
static void Sync(void)
{
int x;
setchr2(0x0000,DRegs[0]);
setchr2(0x0800,DRegs[1]);
for(x=0;x<4;x++)
setchr1(0x1000+(x<<10),DRegs[2+x]);
setprg8(0x8000,DRegs[6]);
setprg8(0xa000,DRegs[7]);
}
static void StateRestore(int version)
{
Sync();
}
static DECLFW(DEIWrite)
{
switch(A&0x8001)
{
case 0x8000: cmd=V&0x07; break;
case 0x8001: if(cmd<=0x05)
V&=0x3F;
else
V&=0x0F;
if(cmd<=0x01) V>>=1;
DRegs[cmd&0x07]=V;
Sync();
break;
}
}
static void DEIPower(void)
{
setprg8(0xc000,0xE);
setprg8(0xe000,0xF);
cmd=0;
memset(DRegs,0,8);
Sync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,DEIWrite);
}
void DEIROM_Init(CartInfo *info)
{
info->Power=DEIPower;
GameStateRestore=StateRestore;
AddExState(&DEI_StateRegs, ~0, 0, 0);
}

View File

@ -1,56 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 latche;
static void Sync(void)
{
setprg16(0x8000,latche);
setprg16(0xC000,8);
}
static DECLFW(DREAMWrite)
{
latche=V&7;
Sync();
}
static void DREAMPower(void)
{
latche=0;
Sync();
setchr8(0);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x5020,0x5020,DREAMWrite);
}
static void Restore(int version)
{
Sync();
}
void DreamTech01_Init(CartInfo *info)
{
GameStateRestore=Restore;
info->Power=DREAMPower;
AddExState(&latche, 1, 0, "LATCH");
}

View File

@ -1,81 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "mapinc.h"
static uint8 *WRAM=NULL;
static uint8 reg;
static SFORMAT StateRegs[]=
{
{&reg, 1, "REG"},
{0}
};
static void Sync(void)
{
setchr8(0);
setprg8r(0x10,0x6000,(reg&0xC0)>>6);
setprg32(0x8000,reg&0x1F);
// setmirror(((reg&0x20)>>5));
}
static DECLFW(UNLEDU2000HiWrite)
{
// FCEU_printf("%04x:%02x\n",A,V);
reg=V;
Sync();
}
static void UNLEDU2000Power(void)
{
setmirror(MI_0);
SetReadHandler(0x6000,0xFFFF,CartBR);
SetWriteHandler(0x6000,0xFFFF,CartBW);
SetWriteHandler(0x8000,0xFFFF,UNLEDU2000HiWrite);
reg=0;
Sync();
}
static void UNLEDU2000Close(void)
{
if(WRAM)
FCEU_gfree(WRAM);
WRAM=NULL;
}
static void UNLEDU2000Restore(int version)
{
Sync();
}
void UNLEDU2000_Init(CartInfo *info)
{
info->Power=UNLEDU2000Power;
info->Close=UNLEDU2000Close;
GameStateRestore=UNLEDU2000Restore;
WRAM=(uint8*)FCEU_gmalloc(32768);
SetupCartPRGMapping(0x10,WRAM,32768,1);
info->SaveGame[0]=WRAM;
info->SaveGameLen[0]=32768;
AddExState(WRAM, 32768, 0, "WRAM");
AddExState(StateRegs, ~0, 0, 0);
}

View File

@ -1,127 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static uint8 unromchr;
static uint8 dipswitch;
static void BMCFK23CCW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x40)
setchr8(EXPREGS[2]|unromchr);
else
{
uint16 base=(EXPREGS[2]&0x7F)<<3;
setchr1(A,V|base);
if(EXPREGS[3]&2)
{
setchr1(0x0400,EXPREGS[6]|base);
setchr1(0x0C00,EXPREGS[7]|base);
}
}
}
static void BMCFK23CPW(uint32 A, uint8 V)
{
if(EXPREGS[0]&4)
setprg32(0x8000,EXPREGS[1]>>1);
else
{
if(EXPREGS[0]&2)
setprg8(A,(V&(0x3F>>(EXPREGS[0]&3)))|(EXPREGS[1]<<1));
else
setprg8(A,V);
if(EXPREGS[3]&2)
{
setprg8(0xC000,EXPREGS[4]);
setprg8(0xE000,EXPREGS[5]);
}
}
}
static DECLFW(BMCFK23CHiWrite)
{
if(EXPREGS[0]&0x40)
{
if(EXPREGS[0]&0x20)
unromchr=0;
else
{
unromchr=V&3;
FixMMC3CHR(MMC3_cmd);
}
}
else
{
if((A==0x8001)&&(EXPREGS[3]&2&&MMC3_cmd&8))
{
EXPREGS[4|(MMC3_cmd&3)]=V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
else
if(A<0xC000)
MMC3_CMDWrite(A,V);
else
MMC3_IRQWrite(A,V);
}
}
static DECLFW(BMCFK23CWrite)
{
if(A&(1<<(dipswitch+4)))
{
EXPREGS[A&3]=V;
FixMMC3PRG(MMC3_cmd);
FixMMC3CHR(MMC3_cmd);
}
}
static void BMCFK23CReset(void)
{
dipswitch++;
dipswitch&=3;
EXPREGS[0]=EXPREGS[1]=EXPREGS[2]=EXPREGS[3]=0;
EXPREGS[4]=EXPREGS[5]=EXPREGS[6]=EXPREGS[7]=0xFF;
MMC3RegReset();
}
static void BMCFK23CPower(void)
{
EXPREGS[0]=EXPREGS[1]=EXPREGS[2]=EXPREGS[3]=0;
EXPREGS[4]=EXPREGS[5]=EXPREGS[6]=EXPREGS[7]=0xFF;
GenMMC3Power();
SetWriteHandler(0x5001,0x5fff,BMCFK23CWrite);
SetWriteHandler(0x8000,0xFFFF,BMCFK23CHiWrite);
}
void BMCFK23C_Init(CartInfo *info)
{
GenMMC3_Init(info, 512, 256, 8, 0);
cwrap=BMCFK23CCW;
pwrap=BMCFK23CPW;
info->Power=BMCFK23CPower;
info->Reset=BMCFK23CReset;
AddExState(EXPREGS, 8, 0, "EXPR");
AddExState(&unromchr, 1, 0, "UNCHR");
AddExState(&dipswitch, 1, 0, "DIPSW");
}

View File

@ -1,89 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
extern uint8 m114_perm[8];
static void H2288PW(uint32 A, uint8 V)
{
if(EXPREGS[0]&0x40)
{
uint8 bank=(EXPREGS[0]&5)|((EXPREGS[0]&8)>>2)|((EXPREGS[0]&0x20)>>2);
if(EXPREGS[0]&2)
setprg32(0x8000,bank>>1);
else
{
setprg16(0x8000,bank);
setprg16(0xC000,bank);
}
}
else
setprg8(A,V&0x3F);
}
static DECLFW(H2288WriteHi)
{
switch (A&0x8001)
{
case 0x8000: MMC3_CMDWrite(0x8000,(V&0xC0)|(m114_perm[V&7])); break;
case 0x8001: MMC3_CMDWrite(0x8001,V); break;
}
}
static DECLFW(H2288WriteLo)
{
if(A&0x800)
{
if(A&1)
EXPREGS[1]=V;
else
EXPREGS[0]=V;
FixMMC3PRG(MMC3_cmd);
}
}
static DECLFR(H2288Read)
{
int bit;
bit=(A&1)^1;
bit&=((A>>8)&1);
bit^=1;
return((X.DB&0xFE)|bit);
}
static void H2288Power(void)
{
EXPREGS[0]=EXPREGS[1]=0;
GenMMC3Power();
SetReadHandler(0x5000,0x5FFF,H2288Read);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x5000,0x5FFF,H2288WriteLo);
SetWriteHandler(0x8000,0x8FFF,H2288WriteHi);
}
void UNLH2288_Init(CartInfo *info)
{
GenMMC3_Init(info, 256, 256, 0, 0);
pwrap=H2288PW;
info->Power=H2288Power;
AddExState(EXPREGS, 2, 0, "EXPR");
}

View File

@ -1,71 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
extern uint32 ROM_size;
static uint8 latche;
static void Sync(void)
{
if(latche)
{
if(latche&0x10)
setprg16(0x8000,(latche&7));
else
setprg16(0x8000,(latche&7)|8);
}
else
setprg16(0x8000,7+(ROM_size>>4));
}
static DECLFW(M188Write)
{
latche=V;
Sync();
}
static DECLFR(ExtDev)
{
return(3);
}
static void Power(void)
{
latche=0;
Sync();
setchr8(0);
setprg16(0xc000,0x7);
SetReadHandler(0x6000,0x7FFF,ExtDev);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M188Write);
}
static void StateRestore(int version)
{
Sync();
}
void Mapper188_Init(CartInfo *info)
{
info->Power=Power;
GameStateRestore=StateRestore;
AddExState(&latche, 1, 0, "LATCH");
}

View File

@ -1,50 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
#include "mmc3.h"
static DECLFW(UNLKOF97CMDWrite)
{
V=(V&0xD8)|((V&0x20)>>4)|((V&4)<<3)|((V&2)>>1)|((V&1)<<2); //76143502
if(A==0x9000) A=0x8001;
MMC3_CMDWrite(A,V);
}
static DECLFW(UNLKOF97IRQWrite)
{
V=(V&0xD8)|((V&0x20)>>4)|((V&4)<<3)|((V&2)>>1)|((V&1)<<2);
if(A==0xD000) A=0xC001;
else if(A==0xF000) A=0xE001;
MMC3_IRQWrite(A,V);
}
static void UNLKOF97Power(void)
{
GenMMC3Power();
SetWriteHandler(0x8000,0xA000,UNLKOF97CMDWrite);
SetWriteHandler(0xC000,0xF000,UNLKOF97IRQWrite);
}
void UNLKOF97_Init(CartInfo *info)
{
GenMMC3_Init(info, 128, 256, 0, 0);
info->Power=UNLKOF97Power;
}

View File

@ -1,128 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2005 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* CAI Shogakko no Sansu
*/
#include "mapinc.h"
static uint8 *CHRRAM=NULL;
static uint8 SWRAM[4096];
static uint8 regs[16];
static uint8 WRAM[4096];
static SFORMAT StateRegs[]=
{
{&regs, 16, "REGS"},
{WRAM, 4096, "WRAM"},
{0}
};
static void Sync(void)
{
if(regs[5]&0x40)
{
setchr4r(0,0x1000,regs[5]&0x3F);
}
else
{
setchr4r(0x10,0x0000,regs[5]);
setchr4r(0x10,0x1000,regs[5]^1);
}
setprg8r((regs[2]>>6)&1,0x8000,(regs[2]&0x3F));
setprg8r((regs[3]>>6)&1,0xA000,(regs[3]&0x3F));
setprg8r((regs[4]>>6)&1,0xC000,(regs[4]&0x3F));
setprg8r(1,0xE000,~0);
setmirror((regs[0xA]&3));
}
static DECLFW(M190Write)
{
// FCEU_printf("write %04x:%04x %d, %d\n",A,V,scanline,timestamp);
regs[(A&0x0F00)>>8]=V;
Sync();
}
static DECLFR(M190Read)
{
// FCEU_printf("read %04x:%04x %d, %d\n",A,regs[(A&0x0F00)>>8],scanline,timestamp);
return regs[(A&0x0F00)>>8];
}
static DECLFR(AWRAM)
{
return(WRAM[A-0x7000]);
}
static DECLFW(BWRAM)
{
WRAM[A-0x7000]=V;
}
static DECLFR(ASWRAM)
{
return(SWRAM[A-0x6000]);
}
static DECLFW(BSWRAM)
{
SWRAM[A-0x6000]=V;
}
static void M190Power(void)
{
setvram8(CHRRAM);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,M190Write);
// SetReadHandler(0xDA00,0xDA00,M190Read);
// SetReadHandler(0xDB00,0xDB00,M190Read);
SetReadHandler(0xDC00,0xDC00,M190Read);
SetReadHandler(0xDD00,0xDD00,M190Read);
SetReadHandler(0x7000,0x7FFF,AWRAM);
SetWriteHandler(0x7000,0x7FFF,BWRAM);
SetReadHandler(0x6000,0x6FFF,ASWRAM);
SetWriteHandler(0x6000,0x6FFF,BSWRAM);
Sync();
}
static void M190Close(void)
{
if(CHRRAM)
FCEU_gfree(CHRRAM);
CHRRAM=NULL;
}
static void StateRestore(int version)
{
Sync();
}
void Mapper190_Init(CartInfo *info)
{
info->Power=M190Power;
info->Close=M190Close;
if(info->battery)
{
info->SaveGame[0]=SWRAM;
info->SaveGameLen[0]=4096;
}
GameStateRestore=StateRestore;
CHRRAM=(uint8*)FCEU_gmalloc(8192);
SetupCartCHRMapping(0x10,CHRRAM,8192,1);
AddExState(CHRRAM, 8192, 0, "CHRRAM");
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,41 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint8 WRAM[2048];
static void MALEEPower(void)
{
setprg2r(0x10,0x7000,0);
SetReadHandler(0x8000,0xFFFF,CartBR);
SetReadHandler(0x6000,0x67FF,CartBR);
SetReadHandler(0x7000,0x77FF,CartBR);
setprg2r(1,0x6000,0);
setprg32(0x8000,0);
setchr8(0);
}
void MALEE_Init(CartInfo *info)
{
info->Power=MALEEPower;
SetupCartPRGMapping(0x10, WRAM, 2048, 1);
AddExState(WRAM, 2048, 0,"RAM");
}

View File

@ -1,11 +0,0 @@
#include "../types.h"
#include "../x6502.h"
#include "../fceu.h"
#include "../ppu.h"
#include "../memory.h"
#include "../sound.h"
#include "../state.h"
#include "../cart.h"
#include "../cheat.h"
#include "../unif.h"
#include <string.h>

View File

@ -1,423 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 1998 BERO
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static void GenMMC1Power(void);
static void GenMMC1Init(CartInfo *info, int prg, int chr, int wram, int battery);
static uint8 DRegs[4];
static uint8 Buffer,BufferShift;
static int mmc1opts;
static void (*MMC1CHRHook4)(uint32 A, uint8 V);
static void (*MMC1PRGHook16)(uint32 A, uint8 V);
static uint8 *WRAM=NULL;
static uint8 *CHRRAM=NULL;
static int is155;
static DECLFW(MBWRAM)
{
if(!(DRegs[3]&0x10)||is155)
Page[A>>11][A]=V; // WRAM is enabled.
}
static DECLFR(MAWRAM)
{
if((DRegs[3]&0x10)&&!is155)
return X.DB; // WRAM is disabled
return(Page[A>>11][A]);
}
static void MMC1CHR(void)
{
if(mmc1opts&4)
{
if(DRegs[0]&0x10)
setprg8r(0x10,0x6000,(DRegs[1]>>4)&1);
else
setprg8r(0x10,0x6000,(DRegs[1]>>3)&1);
}
if(MMC1CHRHook4)
{
if(DRegs[0]&0x10)
{
MMC1CHRHook4(0x0000,DRegs[1]);
MMC1CHRHook4(0x1000,DRegs[2]);
}
else
{
MMC1CHRHook4(0x0000,(DRegs[1]&0xFE));
MMC1CHRHook4(0x1000,DRegs[1]|1);
}
}
else
{
if(DRegs[0]&0x10)
{
setchr4(0x0000,DRegs[1]);
setchr4(0x1000,DRegs[2]);
}
else
setchr8(DRegs[1]>>1);
}
}
static void MMC1PRG(void)
{
uint8 offs=DRegs[1]&0x10;
if(MMC1PRGHook16)
{
switch(DRegs[0]&0xC)
{
case 0xC: MMC1PRGHook16(0x8000,(DRegs[3]+offs));
MMC1PRGHook16(0xC000,0xF+offs);
break;
case 0x8: MMC1PRGHook16(0xC000,(DRegs[3]+offs));
MMC1PRGHook16(0x8000,offs);
break;
case 0x0:
case 0x4:
MMC1PRGHook16(0x8000,((DRegs[3]&~1)+offs));
MMC1PRGHook16(0xc000,((DRegs[3]&~1)+offs+1));
break;
}
}
else switch(DRegs[0]&0xC)
{
case 0xC: setprg16(0x8000,(DRegs[3]+offs));
setprg16(0xC000,0xF+offs);
break;
case 0x8: setprg16(0xC000,(DRegs[3]+offs));
setprg16(0x8000,offs);
break;
case 0x0:
case 0x4:
setprg16(0x8000,((DRegs[3]&~1)+offs));
setprg16(0xc000,((DRegs[3]&~1)+offs+1));
break;
}
}
static void MMC1MIRROR(void)
{
switch(DRegs[0]&3)
{
case 2: setmirror(MI_V); break;
case 3: setmirror(MI_H); break;
case 0: setmirror(MI_0); break;
case 1: setmirror(MI_1); break;
}
}
static uint64 lreset;
static DECLFW(MMC1_write)
{
int n=(A>>13)-4;
//FCEU_DispMessage("%016x",timestampbase+timestamp);
//printf("$%04x:$%02x, $%04x\n",A,V,X.PC);
//DumpMem("out",0xe000,0xffff);
/* The MMC1 is busy so ignore the write. */
/* As of version FCE Ultra 0.81, the timestamp is only
increased before each instruction is executed(in other words
precision isn't that great), but this should still work to
deal with 2 writes in a row from a single RMW instruction. */
if((timestampbase+timestamp)<(lreset+2)) return;
if(V&0x80)
{
DRegs[0]|=0xC;
BufferShift=Buffer=0;
MMC1PRG();
lreset=timestampbase+timestamp;
return;
}
Buffer|=(V&1)<<(BufferShift++);
if(BufferShift==5)
{
DRegs[n] = Buffer;
BufferShift = Buffer = 0;
switch(n)
{
case 0: MMC1MIRROR(); MMC1CHR(); MMC1PRG(); break;
case 1: MMC1CHR(); MMC1PRG(); break;
case 2: MMC1CHR(); break;
case 3: MMC1PRG(); break;
}
}
}
static void MMC1_Restore(int version)
{
MMC1MIRROR();
MMC1CHR();
MMC1PRG();
lreset=0; /* timestamp(base) is not stored in save states. */
}
static void MMC1CMReset(void)
{
int i;
for(i=0;i<4;i++)
DRegs[i]=0;
Buffer = BufferShift = 0;
DRegs[0]=0x1F;
DRegs[1]=0;
DRegs[2]=0; // Should this be something other than 0?
DRegs[3]=0;
MMC1MIRROR();
MMC1CHR();
MMC1PRG();
}
static int DetectMMC1WRAMSize(uint32 crc32)
{
switch(crc32)
{
case 0xc6182024: /* Romance of the 3 Kingdoms */
case 0x2225c20f: /* Genghis Khan */
case 0x4642dda6: /* Nobunaga's Ambition */
case 0x29449ba9: /* "" "" (J) */
case 0x2b11e0b0: /* "" "" (J) */
case 0xb8747abf: /* Best Play Pro Yakyuu Special (J) */
case 0xc9556b36: /* Final Fantasy I & II (J) [!] */
FCEU_printf(" >8KB external WRAM present. Use UNIF if you hack the ROM image.\n");
return(16);
break;
default:return(8);
}
}
static uint32 NWCIRQCount;
static uint8 NWCRec;
#define NWCDIP 0xE
static void FP_FASTAPASS(1) NWCIRQHook(int a)
{
if(!(NWCRec&0x10))
{
NWCIRQCount+=a;
if((NWCIRQCount|(NWCDIP<<25))>=0x3e000000)
{
NWCIRQCount=0;
X6502_IRQBegin(FCEU_IQEXT);
}
}
}
static void NWCCHRHook(uint32 A, uint8 V)
{
if((V&0x10)) // && !(NWCRec&0x10))
{
NWCIRQCount=0;
X6502_IRQEnd(FCEU_IQEXT);
}
NWCRec=V;
if(V&0x08)
MMC1PRG();
else
setprg32(0x8000,(V>>1)&3);
}
static void NWCPRGHook(uint32 A, uint8 V)
{
if(NWCRec&0x8)
setprg16(A,8|(V&0x7));
else
setprg32(0x8000,(NWCRec>>1)&3);
}
static void NWCPower(void)
{
GenMMC1Power();
setchr8r(0,0);
}
void Mapper105_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 256, 8, 0);
MMC1CHRHook4=NWCCHRHook;
MMC1PRGHook16=NWCPRGHook;
MapIRQHook=NWCIRQHook;
info->Power=NWCPower;
}
static void GenMMC1Power(void)
{
lreset=0;
if(mmc1opts&1)
{
FCEU_CheatAddRAM(8,0x6000,WRAM);
if(mmc1opts&4)
FCEU_dwmemset(WRAM,0,8192)
else if(!(mmc1opts&2))
FCEU_dwmemset(WRAM,0,8192);
}
SetWriteHandler(0x8000,0xFFFF,MMC1_write);
SetReadHandler(0x8000,0xFFFF,CartBR);
if(mmc1opts&1)
{
SetReadHandler(0x6000,0x7FFF,MAWRAM);
SetWriteHandler(0x6000,0x7FFF,MBWRAM);
setprg8r(0x10,0x6000,0);
}
MMC1CMReset();
}
static void GenMMC1Close(void)
{
if(CHRRAM)
FCEU_gfree(CHRRAM);
if(WRAM)
FCEU_gfree(WRAM);
CHRRAM=WRAM=NULL;
}
static void GenMMC1Init(CartInfo *info, int prg, int chr, int wram, int battery)
{
is155=0;
info->Close=GenMMC1Close;
MMC1PRGHook16=MMC1CHRHook4=0;
mmc1opts=0;
PRGmask16[0]&=(prg>>14)-1;
CHRmask4[0]&=(chr>>12)-1;
CHRmask8[0]&=(chr>>13)-1;
if(wram)
{
WRAM=(uint8*)FCEU_gmalloc(wram*1024);
mmc1opts|=1;
if(wram>8) mmc1opts|=4;
SetupCartPRGMapping(0x10,WRAM,wram*1024,1);
AddExState(WRAM, wram*1024, 0, "WRAM");
if(battery)
{
mmc1opts|=2;
info->SaveGame[0]=WRAM+((mmc1opts&4)?8192:0);
info->SaveGameLen[0]=8192;
}
}
if(!chr)
{
CHRRAM=(uint8*)FCEU_gmalloc(8192);
SetupCartCHRMapping(0, CHRRAM, 8192, 1);
AddExState(CHRRAM, 8192, 0, "CHRR");
}
AddExState(DRegs, 4, 0, "DREG");
info->Power=GenMMC1Power;
GameStateRestore=MMC1_Restore;
AddExState(&lreset, 8, 1, "LRST");
}
void Mapper1_Init(CartInfo *info)
{
int ws=DetectMMC1WRAMSize(info->CRC32);
GenMMC1Init(info, 512, 256, ws, info->battery);
}
/* Same as mapper 1, without respect for WRAM enable bit. */
void Mapper155_Init(CartInfo *info)
{
GenMMC1Init(info,512,256,8,info->battery);
is155=1;
}
void SAROM_Init(CartInfo *info)
{
GenMMC1Init(info, 128, 64, 8, info->battery);
}
void SBROM_Init(CartInfo *info)
{
GenMMC1Init(info, 128, 64, 0, 0);
}
void SCROM_Init(CartInfo *info)
{
GenMMC1Init(info, 128, 128, 0, 0);
}
void SEROM_Init(CartInfo *info)
{
GenMMC1Init(info, 32, 64, 0, 0);
}
void SGROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 0, 0, 0);
}
void SKROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 64, 8, info->battery);
}
void SLROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 128, 0, 0);
}
void SL1ROM_Init(CartInfo *info)
{
GenMMC1Init(info, 128, 128, 0, 0);
}
/* Begin unknown - may be wrong - perhaps they use different MMC1s from the
similarly functioning boards?
*/
void SL2ROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 256, 0, 0);
}
void SFROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 256, 0, 0);
}
void SHROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 256, 0, 0);
}
/* End unknown */
/* */
/* */
void SNROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 0, 8, info->battery);
}
void SOROM_Init(CartInfo *info)
{
GenMMC1Init(info, 256, 0, 16, info->battery);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
extern uint8 MMC3_cmd;
extern uint8 *WRAM;
extern uint8 *CHRRAM;
extern uint8 EXPREGS[8];
extern uint8 DRegBuf[8];
#undef IRQCount
#undef IRQLatch
#undef IRQa
extern uint8 IRQCount,IRQLatch,IRQa;
extern uint8 IRQReload;
extern void (*pwrap)(uint32 A, uint8 V);
extern void (*cwrap)(uint32 A, uint8 V);
extern void (*mwrap)(uint8 V);
void GenMMC3Power(void);
void GenMMC3Restore(int version);
void MMC3RegReset(void);
void FixMMC3PRG(int V);
void FixMMC3CHR(int V);
DECLFW(MMC3_CMDWrite);
DECLFW(MMC3_IRQWrite);
void GenMMC3_Init(CartInfo *info, int prg, int chr, int wram, int battery);

View File

@ -1,835 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* None of this code should use any of the iNES bank switching wrappers. */
#include "mapinc.h"
static void (*sfun)(int P);
static void (*psfun)(void);
void MMC5RunSound(int Count);
void MMC5RunSoundHQ(void);
static INLINE void MMC5SPRVROM_BANK1(uint32 A,uint32 V)
{
if(CHRptr[0])
{
V&=CHRmask1[0];
MMC5SPRVPage[(A)>>10]=&CHRptr[0][(V)<<10]-(A);
}
}
static INLINE void MMC5BGVROM_BANK1(uint32 A,uint32 V) {if(CHRptr[0]){V&=CHRmask1[0];MMC5BGVPage[(A)>>10]=&CHRptr[0][(V)<<10]-(A);}}
static INLINE void MMC5SPRVROM_BANK2(uint32 A,uint32 V) {if(CHRptr[0]){V&=CHRmask2[0];MMC5SPRVPage[(A)>>10]=MMC5SPRVPage[((A)>>10)+1]=&CHRptr[0][(V)<<11]-(A);}}
static INLINE void MMC5BGVROM_BANK2(uint32 A,uint32 V) {if(CHRptr[0]){V&=CHRmask2[0];MMC5BGVPage[(A)>>10]=MMC5BGVPage[((A)>>10)+1]=&CHRptr[0][(V)<<11]-(A);}}
static INLINE void MMC5SPRVROM_BANK4(uint32 A,uint32 V) {if(CHRptr[0]){V&=CHRmask4[0];MMC5SPRVPage[(A)>>10]=MMC5SPRVPage[((A)>>10)+1]= MMC5SPRVPage[((A)>>10)+2]=MMC5SPRVPage[((A)>>10)+3]=&CHRptr[0][(V)<<12]-(A);}}
static INLINE void MMC5BGVROM_BANK4(uint32 A,uint32 V) {if(CHRptr[0]){V&=CHRmask4[0];MMC5BGVPage[(A)>>10]=MMC5BGVPage[((A)>>10)+1]=MMC5BGVPage[((A)>>10)+2]=MMC5BGVPage[((A)>>10)+3]=&CHRptr[0][(V)<<12]-(A);}}
static INLINE void MMC5SPRVROM_BANK8(uint32 V) {if(CHRptr[0]){V&=CHRmask8[0];MMC5SPRVPage[0]=MMC5SPRVPage[1]=MMC5SPRVPage[2]=MMC5SPRVPage[3]=MMC5SPRVPage[4]=MMC5SPRVPage[5]=MMC5SPRVPage[6]=MMC5SPRVPage[7]=&CHRptr[0][(V)<<13];}}
static INLINE void MMC5BGVROM_BANK8(uint32 V) {if(CHRptr[0]){V&=CHRmask8[0];MMC5BGVPage[0]=MMC5BGVPage[1]=MMC5BGVPage[2]=MMC5BGVPage[3]=MMC5BGVPage[4]=MMC5BGVPage[5]=MMC5BGVPage[6]=MMC5BGVPage[7]=&CHRptr[0][(V)<<13];}}
static uint8 PRGBanks[4];
static uint8 WRAMPage;
static uint8 CHRBanksA[8], CHRBanksB[4];
static uint8 WRAMMaskEnable[2];
static uint8 ABMode; /* A=0, B=1 */
static uint8 IRQScanline,IRQEnable;
static uint8 CHRMode, NTAMirroring, NTFill, ATFill;
static uint8 MMC5IRQR;
static uint8 MMC5LineCounter;
static uint8 mmc5psize, mmc5vsize;
static uint8 mul[2];
static uint8 *WRAM=NULL;
static uint8 *MMC5fill=NULL;
static uint8 *ExRAM=NULL;
static uint8 MMC5WRAMsize;
static uint8 MMC5WRAMIndex[8];
static uint8 MMC5ROMWrProtect[4];
static uint8 MMC5MemIn[5];
static void MMC5CHRA(void);
static void MMC5CHRB(void);
typedef struct __cartdata {
uint32 crc32;
uint8 size;
} cartdata;
// ETROM seems to have 16KB of WRAM, ELROM seems to have 8KB
// EWROM seems to have 32KB of WRAM
#define MMC5_NOCARTS 14
cartdata MMC5CartList[MMC5_NOCARTS]=
{
{0x9c18762b,2}, /* L'Empereur */
{0x26533405,2},
{0x6396b988,2},
{0xaca15643,2}, /* Uncharted Waters */
{0xfe3488d1,2}, /* Dai Koukai Jidai */
{0x15fe6d0f,2}, /* BKAC */
{0x39f2ce4b,2}, /* Suikoden */
{0x8ce478db,2}, /* Nobunaga's Ambition 2 */
{0xeee9a682,2},
{0x1ced086f,2}, /* Ishin no Arashi */
{0xf540677b,4}, /* Nobunaga...Bushou Fuuun Roku */
{0x6f4e4312,4}, /* Aoki Ookami..Genchou */
{0xf011e490,4}, /* Romance of the 3 Kingdoms 2 */
{0x184c2124,4}, /* Sangokushi 2 */
};
int DetectMMC5WRAMSize(uint32 crc32)
{
int x;
for(x=0;x<MMC5_NOCARTS;x++)
if(crc32==MMC5CartList[x].crc32)
{
FCEU_printf(" >8KB external WRAM present. Use UNIF if you hack the ROM image.\n");
return(MMC5CartList[x].size*8);
}
return(8);
}
static void BuildWRAMSizeTable(void)
{
int x;
for(x=0;x<8;x++)
{
switch(MMC5WRAMsize)
{
case 0: MMC5WRAMIndex[x]=255; break;
case 1: MMC5WRAMIndex[x]=(x>3)?255:0; break;
case 2: MMC5WRAMIndex[x]=(x&4)>>2; break;
case 4: MMC5WRAMIndex[x]=(x>3)?255:(x&3); break;
}
}
}
static void MMC5CHRA(void)
{
int x;
switch(mmc5vsize&3)
{
case 0: setchr8(CHRBanksA[7]);
MMC5SPRVROM_BANK8(CHRBanksA[7]);
break;
case 1: setchr4(0x0000,CHRBanksA[3]);
setchr4(0x1000,CHRBanksA[7]);
MMC5SPRVROM_BANK4(0x0000,CHRBanksA[3]);
MMC5SPRVROM_BANK4(0x1000,CHRBanksA[7]);
break;
case 2: setchr2(0x0000,CHRBanksA[1]);
setchr2(0x0800,CHRBanksA[3]);
setchr2(0x1000,CHRBanksA[5]);
setchr2(0x1800,CHRBanksA[7]);
MMC5SPRVROM_BANK2(0x0000,CHRBanksA[1]);
MMC5SPRVROM_BANK2(0x0800,CHRBanksA[3]);
MMC5SPRVROM_BANK2(0x1000,CHRBanksA[5]);
MMC5SPRVROM_BANK2(0x1800,CHRBanksA[7]);
break;
case 3: for(x=0;x<8;x++)
{
setchr1(x<<10,CHRBanksA[x]);
MMC5SPRVROM_BANK1(x<<10,CHRBanksA[x]);
}
break;
}
}
static void MMC5CHRB(void)
{
int x;
switch(mmc5vsize&3)
{
case 0: setchr8(CHRBanksB[3]);
MMC5BGVROM_BANK8(CHRBanksB[3]);
break;
case 1: setchr4(0x0000,CHRBanksB[3]);
setchr4(0x1000,CHRBanksB[3]);
MMC5BGVROM_BANK4(0x0000,CHRBanksB[3]);
MMC5BGVROM_BANK4(0x1000,CHRBanksB[3]);
break;
case 2: setchr2(0x0000,CHRBanksB[1]);
setchr2(0x0800,CHRBanksB[3]);
setchr2(0x1000,CHRBanksB[1]);
setchr2(0x1800,CHRBanksB[3]);
MMC5BGVROM_BANK2(0x0000,CHRBanksB[1]);
MMC5BGVROM_BANK2(0x0800,CHRBanksB[3]);
MMC5BGVROM_BANK2(0x1000,CHRBanksB[1]);
MMC5BGVROM_BANK2(0x1800,CHRBanksB[3]);
break;
case 3: for(x=0;x<8;x++)
{
setchr1(x<<10,CHRBanksB[x&3]);
MMC5BGVROM_BANK1(x<<10,CHRBanksB[x&3]);
}
break;
}
}
static void FASTAPASS(2) MMC5WRAM(uint32 A, uint32 V)
{
//printf("%02x\n",V);
V=MMC5WRAMIndex[V&7];
if(V!=255)
{
setprg8r(0x10,A,V);
MMC5MemIn[(A-0x6000)>>13]=1;
}
else
MMC5MemIn[(A-0x6000)>>13]=0;
}
static void MMC5PRG(void)
{
int x;
switch(mmc5psize&3)
{
case 0: MMC5ROMWrProtect[0]=MMC5ROMWrProtect[1]=
MMC5ROMWrProtect[2]=MMC5ROMWrProtect[3]=1;
setprg32(0x8000,((PRGBanks[1]&0x7F)>>2));
for(x=0;x<4;x++)
MMC5MemIn[1+x]=1;
break;
case 1: if(PRGBanks[1]&0x80)
{
MMC5ROMWrProtect[0]=MMC5ROMWrProtect[1]=1;
setprg16(0x8000,(PRGBanks[1]>>1));
MMC5MemIn[1]=MMC5MemIn[2]=1;
}
else
{
MMC5ROMWrProtect[0]=MMC5ROMWrProtect[1]=0;
MMC5WRAM(0x8000,PRGBanks[1]&7&0xFE);
MMC5WRAM(0xA000,(PRGBanks[1]&7&0xFE)+1);
}
MMC5MemIn[3]=MMC5MemIn[4]=1;
MMC5ROMWrProtect[2]=MMC5ROMWrProtect[3]=1;
setprg16(0xC000,(PRGBanks[3]&0x7F)>>1);
break;
case 2: if(PRGBanks[1]&0x80)
{
MMC5MemIn[1]=MMC5MemIn[2]=1;
MMC5ROMWrProtect[0]=MMC5ROMWrProtect[1]=1;
setprg16(0x8000,(PRGBanks[1]&0x7F)>>1);
}
else
{
MMC5ROMWrProtect[0]=MMC5ROMWrProtect[1]=0;
MMC5WRAM(0x8000,PRGBanks[1]&7&0xFE);
MMC5WRAM(0xA000,(PRGBanks[1]&7&0xFE)+1);
}
if(PRGBanks[2]&0x80)
{
MMC5ROMWrProtect[2]=1;
MMC5MemIn[3]=1;
setprg8(0xC000,PRGBanks[2]&0x7F);
}
else
{
MMC5ROMWrProtect[2]=0;
MMC5WRAM(0xC000,PRGBanks[2]&7);
}
MMC5MemIn[4]=1;
MMC5ROMWrProtect[3]=1;
setprg8(0xE000,PRGBanks[3]&0x7F);
break;
case 3: for(x=0;x<3;x++)
if(PRGBanks[x]&0x80)
{
MMC5ROMWrProtect[x]=1;
setprg8(0x8000+(x<<13),PRGBanks[x]&0x7F);
MMC5MemIn[1+x]=1;
}
else
{
MMC5ROMWrProtect[x]=0;
MMC5WRAM(0x8000+(x<<13),PRGBanks[x]&7);
}
MMC5MemIn[4]=1;
MMC5ROMWrProtect[3]=1;
setprg8(0xE000,PRGBanks[3]&0x7F);
break;
}
}
static DECLFW(Mapper5_write)
{
if(A>=0x5120&&A<=0x5127)
{
ABMode = 0;
CHRBanksA[A&7]=V;
MMC5CHRA();
}
else switch(A)
{
case 0x5105: {
int x;
for(x=0;x<4;x++)
{
switch((V>>(x<<1))&3)
{
case 0:PPUNTARAM|=1<<x;vnapage[x]=NTARAM;break;
case 1:PPUNTARAM|=1<<x;vnapage[x]=NTARAM+0x400;break;
case 2:PPUNTARAM|=1<<x;vnapage[x]=ExRAM;break;
case 3:PPUNTARAM&=~(1<<x);vnapage[x]=MMC5fill;break;
}
}
}
NTAMirroring=V;
break;
case 0x5113: WRAMPage=V;MMC5WRAM(0x6000,V&7);break;
case 0x5100: mmc5psize=V;MMC5PRG();break;
case 0x5101: mmc5vsize=V;
if(!ABMode)
{ MMC5CHRB();MMC5CHRA();}
else
{ MMC5CHRA();MMC5CHRB();}
break;
case 0x5114:
case 0x5115:
case 0x5116:
case 0x5117: PRGBanks[A&3]=V;MMC5PRG();break;
case 0x5128:
case 0x5129:
case 0x512a:
case 0x512b: ABMode=1;
CHRBanksB[A&3]=V;
MMC5CHRB();
break;
case 0x5102: WRAMMaskEnable[0]=V;break;
case 0x5103: WRAMMaskEnable[1]=V;break;
case 0x5104: CHRMode=V;MMC5HackCHRMode=V&3;break;
case 0x5106: if(V!=NTFill)
{
uint32 t;
t=V|(V<<8)|(V<<16)|(V<<24);
FCEU_dwmemset(MMC5fill,t,0x3c0);
}
NTFill=V;
break;
case 0x5107: if(V!=ATFill)
{
unsigned char moop;
uint32 t;
moop=V|(V<<2)|(V<<4)|(V<<6);
t=moop|(moop<<8)|(moop<<16)|(moop<<24);
FCEU_dwmemset(MMC5fill+0x3c0,t,0x40);
}
ATFill=V;
break;
case 0x5200: MMC5HackSPMode=V;break;
case 0x5201: MMC5HackSPScroll=(V>>3)&0x1F;break;
case 0x5202: MMC5HackSPPage=V&0x3F;break;
case 0x5203: X6502_IRQEnd(FCEU_IQEXT);IRQScanline=V;break;
case 0x5204: X6502_IRQEnd(FCEU_IQEXT);IRQEnable=V&0x80;break;
case 0x5205: mul[0]=V;break;
case 0x5206: mul[1]=V;break;
}
}
static DECLFR(MMC5_ReadROMRAM)
{
if(MMC5MemIn[(A-0x6000)>>13])
return Page[A>>11][A];
else
return X.DB;
}
static DECLFW(MMC5_WriteROMRAM)
{
if(A>=0x8000)
if(MMC5ROMWrProtect[(A-0x8000)>>13]) return;
if(MMC5MemIn[(A-0x6000)>>13])
if(((WRAMMaskEnable[0]&3)|((WRAMMaskEnable[1]&3)<<2)) == 6) Page[A>>11][A]=V;
}
static DECLFW(MMC5_ExRAMWr)
{
if(MMC5HackCHRMode!=3)
ExRAM[A&0x3ff]=V;
}
static DECLFR(MMC5_ExRAMRd)
{
/* Not sure if this is correct, so I'll comment it out for now. */
//if(MMC5HackCHRMode>=2)
return ExRAM[A&0x3ff];
//else
// return(X.DB);
}
static DECLFR(MMC5_read)
{
switch(A)
{
case 0x5204: X6502_IRQEnd(FCEU_IQEXT);
{
uint8 x;
x=MMC5IRQR;
if(!fceuindbg)
MMC5IRQR&=0x40;
return x;
}
case 0x5205: return (mul[0]*mul[1]);
case 0x5206: return ((mul[0]*mul[1])>>8);
}
return(X.DB);
}
void MMC5Synco(void)
{
int x;
MMC5PRG();
for(x=0;x<4;x++)
{
switch((NTAMirroring>>(x<<1))&3)
{
case 0:PPUNTARAM|=1<<x;vnapage[x]=NTARAM;break;
case 1:PPUNTARAM|=1<<x;vnapage[x]=NTARAM+0x400;break;
case 2:PPUNTARAM|=1<<x;vnapage[x]=ExRAM;break;
case 3:PPUNTARAM&=~(1<<x);vnapage[x]=MMC5fill;break;
}
}
MMC5WRAM(0x6000,WRAMPage&7);
if(!ABMode)
{
MMC5CHRB();
MMC5CHRA();
}
else
{
MMC5CHRA();
MMC5CHRB();
}
{
uint32 t;
t=NTFill|(NTFill<<8)|(NTFill<<16)|(NTFill<<24);
FCEU_dwmemset(MMC5fill,t,0x3c0);
}
{
unsigned char moop;
uint32 t;
moop=ATFill|(ATFill<<2)|(ATFill<<4)|(ATFill<<6);
t=moop|(moop<<8)|(moop<<16)|(moop<<24);
FCEU_dwmemset(MMC5fill+0x3c0,t,0x40);
}
X6502_IRQEnd(FCEU_IQEXT);
MMC5HackCHRMode=CHRMode&3;
}
void MMC5_hb(int scanline)
{
if(scanline==240)
{
MMC5LineCounter=0;
MMC5IRQR=0x40;
return;
}
if(MMC5LineCounter<240)
{
if(MMC5LineCounter==IRQScanline)
{
MMC5IRQR|=0x80;
if(IRQEnable&0x80)
X6502_IRQBegin(FCEU_IQEXT);
}
MMC5LineCounter++;
}
if(MMC5LineCounter==240)
MMC5IRQR=0;
}
void MMC5_StateRestore(int version)
{
MMC5Synco();
}
typedef struct {
uint16 wl[2];
uint8 env[2];
uint8 enable;
uint8 running;
uint8 raw;
uint8 rawcontrol;
int32 dcount[2];
int32 BC[3];
int32 vcount[2];
} MMC5APU;
static MMC5APU MMC5Sound;
static void Do5PCM()
{
int32 V;
int32 start,end;
start=MMC5Sound.BC[2];
end=(SOUNDTS<<16)/soundtsinc;
if(end<=start) return;
MMC5Sound.BC[2]=end;
if(!(MMC5Sound.rawcontrol&0x40) && MMC5Sound.raw)
for(V=start;V<end;V++)
Wave[V>>4]+=MMC5Sound.raw<<1;
}
static void Do5PCMHQ()
{
uint32 V; //mbg merge 7/17/06 made uint32
if(!(MMC5Sound.rawcontrol&0x40) && MMC5Sound.raw)
for(V=MMC5Sound.BC[2];V<SOUNDTS;V++)
WaveHi[V]+=MMC5Sound.raw<<5;
MMC5Sound.BC[2]=SOUNDTS;
}
static DECLFW(Mapper5_SW)
{
A&=0x1F;
GameExpSound.Fill=MMC5RunSound;
GameExpSound.HiFill=MMC5RunSoundHQ;
switch(A)
{
case 0x10:if(psfun) psfun();MMC5Sound.rawcontrol=V;break;
case 0x11:if(psfun) psfun();MMC5Sound.raw=V;break;
case 0x0:
case 0x4://printf("%04x:$%02x\n",A,V&0x30);
if(sfun) sfun(A>>2);
MMC5Sound.env[A>>2]=V;
break;
case 0x2:
case 0x6: if(sfun) sfun(A>>2);
MMC5Sound.wl[A>>2]&=~0x00FF;
MMC5Sound.wl[A>>2]|=V&0xFF;
break;
case 0x3:
case 0x7://printf("%04x:$%02x\n",A,V>>3);
MMC5Sound.wl[A>>2]&=~0x0700;
MMC5Sound.wl[A>>2]|=(V&0x07)<<8;
MMC5Sound.running|=1<<(A>>2);
break;
case 0x15:if(sfun)
{
sfun(0);
sfun(1);
}
MMC5Sound.running&=V;
MMC5Sound.enable=V;
//printf("%02x\n",V);
break;
}
}
static void Do5SQ(int P)
{
static int tal[4]={1,2,4,6};
int32 V,amp,rthresh,wl;
int32 start,end;
start=MMC5Sound.BC[P];
end=(SOUNDTS<<16)/soundtsinc;
if(end<=start) return;
MMC5Sound.BC[P]=end;
wl=MMC5Sound.wl[P]+1;
amp=(MMC5Sound.env[P]&0xF)<<4;
rthresh=tal[(MMC5Sound.env[P]&0xC0)>>6];
if(wl>=8 && (MMC5Sound.running&(P+1)))
{
int dc,vc;
wl<<=18;
dc=MMC5Sound.dcount[P];
vc=MMC5Sound.vcount[P];
for(V=start;V<end;V++)
{
if(dc<rthresh)
Wave[V>>4]+=amp;
vc-=nesincsize;
while(vc<=0)
{
vc+=wl;
dc=(dc+1)&7;
}
}
MMC5Sound.dcount[P]=dc;
MMC5Sound.vcount[P]=vc;
}
}
static void Do5SQHQ(int P)
{
static int tal[4]={1,2,4,6};
uint32 V; //mbg merge 7/17/06 made uint32
int32 amp,rthresh,wl;
wl=MMC5Sound.wl[P]+1;
amp=((MMC5Sound.env[P]&0xF)<<8);
rthresh=tal[(MMC5Sound.env[P]&0xC0)>>6];
if(wl>=8 && (MMC5Sound.running&(P+1)))
{
int dc,vc;
wl<<=1;
dc=MMC5Sound.dcount[P];
vc=MMC5Sound.vcount[P];
for(V=MMC5Sound.BC[P];V<SOUNDTS;V++)
{
if(dc<rthresh)
WaveHi[V]+=amp;
vc--;
if(vc<=0) /* Less than zero when first started. */
{
vc=wl;
dc=(dc+1)&7;
}
}
MMC5Sound.dcount[P]=dc;
MMC5Sound.vcount[P]=vc;
}
MMC5Sound.BC[P]=SOUNDTS;
}
void MMC5RunSoundHQ(void)
{
Do5SQHQ(0);
Do5SQHQ(1);
Do5PCMHQ();
}
void MMC5HiSync(int32 ts)
{
int x;
for(x=0;x<3;x++) MMC5Sound.BC[x]=ts;
}
void MMC5RunSound(int Count)
{
int x;
Do5SQ(0);
Do5SQ(1);
Do5PCM();
for(x=0;x<3;x++)
MMC5Sound.BC[x]=Count;
}
void Mapper5_ESI(void)
{
GameExpSound.RChange=Mapper5_ESI;
if(FSettings.SndRate)
{
if(FSettings.soundq>=1)
{
sfun=Do5SQHQ;
psfun=Do5PCMHQ;
}
else
{
sfun=Do5SQ;
psfun=Do5PCM;
}
}
else
{
sfun=0;
psfun=0;
}
memset(MMC5Sound.BC,0,sizeof(MMC5Sound.BC));
memset(MMC5Sound.vcount,0,sizeof(MMC5Sound.vcount));
GameExpSound.HiSync=MMC5HiSync;
}
void NSFMMC5_Init(void)
{
memset(&MMC5Sound,0,sizeof(MMC5Sound));
mul[0]=mul[1]=0;
ExRAM=(uint8*)FCEU_gmalloc(1024);
Mapper5_ESI();
SetWriteHandler(0x5c00,0x5fef,MMC5_ExRAMWr);
SetReadHandler(0x5c00,0x5fef,MMC5_ExRAMRd);
MMC5HackCHRMode=2;
SetWriteHandler(0x5000,0x5015,Mapper5_SW);
SetWriteHandler(0x5205,0x5206,Mapper5_write);
SetReadHandler(0x5205,0x5206,MMC5_read);
}
void NSFMMC5_Close(void)
{
FCEU_gfree(ExRAM);
ExRAM=0;
}
static void GenMMC5Reset(void)
{
int x;
for(x=0;x<4;x++) PRGBanks[x]=~0;
for(x=0;x<8;x++) CHRBanksA[x]=~0;
for(x=0;x<4;x++) CHRBanksB[x]=~0;
WRAMMaskEnable[0]=WRAMMaskEnable[1]=~0;
mmc5psize=mmc5vsize=3;
CHRMode=0;
NTAMirroring=NTFill=ATFill=0xFF;
MMC5Synco();
SetWriteHandler(0x4020,0x5bff,Mapper5_write);
SetReadHandler(0x4020,0x5bff,MMC5_read);
SetWriteHandler(0x5c00,0x5fff,MMC5_ExRAMWr);
SetReadHandler(0x5c00,0x5fff,MMC5_ExRAMRd);
SetWriteHandler(0x6000,0xFFFF,MMC5_WriteROMRAM);
SetReadHandler(0x6000,0xFFFF,MMC5_ReadROMRAM);
SetWriteHandler(0x5000,0x5015,Mapper5_SW);
SetWriteHandler(0x5205,0x5206,Mapper5_write);
SetReadHandler(0x5205,0x5206,MMC5_read);
//GameHBIRQHook=MMC5_hb;
FCEU_CheatAddRAM(8,0x6000,WRAM);
FCEU_CheatAddRAM(1,0x5c00,ExRAM);
}
static SFORMAT MMC5_StateRegs[]={
{ PRGBanks, 4, "PRGB"},
{ CHRBanksA, 8, "CHRA"},
{ CHRBanksB, 4, "CHRB"},
{ &WRAMPage, 1, "WRMP"},
{ WRAMMaskEnable, 2, "WRME"},
{ &ABMode, 1, "ABMD"},
{ &IRQScanline, 1, "IRQS"},
{ &IRQEnable, 1, "IRQE"},
{ &CHRMode, 1, "CHRM"},
{ &NTAMirroring, 1, "NTAM"},
{ &NTFill, 1, "NTFL"},
{ &ATFill, 1, "ATFL"},
{ &MMC5Sound.wl[0], 2|FCEUSTATE_RLSB, "SDW0"},
{ &MMC5Sound.wl[1], 2|FCEUSTATE_RLSB, "SDW1"},
{ MMC5Sound.env, 2, "SDEV"},
{ &MMC5Sound.enable, 1, "SDEN"},
{ &MMC5Sound.running, 1, "SDRU"},
{ &MMC5Sound.raw, 1, "SDRW"},
{ &MMC5Sound.rawcontrol, 1, "SDRC"},
{0}
};
static void GenMMC5_Init(CartInfo *info, int wsize, int battery)
{
if(wsize)
{
WRAM=(uint8*)FCEU_gmalloc(wsize*1024);
SetupCartPRGMapping(0x10,WRAM,wsize*1024,1);
AddExState(WRAM, wsize*1024, 0, "WRAM");
}
MMC5fill=(uint8*)FCEU_gmalloc(1024);
ExRAM=(uint8*)FCEU_gmalloc(1024);
AddExState(MMC5_StateRegs, ~0, 0, 0);
AddExState(WRAM, wsize*1024, 0, "WRAM");
AddExState(ExRAM, 1024, 0, "ERAM");
AddExState(&MMC5HackSPMode, 1, 0, "SPLM");
AddExState(&MMC5HackSPScroll, 1, 0, "SPLS");
AddExState(&MMC5HackSPPage, 1, 0, "SPLP");
MMC5WRAMsize=wsize/8;
BuildWRAMSizeTable();
GameStateRestore=MMC5_StateRestore;
info->Power=GenMMC5Reset;
if(battery)
{
info->SaveGame[0]=WRAM;
if(wsize<=16)
info->SaveGameLen[0]=8192;
else
info->SaveGameLen[0]=32768;
}
MMC5HackVROMMask=CHRmask4[0];
MMC5HackExNTARAMPtr=ExRAM;
MMC5Hack=1;
MMC5HackVROMPTR=CHRptr[0];
MMC5HackCHRMode=0;
MMC5HackSPMode=MMC5HackSPScroll=MMC5HackSPPage=0;
Mapper5_ESI();
}
void Mapper5_Init(CartInfo *info)
{
GenMMC5_Init(info, DetectMMC5WRAMSize(info->CRC32), info->battery);
}
// ELROM seems to have 0KB of WRAM
// EKROM seems to have 8KB of WRAM
// ETROM seems to have 16KB of WRAM
// EWROM seems to have 32KB of WRAM
// ETROM and EWROM are battery-backed, EKROM isn't.
void ETROM_Init(CartInfo *info)
{
GenMMC5_Init(info, 16,info->battery);
}
void ELROM_Init(CartInfo *info)
{
GenMMC5_Init(info,0,0);
}
void EWROM_Init(CartInfo *info)
{
GenMMC5_Init(info,32,info->battery);
}
void EKROM_Init(CartInfo *info)
{
GenMMC5_Init(info,8,info->battery);
}

View File

@ -1,108 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2006 CaH4e3
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
//mbg merge 7/17/06 - TODO CaH4e3 / does it make sense to #include mmc3.h here? it uses some vars from it..
//also, CaH4e3, discuss with me whether this implies that 0xA000 and 0xE000 can have their own 8k banks (
#include "mmc3.h"
//mbg merge 7/17/06 we get these externs from mmc3.h
//uint8 IRQCount,IRQLatch,IRQa;
//uint8 IRQReload;
static uint8 reg[8];
static SFORMAT StateRegs[]=
{
{reg, 8, "REGS"},
{0}
};
static void Sync(void)
{
// FCEU_printf("(%02x, %02x)\n",reg[3],reg[4]);
setprg8(0x8000,reg[0]);
setprg8(0xA000,reg[1]);
setprg8(0xC000,reg[2]);
setprg8(0xE000,~0);
// setchr2(0x0000,reg[3]);
// setchr2(0x0800,reg[4]);
// setchr2(0x1000,reg[5]);
// setchr2(0x1800,reg[6]);
setchr2(0x0000,reg[3]);
setchr2(0x0800,reg[4]);
setchr2(0x1000,reg[5]);
setchr2(0x1800,reg[6]);
}
static DECLFW(MCN22MWrite)
{
FCEU_printf("bs %04x %02x\n",A,V);
switch(A)
{
case 0x8c00:
case 0x8c01:
case 0x8c02: reg[A&3]=V; break;
case 0x8d10: reg[3]=V; break;
case 0x8d11: reg[4]=V; break;
case 0x8d16: reg[5]=V; break;
case 0x8d17: reg[6]=V; break;
}
Sync();
}
static void MCN22MPower(void)
{
Sync();
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xFFFF,MCN22MWrite);
}
/*
static void MCN22MIRQHook(void)
{
int count = IRQCount;
if(!count || IRQReload)
{
IRQCount = IRQLatch;
IRQReload = 0;
}
else
IRQCount--;
if(!IRQCount)
{
if(IRQa)
{
X6502_IRQBegin(FCEU_IQEXT);
}
}
}
*/
static void StateRestore(int version)
{
Sync();
}
void UNLCN22M_Init(CartInfo *info)
{
info->Power=MCN22MPower;
// GameHBIRQHook=MCN22MIRQHook;
GameStateRestore=StateRestore;
AddExState(&StateRegs, ~0, 0, 0);
}

View File

@ -1,470 +0,0 @@
/* FCE Ultra - NES/Famicom Emulator
*
* Copyright notice for this file:
* Copyright (C) 2002 Xodnizel
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "mapinc.h"
static uint16 IRQCount;
static uint8 IRQa;
static uint8 WRAM[8192];
static uint8 IRAM[128];
static DECLFR(AWRAM)
{
return(WRAM[A-0x6000]);
}
static DECLFW(BWRAM)
{
WRAM[A-0x6000]=V;
}
void Mapper19_ESI(void);
static uint8 NTAPage[4];
static uint8 dopol;
static uint8 gorfus;
static uint8 gorko;
static void NamcoSound(int Count);
static void NamcoSoundHack(void);
static void DoNamcoSound(int32 *Wave, int Count);
static void DoNamcoSoundHQ(void);
static void SyncHQ(int32 ts);
static int is210; /* Lesser mapper. */
static uint8 PRG[3];
static uint8 CHR[8];
static SFORMAT N106_StateRegs[]={
{PRG,3,"PRG"},
{CHR,8,"CHR"},
{NTAPage,4,"NTA"},
{0}
};
static void SyncPRG(void)
{
setprg8(0x8000,PRG[0]);
setprg8(0xa000,PRG[1]);
setprg8(0xc000,PRG[2]);
setprg8(0xe000,0x3F);
}
static void FP_FASTAPASS(1) NamcoIRQHook(int a)
{
if(IRQa)
{
IRQCount+=a;
if(IRQCount>=0x7FFF)
{
X6502_IRQBegin(FCEU_IQEXT);
IRQa=0;
IRQCount=0x7FFF; //7FFF;
}
}
}
static DECLFR(Namco_Read4800)
{
uint8 ret=IRAM[dopol&0x7f];
/* Maybe I should call NamcoSoundHack() here? */
if(!fceuindbg)
if(dopol&0x80)
dopol=(dopol&0x80)|((dopol+1)&0x7f);
return ret;
}
static DECLFR(Namco_Read5000)
{
return(IRQCount);
}
static DECLFR(Namco_Read5800)
{
return(IRQCount>>8);
}
static void FASTAPASS(2) DoNTARAMROM(int w, uint8 V)
{
NTAPage[w]=V;
if(V>=0xE0)
setntamem(NTARAM+((V&1)<<10), 1, w);
else
{
V&=CHRmask1[0];
setntamem(CHRptr[0]+(V<<10), 0, w);
}
}
static void FixNTAR(void)
{
int x;
for(x=0;x<4;x++)
DoNTARAMROM(x,NTAPage[x]);
}
static void FASTAPASS(2) DoCHRRAMROM(int x, uint8 V)
{
CHR[x]=V;
if(!is210 && !((gorfus>>((x>>2)+6))&1) && (V>=0xE0))
{
// printf("BLAHAHA: %d, %02x\n",x,V);
//setchr1r(0x10,x<<10,V&7);
}
else
setchr1(x<<10,V);
}
static void FixCRR(void)
{
int x;
for(x=0;x<8;x++)
DoCHRRAMROM(x,CHR[x]);
}
static DECLFW(Mapper19C0D8_write)
{
DoNTARAMROM((A-0xC000)>>11,V);
}
static uint32 FreqCache[8];
static uint32 EnvCache[8];
static uint32 LengthCache[8];
static void FixCache(int a,int V)
{
int w=(a>>3)&0x7;
switch(a&0x07)
{
case 0x00:FreqCache[w]&=~0x000000FF;FreqCache[w]|=V;break;
case 0x02:FreqCache[w]&=~0x0000FF00;FreqCache[w]|=V<<8;break;
case 0x04:FreqCache[w]&=~0x00030000;FreqCache[w]|=(V&3)<<16;
LengthCache[w]=(8-((V>>2)&7))<<2;
break;
case 0x07:EnvCache[w]=(double)(V&0xF)*576716;break;
}
}
static DECLFW(Mapper19_write)
{
A&=0xF800;
if(A>=0x8000 && A<=0xb800)
DoCHRRAMROM((A-0x8000)>>11,V);
else switch(A)
{
case 0x4800:
if(dopol&0x40)
{
if(FSettings.SndRate)
{
NamcoSoundHack();
GameExpSound.Fill=NamcoSound;
GameExpSound.HiFill=DoNamcoSoundHQ;
GameExpSound.HiSync=SyncHQ;
}
FixCache(dopol,V);
}
IRAM[dopol&0x7f]=V;
if(dopol&0x80)
dopol=(dopol&0x80)|((dopol+1)&0x7f);
break;
case 0xf800:
dopol=V;break;
case 0x5000:
IRQCount&=0xFF00;IRQCount|=V;X6502_IRQEnd(FCEU_IQEXT);break;
case 0x5800:
IRQCount&=0x00ff;IRQCount|=(V&0x7F)<<8;
IRQa=V&0x80;
X6502_IRQEnd(FCEU_IQEXT);
break;
case 0xE000:
gorko=V&0xC0;
PRG[0]=V&0x3F;
SyncPRG();
break;
case 0xE800:
gorfus=V&0xC0;
FixCRR();
PRG[1]=V&0x3F;
SyncPRG();
break;
case 0xF000:
PRG[2]=V&0x3F;
SyncPRG();
break;
}
}
static int dwave=0;
static void NamcoSoundHack(void)
{
int32 z,a;
if(FSettings.soundq>=1)
{
DoNamcoSoundHQ();
return;
}
z=((SOUNDTS<<16)/soundtsinc)>>4;
a=z-dwave;
if(a) DoNamcoSound(&Wave[dwave], a);
dwave+=a;
}
static void NamcoSound(int Count)
{
int32 z,a;
z=((SOUNDTS<<16)/soundtsinc)>>4;
a=z-dwave;
if(a) DoNamcoSound(&Wave[dwave], a);
dwave=0;
}
static uint32 PlayIndex[8];
static int32 vcount[8];
static int32 CVBC;
#define TOINDEX (16+1)
// 16:15
static void SyncHQ(int32 ts)
{
CVBC=ts;
}
/* Things to do:
1 Read freq low
2 Read freq mid
3 Read freq high
4 Read envelope
...?
*/
static INLINE uint32 FetchDuff(uint32 P, uint32 envelope)
{
uint32 duff;
duff=IRAM[((IRAM[0x46+(P<<3)]+(PlayIndex[P]>>TOINDEX))&0xFF)>>1];
if((IRAM[0x46+(P<<3)]+(PlayIndex[P]>>TOINDEX))&1)
duff>>=4;
duff&=0xF;
duff=(duff*envelope)>>16;
return(duff);
}
static void DoNamcoSoundHQ(void)
{
uint32 V; //mbg merge 7/17/06 made uint32
int32 P;
int32 cyclesuck=(((IRAM[0x7F]>>4)&7)+1)*15;
for(P=7;P>=(7-((IRAM[0x7F]>>4)&7));P--)
{
if((IRAM[0x44+(P<<3)]&0xE0) && (IRAM[0x47+(P<<3)]&0xF))
{
uint32 freq;
int32 vco;
uint32 duff2,lengo,envelope;
vco=vcount[P];
freq=FreqCache[P];
envelope=EnvCache[P];
lengo=LengthCache[P];
duff2=FetchDuff(P,envelope);
for(V=CVBC<<1;V<SOUNDTS<<1;V++)
{
WaveHi[V>>1]+=duff2;
if(!vco)
{
PlayIndex[P]+=freq;
while((PlayIndex[P]>>TOINDEX)>=lengo) PlayIndex[P]-=lengo<<TOINDEX;
duff2=FetchDuff(P,envelope);
vco=cyclesuck;
}
vco--;
}
vcount[P]=vco;
}
}
CVBC=SOUNDTS;
}
static void DoNamcoSound(int32 *Wave, int Count)
{
int P,V;
for(P=7;P>=7-((IRAM[0x7F]>>4)&7);P--)
{
if((IRAM[0x44+(P<<3)]&0xE0) && (IRAM[0x47+(P<<3)]&0xF))
{
int32 inc;
uint32 freq;
int32 vco;
uint32 duff,duff2,lengo,envelope;
vco=vcount[P];
freq=FreqCache[P];
envelope=EnvCache[P];
lengo=LengthCache[P];
if(!freq) {/*printf("Ack");*/ continue;}
{
int c=((IRAM[0x7F]>>4)&7)+1;
inc=(long double)(FSettings.SndRate<<15)/((long double)freq*21477272/((long double)0x400000*c*45));
}
duff=IRAM[(((IRAM[0x46+(P<<3)]+PlayIndex[P])&0xFF)>>1)];
if((IRAM[0x46+(P<<3)]+PlayIndex[P])&1)
duff>>=4;
duff&=0xF;
duff2=(duff*envelope)>>19;
for(V=0;V<Count*16;V++)
{
if(vco>=inc)
{
PlayIndex[P]++;
if(PlayIndex[P]>=lengo)
PlayIndex[P]=0;
vco-=inc;
duff=IRAM[(((IRAM[0x46+(P<<3)]+PlayIndex[P])&0xFF)>>1)];
if((IRAM[0x46+(P<<3)]+PlayIndex[P])&1)
duff>>=4;
duff&=0xF;
duff2=(duff*envelope)>>19;
}
Wave[V>>4]+=duff2;
vco+=0x8000;
}
vcount[P]=vco;
}
}
}
static void Mapper19_StateRestore(int version)
{
int x;
SyncPRG();
FixNTAR();
FixCRR();
for(x=0x40;x<0x80;x++)
FixCache(x,IRAM[x]);
}
static void M19SC(void)
{
if(FSettings.SndRate)
Mapper19_ESI();
}
void Mapper19_ESI(void)
{
GameExpSound.RChange=M19SC;
memset(vcount,0,sizeof(vcount));
memset(PlayIndex,0,sizeof(PlayIndex));
CVBC=0;
}
void NSFN106_Init(void)
{
SetWriteHandler(0xf800,0xffff,Mapper19_write);
SetWriteHandler(0x4800,0x4fff,Mapper19_write);
SetReadHandler(0x4800,0x4fff,Namco_Read4800);
Mapper19_ESI();
}
static int battery=0;
static void N106_Power(void)
{
int x;
SetReadHandler(0x8000,0xFFFF,CartBR);
SetWriteHandler(0x8000,0xffff,Mapper19_write);
SetWriteHandler(0x4020,0x5fff,Mapper19_write);
if(!is210)
{
SetWriteHandler(0xc000,0xdfff,Mapper19C0D8_write);
SetReadHandler(0x4800,0x4fff,Namco_Read4800);
SetReadHandler(0x5000,0x57ff,Namco_Read5000);
SetReadHandler(0x5800,0x5fff,Namco_Read5800);
NTAPage[0]=NTAPage[1]=NTAPage[2]=NTAPage[3]=0xFF;
FixNTAR();
}
SetReadHandler(0x6000,0x7FFF,AWRAM);
SetWriteHandler(0x6000,0x7FFF,BWRAM);
FCEU_CheatAddRAM(8,0x6000,WRAM);
gorfus=0xFF;
SyncPRG();
FixCRR();
if(!battery)
{
FCEU_dwmemset(WRAM,0,8192);
FCEU_dwmemset(IRAM,0,128);
}
for(x=0x40;x<0x80;x++)
FixCache(x,IRAM[x]);
}
void Mapper19_Init(CartInfo *info)
{
is210=0;
battery=info->battery;
info->Power=N106_Power;
MapIRQHook=NamcoIRQHook;
GameStateRestore=Mapper19_StateRestore;
GameExpSound.RChange=M19SC;
if(FSettings.SndRate)
Mapper19_ESI();
AddExState(WRAM, 8192, 0, "WRAM");
AddExState(IRAM, 128, 0, "WRAM");
AddExState(N106_StateRegs, ~0, 0, 0);
if(info->battery)
{
info->SaveGame[0]=WRAM;
info->SaveGameLen[0]=8192;
info->SaveGame[1]=IRAM;
info->SaveGameLen[1]=128;
}
}
static void Mapper210_StateRestore(int version)
{
SyncPRG();
FixCRR();
}
void Mapper210_Init(CartInfo *info)
{
is210=1;
GameStateRestore=Mapper210_StateRestore;
info->Power=N106_Power;
AddExState(WRAM, 8192, 0, "WRAM");
}

Some files were not shown because too many files have changed in this diff Show More