It is currently Sun Sep 15, 2019 7:38 pm

All times are UTC - 7 hours



Forum rules





Post new topic Reply to topic  [ 27 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Sun Apr 27, 2014 11:04 am 
Offline

Joined: Wed Jul 09, 2008 8:46 pm
Posts: 259
Yeah... a lookup of the SPC700 assembly tells me that it is almost entirely run by itself. The only interactivity is to stop and start the music.

I'm actually in the process of cracking open the order list and decoding the pattern data for my own amusement, mainly because I'm interested in taking a look at the data in this new sound engine since it's a new data format (unlike the other two sound drivers that to my knowledge just simply take Impulse Tracker and Amiga MOD data almost raw).


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 8:44 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8557
Location: Seattle
Elix talked about how he made Nu, here on Youtube.


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 10:57 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4208
Location: A world gone mad
For me, this is a case of wishing I hadn't watched and skimmed said YT videos explaining how this demo was accomplished in part. I also watched the one on Smash It.

When viewing these videos, the first thing I asked right off the bat was "how exactly was this guy generating 65816 bytecode from C# and F#?" The answer is: he isn't. I'm not that privy to or savvy with these tools and PLs, but from what I can discern, it looks how all of this is accomplished is as follows:

C# or F# is used as the main PL. OpenGL is used to perform rendering of graphics and whatever other sequences of video/animation data on a per-frame basis (or maybe, more likely, what changed per frame), into a custom format which is later transposed into a SNES-compatible graphics data format. It most definitely is not "raw frames", but something more clever. But achieving the actual graphics on-screen is just DMA or HDMAd data to the PPU. The toolset created generates 65816 code -- and from what I can tell, the fellow is not particularly 65816-savvy (can tell from every rep/sep line having a comment describing what the register sizes are that're being changed). So what you end up with is a toolset that just generates tons and tons of monotonously repeated 65816 code doing DMA or HDMA to blit graphics/changes where appropriate. He very rarely goes into the innards/guts of what matters -- the actual 65816 code. When he does, there's a lot of "uhhh" and gives a feeling that he/whoever wrote it once, tweaked it over time, and chose not to think about it any more. There seems to be some intelligent/proper use of HDMA here for certain things, but otherwise the "guts" of what I was hoping for wasn't covered. I'm basing most of this on what you see here. (They also used mode 20/LoROM, interestingly enough, "out of laziness" to quote the video -- the resulting ROM size is 32mbit / 4MBytes).

The SPC700 player he doesn't really go into, but from what this thread says, it's probably a bit more impressive. SPC700 and audio in general is something I've always shied away from, so I'll just leave it at that. A tool he created called GNU rocket was also involved (in the case of Nu), which looks to generate properly-synced A/V. That leads me to believe there's audio that's output and converted into data that's streamed/fed to the SPC700 periodically. But maybe not.

In short: this whole thing is designed COMPLETELY for a type of A/V playback -- I would almost call it "smart/optimised FMV", with some additional effects. It's designed in such a way, I think, that any system/console/whatever could be used as a system for playback. The visuals all boil down to OpenGL and shader math, pre-rendered. It's sort of like a glorified Bad Apple release, except with more smarts to it; it's not really "software 3D", which is what I was hoping.

All of this is certainly not something I could do (or even dream of doing), I don't have this type of skill, but it did pose a kind of ethical quandary within me: how exactly was this classified as a demo, in the classic sense of the word in the demo scene?

To me, this isn't a demo at all. It isn't showing off any kind of capability of the system, it's just glorified audio/video playback. Compare this to 8088mph or anything from the late 80s/early 90s demos on the PC, Amiga, Apple IIGS, C64, etc. where code wasn't really "generated" in this way (macros excluded), instead hand-coded and visuals/effects often using hardware tweaks/capabilities (example, another example (latter I believe is on an emulator, given some of the visual anomalies I see)) that were unexpected, or doing stuff that was otherwise unorthodox (ex. ATX's split-screen SNES mode demo).

But that threw me for a bit of a conundrum: there was still a substantial amount of engineering and effort put forth to even accomplish said thing... so was it really worthy of being called a demo? Maybe so. I'm still not sure how I feel about it all though. I surely can't be the only old demo scener guy who is left pondering this question.


Top
 Profile  
 
PostPosted: Wed Jan 30, 2019 11:40 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8557
Location: Seattle
koitsu wrote:
All of this is certainly not something I could do (or even dream of doing), I don't have this type of skill, but it did pose a kind of ethical quandary within me: how exactly was this classified as a demo, in the classic sense of the word in the demo scene? [...] It isn't showing off any kind of capability of the system, it's just glorified audio/video playback.
It's not a classical demo, really, because it's (mostly) not about finding new clever ways to use the hardware. But it is a thing that actually carefully schedules, albeit at compile time, all of the necessary DMA to display something. And that is actually still pushing things to the limit. It's just that that limit isn't really involving the CPU.

The demoscene as a whole changed around 2000, give or take. Computers finally got powerful enough that the question became "what shall I do?" instead of "what can I do?".

There are exceptions, like Smash = Matt Swodoba's opencl-heavy stuff but his writeups are necessary to understand just how cool what he's achieved is.

And, consequently, another huge barrier is the inability for people who aren't drenched in domain knowledge to tell the difference between something that's just pretty, and something that's pushing the envelope. What's really the difference between asking the GPU to calculate which couple million polys to render, telling GPU to blit a couple million polys, and telling the GPU to decode a video? Only the first is related to the original demoscene, but can anyone even see the difference? (Does a novel video decoder count? Is that different from precalculating how the polygons move?)

(Obvious anecdote: the apocryphal story about the real-time fractal renderer written as a tech demo for the Jaguar, and the nontechnical staff not understanding that it was both 1- not a movie and 2- more interesting than a movie)

Quote:
But that threw me for a bit of a conundrum: there was still a substantial amount of engineering and effort put forth to even accomplish said thing... so was it really worthy of being called a demo?
Modern algorithmic compression and procedural graphics have already led people to compare modern 64k demos to 4M demos of the past, and modern 4k demos to 64k demos. Yes, some of that is because the OS provides more built-ins, but it's also because the people making demos know more now. Better access to tools. Less need to just apply brute force. More ability to figure out how the same code in multiple ways.


Top
 Profile  
 
PostPosted: Thu Jan 31, 2019 12:45 am 
Offline

Joined: Sun Mar 19, 2006 9:44 pm
Posts: 1005
Location: Japan
You're not alone, Jeremy, in walking away from an Elix tech explanation having less respect for the group than before it started. It's cool visuals, but it's not classical coding-awesome-effects-on-a-speed-crippled-console worthy of admiration. It's not from that oldschool world nor its values.

There's a cool device that is being used in arcade preservation, made buy a guy in Japan, I think. It connects through the JAMMA harness and records all button input by a highly skilled (human) player of said game, so that then this perfect but ephemeral game runthrough / performance can be replayed anywhere, anytime on the original hardware. I think that device is really cool and has preservationist applications -- but I would never call the device itself a talented arcade game player...

_________________
http://www.chrismcovell.com


Top
 Profile  
 
PostPosted: Thu Jan 31, 2019 1:48 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 2312
Location: Fukuoka, Japan
I was expecting to see when I started the video to see how it was done in snes asm but saw CS files everywhere so at first I thought I started the wrong video :lol: I can understand both side and the effort that was made to achieve the goal but it's not a demo in the traditional sense. I miss that scene.

Still, the programming effort they did to achieve that is impressive (didn't watch the video, just impression from demo running), and must have required a lot of research to achieve that specific goal and sync but it didn't try to push the hardware per-se by programming directly on it, which as always been one major aspect of what demo compo was about (the other is creativity, I guess).

Times have changed.


Top
 Profile  
 
PostPosted: Thu Jan 31, 2019 4:24 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21591
Location: NE Indiana, USA (NTSC)
Does this mean we'll see an "Even Worse Apple" demo?

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Thu Jan 31, 2019 4:51 pm 
Offline

Joined: Sat Apr 07, 2018 7:39 pm
Posts: 46
Location: EN
Some people mentioned that they were disappointed that Ferris didn't go into detail about the assembly code of the demo during the breakdown. If you want, you can watch him try to copy an effect by Revenant over hours long streams, in asm:

https://youtu.be/SAHR_gClnAY

https://youtu.be/qjWninC-Do4

https://youtu.be/VmnPmp-t7pc
https://youtu.be/Hqe63o_leIc

_________________
SNES demos are great


Top
 Profile  
 
PostPosted: Thu Jan 31, 2019 5:24 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4208
Location: A world gone mad
These are much more appreciable, yes!


Top
 Profile  
 
PostPosted: Fri Feb 01, 2019 12:00 am 
Offline

Joined: Tue Feb 07, 2017 2:03 am
Posts: 757
So basically its a Nuvie demo, which is not really a demo, and I don't even think can be submitted to a demo competition.
"Especially with the shake, a lot of pixels had to be update.." IT HAS HARDWARE SCROLL FOR FFS - if the movie decoded frames, packed tiles and then worked out how to arrange the tiles + colour windows + pallet updates + hardware scroll regs, then that would be cool, still an impressive feat of engineering but still just a fancy Nuvie.


Top
 Profile  
 
PostPosted: Fri Feb 01, 2019 1:14 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 8557
Location: Seattle
... Do you think "nuvie" is why this demo is named Nu?


Top
 Profile  
 
PostPosted: Fri Feb 01, 2019 3:16 am 
Offline

Joined: Tue Feb 07, 2017 2:03 am
Posts: 757
HA! maybe it is...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 27 posts ]  Go to page Previous  1, 2

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group