Overview Features Coding Performance Forum Downloads Products OrderV4 Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.



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 

Stefano Briccolani

Posts 586
26 Dec 2019 06:37


@VladR: Your estimate of a 10% vampire users that would buy a "Vampire—exclusive-title" could be even understimated if the game is addictive and good looking. . What you have to consider (to justify the lack of exclusives) is that Vampire is also an Amiga so there are thousands of games from the golden age available, plus new Amiga games targeted to stock 500 or stock 1200 machines (the most remarkably commercial titles of last years were Worthy and ReshootR), then there are conversion of pc titles, emulators ecc for bigger Amiga specs.. So there's plenty of fun for Vampire users that have the luxury to access all of these titles. Usually the Amiga asm coders tends to aim their games to the stock machines (unespanded a500 and a1200). The rest of the coders prefers to develop in C or higher level so to have a code that can be compiled also for other Amiga flavors (Os4, morphos, ecc).
        A brand new Vampire specific 3d title can be a rule changer for the matter, so I hope you give it a try and produce the first vampire killer app


Gunnar von Boehn
(Apollo Team Member)
Posts 5934
26 Dec 2019 08:03


Stefano Briccolani wrote:

A brand new Vampire specific 3d title can be a rule changer for the matter, so I hope you give it a try and produce the first vampire killer app

 
I agree.
 
Regarding games I think we can say the following.
There is currently an extreme low  number of new games coming out in general for the whole AMIGA scene (not just Vampire). Just a handful 3-4 games per year.

 
The reason for this is very simple.
I think there is only a low number of coders left in the AMIGA scene. Also many coders have wife and kids and maybe lack the time to focus on a big game effort.
And I think of remaining AMIGA coders even less have real 3D experience. This all explains why the amount of new games coming out for ANY AMIGA model is there very very low.
 
On the other hand for a game coder this is a very nice community.
The people love games, and are loyal to the AMIGA and I think as good game will get very good support from the people.


Vladimir Repcak

Posts 359
26 Dec 2019 13:15


Gunnar von Boehn wrote:

Vladimir Repcak wrote:

  Would be interesting to know just how many ASM coders are there out of those 4000...
   
    Technical question - since Vampire is basically computer, what's the highest refresh frequency one can get on monitor ?
 

 
  Refresh rate is freely programmable.
  Maximum just depends on the resolution.
  I've displayed VGA @ 200 Hz
   

640x480@200 Hz ? Dang :)

Can you imagine Ultra-fast racer at such framerate ? The fluidity ?

Now, of course, on Jaguar, I had literally just couple road polygons, merely flatshaded, at 90 fps and it was 320x200. But it was a full redraw of framebuffer, every single pixel.

For sure 100 Hz at lowest detail (will look like crap, but as an option - why not?) is possible on Vampire. Let the user decide what he wants - not just a single pre-set config of details.

While LCDs in general suck tremendously compared to CRT, there are some 200 Hz PC monitors that can do 100 Hz *almost* as good as old CRT monitors (the difference between 60 and 100 is very visible there).

Alright, so I'll insert a separate render codepath. This will be easier than on Jag, as I don't have to create separate GPU RISC chunk - it's all just going to be 68k code anyway, so it's literally just a different render routine.


Vladimir Repcak

Posts 359
26 Dec 2019 13:29


While we're on the topic of PC monitors - is there any reason why, say, UltraWide 21:9 monitor couldn't work with Vampire ?

If we figure out the row of dozen(or so) parameters for P96, it should, in theory, work without any driver work involved - correct ?

I'm asking because on Jaguar, that's something I designed from the get-go (once I got to implementing 16:9 support) and due to Blitter working totally in parallel with GPU traversing the edges, it didn't matter much whether it fills the 4:3 or 16:9 or 21:9 format - there was very little performance difference.

At the moment, 4:3/16:9/21:9 is just a compile-time option, but gimme day or two, and it will be run-time choice.

Now, on Vampire, if we don't have a second chip doing the scanline fill in parallel, it will result in linear performance decrease, but I guess I should keep that option. Who knows how it will run...


Martin White

Posts 85
26 Dec 2019 14:01


Bear in mind that most 21:9 monitors will display a 16:9 picture perfectly, and while black borders are not pleasent to have in modern AAA titles, it's pretty much to be expected for the Amiga on one of these monitors.

I have a 21:9 monitor in my room where my Amigas are and it displays the PAL modes of V4 just fine. I have every confidence that once setup it will display on the 21:9 in other modes too. So sure, with the correct output from UMC I don't see why it wouldn't be able to run a 21:9 mode. The beauty of the 21:9 monitor is that it can run the V4 and another machine side-by-side at the same time with each input having 1280x1024. Don't ask me how it does that in 1080 lines, but it works very well indeed. I used to do that all the time with my A1200 + Indivision.

Now, i very much doubt V4 is going to be able to run at the native 2560x1080 and even if it could at some low refresh rate I suspect the Workbench experience would be poor due to icon draw times, window drag and so on. But lower 21:9 resolutions scale pretty well on the screen hardware so, why not?


Vladimir Repcak

Posts 359
26 Dec 2019 14:02


Stefano Briccolani wrote:

@VladR: Your estimate of a 10% vampire users that would buy a "Vampire—exclusive-title" could be even understimated if the game is addictive and good looking. . What you have to consider (to justify the lack of exclusives) is that Vampire is also an Amiga so there are thousands of games from the golden age available, plus new Amiga games targeted to stock 500 or stock 1200 machines (the most remarkably commercial titles of last years were Worthy and ReshootR), then there are conversion of pc titles, emulators ecc for bigger Amiga specs.. So there's plenty of fun for Vampire users that have the luxury to access all of these titles.

Fair point - I keep forgetting this is an Amiga, after all, with all the games that ever came out for it...

Stefano Briccolani wrote:

Usually the Amiga asm coders tends to aim their games to the stock machines (unespanded a500 and a1200).

I understand that. I have the same emotional connection to Atari. So, last year, I also rewrote my engine to work on Lynx (6502C) and have it running on classic Atari 800XL as well (6502), on top of Jaguar.
But I don't have that same "break" for Amiga - so I can just jump right to the top.

Stefano Briccolani wrote:

        A brand new Vampire specific 3d title can be a rule changer for the matter, so I hope you give it a try and produce the first vampire killer app

I did the grunt work over last 3 years (Higgs compiler, gameplay experimenting), so it's not like I'm starting from scratch. Once I get my Vampire board, it shouldn't take more than 2-3 weeks to get the game up&running.
After that, I'll need about a month to just keep playing with engine upgrades, benchmarks and general excitement of new platform.

From long-term perspective, it's certainly worth a shot.



Martin White

Posts 85
26 Dec 2019 14:07


Gunnar von Boehn wrote:

The reason for this is very simple.

I think there is only a low number of coders left in the AMIGA scene. Also many coders have wife and kids and maybe lack the time to focus on a big game effort.

And I think of remaining AMIGA coders even less have real 3D experience. This all explains why the amount of new games coming out for ANY AMIGA model is there very very low.

I've been a coder for a living for 30 years now but I have really struggled with Amiga for some reason. I want to develop for it but every time I try I get stuck very, very quickly. My aging head has little capacity to learn ASM so I am using C. I seem to make more progress every time I try but I still soon get stuck.

I'm working on a project at the moment for other platforms and I am encouraged by the amount of SDL titles that I see ported to Vampire. So I can quietly confident of making some progress in that direction. I know everyone will scream that SDL is not the way to go for Amiga but if it's there and it get's me going then why not?


Vladimir Repcak

Posts 359
26 Dec 2019 14:13


Martin White wrote:

Bear in mind that most 21:9 monitors will display a 16:9 picture perfectly, and while black borders are not pleasent to have in modern AAA titles, it's pretty much to be expected for the Amiga on one of these monitors.

I was wondering how that works (16:9 on 21:9) as I don't yet have 21:9 myself (but was planning on purchasing one, once I get closer to the release).
 
Martin White wrote:

  I have a 21:9 monitor in my room where my Amigas are and it displays the PAL modes of V4 just fine. I have every confidence that once setup it will display on the 21:9 in other modes too. So sure, with the correct output from UMC I don't see why it wouldn't be able to run a 21:9 mode. The beauty of the 21:9 monitor is that it can run the V4 and another machine side-by-side at the same time with each input having 1280x1024. Don't ask me how it does that in 1080 lines, but it works very well indeed. I used to do that all the time with my A1200 + Indivision.
Thanks for confirming that !
Yours has PIP ScreenSplit mode with two inputs ? Awesome :)
 
Martin White wrote:

  Now, i very much doubt V4 is going to be able to run at the native 2560x1080 and even if it could at some low refresh rate I suspect the Workbench experience would be poor due to icon draw times, window drag and so on. But lower 21:9 resolutions scale pretty well on the screen hardware so, why not?

Yeah, of course, I was thinking of the lowest possible 21:9  - like 1,120x480 (or whatever that is).
BTW, what's your particular monitor's lowest non-native 21:9 resolution ? Hopefully it's less than 1,680x720.

This is where having just 8-bit FrameBuffer starts to really help :)



Martin White

Posts 85
26 Dec 2019 14:21


Vladimir Repcak wrote:

BTW, what's your particular monitor's lowest non-native 21:9 resolution ? Hopefully it's less than 1,680x720.

A very good question! I will have to investigate, and probably better to wait until I have the ability to update my core (delivery will be late tomorrow hopefully). My 21:9 is now just a spare monitor. I loved it but eventually I got fed up with games not supporting 21:9 properly so replaced it with a 27" Freeseync 16:9 model.

My 21:9 is a Dell u2913WM. Nothing fancy but has a lot of inputs and good features (PBP for example!)

My 16:9 is a Dell 2719DGF.

For some reason I always try other and yet always seem to come back to Dell monitors.

For classic Amigas I have tried lots of different things including CRT but have ended with a pair if BenQ 5:4 LCDs. They would be perfect for Vampire it wasn't for the fact they only have VGA input.


Vladimir Repcak

Posts 359
26 Dec 2019 14:35


Martin White wrote:

Vladimir Repcak wrote:

  BTW, what's your particular monitor's lowest non-native 21:9 resolution ? Hopefully it's less than 1,680x720.
 

 
  A very good question! I will have to investigate, and probably better to wait until I have the ability to update my core (delivery will be late tomorrow hopefully). My 21:9 is now just a spare monitor. I loved it but eventually I got fed up with games not supporting 21:9 properly so replaced it with a 27" Freeseync 16:9 model.
 
  My 21:9 is a Dell u2913WM. Nothing fancy but has a lot of inputs and good features (PBP for example!)
 
  My 16:9 is a Dell 2719DGF.
 
  For some reason I always try other and yet always seem to come back to Dell monitors.
 
  For classic Amigas I have tried lots of different things including CRT but have ended with a pair if BenQ 5:4 LCDs. They would be perfect for Vampire it wasn't for the fact they only have VGA input.

No Rush. I don't even have my Vampire yet.

I suspect each manufacturer will implement that differently - I have some TVs that correctly detect 4:3, for some I must change it via remote.

However, because I'm rewriting that portion of the renderer for Vampire anyway, might as well do it right from the start.



Vito Leva

Posts 43
26 Dec 2019 15:52


Martin White wrote:

Vladimir Repcak wrote:

  BTW, what's your particular monitor's lowest non-native 21:9 resolution ? Hopefully it's less than 1,680x720.
 

 
  A very good question! I will have to investigate, and probably better to wait until I have the ability to update my core (delivery will be late tomorrow hopefully). My 21:9 is now just a spare monitor. I loved it but eventually I got fed up with games not supporting 21:9 properly so replaced it with a 27" Freeseync 16:9 model.
 
  My 21:9 is a Dell u2913WM. Nothing fancy but has a lot of inputs and good features (PBP for example!)
 
  My 16:9 is a Dell 2719DGF.
 
  For some reason I always try other and yet always seem to come back to Dell monitors.
 
  For classic Amigas I have tried lots of different things including CRT but have ended with a pair if BenQ 5:4 LCDs. They would be perfect for Vampire it wasn't for the fact they only have VGA input.

Maybe an Acer G276HL like in wiki 15khz LCD support because of multiple input...



Roy Gillotti

Posts 512
26 Dec 2019 16:30


I have a Samsung Syncmaster 213T older 4:3 LCD, but has a 15kHZ tolerable VGA for RGB output. DVI with an H.D.M.I. adapter works well with the Vampire. Can just switch between inputs without issues. The screen still has vibrant colors and quite good for my Amiga setup.


Sean Sk

Posts 481
26 Dec 2019 22:47


Vladimir Repcak wrote:

I did the grunt work over last 3 years (Higgs compiler, gameplay experimenting), so it's not like I'm starting from scratch. Once I get my Vampire board, it shouldn't take more than 2-3 weeks to get the game up&running.
After that, I'll need about a month to just keep playing with engine upgrades, benchmarks and general excitement of new platform.
 
From long-term perspective, it's certainly worth a shot.

 
Sounds good mate. You'll certainly have the V2/V4 community (and hopefully the Amiga community in general) backing you up in full force, particularly monetarily.
 


Vladimir Repcak

Posts 359
27 Dec 2019 20:03


sean sk wrote:

  Sounds good mate. You'll certainly have the V2/V4 community (and hopefully the Amiga community in general) backing you up in full force, particularly monetarily. 
Non-Apollo HW is problematic. While I don't expect any major issues in getting 060-specific build working, the next in line with sufficient user base (performance-wise) is A1200, right ?

That's quite a performance difference, plus bitplanes (no chunky). Such a release would certainly need completely new art assets and 3D engine (utilizing Blitter).
On the other hand, it would be possible to express interest in such port via pre-orders and if , say, 200 people go for it, it could be done.
That's quite far down the road, at this moment...



Vladimir Repcak

Posts 359
27 Dec 2019 20:40


Since it's unclear how soon can I get my hands on a real V4SA board, I gotta start somewhere and I believe porting the game to run under WinUAE is the most logical step to get familiar with Amiga architecture.

One of the differences to Jaguar is the initialization of gfx mode.
At this moment, I only need to find out how to initialize the gfx mode, the rest of my code should [in theory] work just fine.

  I found the following code sample on AmiNet:
EXTERNAL LINK 
- it starts 320x240 in chunky mode (exactly what I need)
- runs under aga, cgx or Picasso

Is this a set-up that will transfer easily to Vampire eventually ? Or should I look for something else entirely ? Shouldn't it be RTG, perhaps?



Vojin Vidanovic
(Needs Verification)
Posts 1916/ 1
27 Dec 2019 21:29


Vladimir Repcak wrote:

     
      Is this a set-up that will transfer easily to Vampire eventually ? Or should I look for something else entirely ? Shouldn't it be RTG, perhaps?
     
   

   
    I am no developer, but I would opt for
   
   
   
    Quick and easy: RTG-Picasso 96 using PiP
    040-FPU as target CPU, later can be opt to 080
    You can use Paula direct hit but 8-bit sound or AHI Paula
   
Preparing for future
   
    Prepare 16 bit music, downsample to 8 bit for test, leave 16 bits for Vamp AIFFs compressed as agreed with Gunnar :)
    Think of where AMMX could be used
    Optionally, use AGA, optimize for SAGA later (same but more more bitplanes, faster blitter, 16-bit Paula)
   
    Harder way
   
 
    Respect rules of nice AOS app even as game?
    EXTERNAL LINK   
    Use best possible AOS3 m68k tools, some GCC exists?
 
  Build nice 040-FPU as code?
    Advanced toolchain? EXTERNAL LINK    EXTERNAL LINK    EXTERNAL LINK   
  ASM?
 
    ASM code could be compiled by VASM for 080 to bench speed difference on V2 and V4 to UAE-040 or real 040/060 by Vamp users, while more Vamp specific optimizations could be added later.
 


Vladimir Repcak

Posts 359
27 Dec 2019 21:49


I'm quite confused about the OS choice. Looks like there's quite a few choices (and issues) there.

And the last thing we need is to implement features in OS-specific way - so I wanna try to access HW as directly as possible.

Which is probably not a good idea for resolution. By RTG - what is usually meant - it's just libraries, correct ? Meaning - you have RTG under all variants of available OS ?

What about filesystem - is there some kind of API that is completely generic across all OS ?

You mention AmigaOS - is that some kind of agreed-upon standard ?

And - which one is better for coding - WinUAE of FS-UAE ?


Mark Watson

Posts 5
28 Dec 2019 05:13


Vladimir Repcak wrote:

  And - which one is better for coding - WinUAE of FS-UAE ?

FS-UAE is easy to compile and add your own modifications / hooks.  WinUAE debugger works better under Windows.  FS-UAE debugger on windows required some patches and I still don't have it working perfectly.  Both have generally excellent emulation. I'd say WinUAE works better out of the box / features land first, FS-UAE is better when you want to customise things, or are not on windows.



Vojin Vidanovic
(Needs Verification)
Posts 1916/ 1
28 Dec 2019 05:47


Vladimir Repcak wrote:

I'm quite confused about the OS choice. Looks like there's quite a few choices (and issues) there.

Even more and its not best

Vladimir Repcak wrote:

  And the last thing we need is to implement features in OS-specific way - so I wanna try to access HW as directly as possible.

For basic functions like opening windows, closing app etc. its most recommended to be OS friendly. For end results to bang the metal. Its possible to combine.
 

  Which is probably not a good idea for resolution. By RTG - what is usually meant - it's just libraries, correct ? Meaning - you have RTG under all variants of available OS ?

Yes, for all modern OS incarnations and is de facto standard for 16-bit and 24-bit display of Amiga. Its OS extension beyond 8-bit screens for those with gfx cards.


  What about filesystem - is there some kind of API that is completely generic across all OS ?
 

FS - Use system functions and it will adjust. Fastest is PFS.

API - use ReAction OS 3.9 or MUI 3.8 / 5.0

 
  You mention AmigaOS - is that some kind of agreed-upon standard ?
 

Basic CBM standards of 1994 + a lot of 3rd party build pieces of OS. When we say AOS here, we mean heavily patches OS 3.9. See AmigaOS versions on Wiki, and you will see how OS was growing in functions and ablities to be inclusive and expandable.




A1200 Coder

Posts 72
28 Dec 2019 06:53


Vladimir Repcak wrote:

Non-Apollo HW is problematic. While I don't expect any major issues in getting 060-specific build working, the next in line with sufficient user base (performance-wise) is A1200, right ?
 
  That's quite a performance difference, plus bitplanes (no chunky). Such a release would certainly need completely new art assets and 3D engine (utilizing Blitter).
  On the other hand, it would be possible to express interest in such port via pre-orders and if , say, 200 people go for it, it could be done.
  That's quite far down the road, at this moment...
 

3D-texturemapped games with an A1200+68060/AGA are possible, you need to use a c2p routine (lots available on aminet) which converts chunky pixels from fast ram (CPU-only memory) to the native planar format in chip ram (slow access gfx memory). 8-bit chunky pixels (giving 256 colors) is the most common format, but also e.g. 4-6 bit chunky pixels can be used to speed up the c2p routine. A 320x256 screen with 8-bit chunky pixels takes a lot of time to convert even with a 68060, thanks to the slow chip ram, so no fast games with that, 25 fps can be achievable in best case. With 4-bit chunky pixels (giving 16 colors) it may be possible to get 50/60 fps with a 68060, if the game is otherwise simple enough, e.g. using only flatshaded polygons.

You may also try use some smart tricks like two 16 color dualplayfields (total ~32 colors), with blitter drawing some simple stuff in the other playfield (background and horizon) while CPU is drawing in the other playfield the objects which strictly come in front of all background with a c2p routine. While CPU and blitter cannot usually write at the same time into chip ram (gfx memory) without blocking the other one out, there will be some idle time when CPU is rendering the objects in chunky fast ram buffer, and blitter can then access chip ram undisturbed. Also clearing display memory with blitter fully concurrently with CPU accessing display memory is possible to do without disturbing access for both.

On classic Amigas with better CPUs than the 68000, the blitter is too slow to be used for drawing and filling flatshaded objects. It is fast if you have only non-overlapping objects and empty backgrounds like in demos, but in games with more complex backgrounds and objects it's usually not much faster than a highly optimized 68000 CPU drawing routine. Because the blitter then needs to perform extra copy and clear passes when filling surfaces of objects.

But yeah, even on a 68060 system, it's still possible to make some use of the blitter for something useful, if it is done smartly. But also, like you can see, a classic Amiga needs different ways of coding than a Vampire system.

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