Jump to content
IGNORED

Klax, Atari ST to Jaguar conversion


JagChris

Recommended Posts

Just a small update to let you know Klax3D is not abandoned yet. Last Saturday I did not get enough time to fix the artifacts (and didn't get to it until today), but they are all fixed now.

 

Later today, if time permits, I'd like to implement the double-buffering and will post the video. It's bloody fast under emulator, since I also implemented final optimization :) (hence the artifacts), so I suspect it should run easily at 60 fps - but I could be wrong about that, so let's leave it at that till I see the video of this thing running on a real jag.

 

 

Stephen - you still have your jag set-up with video capture running ? Will you be able to grab the video from real jag later this weekend ?

 

 

 

Looks like the 3D backend in C is slowly shaping up :) I would certainly like to expose this functionality into VRBasic later this year.

 

Should be fun, doing real-time flat-shaded 3D gfx in Basic :grin:

Link to comment
Share on other sites

I think I have a potential release candidate for testing. No, there's no double-buffering yet, but I'd be curious how fast it runs on real HW and how does the flashing (due to absence of double buffering) actually look like. I will send the build to Otto for testing on real jag and hopefully he can post a video of it.

 

This build is significantly faster than the previous one (which caused so much flaming).

 

Anyway, here's the YT vid of my VJ's output:

 

Don't worry, I'm not gonna post any framerate numbers :)

 

5 cubes (one at a time for now, due to massive refactoring and optimizations - but that can be changed later, as well as the perspective change when player strafes with the 'catcher' thingy) are being moved across the field from back to front, one scanline at a time, thus it's super smooth.

 

The full loop is 100 times the 5 cubes - e.g. 500 cubes are moved, one scanline at a time, during the run.

 

It's so fast, however, that you can barely see the movement. I had to put wait() statements in the code after each movement to actually see the movement, since it just flashes in an instant :)

 

 

So, I guess that it should not be too hard to hit 60 fps on real jag even with double-buffering...

Link to comment
Share on other sites

Stephen - you still have your jag set-up with video capture running ? Will you be able to grab the video from real jag later this weekend ?

 

 

 

Looks like the 3D backend in C is slowly shaping up :) I would certainly like to expose this functionality into VRBasic later this year.

 

Should be fun, doing real-time flat-shaded 3D gfx in Basic :grin:

Yeah - I can do a vid capture for you.

Link to comment
Share on other sites

Because there's no way in hell I am going to spend $200-$300 (or whatever stratospheric price it has reached recently) for that.

 

Could I afford that ? Yes. Are there more important things to spend that money on ? Absolutely :)

 

 

My understanding is that these things are now meant only for collectors - to catch a dust on a shelf :) , not help actual developers make games, correct ?

 

 

I don't even own jaguar. I only have one -temporarily- borrowed from WalterJ_64bit, who deserves a huge thanks for this!

I do own a small collection of jag games.

My ears are burning! :cool:

Link to comment
Share on other sites

It's so fast, however, that you can barely see the movement. I had to put wait() statements in the code after each movement to actually see the movement, since it just flashes in an instant :)

Are your using FRAPS or something like to grab the video? It might be having trouble syncing to VJ's output for some reason. It's a shame youtube mangles video into 30fps anyway, that only adds to problems :/ Or maybe you need to reposition those "wait() statements" to better sync things somehow?

 

From looking at the video, it looks like there's a conflict between the capture and your screen drawing as there's lots of tearing? (or incomplete frame drawing or whatever you want to call it, it at least gives the appearance of this). I quickly made an animated GIF to show what the first second or two of frames looks like frame-by-frame. You can see the tiles are sometimes incomplete as there's anything from only a few pixels drawn or a few or no pixels missing. Whatever solution you're using it's not resulting in a decent youtube video :/

 

Here's the GIF, first 60 frames on a 0.5 second delay, enlarged (and huge! click it for full size):

 

post-25413-0-97098900-1394355072.gif

 

So, I guess that it should not be too hard to hit 60 fps on real jag even with double-buffering...

Only one way to find out :0)

 

Just beware, if you have someone grab video for you, many capture devices only grab at 30fps and results can be rather sketchy and not very informative with mangled frames or just hazy 240P over composite or whatever. I've got an xRGB mini hooked up to an Elgato GCHD to capture the Jaguar's SCART RGB output, I can grab that at 720P/60, giving a really nice representation of 9x size chunky pixels. If anything is amiss on real hardware, it's very easy to skip through a frame at a time and see what's happening. I have this set up all the time, it'd take me 10 to 20 minutes from receiving a binary to hosting a file.

  • Like 2
Link to comment
Share on other sites

re:vid - Yes, I was using regular Fraps. I know that YT mangles videos. It also tends to do a horrible postprocessing that can even change the camera angle (had that problem in PC captures).

 

re:tearing. Yes, this build is supposed to tear. The thing is it should not tear much, but how much - I don't know until I see the output. I was hoping to get a feel for that from vid that Otto is doing, but his email declined the 60 KB zip.

But, I don't know if his set-up captures 60 Hz. I guess, we'll wait and see...

 

If that's not gonna work, I will have to post the binary here, since this week will be busy and I'd like to know before Monday...

 

 

 

EDIT : Dang, I forgot to mention the primary reason for the non-double-buffering build - get an average 'fps' from real machine to figure out how much time is left for other stuff...

 

Double-Buffering is in the process right now, but not sure I can finish it today, so probably next week...

Edited by VladR
Link to comment
Share on other sites

I'd certainly like to have a look at a binary running on my own jag, YT seems to add all sorts of annoying free 'extras' to videos :(

 

good you are still progressing, don't forget the straffing action will occur almost constantly throughout the game, especially on later levels (probably not every frame, but a large majority of them)

Link to comment
Share on other sites

good you are still progressing, don't forget the straffing action will occur almost constantly throughout the game, especially on later levels (probably not every frame, but a large majority of them)

Yeah, I presume that there will be multiple strafes within one second, resulting in appropriate change of perspective of the cubes (as if you strafed in, say, Doom). But, I didn't get to implement that functionality, just yet.

 

I did, however, just get the FrameCounter running (in the startup.s), so I can get a relatively precise measurement of elapsed frames.

 

This also allowed me to finally wait for VBLANK in my C code, so that I could finally 'emulate' the 60 Hz feel (albeit still with tearing).

 

Here's a YT video of how it's supposed to look at real speed:

 

Link to comment
Share on other sites

Just beware, if you have someone grab video for you, many capture devices only grab at 30fps and results can be rather sketchy and not very informative with mangled frames or just hazy 240P over composite or whatever. I've got an xRGB mini hooked up to an Elgato GCHD to capture the Jaguar's SCART RGB output, I can grab that at 720P/60, giving a really nice representation of 9x size chunky pixels. If anything is amiss on real hardware, it's very easy to skip through a frame at a time and see what's happening. I have this set up all the time, it'd take me 10 to 20 minutes from receiving a binary to hosting a file.

That's much nicer than what I can do. Best I can do is grab via s-video, and I honestly don't know what it would do to the output.

Link to comment
Share on other sites

Those are much more impressive than random VJ quotes. Thanks for the vid's JC.

 

I'd suggest seeing how it runs with multiple cubes moving, the real game gets very frantic with a lot of tiles in play and moving at a single time.

 

Good work so far, keep it up!

Glad you like it ;)

 

I will need to do a bit of refactoring to process multiple moving cubes at different locations, but that is mostly a high-level work - e.g. code reshuflling and lots of testing (VJ is a true godsend in this regard!)

 

I'm very glad to see, from the video, that at full speed, it runs roughly as fast as in my VJ - you can barely blink to see the the cube go through all 5 columns - thus leaving me with lots and lots of performance.

 

 

Most of all, I think it's wonderful that the notion of 'slow' C for 3D rendering on 68k is finally broken.

 

 

This proves that One does not need a GPU, Blitter, or Jerry and not even Assembler to do 3D gfx @ 60 fps. The poor old 68000 still packs a punch ;)

 

Now, imagine I'd switch the code to GPU that runs at double frequency with the instruction throughput (within a second) being somewhere in the range of 4x-10x....

Link to comment
Share on other sites

Are you trolling us, Vlad? I offered to record a pixel-perfect 60Hz video and you have JagChris record with a 1990s mobile phone? Bizarre.

 

Now, imagine I'd switch the code to GPU that runs at double frequency with the instruction throughput (within a second) being somewhere in the range of 4x-10x....

Would that equate to 4-10 cubes at once? POWA! ;0)

Link to comment
Share on other sites

Are you trolling us, Vlad? I offered to record a pixel-perfect 60Hz video and you have JagChris record with a 1990s mobile phone? Bizarre.

 

 

Would that equate to 4-10 cubes at once? POWA! ;0)

No, I'm not, but you certainly seem to troll now ! At first you were all screaming - "lol, 3D, C language / no asm = 10 fps, ... blah blah blah'. And now that it runs at 60 fps, you will just keep making some other stupid remarks ? Seriously ?!?

 

Just watch the full-speed video that I posted from VJ (its speed is comparable to JagChris's vid). I'm confused, however - you said your technical abilities aren't limited to art drawing. So, what's so hard to understand on the concept - where the full-speed vid is over an order of magnitude done sooner than the one which waits for VBLANK - and realizing there is ample performance buffer (to be blunt - for plenty other cubes) ?

 

Talk to Linko if you need explanation - I am afraid that if I do it, you'll just keep posting some 'English' 'funny' pictures (as always).

 

This is EXACTLY why I sent out the build to JagChris first - so as to get some honest, real feedback first, since otherwise I'd just get flamed with yet another stupid remark.

 

Yeah, his video is not of ideal quality, but at least it's something and he did it on the moment's notice yesterday evening.

 

 

I am at work so can't upload the builds to this thread, but will do so in the evening.

Link to comment
Share on other sites

No, I'm not, but you certainly seem to troll now ! At first you were all screaming - "lol, 3D, C language / no asm = 10 fps, ... blah blah blah'. And now that it runs at 60 fps, you will just keep making some other stupid remarks ? Seriously ?!?

 

Just watch the full-speed video that I posted from VJ (its speed is comparable to JagChris's vid). I'm confused, however - you said your technical abilities aren't limited to art drawing. So, what's so hard to understand on the concept - where the full-speed vid is over an order of magnitude done sooner than the one which waits for VBLANK - and realizing there is ample performance buffer (to be blunt - for plenty other cubes) ?

 

Talk to Linko if you need explanation - I am afraid that if I do it, you'll just keep posting some 'English' 'funny' pictures (as always).

 

This is EXACTLY why I sent out the build to JagChris first - so as to get some honest, real feedback first, since otherwise I'd just get flamed with yet another stupid remark.

 

Yeah, his video is not of ideal quality, but at least it's something and he did it on the moment's notice yesterday evening.

 

 

I am at work so can't upload the builds to this thread, but will do so in the evening.

 

jeebus, it was a joke, hence the smiley.

Link to comment
Share on other sites

OK, I'll do it then.

 

187301.jpg

 

 

 

If I were you, I'd rather shut up, because:

1. You were the one vehemently advocating that any 3D C rasterizer will take 'hours' to render single frame

2. You were also laughing that i will not do over 10 fps.

 

And you've been working with the target platform (jag) for how long ? 10+ yrs ?

 

So, now that I came up with some pretty optimized code that do that in 60 fps, all you can push yourself to do is to post some stupid .GIF ?

 

 

Nice :)

Link to comment
Share on other sites

No actually. I was laughing at you using JagChris for 'technical advice' - because he's obviously leagues above all the other offers in this very thread.

 

Managed to read the jagpad yet?

 

What you have shown is NOT a game, its a demo of a cube sliding (not rotating) down a table. it's about a bajillion miles away from Klaz. Weren't you the one saying you could write it in a week? Wasn't that two weeks ago? And you've come this far? LOL.

 

You can do as many FPS as you like, it's not like you'll ever finish anything, is it?

 

If you had any clue what you were talking about you'd realize I've been an advocate for using the 68000 to make simple games for the last 5 years. Get off your high horse and get on with actually finishing a game or a project, instead of starting yet more and never completing any.

 

You know, if you manage to write a 3D game using the 68000 and a high level language I'll be the first person there going WHOOT. YES. I KNEW IT. Because I've been saying for ages that if the ST/Amiga could handle good 3D games (Carrier Command, Interphase, Starglider) then there is no reason the Jaguar can't as well. The RISCs are nice but the game is what matters. But no, you want to continue to gloryboat and take stabs at the very people who would support you. Hurrah, good for you.

 

To be honest, I'm shocked the 'good folk' at JS2 took you to heart. 4 years ago when I said basically the same thing they wanted to stone us for not using the GPU. HERESY. But the Book of Gorf says such talk is EVIL and Thou Shalt Not. Kill the infidels!

 

So, if you want to continue to take stabs at probably the one team who without question would side with the 'make it easy for people' argument, go ahead.

 

As for nice GIFs, that's pretty much all you have ever shown.

 

[EDIT]

 

Actually, vladr, i don't know what your problem is. You seem to have come to AA with a stick up your arse for both this forum, and reboot. Your VRBasic project is great, I'm happy you are trying to bring that to the masses for more Jag projects. Fantastic.

 

What I dislike, about YOU personally, is the constant snide remarks and jabs. The backhanders, and the inate smugness of 'oh, I'm so fucking good at everything, look at me. I'm going to ask for advice then shit all over the people offering it' - The fact, that you clearly don't grasp even basic concepts like double buffering - That, you can take and shove where the sun doesn't shine.

 

Please, finish a project and release it. You are capable of that, right? Only need a week, apparently ;)

 

 

If I were you, I'd rather shut up, because:

1. You were the one vehemently advocating that any 3D C rasterizer will take 'hours' to render single frame

2. You were also laughing that i will not do over 10 fps.

 

And you've been working with the target platform (jag) for how long ? 10+ yrs ?

 

So, now that I came up with some pretty optimized code that do that in 60 fps, all you can push yourself to do is to post some stupid .GIF ?

 

 

Nice :)

Edited by CyranoJ
  • Like 2
Link to comment
Share on other sites

Hey CJ, I have not said anything about you here and I let the last discussion go because Linko asked it. And you know this isn't technical advice, just a couple videos. Now be cool and I'll be cool.

 

No actually. I was laughing at you using JagChris for 'technical advice' - because he's obviously leagues above all the other offers in this very thread.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...