• 0 Posts
  • 67 Comments
Joined 1 year ago
cake
Cake day: October 4th, 2023

help-circle
  • If you seriously want to set something like this up, you’re going to need a device that can emit the smells that you want.

    This instance of a device looks like it uses atomizers hooked up to different tanks:

    https://www.amazon.com/Automatically-Releases-Immersive-Compatible-Platforms/dp/B0CNMXSN2K

    I’d imagine that one run as many tanks as one wanted.

    One limiting factor is that scent isn’t going to immediately change when you change your virtual environment. I’d guess that emitting the vapor close to your face, maybe running a hose up towards it, would help. Probably want some kind of exhaust to purge the previous smell from the room. My guess is that the reason that the reason that a “booth” is used in the submitted article is to minimize the airspace surrounding the user and thus clearing time.

    Second, some form of computer control. Maybe some device that has relays controlled via USB. A relay is an electromechanical switch that can can cut power to an atomizer on and off, could run it to the atomizer.

    https://ncd.io/usb-relay/

    Those guys sell USB devices with up to 64 relays. I haven’t looked, but it probably looks to the computer like a virtual serial port, takes text commands.

    Then you need some kind of daemon running on the computer to send these commands at appropriate times.

    And lastly, you need some way to trigger the daemon when the game is seeing some sort of event. Could monitor the game’s logfile if it has one and contains the necessary information – I recall some Skyrim-hooking software that does this – take a screenshot periodically and analyze it, or identify and then monitor the game’s memory, probably either a technique called library injection (on Linux, library interposers are a way to so this) or using the same API that debuggers use.

    If the hentai game that your friend is after is Ren’Py-based – a popular option for visual novels, which many such games are – and the game includes the Python source .rpy files, which some do, then the game’s source itself could simply be modified. If it contains only compiled .rpyc files, that won’t be an option.

    You’re going to need to obtain whatever scents you want to emit as well. You can get collections of essential oils – the aromatherapy crowd is into those – and mix them up to create blends that you want, stick 'em in the atomizer tanks.

    One issue is that hacking it into an existing game is going to mean that the game isn’t intentionally designed around the use of scent.



  • I’m not sure about what election you’re referring to. If you mean in the recent US presidential election, most of them weren’t in a position to realistically affect the outcome anyway; they’d need to be in a swing state, a state that wasn’t already very probably going to go one way or the other.

    That being said, if they didn’t vote for the President, they probably also didn’t vote for other things on the ballot that probably affect them as well. It’s not just about electing the President.



  • I believe that some of them do change to some degree. For example, the boundary between Ohio and West Virginia is the low water mark on the Ohio side of the Ohio River.

    kagis

    https://archive.wvculture.org/history/government/wvboundaries.html

    The West Virginia Constitution, in Section I of Article II, provides:

    . . . The State of West Virginia includes the bed, bank and shores of the Ohio river. . .

    West Virginia, as in the case of Kentucky, succeeded to the rights of Virginia in respect to the Ohio boundary and, therefore, her territorial limits extend to the low watermark on the northwest or Ohio side of the river. The West Virginia Supreme Court of Appeals has expressed an opinion that:

    Low water mark within the intendment of our law, as related to the Ohio River, is the point to which the water recedes at its lowest stage. {Union Sand and Gravel Co. v. Northcott, 102 W. Va. 519, Point 5 of Syllabus.)

    This boundary extends from a point at low watermark on the northwestern side of the Ohio River opposite the mouth of Big Sandy River to the common corner of Ohio and Pennsylvania, marked by a granite monument as indicated in the report on the Pennsylvania boundary.

    If there is a sudden shift in a river, as from a radical change resulting from a flood, normally boundaries don’t move with it:

    https://en.wikipedia.org/wiki/Arkansas_v._Tennessee

    The Supreme Court affirmed this finding, quoting from its opinion in an earlier dispute between the same states where it had held:

    It is settled beyond the possibility of dispute that, where running streams are the boundaries between States, the same rule applies as between private proprietors, namely, that, when the bed and channel are changed by the natural and gradual processes known as erosion and accretion, the boundary follows the varying course of the stream; while, if the stream from any cause, natural or artificial, suddenly leaves its old bed and forms a new one, by the process known as an avulsion, the resulting change of channel works no change of boundary, which remains in the middle of the old channel, although no water may be flowing in it, and irrespective of subsequent changes in the new channel.[2]

    But they do shift somewhat as rivers change course.









  • tal@lemmy.todaytoTechnology@lemmy.worldWorld's First MIDI Shellcode
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    3 days ago

    The thing the guy is poking at is a synthesizer, a device that lets you compose music and synthesizes the audio.

    He got a service manual that showed some technical information about a similar synthesizer that indicated that some of the pins on one of the chips were used for a standard interface used to diagnose problems on devices, called JTAG. He guessed correctly that his similar synthesizer also used the same pins for this.

    He made some guesses about what functionality was present, and was able to identify the microprocessor and download the device firmware using this port.

    He then went looking for interesting bits of text in the firmware. What he ran across was something that appeared to be a diagnostic shell (I.e. you enter commands and can see a response) as well as the password to access it.

    He didn’t know how one reached the shell. He went digging in the firmware further and discovered that the device – which acted as a MIDI device over USB to a host computer – took in special MIDI commands that would go to this shell.

    Now he had a way to access the shell any time he had one of these synths plugged into his computer via USB – he didn’t need to physically connect to the diagnostic pins on the chip.

    One feature of the shell permitted modifying RAM on the synthesizer. It wasn’t intended to let one upload executable code, but he uploaded it into some unused memory and then overwrote the frame pointer on the stack used by the shell program to point to that code (which a processor uses to know where to continue executing after running a subroutine) and then returned into his code, which let him get to the point where he could not just upload code to the microprocessor but also run it.

    He wrote his own transfer program for high-speed data transfer over USB and modified the in-RAM code that displayed video.

    This then let him upload video to part of the display and display it at a relatively high frame rate, which is the anime video shown in the last section. I believe that the laptop in the foreground is showing the original frames.

    My understanding from two articles recently posted here is that it is a fad for hardware hackers to play this “bad apple” anime video on all sorts of old and low end devices.


  • Hmm.

    • I have a manual screen-lock key combination. I have DPMS (auto power off when idle) on the monitor disabled when it’s unlocked and set to a short period when it’s locked. Powers on when I’m typing to unlock.

    • I haven’t touched KDE for a long time, but last I did, I believe that it was a stacking system. Back when I used a stacking window manager, I had the fourth mouse button set up to act as a “drag window” button. Could click anywhere on the window. I did like that.

    • I have a key combination set up to open a terminal with tmux with a shell, a web browser, and one of those dmenu text-based launcher clones (can’t remember which). Those are the things that I most frequently want access to.

    • I currently hide the status bar unless the Super key is held down. I’m not completely sure that this is the right way to go – it does mean that any important stuff needs to notify the user via the notification manager system. But it does provide a maximum of usable screen space.

    • No animations. They delay the time taken until what I just did is visually complete.

    • I have multiple numbered workspaces. I hit Super-q and then a number to jump to them, Super-c and then a number to move the focused window to one, and Super-1 and Super-2 to cycle forward and backward through them. There weren’t chosen to be mnemonic, but convenient to reach, as they’re operations that I do a fair bit.

    • Background is just a flat color (low-saturation medium blue, so not super-high contrast). I use sway, a tiling compositor, so I rarely see the background, so your mileage may vary. That being said, I started doing that years before I started using tiling. Background images were just more visual noise for me.

    • Killed window decorations (titlebar, close button, etc). This may not be reasonable for a stacking environment. They eat screen space and don’t display anything very useful. I use a tiling environment, so resizing and dragging isn’t necessary. I have a key combination to kill the currently-focused window, so I don’t need a close box. I don’t minimize windows – I do switch workspaces, which has some functional overlap – so I don’t need controls for that.

    • I have my mouse pointer auto-hide systemwide if I’m not moving the mouse or clicking its buttons for a few seconds.

    • I have a keystroke (Super-`) to dismiss notification manager messages from the keyboard. This may be the norm in desktop environments – I haven’t played with them since before notification managers were a thing.

    The one thing that I’d kind of like to do that I don’t currently is to have a toroidal workspace model. Someone’s done this for emacs with buffer switching, which is where I saw it and thought “wow, that’s an excellent idea”, but it hasn’t been done for sway workspaces. Basically, normally you have a “ring” of workspaces that you can cycle through. I’d like to have a “ring of rings” (which in 3D, is a torus), since I normally I’m working on one project and have several workspaces (usually 1-4) associated with that project. I’d like to have a “ring” for each project, with different keystrokes to switch projects and switch workspaces within those projects. Sway probably could support that with just scripting, no core modifications, but I haven’t gotten around to it.


  • That’s a Windows system, requires a numeric keypad, has been around for a long time. I don’t know what its coverage is, though, whether it can do any Unicode character.

    kagis

    Sounds like not, that Microsoft has its own mapping:

    https://www.alt-codes.net/how_to_use_alt_codes/

    The special characters and symbols can be typed by their Alt Code values on computers which are running Microsoft Windows operating systems. They cannot be typed by their Unicode values.

    Problem with the numeric entry systems is that they’re kind of a pain to remember. They work all right if you have a small number of symbols that you need to use frequently and can memorize them. But they’re less-handy if you’ve got a wider variety.

    GTK-based apps (like, a bunch of Linux GUI apps) will let you do numeric entry of Unicode codepoints if you hit Control-Shift-U and then enter a Unicode codepoint.

    Honestly, I’m kind of surprised that the open-source Android onscreen keyboards that I’ve seen don’t support user-configurable popup menus on keys with arbitary characters and text snippets, as it seems like an obvious thing to want to configure.


  • I agree – and before DnT, there was P3P, which also would have done it – but it is what it is at the moment.

    I’m mostly exasperated with it because I wipe all cookies each browser restart, which is a much more-reliable and less-obnoxious solution than the EU’s regulatory approach of trying to convince the remote end not to make use of its ability to set them. If you do that, you get the cookie banner every time on sites that show it, which means that the cookie banner regulation has made my experience rather worse. And unfortunately, some sites show the banner to non-EU-based users – we don’t elect EU representatives, but we still get some spillover from their policies.

    There’s some Firefox plugin that will try to hide the cookie banners:

    https://addons.mozilla.org/en-US/firefox/addon/istilldontcareaboutcookies/

    EDIT: Yeah, from the description on there, the author is doing exactly what I am with the “not retaining cookies” approach, and smacking into how poorly that interacts with the cookie banner regulation:

    The EU regulations require that any website using tracking cookies must get user’s permission before installing them. These warnings appear on most websites until the visitor agrees with the website’s terms and conditions. Imagine how irritating that becomes when you surf anonymously or if you delete cookies automatically every time you close the browser.



  • Well, if you know someone who doesn’t have a nice pair of headphones, you could donate the old pair to them.

    Personally, I think unless you’re after a specific feature that the new headphones have (like, I really wanted multipoint Bluetooth on a pair of headphones so that I could use my phone and laptop at the same time), I’d probably keep using the old ones. Old headphones are still pretty good.


  • Not what you were asking, but I’d like to highlight for others that you replaced the earpads on your headphones.

    I wasn’t aware that this was a thing for a long time, but they’re often the thing that goes first, and for many headphones, inexpensive replacement headphone pads are available. They may even be preferable to the originals (e.g. maybe you want puffier pads, or a velour instead of pleather surface, or whatever).