Conversation
- P0: Restore MIDI background music on iOS by bundling FreePats GM instrument set and configuring SDL2_mixer Timidity backend via Mix_SetTimidityCfg(). Handle lifecycle background/foreground audio pause and resume. - P1: Add native iOS haptic feedback (UIImpactFeedbackGenerator) for flipper press, plunger release, and accelerometer tilt nudge. - P2: Add Haptics option toggle and enable Music by default in settings and mobile popup menu. - Update asset extraction script to fetch FreePats sound set.
…and mobile menu controls - Add touch nudge zones on upper-left and upper-right table areas as fallback for devices without accelerometer / simulator. - Add High Scores viewer button to mobile popup menu. - Add player count selection (1-4 players) to mobile menu. - Add Demo Mode toggle to mobile menu. - Add Sound and Music volume sliders to mobile menu. - Add Language selection cycling to mobile menu. - Update README and iOS documentation.
…emo mode - Clean up orphaned plunger timer in TDemo::Message(Reset). - Increase TPlunger PullbackDelay from 25ms to 150ms to ensure collision impulse transfers reliably across modern frame rates. - Trigger demo plunger launch sequence when ball is fed or idle in plunger chute during demo mode.
… full width by default - Restore PullbackDelay = 0.025f for smooth and responsive manual hold pullback. - Separate ReleasedTimer duration (0.08s) from PullbackDelay. - Default Touch Nudge to off so upper 28% remains full-width plunger by default.
…ollisions - Add UIImpactFeedbackStyleSoft feedback generator for ball bounces. - Trigger BallBounce in maths::basic_collision with intensity scaled by collision speed (threshold >= 0.3). - Include 45ms rate limiter to prevent buzzing when rolling against rails.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR resolves key mobile gaps and enhances the iOS port with:
Changes
1. MIDI Background Music
game_resources/timidity/and configuredtimidity.cfg.Mix_SetTimidityCfginmidi.cppon game launch before tracks load.extract_assets.pyto download the FreePats sound set alongside Microsoft game data.2. Native iOS Haptic Feedback
Platform/iOS/Haptics.{h,mm}utilizingUIImpactFeedbackGeneratorwith pre-warming (prepare()).UIImpactFeedbackStyleLight).UIImpactFeedbackStyleMedium).UIImpactFeedbackStyleMedium).UIImpactFeedbackStyleSoft) dynamically scaled to collision impact velocity with a 45ms throttle against rail buzzing.3. Mobile Menu & Controls Enhancements
4. Build & Resource Fixes
extract_assets.py.CMakeModules/iOS.cmaketo useCMAKE_SOURCE_DIRfor bundle resources.README.mdandPlatform/iOS/README-iOS.md).Testing