_                 _   _       _ 
 _   _ ___  ___ _ __| | __ _ _ __   __| | | | ___ | |
| | | / __|/ _ \ '__| |/ _` | '_ \ / _` | | |/ _ \| |
| |_| \__ \  __/ |  | | (_| | | | | (_| |_| | (_) | |
 \__,_|___/\___|_|  |_|\__,_|_| |_|\__,_(_)_|\___/|_|
  

Live     Vods     Blog     About



  • 2025-08-18

  • here is a wonderful interview with Mr. Dubov, a professional gamer:
    https://www.youtube.com/watch?v=9M5pAhnwtnk

    i've believed for the last 15 years that the most exigent most extreme
    subject matter experts across all of humanity's varied pursuits happened to be
    StarCraft Broodwar pro gamers. this came up in the ASL20 round of 24 group A
    english language cast today and it seems a not uncommon sentiment.
    https://www.sooplive.com/video/146185

    I repudiate this now and no longer can believe it. Different kinds of evidence
    are useful for disabusing different kinds of people from different kinds of beliefs.
    Gamers will generally have enough latent knowledge such that that interview should
    allow them to free themselves from any similar illusions.

    Here's hoping that gamers update! if no one does then that's fine too: i haven't actually
    made my case here but only indicate that the argument is plainly there to be
    made. if bw shipped with microsoft windows that'd help get us closer.




  • 2025-08-11

  • The work continues towards a quality quake emission.

    And this will be my configuration for the time being. it turned out to be pretty
    straight forward.
    - no changes to my quake config, but i did end up including some
    lines with their default values.
    - environment gets vblank_mode=3
    - xrandr gets the 120hz modelines added for the capture card on HDMI-1 and
    gaming CRT on VGA-1

    my recording doesn't tear and looks much improved. i would need a better capture card
    to be able to play with 150hz and capture, or i might be able to do something
    with this setup and the vulkan backend. in any case, lucky me (^^;

    some other things i hope to add:
    - when on the main page a live stream should start playing
    - individual pages for blog posts
    - blog post tags
    - tap master gm
    - ketsui second loop
    - s rank bw
    - 14k damage cpma game




  • 2025-08-08.2

  • here's a post about trying to record quake without screen tearing.

    https://dri.freedesktop.org/wiki/ConfigurationOptions/
    https://www.x.org/archive/X11R7.6/doc/man/man5/xorg.conf.5.xhtml
    https://man.archlinux.org/man/amdgpu.4

    ~~~bash
    # first attempt to stop tearing with no regard for gameplay quality
    # man amdgpu states TearFree set to auto applies to outputs with a transform
    # does none count as a transform? well TearFree applies when there is a rotation so lets add that
    export vblank_mode=1
    xrandr --output VGA-1 --mode 640x480
    xrandr --output HDMI-1 --mode 640x480 --same-as VGA-1 --rate 60 --transform none --rotate inverted
    cd ~/Q3
    ./quake3e.x64 +set fs_game defrag
    ~~~

    this is still ripped to shreds

    ~~~bash
    user@tekobari:~$ inxi -GSaz
    System:
    Kernel: 6.12.30-0-lts arch: x86_64 bits: 64
    compiler: gcc v: 14.2.0 clocksource: tsc
    avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-lts
    root=UUID=5f0b0d70-cfbd-4289-b181-0981f319c492 ro
    modules=sd-mod,usb-storage,ext4,nvme quiet
    rootfstype=ext4
    Desktop: i3 v: 4.24 with: i3bar tools:
    avail: mate-screensaver,xscreensaver vt: 7
    dm: LightDM v: 1.32.0 Distro: Alpine Linux v3.21
    Graphics:
    Device-1: AMD Cape Verde PRO [Radeon HD 7750/8740 /
    R7 250E] vendor: PC Partner / Sapphire
    driver: radeon v: kernel arch: GCN-1
    code: Southern Islands process: TSMC 28nm
    built: 2011-20 pcie: gen: 3 speed: 8 GT/s lanes: 8
    link-max: lanes: 16 ports: active: HDMI-A-1,VGA-1
    empty: DVI-D-1 bus-ID: 01:00.0 chip-ID: 1002:683f
    class-ID: 0300 temp: 62.0 C
    Display: x11 server: X.org v: 1.21.1.16 driver: X:
    loaded: modesetting alternate: fbdev,vesa
    dri: radeonsi gpu: radeon display-ID: :0 screens: 1
    Screen-1: 0 s-res: 640x480
    s-size: <missing: xdpyinfo>
    Monitor-1: HDMI-A-1 mapped: HDMI-1 pos: primary
    model: Pro Capture serial: <filter> built: 2015
    res: 640x480 dpi: 23 gamma: 1.2
    size: 708x398mm (27.87x15.67") diag: 551mm (21.7")
    ratio: 16:9 modes: max: 1920x1080 min: 640x350
    Monitor-2: VGA-1 res: 640x480 size: N/A modes:
    max: 1024x768 min: 640x480
    API: EGL v: 1.5 hw: drv: amd radeonsi platforms:
    device: 0 drv: radeonsi device: 1 drv: swrast gbm:
    drv: kms_swrast surfaceless: drv: radeonsi x11:
    drv: radeonsi inactive: wayland
    API: OpenGL v: 4.5 vendor: amd mesa v: 24.2.8
    glx-v: 1.4 direct-render: yes renderer: VERDE
    (radeonsi LLVM 19.1.4 DRM 2.50 6.12.30-0-lts)
    device-ID: 1002:683f memory: 1.95 GiB unified: no
    user@tekobari:~$
    ~~~

    my driver is listed as radeon. am i sure that i want the amdgpu manpage?
    am i sure that i understand the manual? i expected the rotation to get me
    TearFree output. could the tears be happening on m6? are there q3 configuration
    options i'm neglecting?

    yea i could use glxgears for testing instead

    ~~~bash
    user@tekobari:~/Q3$ export vblank_mode=2
    user@tekobari:~/Q3$ glxgears
    ATTENTION: default value of option vblank_mode overridden by environment.
    Running synchronized to the vertical refresh. The framerate should be
    approximately the same as the monitor refresh rate.
    ~~~

    lets incorporate that change to vblank_mode and try the first attempt again.
    there i find that glx gears does not tear while quake does.

    ~~~quake
    ----- Initializing Renderer ----
    -------------------------------
    ----- R_Init -----
    SDL using driver "x11"
    Initializing OpenGL display
    ...setting mode -2: 640 480
    ATTENTION: default value of option vblank_mode overridden by environment.
    Using 24 color bits, 24 depth, 8 stencil display.
    Initializing OpenGL extensions
    ...using GL_EXT_texture_edge_clamp
    ...ignoring GL_EXT_texture_compression_s3tc
    ...using GL_EXT_texture_env_add
    ...using GL_ARB_multitexture
    ...using GL_EXT_compiled_vertex_array
    ...using GL_EXT_texture_filter_anisotropic (max: 16)
    ...using ARB vertex/fragment programs
    ...using ARB vertex buffer objects
    ...using 4x MSAA
    ...using GL_RGBA8 (GL_RGBA:GL_FLOAT) FBO

    GL_VENDOR: AMD
    GL_RENDERER: VERDE (radeonsi, , LLVM 19.1.4, DRM 2.50, 6.12.30-0-lts)
    GL_VERSION: 4.5 (Compatibility Profile) Mesa 24.2.8

    GL_MAX_TEXTURE_SIZE: 2048
    GL_MAX_TEXTURE_UNITS_ARB: 8

    PIXELFORMAT: color(24-bits) Z(24-bit) stencil(8-bits)
    MODE: -2, 640 x 480 fullscreen hz:60
    multitexture: enabled
    compiled vertex arrays: enabled
    texenv add: enabled
    compressed textures: disabled
    GAMMA: hardware w/ 0 overbright bits
    texturemode: GL_LINEAR_MIPMAP_LINEAR
    texture bits: 32
    picmip: 0, worldspawn only
    Initializing Shaders
    ----- finished R_Init -----
    ~~~
    well my post processing is not too heavy with 4x MSAA. that's good to know i
    guess. i don't see any GL_ usage relating to sync. and there are no such
    functions defined for my renderer, which is q3e/code/renderer. This contrasts with the vulkan renderer
    and renderer2 which is unmaintained. perhaps vsync is not implemented or
    implemented differently for this backend.

    for this engine i will try setting these to 1 and 60 instead of 0 and 0.
    ~~~quake
    ]\r_swapInterval
    "r_swapInterval" is:"0^7" default:"0^7"
    V-blanks to wait before swapping buffers.
    0: No V-Sync
    1: Synced to the monitor's refresh rate.
    ]\r_displayRefresh
    "r_displayRefresh" is:"0^7" default:"0^7"
    Override monitor refresh rate in fullscreen mode:
    0 - use current monitor refresh rate
    > 0 - use custom refresh rate
    ]
    ~~~
    setting the display refresh was necessary to stop tearing in game

    okay it's laggy as hell and unplayable and the video recording is upside down
    but it does not tear. time to work back to a playable game. cool! maybe i'll
    need the vulkan renderer. in the research phase here i needed something on my
    quake engine or its renderers. noteworthy that it was only after 30 minutes that i realized i was
    testing too narrowly such that i couldn't distinguish what the problem was. that
    insight sufficed to progress the matter tonight but it is not done yet.




  • 2025-08-08.1

  • i should be able to capture quake cleanly provided i understand xorg. I'll try.




  • 2025-08-08

  • Something like three months ago I was fortunate to be able to watch Tron, the
    well known 1980s film, for something like the first time. Music educator and
    composer Robert Greenberg has it that all music can move us if we're open to
    it and allow ourselves to be moved. The question is only whether or not we go
    along and do that. For my part the score for Tron did not make this easy
    as it aped too heavily what was already in my ear from John Williams; striking me
    only as a thinner, theramineier, copy. Somehow in my mind it sounded worse for
    the fact that whomever comissioned the original music could've comissioned it, presumably,
    instead from Rush who we hear during the arcade sequence. I imagine they
    would've delivered in spades.

    I believe that the arcade sequence also features a world record run
    which includes or foreshadows some game vehicles which return later, giant
    flying M looking things. The gaming sequence is mostly interesting because of
    how remarkly calm and staid and slow the game itself is. The context in the film
    is that we're watching a world beating super talent in action and it is a
    presumably up tempo kind of thing. But in 2025 it's almost laughably slow. I'd
    say it is interesting and indicative of how gamers have gotten better and faster
    over the generations, but i need to include a caveat for pinball. Pinball is in
    that arcade and its action is quite hectic if not on camera. There's something of a novelty
    effect with the digital game. Gamers and the audience's expectation of gamers
    weren't merely slow, but this is what crossed my mind.

    the overall vision of the film is dismal. what's the big idea here? some guy's
    property rights. so long as they are respected it is happily ever after in the
    endless concrete urban sprawl. is that what computation and competition are for?

    there's a remarkable helicopter stunt at the end of the film where we see a
    whirly bird blitz right up the side of sky scraper, come around hard, and swoop in
    for a landing. as it lands our hero steps out and walks off into the
    sunset with his two comrades, but not a one of them says a word about the death defying aerial
    maneuver which has transpired. what? how does that make any sense at all? like, "hey why
    did he just do that? are you okay?" or "i think you need a new pilot." instead
    we hear nothing, which is the sound of an out of touch production company and cast.




  • 2025-05-02

  • i fight for the user1!!




  • 2025-03-29

  • it turned out to be the case that the poor performence of Q3 was only my
    operating system performing poorly in generally. the fix was a new installation,
    which is to say that there was no fix. i spent hours working through the
    manuals for pidstat(1) sysstat(5) sadc(8) and running what were entirely
    fruitless commands.

    these utilities and their usage comprise a good chunk of the LPIC-2 course
    materials, and i would say that a main idea of that certification is analyzing
    system performance and performing diagnostics and investigations. i was happy
    to get the reps in with these tools, but i must say, although i am not
    a certified LPIC-2 administrator, this stuff is just worthless. the actual fix
    was a fresh installation.

    who could be bothered to have to reconfigure in this manner every year or two?
    for me it only indicates that i'll be giving up on some things sooner rather
    than later and that i had better be comfortable with that. i would
    like to show 5 games on userland.lol. with the overhead being what it is, i'm
    guessing that two games or three might be what ends up as reasonable.

    this of course suggests that 0 games is reasonable. i'll try to enjoy it while
    it lasts :D





  • 2025-03-08

  • I am alive, and have opted to try and reduce pulseaudio latency when i stand up
    my stream via a script:
    - https://git.ultrono.com/user472393/userland-stream/-/blob/master/bin/pulse-latency

    I'm probably not able to emit a high quality quake stream given my hardware.
    When I capture output on a separate PC, the progressive signal shreds the
    screen into strips; ripping and tearing the image. I can't effect the necessary
    configuration with nvidia to prevent this.

    When i record on the gaming pc itself, i'm liable to repeatedly time out from
    the server. I'm not sure what's up with that. At a glance my system looks
    performant. It's a game from the last millenium. what's up with that not running
    alongside obs?

    ~~~
    inxi -GSaz
    System:
    Kernel: 6.1.0-31-amd64 arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-31-amd64
    Desktop: i3 v: 4.22 info: i3bar vt: 7 dm: SLiM v: 1.4.0 Distro: Devuan
    GNU/Linux 5 (daedalus)
    Graphics:
    Device-1: Intel HD Graphics 630 vendor: Gigabyte driver: i915 v: kernel
    arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: none
    empty: DP-1, HDMI-A-1, HDMI-A-2, HDMI-A-3 bus-ID: 00:02.0
    chip-ID: 8086:5912 class-ID: 0380
    Device-2: NVIDIA GM107 [GeForce GTX 750 Ti] vendor: Gigabyte
    driver: nvidia v: 535.216.01 non-free: 530.xx+
    status: current (as of 2023-03) arch: Maxwell code: GMxxx
    process: TSMC 28nm built: 2014-19 pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 3 speed: 8 GT/s bus-ID: 01:00.0 chip-ID: 10de:1380
    class-ID: 0300
    Device-3: Nanjing Magewell vendor: SafeNet driver: Pro Capture v: N/A
    alternate: ProCapture pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 06:00.0
    chip-ID: 1cd7:0004 class-ID: 0400
    Device-4: Logitech HD Pro Webcam C920 type: USB
    driver: snd-usb-audio,uvcvideo bus-ID: 1-1:2 chip-ID: 046d:082d
    class-ID: 0102 serial: <filter>
    Display: x11 server: X.Org v: 1.21.1.7 driver: X: loaded: nvidia
    gpu: i915,nvidia,Pro Capture display-ID: :0.0 screens: 1
    Screen-1: 0 s-res: 1600x1200 s-dpi: 203 s-size: 200x150mm (7.87x5.91")
    s-diag: 250mm (9.84")
    Monitor-1: DVI-I-0 pos: primary
    res: 640x480 hz: 150 dpi: 46
    size: 350x260mm (13.78x10.24")
    diag: 436mm (17.17") modes: N/A
    Monitor-1: DVI-I-0 pos: primary res: 1600x1200 hz: 75 dpi: 115
    size: 352x264mm (13.86x10.39") diag: 440mm (17.32") modes: N/A
    Monitor-2: HDMI-1 size-res: N/A modes: N/A
    API: OpenGL v: 4.6.0 NVIDIA 535.216.01 renderer: NVIDIA GeForce GTX 750
    Ti/PCIe/SSE2 direct-render: Yes
    ~~~




  • 2025-02-23

  • usb soundcard and pulseaudio are not naively great for gaming
    here are some notes on how to improve things

    we are starting with a latency of around 36ms
    ~~~
    $ pactl list sinks | grep -i latency
    Latency: 36460 usec, configured 24988 usec
    Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
    ~~~

    and here is the module in question
    ~~~
    $ pactl list modules
    ...
    Module #52
    Name: module-alsa-card
    Argument: device_id="4" name="usb-E-MU_Systems__Inc._E-MU_0404___USB_E-MU-AE-3F04-07D70A01-01D2B-STATION_02-00" card_name="alsa_card.usb-E-MU_Systems__Inc._E-MU_0404___USB_E-MU-AE-3F04-07D70A01-01D2B-STATION_02-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"
    Usage counter: 6
    Properties:
    module.author = "Lennart Poettering"
    module.description = "ALSA Card"
    module.version = "16.1"
    ~~~

    these commands have been taken from juho's blogpost
    https://juho.tykkala.fi/Pulseaudio-and-latency#positive-effect-on-latency

    lets keep following the steps outlined there and run some more commands
    ~~~
    $ pactl unload-module 52
    $ pactl load-module module-alsa-card \
    device_id="4" \
    name="usb-E-MU_Systems__Inc._E-MU_0404___USB_E-MU-AE-3F04-07D70A01-01D2B-STATION_02-00" \
    card_name="alsa_card.usb-E-MU_Systems__Inc._E-MU_0404___USB_E-MU-AE-3F04-07D70A01-01D2B-STATION_02-00" \
    namereg_fail=false \
    tsched=no \
    fixed_latency_range=yes \
    ignore_dB=no \
    deferred_volume=yes \
    use_ucm=yes \
    avoid_resampling=yes \
    card_properties="module-udev-detect.discovered=1" \
    fragments=1 \
    fragment_size=15
    ~~~

    and we end up with a latency of about 2ms. nice!
    ~~~
    $ pactl list sinks | grep Latency
    Latency: 2267 usec, configured 1043 usec
    ~~~

    now how can this be made to persist? how about for a different pulse setup? we'll have to see




  • 2025-02-02

  • i played about 10 tgm games, and in that time 2 sections were okay
    where okay means not too unskillful

    there were some surprising failure in ta death
    why or how i would be surprised about something that happens all the time i do
    not know

    i played a game of broodwar where i was defeated for want of vision of the
    terran natural

    all of the games were really too much opponent not enough user




  • 2025-01-27

  • i was lucky to be able to get a couple of games in after work this day.
    at my present skill it is sufficiently difficult to control workers in the
    opening minutes such that i am unable to reliably implement plans of any detail.
    this is on display in the first game of the night, where it's just too hard to get an overlord at 9 supply.
    i was glad to not have thrown my army away, but stopped expanding after 20 minutes.

    the second game of the night i probed with lurkers and that was sufficient
    agression to win sufficed to win. however, i have lost several games recently by
    probing in exactly that same way and losing my only defense. i have some notion
    of rebuilding defense at that point, but only dimly. it's a common failure in my
    play that i have absolutely no defense, and i want to avoid that.

    thanks to those players for those games!