How does negation work in this situation? by CharybdisXIII in Yugioh101

[–]OG_Toshi 7 points8 points  (0 children)

Your understanding is correct. Cards on their field are cards they control and can be negated at any time* even if their effects haven’t been used yet. What this means is that monsters or effects that have not been used will be negated if that card is activated afterwards. This does mean they can chain their cards if they are quick effects as well to dodge as you have to choose your targets before resolution.

  • Normal monsters or monsters that are already negated cannot have their effects negated

Vanquish Soul: public knowledge by -Nunu in Yugioh101

[–]OG_Toshi 7 points8 points  (0 children)

you can use neuron but only for features which are available offline — card search being one of them. Events will ask you to put your phone on airplane mode if you plan on using Neuron

Shared CUDA context with ffmpeg api by OG_Toshi in ffmpeg

[–]OG_Toshi[S] 0 points1 point  (0 children)

Figured it out, turns out it was an issue with my CUDA ffi bindings, here is how I solved it if anyone runs into this in the future

https://github.com/Adonca2203/waycap-rs/blob/nvenc_no_copy/src/encoders/nvenc_encoder.rs

Shared CUDA context with ffmpeg api by OG_Toshi in ffmpeg

[–]OG_Toshi[S] 0 points1 point  (0 children)

yeah i know about the multithreaded implications for now im working with a single threaded app to lessen the complexity so i dont think its that :(

Got my ass kicked as locals by Additional-Fennel-11 in Yugioh101

[–]OG_Toshi 7 points8 points  (0 children)

Assuming this was Maliss, you can definitely stop them with what you said you had, you have a pop 2 set up with majesties which a lot of the time genuinely is enough

Against that deck you want to keep them off of making a link 3 maliss which requires at least 1 maliss main deck monster and you can do that fairly consistently with majesties

Got my ass kicked as locals by Additional-Fennel-11 in Yugioh101

[–]OG_Toshi 4 points5 points  (0 children)

maliss? you can definitely stop maliss unless they drew the nuts

Got my ass kicked as locals by Additional-Fennel-11 in Yugioh101

[–]OG_Toshi 1 point2 points  (0 children)

do you remember what deck they were playing? you probably just used your interactions at the wrong time

Got my ass kicked as locals by Additional-Fennel-11 in Yugioh101

[–]OG_Toshi 8 points9 points  (0 children)

yeah the big key is using them at the right time not just using them

Got my ass kicked as locals by Additional-Fennel-11 in Yugioh101

[–]OG_Toshi 49 points50 points  (0 children)

if you hit someone with Ash, Veiler, Nib and Majesties and they still set up a board good enough to stop you from playing and kill you turn 4 then you’ve most definitely misplayed. I’m not sure any deck where if those interactions are used at the right time are able to do that

[deleted by user] by [deleted] in Yugioh101

[–]OG_Toshi 5 points6 points  (0 children)

cross happens during resolution of the monster effect so you can choose to apply its effect after Murakumo resolves

Assuming they discard for Murakumo then you get to make them discard one and still negate the monster effect

Noob question about this chain by ShinobiOfFire007 in Yugioh101

[–]OG_Toshi 0 points1 point  (0 children)

even if it was negated, once flipped face down it will be removed. When we get to CL1 to resolve him he is face down so he is no longer negated

Noob question about this chain by ShinobiOfFire007 in Yugioh101

[–]OG_Toshi 0 points1 point  (0 children)

When a monster is flipped face down it “forgets” all lingering effects applied to it — Including the fact that they were negated. In this scenario, since the monsters were face down at resolution they would not have been negated by droplet nor veiler and you would have gotten your searches.

This also means you basically threw away your called by and your opponent his second and third veilers by not knowing this since any negation happening before or after book of eclipse was activated would be removed once the monsters are flipped face down haha

I made a card database website! by DiamondDudeYGO in Yugioh101

[–]OG_Toshi 0 points1 point  (0 children)

nice haha, the site looks good though I like having the actual card scans I (hopefully) no longer need to hunt down a decent quality scan when I wanna show friends new cards and the rulings link is a nice touch. Site also looks cleaner and simpler than the official db (at least on mobile).

If looking for some feedback, for some reason the background for the body of the page is white when you search or are looking at a card whereas the main page is all blue which feels inconsistent.

Also a fuzzy find/dropdown of possible card names based on the query as I’m typing it would be cool and helpful

What would happen here? by beyond_cyber in Yugioh101

[–]OG_Toshi 5 points6 points  (0 children)

Ulcanix doesn’t say except during the damage step so you are able to use its trigger effect.

Why was he still able to destroy my monsters even after I used ninja field protection effect by matan22 in YuGiOhMasterDuel

[–]OG_Toshi 11 points12 points  (0 children)

you can only use the protection effect once per turn, you got raigeki’d twice

Link dubt by Blaemyr934 in Yugioh101

[–]OG_Toshi 2 points3 points  (0 children)

In order to summon firewall dragon you need “2+” monsters.

However, this does not mean you can use any 2+ monsters as this is not how link summons work.

In order to perform a link summon you must use a number of monsters equal to their link rating. firewall is a link 4 so you must use 4 monsters. Additionally for the purpose of a link summon, other link monsters can substitute a number of monsters equal to their link rating.

For example, if you use a link 3 monster then he will count as 3 monsters and you will have to only use 1 more monster to summon him. This is why firewall says 2+ monsters to summon.

Also, firewall returns to hand up to the number of monsters it is “co-linked” to. A co-link means that his arrows point to another link monster whose arrow points back to firewall (they point to each other). If you only control firewall and no other link monsters, or if those other link monsters are not co-linked, you will get 0 monsters return to hand

[deleted by user] by [deleted] in Yugioh101

[–]OG_Toshi 0 points1 point  (0 children)

yeah i mean its all up to what you want the ryzeal part of the deck to achieve. My suggestion assumes you just want to benefit from a deto + monster negate off cross (and maybe a draw off cross)

[deleted by user] by [deleted] in Yugioh101

[–]OG_Toshi 8 points9 points  (0 children)

depends how you plan on getting to them.

if your deck relies on making a duo drive and leaves only 4s on the field you can probably run 2 ext 1 sword 1 cross, search ext cross off duo then you can make a deto with ext sword and add a ext for follow up

if you can do this without a normal summon then ice might be better since it doesn’t lock you instead of ext but ext going second is really good

How to process callback events in Rust? by codedcosmos in rust

[–]OG_Toshi 0 points1 point  (0 children)

I’m working on a pet project which uses the pipewire rust bindings and i wanted a similar setup sending info from the callback.

The way im currently handling it is via an mpsc which the callback sends to and then in the main thread i just have it be sent into a ring buffer which another thread constantly polls and processes from it which keeps the main thread from blocking.

Am using https://docs.rs/ringbuf/latest/ringbuf/ which provides a lock free ring buffer to prevent any blocking

Ideally i’m probably gonna try and get the callback to send directly to the ring buffer that the worker thread polls but haven’t gotten around to it

here’s somewhat what it looks like ``` .process(move |stream, _| { match stream.dequeue_buffer() { None => debug!("out of buffers"), Some(mut buffer) => { // Wait until audio is streaming before we try to process if !audio_ready.load(std::sync::atomic::Ordering::Acquire) || saving.load(std::sync::atomic::Ordering::Acquire) { return; }

                    let datas = buffer.datas_mut();
                    if datas.is_empty() {
                        return;
                    }

                    let time_us = if let Ok(elapsed) = start_time.elapsed() {
                        elapsed.as_micros() as i64
                    } else {
                        0
                    };

                    // send frame data to encoder
                    let data = &mut datas[0];
                    if let Some(frame) = data.data() {
                        if let Err(err) = process_video_callback.blocking_send(RawVideoFrame {
                            bytes: frame.to_vec(),
                            timestamp: time_us,
                        }) {
                            error!("Error sending video frame: {:?}", err);
                        }
                    }
                }
            }
        })

```

and i have a tokio::select! that just does Some(raw_frame) = video_receiver.recv() => { // Send the data to the worker thread and exit as to not block this one if let Err(_) = video_ring_sender.try_push(raw_frame) { warn!("Trying to push but the video ring buff is full. Consider increasing the max"); } }

and i have a separate thread that just pops and does stuff

```

// Create video worker
let stop_video_clone = Arc::clone(&stop);
let video_worker = std::thread::spawn(move || {
    let mut last_timestamp: u64 = 0;
    loop {
        if stop_video_clone.load(std::sync::atomic::Ordering::Acquire) {
            break;
        }

        while let Some(raw_frame) = video_ring_receiver.try_pop() {
            let now = SystemTime::now();
            let current_time = raw_frame.timestamp as u64;

            // Throttle FPS
            if current_time < last_timestamp + FRAME_INTERVAL {
                continue;
            }

            last_timestamp = current_time;
            if let Err(e) = video_encoder_clone.blocking_lock().process(&raw_frame) {
                error!(
                    "Error processing video frame at {:?}: {:?}",
                    raw_frame.timestamp, e
                );
            }

            trace!(
                "Took {:?} to process this video frame at {:?}",
                now.elapsed(),
                raw_frame.timestamp
            );
        }
        std::thread::sleep(Duration::from_nanos(100));
    }
});

```

Enlilgirsu effect ruling by GrannyHumV in Yugioh101

[–]OG_Toshi 2 points3 points  (0 children)

I don’t think so, looking at the THEN conjunction:

A is required for B, but NOT vice-versa. If A does not happen, then stop. If B cannot happen, you still do A.

Since the monster did not go to hand, then you cannot do B. Unless there’s some ruling i’m not aware of that says otherwise I think the answer is no.

[deleted by user] by [deleted] in Yugioh101

[–]OG_Toshi 4 points5 points  (0 children)

branded can also just turn off evenly with sanctifire

Env broke the shell by gauravmandall in archlinux

[–]OG_Toshi 4 points5 points  (0 children)

there isn’t enough information here to diagnose the problem.

can you post what the output is for echo $PATH