English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   project.Amiga Game Factory (https://eab.abime.net/forumdisplay.php?f=69)
-   -   Psycheual (https://eab.abime.net/showthread.php?t=51437)

Asman 08 March 2010 13:06

Psycheual
 
Hello

This thread is about full version of shareware game Psycheual.

On the basis of source code from author of game I will make full version of this game + improvements.

Any comments, ideas, improvements, found possible bugs are welcome.


Backgrounds:

Original source code contains only core of game and following this were missing:
- comments in core source ( obvious :) )
- all binary data ( gfx, music, sfx, levels )
- two source codes ( music player, sub game invaders )

TCD 08 March 2010 13:13

http://i.imagehost.org/0188/23_30_125.gif http://e.imagehost.org/0703/13_4_8.gif http://d.imagehost.org/0395/551.gif

Sorry, couldn't resist ;) Keep it up Asman :great

Peter 08 March 2010 13:29

Asman - I thank you for your dedication :bowdown

nujack 08 March 2010 20:45

Great News!!!
Would be fun to play the finished game. Good luck!!!

Asman 08 March 2010 21:02

3 Attachment(s)
Very first full version of psycheual in the zone ( early alpha ). Enjoy. There is no warranty any kind.

Screen shots. First one is from sub game invaders. Second from terminal, Third after destruction sequence.

Attachment 24525Attachment 24526Attachment 24527

Cheers.

EDIT: I've no idea but on WinUae there is fire when player shoots but on my a1200 030 there is no fire. Time to fix this :)

EDIT2: After problem with uploading should be in the zone now.

Peter 09 March 2010 13:36

Played this via WinUAE this morning and it is looking great - I am looking forward to a day when I can put the full version into a real Amiga!!

I wish I had some talent at coding rather than just a trigger finger!

nujack 09 March 2010 20:28

I tried out the version from The Zone and died in Level 2. Is the highscore saved? ;) How can I exit the game back to AmigaOS?

Asman 09 March 2010 22:19

Quote:

Originally Posted by Peter (Post 650044)
Played this via WinUAE this morning and it is looking great - I am looking forward to a day when I can put the full version into a real Amiga!!

I don't have good news yet if you want to play on real Amiga. I played on my a1200 blizIV 030/50 32mb and there are glitches/artefacts on sprites. Because as I discovered few minutes ago author of game write sprite pointers into the copperlist and then ( very quickly ) set position/control in sprite data. The best way ( as I know ) to fix this shitty situation is to make second copperlist and swap them for every frame ( but this need much more effort ). Author approach with sprites was good on ECS machines ( i think! ).

Asman 09 March 2010 22:34

Quote:

Originally Posted by nujack (Post 650209)
I tried out the version from The Zone and died in Level 2.

As I know aliens are stronger on next levels, but you can find better weapon on next levels :). Furthermore in demo version there is no few samples ( four: autogun, elcgun, clank, shot ) and I use some random sfx weapons like ( autogun - zwip, elcgun - laser, clank - clang, shot - machinegun ). I will try to find later more accurate samples. Now you know why you hear laser sfx when shooting end :)

Quote:

Originally Posted by nujack (Post 650209)
Is the highscore saved? ;)

Will be. Furthermore I can make WHDLoad slave for this game with highscore save support :)


Quote:

Originally Posted by nujack (Post 650209)
How can I exit the game back to AmigaOS?

There is one posibility. You can do this only when you're playing. Just press right mouse button. For sure I will add keyboard support ( cd32 pad probably too ). There is more things which I want to do.

StingRay 09 March 2010 22:53

Quote:

Originally Posted by Asman (Post 650246)
I don't have good news yet if you want to play on real Amiga. I played on my a1200 blizIV 030/50 32mb and there are glitches/artefacts on sprites. Because as I discovered few minutes ago author of game write sprite pointers into the copperlist and then ( very quickly ) set position/control in sprite data.

Nothing wrong with that.

Quote:

Originally Posted by Asman (Post 650246)
The best way ( as I know ) to fix this shitty situation is to make second copperlist and swap them for every frame ( but this need much more effort )

This is not needed for simple sprites. Care to share the source so I can have a look?

Asman 09 March 2010 23:10

Quote:

Originally Posted by StingRay (Post 650252)
Nothing wrong with that.

Even if sprite is animated ?


Quote:

Originally Posted by StingRay (Post 650252)
This is not needed for simple sprites. Care to share the source so I can have a look?

I will prepare some source package tommorow evening.

Asman 10 March 2010 12:42

@StingRay

I forget mentioned that hero in game is made from 4 sprites ( 32pixel wide 16colors attached 2 sprites ). I hope you will understand my silly explanation :)

Toni Wilen 10 March 2010 13:05

Quote:

Originally Posted by Asman (Post 650246)
write sprite pointers into the copperlist and then ( very quickly ) set position/control in sprite data

(was already replied but it didn't really explain anything :))

This works fine as long as you do not modify sprite data when sprite DMA reads them. Sprite DMA engine fetches first sprite words when vertical position is 25 (PAL) or 20 (NTSC). Lots of time to update. Nothing to do with when/if sprite pointers are updated.

Asman 11 March 2010 09:48

@StingRay

Sorry I didn't make sources yesterday, coz other things eat all my free time.

@Toni

Thank you for answer. But if I understand correctly that I can do something like:

wait for vertical beam, set sprite pointer in copperlist and set sprite data ( position ), right ?

Toni Wilen 11 March 2010 11:03

Quote:

Originally Posted by Asman (Post 650707)
Thank you for answer. But if I understand correctly that I can do something like:

wait for vertical beam, set sprite pointer in copperlist and set sprite data ( position ), right ?

Yes, it is always perfectly safe as long as you do it before sprite DMA starts. (line 25/20)

Updating coordinates while sprite DMA is fetching SPRxPOS/SPRxCTL data will cause glitches because sometimes DMA gets new SPRxPOS data and old SPRxCTL data or vice versa and sometimes both registers gets old data or both registers gets new data. 3 different glitches possible :) (Sprite DMA always has priority over CPU)

This is something that isn't very well explained in HRM.

Sprite DMA is idle until line 25/20, all sprites' POS and CTL are updated by sprite DMA during line 25/20 (if DMA bit in DMACON is set). DMA goes back to idle mode until current vpos matches vstart, sprite is enabled, disabled when vpos matches vstop, during following line POS and CTL are updated again and back to idle again and so on..

Asman 11 March 2010 12:41

Quote:

Originally Posted by Toni Wilen (Post 650741)
Yes, it is always perfectly safe as long as you do it before sprite DMA starts. (line 25/20)

Updating coordinates while sprite DMA is fetching SPRxPOS/SPRxCTL data will cause glitches because sometimes DMA gets new SPRxPOS data and old SPRxCTL data or vice versa and sometimes both registers gets old data or both registers gets new data. 3 different glitches possible :) (Sprite DMA always has priority over CPU)

This is something that isn't very well explained in HRM.

Sprite DMA is idle until line 25/20, all sprites' POS and CTL are updated by sprite DMA during line 25/20 (if DMA bit in DMACON is set). DMA goes back to idle mode until current vpos matches vstart, sprite is enabled, disabled when vpos matches vstop, during following line POS and CTL are updated again and back to idle again and so on..

And this is very interesting, coz I still have sprite glitches ( I do: wait vertical beam, set sprite pointer to copper and then set sprite data ( DMA sprite on ofcoz ) . Glitches appears when I have for example 2 frame animation.
I will check again source ( maybe I still doing something wrong ) and I if find something interesting then I will post source.

Asman 11 March 2010 12:44

Is there someone which tested psycheual from the zone on the real amiga ? I mean about A1200. Can someone also confirm sprites glitches on real machine ?

Graham Humphrey 11 March 2010 15:33

I've just tried this on my '040 and have had the same problems with the glitching sprites (on some of the enemies but not all of them) and invisible bullets. Also sometimes firing causes the logo at the bottom of the screen to glitch slightly.

Asman 11 March 2010 16:00

Thank you so much, I have exactly same glitches on my 030 machine.

Asman 12 March 2010 13:54

Yesterday I found some time and make simple source with game sprites and everything is ok ( there is no glitches on gfx data there is no problem when I set sprite pointer and sprite data right after vertical beam wait). So it must be as Toni said: mean game modify sprite data when sprite DMA reads them.


All times are GMT +2. The time now is 07:05.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.23773 seconds with 11 queries