English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Amiga scene (https://eab.abime.net/forumdisplay.php?f=2)
-   -   Winning Amiga 500 demo at revision (https://eab.abime.net/showthread.php?t=68614)

Ted1969 01 April 2013 20:30

Winning Amiga 500 demo at revision
 
Hi all,

Perhaps slightly off topic for this forum as it's Amiga Scene stuff, but the winning old-school demo at Revision 2013 was Rink-A-Dink REDUX by Lemon, available from here.

http://www.pouet.net/prod.php?which=61182

More on topic is the fact that the original version of this demo used to be a real pain to try and get to run on WinUAE and interestingly, for you Amiga programmers and emulation purists, there's a stack of text at the end of the demo about the changes required for WinUAE over a stock A500 (might be of some interest to Toni) along with a few hints and tips on how the effects were made... cool retro stuff

Thanks

Ted


P.S. I thought about hacking the text out using Action Replay & WinUAE, but then I realised I didn't have an Action Replay ROM... and my hacking skills wouldn't know where to start with compressed text on disk. Maybe some kind demo fan will attach it to this thread, but you should take a look at the demo anyway if you want to see some fast A500 code

Codetapper 01 April 2013 23:03

Rink a Dink end credits
 
you have been watching

R I N K A D I N K
R E D U X

by

L E M O N - P O I N T


an OCS trackmo for the
oldschool demo competion at


R E V I S I O N

29th March - 1st April 2013
Saarbrucken - Germany




- CREDITS -


Graphics
Facet
Prowler
Paradroid

Original Soundtrack
Nuke

The Redux Remix
Magnar

Spatism
- second track -
Magnar

Gone 4D
- ending track -
Nuke

Code & Design
Paradroid



- also starring -

The Red Faced Monster
Paradroid 2.0

This Lovely Lady
Mrs Paradroid



Hi there! Paradroid here, but I don't really have time to write much as the deadline for the compo has already passed. Luckily I already prepared a run down of all the effects in this demo, giving a short explanation of the techniques and tricks used, so at least you're not now viewing an empty screen... : )


(left mouse button to pause)


Opening Logo Zoom
Same as the original RAD, but with a reverse of direction which leads into a brief mosaic effect. The zoom is a simple enough trick, with each line displaying a coarsely pre-scaled image with the smooth steps in between achieved by spamming the hardware scroll register across the screen. The hardest part was making it work with both real hardware and WinUAE as the DMA timings are slightly different and I'd often get gaps in one or the other.


Star Zoom
Not much to see here, but I spiced up the transition a little by adding a feedback effect to give the impression of particles.


Presents
The first thing I coded for the demo. The original twister used pre-calculated points that were plotted and then filled, the shading was probably the same. Not sure why I did it that way as the hardware is plenty fast enough to do it realtime, in fact after recoding it I had so much time left over that I made it solid. All was great until I ran it on a real Amiga and it was hellishly slow – turns out I wasn't running WinUAE in cycle exact mode so had to recode it. Lesson learned and luckily I had been a bit lazy and had plenty of scope for optimisation to get it back into 50Hz, phew!


Rink A Dink: Redux
Similar to first time around, although I made the logos appear in the correct order this time. The 'A' also now has a transparency effect. The intention was
to have a warping lens effect here, but I ran out of time. Most of the coding time was sunk into making the Redux logo fall into place as it required some convoluted clipping of the RAD scene.


Lemon Image
This was an abandoned effect, but I had a second to fill so used it for the transition to black. It's used again for a different transition later on...


Plasma
Rewrite of the original plasma effect, but shortened to improve the pacing. The second effect is a simple variation that blends two plasmas together.


Glenz Vector
I just had to have some classic Celebrandle vectors. The object that zooms into the scene is drawn using a couple of methods as the blitter wasn't quick enough to draw and fill three overscan bitplanes at 50Hz. The front facing and inner white polygons are drawn using the blitter as normal, but the bitplane for the overall shape is achieved using the copper to select bitplane spans.

When the clipping kicks in I switch to pure blitter rendering, but this time there are four bitplanes. The rendering is copper controlled while the CPU is running flat out doing the clipping and generating the blitter information. I'd only seen this effect done properly (i.e. all 4 bitplanes clipped) in an A1200 demo, so I was very happy when I finally got it working at full speed on a vanilla A500.


Vertical Bars
I had this in mind years ago after seeing an ident sequence on TV. I found a rough version of it I'd coded up for a demo called DMA Dream and worked from that. It actually looked a little dull as an effect, so I made the light source dynamic and introduced some stippling to achieve the illusion of extra shades.


Colourful Vertical Bars
More old code revamped, but it's quick and I needed to buy some time for preparing the next sections of demo. The bars are a realtime generated HAM image and there were going to be a few more patterns, but it was a bit dull to see after the previous effect so I stuck to a single spinner and made it move on as soon as possible. Apologies for the programmer colours, I left it until too late to them properly, oops!


Star Field
Nothing special with just a couple of thousand stars, but again this is because I needed to leave over some CPU for preparing the next part. You may have missed that the final larger star balls to fly out of the screen are the same colours as the balls in the next sequence.


Big Balls
A world record? I actually found out about an OCS demo that had already done 8 after finishing this effect, so I went back and redid it to get an extra one in there. This was all done with bitplanes which is why I was able to add a translucency effect too, unlike other demos which use sprites for the balls at the back. A think I can push the number even higher, but that will be a task for another demo.


Colourful Image
What a pain in the ass this was! It may look like a simple image, but it's HAM mode and changing it's palette every line to get even more colours out of it. Having that and then also stretching it down the screen should have been easy enough, but WinUAE does some strange things when you use HAM and a none black background, so lots of messing about was needed, grrrrr!

It was getting close to the deadline for completion and there was no time for anyone to pixel a proper picture, so I opted for a photo of my kid instead. His face painted to look a little like the monster that featured in the original RAD, although you probably wouldn't have noticed until reading this : )

RotoZoom
Similar to the original in that it can display 4096 colours, but I managed to more than double the vertical resolution and add a 50Hz offset flicker to give the impression of increased horizontal resolution too. I had some free frame time so chucked in a simple warp effect to finish it off. The tricky part of this effect was to the fade in from white at the very start of it. The original used pre-faded images for this, but I didn't have enough memory this time around, so I instead generated a small animation in the background and played that back – a bit over the top for what is only about 8 frames, but it looked better for it.


Greetings
So I actually remembered to put greetings in a demo for once! There are several thousand dots being plotted behind the scroller, which isn't a record, but that's the price of having other stuff going on at the same time.

The “Heart of Melon” animation is just a little joke dating back to some of the trolling/trash talk that went on between our groups back in the day. No harm is meant by it, in fact they were one of my favourite groups and some of us were friends and remain so to this day. Maybe they should make another OCS demo too so they can send a reply – I can but dream! : )


Dot Vector
As seen before in Kefren's Desert Dream. Nothing too clever going on here, I just wanted something to transition to the next effect that wasn't just a simple fade and I had an in progress version ready to work from.


Clipping/Morphing Vectors
An effect lifted directly from Booze Design's C64 demo “Edge of Disgrace”, which explains the little message that appears at the bottom of the screen ; ) After I finished it I was well within 50Hz so added a stipple layer that allowed for much smoother lighting (when viewing on a CRT display).


Lit & Clipped Icosahedron
A continuation of the sequence from EoD, but I added some full colour (i.e. not RGB) light sources. It's based on the code for the clipped glenz, so there is nothing more to explain.


Filled Balls
These are visually the same as the balls I created for Anarchy's Deja-Vu demo, but a little bigger and with an extra ball thrown in. The balls at the front are rendered with bitplane spans, while the furthest is constructed from sprites. The trick was to animate it in such a way that the smallest ball was never over a certain size, otherwise it couldn't be represented with sprites. I could have made them even bigger, but opted to keep the preferred to keep the noisier fill pattern (see Desert Dream for what they look like without this) and avoid losing two sprites as happens when using overscan mode.


Credits
Pretty much identical to the original RAD but with a few tweaks to allow the top and bottom to animate at the same time. I did rewrite it to handle more colours in zooming logos, but needed the frame time for background tasks relating to the next effect.


Tunnels
The original RAD stored these on disk and just played them back. I planned to do the same with Redux but we ran out of diskspace towards the end of development and the tunnel data was the stand out candidate for culling. It took a couple of days to rewrite the effect but eventually got it quick enough, saving the second music track from being removed instead, YAY! : )


The End
Nothing much to say, it just seemed like a fitting end to a demo that has been an absolute joy to program. Most of my working day is spent making API calls to hardware that does everything for you, so to come back to a platform that lets you get so close to the metal and have some fun has been a truly wonderful experience.


Thank you for watching.


See you in the post-party AGA fixed version!


BYE BYE

Dr.Venom 01 April 2013 23:13

Quote:

Originally Posted by Ted1969 (Post 878868)
Perhaps slightly off topic for this forum as it's Amiga Scene stuff, but the winning old-school demo at Revision 2013 was Rink-A-Dink REDUX by Lemon, available from here.

Thanks for the pointer, very nice demo and relaxing to watch, including reading the end-scroller. Brings back memories of the days when A500 demos were released on a regular basis...

@Codetapper: Ahhh, now you've spoiled it... ;)

robinsonb5 02 April 2013 00:54

Very nice! Just watched it on YouTube, then watched it again "properly" (OK, nearly properly!) on the Minimig.

Ted1969 02 April 2013 09:45

@ Codetapper - Thanks for pulling the text. I won't ask how you did it but it saves me from trying to find out how to do it myself

@ Dr.Venom & robinsonb5 - No worries. The original version (often labelled Rink-A-Pink, but then that D does look a pit like P) is not very relaxing trying to get it to run in WinUAE and I never even tried on my A12oo. If they make the post-party AGA version then it should work on all Amiga's and WinUAE without issue

Toni Wilen 02 April 2013 10:41

I have already requested UAE non-working example code from demo's programmer.

I don't personally like if standard A500 demo has any kinds of UAE workarounds. It is totally wrong, it is my "job" to fix it, original programmer shouldn't care and/or waste time.

Paradroid 02 April 2013 11:18

Hey hey hey, Toni! I'd like to say that the demo wouldn't have got made at all if it wasn't for winuae, so please don't take my complaining about it in the demo harshly. It's a wonderful piece of software and works great most of the time :agree

I'm recovering from the run up and the party itself right now and still need to fix some A1200/A4000 issues (once I can face it), but once I'm done I'll get those examples made for you.

Be prepared for DMA timing hell, lol :crazy


(suppose it's better than me emailing directly about audio sync issues that don't really exist... sorry about that :bash)

Ted1969 02 April 2013 11:26

That's good to hear Toni. If it adds to the accuracy of an emulator that has a very high level of compatibility, with far more configs and software than other emulated systems, then us emulator enthusiasts benefit. Seemingly it will add to your satisfaction in creating something that should handle all the tricks and turns that demo (and some game) programmers throw at it.

I'm quite grateful to the Lemon people (ex-Core Design (Tomb Raider), whom knows ?) for getting it to work on WinUAE, because I currently haven't got a working A500 / A1200 setup. Although I own both machines and I know my A1200 still works, I haven't got a ready display device or external flicker-fixer that will allow me to run native Amiga modes. Perhaps it's just programming evolution for those that have transitioned through many API and hardware revisions applying a little knowledge to extend compatibility... the demo still doesn't work on A1200's apparently and I don't know about other A500 configs. I guess the maxim should be - It's an OCS demo, it's tested and works on A500 OCS.

Anyway, enough rambling from me for now, I hope to test a beta WinUAE sometime in the future with the original Rink-A-Dink and get past the bootloader.

Thanks

Ted

Paradroid 02 April 2013 11:35

If you can't get past the bootloader then it's probably to do with the floppy drive speed. Set that to "100% compatible" and also make sure "cycle exact" is ticked in the chipset options. The demo also uses 1MB of ram, so make sure an extra 512KB is added somewhere (should be fine with chip, slow or fast)

EDIT:
PS. Yes, many of us were employed at Core Design, but I left just as Tomb Raider went into pre-production.

Toni Wilen 02 April 2013 11:40

Quote:

Originally Posted by Ted1969 (Post 879018)
Anyway, enough rambling from me for now, I hope to test a beta WinUAE sometime in the future with the original Rink-A-Dink and get past the bootloader.

Use OCS config or Full ECS. Reading from non-existing register (DENISEID) works incorrectly because my test A500 isn't exactly in original configuration and made my tests invalid.. (Noticed few days ago..)

btw, I solved missing left edge border in rotozoomer part but implementing it properly won't be trivial.. Bitplanes have the HRM documented delay after BPL1DAT has been written but already "armed" sprites will become visible immediately. Which means sprites can be visible in exactly 1 lores pixel wide region just before first bitplane pixel. (Of course, only if DIWSTRT is small enough)

Quote:

Be prepared for DMA timing hell, lol
I am quite sure it isn't that bad anymore. Copper/bitplane/etc timing was nearly fully done few years ago. Biggest problem was missing test cases, everything just worked until now :)

(Only known problems are those programs that poke blitter registers, mostly accidentally, while blitter is already active. This is practically impossible to emulate without blitter circuit or logic diagrams..)

Ted1969 02 April 2013 11:54

@ Paradroid - REDUX version works just fine, it's the original Rink-A-Dink that gives me the purple OOPS! screen ;o) - REDUX has audio glitches in a couple of places, but I think something is pushing my aging PC a bit too hard at that point, so I get syncing issues ? And Core Design, thought so, I'm more or less ex-game industry... started out at Acid Software in New Zealand (Blitz Basic, etc.)

@ Toni Wilen - Sounds like there may be a free, slightly lame, starfield waiting to be programmed somewhere.


Glad you two have linked up. Amiga demos and Amiga emulation - Probably my favourites


Thanks,

Ted

Codetapper 02 April 2013 12:10

Quote:

Originally Posted by Ted1969 (Post 879002)
@ Codetapper - Thanks for pulling the text. I won't ask how you did it but it saves me from trying to find out how to do it myself

For your information, I simply waited until the demo was displaying the credits, saved an uncompressed state in WinUAE, loaded it into CygnusEd and searched for some text that was on the screen. Then cut the text out and made a few substitutions to remove the text formatting control codes.

Asle 02 April 2013 13:04

And for further information, it's RNC data on disk (replace PDR with RNC). The text is in one of them. Same for other texts.

Mclane 02 April 2013 14:47

Ted, just tested Rink a dink original on beta 14 Winuae and it works perfectly, it does seem to sit a wile on the Boris Vajalelo type loader screen but it is still reading tracks and runs fine.

I'm using a DMS of it, maybe you have a corrupt version or as said the floppy timing is set to high.

dalton 02 April 2013 14:49

Did anyone rip the music yet? Would really like to get my hands on those mods!

Ted1969 02 April 2013 15:19

@ Codetapper - I didn't think of that one, emulation state saves to the rescue

@ Asle - RNC is Rob Northern ? I thought he was Gremlin ;o) Thanks for the info though

@ Mclane - I just tried the .adf on WinUAE beta14 again too (called Rink-A-Pink) - could be a corrupt image I guess, everything else is set for accuracy (cycle exact, 100% compatible floppy speed, standard memory config 512K chip, 512K 'slow', OCS, KS 1.2). I'm due a format and re-install so I'll check again once I'm up and running

Leffmann 02 April 2013 16:25

Really great looking demo!

1time 02 April 2013 17:07

Really nice demo..

Mclane 02 April 2013 17:18

Quote:

Originally Posted by dalton (Post 879040)
Did anyone rip the music yet? Would really like to get my hands on those mods!

Just tried with the built in Winuae ripper but all I got was garbled mess, said it was a The Player 6.1A module but tried it on Deliplayer and it was rough.

Asle 02 April 2013 18:21

Yup, P61A. It's as is on disk. Launch any ripper on the adf.
Was hoping for the original to pop-up, though.


All times are GMT +2. The time now is 09:00.

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

Page generated in 0.05245 seconds with 11 queries