Jump to content
IGNORED

ACE Picture and 3D Demos for PlusCart


MarcoJ

Recommended Posts

** The ACE Picture/3D demos are up on the PlusStore. Please find them at Public ROMS->PlusCart Exclusives->ACE Demos **

 

Some tech demos of the ACE scheme for PlusCart have been produced. There are two types - "Picture" type which show a slideshow of pictures and play background music, and "3D" type which have an interactive rotating 3D object along with MIDI background music.

 

Compatibility

The demos currently work on the Atari 2600. NTSC and PAL roms are provided. Support for the 7800 is planned for future releases.

 

Downloads

The demos are distributed through the Plus Store. Please find them from the PlusCart main menu at Public ROMS->PlusCart Exclusives->ACE Demos.

 

Background Music

The demos use a new sound engine that provides General MIDI music playback and 16 kHz digital drums. The music synthesizer is based on square waves with variable duty cycle. It has 12 note polyphony. Up to 4 sound effects/drums can be played at the same time with the music. The background music is included in MP3 format below. It is recorded out of a 4 switch Woody NTSC. There is also a bulk pack of all background music files. 

 

Picture Demos

The pictures are drawn using a flicker venetian blinds technique. The pre-processing technology behind encoding of the pictures into a suitable Atari format is done by the TouchDesigner software courtesy of @rbairos

image.thumb.png.630bcb61f65594f87f4f5300f24a6605.png

At Doom’s Gate PIC Demo: It’s a popular challenge to get Doom running on random devices. It’s been run on everything from Ikea lamps to calculators. I wanted to make a demo that plays DOOM music and sound effects whilst showing the potential for what could be a rendered scene. The images used are static, pre-rendered. You can also press the fire button to pretend fire.

 

 

Cure – A Forest PIC Demo: An early hit of UK band The Cure. The song itself starts off slow and progressively builds up rhythmically and harmonically. The first notes show the character of duty cycle modulated square waves. Band and forest pictures are part of the slideshow.

 

 

KMFDM – Light PIC Demo: Similarly to A Forest, this is a collage of band pictures for the band KMFDM. This introduced more percussion sounds such as toms and bongos.

 

 

Passport.Mid PIC Demo: Those who used older 90s Microsoft Windows versions might remember this tune that was included with the operating system. The pictures in the demo are a picture collage of icons, people and paraphernalia of early 90s computing. The music features pitch bending.

 

 

Pet Shop Boys – West End Girls PIC Demo: One of their most well known tracks. This demo shows parts of the film clip for the slide show. The music itself in the song uses some chords which use 4 notes, which is unheard of in 8-bit consoles and computers.

 

 

Visage – Fade to grey: Similar to the Pet Shop Boys demo, this is a collage of pictures from the film clip of the original song. The song contains examples of pitch bending, with 2 sequences of long sustained notes being bent.

 

 

 

3D Demos

 

The 3D objects are also drawn with the same venetian blinds flicker technique as the picture demos. The 3D object dumping and drawing algorithms are adapted from the Tinyrenderer project by Dmitry V. Sokolov (https://github.com/ssloy/tinyrenderer)

- Arwing Demo: A 3D wireframe demo of the Super Nintendo Starfox game’s protagonists shaceship. It is only 24 polygons. The music from the Space Armada level is played in the background.

 

 

- Slow Head: This is an experiment to determine the limits of rendering a complex model of a human head. It has 2500 polygons. The music played in the background is from DOOM2 and is called “The Healer Stalks”.

 

 

-Fast head: Based on how slow the head rendered at, I tried rendering only the 3d points space instead of the connecting lines between them. The result is much faster rendering and the shape of the head is still visible anyway.

 

 

- Spin Sword: This is a sword object with 100 polygons. The music is the main overworld theme from the Legend of Zelda.

 

 

 

 

 

 

816971808_MarcoJohannesPictureand3DDemobackgroundmusic.zip

image.png

  • Like 10
Link to comment
Share on other sites

7 minutes ago, Ouzy said:

Just gave it a try on my pal atari 2600jr and it runs but I have a weird glitch. A few pixels go the opposite way. Video below

Hi Ouzy. Thanks for trying it! Wow, that is an interesting glitch. I'm trying to wrap my head around how it could happen. I could imagine if a row of 8 grouped pixels did that, but the single pixel is so wierd. Hoping to understand it in time, along with (what I'm expecting) other random glitches from other people's different TIA revisions. Thanks for the post.

  • Like 2
Link to comment
Share on other sites

So I've been trying to give these a shot on a 4 switcher I've been putting a UAV into and I can only get the 3D demos to work fully. The Picture demos I'm able to get the audio to come through about 70% of the time, but never any pictures? Both RF and UAV just give a black screen on this NTSC 2600. When the audio doesn't work, it seems to result in a complete hard lock of the 2600 in that I have to power cycle to get back to the plus cart menu.

 

So yeah... I'm only able to get audio and the 3D demos to work. Is there some update needed on Plus carts to fully support this?

 

 

  • Thanks 1
Link to comment
Share on other sites

16 minutes ago, -^CrossBow^- said:

I'm only able to get audio and the 3D demos to work. Is there some update needed on Plus carts to fully support this?

Hi CrossBow! Thanks for trying them out and for the feedback. It is interesting that the picture doesn't show for one kind of demo. Have you tried using another screen? I have found varying results. Also, are you using an LCD or a CRT?

 

The crashes I can expect. The 3D/PIC demos in their current state sail close to the limit of the Atari 2600. Some consoles are likely to be borderline. Currently they operate using a 3E+ bankswitching frontend, which adds load to the beginning of the read cycle on the Atari which is sensitive. I have plans to revise the demos with a less intensive 4K frontend, which should hopefully work better on yours (and others) sensitive consoles.

 

The "RPG Demo" already uses this 4K improvement - have you tried this on your console? If it boots up and there is a black screen with music , try flicking over the left difficult switch to change the screen mode.

 

 

  • Like 1
Link to comment
Share on other sites

I actually get the same results using either my CRT PVM on the work bench and LCDs in regards to hearing audio only and no pictures. The 3D demos I only tried the Arwing and Swing sword and they both seem to work without any issues and looked correct compared to what is being shown in this thread.

 

The RPG demo actually did work...for about 2 min. I was just walking around and swinging the sword, watching folks run and yell which, is pretty funny. And then it just crashed to a black screen and no audio.

 

My PVM is able to handle PAL signals and the PAL versions of the roms actually seem to load up the music more reliably compared to the NTSC versions, but still no background pictures are displayed.

  • Thanks 1
Link to comment
Share on other sites

I actually don't know if the other video mode worked or not as I wasn't aware of that feature on the RPG demo. I know both switches were to the left as you look at the console because I was running the color bar generator prior and switched them to turn off the tones while adjusting the color output.

 

This is on a NTSC Rev.14 4 switcher. 

 

It has an Okidata made TIA (Didn't know Okidata made TIAs), a MOS 6507, and Signetics RIOT. The console was assembled sometime around the end of March - first of April 1982.

 

  • Like 1
Link to comment
Share on other sites

7 hours ago, -^CrossBow^- said:

know both switches were to the left as you look at the console

That's the wide screen mode, like the other demos. With the 3D demos and the RPG demo being able to display, that rules out the flicker kernel as being the culprit. The picture demos keep loading and uncompressing the pictures just before they show whereas the 3D demo loads the 3D model/music and never needs to uncompress data again. It seems to me there is an issue with loading of compressed resources on your console. Thanks for the testing, sorry that doesn't work properly. Do you by chance have another console?

  • Like 1
Link to comment
Share on other sites

22 minutes ago, -^CrossBow^- said:

Yes I have some others I could test it on.

Great, this should definitively rule out screen or console. My bet is on console.

 

23 minutes ago, -^CrossBow^- said:

I see that 7800 isn't supported yet? What is the exact issue in regards to trying these on the 7800?

7800s crash (black screen) on this build. The issue is the specifications for the data setup and hold times is slightly tighter on the 7800. The RPG demo uses a 4K driver,l with fast fetch no bankswitching for the VCS software, so when it comes time to transmit the next instruction from PlusCart to VCS it is setup much faster. The 3D / Picture demos use 3E+ bankswitching with fast fetch which adds delay to the setup times to data transmitted. I will port them in the next few months to 4K.

  • Like 1
Link to comment
Share on other sites

These demos seem to work fine on a different 2600 so the issue I'm going to guess is the TIA in this particular one doesn't like these demos since again I'm getting the music but no pics. But the RPG demo and 3D demos seem to work okay.

  • Like 1
Link to comment
Share on other sites

20 hours ago, -^CrossBow^- said:

These demos seem to work fine on a different 2600 so the issue I'm going to guess is the TIA

Ok, Thanks for the test CrossBow. It's is difficult to say exactly what component in the console caused the PIC demos to fail. What I need to do is optimize the demos to be more compatible across more consoles. The feedback helps! Cheers

  • Like 1
Link to comment
Share on other sites

In developing the sound engine over the last 18 months, I've made some other demo tunes along the way. The following are MIDI files that have been rendered by my ACE soft MIDI sequencer and synthesizer project for PlusCart. They were line in recorded from a 4 switch NTSC Woody 2600. Some are in Stereo, some mono. Some had ADSR duty cycle envelopes, some are straight square waves. They are presented here to further demonstrate the concept. 

 

Eagles - One of these Nights 

 

Metallica - Enter Sandman

 

Stunts Theme (1990 PC Game)

 

Night Rider Theme (TV Show)

 

Airwolf Theme (TV Show)

 

Amii Stewart - Knock on Wood

 

Transport Tycoon OST - Movin' On (John Broomhall)

 

Tchaikovsky - Waltz of the Flowers

 

Carpenters - Close to You

 

KC and the Sunshine Band - I'm your Boogieman

 

Julius Fucik - Entrance of the Gladiators

 

Cece Peniston - Finally (David Morales mix)

 

Beethoven - Fur Elise

 

 

  • Like 7
Link to comment
Share on other sites

  • 5 months later...

I have a question about these Tech Demos, are they available to download from anywhere as ROMs? (preferably .bin files). I think it would be cool to try these out on the Stella emulator to test but also record screen footage of them in high quality, and to record the audio of them in stereo to make oscilloscope visuals of them. (I am a content creator on YouTube who makes retro gaming content, mostly Atari related, and I like to make videos for any techy 2600 ROMs)

  • Like 1
Link to comment
Share on other sites

8 hours ago, Bentastic64 said:

I have a question about these Tech Demos

Hello, thanks for your interest in the demos. I agree, being able to present them in better quality would be great.  The format of the demo files is foreign to Stella currently, they are written directly to run on the PlusCart’s STM32 processor. The author’s of CDF format and also DPC+ format in the past added support in Stella for supporting their format. I haven’t made it this far yet for ACE. There has been some work for the Gopher2600 emulator, however I’m yet to circle back and complete this. For the moment, the only way to play the demos is on a real 2600 console with a PlusCart. Cheers, Marco.

  • Like 1
Link to comment
Share on other sites

7 hours ago, MarcoJ said:

Hello, thanks for your interest in the demos. I agree, being able to present them in better quality would be great.  The format of the demo files is foreign to Stella currently, they are written directly to run on the PlusCart’s STM32 processor. The author’s of CDF format and also DPC+ format in the past added support in Stella for supporting their format. I haven’t made it this far yet for ACE. There has been some work for the Gopher2600 emulator, however I’m yet to circle back and complete this. For the moment, the only way to play the demos is on a real 2600 console with a PlusCart. Cheers, Marco.

thanks for the info, I was very surprised at first after seeing these demos since I have never seen things like 3D rendering or MIDI playback ever done before on the 2600. with the STM32 processor, I believe there might be potential for future Homebrews and Tech Demos with it, once Stella has the support for the ACE format and it is more well known across many programmers. it reminds me of other special processors on cartridges like the Super-FX for the SNES and the SVP for the Sega Genesis :)

  • Like 1
Link to comment
Share on other sites

Cheers. I have taken inspiration from the SuperFX and SVP processors. It is incredible how they deftly added chips to carts back in the 90s and upgraded the console's capabilities. The Atari 2600 benefits a lot from having a coprocessor, it spends so much time just trying to draw the screen that it has hardly enough time to breathe. 

 

I am working on an RPG game using the MIDI playback and frame buffer concept. So far it's feasible and looks like it be possible. I really wanted to be able to play orchestral/classical/baroque music on the 2600, with many square wave channels. Thankfully it's possible with the TIA's 4 bit DAC mode.

 

 

 

I am also hopeful of porting DOOM to the Atari 2600. It's a big challenge and the memory and application size limitations of the STM32 are there, but that there is inspiration elsewhere, there is a team that successfully made an open source Doom port for the GameBoy Advance (an ARM based processor too) that runs with around 300k of RAM. The STM32 has around 196k of RAM, so perhaps only small levels will fit. It's early days and I'm currently trying to see if it's feasible. I made a static demo that shows that the Atari 2600 is capable of displaying the screen and playing the Doom sounds/music, it's really now down to whether Doom could fit into onto the STM32 with an approximate size of 512kB ROM, and use 196kB RAM. It will be tight for sure. 

 

 

  • Like 1
Link to comment
Share on other sites

  • 5 weeks later...

Here is a YouTube video I have made of the PlusCart with these demos running on my couple of 2600 variations being the 1978 Light Sixer and 1986 Junior, both systems are NTSC at 60HZ from the U.S.

 

 

a few things I have noticed with my systems is that on the 1978 Light Sixer, the DOOM Demo does not start, and the RPG demo does start except for only a moment (maybe once or twice I have seen it work for more than just a second). on my 1986 Junior, these couple of demos work, except that there are these black vertical lines across the screen, and the same goes for any other ACE Demo I run on the Junior. I know that the PlusCart and its ACE format are still relatively new, but it would be cool to see these couple of issues fixed as development goes further.

 

A couple of other systems I could try this out on (when or if I eventually have them) are the 4 switch model and Atari 7800 (if the PlusCart can work with a 7800 that is)

  • Thanks 1
Link to comment
Share on other sites

9 hours ago, Bentastic64 said:

Here is a YouTube video I have made of the PlusCart with these demos running on my couple of 2600 variations being the 1978 Light Sixer and 1986 Junior, both systems are NTSC at 60HZ from the U.S.

 

Wow! Thanks for the post Ben. I just watched your video. It's really well done, effort noticed. The results look quite similar to what I've noticed too. The best consoles seem to be the original 4 switch and 6 switch models. The 7800 is also great, especially for colour but it's the most strict for CPU timing. The JR models seem to have different timing specs which throw off the tile positions. I also have an NTSC jr; it tends to delay sprite positioning about 8 pixels whilst the ball positioning is OK, leading to missing and repeating strips, with ball sprite positioned overlapping. My PAL Jr console is a little better behaved, but there's still artefacting. 4 and 6 switch 2600 and 7800 machines seem to have identical sprite timing, which is nice.

 

The below is what I get on the NTSC jr console. The sprite positions are biased too far to the right. It could be possible to have an alternate kernel to support the JR consoles.

356683118_10160779804552629_2091484832452764199_n.thumb.jpg.9e06a64635f039f672230985e976b49f.jpg  

 

For 7800 support, currently only the "Slow Head" and RPG run on my 7800. Some 3D demos crash at the title screen. The RPG was optimised to be able to run on a 7800, whereas the demos were only tested on a 2600. It's a miracle that Slow Head runs on the 7800, I still don't know why exactly...I think it's to do with it taking longer to load the 3D asset than the other titles before it starts to draw. I am currently porting the 3D and Pic demo code to run with the same driver as used in the RPG so that it could run on the 7800.

 

The reason the demos crash on some consoles is that the bus write timing is sailing very close to the edge of working/ not working. It is mainly due to the sound driver - during each 6502 cycle it updates one of the tones. The most strict consoles for bus timing seem to be 6 switch and 7800 consoles, whereas JR and 4 switches are more tolerant. I plan to optimise the driver further to make it more compatible on each console.

 

In summary, the challenges:

- Different models of consoles have slightly different sprite positioning timing, leading to unaligned textures but otherwise, the game is stable.

- Different models of consoles have slightly different levels of strictness to CPU cycle write timing which can lead to crashes and instability.

 

Cheers,

Marco

 

 

  • Like 1
Link to comment
Share on other sites

On 11/28/2022 at 2:16 AM, Ouzy said:

A few pixels go the opposite way. Video below

Hi @Ouzy, long time reply to your comment. I managed to replicate your shifted pixel experience on my NTSC jr console. I understand what is happening now. The pixels that go the opposite way are actually repeated pixels from the other arwing wing tip further along on the screen. jr consoles have a tendency to improperly time sprite positions. Since the venetian blinds kernels rely on precision kernel timing the Jr’s timing nobbles the effect. 

  • Like 3
Link to comment
Share on other sites

7 minutes ago, Al_Nafuur said:

What is the switch for?

That's an extension of the boot jumper for putting trial firmware on. The hole is for the USB cable access.

 

8 minutes ago, Al_Nafuur said:

Your PlusCart looks like it is being worked with

Yeah, I can't have nice things. :D

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

X-Wing ACE Demo for Atari 2600

Description

This is a demo of the STM32F processor integrated in the PlusCart/Unocart performing 3D rendering on simple wireframe models running on an Atari 2600. ACE is a scheme for running a custom ARM program inside the PlusCart/Unocart for accelerating graphics, sounds and gameplay.

 

The models are X-Wing and Tie Fighter from Star Wars. The models are hand made using Blender, optimised for low polygon count. A double frame buffering system is used. The rendering uses the Bresenham line algorithm and points are calculated general 3D rotation matrix. It uses native hardware floating point instructions in calculating the rotation of the models and movement of the starfield. The screen resolution is 128x96 pixels. This is a mode that uses 30Hz flicker to draw alternating segments of the screen on sequential frames. Another mode without flicker is controlled with the difficulty switch which offers 80x96 pixels (not shown in this video).

 

The demo music plays the "Tie Fighter Attacks" MIDI file from the Star Wars OST.

The music is sequenced on the fly with a 12 channel square wave synthesizer for melody and 4 channel 2 bit 16kHz wave synthesizer for drums. Sound effects are mixed down using one of the 4 SFX channels. The rotation of the models is controlled with the Player 1 gamepad. Models alternate with the Select button.

 

The hardware used for the video is an NTSC Atari 7800 console with a Pluscart flash cartridge. It is also compatible with the Unocart when running the Unified firmware.

 

Thanks for watching.

 

The demos are available below to try on PlusCart, and also Unocart. Note: They will only work with the Unocart running Unified firmware. (https://forums.atariage.com/topic/297486-unocart-firmware-updates/page/6/#comment-5272880)

The demos are compatible with both 2600 and 7800 consoles. Some consoles such as JR consoles may display the graphics with some vertical lines. Generally 4 switch, 6 switch and 7800 consoles display the best currently. Binaries below for both NTSC and PAL:

 

XWING_3D_DEMO_50HZ.ACE

XWING_3D_DEMO_60HZ.ACE

  

Blender Models

image.png.857aee4eecbd5a7e257783c034868a4d.png

image.thumb.png.b057b52e7c0eb0ac339172c51a488008.png

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