Skip to content

Modern UI ttf - #1

Open
DefKorns wants to merge 100 commits into
developmentfrom
modern-ui-ttf
Open

DefKorns wants to merge 100 commits into
developmentfrom
modern-ui-ttf

Conversation

@DefKorns

Copy link
Copy Markdown
Owner

No description provided.

- Integrated SDL_ttf for advanced text rendering capabilities.
- Modified Texture class to support TTF fonts, allowing for proportional text rendering.
- Implemented functions to measure text width and line height for TTF fonts.
- Updated existing text rendering functions to utilize TTF where applicable.
- Added a mechanism to set the TTF font path, with a fallback for missing fonts.
- Enhanced text truncation logic to accommodate variable-width fonts.
- Updated main application to utilize new TTF rendering features for UI elements.
- Introduced draw_helpers.h with functions for stroke and fill rectangle drawing, including rounded rectangles and lines for a modern UI aesthetic.
- Updated sdl_context.cpp to improve renderer creation with vsync and added a shutdown method for better resource management.
- Modified sdl_context.h to include a shutdown method and a shutdown flag.
- Refined uitheme.h to adjust color schemes and layout constants for the modern UI, including badge and footer configurations.
- Enhanced main.cpp to integrate new drawing functions, streamline command handling, and improve UI rendering logic, including a new method for drawing rows and managing the display of badges.
- Implemented a confirmation dialog for delete actions with improved user feedback and interaction handling.
- Auto-detect L+R vs B+Down (no shoulder buttons) via the console's own
  boardtype file, replacing the old hardcoded default and unused
  GetSpriteSheet.sh output.
- Fix RunCommand's pipe reader relying on poll() alone, which left
  already-buffered lines stuck until unrelated new data arrived.
- Stop polling the controller in RunCommand while a command reads input
  itself, and don't hang the power-off path behind SDL teardown.
- Collapse duplicate slashes in path handling so self-relaunches (e.g.
  after changing language) don't push a stale Back-stack entry pointing
  at themselves.
- Extend mod/uninstall to clean up runtime-generated files hakchi's own
  package tracking never covered (language.cfg, ui_style.cfg, generated
  wifi-restore commands, disabled command files, hibernate_mod).
- Main menu: separator after Reboot, Advanced Options moved after
  Network Options (was between Retroarch and Network).
- advanced_commands/: grouped into Preferences (Language, Button Combo,
  USB Write) → Maintenance (Clear Cache, Module Uninstaller) →
  Diagnostics (Display Temp, Run Top, Benchmark, RA Debugger, Dump File),
  replacing the old add-order numbering.
- README.md: reordered sections/entries to match, and added the missing
  Network Options bullet under Default Options.
RetroArch's per-core config/overrides moved from
.config/retroarch/config to a plain config/ folder in the newer _km
Ozone builds, and the old build's loading-screen swap assets are gone
entirely.

- New ra_vars: detects which layout is installed, exposes $raConfig.
- 7 scripts (backup/restore/delete-overrides/delete-remaps/
  default-settings-all) updated to use $raConfig instead of the old
  hardcoded path.
- New om_retroarch wrapper: hides "Toggle RA and Canoe load screens"
  entirely when the installed build has nothing to toggle, instead of
  showing an option that always fails.
- Replaced stale "install the latest RetroArch 'Neo'" messages, which
  now point at a discontinued build.
@DefKorns DefKorns self-assigned this Sep 11, 2026
Was causing the console to become permanently unresponsive to the
combo after a screenshot (options.flag never cleared, needs a reboot
to recover) - worse than the flicker it was meant to fix. Back to the
original teardown-via-destructor behavior.
- LoadLanguageFromConfig() in localization.cpp replaces the identical
  language.cfg-reading boilerplate duplicated in main.cpp and
  change_combo.cpp.
- ChangeCombo's 4 intro lines now loop over their translation keys,
  matching the existing prompts[] pattern below them.
- ChangeCombo is upx-compressed like mod_uninstall/standby_watchdog -
  same occasional-use profile as options/optiond, which stay uncompressed.
- Untrack the compiled ChangeCombo binary now that its source exists -
  it was only vendored before because there was nothing to build it from.
texture.cpp, gen_splash.cpp and main.cpp each had their own copy of
UTF-8 decoding and font8x8 glyph lookup, so they'd already drifted:
gen_splash.cpp's GlyphFor was missing the Cyrillic range texture.cpp
had, silently falling back to '?' for Cyrillic splash text. Moved both
into shared src/framework/utf8.{h,cpp} and font8x8_lookup.{h,cpp}.
Its rpath was $ORIGIN/.. (mod_uninstall/mod_uninstall -> /etc/options_menu),
but this console's dynamic linker doesn't resolve the ".." component,
so the binary silently failed to launch and left the last options
screen frozen on-screen. Hardcode the rpath to /etc/options_menu
instead - the install location is already fixed throughout this
codebase, so an absolute path costs nothing.
Small pixel-art sprites (om_theme-selector's DIY character previews)
blur under the default linear filter when scaled up a lot to fit the
preview box. Opt-in per command file, same pattern as the other
PREVIEW_IMAGE_* fields.
@kirk42637

kirk42637 commented Oct 7, 2026 •

Copy link
Copy Markdown

Awesome, Thanks for the info boss, I still think this is the best .hmod and just turnt it up to 11 haha! Yo, i'm syncing and testing now,
EDIT ;) BRO! THIS UI is so fresh and clean, Easy to use. Autobleem 2 new UI is very similar, I'm loving it boss, Thanks so much for this, it threw the Dark Zelda theme song onto the NES stock bg theme!

and I got the ScummVm 2026 3.0 core to successfully load on NES Classic! Neither master bios, or ftp, would work? Finally Pattons old ftp video showing a FileZilla method worked! I may link a quick video here Monkey Island 4, Grim Fandango and GTA 3 running, (scummVM will load but not seeing bios for some reason so no run?
PSP In-game saves? Do you know how to back those up?
EDIT, I found PSP saves on USB, hakchi > saves > PSP

The Controller only opened the front port, so a USB pad (exposed by
sntool as a virtual 'Nintendo Clovercon - controllerN') could not open
the menu or navigate any screen, and without a front pad optiond exited
after 10 s. Open every input device named Nintendo Clovercon, keep
waiting until one shows up, rescan once a second for new pads and drop
any pad that goes away, front port included.
gen_splash --loading draws the translated LOADING string straight to the
visible page of /dev/fb0 and slides an Accent segment across a Border
track below it. It detaches right away and keeps animating until the
script that called it exits, so callers need no background job or pid.
Adds the shared LOADING string to every language.
One screen for USB backup/restore plus two new actions: move the saves of
games that are no longer on the console (SRAM/suspend folders and
RetroArch saves/states) to USB:/data/deleted_games_saves, and bring them
back. Lists start with a select-all row, every action asks for
Start + Select, a restore never overwrites a save already on the console,
and CLV-S menu folders are never touched. The panel shows the saves on the
console, in the USB backup, of removed games and moved aside.

Drop the unused SAVED_GAMES_OPTIONS, PRESS_B_EXIT and DELETE_CONFIRM_HINT
strings.
The restore commands folder is empty in the repo, so it never ships in the hmod; create it before listing backups. When no backups are left, remove the empty backup folder and go back to the Network menu instead of opening an empty list.
Files from the 2018 Options Menu predate hakchi's install records, so no uninstall removes them and stale Back/Exit rows and old commands kept showing up. Delete them by name, and uninstall the standalone om-wifi-backup mod, now built into the Options Menu.
The downloader takes --free-label and appends the destination's free
space (USB or NAND) to each progress line. omDownloadAll also removes
fifos left behind by cancelled batches.
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