News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Vote on Push'n'Pop for the best 2013 Amstrad CPC productions

Started by TotO, 18:17, 22 January 14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ralferoo

Quote from: TFM on 23:15, 03 February 14
Obviously? Then you should have voted for it. Because nobody did. It got exactly ZERO voted for technical achievement. And you know what? Of course its an great achievement, but why did nobody vote for it then? Where is that anyone you talk about?
Why? At the time I voted, I must have thought that Still Rising overall was the better technical achievement because it did a lot of things very well. I actually can't remember which I voted for, but if Phortem didn't get any votes I guess I must have gone for Still Rising in the end.

That said, Phortem is a more obviously good technical achievement simply because nobody else has managed to achieve that before.

redbox

Quote from: TotO on 21:15, 03 February 14
Horizontal moves ? :D

There is no emoticon for "the finger" so I shall just say: limited time, not skill :p

EgoTrip

Quote from: TotO on 21:15, 03 February 14
Horizontal moves ? :D

There is a bug? I didn't notice that one. But still, without Redbox's coding, the CPC version would be nothing more than a figment of my imagination, and DS only.

TotO

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

Quote from: ralferoo on 23:45, 03 February 14
Why? At the time I voted, I must have thought that Still Rising overall was the better technical achievement because it did a lot of things very well. I actually can't remember which I voted for, but if Phortem didn't get any votes I guess I must have gone for Still Rising in the end.

That said, Phortem is a more obviously good technical achievement simply because nobody else has managed to achieve that before.


Both are great productions for sure.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

redbox

Quote from: EgoTrip on 00:59, 04 February 14
There is a bug? I didn't notice that one. But still, without Redbox's coding, the CPC version would be nothing more than a figment of my imagination, and DS only.

It's that on the horizontal axis the main sprite isn't pre-shifted so the movement is not as smooth as the other sprites.  You only really notice it on a real Amstrad monitor.

TotO pointed it out before the competition ended but and I tried to fix it but ran out of time - it would have meant rewriting a lot of the engine as I had made a mistake in the erase/draw routine.

What was strange for me is that I had to go away for the last two weeks of June and had no internet where I was so spent much of that time wondering if EgoTrip or one of the organisers had found a massive bug that I would have no idea about or time to fix...! Luckily it was all okay in the end.

fano

Quote from: TFM on 18:09, 03 February 14

Sure. Nobody can see the code. So it's IMHO also pointless to have votes for 'technical achievement' because nobody can know about it - except you start to disassemble it.
Let's say people have an idea about what CPC is able to do.I find this year technical achievement award was fair, the first two titles mixed nicely hard and software technics, as i saw cc uses nice software technics to get speed and is 3rd.


Quote from: TFM on 23:41, 03 February 14I already have a great idea for my next ROM game which will use a kind of scroll never seen before on the CPC. ;) :)
I'll look forward about this , we need new technics ;)


Quote from: TFM on 23:15, 03 February 14Obviously? Then you should have voted for it. Because nobody did. It got exactly ZERO voted for technical achievement. And you know what? Of course its an great achievement, but why did nobody vote for it then? Where is that anyone you talk about?
I must say FDC technics are not so easy to detect but i'd say too two previous titles own already great track loaders (BF & OP), that's why too it seems not so impressive despite the fact it is a great work.About Relentless, we can say dual playfield and R3 scroll are not new but this is the first time they were so well used, that's why it deserves technical achievement for me (i must say first time i saw it i didn't notice on the first look that was dual playfield).Same thing , the game uses a clever way to deal with the 16K limit and dual playfield with 4 colors objects, graphics are very well adapted to this , this is a technical achievement for me too.
"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

Hicks

Just an "historical" point. We already see trackloaders in:
- The Demo (1991)
- 5KB Demo 3 (?)
- Midline Process (2004)
- Ze Meeting 2003 (?)
- Demoizart (2005)
- Orion Prime (2009)
- Batman Forever (2011)
So we can't say it's new... although Arnoldemu make a good job!

ralferoo

There's a difference between a trackloader and trackloader that continues its effects whilst loading. Most CPC demos pause entirely during disk access. I thought no demos had done this before, but I'm happy to be proven wrong! :)

EDIT: How had I managed to miss Orion Prime? That's awesome! :)

Hicks

Oh, I think there is a little confusion, Doz.
In Batman Forever and Phortem the schema is diplaying/loading/displaying/loading/etc. So when they load, they "only" play the music, but don't manage anything else: the screen is freezed.
In 5KB Demo 3 (for example), it's more technical since they load, play the music, and manage some splitscreens and scrolls at the same time! In Midline Process, Ze Meeting 2003 and Demoizart, it's the same, and even more: Targhan load, play the song, and display something at the screen. These demo needs "microcoding", i.e. mixing displaying/loading in the same code (to be short) which is more technical than "just" loading and playing the music (there is no mixing: you play, then you load).
One more time, it's not to undervaluing Batman Forever and Phortem trackloader, but it's a "simple" trackload if we compare to 5KB Demo 3, or Targhan's one (Midline Process, Ze Meeting 2003, Demoizart) which are more technical...

ralferoo

Quote from: Hicks on 13:45, 04 February 14
These demo needs "microcoding", i.e. mixing displaying/loading in the same code (to be short) which is more technical than "just" loading and playing the music (there is no mixing: you play, then you load).
That's what I was getting at, as that's what seemed to be happening on Phortem (at least that's how I remembered it). And having just re-watched DemoIzArt, it's definitely doing something during loading, so I guess my bad...

arnoldemu

Quote from: Hicks on 13:45, 04 February 14
Oh, I think there is a little confusion, Doz.
In Batman Forever and Phortem the schema is diplaying/loading/displaying/loading/etc. So when they load, they "only" play the music, but don't manage anything else: the screen is freezed.
Yes you are correct about the loader in Batman Forever and Phortem.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: Hicks on 09:21, 04 February 14
Just an "historical" point. We already see trackloaders in:
- The Demo (1991)
- 5KB Demo 3 (?)
- Midline Process (2004)
- Ze Meeting 2003 (?)
- Demoizart (2005)
- Orion Prime (2009)
- Batman Forever (2011)
So we can't say it's new... although Arnoldemu make a good job!

- "The Demo" has interrupts enabled while it plays. Music is 25Hz playback I think.
Sectors are 256 bytes each, 16 per track I think, and all with the same ID number!
There are many times the FDC produces overrun error, and the loader keeps retrying over and over. This is why it's slow.
It uses 256 byte sectors so it has a chance of loading something within a frame.

At the time it was amazing! Now it's a bit more "brute force" approach. I think the data must load in order. The music player is standard.

- "5kb demo 3" extends this. Interrupts are enabled, 256 bytes per sector. At the start of each sector is a "order" or "chain" information. The data doesn't need to be read in order, it can accept any sector that is successfully read and knows where to position it to make the correct order when loading is complete. I can't remember, but it may re-order the data after load. Don't know about the music player, it may be standard.

- Midline process: Don't know much about it. I know it uses much larger sectors (4K??), coding is probably clever interleaved and synchronised with the loading. I think it's done this way in order that the music can play and the effect can run at the same time as loading.

- Batman Forever uses GAP spacing, and the sector IDs are interleaved so that when it's finished reading one sector, the next one is ready to read almost immediatrely. It's setup so that 1 sector should come every 50hz assuming 300rpm. 512bytes per sector, so it just fits within 1 frame. The interrupts are enabled from when the command is sent to the FDC to when it receives the first byte. The music player is AYC based because it's quicker and means the interrupt doesn't need to be active more than necessary and affect the loading. If there is an error, it compensates a little by playing the music and retrying to try and get the music at 50hz.

I did try another method where I interleaved the AY register writing with loading data, so that the music routine update is seperate from sending registers to AY, but it prooved to be too much of a problem for me at the time so I never completed that method. I have a prototype loader with this in.





My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

The critical part in any loader is when you are reading the sector data from the fdc. More specifically disabled just after the 1st byte. They can be re-enabled before the last byte. At other times the overrun can happen and this stops the fdc from reading any more data and you are forced to retry.

You can just about do away without checking if the fdc has data to read, if the rotation speed is close to 300rpm ideal. In this case a byte comes every 32us which you must read, no errors can happen and you must read all bytes. I have tested this. It's possible to add extra instructions so you don't need to burn cycles waiting for the next byte, as long as your IN to read the data comes at a good time.

You can leave interrupts on during all commands except the reading data part of read data/write data/format/scan.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TFM

Also some historical facts, smooth scroll is not new, we saw that before in:
- Tornado low level
- Mission Genocide
- Burnin Wheels
- Edge Grinder
- Star Sabre
and others


CPC demos always focused on hardware, while on other systems demos already did become art. Recently demos on CPC became art and catched up. Maybe it's time for games to do the same. Hardware techniques are nice, but I guess during the last 30 years they have been used enough. Time to add some serisouly smart and funny artistic things which people really give a good feeling while watching / playing.  :)

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Gryzor

Quote from: TFM on 23:41, 03 February 14
I already have a great idea for my next ROM game which will use a kind of scroll never seen before on the CPC.  ;) :)


...4D? Wow! :D

TFM

No... it's about 2.7 dimensions [nb]4D, 5D, 6D and 7D always totally freaks out humans on this planet. And I got no idea about dimensions above that. But I heart there must be 12.[/nb] ;)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Gryzor

Ah, not impressive then... I guess a bog-standard Z80 can do it hands down.

TFM

Haha! I know if 2D is really impressive already how could it be 3D or sphere scrolling.[nb]Love to be ahead of time  ;) [/nb]  :laugh:
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Executioner

Quote from: arnoldemu on 18:37, 04 February 14
You can leave interrupts on during all commands except the reading data part of read data/write data/format/scan.

The biggest problem is getting an interrupt either just before the first byte, or between the first byte of the sector and when you disable interrupts which will cause an overrun. If you could get your ISR really short, just decrementing a counter which can be modified during reading, then you might be able to avoid overrun altogether while still counting the number of interrupts which have passed, eg.


0038: DEC HY
          EI
          RET NZ
          ...


But it's still necessary to be somewhere near the beginning of the sector on the disc, perhaps using a Read ID to find the previous sector and waiting for a whole sector worth (eg. 256 * 32us) of time before modifiying the counter. eg.


loop: CALL readID
         CP prev
         JR NZ,loop

         CALL wait_sector
         DI
         LD A,HY
         ADD 64
         LD HY,A
         EI
       
         CALL read_sector

         DI
         LD A,HY
         SUB 64
         JR Z,ffb
         JP P,no_ffb

ffb:    ADD 6
         LD HY,A
         EI
         JP frame_flyback

.no_ffb:
         LD HY,A
         EI
         RET

Rhino

Sadly I did not vote this year, but I take to congratulate all the winners here.
On the demos category, I think Still Rising and Phortem were the best works.

Quote from: Hicks on 13:45, 04 February 14
In Batman Forever and Phortem the schema is diplaying/loading/displaying/loading/etc. So when they load, they "only" play the music, but don't manage anything else: the screen is freezed.

I do not know if Arnoldemu made ​​some improvement in the loader for Phortem regarding the BF version, but I remember that his loader, in addition to playing music per each frame, had some extra time for some quick effect.
In fact, I can remember I did this in BF, for example, just before the Gotham City 3D, you can see a transition effect with random squares drawing the city sky running simultaneously with the loader + music. I do not remember exactly how much additional time is allowed, but I'd say about 8 scanlines smoothly.
Best about the Arnoldemu loader is its speed, allowing quickly load almost 128kb, which is great for demos.

Powered by SMFPacks Menu Editor Mod