Releases: OrangeFox86/DreamPicoPort
Release list
Version 0.8
- Mapped the upper VMU buttons to gamepad
- Limit gamepad analog values to -127 instead of -128 (as defined in gamepad descriptor)
Version 0.7
- 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
- Use at your own risk (not thoroughly tested yet)
- 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
Version 0.6
- Addressed issues with Retro Fighters controller
- Don't pop item from schedule until it is successfully written to the bus (would potentially cause dereferencing of invalid pointer to Transmitter)
- Allow 3 communication failure attempts before main peripheral is disconnected (Retro Fighters controller sometimes has 2 consecutive failures)
Version 0.5
- Added a TTY parser to the USB CDC (serial) interface
- Enter "h" for help
- Any command starting with ASCII hex character is interpreted as raw data in ASCII hex to send to maple bus, and the result is returned as ACII hex
example 1:
09010001 00000008
6: added {09010001 00000008}
6: complete {08000102 00000008 FF000000}
example 2 (when no VMU connected):
09010001 00000008
14: added {09010001 00000008}
14: failed read
example 3 (length in frame word doesn't match number of words given):
09010002 00000008
0: failed packet invalid
example 4 (all hex values must be present):
09010001 8
0: failed missing data
example 4 (X is ignored):
09010001 X0000008
0: failed missing data
When parsing, all non-hex characters are ignored, and exactly 8 hex characters must be present for each word. After raw ASCII hex is accepted, either the transmission ID is displayed followed by confirmation of data added or "0:" followed by failure reason. After the command is successfully sent, the next message will be transmission ID followed either by "complete" and received data or "failed" and failure reason.
The selected bus is done based on source address: {0x00, 0x40, 0x80, 0xC0} for player 1 through 4. All Maple Bus communication through this interface takes highest priority.
Any line coding variables are ignored, so it doesn't matter what BAUD rate, stop bits, parity, or number of data bits are set for this USB CDC serial interface.
Version 0.4
- Lower case naming is used in file system
- Fixed some potential for crashing while read is performed on memory unit
Version 0.3
- Fixed memory read bug which was slowing things down quite a bit
- Removed serial USB device for releases
- Serial (CDC) device is used for debug messages
Version 0.2
- Added memory access with USB mass storage device
- Please note that there are still some issues with this regarding the host not properly refreshing data when it has been updated. If this happens, the best thing to do is to remove and reinsert USB connection.
- Files are currently read only (write access may come in a future release)
- Implemented jump pack communication, but it is not yet interfaced with USB (only difference is you will feel it rumble once attached as confirmation)