Also fucking Windows. Oh you can't access the ports on your own computer unless you go through a slow driver written by someone who paid us for a certificate. Fuck off let me bang some bits
Yeah it turns out it is faster on Linux and can pretty much get up to the speed of the original (albeit not 100% reliably) so it must just be the Windows driver slowing it down. Which on the one hand is a bit of a pisser that it's a problem I can't fix, but it's also good to know I've done everything "right" on my end and it's not a problem with my code
I suppose I should also try compiling this on Linux and see if it's any faster there. The driver it needs on windows might be adding overhead. On Linux it can just raw dog the port
So initially this was so slow it would've taken over an hour to dump a single megabyte......
After some tweaks I've now got it reliably transferring a MB in 4 mins but the original communicator on Linux could do it in 1 min so it WOULD be nice to bring it down further....
Did you ever use a BBC Micro? β yes at primary school! this was in the 90s so they were already out of date & the school only "officially" used them for some simple educational programs. but because my mum worked at the schoolβ¦ https://retrospring.net/@taizou/a/113029165091802830
How many gigabytes do you have? β I can giga-bite as much as I need to https://retrospring.net/@taizou/a/113029120491987820
OK SO I found this program where someone has actually implemented multiboot and enough of the xboo communicator protocol to do everything i need, but with a Raspberry Pi
https://github.com/akkera102/gba_01_multiboot
SO I attempted to modify it to communicate over parallel instead and it just WORKED!?!?!?
It is dog ass slow compared to the original communicator so I probably need to tweak some delays and stuff but i'm so glad this worked oh my god
i kinda see there being 2 parts to this
1 - figure out how to upload a multiboot program to the gba
2 - then figure out how xboo communicator actually communicates with the program once running
& i would suspect there might be at least some open source implementation of (1) that i can work off of??? and the other stuff i'd just have to reverse engineer??
i wish the people doing this stuff back in like 2005 had just released their source code
the original reason i was looking into that btw is the increasing possibility that i might have to try reimplementing at least some subset of xboo functionality myself.... my attempts to hack xboo communicator were hitting a bit of a brick wall when i tried it on a more up to date linux distro and it would only segfault. and in any case its not a sustainable solution lets face it
well I was just looking into how the xboo and gblink cables work and i realised there was no fundamental need for the two applications to actually need differently wired cables, they're just using different pins for the same purpose... so i've added xboo compatibility to gblinkdx. meaning if you're a weirdo with extremely specific needs like me you don't need to keep two separate cables around anymore
https://github.com/tzlion/gblinkdx/releases/tag/v0.4