joypad-os
Universal controller firmware core for adapters, dongles, and custom controllers.
파일 탐색기
최종 버전 다운로드 (.zip)- devcontainer.json
- pre-commit
- build.yml
- check-registry.yml
- docs.yml
- web-config.yml
- FUNDING.yml
- 3do.md
- bluetooth.md
- dreamcast.md
- gamecube.md
- loopy.md
- n64.md
- native-input.md
- neogeo.md
- NES2USB.md
- nuon.md
- pcengine.md
- usb.md
- bt2gc.md
- bt2n64.md
- bt2nuon.md
- bt2usb.md
- controllers.md
- gc2usb.md
- index.md
- jvs2usb.md
- lodgenet2gc.md
- lodgenet2n64.md
- lodgenet2usb.md
- n642dc.md
- n642nuon.md
- n642usb.md
- neogeo2usb.md
- nes2usb.md
- pce2usb.md
- psx2usb.md
- snes23do.md
- snes2usb.md
- usb23do.md
- usb2dc.md
- usb2gc.md
- usb2loopy.md
- usb2neogeo.md
- usb2nuon.md
- usb2pce.md
- usb2uart.md
- usb2usb.md
- wifi2usb.md
- wii2gc.md
- wii2n64.md
- wii2usb.md
- layers.md
- overview.md
- ps4_auth.md
- buttons.md
- index.md
- leds.md
- platform-hal.md
- players.md
- profiles.md
- router.md
- runtime_profile.md
- storage.md
- web-config.md
- index.md
- SNES_RUMBLE.md
- building.md
- installation.md
- bt2usb-pico-w.md
- lodgenet2usb-pico.md
- n642dc-kb2040.md
- psx2usb-qtpy.md
- snes2usb-kb2040.md
- usb2gc.md
- boards.md
- controllers.md
- diy.md
- wiring.md
- favicon.svg
- gamecube-connector-pinout.png
- Joypad_3DO.png
- Joypad_NGC-2-USB.png
- Joypad_NGC.png
- Joypad_USB-2-3DO.png
- logo_solid.svg
- logo_solid_black.svg
- n64_controller_port.png
- neogeo2usb_rp2040_zero_front.png
- usb2dc_rp2040zero_wiring.png
- usb2gc-kb2040-wired.png
- usb2neogeo_default.svg
- usb2neogeo_latency_diagram.png
- usb2neogeo_pada.svg
- usb2neogeo_padb.svg
- usb2neogeo_rp2040_zero_back.png
- usb2neogeo_rp2040_zero_front.png
- usb2neogeo_typea.svg
- usb2neogeo_typeb.svg
- usb2neogeo_typec.svg
- usb2neogeo_typed.svg
- usb2usb_pico_host.png
- USBRetro_Outline.png
- wiring_usb2gc_rp2040zero.png
- bluetooth.md
- gamecube.md
- gpio.md
- index.md
- jvs.md
- lodgenet.md
- n64.md
- neogeo.md
- nes.md
- pcengine.md
- psx.md
- snes.md
- uart.md
- usb-hid.md
- wifi-jocp.md
- wii.md
- xinput.md
- 3do.md
- dreamcast.md
- gamecube.md
- gba-link-cable.md
- index.md
- loopy.md
- n64.md
- neogeo.md
- nuon.md
- pcengine.md
- uart.md
- usb-device.md
- architecture.md
- data-flow.md
- glossary.md
- esp32.md
- index.md
- nrf52840.md
- pico-sdk.md
- 3DO_PBUS.md
- GAMECUBE_JOYBUS.md
- jvs.md
- lodgenet.md
- NUON_POLYFACE.md
- PCENGINE.md
- sinput.md
- CNAME
- index.md
- MOUTHPAD.md
- rand.h
- battery_esp32.c
- btstack_config.h
- btstack_hal_esp32.c
- btstack_host_nus_stub.c
- button_esp32.c
- CMakeLists.txt
- display_i2c_esp32.c
- eyes_esp32.c
- flash_esp32.c
- idf_component.yml
- main.c
- max3421_host_esp32.c
- pad_config_storage_esp32.c
- pad_input_stub.c
- platform_gpio_esp32.c
- pmu_esp32.c
- ps4_auth_stubs.c
- rm67162_amoled.c
- rm67162_amoled.h
- stubs_peripheral.c
- tusb_config_esp32.h
- ws2812_esp32.c
- ota_data_ota0.bin
- uf2conv.py
- uf2families.json
- CMakeLists.txt
- env.sh
- Makefile
- partitions_lilygo_16mb.csv
- partitions_uf2.csv
- sdkconfig.board.feather_esp32s3
- sdkconfig.board.lilygo_tdisplay_s3_amoled
- sdkconfig.board.xiao_esp32s3
- sdkconfig.defaults
- ps3.png
- ps4.png
- sinput.png
- switch.png
- xinput.png
- platform.h
- img_ps3.c
- img_ps4.c
- img_sinput.c
- img_switch.c
- img_xinput.c
- display.c
- display.h
- eyes_anim.c
- eyes_anim.h
- main.c
- mode_marker.c
- mode_marker.h
- splash.c
- splash.h
- splash_image.c
- splash_image.h
- Makefile
- bin2c.py
- png_to_splash.py
- README.md
- adafruit_feather_nrf52840.conf
- adafruit_feather_nrf52840.overlay
- aprbrother_nrf52840.conf
- aprbrother_nrf52840.overlay
- xiao_ble.conf
- xiao_ble.overlay
- btstack_config.h
- btstack_tlv_nrf.c
- btstack_tlv_nrf.h
- button_nrf.c
- display_i2c_nrf.c
- flash_nrf.c
- imu_nrf.c
- imu_nrf.h
- main.c
- max3421_host_nrf.c
- pad_config_storage_nrf.c
- platform_gpio_nrf.c
- ps4_auth_stubs.c
- stubs_peripheral.c
- tusb_config_nrf.h
- ws2812_nrf.c
- .gitignore
- CMakeLists.txt
- Makefile
- pm_static_adafruit_feather_nrf52840_nrf52840.yml
- prj.conf
- prj_btusb2usb.conf
- prj_controller_btusb.conf
- prj_mouthpad.conf
- prj_usb2usb.conf
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- ch9120.c
- ch9120.h
- README.md
- wshare_ch9120.c
- wshare_ch9120.h
- app.c
- app.h
- app_config.h
- w5500.c
- w5500.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- joypad_gamepad.mkprofile
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- polyface_clock.pio
- polyface_host_read.pio
- polyface_host_send.pio
- readme.md
- app.c
- app.h
- app_config.h
- usb_descriptors.c
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- usb2dc_config.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- app.c
- app.h
- app_config.h
- lwipopts.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- app.c
- app.h
- app_config.h
- profiles.h
- waveshare_rp2350b_plus_w.h
- build_ada_feather.sh
- build_ada_feather_usbhost.sh
- build_ada_kb2040.sh
- build_ada_macropad.sh
- build_ada_qtpy.sh
- build_pico2.sh
- build_pico2_w.sh
- build_pico_w.sh
- build_rpi_pico.sh
- build_rpi_pico_debug.sh
- build_seeed_xiao_rp2040.sh
- build_waveshare_rp2040_eth.sh
- build_waveshare_rp2040_zero.sh
- build_waveshare_rp2350_usb_a.sh
- build_waveshare_rp2350b_plus_w.sh
- ble_gamepad.gatt
- ble_nus.c
- ble_nus.h
- ble_output.c
- ble_output.h
- ble_output_keyboard.c
- ble_output_keyboard.h
- ble_output_mouse.c
- ble_output_mouse.h
- ble_output_xbox.c
- ble_output_xbox.h
- ble_xbox.gatt
- ble_xbox_gatt_db.c
- bthid_gamepad.c
- bthid_gamepad.h
- sinput_ble.c
- sinput_ble.h
- mouthpad_ble.c
- mouthpad_ble.h
- stadia_bt.c
- stadia_bt.h
- ipega_bt.c
- ipega_bt.h
- xbox_ble.c
- xbox_ble.h
- xbox_bt.c
- xbox_bt.h
- switch2_ble.c
- switch2_ble.h
- switch_pro_bt.c
- switch_pro_bt.h
- wii_u_pro_bt.c
- wii_u_pro_bt.h
- wiimote_bt.c
- wiimote_bt.h
- ds3_bt.c
- ds3_bt.h
- ds4_bt.c
- ds4_bt.h
- ds5_bt.c
- ds5_bt.h
- ds5_show_events.h
- ds5_voice_assets.h
- steam_controller_2_ble.c
- steam_controller_2_ble.h
- steam_controller_ble.c
- steam_controller_ble.h
- bthid.c
- bthid.h
- bthid_registry.c
- bthid_registry.h
- bt_device_db.c
- bt_device_db.h
- btstack_config.h
- btstack_config_esp32.h
- btstack_config_nrf.h
- btstack_host.c
- btstack_host.h
- mp_bridge.c
- mp_bridge.h
- mp_relay.c
- mp_relay.h
- bt_transport.c
- bt_transport.h
- bt_transport_cyw43.c
- bt_transport_esp32.c
- bt_transport_nrf.c
- bt_transport_usb.c
- router.c
- router.h
- button.c
- button.h
- codes.c
- codes.h
- display.c
- display.h
- display_i2c.c
- display_spi.c
- display_transport.h
- eyes_anim.c
- eyes_anim.h
- face_anim.c
- face_anim.h
- joy_anim.c
- joy_anim.h
- menu.c
- menu.h
- hotkeys.c
- hotkeys.h
- keymap.c
- keymap.h
- ws2812.c
- ws2812.h
- ws2812.pio
- leds.c
- leds.h
- player_leds_gpio.c
- player_leds_gpio.h
- feedback.c
- feedback.h
- manager.c
- manager.h
- profile.c
- profile.h
- profile_indicator.c
- profile_indicator.h
- runtime_profile.c
- runtime_profile.h
- diskio.c
- sd.c
- sd.h
- speaker.c
- speaker.h
- flash.c
- flash.h
- ps4_auth_flash.c
- ps4_auth_flash.h
- storage.c
- storage.h
- uart_protocol.h
- app_registry.c
- app_registry.h
- battery.h
- buttons.h
- input_event.h
- input_interface.h
- output_interface.h
- uart.h
- joywing_input.c
- joywing_input.h
- seesaw.c
- seesaw.h
- i2c_peer.c
- i2c_peer.h
- 00history.txt
- 00readme.txt
- diskio.h
- ff.c
- ff.h
- ffconf.h
- ffsystem.c
- ffunicode.c
- ext_classic.c
- ext_drums.c
- ext_guitar.c
- ext_motionplus.c
- ext_nunchuck.c
- ext_taiko.c
- ext_turntable.c
- ext_udraw.c
- wii_ext.c
- wii_ext.h
- wii_ext_types.h
- joybus-pio
- jvsio
- libxsm3
- Pico-PIO-USB
- pico-sdk
- SNESpad
- tinyusb
- tusb_xinput
- 3do_buttons.h
- 3do_device.c
- 3do_device.h
- 3do_keyboard.c
- 3do_keyboard.h
- output.pio
- sampling.pio
- amiga_buttons.h
- amiga_device.c
- amiga_device.h
- dreamcast_device.c
- dreamcast_device.h
- maple.pio
- maple_state_machine.c
- maple_state_machine.h
- vmu.c
- vmu.h
- vmu_default_icondata.h
- vmu_sd.c
- vmu_sd.h
- vmu_storage.c
- vmu_storage.h
- gamecube_buttons.h
- gamecube_device.c
- gamecube_device.h
- gpio_buttons.h
- gpio_device.c
- gpio_device.h
- neogeo_buttons.h
- loopy.pio
- loopy_buttons.h
- loopy_device.c
- loopy_device.h
- n64_buttons.h
- n64_device.c
- n64_device.h
- nes_buttons.h
- nuon_buttons.h
- nuon_device.c
- nuon_device.h
- nuon_serial_device.c
- nuon_serial_device.h
- polyface_read.pio
- polyface_send.pio
- clock.pio
- pcengine_buttons.h
- pcengine_device.c
- pcengine_device.h
- plex.pio
- select.pio
- uart_device.c
- uart_device.h
- wii_ext_crypto.c
- wii_ext_crypto.h
- wii_ext_device.c
- wii_ext_device.h
- 3do_host.c
- 3do_host.h
- 3do_host.pio
- arcade_host.c
- arcade_host.h
- gba_multiboot.c
- gba_multiboot.h
- gba_payload.c
- gc_host.c
- gc_host.h
- joybus_bridge.c
- joybus_bridge.h
- jaguar_host.c
- jaguar_host.h
- jvs_host.c
- jvs_host.h
- lodgenet.pio
- lodgenet_host.c
- lodgenet_host.h
- n64_host.c
- n64_host.h
- nes_host.c
- nes_host.h
- nes_host.pio
- pce_host.c
- pce_host.h
- psx.pio
- psx_host.c
- psx_host.h
- snes_host.c
- snes_host.h
- uart_host.c
- uart_host.h
- wii_ext_host.c
- wii_ext_host.h
- abb.h
- alpakka.h
- fisherprice.h
- macropad.h
- pad_config_flash.c
- pad_config_flash.h
- pad_config_storage.h
- pad_config_storage_rp2040.c
- pad_input.c
- pad_input.h
- platform_ch32.c
- platform_esp32.c
- platform_i2c_esp32.c
- platform_i2c_nrf.c
- platform_nrf.c
- platform_gpio_rp2040.c
- platform_i2c_rp2040.c
- platform_rp2040.c
- platform_sd_rp2040.c
- platform.h
- platform_gpio.h
- platform_i2c.h
- platform_sd.h
- adi.c
- adi.h
- flash.c
- flash.h
- flash_b_side.c
- README.md
- swd.c
- swd.h
- swd.pio
- uart_peer.c
- uart_peer.h
- cdc.c
- cdc.h
- cdc_commands.c
- cdc_commands.h
- cdc_protocol.c
- cdc_protocol.h
- gba_link_descriptors.h
- gc_adapter_descriptors.h
- hid_descriptors.h
- kbmouse_descriptors.h
- pcemini_descriptors.h
- ps3_descriptors.h
- ps4_descriptors.h
- psclassic_descriptors.h
- sinput_descriptors.h
- switch_descriptors.h
- xac_descriptors.h
- xbone_descriptors.h
- xbox_og_descriptors.h
- xinput_descriptors.h
- tud_gc_adapter.c
- tud_gc_adapter.h
- tud_xbone.c
- tud_xbone.h
- tud_xid.c
- tud_xid.h
- tud_xinput.c
- tud_xinput.h
- xgip_protocol.c
- xgip_protocol.h
- kbmouse.c
- kbmouse.h
- gba_link_mode.c
- gc_adapter_mode.c
- hid_mode.c
- kbmouse_mode.c
- pcemini_mode.c
- ps3_mode.c
- ps4_local_auth.c
- ps4_local_auth.h
- ps4_mbedtls_config.h
- ps4_mode.c
- psclassic_mode.c
- sinput_mode.c
- sinput_mode.h
- switch_mode.c
- xac_mode.c
- xbone_mode.c
- xid_mode.c
- xinput_mode.c
- tusb_compat.h
- usbd.c
- usbd.h
- usbd_mode.h
- btstack_hal.c
- hci_transport_h2_tinyusb.c
- hci_transport_h2_tinyusb.h
- hid_gamepad.c
- hid_gamepad.h
- hid_keyboard.c
- hid_keyboard.h
- hid_mouse.c
- hid_mouse.h
- hid_parser.c
- hid_parser.h
- sinput_host.c
- sinput_host.h
- 8bitdo_bta.c
- 8bitdo_bta.h
- 8bitdo_m30.c
- 8bitdo_m30.h
- 8bitdo_neo.c
- 8bitdo_neo.h
- 8bitdo_pce.c
- 8bitdo_pce.h
- dragonrise.c
- dragonrise.h
- elo_vagabond.c
- elo_vagabond.h
- google_stadia.c
- google_stadia.h
- hori_horipad.c
- hori_horipad.h
- hori_pokken.c
- hori_pokken.h
- logitech_wingman.c
- logitech_wingman.h
- ms_sidewinder_commander.c
- ms_sidewinder_commander.h
- ms_sidewinder_dualstrike.c
- ms_sidewinder_dualstrike.h
- triple_adapter_v1.c
- triple_adapter_v1.h
- triple_adapter_v2.c
- triple_adapter_v2.h
- gamecube_adapter.c
- gamecube_adapter.h
- switch2_pro.c
- switch2_pro.h
- switch_pro.c
- switch_pro.h
- raphnet_pce.c
- raphnet_pce.h
- sega_astrocity.c
- sega_astrocity.h
- sony_ds3.c
- sony_ds3.h
- sony_ds4.c
- sony_ds4.h
- sony_ds5.c
- sony_ds5.h
- sony_psc.c
- sony_psc.h
- steam_controller.c
- steam_controller.h
- steam_controller_2.c
- steam_controller_2.h
- hid.c
- hid_device.h
- hid_registry.c
- hid_registry.h
- hid_utils.c
- hid_utils.h
- msc_host.c
- msc_host.h
- xbone_auth.c
- xbone_auth.h
- chatpad.h
- xinput.c
- max3421_host.c
- usbh.c
- usbh.h
- dhcpserver.c
- dhcpserver.h
- jocp.h
- jocp_input.c
- wifi_transport.c
- wifi_transport.h
- ble_beacon.c
- ble_beacon.h
- CMakeLists.txt
- main.c
- stubs_peripheral.c
- tusb_config.h
- check_driver_registry.py
- README.md
- catch_life.aiff
- catch_nice.aiff
- catch_phew.aiff
- firework_1.wav
- firework_2.wav
- firework_3.wav
- firework_4.wav
- fisher_abc_1.wav
- fisher_abc_2.wav
- fisher_abc_3.wav
- fisher_abc_4.wav
- fisher_num_1.wav
- fisher_num_2.wav
- fisher_num_3.wav
- fisher_num_4.wav
- fwshow.wav
- impact_lawyer.aiff
- impact_okay.aiff
- impact_oof.aiff
- impact_ow.aiff
- impact_why.aiff
- robot_btn_00_cross.wav
- robot_btn_01_circle.wav
- robot_btn_02_square.wav
- robot_btn_03_triangle.wav
- robot_btn_04_up.wav
- robot_btn_05_right.wav
- robot_btn_06_down.wav
- robot_btn_07_left.wav
- robot_btn_08_l1.wav
- robot_btn_09_r1.wav
- robot_btn_10_l2.wav
- robot_btn_11_r2.wav
- robot_btn_12_l3.wav
- robot_btn_13_r3.wav
- robot_btn_14_create.wav
- robot_btn_15_options.wav
- robot_btn_16_tpad.wav
- robot_btn_17_ps.wav
- robot_catch_1.wav
- robot_fall.wav
- robot_idle_1.wav
- robot_idle_2.wav
- robot_impact_1.wav
- scream.wav
- scream_synth_backup.wav
- show_crackle.wav
- encode.py
- make_astro_placeholders.sh
- make_fisher.sh
- make_placeholders.sh
- make_robot.sh
- make_show.py
- .gitignore
- bin2c.py
- eth-burst-test.py
- eth-multiboot.js
- eth-ping.py
- eth-probe.js
- eth-udp-ping.py
- extract_gba_rom.py
- index.js
- package-lock.json
- package.json
- README.md
- scan_gcm_fst.py
- usbgba-burst-test.py
- usbgba-multiboot.py
- usbgba-ping.py
- index.html
- package-lock.json
- package.json
- README.md
- server.js
- .gitignore
- bot.py
- inference.py
- manual_play.py
- patch_add_state.py
- playback.py
- README.md
- recorder.py
- requirements.txt
- train.py
- .gitignore
- JoypadLive.csproj
- Program.cs
- .gitignore
- server.py
- bot.py
- oauth.py
- README.md
- requirements.txt
- bot.py
- README.md
- requirements.txt
- .gitignore
- dashboard.html
- overlay.html
- parity_test.sh
- README.md
- simulate_crowd_control.py
- streamer-live-remap.md
- moondream_server.py
- claude.ts
- qwen.ts
- tetris.ts
- tetris_soul.md
- avf.ts
- moondream.ts
- streaming_camera.ts
- heuristic.ts
- parser.ts
- connection.ts
- input.ts
- observe.ts
- vision.ts
- server.ts
- ui.html
- buttons.ts
- protocol.ts
- server.ts
- state.ts
- transport.ts
- transport.test.ts
- .gitignore
- package-lock.json
- package.json
- README.md
- tsconfig.json
- .gitignore
- build.sh
- Info.plist
- main.swift
- nus_cmd.py
- README.md
- ps4_auth_upload.html
- .gitignore
- cdcsend.c
- hidread.c
- main.c
- Makefile
- README.md
- gen_default_icondata.py
- index.html
- advanced.js
- bt-host.js
- bt-output.js
- device-info.js
- dirty-tracker.js
- face.js
- hotkeys.js
- input-test.js
- leds.js
- mode-select.js
- native-output.js
- pad-config.js
- profiles.js
- ps4-auth.js
- router.js
- usb-host.js
- usb-output.js
- wiimote.js
- app.js
- cdc-protocol.js
- index.html
- main.js
- style.css
- .gitignore
- package-lock.json
- package.json
- vite.config.js
- .gitignore
- bin2carray.py
- ble-ota.html
- cdc_bootsel.py
- cdc_cmd.py
- cdc_monitor.py
- cdc_test.py
- combine_uf2.py
- flash-loop.sh
- joypad-ble.py
- log_monitor.py
- mp_relay_probe.py
- rand.h
- button_wch.c
- flash_wch.c
- main.c
- stubs_peripheral.c
- tusb_config.h
- ws2812_wch.c
- .gitignore
- Makefile
- README.md
- .env.example
- .gitattributes
- .gitignore
- .gitmodules
- AGENTS.md
- CHANGELOG.md
- CLAUDE.md
- Dockerfile
- LICENSE
- Makefile
- mkdocs.yml
- package.json
- README.md
- THIRD_PARTY_LICENSES
- TRADEMARK.md
- vercel.json
- VERSION
# 설치 가이드
git clone https://github.com/joypad-ai/joypad-os
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd joypad-os
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. 공식 설치 스크립트
쉬움 추천- Homebrew macOS/Linux용 패키지 매니저입니다.
brew install --cask gcc-arm-embedded cmake git
Homebrew로 이미 빌드된 패키지를 바로 설치합니다. 소스 빌드가 필요 없습니다.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Docker
쉬움- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker build -t joypad-os .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 joypad-os
빌드된 이미지를 실제 컨테이너로 실행합니다.
4. CMake
보통brew install --cask gcc-arm-embedded cmake git
Homebrew로 이미 빌드된 패키지를 바로 설치합니다. 소스 빌드가 필요 없습니다.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
5. .NET
보통cd tools/joypad-live/csharp
이 프로젝트의 관련 파일이 하위 폴더 안에 있어서, 먼저 그 폴더로 이동합니다.
dotnet restore
프로젝트에 필요한 패키지를 내려받습니다.
dotnet run
프로젝트를 빌드하고 바로 실행합니다.
6. Node.js
쉬움npm install
package.json에 명시된 라이브러리들을 내려받아 설치합니다.
npm start
개발/실행 서버를 켭니다.
7. Python
쉬움pip install -r tools/joypad-bot/requirements.txt
requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.
python <실행할 파일명>.py # README에서 정확한 실행 파일명을 확인하세요
파이썬 스크립트(또는 모듈)를 실행합니다.
8. Make
보통- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Make Linux/macOS는 보통 기본 설치되어 있습니다. Windows는 별도 설치(예: MSYS2, WSL)가 필요합니다.
make usb2gc_kb2040 # USB/BT → GameCube
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
make usb2usb_feather # USB/BT → USB HID
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
make bt2usb_pico_w # Bluetooth → USB
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
make snes2usb_kb2040 # SNES controller → USB
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
make init-esp # One-time ESP-IDF setup
생성된 빌드 설정을 바탕으로 실제 컴파일을 진행해 실행 파일을 만듭니다.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
