mirror of
https://github.com/Lorenzooone/cc3dsfs.git
synced 2026-03-21 17:55:00 -05:00
Small warning fixes to partner ctr code
This commit is contained in:
parent
f09ecbec34
commit
9aa4fe3613
|
|
@ -770,6 +770,7 @@ else()
|
|||
install(FILES ${USB_RULES_DIR}/51-ftd2xx.rules DESTINATION .)
|
||||
install(FILES ${USB_RULES_DIR}/51-nisetro.rules DESTINATION .)
|
||||
install(FILES ${USB_RULES_DIR}/51-optimize.rules DESTINATION .)
|
||||
install(FILES ${USB_RULES_DIR}/51-partnerctr.rules DESTINATION .)
|
||||
install(FILES ${SETUP_SCRIPTS_DIR}/install_usb_rules${SCRIPT_EXTENSION} DESTINATION .)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ IS Nitro Emulator (newer revisions), IS Nitro Capture and IS TWL Capture support
|
|||
|
||||
Optimize Old 3DS capture boards and Optimize New 3DS capture boards are also supported. Older revisions of the capture boards may not be supported at the moment, though.
|
||||
|
||||
Partner CTR Capture devices are supported.
|
||||
|
||||
Finally, support for a really old Chameleon USB FX2 board is also present, used with Nisetro DS(i) capture boards.
|
||||
|
||||
## Features
|
||||
|
|
@ -154,6 +156,7 @@ The CC3DSFS\_CFG\_DIR environment variable can be used to specify a different ta
|
|||
- On MacOS, you may get a notice about Apple being unable to check for malware, or the developer being unknown. To open the program regardless of that, check the [Official Guide for "Opening Applications from Unknown Developers" from Apple, for your version of MacOS](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac).
|
||||
- Certain TVs/Monitors may add some audio delay for the purpose of video/lip syncing. If you're experiencing too much audio delay when using this software, try checking in the TV/Monitor settings whether you can reduce that added delay. One of the names used for that setting is "Lip Sync", or something along that line.
|
||||
- When using IS Nitro Emulator, IS Nitro Capture or IS TWL Capture devices on Windows, cc3dsfs is compatible with both the official driver and WinUSB, with the latter being useful if you don't have access to the official driver. To install and use WinUSB, plug in your device, download a software to install drivers like [Zadig](https://zadig.akeo.ie/), select the device in question and select WinUSB. Then install the driver and wait for it to finish. The devices should now work properly with this application.
|
||||
- When using Partner CTR Capture devices on Windows, cc3dsfs is compatible with both the official driver and libusb-win32 (or alternatives), with the latter being useful if you don't have access to the official driver. To install and use libusb-win32 (or alternatives), plug in your device, download a software to install drivers like [Zadig](https://zadig.akeo.ie/), select the device in question and select libusb-win32 (or alternatives). Then install the driver and wait for it to finish. The devices should now work properly with this application.
|
||||
- When using the new 2024 Loopy DS Capture Card on Windows, the default driver (FTD2XX) adds one extra frame of latency. To remove that, consider switching to WinUSB as the driver. To change driver, download a software to install drivers like [Zadig](https://zadig.akeo.ie/), select the device in question and select WinUSB. Then install the driver and wait for it to finish. The application will now use WinUSB, with better latency (the serial shown in the Status menu will have an l where there previously was a d).
|
||||
- There are multiple capture cards which use the same EZ-USB FX2LP board, creating a conflict. These are the Optimize Old 3DS capture cards and the Nisetro DS(i) capture cards. This means that when the user connects a device which uses the EZ-USB FX2LP board, they need to select one capture card among the possible ones. To avoid this extra step, the user can disable scanning for the conflicting capture cards they do not intend to use. The settings to do this are available under Extra Settings -> USB Conflict Resolution.
|
||||
- MacOS does not allow running multiple instances of the same application, normally. If you want to run multiple instances of cc3dsfs on MacOS, open the terminal in the folder where cc3dsfs is and type `open -n cc3dsfs.app`.
|
||||
|
|
|
|||
|
|
@ -22,5 +22,7 @@
|
|||
<usb-device vendor-id="3950" product-id="1280" />
|
||||
<usb-device vendor-id="3950" product-id="1281" />
|
||||
<usb-device vendor-id="3950" product-id="1282" />
|
||||
<usb-device vendor-id="3794" product-id="4" />
|
||||
<usb-device vendor-id="3794" product-id="11" />
|
||||
</resources>
|
||||
|
||||
|
|
|
|||
|
|
@ -265,8 +265,8 @@ static bool get_is_pos_first_synch_in_buffer(uint8_t* buffer, size_t pos_to_chec
|
|||
return (base_command.magic == SYNCH_VALUE_PARTNER_CTR) && (base_command.command == PARTNER_CTR_CAPTURE_COMMAND_INPUT);
|
||||
}
|
||||
|
||||
static size_t get_pos_first_synch_in_buffer(uint8_t* buffer, int start_pos) {
|
||||
for(int i = start_pos; i < (SINGLE_RING_BUFFER_SLICE_SIZE / 2); i++) {
|
||||
static size_t get_pos_first_synch_in_buffer(uint8_t* buffer, size_t start_pos) {
|
||||
for(size_t i = start_pos; i < (SINGLE_RING_BUFFER_SLICE_SIZE / 2); i++) {
|
||||
if(get_is_pos_first_synch_in_buffer(buffer, i * 2))
|
||||
return i * 2;
|
||||
}
|
||||
|
|
@ -318,7 +318,7 @@ static void cypress_output_to_thread(CaptureData* capture_data, uint8_t *buffer_
|
|||
|
||||
static bool cypress_device_read_frame_not_synchronized(CypressPartnerCTRDeviceCaptureReceivedData* cypress_device_capture_recv_data, int &error) {
|
||||
volatile int first_slice_to_check = *cypress_device_capture_recv_data->first_usable_ring_buffer_slice_index;
|
||||
volatile int first_slice_pos_to_check = *cypress_device_capture_recv_data->last_used_ring_buffer_slice_pos;
|
||||
volatile int first_slice_pos_to_check = (int)*cypress_device_capture_recv_data->last_used_ring_buffer_slice_pos;
|
||||
bool found = false;
|
||||
// Determine which buffer is the first which needs to still be checked
|
||||
for(int i = 0; i < NUM_PARTNER_CTR_CYPRESS_CONCURRENTLY_RUNNING_BUFFERS; i++) {
|
||||
|
|
@ -438,7 +438,6 @@ static bool is_valid_frame_partner_ctr(uint8_t* data, size_t slice_index, size_t
|
|||
size_t second_screen_pos = 0;
|
||||
size_t third_screen_pos = 0;
|
||||
size_t top_screen_pos = 0;
|
||||
PartnerCTRCaptureCommand top_command;
|
||||
out_end_pos = 0;
|
||||
|
||||
first_screen_pos = find_pos_partner_ctr_x_screen(data, slice_index, start_pos, 0, available_bytes);
|
||||
|
|
|
|||
|
|
@ -105,12 +105,12 @@ std::string read_serial_ctr_capture(cy_device_device_handlers* handlers, const c
|
|||
|
||||
static int send_partner_ctr_packet(cy_device_device_handlers* handlers, const cypart_device_usb_device* device, const uint8_t* data, size_t size_data, int &transferred) {
|
||||
cypress_pipe_reset_ctrl_bulk_out(handlers, get_cy_usb_info(device));
|
||||
return cypress_ctrl_bulk_out_transfer(handlers, get_cy_usb_info(device), data, size_data, &transferred);
|
||||
return cypress_ctrl_bulk_out_transfer(handlers, get_cy_usb_info(device), data, (int)size_data, &transferred);
|
||||
}
|
||||
|
||||
static int recv_partner_ctr_packet(cy_device_device_handlers* handlers, const cypart_device_usb_device* device, uint8_t* data, size_t size_data, int &transferred) {
|
||||
cypress_pipe_reset_ctrl_bulk_in(handlers, get_cy_usb_info(device));
|
||||
return cypress_ctrl_bulk_in_transfer(handlers, get_cy_usb_info(device), data, size_data, &transferred);
|
||||
return cypress_ctrl_bulk_in_transfer(handlers, get_cy_usb_info(device), data, (int)size_data, &transferred);
|
||||
}
|
||||
|
||||
// Name is tentative, based on pattern observed in wireshark packets...
|
||||
|
|
@ -144,9 +144,9 @@ static int read_write_generic_data_from_to_address_partner_ctr(cy_device_device_
|
|||
int num_iters = (int)(data_size / max_size);
|
||||
for(int i = 0; i < num_iters; i++) {
|
||||
if(is_write)
|
||||
ret = write_to_address_partner_ctr(handlers, device, address + curr_pos, data + curr_pos, max_size, data_size_byte);
|
||||
ret = write_to_address_partner_ctr(handlers, device, (uint32_t)(address + curr_pos), data + curr_pos, max_size, data_size_byte);
|
||||
else
|
||||
ret = read_from_address_partner_ctr(handlers, device, address + curr_pos, data + curr_pos, max_size, data_size_byte);
|
||||
ret = read_from_address_partner_ctr(handlers, device, (uint32_t)(address + curr_pos), data + curr_pos, max_size, data_size_byte);
|
||||
if(ret < 0)
|
||||
return ret;
|
||||
data_size -= max_size;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user