Jump to content
IGNORED

Bad Apple by R0ger


R0ger

Recommended Posts

Antic B tested also? And, ofcourse, if you use lower resolutions, fullscreen use is recommended (160x120)

 

Nah .. just not worth it .. I went for resolution first, framerate later. But 256x192 or even 320x240 would be way to slow to even be an animation .. 256x96 at 12.5 fps seems like best compromise.

Link to comment
Share on other sites

Woderful conversion. The karaoke mode, using stereo and the nice ending really add value. I'd call this the best it can get on Atari Max type 42. Nice jobs guys!

  • Like 2
Link to comment
Share on other sites

Such beautiful imagery and flow, the Angel and her demons, while the English version and translations are available. It would be nice to see the karoake redone for it..

Just listening to the Atari and real life versions back to back.. What a wonderful capturing!

 

Do you feel the torment...sounds so happy...but,,, a longing to be good again...

 

a little digging I find this for you... in all it's tube glory (youtube doesn't always do the best job)

 

Edited by _The Doctor__
Link to comment
Share on other sites

...my screen turns green just as she throws the knife. If I press L it fixes the screen. I must press L again because the lyrics make my Sharp Aquos monitor go crazy and vertically 'flip' a lot. This is the same monitor that supports NTSC, PAL, PAL60, but NOT NTSC50!

 

The green problem has nothing to do with the monitor, of course.

 

I just ran this successfully on my NTSC 130XE (320KB Ram) with Ultimate Cart and Commodore 1702 Monitor. With lyrics, the screen flashes/glitches every bass-drum beat. With Lyrics off, the screen merely drops down 8? scanlines for one scan of the screen every bass drum beat.

 

Just the classic 'too many scanlines' problem i think on NTSC machine. Although it seems there's a bunch of unused space at the top, picture could be shifted up so extra scanlines that exceed NTSC are not needed? Or maybe its just a processing time thing - not enough CPU cycles left after screen draw. But shortening the displaylist may help with that too...

Edited by Nezgar
  • Like 1
Link to comment
Share on other sites

I just ran this successfully on my NTSC 130XE (320KB Ram) with Ultimate Cart and Commodore 1702 Monitor. With lyrics, the screen flashes/glitches every bass-drum beat. With Lyrics off, the screen merely drops down 8? scanlines for one scan of the screen every bass drum beat.

Seems, the tune uses the portamento/slide for having some better bass sound. The routine takes several CPU cycles more. Time saving means to put all needed values to the envelope, to save such cycles.

Link to comment
Share on other sites

It's very simple. The demo is not intended for NTSC at all. I can try to make it work. It will have to be faster though (20%), the main problem for timing is the music, it's tied to VBI, and it's can't be easily changed.

 

I can move the image up so the lyrics fit. I can redo the synchronization code to be more flexible, to allow the video to lag behind. There are only few sections, which really get near limit.

  • Like 1
Link to comment
Share on other sites

As you probably know too well the problem with NTSC for such demos as this is the available cycles per frame is so much fewer. If double-buffering is in use and the Pal version was dropping occasional frames anyway then it's probably not much concern.

Music - not so hard as you'd think. You can skip RMT processing every 6th frame which will preserve the speed. But of course if the music needs to be synced with events in the video sequence then it gets a bit more complex.

Link to comment
Share on other sites

As you probably know too well the problem with NTSC for such demos as this is the available cycles per frame is so much fewer. If double-buffering is in use and the Pal version was dropping occasional frames anyway then it's probably not much concern.

Music - not so hard as you'd think. You can skip RMT processing every 6th frame which will preserve the speed. But of course if the music needs to be synced with events in the video sequence then it gets a bit more complex.

 

I believe such crude approximation would be noticeable .. will try anyway, have some similar ideas ..

Link to comment
Share on other sites

As you probably know too well the problem with NTSC for such demos as this is the available cycles per frame is so much fewer. If double-buffering is in use and the Pal version was dropping occasional frames anyway then it's probably not much concern.

 

I didn't even notice until comparing it with the youtube video that indeed the NTSC computer is playing the whole thing 20% faster. With that in mind, to get an NTSC machine to play it at the same perceived speed - could the background processing work load 'per second' be spread out over 60 Vblanks instead of 50 ? Then would you essentially have the same total background processing time available over a 1 second timespan?

Edited by Nezgar
Link to comment
Share on other sites

my little ATASCII test of the notorious video enclosed. might not work on the real deal, have no atari on me :( This is because many (too many?) lines used to keep the original (?) video ratio.

requires hard disk or something, reading with floppy speed not advised :]

start with "X BAD.XEX" on SDX, but possibly it is cool to run it from e.g. SIDE.

6MB! Wow I don't think my 8-Bit has ever seen a file this large before! It took maybe 10-15 minutes just to copy it to my SIDE2 over 89Kbps PCLINK. But it works! :D

Edited by Nezgar
  • Like 2
Link to comment
Share on other sites

I will certainly try to make it work under NTSC, so far it looks doable. At correct speed if possible. I also want to take a look at those English lyrics, though I can see several problem with that .. the verses would have to be organized in same way and fit into 40 character. And let me tell you, timing it was bitch, and it would have to be done again. So only if all goes super smooth.

Still don't expect new version right away. Hove some other stuff to do atm and also I don't want to have 10 version flying around. 2 are passable.

  • Like 1
Link to comment
Share on other sites

So, NTSC guys, rejoice. I couldn't resist and did some very basic 'ignore every 6th' code for both music and frame swapping. And it works ! Still lot of work, like detection, and I have to rearrange some things as I run out of the space in the bank I have the main code in.

But it works, at correct speed, with full synchronization. I think I can sometimes hear the glitch in the audio, but it's very subtle, doubt anyone else will notice it.

Also I will need someone with NTSC machine for testing !

  • Like 5
Link to comment
Share on other sites

Roger... excellent... any technical details in terms of packer etc?

 

It's quite simple RLE .. but it's written from scratch and tuned to the data, after trying several different approaches. It had to be fast to decompress first, but as good as possible compression second.

Works like this:

- data are packed by the byte wide columns, from top to bottom, then columns from left to right ..

- consecutive bytes are xored .. so if you have same bytes above eachother, you get zeros in the stream

- this stream is then RLE coded like this: first there is control byte, which says how many zero bytes and how many data bytes there is. In this byte 5 times more space is allocated for the zeros, the formula is zero_count*5+data_count, with max 50 zero bytes or 5 data bytes for 1 control byte. Both cases with 0 zero bytes and 0 data bytes are used when needed.

This 5 is one of the parameters of the coder, and has been found as optimal for the data.

- after the control byte there are the data bytes .. zeros are obviously filled just by the count

- for simplicity (ie speed) of the decoder, there is always control byte at the column break, so I don't have to check for column end when I process the data group. I only have to check the new column after data group, before new control byte.

- decompression implementation detail .. it is all done in linear zero page buffer, 96 bytes long. After the column is decompressed, it's flushed into the VRAM using typical unlooped xor filler

- also at the beginning of each frame there are also 2 bytes describing how many columns from left and right are completely of one color, and if it is black or white .. this border cut-off saves like 10% of the data.

- there are some other minor details, but this is the basics

Edited by R0ger
  • Like 3
Link to comment
Share on other sites

Interesting. Thanks. That packing is more efficient than flash pack which can decompress 30kb/s?

 

No idea. Mine has to do 38.4kb/s (12.5x32x96) .. it manages up to twice as fast in simple frames. And that's including doing it by columns, which is good for compression ratio.

  • Like 3
Link to comment
Share on other sites

OK, Don't kill me! How do I to load this on real Atari? I have: SIO to SD, MyideII, Maxflash 1mb and 8mb carts, none of which seem to work. I have the ( inferior music ) one on a 8mb Atarimax cart.I also have a Ultimate 1mb with NTSC crystal, PAL ANTIC, PAL GTIA. So this should be interesting...

Edited by Paul Westphal
Link to comment
Share on other sites

600lxl 64k with Monitor port NTSC, HDMI Upscaler, Lotharek Stereo, Atarimax 8mb cart : There are tiny screen jumps, running in scanline mode is better, and it is faster, of course. It Quits right before credit screen.

800xl U1mb, Stereo, HDMI Upscaler, PAL Antic, PAL Gtia, NTSC Crystal : Everything cool, no timing issues. A - OK.

Link to comment
Share on other sites

600lxl 64k with Monitor port NTSC, HDMI Upscaler, Lotharek Stereo, Atarimax 8mb cart : There are tiny screen jumps, running in scanline mode is better, and it is faster, of course. It Quits right before credit screen.

800xl U1mb, Stereo, HDMI Upscaler, PAL Antic, PAL Gtia, NTSC Crystal : Everything cool, no timing issues. A - OK.

 

Yes, it's because of the NTSC, as I said, the current version does not take that into account at all. It's miracle it almost works .. but be patient, I'm working on the NTSC support ..

  • Like 1
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...