Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compilation error in archiver/pax under cygwin #121

Closed
wants to merge 0 commits into from

Conversation

kflu
Copy link

@kflu kflu commented Apr 15, 2023

Building archiver/pax under cygwin would give error:

/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld:
ar_subs.o:ar_subs.c:(.bss+0x24d8): multiple definition of `chdname';
ar_io.o:ar_io.c:(.bss+0x20): first defined here
...

Full error log: https://ttm.sh/WPc.txt

The patch basically changed the initialization of global variable
chdname from extern.h to options.c

netbsd-srcmastr pushed a commit that referenced this pull request Jul 10, 2023
Features/Improvements ✨
 - Append suffix to download filenames to avoid overwrites (#35)
 - Support uploading image attachments from clipboard (#36)
 - Support leaving rooms (#45)
 - Support hiding server part of username in message scrollback (#71)
 - Restore opened tabs and windows upon restart (#72)
 - Interpret newlines as line breaks when converting Markdown to HTML (#74)
 - Indicate when you're editing a message (#75)
 - Support configuring which program :open runs (#95)
 - Support sending and completing Emoji shortcodes in the message bar (#100)
 - Indicate number of members in room (#110)
 - Show errors fetching space hierarchy when list is empty (#113)
 - Show Git SHA information when printing version information (#120)
 - Reduce number of Tokio workers (#129)
 - Indicate when there are new messages below scrollback viewport (#131)

Bug Fixes 🐞
 - Tab completion panics for unrecognized commands (#81)
 - Fix error message for undefined download directory (#87)
 - Gracefully handle verification events that are unknown locally (#90)
 - Use terminal window focus to determine when a message has actually been seen
   (#94)
 - ChatStore::set_receipts locks up app for bad connections (#99)
 - Need fallback behaviour when dirs::download_dir returns None (#118)
 - Code blocks get rendered without line breaks (#122)
 - Remove trailing newlines in body (#125)
 - Profile session token should only be readable by the user (#130)
 - Handle sync failure after successful password entry (#133)

Documentation/README Updates 📚
 - Add manual pages (#88)
 - Mention Minimum Supported Rust Version in README (#115)
 - Link to AUR pkg in README (#121)

Meta 👷‍♀️
 - Update locked Cargo dependencies (#70)
 - Add Nix flake (#73)
 - Add FUNDING.yml to project (#77)
 - Upload artifacts built in GitHub Actions (#105)
 - Cache build directory in GitHub Actions (#107)
 - Replace GitHub actions using deprecated features (#114)
 - Fix Nix flake build on Darwin (#117)
@kflu kflu closed this Jul 12, 2023
@kflu kflu force-pushed the trunk branch 2 times, most recently from 6d42ce1 to 9a4f6ce Compare July 12, 2023 22:34
netbsd-srcmastr pushed a commit that referenced this pull request Aug 3, 2023
Upstream changes:
## 2023 07 01

    - Issue git #121. Added parameters -xbt, or --extended-block-tightness,
      and -xbtl=s, or --extended-block-tightness-list=s, to allow
      certain small code blocks to have internal spacing controlled by
      -bbt=n rather than -bt=n. The man pages have details.

    - Issue git #118. A warning will be issued if a duplicate format-skipping
      starting marker is seen within a format-skipping section. The same
      applies to duplicate code-skipping starting markers within code-skipping
      sections.

    - Issue git #116. A new flag --valign-if-unless, -viu, was added to
      allow postfix 'unless' terms to align with postfix 'if' terms.  The
      default remains not to do this.

    - Fixed git #115. In the two most recent CPAN releases, when the
      Perl::Tidy module was called with the source pointing to a file,
      but no destination specified, the output went to the standard
      output instead of to a file with extension ``.tdy``, as it should
      have.  This has been fixed.

    - Fixed git #110, add missing documentation for new options
      -cpb and -bfvt=n. These work in version 20230309 but the pod
      documentation was missing and has been added.

    - Fixed an undefined reference message when running with
      --dump-block-summary on a file without any subs or other
      selected block types.

    - Add parameter -ipc, or --ignore-perlcritic-comments.  Perltidy, by
      default, will look for side comments beginning with ``## no critic`` and
      ignore their lengths when making line break decisions, even if the user
      has not set ``-iscl``.  The reason is that an unwanted line break can
      make these special comments ineffective in controlling ``perlcritic``.
      The parameter -ipc can be set if, for some reason, this is not wanted.

    - Some minor issues with continuation indentation have been fixed.
      Most scripts will remain unchanged.  The main change is that block
      comments which occur just before a closing brace, bracket or paren
      now have an indentation which is independent of the existance of
      an optional comma or semicolon.  Previously, adding or deleting
      an optional trailing comma could cause their indentation to jump.
      Also, indentation of comments within ternary statements has been
      improved. For additonal details see:

      https://github.com/perltidy/perltidy/blob/master/docs/ci_update.md

    - This version was stress-tested for many cpu hours with random
      input parameters. No failures to converge, internal fault checks,
      undefined variable references or other irregularities were seen.

    - This version runs several percent faster than the previous release
      on large files.
netbsd-srcmastr pushed a commit that referenced this pull request Aug 17, 2023
What's Changed
    [Aeruginous] Create CHANGELOG Fragment by @github-actions in #110
    Chore: Bump clap from 4.3.11 to 4.3.14 by @dependabot in #113
    Chore: Bump sqlx from 0.7.0 to 0.7.1 by @dependabot in #112
    Chore: Bump thiserror from 1.0.40 to 1.0.43 by @dependabot in #111
    Chore: Bump anyhow from 1.0.71 to 1.0.72 by @dependabot in #115
    Chore: Bump scopeguard from 1.1.0 to 1.2.0 by @dependabot in #114
    Fix: Release GitHub Action by @AmmarAbouZor in #116
    [Aeruginous] Create CHANGELOG Fragment by @github-actions in #117
    Changed: Optimization for app main loop by @AmmarAbouZor in #118
    [Aeruginous] Create CHANGELOG Fragment by @github-actions in #119
    Chore: Bump async-trait from 0.1.69 to 0.1.72 by @dependabot in #120
    Chore: Bump thiserror from 1.0.43 to 1.0.44 by @dependabot in #121
    Chore: Bump serde_json from 1.0.100 to 1.0.104 by @dependabot in #126
    Chore: Bump clap from 4.3.14 to 4.3.19 by @dependabot in #123
    Chore: Bump serde from 1.0.171 to 1.0.178 by @dependabot in #125
    Chore: Bump serde from 1.0.178 to 1.0.180 by @dependabot in #127
    Chore: Bump serde from 1.0.180 to 1.0.183 by @dependabot in #129
    Chore: Bump Swatinem/rust-cache from 2.5.1 to 2.6.0 by @dependabot in #128
    Fix: Fix SQLite connection string path by @AmmarAbouZor in #137
    [Aeruginous] Create CHANGELOG Fragment by @github-actions in #138
    Chore: Bump tokio from 1.29.1 to 1.31.0 by @dependabot in #136
    Chore: Bump async-trait from 0.1.72 to 0.1.73 by @dependabot in #135
    Chore: Bump Swatinem/rust-cache from 2.6.0 to 2.6.1 by @dependabot in #132
    Chore: Bump log from 0.4.19 to 0.4.20 by @dependabot in #134
    Chore: Bump clap from 4.3.19 to 4.3.21 by @dependabot in #133
    [Aeruginous] Assemble CHANGELOG by @github-actions in #139
netbsd-srcmastr pushed a commit that referenced this pull request Aug 25, 2023
    cargo repository URL by @Sighery in #97
    fix: escaped newline immediately after a char, resolves #100 by @ahlinc in #102
    Fixed CRLF behavior for tests, run tests on all platforms in GitHub CI by @ahelwer in #106
    Support for 'select' loops by @mjambon in #111
    Add support for 'until' loops by @mjambon in #112
    Handle words containing bare '#' by @oxalica in #109
    adding zsh expansion flags by @ryaminal in #115
    Update CI by @verhovsky in #131
    Update Cargo.toml by @nokome in #117
    Rename ansii_c_string and string_expansion by @verhovsky in #121
    rust: enables highlights query by @Dav1dde in #132
    Swift Package Manager by @lukepistrol in #124
    Fix scanning of heredoc_body to allow empty bodies by @jaopaulolc in #137
    [fix] Here-documents: parse a “real” shell word (or close enough) after << by @domq in #142
    Parse Bash's tests by @verhovsky in #135
    Fix CI by @verhovsky in #145
    Support file descriptors for here docs/strings by @verhovsky in #156
    Support optional opening paren in case by @verhovsky in #157
    Highlight "select" and "until" as keywords by @verhovsky in #168
    Undo misguided package.json changes by @verhovsky in #173
    Restore prebuild dependencies by @verhovsky in #174
    feat: rewrite the scanner in C by @amaanq in #179
    fix: make helper functions static to avoid compilation conflicts with other parsers by @amaanq in #182
    Fixes by @amaanq in #186
    fix: negated variable assignments in if statements by @kelly-lin in #183
    Fixes by @amaanq in #187
netbsd-srcmastr pushed a commit that referenced this pull request Aug 31, 2023
    cargo repository URL by @Sighery in #97
    fix: escaped newline immediately after a char, resolves #100 by @ahlinc in #102
    Fixed CRLF behavior for tests, run tests on all platforms in GitHub CI by @ahelwer in #106
    Support for 'select' loops by @mjambon in #111
    Add support for 'until' loops by @mjambon in #112
    Handle words containing bare '#' by @oxalica in #109
    adding zsh expansion flags by @ryaminal in #115
    Update CI by @verhovsky in #131
    Update Cargo.toml by @nokome in #117
    Rename ansii_c_string and string_expansion by @verhovsky in #121
    rust: enables highlights query by @Dav1dde in #132
    Swift Package Manager by @lukepistrol in #124
    Fix scanning of heredoc_body to allow empty bodies by @jaopaulolc in #137
    [fix] Here-documents: parse a “real” shell word (or close enough) after << by @domq in #142
    Parse Bash's tests by @verhovsky in #135
    Fix CI by @verhovsky in #145
    Support file descriptors for here docs/strings by @verhovsky in #156
    Support optional opening paren in case by @verhovsky in #157
    Highlight "select" and "until" as keywords by @verhovsky in #168
    Undo misguided package.json changes by @verhovsky in #173
    Restore prebuild dependencies by @verhovsky in #174
    feat: rewrite the scanner in C by @amaanq in #179
    fix: make helper functions static to avoid compilation conflicts with other parsers by @amaanq in #182
    Fixes by @amaanq in #186
    fix: negated variable assignments in if statements by @kelly-lin in #183
    Fixes by @amaanq in #187
netbsd-srcmastr pushed a commit that referenced this pull request Oct 22, 2023
This is the biggest update ever, with 36 new features, 24 bug fixes,
and 3 performance improvements.

Thank you to every contributor for making Yazi better and better!
What's Changed

    feat: add Mintty (Git Bash) image preview support by @sxyazi in #103
    refactor: use Url instead of PathBuf by @sxyazi in #107
    fix: mime of javascript by @XYenon in #106
    perf: load large folders in chunks by @sxyazi in #117
    fix: set cursor block after closing input prompt from insert mode
         by @auvred in #109
    fix: doesn't redirect the stderr of the clipboard command to null
         by @sxyazi in #119
    feat: suspend process (Ctrl-Z) by @sxyazi in #120
    fix: notification of file changes in linked directories by @sxyazi in #121
    feat: file size sorting under the simplified file system by @sxyazi in #123
    fix: show_hidden not properly applied to hovered folder by @sxyazi in #124
    fix: recognize symlink directories as files by @sxyazi in #125
    fix: respect symlink paths without canonicalizing them by @sxyazi in #126
    feat: make Input streamable by @sxyazi in #127
    perf: doesn't wait for the process of killing by @sxyazi in #128
    feat: find by @sxyazi in #104
    feat: tab-specific sorting by @sxyazi in #131
    feat: new V, D, C keybinding for Input component by @sxyazi in #139
    fix: swap description for search commands by @knutwalker in #141
    fix: image position calculation by @sxyazi in #144
    feat: support for image preview within tmux by @sxyazi in #147
    feat: show keywords when in search mode by @sxyazi in #152
    feat: fallback to built-in highlighting if jq is not installed
          by @ndtoan96 in #151
    feat: make the glob expr case insensitive by default, and prepend \s to
          make it sensitive by @sxyazi in #156
    fix: check relative path on expand_path by @sxyazi in #165
    feat: support for FreeBSD permission type by @yggdr in #169
    feat: multiple openers for a single rule by @Linus789 in #154
    fix: leave upwards only if an IO error occurs in current by @sxyazi in #172
    docs: add archlinuxcn installation guide by @Integral-Tech in #176
    fix: image preview not working on Zellij by @Eric-Song-Nop in #181
    feat: make trash optional by @sxyazi in #178
    fix: inconsistent Shift key behavior on Unix and Windows
         by @ndtoan96 in #174
    feat: new force option added for the remove command, which does not show
          the confirmation dialog on trashing/deleting by @sxyazi in #173
    fix: typo of LICENSE file by @conradojordan in #201
    feat: add flake.nix by @XYenon in #205
    feat: include ignored files on search when hidden files are shown
          by @PhotonQuantum in #212
    feat: new orphan option for opener rules, to keep the process running even
          when Yazi exited by @sxyazi in #216
    feat: scroll half/full page with arrow percentage supported, and new
          Vi-like <C-u>, <C-d>, <C-b>, and <C-f> keybindings added by
          @TD-Sky in #213
    feat: highlight matching words on finding by @PhotonQuantum in #211
    feat: add BackTab support by @sxyazi in #209
    fix: set stdio to null when orphan is true by @sxyazi in #229
    feat: new force option for creating and renaming by @sxyazi in #208
    feat: loop through to find by @ndtoan96 in #234
    feat: backward/forward by @ndtoan96 in #230
    perf: reimplement optimized natural sorting algorithm, speed up ~6 times
          for case-insensitive sorting by @sxyazi in #237
    chore: changing the finding key to n/N to keep with Vim's conventions
           by @sxyazi in #238
    feat: added new options to the `find' command for smart-case/
          case-insensitive finds by @ndtoan96 in #240
    feat: add new --no-cwd-file option to quit command for flexible cwd-file
          setting by @XOR-op in #245
    fix: avoid adding non-regular paths to backstack by @ndtoan96 in #249
    fix: support RGBA16 images by @sxyazi in #250
    feat: support trash for NetBSD by @sxyazi in #251
    feat: support environment variable in cd path by @ndtoan96 in #241
    feat: new theme system by @sxyazi in #161
    fix: cannot cd if there is whitespace in path by @ndtoan96 in #255
    fix: add application/x-wine-extension-ini to text mime by @ndtoan96 in #259
    fix: collect and fix all hard coded themes and color
         by @Eric-Song-Nop in #221
    fix: some colors not readable in light mode by @sxyazi in #264
    feat: better file hover state by @sxyazi in #269
    refactor: split commands into separate files by @sxyazi in #272
    feat: cancel selected items automatically on entering, leaving, copying, or
          cutting by @sxyazi in #273
    feat: add a new Bar component, and make border styles customizable
          by @sxyazi in #278
    fix: adapt another $TERM value of foot-extra for foot by @sxyazi in #277
    refactor: simplify building conditions by @sxyazi in #280
    chore: add git rev to nix pkg version by @XYenon in #206
    feat: new Manager component for better style extensions by @sxyazi in #284
    feat: cross-system opener rule support by @sxyazi in #289
    fix: delegate the SIGINT signal of processes with orphan=true to their
    parent by @sxyazi in #290
    feat: line mode by @sxyazi in #291
    feat: shell completions & auto releasing by @TD-Sky in #282
netbsd-srcmastr pushed a commit that referenced this pull request Nov 29, 2023
1.10.14 (2023-11-26)

Changelog:

* PR #112: Put glue and pieces parameters to implode in correct order for
  PHP 7.4+
* PR #121: Fix PHP bug 81653: Typo in install-pear-nozlib.phar
* PR #122: add %S EXPECTF capability
* PR #124: Fix: Creation of dynamic property PEAR_Error::$callback is
  deprecated
* PR #125: Fixed extension loaded check for pecl binaries
* PR #126: Remove -n option from pecl.bat for shared extensions
* PR #127: fix Using ${var} in strings is deprecated
* PR #128: fix lingering license references to PHP license
* PR #129: Exclude tests from composer classmap
* PR #131: fix private lastError name
netbsd-srcmastr pushed a commit that referenced this pull request Dec 7, 2023
- **2023-11-30 v0.47 (in development)**:
    - fixed issue #142: isOleFile has a new data parameter to handle files in memory properly
    - fixed issue #156: write_sect now correctly detects when data is larger than the sector size
    - use GitHub actions for testing and Codecov for coverage, added python 3.8 to 3.12 (PR #157 by @hugovk)
    - added VT_VECTOR support for properties (PR #135 by Maciej Kotowicz @mak)
    - olefile is now distributed as a universal wheel package in PyPI (PR #130 by @hugovk)
    - olefile will not close a file handle if it was provided by the caller
      (PR #121 by Christian Herdtweck, issue #120)
    - added exceptions OleFileError and NotOleFileError to replace IOError (PR #110 by Ken Peterson @TheElementalOfCreation)
    - added get_userdefined_properties to parse user-defined properties (PR #114 by @DissectMalware)
netbsd-srcmastr pushed a commit that referenced this pull request Jun 5, 2024
From upstream's changelog:


AWStats 7.9 Latest

Add Windows 11 and Android 13 operating systems
Update Hungarian translation and migrate it to UTF-8.
fix cross site scripting
Replace hard coded text with $Message ( Monthly, Daily, Hourly )
Android 11 + 12, MacOS 11 ( Big Sur ) + 12 ( Monterey )
Catch up german translations
Change the substitution that replaces newlines with BR elements so
that the syntax works for both HTML and XHTML.
Added a few robots and 1 phone browser. Also corrected some errors in
devlop robots.pm
Only look for configuration in dedicated awstats directories
Unwrap SRS e-mail addresses
Fixes #195/CVE-2020-35176
As geoip2_country doesn't have AddHTMLGraph_geoip2_country, it
should only generate subpage for geoip2_city.
added support for HaikuOS and Safari based WebPositive browser
Adding missing td-tag opening
Tajik Language Support


AWStats 7.8

NEW Add SelectBox for DatabaseBreak Mode: month,day and hour.
Update http status codes
Add more file types
Update README.md
Fix geoip2 formatting problem
corner case 99
Fix some incoherent entries in search_engines.pm
Fix geoip2 plugin on windows by renaming it
Update robots.pm with PR118 data. Add:
- PiplBot bot
- um-IC & um-LN bot
- arcemedia
- bit.ly
- bidswitchbot
- bnf.fr_bot
- contxbot
- flamingo
- getintent (variant)
- laserlikebot
- mappy
- mojeek (variant)
- serendeputy
- trendiction
- yak (linkinfluence)
- zoominfobot
Fixes #104
Change markdown to better readability
Update Copyright year
Change to https links
Fix links for perl download
NEW add %time6 tag in log format to support some IIS log format
geoip2: Fix table formatting error. Missing "" item tag.
Changes to robots.pm
Add support for macOS DMG and PKG files
Fix browser detection with HTTP 206 status code
Support for macOS 10.13/10.14 + improved image compression of icons
Fix use the 5 top hits as base 100 for graph to show the top 5 hits.
Clean up geoip2 and geoip2 city modules
* Correctly convert dns names to ip4 and ip6 address using getaddrinfo
(fixes #120, #121, obsoletes #115)
* Only lookup if the IP is of type public (fixes #122)
and catch further lookup errors (obsoletes #123)
* Store and display the GeoIP City output HTML escaped (fixes #127)
* Code to perform and cache the actual lookup is consolidated
* General code improvement and readability
Losslessly reduced size of PNG images by about 33% using zopfli,
pngout and oxipng. Also added os icons for macOS 10.13 and 10.14.
Add Robot: The Knowledge AI
Fix Error: Not same number of records of RobotsSearchIDOrder_listx
Robots, Search Engine and Web Page Tracking Modifications
Optimize OptimizeArray
Added UptimeRobot https://uptimerobot.com/
Fix a few grammar errors in the model config
Ignore search phrases longer than 80 characters.
Fix 404 detail page not updating
Decode RFC 3986 "unreserved chars" in URLs.
Fix #80
Disable nested includes warnings for Perl > 5.6.
Update domains.pm
Fix two invalid entries in search_engines.pm
Format Tera Bytes
Fix "Illegal division by zero" error.
Fix #79
Improving error handling in awstats_buildstaticpages.pl
FIX #90
Exclude private IP addresses since GeoIP2::Reader doesn't support them
Ignore search phrases longer than 80 characters.
Only purge data for the saved section.
Make city plugin more functional
Fix issue with ShowHost section when address is resolved.
Initial implementation of GeoIP2 City lookup.
Fix a few issues with Country lookup.
Initial implementation. Looksup only Country code for IPv4 and IPv6
Update hebrew file
Quite a few additions and modifications. Especially yahoo detection.
Added device pixel ratio ( dpr ) to awstats_misc_tracker.js.
added 37 new robots to robots.pm file using v 7.7 robots.pm file as base file.
Move oBot entry lower as to not incorrectly get picked for other *obot robots.
Decode RFC 3986 "unreserved chars" in URLs. This makes awstats
treat "/foo" and "/%66%6f%6f" as equivalent.
Missing Sint Maarten flag
Wrong label cf. https://dev.maxmind.com/geoip/legacy/codes/iso3166/
Fix Issue #76 - country name not correct
Fix utf bom files
Fix another vulnerability reported by cPanel Security Team (can
execute arbitraty code)
Add more tests


PKG_SYSCONFDIR fixes
pkglint cleanup
Remove trivial MESSAGE
netbsd-srcmastr pushed a commit that referenced this pull request Sep 9, 2024
Features
 - Added alpha property to set command, see #218 (@kanielrkirby)
 - Add support for HSV, see #169 (@jameshurst)
 - Added support for parsing LCh colors, see #2 and #167 (@MForster)
 - Added hyprpicker as --color-picker, see #186 (@mrusme)
 - Implement Color::from_u32 for the rgba, see #202 (@irevoire)

Bugfixes
 - pastel pick does not display all colors in some terminals, see #121 and #168 (@Divoolej)
 - Fix lines in kitty terminal with text_fg_override_threshold set, see #197 (@joveian)
netbsd-srcmastr pushed a commit that referenced this pull request Oct 6, 2024
Highlights
 - Added support for 32X emulation (with a caveat regarding performance)
 - Significant audio quality improvements for Genesis / Mega Drive and SNES
 - Support for loading directly from .zip and .7z files
 - Lots of Genesis / Mega Drive bugfixes

32X Notes
 - All released 32X games plus Doom 32X Resurrection should be playable except for the 6 FMV games that require the Sega CD 32X combo
     - Doom 32X Resurrection features that require Sega CD do not currently work (CD-DA music, offloading some audio processing to the Sega CD 68000)
 - SH-2 CPU cache and basic SH-2 memory access timings are emulated, so overall SH-2 speed should be moderately accurate (though still faster than actual hardware in some cases)
 - SH-2 emulation is currently not optimized well - full-speed 32X emulation requires a CPU with decent single-core performance, and fast-forward speed will be very limited
     - For a comparison point, the Steam Deck CPU barely runs 32X at full speed from my testing
     - This will likely improve in a future release - the current implementation is pure interpreter because that was easiest to implement and it (surprisingly) still runs at full speed with a fast enough host CPU

New Features
 - Added support for loading directly from .zip and .7z compressed archives for every console except Sega CD (#91)
     - Archives containing multiple images are only partially supported; in this case the emulator will always load the first file with a recognized file extension
 - (SNES) Added an audio enhancement option for cubic Hermite interpolation between decoded ADPCM samples, which usually makes the audio sound sharper and less muffled
     - The difference is most noticeable in games that use low sample rate audio, such as the Donkey Kong Country trilogy
     - This is off by default because it pretty radically changes the sound in some games
 - (Genesis) Added an option to have no controller plugged into one or both of the controller ports, for games that behave differently based on the presence or absence of a controller (#113)
 - (NES) Added support for the UNROM 512 mapper (iNES mapper 30), a homebrew mapper used by a number of games including Black Box Challenge and Battle Kid 2 (#73 / #86)
     - This mapper unusually supports flash memory mapped as PRG "ROM"; for the games that have this (e.g. Black Box Challenge), it's emulated by persisting the entire current contents of PRG ROM to the save file whenever the game modifies itself
 - (GB) Added partial support for the Hudson HuC-3 mapper, used by Robopon and a few Japan-only games (#89)
     - "Partial" because the builtin speaker, the IR sensor, and parts of the event/alarm functionality are not emulated
 - GUI: Added a new "Open Using" menu option to open a file using a specific emulator core, rather than always choosing the core based on file extension (#121)
 - GUI: Added an option to explicitly set the UI theme to light or dark rather than always using the system default

Improvements
 - (Genesis) YM2612 DAC crossover distortion (aka the "ladder effect") is now emulated, which significantly improves music accuracy in a number of games; this is extremely noticeable in Streets of Rage, Streets of Rage 2, and After Burner II, among others
     - There is also a new option to disable ladder effect emulation, since the effect was less pronounced on later console models (and also because I think it's neat to hear how it affects the sound by toggling a checkbox)
 - (SMS/GG/Genesis) Replaced the PSG and YM2612 low-pass filters with much more aggressive ones; this should generally improve audio quality, and in some cases will remove erroneous buzzing/popping noises that were present before (e.g. in The Adventures of Batman & Robin) (#108)
 - Improved audio output behavior for all emulator backends, which should significantly reduce the likelihood of audio pops caused by audio buffer underflow
 - GUI: Added help text to most options menus
 - GUI: Improved performance when the main list table is large

Genesis / Mega Drive Fixes
 - Fixed the PSG's noise channel not oscillating when the period is set to 0 (which should behave the same as period of 1); this fixes missing high-frequency noise in Knuckles' Chaotix among other games
 - Fixed a degenerate case for performance when a game repeatedly writes the same value to specific VDP registers during active display, as After Burner Complete does
 - Fixed some 68000 CPU bugs discovered while working on 32X support
     - Implemented line 1010/1111 exception handling for when the 68000 executes an illegal opcode where the highest 4 bits are 1010 or 1111; Zaxxon's Motherbase 2000 depends on this to boot
     - Fixed divide by zero exception handling pushing the wrong PC value onto the stack; After Burner Complete frequently divides by zero and depends on correctly handling the exception
     - Fixed the DIVS instruction finishing way too quickly in some cases where the division overflows a signed 16-bit result but the CPU doesn't detect the overflow early
 - Fixed an off-by-one error in determining whether to set the sprite overflow flag in the VDP status register; this fixes flickering sprite graphics in Alex Kidd in the Enchanted Castle (#125)
     - This was a regression introduced in v0.6.1 as part of the changes to get Overdrive 2's textured cube effect working
 - Adjusted how writes to the controller CTRL registers ($A10009 / $A1000B) affect the controller's TH line; this fixes controls not working properly in Trouble Shooter (#110)
 - Made it possible for games to read the VINT flag in the VDP status register as 1 slightly before the 68000 INT6 interrupt is raised; this fixes Tyrants: Fight Through Time and Ex-Mutants failing to boot (#127)
 - Implemented undocumented behavior regarding how the Z80 BIT instruction sets the S and P/V flags; this fixes missing audio in Ex-Mutants, which relies on this behavior in its audio driver code
 - Implemented approximate emulation of memory refresh delay
     - This is emulated by simply stalling the 68000 for 2 out of every 128 mclk cycles, unless it executes a very long instruction that doesn't access the bus mid-instruction (e.g. multiplication or division)
     - Memory refresh delay is not emulated in 32X mode because it seemed to break audio synchronization between the Genesis and 32X hardware in some games
 - Added SRAM mappings for several games that have SRAM in the cartridge but don't declare it in the cartridge header: NHL 96, Might and Magic, and Might and Magic III (#107 / #116 / #117)
 - Little-endian ROM images are now detected and byteswapped on load; this along with a custom ROM address mapping fixes Triple Play failing to boot (#112)
 - The emulator will now recognize the unconventionial region string "EUROPE" as meaning that the game only supports PAL/EU; this fixes Another World incorrectly defaulting to NTSC/US mode instead of PAL/EU (#122)
 - Unused bits in the Z80 BUSACK register ($A11100) now read approximate open bus instead of 0; this fixes Danny Sullivan's Indy Heat failing to boot (#120)
 - Improved VDP DMA timing; this fixes corrupted graphics in OutRunners (#118)
 - The vertical interrupt is now delayed by one 68000 instruction if a game enables vertical interrupts while a vertical interrupt is pending; this fixes Sesame Street: Counting Cafe failing to boot (#119)
 - The Z80 BUSACK line now changes immediately in response to bus arbiter register writes instead of waiting for the next Z80 instruction time slot; this fixes the Arkagis Revolution demo failing to boot (#123)
 - The emulator will now enable the bank-switching Super Street Fighter 2 mapper if the cartridge header declares the system as "SEGA DOA" in addition to the standard value of "SEGA SSF"; this fixes the Demons of Asteborg demo not working properly (#115)

Other Fixes
 - Fixed save state slots not working properly if the ROM filename contains multiple dots; before this fix, only one slot would ever be used
 - (Sega CD) When a game issues a CDD command while the drive is playing, the drive now continues to read one more sector before it changes behavior in response to the new command; this fixes Radical Rex crashing during the intro (#100)
 - (Sega CD) Writes to PRG RAM by the main CPU and the Z80 are now blocked unless the sub CPU is removed from the bus; this fixes Dungeon Explorer from crashing after the title screen (#104)
 - (Sega CD) The sub CPU is now halted if it accesses word RAM in 2M mode while word RAM is owned by the main CPU, and it remains halted until the main CPU transfers ownership back to the sub CPU. This fixes glitched graphics in Marko's Magic Football (#101)
 - (Sega CD) Various fixes to CDC register and DMA behavior; with this plus all of the above fixes, the emulator now fully passes the mcd-verificator test suite (#105)
 - (NES) The UxROM mapper code (iNES mapper 2) no longer assumes that the cartridge has no PRG RAM; this fixes Alwa's Awakening: The 8-Bit Edition failing to boot (#93)
 - (SNES) Adjusted timing of PPU line rendering to occur 4 mclk cycles later; this fixes Lemmings having a flickering line at the top of the screen during gameplay
     - This worked correctly prior to v0.7.2 - it was broken by the CPU timing adjustment that fixed Rendering Ranger R2 from constantly freezing
 - (GB) Fixed the window X condition incorrectly being able to trigger when WX=255 and fine X scrolling is used (SCX % 8 != 0); this fixes corrupted graphics in Pocket Family GB 2
 - Fixed the emulator crashing if prescale factor is set so high that the upscaled frame size exceeds 8192x8192 in either dimension
netbsd-srcmastr pushed a commit that referenced this pull request Oct 13, 2024
Highlights
 - Added support for 32X emulation (with a caveat regarding performance)
 - Significant audio quality improvements for Genesis / Mega Drive and SNES
 - Support for loading directly from .zip and .7z files
 - Lots of Genesis / Mega Drive bugfixes

32X Notes
 - All released 32X games plus Doom 32X Resurrection should be playable except for the 6 FMV games that require the Sega CD 32X combo
     - Doom 32X Resurrection features that require Sega CD do not currently work (CD-DA music, offloading some audio processing to the Sega CD 68000)
 - SH-2 CPU cache and basic SH-2 memory access timings are emulated, so overall SH-2 speed should be moderately accurate (though still faster than actual hardware in some cases)
 - SH-2 emulation is currently not optimized well - full-speed 32X emulation requires a CPU with decent single-core performance, and fast-forward speed will be very limited
     - For a comparison point, the Steam Deck CPU barely runs 32X at full speed from my testing
     - This will likely improve in a future release - the current implementation is pure interpreter because that was easiest to implement and it (surprisingly) still runs at full speed with a fast
enough host CPU

New Features
 - Added support for loading directly from .zip and .7z compressed archives for every console except Sega CD (#91)
     - Archives containing multiple images are only partially supported; in this case the emulator will always load the first file with a recognized file extension
 - (SNES) Added an audio enhancement option for cubic Hermite interpolation between decoded ADPCM samples, which usually makes the audio sound sharper and less muffled
     - The difference is most noticeable in games that use low sample rate audio, such as the Donkey Kong Country trilogy
     - This is off by default because it pretty radically changes the sound in some games
 - (Genesis) Added an option to have no controller plugged into one or both of the controller ports, for games that behave differently based on the presence or absence of a controller (#113)
 - (NES) Added support for the UNROM 512 mapper (iNES mapper 30), a homebrew mapper used by a number of games including Black Box Challenge and Battle Kid 2 (#73 / #86)
     - This mapper unusually supports flash memory mapped as PRG "ROM"; for the games that have this (e.g. Black Box Challenge), it's emulated by persisting the entire current contents of PRG ROM to
the save file whenever the game modifies itself
 - (GB) Added partial support for the Hudson HuC-3 mapper, used by Robopon and a few Japan-only games (#89)
     - "Partial" because the builtin speaker, the IR sensor, and parts of the event/alarm functionality are not emulated
 - GUI: Added a new "Open Using" menu option to open a file using a specific emulator core, rather than always choosing the core based on file extension (#121)
 - GUI: Added an option to explicitly set the UI theme to light or dark rather than always using the system default

Improvements
 - (Genesis) YM2612 DAC crossover distortion (aka the "ladder effect") is now emulated, which significantly improves music accuracy in a number of games; this is extremely noticeable in Streets of
Rage, Streets of Rage 2, and After Burner II, among others
     - There is also a new option to disable ladder effect emulation, since the effect was less pronounced on later console models (and also because I think it's neat to hear how it affects the sound
by toggling a checkbox)
 - (SMS/GG/Genesis) Replaced the PSG and YM2612 low-pass filters with much more aggressive ones; this should generally improve audio quality, and in some cases will remove erroneous buzzing/popping
noises that were present before (e.g. in The Adventures of Batman & Robin) (#108)
 - Improved audio output behavior for all emulator backends, which should significantly reduce the likelihood of audio pops caused by audio buffer underflow
 - GUI: Added help text to most options menus
 - GUI: Improved performance when the main list table is large

Genesis / Mega Drive Fixes
 - Fixed the PSG's noise channel not oscillating when the period is set to 0 (which should behave the same as period of 1); this fixes missing high-frequency noise in Knuckles' Chaotix among other
games
 - Fixed a degenerate case for performance when a game repeatedly writes the same value to specific VDP registers during active display, as After Burner Complete does
 - Fixed some 68000 CPU bugs discovered while working on 32X support
     - Implemented line 1010/1111 exception handling for when the 68000 executes an illegal opcode where the highest 4 bits are 1010 or 1111; Zaxxon's Motherbase 2000 depends on this to boot
     - Fixed divide by zero exception handling pushing the wrong PC value onto the stack; After Burner Complete frequently divides by zero and depends on correctly handling the exception
     - Fixed the DIVS instruction finishing way too quickly in some cases where the division overflows a signed 16-bit result but the CPU doesn't detect the overflow early
 - Fixed an off-by-one error in determining whether to set the sprite overflow flag in the VDP status register; this fixes flickering sprite graphics in Alex Kidd in the Enchanted Castle (#125)
     - This was a regression introduced in v0.6.1 as part of the changes to get Overdrive 2's textured cube effect working
 - Adjusted how writes to the controller CTRL registers ($A10009 / $A1000B) affect the controller's TH line; this fixes controls not working properly in Trouble Shooter (#110)
 - Made it possible for games to read the VINT flag in the VDP status register as 1 slightly before the 68000 INT6 interrupt is raised; this fixes Tyrants: Fight Through Time and Ex-Mutants failing
to boot (#127)
 - Implemented undocumented behavior regarding how the Z80 BIT instruction sets the S and P/V flags; this fixes missing audio in Ex-Mutants, which relies on this behavior in its audio driver code
 - Implemented approximate emulation of memory refresh delay
     - This is emulated by simply stalling the 68000 for 2 out of every 128 mclk cycles, unless it executes a very long instruction that doesn't access the bus mid-instruction (e.g. multiplication or
division)
     - Memory refresh delay is not emulated in 32X mode because it seemed to break audio synchronization between the Genesis and 32X hardware in some games
 - Added SRAM mappings for several games that have SRAM in the cartridge but don't declare it in the cartridge header: NHL 96, Might and Magic, and Might and Magic III (#107 / #116 / #117)
 - Little-endian ROM images are now detected and byteswapped on load; this along with a custom ROM address mapping fixes Triple Play failing to boot (#112)
 - The emulator will now recognize the unconventionial region string "EUROPE" as meaning that the game only supports PAL/EU; this fixes Another World incorrectly defaulting to NTSC/US mode instead of
PAL/EU (#122)
 - Unused bits in the Z80 BUSACK register ($A11100) now read approximate open bus instead of 0; this fixes Danny Sullivan's Indy Heat failing to boot (#120)
 - Improved VDP DMA timing; this fixes corrupted graphics in OutRunners (#118)
 - The vertical interrupt is now delayed by one 68000 instruction if a game enables vertical interrupts while a vertical interrupt is pending; this fixes Sesame Street: Counting Cafe failing to boot
(#119)
 - The Z80 BUSACK line now changes immediately in response to bus arbiter register writes instead of waiting for the next Z80 instruction time slot; this fixes the Arkagis Revolution demo failing to
boot (#123)
 - The emulator will now enable the bank-switching Super Street Fighter 2 mapper if the cartridge header declares the system as "SEGA DOA" in addition to the standard value of "SEGA SSF"; this fixes
the Demons of Asteborg demo not working properly (#115)

Other Fixes
 - Fixed save state slots not working properly if the ROM filename contains multiple dots; before this fix, only one slot would ever be used
 - (Sega CD) When a game issues a CDD command while the drive is playing, the drive now continues to read one more sector before it changes behavior in response to the new command; this fixes Radical
Rex crashing during the intro (#100)
 - (Sega CD) Writes to PRG RAM by the main CPU and the Z80 are now blocked unless the sub CPU is removed from the bus; this fixes Dungeon Explorer from crashing after the title screen (#104)
 - (Sega CD) The sub CPU is now halted if it accesses word RAM in 2M mode while word RAM is owned by the main CPU, and it remains halted until the main CPU transfers ownership back to the sub CPU.
This fixes glitched graphics in Marko's Magic Football (#101)
 - (Sega CD) Various fixes to CDC register and DMA behavior; with this plus all of the above fixes, the emulator now fully passes the mcd-verificator test suite (#105)
 - (NES) The UxROM mapper code (iNES mapper 2) no longer assumes that the cartridge has no PRG RAM; this fixes Alwa's Awakening: The 8-Bit Edition failing to boot (#93)
 - (SNES) Adjusted timing of PPU line rendering to occur 4 mclk cycles later; this fixes Lemmings having a flickering line at the top of the screen during gameplay
     - This worked correctly prior to v0.7.2 - it was broken by the CPU timing adjustment that fixed Rendering Ranger R2 from constantly freezing
 - (GB) Fixed the window X condition incorrectly being able to trigger when WX=255 and fine X scrolling is used (SCX % 8 != 0); this fixes corrupted graphics in Pocket Family GB 2
 - Fixed the emulator crashing if prescale factor is set so high that the upscaled frame size exceeds 8192x8192 in either dimension
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant