Jump to content
IGNORED

Catharsis Theory - a new 4k demo


Kylearan

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
Link to comment
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
Link to comment
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
Link to comment
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.

Link to comment
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.

Link to comment
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
Link to comment
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

Link to comment
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.

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...