Songbird Posted May 25, 2016 Share Posted May 25, 2016 (edited) Update: The UART bug doesn't seem to be what actually causes Doom over JagLink to lock up and reset the level periodically. Look at this post for my detailed explanation and the fix I implemented which appears to address the issue after several hours of testing. Otherwise, if you just want to see the code or try out the *.abs file on a Skunkboard or other developer card, it's attached to this post. Game on! My original first post is quoted below: Famously old topic here: how to fix Doom networking. Been scouring old posts, and here are some possible experiments: Set parity to EVEN or ODD instead of NONE (EVEN seems to be transmitted on NONE according to Atari developer docs, page 74 of Software Reference) http://atariage.com/...-bug/?p=1318056 Send single $80 byte as header on each serial packet (Atari developer docs, page 6 of Hardware Bugs & Warnings) Set speed to 38400 instead of 115200 http://atariage.com/...-bug/?p=1318056 Mute audio by writing zero to bit 8 of $F14000 before any serial transmit / receive (Atari developer docs, page 28 of Technical Reference) Write back the ASICLK value after every byte received http://www.jagware.o...pic=451&p=13891 Did I get all of those right? Any other options I missed besides software UART emulation (already covered in this thread)? Note that for #2, Doom streams 6 bytes at a time for each packet. However this is all done in a software loop which polls for TBE, plus they interleave sending and receiving each byte, so I'm doubtful this is fast enough to honor the stop bits requirement listed in the Atari docs to avoid the bug. It may be that you have to send $80 before each byte in the packet, which would effectively cut your link speed in half. doom_n06.zip Edited June 4, 2016 by Songbird 1 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.