dml wrote:...and a quick capture at 160x80 pixels using the new improved mapper:
https://dl.dropboxusercontent.com/u/129 ... 160x80.avi
Starting to look like realtime yet?![]()

Moderators: Zorro 2, Moderator Team
dml wrote:...and a quick capture at 160x80 pixels using the new improved mapper:
https://dl.dropboxusercontent.com/u/129 ... 160x80.avi
Starting to look like realtime yet?![]()
While I know you're partly joking, I really need to comment on this.Atari030 wrote:250 MIPs vs 20 MIPs, DSP inclusive. Fair effort I'd say.
One of the biggest differences is actually in the type of computation involved - Quake 1 and 2 engines are largely floating point problems. They depend not just on 100+ MIPs but also 100+ MFlops.Eero Tamminen wrote:On PC, Quake is run at higher resolution and its game engine requires higher FPS (at least in Doom the timertick was 35 FPS whereas in BadMood Douglas had to lower it to 12 so that engine would work OK at Atari FPS).Atari030 wrote:250 MIPs vs 20 MIPs, DSP inclusive. Fair effort I'd say.
Memory bandwidth differences are also relevant, not just instruction speed. PC has graphics card so screen refresh doesn't eat system memory bandwidth.
That's very kind of you. Can't wait! :)dml wrote:The guide is far from done but I update it as things go along - it will be shared when I can't think of much more to add :)
maybe some other experienced DSP coders can then patch it with good tips that i missedmikro wrote:That's very kind of you. Can't wait!dml wrote:The guide is far from done but I update it as things go along - it will be shared when I can't think of much more to add
Code: Select all
move.w (a4),d7
move.w (a5,d7.l*2),(a1)+
Code: Select all
add.l a0,a3
move.w (a2),a4
move.w (a3),(a1)+
add.l a0,a4
move.w (a2),a3
move.w (a4),(a1)+
Yes it's code which I had converted from C into 882 ASM for polygon texture plane calculations (and which runs much faster in Hatari than it does on real HW).alexh wrote: When you say "FPU code to be turned into 68030 / maybe DSP" are we talking about routines which you previously implemented as 68882 FPU ASM?
There is some of that too but not in the graphics part. Collision detection etc. But I'm mostly ignoring that area for now.alexh wrote: Or are we talking about routines which are currently floating point math in C code compiled for the 68030 + 68882?
In the case of polygon setup, there is quite a lot of math happening before each face can be drawn - currently on a real 882 that takes longer than it does to draw a small polygon with a texture on it. It's less of an issue if the polygon is really big since it is a constant overhead. However it's still too expensive for most polygons being drawn so I'll need to redo it.alexh wrote: I remember you saying that FPU operations take hundreds of cycles but low-bandwidth high precision calculations are ok.
How do you partition this?
I was, once upon a timeMindthreat wrote:As a side note, and I'm not sure if you're in the game development business outside of doing this hobby stuff...
Yes it is already using the lightmaps - the surface cache is largely about combining repeatable textures with unique lightmaps to make a unique texture surface for some part of the world.Zamuel_a wrote:Is it possible to include the light maps? They take ofcourse a lot of extra RAM and combining them with the texture also takes some extra time. I think they are stored as 1/16 of the texture size and when scaled up with bilinerar filtering before combined with the texture. Since its not exactly realtime it works on the Falcon to I guess, but every time a new map needs to be calculated it seems that it would take a lot of time so it halts the engine, but I guess you found a clever way of doing it
Very impressive that you got it to work. Do you filter the lightmap when you scale it or just combine it as it is? (sharp shadows wouldn't look so good).I've been optimizing that combine step so it doesn't pause when you look at a new surface. It's still quite slow but improved a lot - so its possible to move around the map now in realtime with textures. Previously it was difficult until an are had been 'seen' by the camera first.