Jay Oster
43f09cd72d
Fix stack corruption in debugger
...
Corrupt the stack with the following process (prior to this commit):
- Open FCEUX, do NOT load a ROM.
- Open the debugger window.
- Resize the debugger window to force it to refresh the disassembler.
- (May not be necessary if you have already saved the debugger state
with a larger-than-default window size.)
- Double click on any address that is not $0000.
- The Add Breakpoint window will open with the condition string filled
with `K==#FFFFFFFF`, which is at least 13 characters long.
- The `str` array that this string is written to only has capacity for 8
characters.
- Whoops!
This commit fixes a bug in the original `getBank()` implementation when
`GetNesFileAddress()` returns -1.
See: f980ec2bc7/src/debug.cpp (L303-L307)
`addr` will be -17 in this error condition after the iNES header size is
subtracted. This causes the following error checks to fail and weird
integer arithmetic (specifically `-17 / (1 << 14)` is 0!) then returns 0
to the caller, indicating a successful result for bank number 0.
With the fix, `getBank()` now properly returns -1 and causes the stack
corruption with unrelated code as described above. This commit adds
proper error handling to the code in question.
Additionally, the previous commit also kept the original
`-17 / 0x1000 == 0` behavior for NSFs. That is now corrected in this
commit; `getBank()` always returns -1 for errors instead of integer
divisions truncating negative results to 0.
2024-09-19 15:25:36 -07:00
Jay Oster
aef622f87e
Fix PRG bank shown in debugger
...
The old code used a hardcoded 16 KiB bank size, regardless of how the
mapper actually maps banks.
There is still a lot of code making this assumption. See
`debuggerPageSize`. Mostly for symbolic debugging.
2024-09-13 00:53:13 -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