Overview Features Coding ApolloOS Performance Forum Downloads Products Order Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.
Please visit our Apollo-Discord Server for support.



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Information about the Apollo CPU and FPU.

Writing 3D Engine for 68080 In ASMpage  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 

Nixus Minimax

Posts 416
06 Jan 2020 09:45


Nixus Minimax wrote:
3.9 contains all the info on older OS versions, so you are OK with it. However, it would not code a program exclusively for any of the OS versions that came out after Commodore went bankrupt.

This should have read: "However, I would not code..."



Gunnar von Boehn
(Apollo Team Member)
Posts 6207
06 Jan 2020 09:48


Maybe to much talk and online reading creates only confusion.

Reading files from disk is really simple.
Its just a few lines to code.

For a demo its not needed and you can include all images and files just in the binary.
But for a game with maybe intro, probably several level, maybe a highscore -  loading different level files, or different music just is very handy.

But all this could be done later.
I would propose to start simple, open a screen, and make a simple test render.

And my advice is NOT to surf the internet so much looking for tips as many posts that you might find online are posted by confused people talking nonsense.



Vladimir Repcak

Posts 359
06 Jan 2020 13:16


wawa t wrote:

therefore im puzzled why would you want to use such a platform, rather than trying to push one that is more set in stone

- I sincerely, from the depth of my heart, love coding in assembler for a retro platform and extract last ounce of performance by writing up to dozen versions of same routine and counting cycles

- Vampire is a great next performance step from Jaguar AND has an actual large installed user base AND is actively being developed right now

- my HW cut-off is Sega Saturn, anything after that, might as well get back to DX12 shaders and Steam Unity Asset Shovelware...

- And this is probably the most important one : The community doesn't appear to be even 5% as rabid as Jaguar one

Makes sense ?



Gunnar von Boehn
(Apollo Team Member)
Posts 6207
06 Jan 2020 13:19


This all makes sense..
How about you start with a small demo?
And you join us on IRC where we can quicker discuss Rastezier ideas


Wawa T

Posts 695
06 Jan 2020 14:05


Vladimir Repcak wrote:

  Makes sense ?

i see. i dint know there are communities more rabid than amiga, but ok, on apollo forum its pretty safe. save for me apparently;)

when every cycle matters, from this point of view its probably better to forget the os. i think you simply see by doing, as gunnar says. good luck.


Vladimir Repcak

Posts 359
06 Jan 2020 17:00


Gunnar von Boehn wrote:

This all makes sense..
  How about you start with a small demo?
  And you join us on IRC where we can quicker discuss Rastezier ideas

Yeah, I got stuck last week  on few issues, like getting Windows build of vasm, or reading the NDK 3.9 or finding out the Asm gfx samples I downloaded actually all used some C code and from my experience on Jaguar, the very last thing you want to do is to introduce the C compiler, even if it's just to start the application (as that has severe consequences on the segmenting and related issues).

But, yesterday I found a super-short (less than 50 lines) ASM example code that starts the bitplane screen and draws some lines.

I have a script that compiles and deploys it to WinUAE and it's running there with the changes I make, so I finally have a baseline here.

Just started transferring the chunky ASM code from that previous C/Asm sample. Hopefully, will have that today...

I tried the IRC link the other day but kept getting error msg. May try again or perhaps rather get an IRC client...


Kamelito Loveless

Posts 260
06 Jan 2020 17:34


There’s a binary even with an installer. (Vasm+ndk for Windows)
  Check first post.
  EXTERNAL LINK


Kyle Blake
(Needs Verification)
Posts 108/ 1
06 Jan 2020 18:24


Vladimir Repcak wrote:

  - And this is probably the most important one : The community doesn't appear to be even 5% as rabid as Jaguar one
 

There's a Jaguar community?

learning something everyday


Boban Krsmanovic

Posts 11
07 Jan 2020 21:42


Just wanna say, I've been lurking here almost every day, and I very much look forward for the demo, or game, Vladimir is going to make.
Some exclusive Vampire title sounds great.

Keep up the great work!
Hopefully, soon we will be see some demo screens.



Grzegorz Wójcik (pisklak
(Apollo Team Member)
Posts 87
09 Jan 2020 12:17


Welcome to Amiga coding Vladimir!
 
  I think you will soon understand that using ORG is almost useless on Amiga ;)
    I suggest you to ask more questions about Amiga and exclusive Vampire HW coding on our IRC :)


A1200 Coder

Posts 74
10 Jan 2020 06:47


Vladimir Repcak wrote:

Gunnar von Boehn wrote:

 
Vladimir Repcak wrote:

  Perhaps I'm mixing RTG gfx card with just SW-based RTG drivers that rasterize on 060 ?
 

 
  Let me give you some example info
 
  Old AMIGA Model 500..3000
  Resolution 320x256
  GFX mode Planar
  Colors 16
  3 MB/sec memory bandwidth free for drawing the screen
 
  Old AMIGA Model 4000 and 1200
  Resolution 320x256
  GFX mode Planar
  Colors 256
  5 MB/sec memory bandwidth free for drawing the screen
 
 
  Some AMIGA users have upgraded their system with GFX Expansion with Chunky mode. It depends on the model what memory bandwidth you have to them typically 3-8 MB/sec
 
  So in short bandwidth is always low compared to what we talk about.
 
 

  Thanks. This HW fragmentation is quite brutal. This is just like PC back in the day! Everybody had different:
  - CPU
  - RAM
  - HDD
  - GFX card
 
  Good luck handling [with one build] all those various configurations...

While there are many different configs, typically only 2 are identified demo competitions:
A500/1MB (includes also those A500+/A600 models)
AGA + 68060 66MHz/64 MB (A1200/A4000)

Additionally, you will find that these days, new games can require AGA Amiga/2 MB ram as a minimum. Moreover, for 3D AGA demos/games a 68030/50 MHz was often identified as a minimum.

I would not support anything less than a 68030 for a 3D game. 68030 is a common accelerator board for the A1200 that many use even today for just playing games. So you have that and the Vampire. A 68060 system can well only have AGA, and no additional gfx board. Gfx boards were not often supported in demos or games on the 68k Amigas, could be skipped as well, as nobody today would use such nonstandard hardware anyway.

And also, while chip ram is SLOW on older Amigas, the screen rendering in 3D games is done in fast ram (memory access speed up to 50-60 MB/sec on 68060 systems), so the slowness applies only to the c2p conversion speed.



Nixus Minimax

Posts 416
10 Jan 2020 08:56


A1200 coder wrote:
Gfx boards were not often supported in demos or games on the 68k Amigas, could be skipped as well, as nobody today would use such nonstandard hardware anyway.

Every Vampire supports chunky graphics. I'd say this means chunky graphics hardware is constantly gaining in popularity. A lot of 060 demos are very chunky-centric and thus do support graphics cards. It just exchanges a call to a c2p function by one to the cybergraphx-API...




Gunnar von Boehn
(Apollo Team Member)
Posts 6207
10 Jan 2020 09:34


Let us not forget one thing.
The very best 3D game you can do on AGA AMIGA +68060 card
will still be extremely weak and poor compared to what you can do on Vamp.

If you want to impress Vampire owners and offer them a game what they just HAVE TO BUY then you need to focus on the power that AMMX/VAMP/SAGA offer. 

This means you will design a game which is many many levels over what classic HW could do.

And this is a sensible decision.


Vladimir Repcak

Posts 359
10 Jan 2020 19:42


Gunnar von Boehn wrote:

Let us not forget one thing.
  The very best 3D game you can do on AGA AMIGA +68060 card
  will still be extremely weak and poor compared to what you can do on Vamp.
 
  If you want to impress Vampire owners and offer them a game what they just HAVE TO BUY then you need to focus on the power that AMMX/VAMP/SAGA offer. 
 
  This means you will design a game which is many many levels over what classic HW could do.
 
  And this is a sensible decision.

What is your position on framerate vs visual quality vs resolution here ?

Obviously, everybody wants the highest possible resolution at highest quality at 60 fps.

But, a compromise must be made here, somewhere.

Now, ideally, there would be some kind of LevelOfDetail that would allow people to choose if they want 60 fps or nicer gfx. Which is laboursome, as you create art assets 3 times.

On another hand, Apollo will give users option to choose ridiculously high resolutions. 1600x1200 is a factor of 30x more pixels than 320x200.

It would appear to me, that I should strive to have 60 fps at 320x200 and anything above that is optional ? What do you think of it ?


Martin White

Posts 85
10 Jan 2020 20:12


I'd rather have a nice 50fps @ 320x240 any day than 10fps 800x600!

And honestly, at these kind of resolutions and speeds I cannot see the appeal of 3D. IMO it just looks like rubbish. I don't know why everyone has a facination on whether something can run Doom or not (or similar). I mean back when it came out, I get it, it just blew us all away because we'd not seen it before. But pixelated 3D just looks like rubbish compared to what we have now.

Quality 2D pixel art on the other hand can look stunning at any resolution if done right!


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
10 Jan 2020 20:14


Vladimir Repcak wrote:

  It would appear to me, that I should strive to have 60 fps at 320x200 and anything above that is optional ? What do you think of it ?

 
Very difficult question.
 
For my personal taste is
Res= 320x200 is too low.
Tex= Direct Pixel (Next) is to jittering
 
 
I would aim for 16:9 resolution of
Res 480x270 or 640x360
Tex= Biliniar
With Screen Color Depth 16bit and S3 compressed 24bit textures.
 
Good animation sequence will be nice.
And question is how complex models and much details we can draw.



Vladimir Repcak

Posts 359
11 Jan 2020 16:12


Martin White wrote:

I'd rather have a nice 50fps @ 320x240 any day than 10fps 800x600!
I hear ya, but outside of racing and FPS genre, 10 fps is pretty alright for most genres. I played lots of games at that framerate, even recently. Turn-Based strategy games, for example, can get away with such abysmal framerate. When I played SpaceHulk about a decade ago on PC, I didn't get more than 10 fps in 1920x1080, but I played it for 50 hours at that framerate.

Martin White wrote:
But pixelated 3D just looks like rubbish compared to what we have now.
 
  Quality 2D pixel art on the other hand can look stunning at any resolution if done right!
Yes, that's exactly why I prefer flatshaded look to early '90s texturing that aged incredibly awful.

But Gunnar showed us that they have some functionality for filtered texturing. Of course, we don't yet know how fast it is, but if you designed a 3D scene around its performance characteristics, I'm sure it would look stunning.

At the very least, the 3D engine cutscenes, where it's generally accepted by everybody to have a lower framerate, could look absolutely gorgeous!



Vladimir Repcak

Posts 359
11 Jan 2020 16:25


Gunnar von Boehn wrote:

 
  Very difficult question.
 
  For my personal taste is
  Res= 320x200 is too low.
  Tex= Direct Pixel (Next) is to jittering
 
 
  I would aim for 16:9 resolution of
  Res 480x270 or 640x360
  Tex= Biliniar
  With Screen Color Depth 16bit and S3 compressed 24bit textures.
 
  Good animation sequence will be nice.

Even 270 or 360 vertical resolution is too low from my experimenting. We must cross 400, to at least 480 and that's where it stops being over-pixelated.

Same 3D scene in 1600x200 vs 640x480 looks vastly superior in 640x480 even though the difference in pixels is only ~4%. Anything beyond 640 only marginally improves the final look, if you're staying at 240p.

Now, there is a possibility, that filtered textures might give us the same look at 270p/360p that unfiltered at 480p. I haven't really tested that on Jaguar, so unsure. Did you happen to make these tests ?

Gunnar von Boehn wrote:
  And question is how complex models and much details we can draw.
 

Yeah, well for sure we won't be able to draw two 60,000 polygon 3D models like on X360 that has over 10 GHz Raw power just in its CPU :)

That's why I mentioned FPS genre - you can get a lot of 'cool' factor from simple, 2-triangle wall, as we have the RAM for textures and lightmaps. And, at loading-time, you can precompute a lot of effects into the lightmaps, as from performance standpoint - it costs the same to fetch the texel whether the lightmaps is a single-color rectangle, or it contains multiple per-pixel shader FX.

Of course, designing a Vampire-specific FPS 3D engine is a whole other ball-game :)



Gunnar von Boehn
(Apollo Team Member)
Posts 6207
11 Jan 2020 16:29


Vladimir Repcak wrote:

Of course, we don't yet know how fast it is, 

This depends mostly on the outer game code feeding it,
and also on cache hitrate.
Under best condition up to 40 MegaTexel/sec


Vladimir Repcak

Posts 359
11 Jan 2020 17:03


Gunnar von Boehn wrote:

Vladimir Repcak wrote:

  Of course, we don't yet know how fast it is, 
 

 
  This depends mostly on the outer game code feeding it,
  and also on cache hitrate.
  Under best condition up to 40 MegaTexel/sec

Really ? No typo here ? Maybe you meant 4 M instead of 40M ?

Because at 60 fps that would be 10x more pixels than there are at 320x200 ! Obviously random access vs cache-aligned would make for a huge difference, but still.

BTW, just installed IRC client :)

posts 429page  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22