#45071 - ZeroX - Tue Jun 07, 2005 2:21 pm
Hi. I'm trying to write a multiboot transfer software using the xboo cable that works on windows XP/2000, but im having difficulties understanding certain parts. Ive manage to transfer the header, but i dont understand how to specify the length before transfering the main data. All my coding is based on no$gba document by martin. this is what he wrote
I have no idea what llll stands for, how to send it. Any help will be appreaciated. Im doing this so that i can help a lot of users out the who cant get Userport or other programs working, and also because i have done nothing to help this community.
Another thing i would like to know is how do i choose what mode of transfer im using, Normal or multiplay. Right now the code uses 32 bit transfers, ( upper 16 bit zeroes, lower 16 bit are the data needed to be sent). Im assuming that multiboot uses normal mode. Please correct me on my mistakes.
The nintendo logo shows up, but sometimes garbled because i change that damn llll value. i dont know how to set it. My transfer code is correct, i got the timing down....i think, cause im getting the right responses. : )
If anybody thinks that Martin's xboo software works fine (i seem to think so, his program is great) and think im wasting my time, please say so. i will abandon this project, and come up with a different idea like maybe finishing MGS 3, or bullying my little brother by making wierd sound : )
Code: |
Times Send Receive Expl.
-----------------------Required Transfer Initiation in master program ... 6200 FFFF Slave not in multiplay/normal mode yet 1 6200 0000 Slave entered correct mode now 15 6200 720x Repeat 15 times, if failed: delay 1/16s and restart 1 610y 720x Recognition okay, exchange master/slave info 60h xxxx NN0x Transfer C0h bytes header data in units of 16bits 1 6200 000x Transfer of header data completed 1 620y 720x Exchange master/slave info again ... 63pp 720x Wait until all slaves reply 73cc instead 720x 1 63pp 73cc Send palette_data and receive client_data[1-3] 1 64hh 73uu Send handshake_data for final transfer completion -----------------------Below is SWI 37 MultiBoot handler in BIOS DELAY - - Wait 1/16 seconds at master side 1 llll 73rr Send length information and receive random data[1-3] LEN yyyy nnnn Transfer main data block in units of 16 or 32 bits 1 0065 nnnn Transfer of main data block completed, request CRC ... 0065 0074 Wait until all slaves reply 0075 instead 0074 1 0065 0075 All slaves ready for CRC transfer 1 0066 0075 Signalize that transfer of CRC follows 1 zzzz zzzz Exchange CRC must be same for master and slaves -----------------------Optional Handshake (NOT part of master/slave BIOS) ... .... .... Exchange whatever custom data Legend for above Protocol y client_bit, bit(s) 1-3 set if slave(s) 1-3 detected x bit 1,2,or 3 set if slave 1,2,or 3 xxxx header data, transferred in 16bit (!) units (even in 32bit normal mode) nn response value for header transfer, decreasing 60h..01h pp palette_data cc random client_data[1..3] from slave 1-3, FFh if slave not exists hh handshake_data, 11h+client_data[1]+client_data[2]+client_data[3] uu random data, not used, ignore this value Below automatically calculated by SWI 37 BIOS function (don't care about) llll download length/4-34h rr random data from each slave for encryption, FFh if slave not exists yyyy encoded data in 16bit (multiplay) or 32bit (normal mode) units nnnn response value, lower 16bit of destadr in AGB memory (00C0h and up) zzzz 16bit download CRC value, must be same for master and slaves |
I have no idea what llll stands for, how to send it. Any help will be appreaciated. Im doing this so that i can help a lot of users out the who cant get Userport or other programs working, and also because i have done nothing to help this community.
Another thing i would like to know is how do i choose what mode of transfer im using, Normal or multiplay. Right now the code uses 32 bit transfers, ( upper 16 bit zeroes, lower 16 bit are the data needed to be sent). Im assuming that multiboot uses normal mode. Please correct me on my mistakes.
The nintendo logo shows up, but sometimes garbled because i change that damn llll value. i dont know how to set it. My transfer code is correct, i got the timing down....i think, cause im getting the right responses. : )
If anybody thinks that Martin's xboo software works fine (i seem to think so, his program is great) and think im wasting my time, please say so. i will abandon this project, and come up with a different idea like maybe finishing MGS 3, or bullying my little brother by making wierd sound : )