Skip to content

Conversation

@jcarr71
Copy link
Contributor

@jcarr71 jcarr71 commented Dec 11, 2025

Summary

This PR addresses critical compilation failures and introduces standardization improvements:

Changes

  1. MSVC C89 Compliance Refactoring (libretro.c)

    • Moved all variable declarations to function/block starts to fix Windows MSVC compilation
    • Fixed errors in: load_controller_base(), load_banner(), load_overlay_for_rom(), render_multi_screen()
    • Resolves 100+ C2143 "syntax error" and C2065 "undeclared identifier" errors from buildbot
  2. iOS Thread-Local Storage Fix (stb_image_impl.c)

    • Disabled STBI_THREAD_LOCAL on Apple platforms for armv7 iOS 9 compatibility
    • Fixes thread-local storage compilation errors on iOS builds
  3. Lowercase Naming Standardization

    • Updated all "FreeIntv" references to "freeintv" throughout codebase
    • Files modified: Makefile, jni/Android.mk, FreeIntv_libretro.info, README.md, USER_GUIDE.md, LICENSE, ISSUE_TEMPLATE.md
    • Ensures consistent binary naming across all platforms
  4. Core Options Enhancement (libretro_core_options.h)

    • Added "(Restart Required)" to multiscreen overlay option title
    • Added "Requires mouse/touchscreen input" subtitle
    • Enhanced description to clarify restart and input requirements

Testing

  • Windows MinGW build: ✓ Successful (freeintv_libretro.dll 610 KB)
  • C89 compliance verified with MSVC compiler standards
  • iOS thread-local storage fix scoped to Apple platforms only

Impact

Resolves buildbot failures across multiple platforms:

  • Windows MSVC compilation (was: 100+ errors, now: clean)
  • iOS armv7 build (was: thread-local storage error, now: fixed)
  • Android/Linux builds continue to work with improved naming consistency

jcarr71 and others added 30 commits October 28, 2025 20:29
This commit introduces the implementation of stb_image functions in a new source file, stb_image_impl.c. This file includes the necessary definitions to enable the functionality provided by the stb_image library. Only one C file should define STB_IMAGE_IMPLEMENTATION to avoid multiple definitions.
- Added comprehensive technical overview and visual reference documentation for the file browser feature.
- Added support for various platforms, ensuring consistent behavior across Windows, Linux, macOS, Android, Switch, and Vita.
- Included error handling strategies and performance considerations for efficient operation.
- Updated build configurations to include new source files for different architectures (arm64-v8a, armeabi-v7a, riscv64, x86, x86_64).
- Created dependency files for various source files including cart.c, controller.c, cp1610.c, and others.
- Updated dependencies for libretro-common components such as compat_posix_string.c, compat_snprintf.c, and file_path.c.
- Included necessary headers for each source file to ensure proper compilation.
- Enhanced project structure by organizing object files and their dependencies for better build management.
Added images and updated contributors section in README.
Added Ko-fi username for funding support.
…for change to core option from separate core
jcarr71 and others added 22 commits November 24, 2025 20:23
…splay name, supported extensions, and description
- Implement side-by-side dual-screen rendering (1074×600 workspace)
- Add touchscreen hotspot input detection for 12 keypad buttons
- Support ROM-specific PNG overlays (370×600 pixels)
- Add cross-platform input handling (Android, Windows, Linux)
- Include screen swap functionality
- Update documentation with setup and usage instructions
- Update core metadata and info file
- Remove debug logging infrastructure
- Maintain full backward compatibility
…erlays

Add Dual-Screen Touchscreen and Overlay Support to FreeIntv Core
…ced onscreen interactive keypad overlays and improved versioning
…ibility

Android.mk LOCAL_MODULE was changed to 'freeintv' but buildbot expects 'libretro.so'.
Reverting to 'retro' (last successful build at PR libretro#89) to match buildbot expectations.
This produces libretro.so as expected by the build system.
Removed duplicate 'unsigned int util_bg_color' declaration at line 378
which conflicted with 'unsigned int utility_bg_color' at line 401.
This was causing undeclared variable errors in PS2 builds.
Added missing declarations in render_multi_screen():
- overlay_pixel_val, pixel, base_pixel
- inv_alpha, base_r/g/b, bg_r/g/b
- ctrl_base_x_offset, overlay_x_offset, ctrl_x
- r, g, b, existing_r/g/b
- offset, corner_cut, border_colors array
- util_border_x1/x2/y1/y2, hotspot_x_adjust, highlight_color
- Changed utility_bg_color from int to unsigned int
- Fixed util_bg_color references to use utility_bg_color
Changed 'int hotspot_x_adjust = ...' to 'hotspot_x_adjust = ...' at line 694
since the variable is already declared at the function start (line 406).
C89 does not allow redeclaration within the same scope.
@LibretroAdmin LibretroAdmin merged commit df5a531 into libretro:master Dec 26, 2025
1 check 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.

2 participants