Welcome, Guest. Please login or register.

Author Topic: AmiQuake - new 68k Quake Port  (Read 21325 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« on: September 16, 2012, 11:56:45 AM »
I have to say, that's an impressive speed for 68K/AGA!

One thing I'd love to see is a quake port that uses Warp3D as the rasterizer. Not a GLQuake port on MiniGL (GLQuake was, by John Carmack's own admission a suboptimal hack), but the vanilla Quake with it's original 3D transformation pipeline with just the rendering stage delegated to warp3d. This should be able to bypass a number of inefficiencies both in the GLQuake code and in MiniGL.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #1 on: September 16, 2012, 12:41:23 PM »
Quote from: NovaCoder;708331
Cool thanks, I've just uploaded v1.07 to AmiNet and it's even quicker on my machine :)

I'll do a new video when I get the time....


You say it will work on RTG too, right?
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #2 on: September 16, 2012, 12:57:56 PM »
Quote from: Cosmos;708226
@NovaCoder

Again here : seven emulated 060 instructions on this game !

Slow down because the 68060.library is not fast you know...

Surely that depends on where they are. If they are in some inner loop, yes, if they are in some initialisation code or something called infrequently, does it matter so much?

@novacoder

Being 68060 only, is there any reason it wouldn't actually run on 68040 too? Are you doing any supervisor mode stuff or relying on any other 060-only features?
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #3 on: September 16, 2012, 03:08:08 PM »
Quote from: matthey;708348
@NovaCoder

@Karlos
68060 compiled code I've seen should run without problems on a 68040 although at a slower speed. Using the utility.library for integer 32x32=64 is nearly as fast for the 68040 but the missing FINT/FINTRZ in the 68040 for floating point is a performance killer. What were the Motorola Engineers thinking? Programs using floating point should provide separate 68040 and 68060 compiled versions because of this.

I'm curious to test it under petunia :) It only advertises 68020/68882, but implements most of the additional instructions, AFAIK.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #4 on: September 16, 2012, 06:37:00 PM »
Quote from: matthey;708371
I would imagine it will run at very acceptable speed.


If my experiments with DoomAttack on my BlizzardPPC are any measure, perhaps. That ran 640x400 faster than my 040 does 320x200.

[youtube]AQ1t5q3xmYk[/youtube]
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #5 on: September 17, 2012, 09:06:56 PM »
Quote from: NovaCoder;708461
As promised, here's a quick video of the latest build -> AmiQuake


Since it's so smooth already, any chance you might add some CPU chewing RGB -> HAM C2P as an experiment?

I'd love to see that!
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #6 on: September 17, 2012, 09:49:05 PM »
Quote from: Cosmos;708455
Trapped instructions are slow all the time, everywhere and anywhere !


I know they are slow, but depending on where they are called, it really may not matter. Even a thousand trap-and-emulate calls aren't a problem if they only happen when loading a level, for example. You simply aren't going to notice (or care about, even if you do) a few hundred microseconds wasted.

If, on the other hand, you are doing a trap-and-emulate every time you do a perspective correction inside your texture mapping loop, it's going to suck abominably.

Ideally, there'd be no emulated instructions but in practise, context is everything.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #7 on: September 17, 2012, 09:50:49 PM »
Quote from: B00tDisk;708531
Quake in 4096 colors?  Sign me up! :)


I was thinking more of the sort of 18-bit C2P routines that you can find on aminet, but even HAM6 would be neat.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: AmiQuake - new 68k Quake Port
« Reply #8 on: September 18, 2012, 12:48:37 AM »
Quote from: NovaCoder;708542
I did have a look a doing HAM8 C2P for my ScummVM port but could never get it to render properly :(


Seriously, that would be a really nice touch.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
AmiQuake - new 68k Quake Port
« Reply #9 on: September 18, 2012, 08:29:36 AM »
Quote from: B00tDisk;708552
Oh I spoke in jest; Quake has an 8-bit pallet and would hardly benefit from 12-bit :)

Actually, it would as clickboom's original port demonstrates with it's slow but pretty 16-bit option.

The reason being that although the textures are 8 bit, they are shaded with light maps to produce the end result which results in many more shades than can be displayed.  These are quantized back to the game palette, resulting in a loss in fidelity.

Quote

Tell me more of these 18-bit routines, though.  I'm a coding newborn and didn't touch anything on the Amiga post AmigaBasic though so be gentle.


A number of routines are available courtesy of various demoscene coders that can convert an RGB chunky framebuffer in formats from 12-bit up to full 24-bit into suitable HAM planar displays.
int p; // A