WinFellow v0.5.10
This is a public release of WinFellow v0.5.10. Compared to the earlier version 0.5.9, the following changes are included in this build:
New features
- a native ARM64 build of WinFellow is now provided as part of the release zip archive
Bug Fixes
- Thanks to the availability of Toni Wilen's cputester, the following mostly CPU related issues from the basic tests could be addressed:
- Removed address register as byte source operand in move.
- Various bit-field instruction fixes.
- Incorrect pack/unpk behaviour.
- Trapcc increase pc after condition check to get correct exception stack frame.
- Cas2 select the first compare result value when both compare registers are the same register. Set v flag.
- Link/Unlk incorrect result on stack when link register was a7.
- Split long reads in two word reads for correct values across banks that are not stored consecutively.
- VPOS wraparound fix.
- Exception cycle time changes.
- Fixed various instructions that overwrote exception cycle times with regular instruction time. (when triggering privilege violations etc.)
- Set div cycle times to values closer to the listed cycle times. Still not dynamically calculated, but should be closer.
- Don't trace when instruction was aborted by illegal, privilege or address error.
- CHK.w N flag fix.
- EOR ea vs. data register check for cycle calculation was inverted.
- Changes to cycle calculation for BSET/BCGH.
- Set undefined div flags according to behaviour on 68000.
- Move to SR, check supervisor level before evaluating ea.
- Include exception time in cycle time for chk.
- Handle bkpt differenly from illegal.
- Broken overflow and other special cases for mull.
- Handle supervisor check differently for move from sr to avoid returning result when throwing exception.
- Missing address mask in rtarea memory handling (for when upper address byte contains data).
- Trapcc had wrong pc in the stack frame.
- fixed mouse capture for older RetroPlatform hosts
Maintenance updates
- code refactoring:
- solution file reorganisation
- static analysis/replace custom datatypes with standard sized C++ types
Please see the included file ChangeLog.txt for a full list of changes, including minor bug fixes which may not be listed above.