amiga.org
     
iconAll times are GMT -6. The time now is 09:58 AM. | Welcome to Forum, please register to access all of our features.

Amiga.org Amiga computer related discussion Amiga Gaming AmiQuake - new 68k Quake Port

Amiga Gaming This forum is dedicated to games software and solutions for the Commodore Amiga computer. Need help blowing up pixels? Know of the next gaming revolution? Talk about it here.

Reply
 
Thread Tools Display Modes
Old 09-16-2012, 05:57 AM   #21
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Cosmos View Post
@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?
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-16-2012, 05:58 AM   #22
NovaCoder
Premium Member
Points: 10,793, Level: 68 Points: 10,793, Level: 68 Points: 10,793, Level: 68
Activity: 8% Activity: 8% Activity: 8%
 
NovaCoder's Avatar
 
Join Date: Apr 2008
Location: Oz
Posts: 1,539
Blog Entries: 2
Default Re: AmiQuake - new 68k Quake Port

Yep I normally add RTG support to my AGA ports because people ask for it, I don't actually have an RTG Amiga so it doesn't really make much difference to me.

I use the CyberGFX API for RTG because it's very fast, P96 should also support it via emulation but it probably won't be as quick as a real CyberGFX card.
__________________
Life begins at 100 MIPS!


AmiWolf AGA, AmiSpear AGA, BOOM AGA, ZDOOM AGA, Odamex AGA, AmiQuake AGA, AmiQuake 2 AGA
NovaCoder is offline   Reply With Quote
Old 09-16-2012, 08:05 AM   #23
matthey
Cult Member
Points: 7,389, Level: 57 Points: 7,389, Level: 57 Points: 7,389, Level: 57
Activity: 5% Activity: 5% Activity: 5%
 
Join Date: Aug 2007
Location: Kansas
Posts: 950
Default Re: AmiQuake - new 68k Quake Port

@NovaCoder
GCC 3.4.0, last time I checked, was calling utility.library for integer math like 32x32=64 which is good. The library function call is a little slower than an inline but then utility.library can be patched with the fastest 68060 specific code like ThoR's Mu 68060.library does for 32x32=64. I believe GCC 3.4.0 was a special Amiga specific GeekGadgets version of GCC. Perhaps you can try GCC 3.4.0 with AmidevCPP to see if the utility.library is used?

I did some DMIPS test compiles that showed vbbc (vc -cpu=68060 -O2) at 55 DMIPS error free with 68060@60MHz and GCC 3.4.0 (gcc -fomit-frame-pointer -noixemul -m68060 -O2 -mregparm=4) at 56 DMIPS with register passed function variables that generated several bugs. Vbcc was using stack passed variables. The DMIPS code used no 64 bit integer math, which if trapped in GCC could make vbcc faster. The testing was with the latest version of vbcc and the latest beta version of vasm (has some nice peephole optimizations added as well as bug fixes). Vbcc is getting better but it's still not very GCC compatible, it has some bugs above -O1 (although -O1 has much better performance than GCC -O1) and it's slow to compile.

GCC 2.95.3 is still probably the best at code generation. It handles the trapped instructions with local replacement functions (no utility.library). I believe the newest 68k GLQuake is compiled with this as it is one of the best optimized 68k programs I've seen. It's very rare that I find a 68k program that I look through the disassembly and not grimace. Unfortunately, GCC 2.95.3 is not very compatible with newer versions of GCC.

@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.
matthey is online now   Reply With Quote
Old 09-16-2012, 08:08 AM   #24
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by matthey View Post
@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.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-16-2012, 11:02 AM   #25
matthey
Cult Member
Points: 7,389, Level: 57 Points: 7,389, Level: 57 Points: 7,389, Level: 57
Activity: 5% Activity: 5% Activity: 5%
 
Join Date: Aug 2007
Location: Kansas
Posts: 950
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Karlos View Post
I'm curious to test it under petunia It only advertises 68020/68882, but implements most of the additional instructions, AFAIK.
I would imagine it will run at very acceptable speed. The floating point may only be double precision instead of extended precision in some cases but that won't matter for games. The 68k used like Java/Android byte code is a good way to get improved code density out of the PPC . If we get the Hyperion folks to continue 68k support, we could mend the biggest split in the Amiga. Otherwise, Hyperion is going to wake up one day and find AROS has more users than AmigaOS 4.x.
matthey is online now   Reply With Quote
Old 09-16-2012, 11:37 AM   #26
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by matthey View Post
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.

__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-16-2012, 11:56 AM   #27
matthey
Cult Member
Points: 7,389, Level: 57 Points: 7,389, Level: 57 Points: 7,389, Level: 57
Activity: 5% Activity: 5% Activity: 5%
 
Join Date: Aug 2007
Location: Kansas
Posts: 950
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Karlos View Post
If my experiments with DoomAttack on my BlizzardPPC are any measure, perhaps. That ran 640x400 faster than my 040 does 320x200.
Yea, that looks like high end 040 or low end 060 speed. DoomAttack at 640x400 (looks much nicer than 320x200 by the way) has no perceivable slow down on my 060@75MHz while 640x480 has enough hesitation in heavy combat to making it difficult to aim.
matthey is online now   Reply With Quote
Old 09-17-2012, 03:09 AM   #28
Cosmos
Technoid
Points: 10,358, Level: 67 Points: 10,358, Level: 67 Points: 10,358, Level: 67
Activity: 38% Activity: 38% Activity: 38%
 
Cosmos's Avatar
 
Join Date: Jan 2007
Posts: 478
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Karlos View Post
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?
Trapped instructions are slow all the time, everywhere and anywhere !

Watch by yourself !

Hopefully, OxyPatcher accelerate a lot, but still 5.6 time slower than a 32x32 routine untrapped...

Explanations :
Trapped mulu64 via the 68060.library: 1852
Real routine mulu64 untrapped : 6

Trapped mulu64 via the 68060.library and OxyPatcher running : 28
Real routine mulu64 untrapped with OxyPatcher running : 5


Ouch !
Attached Images
File Type: jpg DSC00628.jpg (93.2 KB, 20 views)

Last edited by Cosmos; 09-17-2012 at 06:04 AM..
Cosmos is offline   Reply With Quote
Old 09-17-2012, 05:27 AM   #29
NovaCoder
Premium Member
Points: 10,793, Level: 68 Points: 10,793, Level: 68 Points: 10,793, Level: 68
Activity: 8% Activity: 8% Activity: 8%
 
NovaCoder's Avatar
 
Join Date: Apr 2008
Location: Oz
Posts: 1,539
Blog Entries: 2
Default Re: AmiQuake - new 68k Quake Port

As promised, here's a quick video of the latest build -> AmiQuake
__________________
Life begins at 100 MIPS!


AmiWolf AGA, AmiSpear AGA, BOOM AGA, ZDOOM AGA, Odamex AGA, AmiQuake AGA, AmiQuake 2 AGA
NovaCoder is offline   Reply With Quote
Old 09-17-2012, 07:09 AM   #30
Seiya
Technoid
Points: 9,716, Level: 66 Points: 9,716, Level: 66 Points: 9,716, Level: 66
Activity: 4% Activity: 4% Activity: 4%
 
Join Date: Apr 2004
Posts: 362
Blog Entries: 13
Default Re: AmiQuake - new 68k Quake Port

you have to change by hand any emulated instructions
Seiya is offline   Reply With Quote
Old 09-17-2012, 01:09 PM   #31
kickstart
Banned
Points: 10,450, Level: 67 Points: 10,450, Level: 67 Points: 10,450, Level: 67
Activity: 99% Activity: 99% Activity: 99%
 
Join Date: Aug 2006
Location: Finland
Posts: 997
Default Re: AmiQuake - new 68k Quake Port

@novacoder

Nice work... maybe on a 50mhz 060 runs smooth too.
kickstart is offline   Reply With Quote
Old 09-17-2012, 02:06 PM   #32
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by NovaCoder View Post
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!
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-17-2012, 02:49 PM   #33
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Cosmos View Post
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.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-17-2012, 02:49 PM   #34
B00tDisk
VIP / Donor - Lifetime Member
Points: 12,757, Level: 73 Points: 12,757, Level: 73 Points: 12,757, Level: 73
Activity: 7% Activity: 7% Activity: 7%
 
B00tDisk's Avatar
 
Join Date: Dec 2002
Posts: 1,587
Blog Entries: 1
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Karlos View Post
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!
Quake in 4096 colors? Sign me up!
__________________
Back away from the EU-SSR!
B00tDisk is offline   Reply With Quote
Old 09-17-2012, 02:50 PM   #35
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by B00tDisk View Post
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.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-17-2012, 05:27 PM   #36
NovaCoder
Premium Member
Points: 10,793, Level: 68 Points: 10,793, Level: 68 Points: 10,793, Level: 68
Activity: 8% Activity: 8% Activity: 8%
 
NovaCoder's Avatar
 
Join Date: Apr 2008
Location: Oz
Posts: 1,539
Blog Entries: 2
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by kickstart View Post
@novacoder

Nice work... maybe on a 50mhz 060 runs smooth too.
No, not quite there yet, I'll keep hacking away in my spare time to make it faster. I have other more interesting projects waiting to be started so I can't spend all my time on it

I did have a look a doing HAM8 C2P for my ScummVM port but could never get it to render properly

A more interesting update would be Graffiti, when Jens eventually updates the Indivision AGA Mrk2 with Graffiti support (maybe even 16bit chunky support) then we can have some fun.
__________________
Life begins at 100 MIPS!


AmiWolf AGA, AmiSpear AGA, BOOM AGA, ZDOOM AGA, Odamex AGA, AmiQuake AGA, AmiQuake 2 AGA

Last edited by NovaCoder; 09-17-2012 at 05:44 PM..
NovaCoder is offline   Reply With Quote
Old 09-17-2012, 05:48 PM   #37
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by NovaCoder View Post
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.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-17-2012, 07:28 PM   #38
B00tDisk
VIP / Donor - Lifetime Member
Points: 12,757, Level: 73 Points: 12,757, Level: 73 Points: 12,757, Level: 73
Activity: 7% Activity: 7% Activity: 7%
 
B00tDisk's Avatar
 
Join Date: Dec 2002
Posts: 1,587
Blog Entries: 1
Default Re: AmiQuake - new 68k Quake Port

Quote:
Originally Posted by Karlos View Post
I was thinking more of the sort of 18-bit C2P routines that you can find on aminet, but even HAM6 would be neat.
Oh I spoke in jest; Quake has an 8-bit pallet and would hardly benefit from 12-bit

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.
__________________
Back away from the EU-SSR!
B00tDisk is offline   Reply With Quote
Old 09-18-2012, 01:29 AM   #39
Karlos
Sockologist
Points: 50,827, Level: 100 Points: 50,827, Level: 100 Points: 50,827, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: Barishabaad, Sardistan
Posts: 16,670
Blog Entries: 18
Default

Quote:
Originally Posted by B00tDisk View Post
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.
Karlos is offline   Reply With Quote
Old 10-13-2012, 04:08 PM   #40
NovaCoder
Premium Member
Points: 10,793, Level: 68 Points: 10,793, Level: 68 Points: 10,793, Level: 68
Activity: 8% Activity: 8% Activity: 8%
 
NovaCoder's Avatar
 
Join Date: Apr 2008
Location: Oz
Posts: 1,539
Blog Entries: 2
Default Re: AmiQuake - new 68k Quake Port

I thought I'd do some videos of recordings of myself playing the game this time which gives a better idea of how it actually runs on my machine with the latest release.

NovaCoder vs Chthon

Amiga AGA Quake - Citadel
__________________
Life begins at 100 MIPS!


AmiWolf AGA, AmiSpear AGA, BOOM AGA, ZDOOM AGA, Odamex AGA, AmiQuake AGA, AmiQuake 2 AGA
NovaCoder is offline   Reply With Quote
Reply

Bookmarks

Tags
68k , amiquake , port , quake

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump