A.D.A. Amiga Demoscene Archive

        Welcome guest!

  

  

  

log in with SceneID

  

Demos Amiga Demoscene Archive Forum / Coding compos / Wolfenstein/Doom on standard A500 finally possible - challenge

 

Author Message
Fachen
Member
#1 - Posted: 14 Dec 2014 21:37
Reply Quote
Hello

This is my first post, but also the reason I ahve logged here.
I am an old Amiga user first A500+ then A1200. I knew the scene back then, I loved demos and all about it. Recently I also felt nostalgic and watched a lot of old and new demos and started to feel again this oldschool feeling.
Generally I am fascinated about Commodore C64 scene nowadays and a little bit dissapointed about Amiga scene. Maybe it needs a little more time or maybe it was so advanced back in the day, there is very little progres it can do. Anyway I want to help to push it a little forward by proposing a challenge worth the Amiga name.

The reason I have sold my A1200 and bought the PC was motivated in great part by single game DOOM. Do you remember Domm, doom, doom, we are all doomed? Or (in)famous John Carmack quote "Doom on Amiga? Not possible." Anyone willing to finally prove him wrong???

Finally, because I am talking about plain A500 with chip+slow 1MB RAM only!!! Yes boys and girls, no AGA this time, because AGA machines started the race with PC on MHz which they could never win and killed coding finesy on the road. So ones again the challenge is simple:

Wolfenstein/Doom style textured 3d world on standard 1MB Amiga 500. You do not need to convert those games or even use original textures. At this point it is important to code realitime calculated 3d world engine which is fast enough and can be used in future by you or someone else in porting the real game.
You can use the any resolution you want but the desired thing is to have something fullscreen if possible.

This is not an easy task, because there are plenty of clones but all of them requiring fast CPU, AGAs, fast ram etc. The main problemm is that Amiga has plannar graphics, however those 2 topics made me believe it is indeed possible.

http://ada.untergrund.net/?p=boardthread&id=872
http://ada.untergrund.net/?p=boardthread&id=217

Gentlemen, 16 bit ATARI ST has its wolfenstein clone
https://www.youtube.com/watch?v=WfQ9uRR-iZk

even 8bit ATARI XL has its wolfenstein clone
https://www.youtube.com/watch?v=DuZywAxfGkw

and standard Amiga 500 (no AGA,no Fast RAM, MC68k only) do not?

Anyone mad enough to try it?
britelite
Member
#2 - Posted: 15 Dec 2014 12:06
Reply Quote
Fachen:
Anyone mad enough to try it?

There's no better time than now for you yourself to start working on it!
Angry Retired Bastard
Member
#3 - Posted: 15 Dec 2014 12:52
Reply Quote
Yes, what Britelite said.
Challenges only count if you're going to take part in them yourself. You do something impressive first then we might try to beat it. :)
Fachen
Member
#4 - Posted: 17 Dec 2014 16:48
Reply Quote
britelite and Angry: Thank you for the inspiration however I am not sure you realise what you are suggesting ie. you want to learn swimming there is no better place to start than the middle of shark infested ocean where no other swimmer was before.
Of course if you were serious then you are indeed mad enough to try my challenge. ;-)

Seriously if you need motivation, then how about a bottle of the finest Polish vodka if the effect will be satisfactionary considering all the limitations.
I am the guy who can notice and cherish coding finesy and this was one of the main things I loved in scene, thats why i proposed this challenge, because for god`s sake even ZX spectrum has its workable wolfenstein clone

Doom on the Speccy: http://www.youtube.com/user/yerzmyey#p/u/4/3v7cFGneuaw

Wolfenstein on the Speccy: http://www.youtube.com/watch?v=n53-M6W2wEU
britelite
Member
#5 - Posted: 17 Dec 2014 17:41
Reply Quote
Fachen:
Seriously if you need motivation, then how about a bottle of the finest Polish vodka if the effect will be satisfactionary considering all the limitations.

Sorry but I can afford my own vodka.

You don't seem to get it. You want us to produce something for you to consume, without you needing to do anything yourself. That's not how this works. The best way to inspire us by making your own version which we feel like beating, or you could of course offer to pay a real salary to get things done.

Anyway, for a taste of wolf3d on A500 you could have a look at Superoriginal by Supergroup for an example.
Fachen
Member
#6 - Posted: 17 Dec 2014 18:17
Reply Quote
Well, you are right in three things. Yes I want to see it (consume) and yes I want to inspire someone who know how to do code on Amiga to actually do it.
At last You are right I do not get it, because I was always convinced that people has spent days and nights making those demos for one reason - consumption ie. watch by people. In the past audience was great but now its only limited to people like me. Lets face the fact, right now you need me as much as I need you, unless your reason for making the demos on Amiga now is to watch them alone.
You were right in those theree things, but you are wrong by thinking consumption is something bad...

I did not come here for arguing and believe me if cicustamces would allow it I would really love to finally learn some coding on Amiga, but I am a father of 3 and if you have a slight idea what does it mean you would understand it wont happen anytime soon. It does not mean I could not help making an Amiga better machine, If I can, that is why I helped mrsebe to create probably the best HAM6 converter ever made ;-)

Cheers man


britelite
Member
#7 - Posted: 17 Dec 2014 18:33
Reply Quote
Fachen:
In the past audience was great but now its only limited to people like me. Lets face the fact, right now you need me as much as I need you, unless your reason for making the demos on Amiga now is to watch them alone.

Not to be rude, but I most certainly don't need you. I don't make my living off of demos, I do this as a hobby. I do it because I want to, not because some random guy on the internet wants me to do something so that he can just consume without contributing anything himself.

So, if anyone was interested in making a wolf3d-clone on the A500, they probably would've done it already. Going around on forums asking people to do something for free is not the way to inspire someone, as this is just a hobby for everyone, something we do in our spare time.
Fachen
Member
#8 - Posted: 17 Dec 2014 19:29
Reply Quote
Well, I wrote a big letter to you but too short login time made it all dissapear so I need to write it really short.
First of all I did not want wolf3d-clone and I made it very clear at the beginning, I wanted just to see it possible on Amiga 500 and it was you who did that pointing me to YOUR demo

https://www.youtube.com/watch?v=GbBGxmJVasg

I also do not go around on ForumS I only wrote it here.
I also know very well that it is a hobby and why people did that.
So after clarifying your wrong statements there is one thing I need to ask you because it puzzles me.

Generally scene requies audience, if you do not need me (its not me specifically coz you can replace me with anyone liking demos) then why dont you just keep your releases for yourself instead for releasing them for public?

I really would like here to praise your skills after seeing your demo, but your unfriendly response does not give me that chance.
britelite
Member
#9 - Posted: 17 Dec 2014 19:54
Reply Quote
Fachen:
Generally scene requies audience, if you do not need me (its not me specifically coz you can replace me with anyone liking demos) then why dont you just keep your releases for yourself instead for releasing them for public?

Well, I actually kept my demos for myself in the beginning when I was learning. Demos are mainly made for people who are involved in the demoscene, as in other people making demos, as they can most likely appreciate them. If some random guy who doesn't visit parties and doesn't contribute himself likes demos that's fine, but they're not the target audience.

Fachen:
I really would like here to praise your skills after seeing your demo, but your unfriendly response does not give me that chance.

I know I'm being a bit harsh, but the amigascene is not being kept alive by consumers, it's being kept alive by people who actually bother to do something.

You'd get a better response by giving off the impression that you actually want to contribute yourself, but might be in need of help, rather than just asking people to do stuff.
britelite
Member
#10 - Posted: 17 Dec 2014 20:12
Reply Quote
And just to be clear, presenting ideas is not a bad thing. But there's a big difference between "Please make a wolf3d routine for A500 because OMG OMG" and "Hey, I found this neat new way to do raycasting, maybe you could use it or help me implement it"
Fachen
Member
#11 - Posted: 17 Dec 2014 22:31
Reply Quote
Britelite, thank you very much for tips. I believe we have here a misunderstanding of my intentions.

I very well understand where do your intentions come from. I am a former scener who must remind you that the demoscene was not only created by coders, and graphicians, musicians and swappers can also appreciate your work. They may not not understand you fully, but i have spoken with doesens of coders trying to explain me why this particular effect was so hard to code.
To put it in other words i do not believe that a random guy can still be interested in Amiga demoscene. Its just not possible because Amiga is history. Basically the only people who could visit the sites like this are old farts who felt nostalgia for old school Times when they were young and world was beautiful.
You may do not know me, but do not make the wrong assumptions anymore for new people coming here.
I believe I am your target audience and i can proof that. I have read all the comments on Pouet regarding your demo and noone was able to appreciate your wolfenstein effect, BUT I DO!!! :)
As far as I can see if someone needs to challenge someone in this effect on A500 he should challenge your demo.

So give me this pleasure and answer few questions regarding it.
1. Does your C2P procedurę is faster than SP proposed here? Is it the same, different.

2. how many colours you used?

3. How this 2 planar system was created?

4. Do you think you could do better now (higher resolution) ;-)

5. Ok I understand the main reason behind problemm with this effect (planar system), but if we have fast copperchunky routines why it still needs to be in so small resolution and slow. I suspect because other routines are slow also, but if you could shine some light on it, I would really appreciate it.
britelite
Member
#12 - Posted: 18 Dec 2014 07:08
Reply Quote
Fachen:
1. Does your C2P procedurę is faster than SP proposed here? Is it the same, different.

In Superoriginal I used copperchunky, so I didn't need a C2P. But I do have a a few different c2p-routines, but since SP hasn't released any of his routines I can't really compare.

Fachen:
2. how many colours you used?

Superoriginal was copperchunky, so it's 4096 colors.

Fachen:
3. How this 2 planar system was created?

Like I said, no c2p needed ;)

Fachen:
4. Do you think you could do better now (higher resolution) ;-)

Not in copperchunky, but maybe in some other graphics mode.

Fachen:
5. Ok I understand the main reason behind problemm with this effect (planar system), but if we have fast copperchunky routines why it still needs to be in so small resolution and slow. I suspect because other routines are slow also, but if you could shine some light on it, I would really appreciate it.

Planar modes and copperchunky are two different things. So in case of copperchunky the copper itself is a limiting factor on the resolution. Using planar modes would allow higher resolution (but less colors, of course), but unfortunately higher resolutions would most likely mean lower framerate.

I think the ST-version runs at up to 15 fps, and I think that's approximately what could be expected from an A500 at best.
Angry Retired Bastard
Member
#13 - Posted: 18 Dec 2014 13:39
Reply Quote
Fachen: My main problem with your post(s) is the sense of entitlement, e.g. the "you guys should really do this because I want to see it"-vibe. No coder owes you anything and "you" in this case covers both *you* as well as "the general demoscene audience" (whoever they may be).

Other than that I think Britelite already covered most of what I would've written here as well (and he did it in a friendlier tone as well! :-D )
Fachen
Member
#14 - Posted: 18 Dec 2014 14:59
Reply Quote
britelite: thank you for feeling gaps in my knowledge.
I always thought copperchunky is the same like c2p, but now i see those are two different routines
Ok, lets try to sumarize things for others reading this also:

1. In copperchunky you can use copper to change the colour registers directly. I have couple questions regarding it
a) the resolution is limited by number of copper instructions you could run every line. In your demo you have used black pixels to widen the screen, but I believe your approach is too much chopped. If we would use chessboard style what would be the limit of this.
b) I know that on A500 in 4 bitplane 320x256 mode, if we do not use blitter and copper the cpu have pracitcially free access to chipram interleaved with the display bitplanes. If we start to use blitter he is feeding cpu bandwidth and forcing it to wait., Can we use 1 bitplane resolution in copperchunky then use free memory slots to feed blitter? would it be beneficant to use then blitter for calculations?
c) in copperchunky we can basically have 12bit display. Whats the best texture graphics format which would be the best in this mode

2. Using C2P routines which converts chunky to plannar bitplanes requies extra CPU power. There can be of course faster and slower routines. SP on this forum has tried to optimise them and he claimed to achieve 13.25 cycles per pixel. would it be slower than copperchunky anyway?
britelite
Member
#15 - Posted: 18 Dec 2014 17:26
Reply Quote
Fachen:
the resolution is limited by number of copper instructions you could run every line. In your demo you have used black pixels to widen the screen, but I believe your approach is too much chopped. If we would use chessboard style what would be the limit of this.

The black pixels in my demo is to hide the bad resolution. You can change the color every 8 pixels, giving you a 40 pixel wide resolution on a 320 pixel wide lores screen. I've doubled the resolution in Superoriginal by splitting one line into to scanlines, first scanline showing the 40 even pixels and second scanline showing the 40 odd pixels, effectively giving my a 80x100 resolution.

Fachen:
in copperchunky we can basically have 12bit display. Whats the best texture graphics format which would be the best in this mode

Having the pixels in a 16bit xRGB format, just like the palette registers.

Fachen:
SP on this forum has tried to optimise them and he claimed to achieve 13.25 cycles per pixel. would it be slower than copperchunky anyway?

I'm pretty sure you're confusing his texturemapper and c2p routine now. The c2p-routines I currently have only use the blitter, so the cpu is free to do other stuff.

Raylight
Member
#16 - Posted: 18 Dec 2014 18:50
Reply Quote
Hi Fachen!

Kudos for your initiative and for proposing a challenge! :-) I'm most likely mad enough, but this one is quite complex and would require hundreds of hours for me at least. Hours I (am supposed to) spend on coding effects etc for upcoming demos/intros. =)

Yes, the Amiga Scene is a bit slow compared to C64 nowadays, but we're getting there.. muahahahaha ;-)

Were you interested or involved in coding, music, graphics etc "back in the days"? Anyway, if you haven't recently; I'd suggest you check out amigascne on IRCNet, and join the club!

Cheers, and see you later! =)
Fachen
Member
#17 - Posted: 19 Dec 2014 01:29
Reply Quote
Britelite
In your demo your two logical pixels look like

11111010
02022222

while on display those are 2 lines logically its one line.
The problemm i see with this way of display is that single pixel is actually 5 pixel large. I understand that using copperchunky this is probably the best way to display fullscreen.

You wrote "You can change the color every 8 pixels, giving you a 40 pixel wide resolution on a 320 pixel wide lores screen" but wouldn`t be more precise that copper allows you to put only 40 logical pixels per line, but the actual logical pixel size can be regulated?
Would it be possible to display something like this
1100
0022
it is not full screen effect but the logical pixel has acceptable size. The logical 80x100 resolution would be in this way displayed as 160x200 actual screen pixels.
Or something like that
111010
020222
The logical 80x100 resolution would be in this way displayed as 240x200 actual screen pixels, which i believe would be optimal compromise without making too big pixels.

If the optimal format of textures is 16bit they would be too big to fit into chip ram - another problem with this technique arises.

Raylight:
Actually there were tons of attempts to create doom clone on Amiga, but most focus on faster cpu and big rams, so nothing for OCS/ECS.
What i was doing back in those days. hmm let me see, I was dancing, chatting, watching anime and doing crazy stuff while my amiga was used to finish demos for the deadline by some crazy coders ;-)
I have few ideas for HAM mode so i will catch you there,
britelite
Member
#18 - Posted: 19 Dec 2014 05:51
Reply Quote
Fachen:
You wrote "You can change the color every 8 pixels, giving you a 40 pixel wide resolution on a 320 pixel wide lores screen" but wouldn`t be more precise that copper allows you to put only 40 logical pixels per line, but the actual logical pixel size can be regulated?

No, it's all about the copper speed, it can only change colors every 8th pixel. There are other ways around the limitation if you want to use a smaller screensize, but you can't get a faster copper.

In some of my latest prods I use HAM instead of a copperscreen, giving me a real 80 pixel wide resolution. This of course requires a c2p routine, but is still quite fast.
Fachen
Member
#19 - Posted: 19 Dec 2014 10:36 - Edited
Reply Quote
Britelite: So thank you again for fixing my knowledge.
I read in various forums that Alienbreed 3d was using copperchunky mode, so i thought it is just the limit of copper instructions per line. Now i see alienbreed must use some form of C2P routine to display its graphics.

Right now I am trying to summarise all knwoledge in order to find the most optimal way of doing wolf/doom clone on standard A500.

3dworld rerquies:
1. Routines which calculate how the every logical pixel must look like.
2. Routines for enemies, effects
3. Routines for music,soundeffect
4. Routines which controls the very idea the game works.
5. Optional C2P routine

As far as I can see all above requies CPU power. Well maybe point 1 and 5 can be helped by blitter. A500 does not have strong CPU and its power is limited the bandwidth of memory which needs to be shared between display, blitter, copper etc.

Copperchunky mode Advantages:
1. It can draw the chunky pixel directly, so we do not need to sacriface CPU power for point 5, and by using only 1 bitplane CPU can all memory bandwidth it requies working on full speed all the time.
2. The mximum logical resolution of th displayed screen is quite small 80x100, which means the calculations needs to be done only for 8000 pixels ;-)
3. Logical resolution might be small, but it can be displayed in a way to simulate fullscreen mode.
We can use
11110000
00002222
or
11111010
02022222
or
11110010
02002222
or....

Copperchunky mode disadvantages:
1. Optimally textures would requie 16bit pixel format for avoiding conversion routines. Such textures would be big meaning we would be filling chip ram very quickly.
2. If we store textures in for example 8bit format, then we would need the extra routine for conversion such testure to copper colour registry 12bit format, which of course would need CPU power.
3. While some tricks can be used to simulate fullscreen display, the actuall resolution is quite easy spotted and honestly is far from desired.

Thats all i can think of for this mode, in case of C2P routine working in HAM6, I see one main disadvantage. HAM requies at least 6 bitplanes and the display itself will limit CPU power blocking its access for memory.
Ideally C2P routine would have to work in 4 bitplanes 16 colour mode in order to free all CPU power or maybe this bugged HAM7 mode????.
britelite
Member
#20 - Posted: 19 Dec 2014 11:02
Reply Quote
Fachen:
I read in various forums that Alienbreed 3d was using copperchunky mode, so i thought it is just the limit of copper instructions per line. Now i see alienbreed must use some form of C2P routine to display its graphics.

I'm pretty sure it's copperchunky, but it's in AGA where it's easier to work around the limitations of the copper.
Jazzcat
Member
#21 - Posted: 19 Dec 2014 16:37
Reply Quote
Fachen:
Wolfenstein/Doom style textured 3d world on standard 1MB Amiga 500. You do not need to convert those games or even use original textures. At this point it is important to code realitime calculated 3d world engine which is fast enough and can be used in future by you or someone else in porting the real game.
You can use the any resolution you want but the desired thing is to have something fullscreen if possible.


Have you seen a game called Cytadela made in 1995 by members of Suspect, a polish group? Isn't exactly what you're looking for?
Fachen
Member
#22 - Posted: 19 Dec 2014 16:56 - Edited
Reply Quote
Yes I have seen Cytadela and while graphics and gameplay is ok, the performance is so small its really SLOW. 5fps at best -totally unplayable and what is worse we are talking about really small screen.
If someone would seen it on youtube he could think its nice game, but thats only because of faster CPUs.

UPDATE:
Doom clones started emerging on Amiga in AGA era so almost all were designed for A1200 and fast accelerator cards. There is a super video which explains that era here

https://www.youtube.com/watch?v=Tv6aJRGpz_A

I have found also a super tutorial which describes almost all Doom clones on Amiga

http://ftp.uni-erlangen.de/aminet/docs/misc/tmapfaq151.lzh

 

  Please log in to comment

  

  

  

 

A.D.A. Amiga Demoscene Archive, Version 3.0