Skip to content

Releases: OrangeFox86/DreamcastControllerUsbPico

Version 0.16

29 Jan 17:49
7b214d2
Compare
Choose a tag to compare

What's Changed

  • 142: Updated to latest pico-sdk and update to Ubuntu22 by @Tails86 in #143
  • Added flycast reset command to support X-, X-0, X-1, X-2, and X-3 by @Tails86 in #145
    • Also always redirect flycast commands to the single player controller when host-1p flavor is used
  • Added flycast wiki link to README @Tails86 in #146

Full Changelog: v0.15...v0.16

Version 0.15

26 Jan 03:18
71c70da
Compare
Choose a tag to compare

This version contains documentation updates, minor refactoring, and adding CI pipelines for testing and automatic release builds

(Sorry if you got a bunch of notifications while I was playing with the pipeline)

Version 0.14

22 Jan 19:09
6e534b3
Compare
Choose a tag to compare

Integration with flycast emulator when in host mode. Recommend using host-1p.uf2.

See flycast PR: flyinghead/flycast#1810

Version 0.13

05 Feb 03:29
Compare
Choose a tag to compare

Minor tweaks to client USB, added a 1p variant of host

Version 0.12

23 Apr 20:56
2066b30
Compare
Choose a tag to compare

Client Mode Updates

  • Added VMU screen and timer to library
  • Word bytes are stored in proper order now within storage (corrupts memory formatted with previous versions)
  • Support WinCE games
  • Minor refactoring

General Updates

  • Added DIR pin for each bus for better signal isolation using a bus transceiver
  • Updated schematics in documentation

Version 0.11

19 Feb 22:23
5045595
Compare
Choose a tag to compare

Client Mode Updates

  • Support vibration on Dualshock 4 controller
  • Rely on modified pico-sdk version 1.5 (was previously using unmodified version 1.4)

Host Mode Updates

  • Rely on modified pico-sdk version 1.5 (was previously using unmodified version 1.4)

Version 0.10

06 Feb 02:56
18929e3
Compare
Choose a tag to compare
  • Added support for Dualshock4 (PS4) controller in client mode
  • Removed volatile memory client mode (planned to be readded later in a client-usb-client variant)

Version 0.9

22 Jan 20:38
e267958
Compare
Choose a tag to compare
  • Created client-side library so that this project can emulate a peripheral on a real Dreamcast
    • Controller emulation currently only sends back controls in their resting positions
    • Created client peripheral which emulates a standard controller with volatile memory (client-volatile-mem.uf2)
      • Memory is stored in RAM (reset on power down) and automatically formatted on power up
    • Created client peripheral which emulates a standard controller with non-volatile memory (client-pico-non-volatile-mem.uf2)
      • Memory is stored on the flash chip on the Pico board
      • No integrity checks are made on the memory, so memory should be manually formatted on first use
  • Renamed main.uf2 to host.uf2 in order to differentiate it from the client program types

Version 0.8

01 Jan 21:42
32e28ed
Compare
Choose a tag to compare
  • Mapped the upper VMU buttons to gamepad
  • Limit gamepad analog values to -127 instead of -128 (as defined in gamepad descriptor)

Version 0.7

26 Dec 07:34
e029461
Compare
Choose a tag to compare
  • Enabled write access to VMU memory
    • Use at your own risk (not thoroughly tested yet)
      • To use on Windows or Linux, copy file exactly 128 kb in size and with the same name of the target VMU to the drive
      • Deleting files is not internally supported, even if the OS appears to successfully delete the file
      • The DC-Memory drive appears to have 128 kb of free memory, but this is just for the host operating system to proceed past the check for enough memory before allowing overwrite; writing a file with a unique name to this empty space will always fail
    • Drive will detach if too many write failures occur, will reattach once any VMU is removed and re-inserted
      • Write to a block of memory is retried until timeout
      • A "failure" is flagged if access timeout is reached for any block of memory (250 ms for write); 50 failures will cause the drive to detach
      • The host will usually attempt to write another block of memory and try to return to this block later; drive detach was added to prevent this infinite loop in the event of a major fault
    • It takes 15 seconds to write a full VMU file
    • Things will get weird if any VMU is added or removed during read or write which will be addressed later (#19)
    • Refer to this tool to be able to view/modify contents: http://evmu.elysianshadows.com/
      • Export from this tool directly to drive does not currently work; instead, export file to local system before copying to DC-Memory
  • Fixed some USB CDC serial interface issues
    • Handle all different types of end-of-line (CR, CRLF, LF) and backspace (BS, DEL) characters properly
    • Handle multiple commands at once (if more than one end-of-line received in a batch of characters)
    • Output CRLF instead of just LF
    • Output bus index (0-3) that custom command was sent on ex:
      09414001 00000008
      11: added {09414001 00000008} -> [1]
      11: complete {08404102 00000008 FF000000}
      09010001 00000008
      5: added {09010001 00000008} -> [0]
      5: complete {08000102 00000008 FF000000}
  • Minor tweak to attempt to correct for occasional Maple Bus write issues
  • Increased MAPLE_RESPONSE_TIMEOUT_US to 1000 to help with VMU access
  • Function definition found in device info is passed to peripheral