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
Running Games and Apps.

Wipeout Port for Classic 68k and V4 Systemspage  1 2 

Bastian Zühlke

Posts 23
09 Sep 2023 09:02


EXTERNAL LINK  EXTERNAL LINK 
I wonder if someone has started doing a port for the classic 68K and/or V4 systems ?

Please contact me if so, I would be delighted to help as beta-tester ,code reviewer and most important moral support. I have a good knowledge about ASM, C/C++ and 3D Programming.

Thanks,

Bastian

bz__variamedia_de



Salvatore Abbate

Posts 41
09 Sep 2023 13:36


thank you I am supporting some programmers to get software I am happy that for example the RNO Suite is on ApolloOS


Steffen Häuser

Posts 42
08 Oct 2023 16:16


Bastian Zühlke wrote:

EXTERNAL LINK  EXTERNAL LINK 
  I wonder if someone has started doing a port for the classic 68K and/or V4 systems ?
 
  Please contact me if so, I would be delighted to help as beta-tester ,code reviewer and most important moral support. I have a good knowledge about ASM, C/C++ and 3D Programming.
 
  Thanks,
 
  Bastian
 
  bz__variamedia_de
 

The biggest issue here is the code of the reimplementation uses OpenGL.

I am personally trying to get OpenGL (a subset) to the vampire
but it is hard work. If someone wants Wipeout - and
possibly other titles - on vampire it would ne best to join my project.

I could use another 3d programmer for the project,
best one who like me has a Vampire hardware (mine
is sponsored by Apollo Computers, thanks to whom
thanks is deserved, incredibly helpful people!)

Another possible approach would be writing Warp3D
Drivers based on either maggie.library or directly the
Maggie hardware (any volunteers? ;))

If you feel you know the tech enough to discuss it
feel free to contact me at tirionareonwe@gmail.com  (And yes i am the Steffen Haeuser who did several
game ports for Hyperion Entertainment).

At least one future project of mine would get a
version for the Apollo Vampire 68080 system
additionally to AmigaOS 4 if either a partial OpenGL
implementation (which i try to make reality myselves,
a first demo is running) or Warp3D drivers existed.
We are not talking of Wazp3D here, i require Maggie
support here for my project and I suspect it might
be similar for a wipeout port.

And yeah, Apollo supported me on all this, especially
Gunnar and Morten. Sorry that i could not yet
provide something to show for Amiga38.

If no other coder is available i just continue on this
as a one-man-show (besides other projects, most
on AmigaOS 4). I still espect at one point getting it far enough
for my project to run my project on Vampire. Still another
3d coder could help a lot!

Best regards,
Steffen Haeuser aka „MagicSN“



Bastian Zühlke

Posts 23
11 Oct 2023 08:37


I have checked the Wipepout-Rewrite sources more thoroughly. Changes to the original code are substantial.
- physic engine fixed to float, fixed to variable delta time step
- platform abstraction layer, implementatation for SDL2.x and Sokol
- sound system abstracted using float buffers
- renderer abstration layer, implementation for OpenGL. The provided SW-renderer only draws lines.

The platform and renderer abstraction is well done.
Basically only 5 draw function are required.

If SDL2 and OpenGL driver would exists this port can done quite quickly.

So two ways to port it:
1) Using SDL / OpenGL (both libs would need to be developed, very time consuming).
2) Only implement the minimal required features of renderer and platform abstraction layer.

1. is what you propose, advantage other ports would benefit from it as well. However, it is a long shot.

2. faster to implement, game specific optimisation can be implemented.

Would be interesting to know how far your OpenGL driver is already on V4 ?
Concerning SDL2, in my understanding some parts of it already exists.

 




Gunnar von Boehn
(Apollo Team Member)
Posts 6223
11 Oct 2023 09:32


I would not use SDL at all.

Why?

Because we have an Amiga here, and the Amiga hardware allowed to do much better games on Amiga than on PC, Apple and Atari - it its time.
The reason for this was that the Amiga had "advanced" hardware compared to them.

SDL is a one size fits all approach - which does the same on any system and never uses any of the advantages of the Amiga hardware.

In my experience to make a good Amiga port - you want to really write the game to use as much of the Amiga DMA system and Amiga HW features as possible.



Gunnar von Boehn
(Apollo Team Member)
Posts 6223
11 Oct 2023 09:44


Lets think about what you need to do for such a game on Amiga?

1) You need joypad and mouse input.
These you can of course write from scratch in just a few lines.

2) You need to open a chunky screen, and this again can be done in few instructions.

For AUDIO is assume you want to go directly to the 16bit AMIGA DMA hardware of Arne audio chip - which DMA powered and super fast.

So why would we want to link a 1000 KB SDL monster into our game?
If we can do the stuff we want to with very little code ourselve?


Kamelito Loveless

Posts 260
11 Oct 2023 19:21


I suppose the Maggie can help too.


Gunnar von Boehn
(Apollo Team Member)
Posts 6223
12 Oct 2023 05:53


Kamelito Loveless wrote:

I suppose the Maggie can help too.

Yes of course, Maggie will do all the texturing.




Steffen Häuser

Posts 42
12 Oct 2023 06:36


Gunnar von Boehn wrote:

I would not use SDL at all.
 
  Why?
 
  Because we have an Amiga here, and the Amiga hardware allowed to do much better games on Amiga than on PC, Apple and Atari - it its time.
  The reason for this was that the Amiga had "advanced" hardware compared to them.
 
 
  SDL is a one size fits all approach - which does the same on any system and never uses any of the advantages of the Amiga hardware.
 
 
  In my experience to make a good Amiga port - you want to really write the game to use as much of the Amiga DMA system and Amiga HW features as possible.
 

I actually never understood why someone would want to use SDL to access OpenGL in
a game. Why not use OpenGL directly?

For a 2D game it depends. Depending on the nature of the
game as you showed with the ongoing Robin Hood game
SDL might be a severe performance penalty compared to
clever usage of sprites etc. in other titles even 2D it
might make no difference.

But again - for 3D there is no alternative to OpenGL.
Especially not if you work on games using standard engines.
If you have several games on the same engine you do not
want to do the same adaptations for the same engine
several times again especially if it means no advantage.

Also the Amiga standard for 3D is Warp3D and MiniGL.
To do it the Amiga way would be writing a Warp3D driver,
no matter if 68k or PPC.

In 3D having a hardware is not all. You also need an API.

Open a screen with hacking the HW? That’s unbelievable “ugly”.
Yes it can be done and it is not so hard work, but since the 90s
I am using a combination of intuition and cyber graphics there which
has the beauty that the same code runs on any Amiga system,
any cpu platform.

As to input devices which you mentioned in your other port
i usually use AmigaInput (developed by myselves ;)). Of course
for the Vampire i directly access the chipset as no AmigaInput
there but it is again a bit ugly (AmigaInput for OS4, hardware
Hack for Vampire, lowlevel.library for other 68k). Of course
you could use SDL for a catch-them-all but using SDL just
for input devices (and audio i guess) only? That’s
also a bit ugly i guess and i never did that.

Again - the issue i addressed is not about SDL.
It is about OpenGL to which there is (asides maybe
for completely self-developed games) no alternative.
And even for those an established 3d standard is the
advantage, no matter if OpenGL or Warp3D (personally
I prefer GL as W3D is just a lowlevel 3D library without
matrix/transformation handling etc).

And of course it is especially silly to use MiniGL through
Wazp3D but not have Warp3D to do it through the already
available physical 3d hardware. That’s just silly.

For the vampire there are basically three options:

A) implementation of Warp3D
B) an “own” gl on top of maggie.library as i currently try
C) convince wazp3d author to add maggie support (i do not know him, no idea if feasable)

Best regards,
Steffen



Steffen Häuser

Posts 42
12 Oct 2023 06:53


Bastian Zühlke wrote:

I have checked the Wipepout-Rewrite sources more thoroughly. Changes to the original code are substantial.
  - physic engine fixed to float, fixed to variable delta time step
  - platform abstraction layer, implementatation for SDL2.x and Sokol
  - sound system abstracted using float buffers
  - renderer abstration layer, implementation for OpenGL. The provided SW-renderer only draws lines.
 
  The platform and renderer abstraction is well done.
  Basically only 5 draw function are required.
 
  If SDL2 and OpenGL driver would exists this port can done quite quickly.
 
  So two ways to port it:
  1) Using SDL / OpenGL (both libs would need to be developed, very time consuming).
  2) Only implement the minimal required features of renderer and platform abstraction layer.
 
  1. is what you propose, advantage other ports would benefit from it as well. However, it is a long shot.
 
  2. faster to implement, game specific optimisation can be implemented.
 
  Would be interesting to know how far your OpenGL driver is already on V4 ?
  Concerning SDL2, in my understanding some parts of it already exists.
 
 
 
 
 
 
 

Currently it is far enough to do a drawing
Cube in OpenGL code. If i do some of the
Matrix manipulation code directly in gl it
flickers (if i do the same directly manipulating internal
structures - bresking the gl - it does not
Flicker, probably my matrix code, stuff
like glRotate etc has a bug somewhere).

I am unsure if there are further bugs in
the matrix code, likely.

A lot of gl things (blending, alphablending etc)
Are currently not supported by Maggie. I
currently implemented them in software but
this is all untested and might comtain bugs
(And/or be unbearable slow for some features).

Gunnar told me though it should be no problem
to add some of the missing features to Maggie,
He has been very helpful ;)))

My code is publicly available under an opensource
licence you could have a look (i still have
to push the last changes to the git, note the
code needs some recent changes by Morten
to the maggie.library includes where i am not
sure if they are public yet).

Actually it would be great if someone else
had a look still.

And yes OpenGL is some work even a limited
Version (i am not talking of full GL, but something
enough for certain games).

Note the wipeout stuff would still need a bit adaption,
It is on top of OpenGLES (available on OS4 but it needs
Shader hardware) - but i think the changes would be small.
For example for OS4 the code differences i have for the
MiniGL and GLES renderers for H2 and Q2 are minimal to
each other it is mainly to which library is linked and init
and exit code different (open screen and stuff).

For other games (think q2 etc) it might simplify a lot.
And it is doable. Hyperion did MiniGL in 2000 to port H2
and Shogo ;)

Still i think the “perfect” approach would be a Warp3D Driver
and use MiniGL (would still be Hyperion MiniGL, not
MiniGL V2 but that is enough ;))

Best regards,
Steffen



Bastian Zühlke

Posts 23
12 Oct 2023 10:19


Steffen Häuser wrote:
 
  My code is publicly available under an opensource
  licence you could have a look (i still have
  to push the last changes to the git, note the
  code needs some recent changes by Morten
  to the maggie.library includes where i am not
  sure if they are public yet).

I am interested to take a look into it. Where do I find the repo ?


Steffen Häuser

Posts 42
12 Oct 2023 11:15


Bastian Zühlke wrote:

Steffen Häuser wrote:
 
  My code is publicly available under an opensource
  licence you could have a look (i still have
  to push the last changes to the git, note the
  code needs some recent changes by Morten
  to the maggie.library includes where i am not
  sure if they are public yet).
 

 
  I am interested to take a look into it. Where do I find the repo ?

I will update the repo with the latest code somewhen
later today (the version on there at the moment is not really
functional).

Can i reach you also by email?

Thanks, anyways!

Best regards,
Steffen



Nadyr Nick

Posts 54
12 Oct 2023 21:37


Steffen Häuser wrote:

 
  A) implementation of Warp3D
  B) an “own” gl on top of maggie.library as i currently try
  C) convince wazp3d author to add maggie support (i do not know him, no idea if feasable)
 
  Best regards,
  Steffen
 
 

 
  very interesting, I'll do first one 'implementation of Warp3D'


Steffen Häuser

Posts 42
14 Oct 2023 14:41


nadyr nick wrote:

Steffen Häuser wrote:

   
    A) implementation of Warp3D
    B) an “own” gl on top of maggie.library as i currently try
    C) convince wazp3d author to add maggie support (i do not know him, no idea if feasable)
   
    Best regards,
    Steffen
   
 

 
  very interesting, I'll do first one 'implementation of Warp3D'

"I'll do" as in "I recommend/I'd do" or as in "I will do the implementation" ? ;-)

If the second one - that would be really great ;-)

Best regards,
Steffen




Thellier Alain

Posts 141
16 Oct 2023 10:49


Steffen Häuser wrote:

  C) convince wazp3d author to add maggie support (i do not know him, no idea if feasable)

Hello
I am Wazp3D author
I have a Vampire stand alone +
I made some tests on the Vampire to port Cow3D with a cpu renderer but it was slow, too sloooow to be usable
For the last two years I didnt coded anything (unemployed, depression,etc...) anyway I think that using Maggie as renderer for WaZp3D will not be too difficult

I didnt do it myself as my Vampire is no more updated (dont have a core with maggie)

Wazp3D use a simplified driver called soft3d.library
This driver was firstly developped to give accesse to native cpu software rendering calls inside WinUAE (so the name soft3d) but it has been adapted since to use various hardware renderered libraries (TinyGL, OpenGL, Mesa, Composition)

Sooo adapting soft3D.library to use Maggie is really the simpler way as this library got very few functions to recode

Sooo for resuming: if you have a working soft3d.library using Maggie then you will have directly a working WaZp3D/MiniGL/StormMesa with no additionnal coding

Also
if someone is in Paris and can help me to setup/update my Vampire for coding for Maggie
Will need some documentations or source code especially for setting up zbuffer, textures, screen buffer as the available maggie registers description give no hints about this part
idem for maggie.library functions

Also there is two compatibilities issues for Maggie vs GL

GL interpolate between two RGBA colors when drawing a pixels segment (multi colors lighting) but Maggie use only one RGBA color and interpolate only the light level

Maggie use only compressed textures but GL can setup normal textures (like an RGBA pixels rectangle) so we will need additionnal code (not from me) to do the normal to compressed conversion


Steffen Häuser

Posts 42
16 Oct 2023 12:09


Hi!

Ah, sorry, i did not know your name.

I know your software Wazp3D of course, very
impressive software!!!

And i absolutely agree if you could write a driver
for Warp3D using Maggie that would of course solve
the problem. Thanks for your offer to help!

That would limit my task to porting my MiniGL renderer
of my game to 68k ;) and would give the same option to others.
And much better than doing a new gl implementation from
scratch!

About your problem to get your vampire up to date,
maybe Gunnar can help there?

I am btw reachable by email at tirionareonwe@gmail.com 
The texture conversion is handled (not all possible formats
but the 32 bit formats).

Blending modes and some other stuff will be an issue but i guess
this could be done “for now” in software?

Best regards and many thanks,
Steffen


Steffen Häuser

Posts 42
21 Oct 2023 13:12


Hi, Alain!

Is there any way to contact you (by email or discord or something like that) ?

Thanks in advance.

Best regards,
Steffen Haeuser
tirionareonwe@gmail.com <- my email address, feel free to write me


Nadyr Nick

Posts 54
23 Oct 2023 00:42


Steffen Häuser wrote:

nadyr nick wrote:

 
Steffen Häuser wrote:

   
    A) implementation of Warp3D
    B) an “own” gl on top of maggie.library as i currently try
    C) convince wazp3d author to add maggie support (i do not know him, no idea if feasable)
   
    Best regards,
    Steffen
   
   

   
    very interesting, I'll do first one 'implementation of Warp3D'
 

 
  "I'll do" as in "I recommend/I'd do" or as in "I will do the implementation" ? ;-)
 
  If the second one - that would be really great ;-)
 
  Best regards,
  Steffen
 

hi, first one :-)


Thellier Alain

Posts 141
24 Oct 2023 21:32


thellier AT free.fr


Steffen Häuser

Posts 42
27 Oct 2023 07:00


thellier alain wrote:

thellier AT free.fr

Thanks. I sent you an email.

Steffen
tirionareonwe@gmail.com

posts 24page  1 2