SebRmv
Members-
Posts
338 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Events
Store
Community Map
Everything posted by SebRmv
-
You crazy guys
-
Really great game. Just finished the medium mode !
-
Detecting skunk console sessions from the Jaguar side
SebRmv replied to Mr Morden's topic in Atari Jaguar
Just to clarify, yes I have made a more advanced FS implementation (I have still to release the client ) However, I do not really handle communication errors properly as I assume all is good in a brave new world. -
Yes I imagine perfectly the nightmare it should be to write this correct by hand. Actually, I thought it was possible to write madmac macros and conditionnals to circumvent the bug but unfortunately, since it is a one-pass assembler, it cannot work completely. Fortunately, now there is SMAC! Thanks again for this thread.
-
Well, we got some help. But still, I am happy to have guessed the rules correctly. Thanks for having been an oracle.
-
Finally, just had a look at smac source code. It seems that the five rules are: 1 - JUMP placement must ALWAYS be long aligned. 2 - JR placement is FREE 3 - All external page jumps must be LONG ALIGNED!!! 4 - All internal page jumps must be word offset from long aligned! 5 - Two NOP's must ALWAYS come after a JUMP or a JR instruction. It seems also that it is forbidden to make a JR from main memory to local memory and vice versa. But what about JUMP? Is that correct Gorf? -- First I have to say that I am impressed that you found this on your own. Especially rule 4 seems to come from nowhere. But I guess it is somehow related to rule 5. How did you figure out? By looking at the NET files? -- Let's continue the technical discussion. What happens when interruptions are enabled? How does it behave? What happens if each rule is individually broken?
-
This is where I do not see something special. Ends with 0, 2, 4, 6 or C If I take MODULO 4, this means no special alignment is needed.
-
you nut! I'm glad some one got it . But then I cheated... I saw Robert's posts I do like your hint system, though Unfortunately, I am too bad in english to get fully your pun. But great hint, indeed, now I got the answer
-
Ok, I think I get it Outside a PAGE: 0 + 4n (ie simply long aligned) Inside a PAGE: 2 + 4n Is it correct?
-
JR addresses end with 0, 2, 4, 6 or C target labels end with 2 or A
-
I just try to answer your questions. Maybe this will get clearer to me once written down. These addresses are long aligned but not phrase aligned (ie of the form 8n + 4) ? Ends with 4 or C Ends with 0, 8 or C Ends with 2, 6, A or E
-
Ok, another try 3 - non local jumps : phrase aligned 4 - local jumps : long aligned 2 - JR: does the rule depends on the length of the jump ?
-
Regarding rule 5, are the two nops always executed? Or does it depend on the fact that it is absolute/relative, local to the page/not local ?
-
Ok, so let's recapitulate the rules 1- 2- 3- 4- 5-Two nops after JUMP or JR
-
Which instruction? JUMP, JR or both.....look at the example carefully before you answer. When are they aligned on a long address? And are they always? Again, look carefully. Sorry, I meant absolute jumps (ie JUMP) in both cases. As I said, I haven't yet figured out a rule for relative jumps (ie JR) What do you mean by intra page jumps? Either you are local to the page(256 bytes) or you are not local. Alignments to local or external are different. It's not so much you making sure the pipeline gets emptied. It's more a question of when the instruction WILL empty the pipeline. But this is over analyzing still. The pipeline plays and important part but not an overly complicated part. You really do not need to know that to get the alignments right. yes, intra-page jumps = local to the page inter-page jumps = the contrary once again, I was just talking about JUMP but apparently this is not a correct guess
-
Finally fot some time to analyse a bit further. First recapitulate the labels (actually you gave this) Called from loop at = 00040084 AimCannonRET = 0004008C MoveCannon = 00041000 MoveCannonJ1 = 0004101C MoveCannonJ2 = 00041038 DoneMoveCannon = 00041070 CannonMove = 00041022 SubCannon = 0004103E IncHotSpot = 00041056 DecHotSpot = 0004105A The jumps 41012 jr EQ,CannonMove 4101C jump (RET) 41032 jr NE,SubCannon 41038 jump (RET) 41046 jr PL,IncHotSpot 41050 jr DecHotSpot 41070 jump (RET) Regarding the absolute jumps. They are all aligned on 4 bytes. Target labels are also aligned on 4 bytes. They are followed by at least two nops, is it intended? Regarding the relative jumps. I don't really see a rule here, apart from the fact that they are always followed by two nops. -- My guess was that: - for intra-page jumps, jump and target are aligned on 4 bytes. - for inter-page jumps, same rule applies but the pipeline should be emptied to the next phrase boundary before the jump occurs (ie add sufficiently enough nops to prevent unexpected results).
-
Yes, the jumps are indeed aligned on 8 byte boundaries, however, that is only a result of the necessary instructions between them. We know that 8 bytes are a phrase in Jaguar terminology. You are geting warm though. Here is a hint: You are correct x 2. I know I said the GPU sees memory externally at 64 bits but it does still 'understand' smaller data. Keep in mind the host processor determines some limitations for the GPU as well. The JR instructions DESTINATIONS are also very much aligned. But first you need to reconcile the above JUMP issues. Seb is getting warmer though folks. Ok, so if I understand, it is sufficient that everything (jump instructions as well as target labels) are aligned on four bytes (ie just a long word)? For relative jumps, I need to examine closely again your piece of code. Also, I am not sure I have understood the memory page issue...
-
Great move Gorf! I do the exercise: So the jump/jr are all aligned on 8 bytes (ie a phrase) boundary. The target labels of jump instructions are also aligned on 8 bytes boundary. On the contrary, the target labels of jr instructions do not seem to be especially aligned.
-
Some more screenshots here: http://removers.free.fr/atomic
-
Feel all free to submit your scores on http://removers.atari.org/atomic Moreover, I should mention that a slightly improved version will soon be released (more sound fx). But the score system will stay compatible.
-
That's probably your best best anyway. I see you are getting nicer and nicer.
-
Oops, that's bad. Has anybody else this problem? I carefully tested it in different scenarii.
-
Awesome!!! Thanks!! I will try this out hopefully later today. So what's new about this release? Well, I think the game itself is a bit more polished than the original version (while still being perfectible). Basically, it is the same game, but better The biggest improvement however is the online score & save system, which now opens the road to competition between Jaguar fans I should have added that the distributed version is the BJL version which runs also on Skunkboard. If someone wants to make a Jag CD version, he is welcome. It is also possible to make a "fake cartridge version" thanks to jag2card program by Matthias.
-
Hi, just a quick word to announce the immediate availability of Atomic Reloaded. (was fed up to see it on my hard disk) Just go on http://removers.atari.org/softs/download.php Cheers.
-
Hey Gorf, sorry I didn't know your work was already integrated in SubqMod ASM. As you probably noticed, I froze a bit my activity on Jaguar. I never tried myself to circumvent that bug, because I just didn't need it, but was thinking of alignment issues. I believe you when you say it's a pain in the *ss to do this by hand, really. It would be interesting to list all the cases where care must be taken. Once this work is done, it surely be possible to write a more higher level language targetting Jaguar RISC procs.
