• exec/load/syncretro_lib.js syncretro_lobby.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jul 12 05:11:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c7f8c479d1bfafc0bd49accc
    Modified Files:
    exec/load/syncretro_lib.js syncretro_lobby.js
    Log Message:
    syncretro: strip cataloging tags from the titles, and page with the nav keys

    The NES sets are named to the No-Intro/GoodNES convention, which staples cataloging tags onto the filename -- "Super Mario Bros. (World).nes", "Castlevania (USA) (Rev 1).nes", "Excitebike (U) [!].nes". The lobby drew
    them verbatim, so every line carried noise the player did not ask for.

    The tags now come off the displayed title. They are NOT discarded, because
    they are the only thing telling two otherwise-identical entries apart:
    "Contra (USA)" and "Contra (Europe)" are different dumps (NTSC vs a 50 Hz
    PAL conversion), and the variant collapse -- which keys on title, year and publisher and HIDES the losers -- would have folded them onto one key and silently dropped one from the picker. So a tag is parsed out of the title,
    kept on the entry, made part of the collapse key, and put back on screen
    only for the entries that would otherwise render identically.

    A tag is recognized by CONTENT, not position: known region words, language codes, GoodNES letter codes, and status/revision words, each alone or in a comma list. Anything else in a trailing parenthetical is part of the title
    and stays -- so "Adventure (AD&D - Cloudy Mountain) (1982) (Mattel).int"
    and the rest of the Intellivision naming are untouched.

    The same collision rule fixes an older wart it did not cause: two different PORTS of one game -- "Pac-Man (1983) (Atarisoft)" and "Pac-Man (1983) (Intv Corp)" -- are deliberately both kept by the collapse, and have always drawn
    as two identical "Pac-Man (1983)" lines. When a colliding entry has no tag,
    its publisher now does the job.

    Paging: Enter and PgDn advance like N, PgUp goes back like P, Home and End
    jump to the first and last page. PgUp is safe to bind even though it
    translates to CTRL_P, the BBS's node-message hotkey: the terminal layer
    turns the escape sequence into the key code and returns before inkey() sees
    its Ctrl-P case, so only a literally typed Ctrl-P pages a node.

    The ROM cache stores sizes and hashes, not titles, so no cache is stale.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net