Hopefully that's the case! It's a shame something like this was "hidden" in plain sight and no one seemed to know about it. In any case, anyone interested can recreate the binary by assembling the code so that shouldn't be an issue )
Oh sure! That's the SHA-1 hash: 0b951ea9c6094b3c34e4f0b64d031c75c237564f I've added to the wiki too for reference. Thanks!!
Hey, thanks for giving it a try! I was assembling the BIOS code with the installed version and I hadn't try with 'cargo run', which runs in debug mode and can throw on those situations (this was while creating the labels in the symbol table, not sure while it reached an overflow though). I updated the code to wrap on those situations and I've tried it on debug mode too without issues (I've verified that the generated binary is the same as the one I extracted from the SVP and it matches perfectly). Could you update the code from the repository and try again? Thanks! PS: I've updated the comments in the wiki page and the disassembly itself. It seems that the three main trigonometric functions in the BIOS are calculating rotations over one of the three axis. They expect a list of 3D points (Z, Y and X coords) and each function overwrites the point with a new point rotated over the axis you want (and the angle you provided it). I hope to find some time to test these up!
I am getting an SHA1 of 5b7fbb3b4f360dee96cb38aacd36e6aa1b95e00b not 0b951ea9c6094b3c34e4f0b64d031c75c237564f. EDIT: The file has the first 0x1F800 bytes filed with 0s?
Hey, you need to trim the spaces in the file at the beginning of the generated binary (because of the ORG 0xFC00 directive at the beginning of the file). Otherwise you can remove that directive, as I currently have the absolute values for the jump locations in each routine. Let me know if that works for you (i.e.: if not, let me know how you calculated the SHA-1 number so I can verify).
Hi! I've spent this weekend researching on timings, one of the less known areas about the SVP. I've managed to measure how fast IRAM runs against code in ROM (and also the internal ROM speed), while also figuring out a way to measure individual instructions being executed on the SVP (by completely halting the MD and checking the address lines in the EPROM of my cartridge). There's lots of work to be done here, but I'm happy that at least I have the basis going. You can check the current data here, I'll be updating the page as often as I get more information: https://github.com/jdesiloniz/svpdev/wiki/Timings If you see something off, please let me know! Thanks!
Hi! I've spent some time these past few days researching on what the test code inside Virtua Racing does. Here's my wiki page for that (which I think it covers most of it): https://github.com/jdesiloniz/svpdev/wiki/Virtua-Racing-test-code There are also some new stuff in the other wiki pages so feel free to peek!
Hi, long time no see . Just mentioning I've updated the wiki of my research on the SVP with a new page with images of a decapped SVP and some details on it, in case you're interested . https://github.com/jdesiloniz/svpdev/wiki/SVP-decap-and-details
I understand very little about any of that to be honest, but that didn't stop me from spending 20 minutes looking through it with fascination. Thanks for sharing this!
Don't worry, there's lots of stuff I don't understand either :D. But it's so cool to see the components I've interacted with last year with my own eyes ). I also hope to do more stuff after this, I had thought that I didn't have much to do anymore regarding the SVP but now I have a couple of ideas I'll be working on, hopefully. Will keep you all posted .