'잡동사니'에 해당되는 글 13954건

  1. 2022.08.23 둠 리부트 스위치 진행중
  2. 2022.08.22 wayland atomic commit 패치?
  3. 2022.08.22 해피빈 기부
  4. 2022.08.21 둠 스위치 중고 구매
  5. 2022.08.21 니퍼, 롱노우즈 구매
  6. 2022.08.20 안테나 수리
  7. 2022.08.19 hdmi2usb 닌텐도 잘되네? 2
  8. 2022.08.18 TVS 다이오드
  9. 2022.08.18 golang channel
  10. 2022.08.17 weston screen shooter 뜯어보기
게임/닌텐도 스위치2022. 8. 23. 18:07

하다하다 안되서 가장 낮은 난이도로 시작

 

그냥 우직하게 딜 넣는거 보다는

촐싹대면서 샷건날려서 경직에 걸리면 달려가서 목 뽑아 버리는게 주요 패턴..

근데 생각해보니.. 둠1시절에도 촐싹대면서 탄막에 가까운 느낌으로 했던거 같긴하..다?

 

아무튼 요즘 둠 가이의 이미지. 맞으면 죽는거니 안 맞으면 됨!

 

다만 키보드, 마우스가 아닌 조이스틱이라 좀 더 조준이 힘들고 속이 터지는 차이가 있을뿐..

 

장점

1. 그래픽 좋다.

2. 피!!! 폭력!!! 글로리 킬!

3. 권총인데 저격하는 느낌 (차지 샷)

 

단점

1. 독 모드로는 안해봤는데 휴대모드에서 자막을 보려면 눈에 힘줘야 한다. 그래서 어지러웠나..

2. 3d 멀미 없는데 생겼습니...다? 배고파서 어지러운건지 지하철에서 해서 어지러운건진 감이 안옴

3. 진동이 약하다.

4. 사운드는 신경을 안써서 잘 모르겠지만 각도에 따라 자연스럽게 소리가 줄어야 하는데 갑자기 확 줄어서 아쉽.

5. 아니 원래 이렇게 둠 가이가 촐싹대며 날아 다녔던가.. 우직하게 맞아가며 좀 쏘지 않았...나?

   (적고 보니 크라이시스도 좀 리메이크 해줘 ㅠㅠ)

6. 그냥 아직까진 초반이지만 액션이 단조로운 느낌. 발견 -> 쏴서 경직 -> 달리고 -> 찢는다 -> 끝

7. 전기톱에.. 기름을 넣어주어야 하다니!!

8. 미래에는 자동권총이 없나 ㅠㅠ 단발이라니!

'게임 > 닌텐도 스위치' 카테고리의 다른 글

스위치 doom 최저 난이도 엔딩봄  (0) 2022.09.12
제노블레이드3 구매  (0) 2022.09.12
둠 스위치 중고 구매  (0) 2022.08.21
hdmi2usb 닌텐도 잘되네?  (2) 2022.08.19
스위치 게임 arms 구매  (0) 2022.07.10
Posted by 구차니
프로그램 사용/wayland2022. 8. 22. 18:04

오랫만에 생각난김에 검색했는데 8월 2일 커밋된 따끈한 녀석 발견!

[링크 : https://gitlab.freedesktop.org/wayland/weston/-/commits/main?search=atomic]

 

음.. 잘 해결되면 좋겠네..

backend-drm: improve atomic commit failure handling


When an atomic commit fails then the output will be stuck in
REPAINT_AWAITING_COMPLETION state. It is waiting for a vblank event that was
never scheduled.
If the error is EBUSY then it can be expected to be a transient error. So
propagate the error and schedule a new repaint in the core compositor.

This is necessary because there are some circumstances when the commit can fail
unexpectedly:
- With 'state_invalid == true' one commit will disable all planes. If another
  commit for a different output is triggered immediately afterwards, then this
  commit can temporarily fail with EBUSY because it tries to use the same
  planes.
- At least with i915, if one commit enables an output then a second commit for a
  different output immediately afterwards can temporarily fail with EBUSY. This
  is probably caused by some hardware interdependency.
Signed-off-by: Michael Olbrich's avatarMichael Olbrich <m.olbrich@pengutronix.de>

 

libweston/backend-drm/drm.c의 drm_repaint_flush()와

libweston/compositor.c의 output_repaint_timer_hander() 쪽에 수정이 가해진다.

[링크 : https://gitlab.freedesktop.org/wayland/weston/-/commit/3b3fdc52c31f828ff0fb71d2c6ce7bdcc64f20a1]

[링크 : https://gitlab.freedesktop.org/wayland/weston/-/blob/3b3fdc52c31f828ff0fb71d2c6ce7bdcc64f20a1/libweston/backend-drm/drm.c]

'프로그램 사용 > wayland' 카테고리의 다른 글

weston 커서 숨기기  (0) 2024.02.26
wayland hdmi - touch 연결  (0) 2023.09.08
weston screen shooter 뜯어보기  (0) 2022.08.17
wayland glreadpixels 실패  (0) 2022.08.16
sway + wayvnc  (0) 2022.08.10
Posted by 구차니
개소리 왈왈/블로그2022. 8. 22. 13:47

소멸 콩이 있다고 하니 기부!

8월이니 웬지 마음이 가는 기부로

 

'개소리 왈왈 > 블로그' 카테고리의 다른 글

티스토리 드뎌 복구  (2) 2022.10.16
카카오 계정 통합  (0) 2022.08.26
티스토리 레이아웃 왕창 깨지네  (0) 2022.08.08
근 한달만의 블로그 정리  (2) 2022.07.21
게을러졌어...  (0) 2022.05.16
Posted by 구차니
게임/닌텐도 스위치2022. 8. 21. 22:46

3만원에 중고로 구매

지하철에서 들고 다니면서 엔딩이나 볼 수 있으면 좋겠네

(하라는 공부는 안하고!)

 

 

 

 

Posted by 구차니

다이소에서 3천원에 팔다니 참 좋은 세상이야.

그나저나 구매해 둔 HDMI 케이블은 써보질 못하네

 

내방이 더워서 빔 프로젝터 켜기가 두렵...

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

개발자 단상  (4) 2022.09.07
9월 그리고 2주년  (2) 2022.09.01
덥다.. 여름인가  (0) 2022.08.02
시간만 지나간다.  (0) 2022.07.18
상큼한 월요일. 지각 -_-  (0) 2022.07.04
Posted by 구차니

낑낑대며 대충 땜질

 

 

'개소리 왈왈 > 아마추어무선' 카테고리의 다른 글

안녕 rtl sdr  (0) 2023.03.20
김포공항 근처 다녀옴  (0) 2021.12.29
liveatc  (0) 2021.12.29
iss 주파수  (0) 2021.12.19
아부지 HAM 장비 뽀려뽀려  (0) 2021.12.18
Posted by 구차니
게임/닌텐도 스위치2022. 8. 19. 22:22

만만한(?) vlc로 하는데 잘 들어온다.

그냥 기본값으로 해서 그런지 모르겠지만 딜레이가 심해서 게임은 힘들거 같다.

닌텐도 정품 독으로 해서 잘 되는건가?

 

맥은 장치명이 신기하게 붙네

 

머 USB Video라고 장치명이 박혀있으니 그냥 기대한대로 나온듯.

% lsusb -t
  Bus 000.Dev 001: USB 2.0 Bus, 
  Bus 000.Dev 001: USB 2.0 Bus, 
  Bus 000.Dev 001: USB 3.0 Bus, 
    |__ Bus 020.Dev 005: USB Video, 480Mb/s
    |__ Bus 026.Dev 001: Hub, 480Mb/s
        |__ Bus 026.Dev 003: FaceTime HD Camera (Built-in), 480Mb/s
    |__ Bus 029.Dev 001: Hub, 480Mb/s
        |__ Bus 029.Dev 002: Hub, 480Mb/s
       |__ Bus 029.Dev 000: BRCM20702 Hub, 
           |__ Bus 029.Dev 000: Bluetooth USB Host Controller, 
            |__ Bus 029.Dev 004: Apple Internal Keyboard / Trackpad, 12Mb/s
            |__ Bus 029.Dev 005: Internal Memory Card Reader, 480Mb/s

 

Posted by 구차니
이론 관련/전기 전자2022. 8. 18. 14:54

펄스 전류라고 하니 꾸준한 고전압은 막지 못하지만

순간적인 전류를 막아주는 녀석으로 설계 이상의 전류가 들어올 경우 GND 쪽으로 전류를 흘려

본 회로의 손상을 방지해주는 역할을 한다.

 

T서지 등의 과전압이 인가되는 경우에는 ON 상태가 되어, 펄스 전류를 TVS 측에서 소비시킴으로써 과전압을 클램프하여, 후단의 IC를 보호합니다.


[링크 : https://www.rohm.co.kr/electronics-basics/diodes/di_what8]

 

TVS 다이오드는 일반적으로 낙뢰, 유도 부하 스위칭 및 전송 또는 데이터 회선 및 전자 회로와 관련된 정전기 방전(ESD)이 유도하는 것과 같은 전기 과압으로부터 보호하기 위해 사용됩니다.

[링크 : https://www.digikey.kr/ko/product-highlight/l/littelfuse/tvs-diodes]

 

[링크 : https://m.blog.naver.com/cubloc/220064263758]

[링크 : https://ttistoryy.tistory.com/18]

[링크 : https://ttistoryy.tistory.com/9]

 

 

'이론 관련 > 전기 전자' 카테고리의 다른 글

베어링 진동 측정 관련  (0) 2023.02.16
이동평균  (0) 2023.01.17
헤테로다인  (0) 2022.08.08
ramp wave = sawtooth wave  (0) 2022.08.03
PID 제어... 2?  (0) 2022.06.20
Posted by 구차니
Programming/golang2022. 8. 18. 12:18

<-

이런 연산자가 보여서 먼가 찾아보는 중

 

[링크 : https://etloveguitar.tistory.com/40]

[링크 : https://go.dev/ref/spec#Receive_operator]

[링크 : https://go.dev/ref/spec#Channel_types]

'Programming > golang' 카테고리의 다른 글

golang http.HandleFunc(pattern)  (0) 2022.08.31
golang mariadb 연동  (0) 2022.08.30
golang unused import  (0) 2022.07.20
golang websocket package  (0) 2022.07.15
go run ./  (2) 2022.04.18
Posted by 구차니
프로그램 사용/wayland2022. 8. 17. 16:49

weston_screenshooter_shoot()을 따라오는데 영 어딜 파야 나올지 감이 안온다.

아무튼.. libweston의 screenshooter.c가 실제적으로 수행되는 부분 같은데

//git\include\libweston\libweston.h
int
weston_screenshooter_shoot(struct weston_output *output, struct weston_buffer *buffer,
   weston_screenshooter_done_func_t done, void *data);

//git\libweston\screenshooter.c
WL_EXPORT int
weston_screenshooter_shoot(struct weston_output *output,
   struct weston_buffer *buffer,
   weston_screenshooter_done_func_t done, void *data)
{
struct screenshooter_frame_listener *l;

if (!wl_shm_buffer_get(buffer->resource)) {
done(data, WESTON_SCREENSHOOTER_BAD_BUFFER);
return -1;
}

buffer->shm_buffer = wl_shm_buffer_get(buffer->resource);
buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer);
buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer);

if (buffer->width < output->current_mode->width ||
    buffer->height < output->current_mode->height) {
done(data, WESTON_SCREENSHOOTER_BAD_BUFFER);
return -1;
}

l = malloc(sizeof *l);
if (l == NULL) {
done(data, WESTON_SCREENSHOOTER_NO_MEMORY);
return -1;
}

l->buffer = buffer;
l->output = output;
l->done = done;
l->data = data;
l->listener.notify = screenshooter_frame_notify;
wl_signal_add(&output->frame_signal, &l->listener);
weston_output_disable_planes_incr(output);
weston_output_damage(output);

return 0;
}

 

아무튼 추적을 계속해보면 아래와 같이 event_loop에 wl_event_loop_add_idle() 실행해서 추가해주고 끝.

//git\libweston\compositor.c
static void
weston_schedule_surface_protection_update(struct weston_compositor *compositor)
{
struct content_protection *cp = compositor->content_protection;
struct wl_event_loop *loop;

if (!cp || cp->surface_protection_update)
return;
loop = wl_display_get_event_loop(compositor->wl_display);
cp->surface_protection_update = wl_event_loop_add_idle(loop,
       notify_surface_protection_change,
       compositor);
}

WL_EXPORT void
weston_output_disable_planes_incr(struct weston_output *output)
{
output->disable_planes++;
/*
 * If disable_planes changes from 0 to non-zero, it means some type of
 * recording of content has started, and therefore protection level of
 * the protected surfaces must be updated to avoid the recording of
 * the protected content.
 */
if (output->disable_planes == 1)
weston_schedule_surface_protection_update(output->compositor);
}

 

struct content_protection은 누가 만드나 하면서 따라가보니

weston_compositor_enable_content_protection() 함수에서 만들어 주고 해당 함수는

//git\libweston\content-protection.c
WL_EXPORT int
weston_compositor_enable_content_protection(struct weston_compositor *compositor)
{
struct content_protection *cp;

cp = zalloc(sizeof(*cp));
if (cp == NULL)
return -1;
cp->compositor = compositor;

compositor->content_protection = cp;
wl_list_init(&cp->protected_list);
if (wl_global_create(compositor->wl_display,
     &weston_content_protection_interface, 1, cp,
     bind_weston_content_protection) == NULL)
return -1;

cp->destroy_listener.notify = cp_destroy_listener;
wl_signal_add(&compositor->destroy_signal, &cp->destroy_listener);
cp->debug = weston_compositor_add_log_scope(compositor, "content-protection-debug",
    "debug-logs for content-protection",
    NULL, NULL, NULL);
return 0;
}

 

drm_backend_create() 시에 b->atomic_modeset 조건에 의해서 생성된다.

//git\libweston\backend-drm\drm.c
static struct drm_backend *
drm_backend_create(struct weston_compositor *compositor,
   struct weston_drm_backend_config *config)
{
if (b->atomic_modeset)
if (weston_compositor_enable_content_protection(compositor) < 0)
weston_log("Error: initializing content-protection "
   "support failed.\n");
}

 

 

이름이 비슷한건지 걸려나오는 다른 녀석.

//protocol\weston-screenshooter-client-protocol.h
#define WESTON_SCREENSHOOTER_SHOOT 0

static inline void
weston_screenshooter_shoot(struct weston_screenshooter *weston_screenshooter, struct wl_output *output, struct wl_buffer *buffer)
{
wl_proxy_marshal((struct wl_proxy *) weston_screenshooter,
 WESTON_SCREENSHOOTER_SHOOT, output, buffer);
}

 

 wl_proxy_marshall()은 또 멀까해서 따라가 보지만.. 답이 안나온다 -_ㅠ

//wayland-main\src\wayland-client.c
WL_EXPORT struct wl_proxy *
wl_proxy_marshal_array_constructor_versioned(struct wl_proxy *proxy,
     uint32_t opcode,
     union wl_argument *args,
     const struct wl_interface *interface,
     uint32_t version)
{
return wl_proxy_marshal_array_flags(proxy, opcode, interface, version, 0, args);
}

WL_EXPORT struct wl_proxy *
wl_proxy_marshal_array_constructor(struct wl_proxy *proxy,
   uint32_t opcode, union wl_argument *args,
   const struct wl_interface *interface)
{
return wl_proxy_marshal_array_constructor_versioned(proxy, opcode,
    args, interface,
    proxy->version);
}


WL_EXPORT void
wl_proxy_marshal(struct wl_proxy *proxy, uint32_t opcode, ...)
{
union wl_argument args[WL_CLOSURE_MAX_ARGS];
va_list ap;

va_start(ap, opcode);
wl_argument_from_va_list(proxy->object.interface->methods[opcode].signature,
 args, WL_CLOSURE_MAX_ARGS, ap);
va_end(ap);

wl_proxy_marshal_array_constructor(proxy, opcode, args, NULL);
}

 

'프로그램 사용 > wayland' 카테고리의 다른 글

wayland hdmi - touch 연결  (0) 2023.09.08
wayland atomic commit 패치?  (0) 2022.08.22
wayland glreadpixels 실패  (0) 2022.08.16
sway + wayvnc  (0) 2022.08.10
wayvnc 0.5 릴리즈  (0) 2022.08.09
Posted by 구차니