• More flexible widescreen support

    From VIncent Macaluso@1:103/705 to GitLab issue in main/sbbs on Thu Mar 24 14:51:20 2022
    open https://gitlab.synchro.net/main/sbbs/-/issues/380

    With widescreen connections becoming more common could you revisit how synchronet handles menus?Specifically, if no basename.XXXcol.ans file is found, could the next smaller file be displayed?For example if the current console.screen_columns is 132 and no mainmenu.132col.ext file exists, could the BBS fall back and show the mainmenu.80col.ext or even a mainmenu.ext file if found? Besides easing the need to create entire sets of large menus at once, this would futureproof as other sizes pop up. I'm getting a caller or two at 160 and even though I have menus at 132 and 80, they're just getting black screens.Also, I can't get random menus to work at all with or without the XXXcol file names.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From VIncent Macaluso@1:103/705 to GitLab note in main/sbbs on Thu Mar 24 15:02:28 2022
    https://gitlab.synchro.net/main/sbbs/-/issues/380#note_2495

    To clarify with widescreen menus I think that when using random menus, expected behavior is, in my mind:If 'bbs.menu('basename*')' is used:On screen_rows of 80:only files with basename* or basename.80col should be displayed.if screen_rows of 132:only files with basename*.132 should be used or if none exist fall back to basename*.80col and finally basename*etc..Currently no matter what width I connect at, if I use bbs.menu('logon1*') then nothing gets displayed at all even if I have files names likes the following:logon1-one.anslogon1-two.anslogon1-one.132col.anslogon1-one.132col.msglogon1-two.80col.anslogon1-three.132col.ans
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab note in main/sbbs on Thu Mar 24 18:19:54 2022
    https://gitlab.synchro.net/main/sbbs/-/issues/380#note_2496

    If the user is getting a black screen, then you've done something wrong. Yes, the BBS "fallsback" to just the main.msg or main.sc if main.XXcol.* doesn't exist. That's how it already works. It does *not* fall back to the "Next largest" size. That is something I'll ponder and keep this issue open for.As for your random menu problem, you need a .msg or .asc file for *each* base filename. Just convert those .ans to .msg and get rid of the .ans version unless you really need the animation sequences.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From VIncent Macaluso@1:103/705 to GitLab note in main/sbbs on Thu Mar 24 20:37:17 2022
    https://gitlab.synchro.net/main/sbbs/-/issues/380#note_2497

    If the user is getting a black screen, then you've done something wrong. Yes, the BBS "fallsback" to just the main.msg or main.sc if main.XXcol.\* doesn't exist. That's how it already works. It does *not* fall back to the "Next largest" size. That is something I'll ponder and keep this issue open for.I do see that I didn't have a basename.ext file - definitely my misunderstanding of the docs. But since the main.ext would most likely be a 80x24 screen it still has issue of having the smallest file being displayed on a 160x45 terminal, despite a 132x37 file existing. I know it's not an emergency but more and more boards are experimenting with widescreen and these are just things that I've noticed since doing so with synchronet. If other sized columns start being used, will we have to create a file for each one of them? > As for your random menu problem, you need a .msg or .asc file for *each* base filename. Just convert those .ans to .msg and get rid of the .ans version unless you really need the animation sequences.Using bbs.menu('random*') will display all files that start with random, without taking into consideration the xxcol portion of the name. So on a 132 column screen I see random.msg, random.132col.msg and random.80col.msgRegarding conversion - I have come across several screens like ones with extended colors and custom glyph fonts that do not convert properly, even with the -ice and -132 arguments. Artists are doing a lot with ansi lately, why convert to a format non-native to their original work to use features like randomizing or bbs.menu_exists() when bbs.menu() displays them just fine as ANS otherwise? Why gatekeep randomizing!? (I'm kidding! haha)I've attached some examples in pablodraw and in syncterm with the output and the command I used to convert.![image](/uploads/3fedfdb597c5fb7fbb50d2bf330cbff4/image.png)![image](/uploads/7a60e169dabcc351ce87b8eb466523ed/image.png)After a bunch of experimenting I see randomizing doesn't work when using a full path to the file - that was a big part of my issue (that and not having them all as .msg files as I thought I only need one as the basename.msg and the rest could be other extensions. I have menus and other files all over the place in an attempt to keep them organized. lolI looked over the wiki and this may the source of my misunderstanding.> Each of these file types may be preempted by a terminal-width specific file with a name ending in .Xcol.ext where X is the (exact) number of screen columns (e.g. usually 80 or 40) and .ext is one of the supported file extensions from the above list.> If you only have one display file for any particular base filename, it should have either a .msg or .asc extension and contain no terminal-control sequences (e.g. ANSI, PETSCII, or RIP).This sounds to me as if I only have one display file, it must be a .msg or .asc - otherwise the "menu/display file selection priority list" has .ans at the very top. Why give .ans 1st priority if it doesn't seem to work with a couple of the features of bbs.menu()? I apologize for the wall of text!Anyway, I appreciate all you do and all the work you put into synchronet. Thank you for pondering this request!
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab note in main/sbbs on Thu Mar 24 21:33:06 2022
    https://gitlab.synchro.net/main/sbbs/-/issues/380#note_2498

    PabloDraw will save to .msg format directly, you don't have to use ans2asc (though ans2asc should work fine too)..ans files work with all the features of bbs.menu(). You must have a fall-back (either .asc or .msg) for non-ANSI users for each basename.* menu file. Otherwise, a non-ANSI user would have no equivalent for the menu.I'm not aware of any "custom glyph font" capability in an ANSI file. The only thing that a .ans file can do that a .msg cannot is ansimation. And there are advantages to .msg (or .asc) files: they can be auto-converted and displayed appropriately for other terminal types (e.g. monochrome ANSI or PETSCII). Please upload to Vertrauen or email any .ans files that you're having trouble converting to perfectly-equivalent .msg files.I think I have a fix for the bbs.menu('random\*') problem you described. Using `bbs.menu('random?.???')` instead probably would work too (e.g. it'd pick up random1.* but not random1.80col.* as a dupe).It's much easier to reply to one question/issue at a time.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab issue in main/sbbs on Thu Mar 24 23:14:26 2022
    close https://gitlab.synchro.net/main/sbbs/-/issues/380
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to GitLab note in main/sbbs on Fri Mar 25 00:21:59 2022
    https://gitlab.synchro.net/main/sbbs/-/issues/380#note_2501

    So if you want to specify the *minimum* display width (rather than the *exact* required display width), use a ".cXX.ext" menu file suffix.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)