Zerosquare Posted January 23, 2022 Share Posted January 23, 2022 You know me, I'm the eternal optimist. 1 Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 23, 2022 Author Share Posted January 23, 2022 On 1/22/2022 at 3:24 AM, Stephen said: That is great. Why isn't there at least some alternating color on the road like in the oldschool games / checkered flag? Oh, that was a release verion. It took me some years to understand why clipping was so easy in Wolf3d, but so difficult for academics and graphic cards with guard bands and the saturn hardware. You may check my code to see that I thought about clipping. I mostly goes along the lines that I pin the vertices to the border. JRISC has no SIMD. I don't have to force everything into VEC3. I can just identify: This edge crosses this border, so x ( or y ) is already known. I just calculate the other ordinate. No 1 px gap. 1 Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 23, 2022 Author Share Posted January 23, 2022 13 hours ago, Zerosquare said: I see you've chosen option #1. I have done the same thing with the C64 VIC II . At first you think it is easy. Then you see some limitations. Then you get to know that you need to hit a precise cycle to set a value .. and not to position something on screen while racing the beam, no it is some strange internal working. Then you learn that the effect doesn't work for the left part of the screen. Then you learn about changing the line counter for characters .. oh that is easy. Then you try it on the sprites .. and oh that is much more complicated and you cannot just terminate a sprite it seems. You have to write to it every scanline to make it stop early. So it is a forth and back of possiblities. The Jag is on a the next level of complication. How can you not start at #1 . For example, Atari said that you should use Grouraud because it is fast. The people bought the Jag for Doom and AvP, which are fully textured. So you have some kind of "attractivity" which is more a number. Back in the day, I saw wolfenstein3d ( illegal in our country ) and then some proud Mac owner showed me a flat shaded flight sim. Me and my fried immediately turned away. So see how the Atari advice was nuts? I never understood why people liked StarFox after F-zero . I mean for StarFox as it is would run on any computer of the day ( family computer ). You would not need to buy a console. So you start to code and you encounter problems and you think you do something wrong and then stop or you switch to pixel graphics. People love the color banding on pixel graphics. Sega Genesis had it all. Seems like I have not chosen #2. The Jag is just too depressing. 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted January 23, 2022 Share Posted January 23, 2022 5 hours ago, ArneCRosenfeldt said: Seems like I have not chosen #2. The Jag is just too depressing If it is too hard, you are to weak. Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 25, 2022 Author Share Posted January 25, 2022 http://www.jagware.org/index.php?/topic/464-blitter-timing/ for 16 bit access >in pixel mode we have same cycle time but insteed of a phrase it's a pixel size that is transfered 1 Quote Link to comment Share on other sites More sharing options...
phoboz Posted January 26, 2022 Share Posted January 26, 2022 (edited) @ArneCRosenfeldt I found your project on GitHub, is this related somehow to the discussion here? https://github.com/A-C-Rosenfeldt/AtariJag6DoFtexture60fps I must admit I don't understand much of it, could you please explain how to compile and run this on the Jaguar, or in an emulator? Edited January 26, 2022 by phoboz Quote Link to comment Share on other sites More sharing options...
42bs Posted January 26, 2022 Share Posted January 26, 2022 33 minutes ago, phoboz said: @ArneCRosenfeldt I found your project on GitHub, is this related somehow to the discussion here? https://github.com/A-C-Rosenfeldt/AtariJag6DoFtexture60fps I must admit I don't understand much of it, could you please explain how to compile and run this on the Jaguar, or in an emulator? I doubt this is anything useful. Just a bunch of "thoughts". Quote Link to comment Share on other sites More sharing options...
42bs Posted January 26, 2022 Share Posted January 26, 2022 OMG, found this in the readme: "Don't know why they did not go with hyperthreading? " <irony>I even wonder, why they did not give Tom 512K of RAM. Damn it, a simple RP2040 has already 264K of it.</irony> 2 Quote Link to comment Share on other sites More sharing options...
phoboz Posted January 26, 2022 Share Posted January 26, 2022 I am amazed the way he codes, I see that he avoids using the processor registers. The operators usually only have integer numbers as operands in most of the cases. Then suddenly there is a C if-else-if block in the assembler code. He also manage to jump to these blocks using jump statements. Quote Link to comment Share on other sites More sharing options...
42bs Posted January 26, 2022 Share Posted January 26, 2022 1 minute ago, phoboz said: I am amazed the way he codes, I see that he avoids using the processor registers. The operators usually only have integer numbers as operands in most of the cases. Then suddenly there is a C if-else-if block in the assembler code. He also manage to jump to these blocks using jump statements. I think it is only "thoughts", no real code. Strange though. Quote Link to comment Share on other sites More sharing options...
42bs Posted January 26, 2022 Share Posted January 26, 2022 On 1/23/2022 at 8:55 AM, ArneCRosenfeldt said: Jag is just too depressing. <rant>Depressing is, if you write a game and have to sacrifice more and more of the gameplay to make it fit into 256B.*hmpf*</rant> Ooops completly OT ? Quote Link to comment Share on other sites More sharing options...
phoboz Posted January 26, 2022 Share Posted January 26, 2022 (edited) 10 minutes ago, 42bs said: <rant>Depressing is, if you write a game and have to sacrifice more and more of the gameplay to make it fit into 256B.*hmpf*</rant> Ooops completly OT ? I think he is a bot! Neither the statements he makes, nor the code he writes make any sense. Edited January 26, 2022 by phoboz 1 1 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 26, 2022 Share Posted January 26, 2022 4 hours ago, 42bs said: OMG, found this in the readme: "Don't know why they did not go with hyperthreading? " <irony>I even wonder, why they did not give Tom 512K of RAM. Damn it, a simple RP2040 has already 264K of it.</irony> Aha - no wonder extra memory is needed, to keep the game objects in C#. Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 28, 2022 Author Share Posted January 28, 2022 On 1/26/2022 at 4:21 PM, phoboz said: I am amazed the way he codes, I see that he avoids using the processor registers. The operators usually only have integer numbers as operands in most of the cases. Then suddenly there is a C if-else-if block in the assembler code. He also manage to jump to these blocks using jump statements. The type is in the mnemonic. HashTag is not used meaning "verbatim" or "literal" elsewhere, but I must say that I like it. So now the HashTags are back in. I use register so much that the default meaning is the register number. Why else do you think there is a number in the target field? I like parentheses and brackets, but why does verbatim has a start, but no end, but indirection has start and end like tags in XML? Feel verbose. Better use one pointer symbol: * ? 2 Quote Link to comment Share on other sites More sharing options...
phoboz Posted January 28, 2022 Share Posted January 28, 2022 36 minutes ago, ArneCRosenfeldt said: HashTag is not used meaning "verbatim" or "literal" elsewhere, but I must say that I like it. So now the HashTags are back in. I use register so much that the default meaning is the register number. Why but how on earth can you, or the assembler tool you use (?) distinguish between a literal, or a register reference? I didn't see that you even used the HashTag once in your code? So the calculation in this file is only performed on random values, e.g. what ever was stored in the processor register before your calculation: https://github.com/A-C-Rosenfeldt/AtariJag6DoFtexture60fps/blob/main/sphereCollision.asm#L13 Except that you use a special trick to zero r6: XOR 6,6 Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted January 28, 2022 Share Posted January 28, 2022 Please look up the best 68000 command and execute it as a literal: STOP 2 3 Quote Link to comment Share on other sites More sharing options...
phoboz Posted January 28, 2022 Share Posted January 28, 2022 (edited) 41 minutes ago, CyranoJ said: Please look up the best 68000 command and execute it as a literal: STOP I am just wondering if he will ever give up? At least I am! (because this might actually encourage him to go on) @ArneCRosenfeldt I'd wish your persistence could be used for something more creative? I am sure someone here could help you if you wanted? Edited January 28, 2022 by phoboz 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted January 28, 2022 Share Posted January 28, 2022 5 hours ago, ArneCRosenfeldt said: HashTag It is "hash", a "hash" together with a symbol is a hashtag, like #WhatIsGoingOnHere Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 28, 2022 Share Posted January 28, 2022 1 hour ago, 42bs said: It is "hash", a "hash" together with a symbol is a hashtag, like #WhatIsGoingOnHere It's a pound. Because C : Enter, hash hash hash just doesn't have the same ring to it. 1 Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 28, 2022 Author Share Posted January 28, 2022 1 hour ago, Stephen said: It's a pound. Because C : Enter, hash hash hash just doesn't have the same ring to it. English is not my native language. We called it something entirely else. And later somehow people avoided to talk about code. 1 Quote Link to comment Share on other sites More sharing options...
ArneCRosenfeldt Posted January 28, 2022 Author Share Posted January 28, 2022 7 hours ago, phoboz said: but how on earth can you, or the assembler tool you use (?) distinguish between a literal, or a register reference? I didn't see that you even used the HashTag once in your code? So the calculation in this file is only performed on random values, e.g. what ever was stored in the processor register before your calculation: https://github.com/A-C-Rosenfeldt/AtariJag6DoFtexture60fps/blob/main/sphereCollision.asm#L13 Except that you use a special trick to zero r6: XOR 6,6 The assembler distinguises it by "Q" like quick or "I" like immediate . Yeah I tried out what literals won't need 3 words of precious internal RAM. The code is not all glued together and also not using English variable names does not always work (experiment failed). I have to give domain names to registers. 2 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 28, 2022 Share Posted January 28, 2022 29 minutes ago, ArneCRosenfeldt said: 1 hour ago, Stephen said: It's a pound. Because C : Enter, hash hash hash just doesn't have the same ring to it. English is not my native language. We called it something entirely else. And later somehow people avoided to talk about code. Sorry - it was a joke, and a very poor one at that. 1 Quote Link to comment Share on other sites More sharing options...
42bs Posted January 28, 2022 Share Posted January 28, 2022 34 minutes ago, ArneCRosenfeldt said: The assembler distinguises Which assembler? The syntax is kinda weird. Quote Link to comment Share on other sites More sharing options...
Zerosquare Posted January 28, 2022 Share Posted January 28, 2022 (edited) That's the beauty of writing "ideas" instead of actual code. You don't need to worry about assemblers, or syntax, or hardware, or... Edited January 28, 2022 by Zerosquare 1 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 28, 2022 Share Posted January 28, 2022 2 hours ago, Zerosquare said: That's the beauty of writing "ideas" instead of actual code. You don't need to worry about assemblers, or syntax, or hardware, or... This can be extended to 3D code via Excel sheets full of number-wang cycle counting. At least with spreadsheets, there is something to actually show! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.