Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
hendersa
Sep 17, 2006

Zaphod42 posted:

Are you planning on rolling this into like, a 3D voxel emulator? Because that would own so hard, but I don't know if that's even really possible. At first I thought you were just doing voxel tests, but now it sounds like you're actually trying to render a whole scene as voxels, so does that mean you're trying to make it playable?

If you could get that working, you could render the voxels in actual stereo 3D which would be so killer.

The metadata has to be hand-crafted, so it is quite labor-intensive to get a game running using what I'm setting up. Without hitting too many special cases, you could probably get most of the really early NES titles working with this voxel technique. From the previous page a few pages back, the grand plan is:

hendersa posted:

Well, I guess there are six parts:

1. Get the start of the voxel pipeline in place within an emulator as a proof of concept.
2. Figure out how to integrate ARToolkit into the emulator for augmented reality support.
3. Establish the shadow memory in the PPU to provide the proper tile metadata for voxel positioning data.
4. Populate the metadata with tile information that makes it all look 3D-ish.
5. Port the whole shot to a BeagleBone Black once TI gets around to getting their OpenGL acceleration working.
6. Document the whole thing and provide a system image with source code for educational purposes.

Basically, it is an augmented reality version of SMB. It is too slow to render voxels for every pixel, so I reduce the rendering area to what is near Mario. Since so many of the pixels around him will be empty, I can probably render a larger area than what I have been rendering.



I've got metadata for around 25% of the tiles in SMB right now. The pipes look amazing.

hendersa fucked around with this message at 17:57 on Dec 17, 2013

Adbot
ADBOT LOVES YOU

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

hendersa posted:

I've got metadata for around 25% of the tiles in SMB right now. The pipes look amazing.
Updated video, STAT! Or at least another saucy animated gif :3:

Shalinor fucked around with this message at 20:12 on Dec 17, 2013

Natrox
Dec 2, 2013
Voxelization of a 3D scene using this paper; http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-SparseVoxelization.pdf, in OpenGL;



Currently rendering the voxels as GL_POINTS. The idea is that I inject lighting into these voxels to approximate global illumination with cone tracing (paper: http://maverick.inria.fr/Publications/2011/CNSGE11b/GIVoxels-pg2011-authors.pdf).

We'll see how that goes.

hendersa
Sep 17, 2006

Shalinor posted:

Updated video, STAT! Or at least another saucy animated gif :3:

Here is a pipe made of 12 tiles (PPU $1600-16AF and one solid tile):

<-- (Edit: Added for reference)

hendersa fucked around with this message at 21:23 on Dec 17, 2013

ManoliIsFat
Oct 4, 2002

hendersa posted:

Here is a pipe made of 12 tiles (PPU $1600-16AF and one solid tile):



Sooooo badass, I've been loving your updates on this. I wonder if there's anything to do with the outlines of these objects? Maybe make any black pixels adjacent to transparent part of the sprite transparent? But it is pretty cool as is.

hendersa
Sep 17, 2006

ManoliIsFat posted:

Sooooo badass, I've been loving your updates on this. I wonder if there's anything to do with the outlines of these objects? Maybe make any black pixels adjacent to transparent part of the sprite transparent? But it is pretty cool as is.

I need to get metadata working first in a way that does not perturb the existing graphics pipeline. Once the orthogonal voxel processing is working, I am going to try placing additional information in the metadata fields to override portions of the rendering pipeline, use multiple voxels per pixel, handle water/lava, and some other tricks. It's a (big) work in progress.

I also just got some proofs back today from my publisher for the latest magazine article that I wrote:



I never expected the graphic artists to make an article on kernel data structures and processor pin multiplexing seem so... interesting. My last article on BeagleBone Black HDMI and audio is hitting the stands today in the newest issue of Raspberry Pi Geek magazine, too. It is always amazing to me to see these proofs because I'm sending the publisher a text document with special mark-up tags in it and a few diagrams drawn with xfig and LibreOffice Draw. It comes back looking like an actual magazine with all the clip art and layout work done really well.

Never let it be said that the various projects that we talk about here are just worthless tinkering. I did my BeagleSNES project and that led to me writing and consulting and stuff! You never know what these hobby projects will turn into one day...

Oh, and Lifehacker did a story on BeagleSNES a few days ago and I am still being totally bombarded with mail from DIYers who want to make SNESes for family members as Christmas presents.

Tres Burritos
Sep 3, 2009

hendersa posted:

Oh, and Lifehacker did a story on BeagleSNES a few days ago and I am still being totally bombarded with mail from DIYers who want to make SNESes for family members as Christmas presents.

Are you still answering all of those? Also, what do cartoon superheroes have to do with the beaglebone?

Zhentar
Sep 28, 2003

Brilliant Master Genius

Tres Burritos posted:

Also, what do cartoon superheroes have to do with the beaglebone?

And why would anyone think it's appropriate to pair that article with random gratuitous sexual objectification?

Xerophyte
Mar 17, 2008

This space intentionally left blank

Zhentar posted:

And why would anyone think it's appropriate to pair that article with random gratuitous sexual objectification?

Well, you see, the article has a "Capes" sub-heading and balloon-breasts there is wearing a cape. Clearly it's totally relevant.

hendersa
Sep 17, 2006

Tres Burritos posted:

Are you still answering all of those? Also, what do cartoon superheroes have to do with the beaglebone?

I try to keep up with all the mail. I do a pretty good job of staying on top of it, but occasionally a mail or two will slip through the cracks. I can usually get people taken care of in a single response by pointing them to various wikis and my own project documentation.

The superhero clip art was probably chosen because the article is about the management of "cape" add-on boards. Normally, you see something like this:

hendersa
Sep 17, 2006

Mushroom platforms (seen in World 4-3, for example):

<-- Reference



PPU memory $12C0-$12DF, $16B0-$176F (14 tiles)

The middle pieces are repeated over and over to make longer platforms. This is the configuration for the shortest platform using all of the unique tiles.

Scaevolus
Apr 16, 2007

hendersa posted:

Mushroom platforms (seen in World 4-3, for example):

<-- Reference



PPU memory $12C0-$12DF, $16B0-$176F (14 tiles)

The middle pieces are repeated over and over to make longer platforms. This is the configuration for the shortest platform using all of the unique tiles.

This is really cool and I'm looking forward to the final result. I could see people implementing this in more common NES emulators and annotating lots more games.

For outlined sprites, it might look better if you stretched an adjacent non-black pixel along the depth edge than the outline. But the pipe top would be better black, and that requires even more sprite annotations...

It looks like there's some z-fighting in that render. Are you doing repeated floating point additions when generating vertex coordinates for each trixel? Multiplication might be more accurate.

I hope you convinced them to go with less ridiculous capes clipart.

Scaevolus fucked around with this message at 07:26 on Dec 18, 2013

Valtis
Sep 21, 2009
I read this arcticle about mark & sweep garbage collector and since it looked easy I figured I'll implement a simple asm-like language that has a garbage collector.

Here's a random array being sorted using quicksort. It allocates temporary arrays that must be then collected.

glompix
Jan 19, 2004

propane grill-pilled
I started playing D&D 4e a few months ago and wow there is a serious lack of online tools. I mean, there's Roll20, but we actually want to play at a tabletop, and iPlay4e costs money. I just want to keep my character sheet in a digital format that I can back up, have easy access to spells, and have some offline capability. I also want it to be pretty dead simple and really just a digital character sheet.

Still a lot of work to do, but it's shaping up into something usable. I have not written a single unit or end-to-end test and I don't even care right now. I'd like to add a feature to watch another users' HP or something. (as an excuse to play with SignalR more)



It's actually live at https://dragonputer.azurewebsites.net too, but the Facebook part is in sandbox mode so it's local saves only unless you're me.

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
Valtis: Cool stuff. Now you should implement the garbage collector in your language.

Valtis
Sep 21, 2009

Internet Janitor posted:

Valtis: Cool stuff. Now you should implement the garbage collector in your language.

I guess I was unclear; it has a garbage collector. The temporary arrays are released, although in this case the garbage collector didn't run without programmer explicitly asking for it.

Xerophyte
Mar 17, 2008

This space intentionally left blank

Valtis posted:

I guess I was unclear; it has a garbage collector. The temporary arrays are released, although in this case the garbage collector didn't run without programmer explicitly asking for it.

Not to put mouths in the word of Internet Janitor, but I believe his point was that you should bootstrap by writing the garbage collector in your assembly dialect. Which might be what you've done, I dunno, in which case proper job.

Xom
Sep 2, 2008

文化英雄
Fan of Britches

Xom posted:

I just made MY FIRST WEB APP, and I used Firebase: https://pandante.neocities.org



The server is literally javascript on a page in another browser tab. Hopefully leaving it running like that for hours is not an issue? (how do I dev web I do not know things)
crossposting about a thing I just put up

Pandante's Kickstarter ends in 30 hrs btw - Parkinson's law wins again. (I have barely slept for days and my landlady is like wtf is going on with you so I'm gonna crash now.)

Pollyanna
Mar 5, 2005

Milk's on them.


Nintendo noo :ohdear:



glompix posted:

I started playing D&D 4e a few months ago and wow there is a serious lack of online tools. I mean, there's Roll20, but we actually want to play at a tabletop, and iPlay4e costs money. I just want to keep my character sheet in a digital format that I can back up, have easy access to spells, and have some offline capability. I also want it to be pretty dead simple and really just a digital character sheet.

Still a lot of work to do, but it's shaping up into something usable. I have not written a single unit or end-to-end test and I don't even care right now. I'd like to add a feature to watch another users' HP or something. (as an excuse to play with SignalR more)



It's actually live at https://dragonputer.azurewebsites.net too, but the Facebook part is in sandbox mode so it's local saves only unless you're me.

Oh sweet, this looks pretty awesome. I'd use it...if I ever found a group to play 4E with :(

Note that I'm able to do this and the app will just roll with it:

Pollyanna fucked around with this message at 00:01 on Dec 21, 2013

DeathBySpoon
Dec 17, 2007

I got myself a paper clip!


More progress on my RPG. About ready to start working on other game states and transitioning in and out of battle.

Mug
Apr 26, 2005
Cross-posting from a bunch of places because I finally made the "room spawn" in Black Annex an in-game thing.
https://www.youtube.com/watch?v=QrEWDxTxGRY

quiggy
Aug 7, 2010

[in Russian] Oof.


Mug posted:

Cross-posting from a bunch of places because I finally made the "room spawn" in Black Annex an in-game thing.
https://www.youtube.com/watch?v=QrEWDxTxGRY

This is unbelievable what you've made here. I am seriously excited to play this game.

glompix
Jan 19, 2004

propane grill-pilled

Pollyanna posted:

Nintendo noo :ohdear:




Oh sweet, this looks pretty awesome. I'd use it...if I ever found a group to play 4E with :(

Note that I'm able to do this and the app will just roll with it:



Yeah, that's fine for now. First step is filling in all of the sections with HTML/CSS so I can use it. If you want to play with BUTT stats that's not my business. :v:

Also, getting used to CSS preprocessors. I'm loving front-end development all over again over here.

Mez
Jun 23, 2008

glompix posted:

Also, getting used to CSS preprocessors. I'm loving front-end development all over again over here.

What frameworks have you been using? I really like the style of your UI, very sleek.

glompix
Jan 19, 2004

propane grill-pilled

Mez posted:

What frameworks have you been using? I really like the style of your UI, very sleek.

Thanks! Bootstrap 3, but most of it is just plain LESS and low-contrast greys. I'm slowly coming around to the new flat look.

hendersa
Sep 17, 2006

Scaevolus posted:

This is really cool and I'm looking forward to the final result. I could see people implementing this in more common NES emulators and annotating lots more games.

For outlined sprites, it might look better if you stretched an adjacent non-black pixel along the depth edge than the outline. But the pipe top would be better black, and that requires even more sprite annotations...

It looks like there's some z-fighting in that render. Are you doing repeated floating point additions when generating vertex coordinates for each trixel? Multiplication might be more accurate.

I hope you convinced them to go with less ridiculous capes clipart.

I think that some creative use of metadata can reduce/remove the issues with those black outlines. I've actually been doing some work with expanding the metadata held for each pixel to handle some of these things. As for the artifacts, that is more from the capture process because I'm using Linux in a VM on a Windows 7 laptop with a fairly poor Intel GPU in it. It actually does not look at bad when I'm watching it live versus the Gooncam capture. Each voxel is translated into place from a reference matrix, so there isn't any sort of additive error that I am aware of.

I don't have any say over the clipart. Turns out it is part of a theme that they use. There is a big, muscular superhero on one of the other pages, too.

<-- Reference (29 unique tiles)



There are some interesting things going on here. First off, I expanded the metadata to allow for one to three voxels to be displayed on each pixel for the background. There are two reasons for this. The first is that I can now render background stuff both in front of and behind sprites at the same time. This will allow me to keep the posts on the bridge, and it gives me the added ability to make objects "hollow". An example of that is the opening of the pipes that you see here. I also use it on the Bullet Bill cannons.

The second reason is that I found one particular tile is reused in three contexts. That tile is an 8x8 solid color square used for both the horizontal and vertical portions of the pipe (and probably something like lava or water, too). This means that I have to specify multiple depth maps for this tile. The spinning pipe segment here uses that tile in two different contexts, and it turns out to be OK with the new metadata.

Keep in mind that I'm only specifying the metadata, a sample palette, and a small section of tilemap to tell the renderer how my test "level" is laid out. Everything else is pulled from the SMB ROM to render this. I have metadata for over 200 tiles, and will probably have metadata for the remainder of the background tiles calculated fairly soon.

Lurchington
Jan 2, 2003

Forums Dragoon
This is something I'm pretty happy with, at least from a package/documentation/testing angle. I made and packaged (via Bower) a custom AngularJS directive* ( I'm calling a "depth chart" (a particular type of HTML table).
https://github.com/robdennis/ng-depthchart

and used by the Magic: The Gathering Deckbuilder I'm toying with:
http://robdennis.github.io/lambic/

* if you're not someone with a lot of experience with Angular, it's a thing that will dynamically render HTML, usually given some sort of complex input.

Only registered members can see post attachments!

Lurchington fucked around with this message at 06:43 on Dec 23, 2013

Opinion Haver
Apr 9, 2007

It's neat! ... but you should probably add some spaces in there because cmc==3 looks like a weird dick. Also, you should probably give some kind of indication that you can hover over the cards to get their information. Maybe include Oracle rules text? If you want to be really saucy, look for keywords and link to the relevant page on Yawgatog.

Lurchington
Jan 2, 2003

Forums Dragoon

Opinion Haver posted:

It's neat! ... but you should probably add some spaces in there because cmc==3 looks like a weird dick. Also, you should probably give some kind of indication that you can hover over the cards to get their information. Maybe include Oracle rules text? If you want to be really saucy, look for keywords and link to the relevant page on Yawgatog.

I was already going to update the columns to use labels instead of a "sort spec" (I sorts cards using arbitrary categories), but this is a particularly humorous reason to do that sooner instead of later, heh

I'm a really novice designer (I'm a python/backend guy), so the human interaction stuff is really me relying on comments like this, and from feedback from more seasoned designers. Here's the thread where I was doing my heaviest brainstorming about this (includes basalmiq mockups and everything):
http://riptidelab.com/forum/threads/how-do-you-want-to-enter-a-cube-list-into-a-computer.97/

hendersa
Sep 17, 2006

I've been a bit busy over the holidays, but I did manage to pull together some of my voxel metadata work yesterday to see where I stand. I have metadata in place for all of the background tiles (256 of the 512 total tiles in the PPU), so I did some test renders of most of the big items. I put together a video of it here:

https://www.youtube.com/watch?v=_AVj0ud9zP0

The new metadata format for multiple voxels per pixel is working really well. Also, I've been keeping an eye on the progress of the 3.12 kernel for the BeagleBone Black. There are still some issues in the port of the Capemgr subsystem from 3.8 to 3.12, but 3.12 has alpha SGX support in it (hardware accelerated OpenGL ES), so I'll try to move to that as soon as it stabilizes for all of my BBB/BBxM projects. I'd rather use GL for scaling, rather than the software scaling, plus it will allow me to support higher-resolution HDMI displays.

The mails keep coming in from various people that have been tinkering with the BBB over the holiday break. Probably the most surprising was a mail from a team at the US Postal Service that wanted to use the BBB with Android to drive HDMI monitors at their facilities. There were a few different usps.gov addresses CC'd on the mail, so I guess it wasn't just one person idly wondering about their own pet project. I wonder if anything will come out of that...

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

hendersa posted:

I've been a bit busy over the holidays, but I did manage to pull together some of my voxel metadata work yesterday to see where I stand. I have metadata in place for all of the background tiles (256 of the 512 total tiles in the PPU), so I did some test renders of most of the big items. I put together a video of it here:

https://www.youtube.com/watch?v=_AVj0ud9zP0

The new metadata format for multiple voxels per pixel is working really well. Also, I've been keeping an eye on the progress of the 3.12 kernel for the BeagleBone Black. There are still some issues in the port of the Capemgr subsystem from 3.8 to 3.12, but 3.12 has alpha SGX support in it (hardware accelerated OpenGL ES), so I'll try to move to that as soon as it stabilizes for all of my BBB/BBxM projects. I'd rather use GL for scaling, rather than the software scaling, plus it will allow me to support higher-resolution HDMI displays.

The mails keep coming in from various people that have been tinkering with the BBB over the holiday break. Probably the most surprising was a mail from a team at the US Postal Service that wanted to use the BBB with Android to drive HDMI monitors at their facilities. There were a few different usps.gov addresses CC'd on the mail, so I guess it wasn't just one person idly wondering about their own pet project. I wonder if anything will come out of that...

:aaaaa: This is so cool. Some of these are really intricate, the underwater coral tile in particular is great. I guess like you said you have to do these manually and its pretty time consuming, but the results are really cool. How does the shadow memory you're using work? Are you using like, a custom emulator implementation?

Zaphod42 fucked around with this message at 19:16 on Dec 29, 2013

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
This really isn't a screenshot, but I just published an article today about X11.

http://magcius.github.io/xplain/article/
http://magcius.github.io/xplain/article/x-basics.html

It has kittens!

Scaevolus
Apr 16, 2007

Suspicious Dish posted:

This really isn't a screenshot, but I just published an article today about X11.

http://magcius.github.io/xplain/article/
http://magcius.github.io/xplain/article/x-basics.html

It has kittens!
Demonstrating X11 features by embedding a Javascript X11 server in the page is an awesome hack.

Isn't XCB the sane subset of X11 features?

The stipple pattern is hard to see on high density displays like phones, but it's crazy that it even runs on phones.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Scaevolus posted:

Demonstrating X11 features by embedding a Javascript X11 server in the page is an awesome hack.

It's all custom code! HTML5 canvas and everything!

https://github.com/magcius/xplain/blob/gh-pages/src/server/server.js

Scaevolus posted:

Isn't XCB the sane subset of X11 features?

XCB is an alternate client library that speaks the same protocol as Xlib does. We can debate on whether its design is more sane or less sane than Xlib (personally, I think XCB has some brain damage too), but it's all the same X server underneath. It's the same protocol and the same set of features.

Scaevolus posted:

The stipple pattern is hard to see on high density displays like phones, but it's crazy that it even runs on phones.

For the next article, I'll be upgrading the display technology to the mid 90s. It produces a moire pattern while I scroll on my cheap LCD display too. I really couldn't resist party_like_its_1989 mode though.

Workaday Wizard
Oct 23, 2009

by Pragmatica

Suspicious Dish posted:

This really isn't a screenshot, but I just published an article today about X11.

http://magcius.github.io/xplain/article/
http://magcius.github.io/xplain/article/x-basics.html

It has kittens!

Nice!

I am making an audio conference server. Right now I have Windows client library code working (depending on your definition of working) and I am starting an android client library. I have never done JNI before, same for android dev :ohdear:

Not exactly a good screenshot but eh...

Client on the left. A dummy python server on the right.

In the screenshot you can see my stats collecting code actually working. The way I did it is by making all the audio pipeline classes (including the parts that deal with the audio connection) inherit from generic Producer<DataType> and Consumer<DataType> classes that collect stats. The stat collecting is very basic for now but I have a hunch I'll need it very soon (my intended audience are all on pos networks).

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

Suspicious Dish posted:

This really isn't a screenshot, but I just published an article today about X11.

http://magcius.github.io/xplain/article/
http://magcius.github.io/xplain/article/x-basics.html

It has kittens!

This is pretty frickin awesome.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I'm getting a lot less questions on it than I anticipated, which means that either people understood everything in the article perfectly and I did my job better than I thought I could, or they played with the pretty demos and thought the actual article was too hard to understand or tl;dr.

So, let me ask you guys: did you understand the material? Or was everything perfect? Should I write less for the next article? Write more? Did I spend too much on basic stuff everybody already knows and then when we got to the complex stuff, "the bottom fell out" and you lost me? Any technical questions left after reading that?

csammis
Aug 26, 2003

Mental Institution
Speaking only for myself...

  • I understood most of the concepts presented from years doing Win32 GUI programming. I don't think it was too basic though...if I hadn't spent altogether too much time with WM_PAINT and window message pumps in general this would all be new information to me. For all the goddamned kids who make some HTML5 buttons with their JQueries and that poo poo works who cares ( :corsair: ) it seems just right.

  • The information was presented very well but honestly I was way more interested in the Javascript implementation of an X server and spent most of this morning looking through the Github source. That is really cool!

All that said I'm definitely looking forward to the continuation of the series, blending for transparency and window managers specifically. Write more!

nuvan
Mar 29, 2008

And the gentle call of the feral 3am "Everything is going so well you can't help but panic."
I thought you hit a pretty good balance. I don't do development in that area myself, but I enjoy reading about how folks implemented solutions to problems they faced. Looking forward to the next part.

Adbot
ADBOT LOVES YOU

aerique
Jul 16, 2008

Suspicious Dish posted:

So, let me ask you guys: did you understand the material? Or was everything perfect? Should I write less for the next article? Write more? Did I spend too much on basic stuff everybody already knows and then when we got to the complex stuff, "the bottom fell out" and you lost me? Any technical questions left after reading that?

It wasn't perfect but very good nevertheless. Very well written and the length was just right for me. I also didn't feel we ever got to the complex stuff which is a good thing.

I did not keep any notes (reading on my tablet) otherwise I would have had a few technical questions.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply