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

Game port overhaul, Crystal CS423xB and other changes #1470

Merged
merged 25 commits into from Jun 3, 2021

Conversation

Copy link
Member

@richardg867 richardg867 commented Jun 3, 2021

Game port overhaul

  • Add support for multiple game port instances.
    • Only one instance actually responds to the configured joystick, prioritizing any located at the standard I/O range (200-207h)
  • Add game port instantiation to:
    • UMC UM8669F Super I/O
      • Requires MACHINE_GAMEPORT flag, used only on the Shuttle HOT-557 which has a BIOS option but physically lacks the connector.
    • ISAPnP Sound Blasters
      • These Sound Blasters have no jumpers, and therefore the game port is always present on ISAPnP.
    • Crystal CS4236/7/8B (ISAPnP)
    • Ensoniq ES1371 (fixed address through unclaimed PCI cycles)
  • Add support for arbitrary game port I/O address decode lengths (8 normally, 6 for Crystal CS4237/8B, 1 for PS/1)
  • Add generic ISAPnP game port, instantiated if a joystick is enabled but none of the devices above are present.
    • PS/1 machines still get the fixed single-address game port at 201h they need.

Crystal CS4236B sound card

  • Add CS4236 internal codec to the AD1848 WSS codec emulation
  • Add CS4236B (exposed), CS4237B (hidden) and CS4238B (hidden) cards
  • Tested OSes: Windows 98SE (built-in VxD), Windows 2000/XP (built-in WDM), Linux 2.4/2.6/4.19. Did not work properly on Linux 3.16 (ALSA assertion failed on some applications) due to a potential userspace regression with alsa-lib 1.0.28.

Other

  • Change PCI TRC to reset all devices, and therefore call reset handlers for ISA devices
    • LM78 hardware monitors also benefit from this
  • Change ISAPnP to accomodate the Crystal CS4236B:
    • Dynamic ROM updates (preserving logical device configuration)
    • Invalid ROMs no longer fatal
    • Don't change a card's PnP state on enable/disable if the flag hasn't changed
  • Change Sound Blaster 16/32/AWE32 PnP IDs (there were many...)
  • Fix ASUS P3V133 by changing a default GPO bit on the AS99127F
  • Fix quaternary IDE PnP I/O address ranges
  • Add a comment confirming the P2B-LS onboard SCSI and LAN slot numbers (props to computerguy08 on Discord)
  • Remove EBGA368 due to poor research (CPUs are Samuel 2 and newer only)

Watch for potential regressions on

  • Windows Sound System: the CS4236 required a lot of extensions to the AD1848 codec code
  • Soft reset on PCI machines: ISA devices are now reset on TRC as well
  • Game port joysticks: there have been changes on where the joystick will respond depending on whether or not you have a PnP sound card

richardg867 added 25 commits Jun 3, 2021
…or bad resource data; only change state on enable/disable if a change occurred.
@OBattler OBattler merged commit 2f761da into 86Box:master Jun 3, 2021
21 checks passed
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.

None yet

2 participants