I磎 writing Doom for the Oric

I磎 writing Doom for the Oric

Post by moltotar » Tue, 27 Jan 2004 09:09:56

It about 80% finished and quite playable.

I磎 writing Doom for the Oric

Post by P » Tue, 27 Jan 2004 09:35:38

WOV !!!!!!!!!!!!

Is there a demo available ? Text or Hires game ? if no demo, can you give a
screen capture ?

Is it suitable with original DOOM ( Maps characters aliens etc ) or the idea
of 3D shoot game ?

"Alberto Panno-Peano" < XXXX@XXXXX.COM >, iletide sunu yazdi


I磎 writing Doom for the Oric

Post by Anders Car » Tue, 27 Jan 2004 16:33:13

"Pe@ceR" < XXXX@XXXXX.COM > writes:

Don't bother with this troll.

The origin is comp.sys.cbm, where a Commodore magazine editor
looked for programmers and investors (to pay the programmers!)
to write a SuperCPU optimized DOOM for the C64. Many people have
told him that even with the 20 MHz 65816 SuperCPU, it is almost
impossible to get playable and the colour restrictions will
make it look ugly anyway.

Then this troll entered, and claimed to have written a native
C64 version of Wolfenstein 3D, the pre-runner of DOOM.

Maybe a DOOM game using a viewport of 80x50 pixels or something
is doable, or another simpler 3D game without texture mapping,
but the general consensus from those who actually *have* thought
about it and know the limitations is "not feasable". Besides, the
WAD level maps are more than 10 MB each, and I don't know if it
can be cropped or reduced enough to fit on the C64/Oric/Spectrum
without losing the rights to call it DOOM (as it is expected that
iD Software would allow a port to bear that name as long as it
plays and contains the same things the original did).

Anders Carlsson

I磎 writing Doom for the Oric

Post by news » Wed, 28 Jan 2004 07:25:21

Well, it should be possible to write a very simple raycasting engine,
shouldn't it? It's certainly not Doom, but it's almost half-way there.
I wrote a few in QBasic and Assembler on my 386 back in the good old
days, guess it should be possible to make something doom-ish (or at
least just a 3D maze to walk through) in text mode? If it's done the
right way, one can also add some non-scaleable textures on each
character row, so it appears like wallpaper on the walls.

The maps can be incredibly small as well. I remember defining my own
maps in 40x40 char arrays in QBasic, yet the space seemed incredibly
huge when moving around in it.

One drawback, though.. lots of precise floating point operations that
has to be take care of. But this made me a bit curious, maybe I'll
give it a shot if I can find the time..


I磎 writing Doom for the Oric

Post by Anders Car » Wed, 28 Jan 2004 07:57:33

XXXX@XXXXX.COM (Stian Soreng) writes:

Yes, but as you said, it is not Doom. Maybe the playability part
of Doom (because it wasn't only for the cool graphics people liked
to play it?) can be conserved in a simpler engine. Probably this
is what is going to happen too, when the big arguments have settled.

Anders Carlsson

I磎 writing Doom for the Oric

Post by Mickael Po » Wed, 28 Jan 2004 08:18:06

"Anders Carlsson" < XXXX@XXXXX.COM > a rit dans le message de

If someone can manage to do an efficient raycasting routine that can simply
fill a table in memory containing the starting position of each column of
wall, that would be cool.
I made one two years ago, but it was highly innacurate, mostly due to the
fact I had to compensate the fishball distortion, and using 8 bit arithmetic
the result was very bad.


I磎 writing Doom for the Oric

Post by Andre Majo » Wed, 28 Jan 2004 08:51:45

The Doom rendering engine is much more rudimentary than that. It
draws walls at an angle and flood-fills the floor and ceiling
with a texture. For speed, levels include a BSP (binary space
partition) tree, which is computed beforehand with a separate

As Anders pointed out, memory will be a problem. The smallest
iwad, the Doom 1 shareware iwad, weighs 4 MB and has 1264 lumps
(components). The wad directory alone weighs 20 kB. A level can
very easily use twenty textures, each weighing somewhere between
4 kB and 32 kB. Then there are the sprites (several hundreds of

The level data is not negligible either. Even a tiny level like
E1M1 weighs 55 kB. It could probably be cut in two, but not much

There's a lot of floating-point (16.16 fixed-point, actually)

Andr?Majorel <URL: http://www.yqcomputer.com/ ~amajorel/>
Agree with them now, it will save so much time.

I磎 writing Doom for the Oric

Post by news » Sat, 31 Jan 2004 20:00:36

Why, ofcourse. I never meant to insinuate a _real_ Doom port, I was
just hinting towards something Doom-ish, which - at least theoretically -
should be plausible for the Oric.

Yes, I know. I've written a few raycasting engines before, and I know
it's a LOT of math involved for a poor 1MHz 6502.

I'm still tempted to give it a shot. No promises, though. :)


I磎 writing Doom for the Oric

Post by Mickael Po » Sun, 01 Feb 2004 02:55:07

> > There's a lot of floating-point (16.16 fixed-point, actually)

I'll be ready to eventually help on such a project.
Could be very interesting :)

I guess a start would be to simply draw the bottom pixel/character of walls
depending of the position and orientation of the player in a small maze
(like 64x64 tiles).

If displayed in a "per column" mode, it would be a maximum of 40 casted
If displayed in hires, a maximum of 240 rays.

Of course it's perfectly possible to use something in between and
interpolate. With 80 rays you can use redefined characters and draw two
columns per character.

After, adding sprites, correctly Z-sorted in the maze is totaly trivial :)

The part on which I've been unable to get satisfactory code was the raycast,
I already had the code to draw walls for more than two years ;)


I磎 writing Doom for the Oric

Post by Anders Car » Sun, 01 Feb 2004 03:23:15

"Mickael Pointier" < XXXX@XXXXX.COM > writes:

Richard Wilson of Amstrad CPC fame (who also has been active in
the MiniGame compo) has written a Wolf3D demo for the CPC464. It
runs in a detailed resolution about 5-6 fps as it currently is.
Although it is a Z80 machine, it is possible that ideas could
be shared/ported between different 8-bits.

Anders Carlsson

I磎 writing Doom for the Oric

Post by Mickael Po » Sun, 01 Feb 2004 03:39:48

> >>> There's a lot of floating-point (16.16 fixed-point, actually)

Hum, the Z80 can perform 16 bits computations, right ?

Really, the only point I didn't managed to get right was the accuracy of the
raycast, everything else was quite ok :)

You can check the problem here:
(that code was written the 15 jully 2001, so it's even older that what I was
thinking about)

The speed is not representative of anything, because the map is displayed in
C on top of the screen, and everything is in HIRES, and also the coordinates
are written using the printf function that is not particularly fast :)