Jump to content
Kylearan

Catharsis Theory - a new 4k demo

Recommended Posts

I have released a new demo at the Revision 2017 demoparty, this time in 4k because people kept telling me you have to do a 4k to become a "real" VCS developer. ;)

 

Here's the Pouet link: http://www.pouet.net/prod.php?which=69681

 

I've also attached the binary to this post. The dasm source can be found here: https://bitbucket.org/kylearan/catharsis_theory/overview

But caution, due to a lot of heavy optimization, it might not be very readable. The readme contains a technical write-up though, in case you are interested.

 

Now I can go back to developing Air Taxi. :)

catharsis_theory.bin

Edited by Kylearan
  • Like 15

Share this post


Link to post
Share on other sites

Very nice work, and an additional motivation to resume work on improving starfield emulation soon :) On thing that has been bugging me for some time (but I haven't tried out yet): I would assume that something like

LDA #$70
STA HMM0
STA HMM1
STA HMBL
STA HMP0
STA HMP1
STA WSYNC
STA HMOVE
; Waste 10 or so CPU cycles
STA HMCLR

should be a simple and robust way to put all five sprites into "starfield mode" without tight timing requirements, but I haven't seen this mentioned anywhere yet. I guess I should just try it out one of these days, but: has anyone already tried this?

Edited by DirtyHairy

Share this post


Link to post
Share on other sites

Great demo Kylearan, but why such a negative theme?

I had to shut it off after hate and racor, but the design reminds me of polybius a bit.

Share this post


Link to post
Share on other sites

And absolutely excellent demo. I was pretty disappointed when I first saw it at Revision, but there it was butchered by the organizers(?). The complete version is sooo much better. :thumbsup:

 

On thing that has been bugging me for some time (but I haven't tried out yet): I would assume that something like

LDA #$70
STA HMM0
STA HMM1
STA HMBL
STA HMP0
STA HMP1
STA WSYNC
STA HMOVE
; Waste 10 or so CPU cycles
STA HMCLR

should be a simple and robust way to put all five sprites into "starfield mode" without tight timing requirements, but I haven't seen this mentioned anywhere yet. I guess I should just try it out one of these days, but: has anyone already tried this?

Yup. Look here.

Edited by Thomas Jentzsch
  • Like 1

Share this post


Link to post
Share on other sites

Great demo Kylearan, but why such a negative theme?

Because the real world isn't only rainbows and roses as well. :)

 

I know the concept won't appeal to everyone, but I hope at least the technical side can still be interesting.

  • Like 3

Share this post


Link to post
Share on other sites

I have released a new demo at the Revision 2017 demoparty

Nicely done! :thumbsup:

 

 

this time in 4k because people kept telling me you have to do a 4k to become a "real" VCS developer. ;)

I thought it was 2k, like the initial batch of games :ponder:

 

;)

Share this post


Link to post
Share on other sites

Ah, well. The CPU can handle 4k, so be it ;-)

I like the result and even more the fact that you probably felt all the despair, hope and enthusiasm working in the 4k limit ;-)

While I lost some hair over it, this gave me quite some 'understanding' of the old times when I worked on Assembloids2600 in 4k.

Share this post


Link to post
Share on other sites

Yup. Look here.

 

Thanks, Thomas, that's indeed the exact code I had in mind :grin: I had found star field discussions on the Stella mailinglist before, but somehow, this thread eluded me. I guess there's nothing new under the sun... ;)

Share this post


Link to post
Share on other sites

[...] you probably felt all the despair, hope and enthusiasm working in the 4k limit

Actually the order was different: First enthusiasm, then hope, then despair. ;)

  • Like 1

Share this post


Link to post
Share on other sites

 

Thanks, Thomas, that's indeed the exact code I had in mind icon_biggrinwink.gif I had found star field discussions on the Stella mailinglist before, but somehow, this thread eluded me. I guess there's nothing new under the sun... icon_wink.gif

A funny coincidence is, that this code related to another demo (Svolli's Bang!). And the discussion with Svolli resulted into my own Coke Zero demo.

Share this post


Link to post
Share on other sites

I finally found the time to carefully read the readme. That one is very valuable and contains a lot of info I would have missed without it (e.g. the Cosmic Ark stars).

 

And the Optimization for Size part pretty much describes my own optimizing techniques. But fortunately I usually feel much less pain. And now I will have a look at your code and find a few extra bytes... :D

 

BTW: I love the Lightning! icon_love.gif (I would like to see that on its own to study the variation)

Edited by Thomas Jentzsch

Share this post


Link to post
Share on other sites

BTW: I love the Lightning! icon_love.gif (I would like to see that on its own to study the variation)

 

No problem! I've attached a source file where I stripped out everything else except the lightning. I don't know how readable it is though, as it's from after size-optimization.

 

There's a table called "LightningSeeds" which contains 8 seeds for the pRNG that I think look good and which I've found by trial and error. It loops through these seeds. I'm sure there are more good-looking seeds, but also a lot that don't work well - just experiment.

lightning.asm

Share this post


Link to post
Share on other sites

Works, except that the ball is moving around.

 

It does? :? Looks good to me here. What exactly does the ball do which it shouldn't?

Share this post


Link to post
Share on other sites

The central flash is steady, but the ball and P1 are moving horizontally between frames.

 

Here is the ROM and a screenshot, maybe you can spot what's going wrong.

broken lightning.bin

post-45-0-28592900-1492693541_thumb.png

Edited by Thomas Jentzsch

Share this post


Link to post
Share on other sites

Haha, that's funny - or sad, I'm not sure. ;) It looks like we are using different versions of dasm. In line 72 in the subroutine "FinePosObject", my source says

 

    sta.w RESP0,x

which according to Stella my dasm compiles to

 

    STA.wx RESP0,x

and yours to

 

    STA.w RESP0

which of course is not what I want, as it's missing the x indexed mode. (I repeat myself, but dasm is REALLY annoying and outdated. No modern tool should silently discard the ",x" without saying anything to the user.) I'm using DASM 2.20.11 20140304 by the way.

 

So for your version of dasm, I guess changing the line in the source to "sta.wx RESP0,x" should probably fix it.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...