|
Post by Peer on Oct 2, 2022 10:44:34 GMT -5
... So the jumping could be caused by the now-off timing of the proprietory print routine, or by the interrupts. Just to keep those who follow this posted: The shaking is due to the timing of the special print-letters/speek-words/draw-vectors routine used in the animated scenes. No sense in trying to find a quick work-around, the timing is just off for the 6309. I also tried Pole Position in 6309-native mode, just out of curiosity. Nothing much to report, text is distorted, vectors mostly look fine, just as espected. I did some more reading, but not much time for further experiments. The new semester is starting, and there is much to prepare. Cheers, Peer
|
|
|
Post by nes4life on Oct 14, 2022 13:12:44 GMT -5
|
|
|
Post by Peer on Oct 14, 2022 13:41:12 GMT -5
That is great, thank you very much!
|
|
|
Post by Peer on Nov 28, 2022 15:24:48 GMT -5
Since quite a few things have happened, here is a quick update on my 6309 activities: I have unsoldered the GCE BIOS Chip in my 6309 console, soldered a socket in its place, and put in one of nes4life ‘s Multi BIOS PCBs, which came with a 64K eeprom. Now I can flash my own BIOS binaries and cycle between 8 images, which works absolutely great. Thanks a lot, nes4life ! As a first experiment, I have created a custom 6809 BIOS which contains a patched Draw_VLp() routine which does not suffer from the infamous „mystery gaps“ (see here if you do not know what those are). Those gaps, though small, can be seen in the mines and the ship of Mine Storm, for example. With the custom BIOS, the gaps are gone now, and the vectors of the Mine Storm objects now connect without interruptions. I will try to post some pictures in the near future. I then started working on a custom 6309 BIOS. When booted, it puts the CPU in 6309 native mode and from then on the processor runs with reduced cycle counts and extended instructions enabled. This also means that any cycle based timing is off to some degree. Most prominent, the Print_Str() routine is affected and the text becomes unreadable. I started with this routine and wrote a patched version with adapted timing. The text now looks as before and is readable again. I also ported the patched Draw_VLp() routine to 6309 timing. The fun with patching BIOS routines is that they have to fit in exactly the same rom space as the original routines. Basically this means that you have to achieve the same functionality with different cycle counts, but with (at most) the same number of bytes. And you have to take into account that most instructions have reduced cycle counts in 6309 native mode. Great for speed up, but hard if you need enhanced delays to fix the timing. Once I got this working (after several days of trials and fixing stupid mistakes I made) I ran some of the original GCE games with the 6309 BIOS. Mine Storm runs fine, also no gaps here anymore, and you can actually see the speed up you get from the 6309. The wobbling of the vectors at the beginning of a mine field is (almost) completely gone. Meaning, here the game now stays within the 50Hz frame barrier. The two distortion test screens of the Test Rev. cart now also stay within 50Hz and show no flicker at all. Armor Attack, Scramble and Berzerk run fine. Clean Sweep, as expected, is completely off, as it uses its own instruction cycle based timing for drawing the walls. There is nothing a BIOS patch can help here. That‘s it for now. And yes, all this is probably completely academic and of no general relevance, but it is sure fun to play around with, and already I learned a lot about the hardware and the BIOS in the process. Will keep you posted. Many Cheers, Peer
|
|
|
Post by Peer on Nov 29, 2022 9:11:48 GMT -5
I have now also updated the project web page with the contents of my previous post, and I have added the promised pictures:
|
|
|
Post by Peer on Dec 1, 2022 3:16:06 GMT -5
Please note that I have created a new thread in the main section, called "Vectrex with 6309 CPU / BIOS", which I will use from now on to report on my 6309 activities.
|
|