We've been called out

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: We've been called out

Post by FrankenGraphics »

hihidanny wrote:Am I the only one who feels like graphics on the NES were actually a bit too small?
:lol: I was just reminded of some early doodle i did and forgot about for a long while based on the idea of a gauntlet-styled game where enemies actually were free-moving sprites like in the arcade original.
mitten.png
mitten.png (14.93 KiB) Viewed 4000 times
You can have small sprites that move really fast, and you end up with weird looking stuff like characters powerwalking at 80 miles an hour.
I think bio force ape might've been a conscious choice to go for precisely that. It just fits the narrative that all that mutant ape does is on exaggerated overdrive, doesn't it? But sometimes the format of two sugar cubes on top of each other gets really old.

Had we had more horizontal coverage on the NES (like the AVS is able to pull off) without cancelling, i think 18-24w standing (depending on stance), 32w running would've looked really nice with a height of 32-48h (depending on posture and height). Wide pixels counted for. That's all within reach on the SNES of course; just that it's somewhat uncommon.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: We've been called out

Post by psycopathicteen »

This stupid fractal pattern is still giving me headaches. I know it can't be software drawn because the glitch video shows a stripe pattern. So then it must be the "debug transparency" effect, but all the docs say it's just an AND operation. If there were only 4 colors, I would have figured it out, but there's 6 colors. Is there an XOR masking too?
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: We've been called out

Post by Drew Sebastino »

psycopathicteen wrote:it must be the "debug transparency" effect
Could you explain what this is? Web searches haven't brought up anything for me.
User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: We've been called out

Post by HihiDanni »

Probably the debug register here. My guess was that this was intended for developers to check if sprites and background tiles were being placed on-screen as expected even if obscured or hidden.

Edit: The register is explained in Titan's notes
SNES NTSC 2/1/3 1CHIP | serial number UN318588627
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: We've been called out

Post by TmEE »

That register is only for in factory testing when chip is being made. It isn't mentioned in any documentation, other than "reserved, do not touch".

As far as writeup to the effects goes, I don't think that will ever happen, there was only supposed to be documentation on the hardware things that made half the things possible at all (particularly bus crossing details and layer blending functions).

Layer blends depend on analog effects within the silicon and are very much guaranteed to fail on original VDP (315-5313), different manufacturer made chips behave slightly differently. Newer chips (315-5313A and 315-5313A-01, MD2 ASIC integrated version) work without glitches (with the exception of 315-5487 which doesn't have working 50Hz mode, but GFX will still operate ok).
Clone chips such as SE-93 does not exhibit issues either, meaning it is based off the two later versions. Some single chip hardware clones have issues with access timings and some debug register functions do not work and break few effects and emulatorclones do not work at all. Genesis3 VA2 doesn't work with things that require 128KB VRAM mode to work, the VRAM layout differs on that model in 128KB mode (but could probably be worked around). 128KB mode is used to allow 8bit DMAs.
In some places where you see vertical lines in groups of 3 about 16 pixels apart with 32 pixel gap you're seeing CRAM contention, whatever value is DMA'd into CRAM is shown on screen.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: We've been called out

Post by psycopathicteen »

With BlastEm emulator, is it possible to use a Save State from BlastEm and use it in another program?
93143
Posts: 1715
Joined: Fri Jul 04, 2014 9:31 pm

Re: We've been called out

Post by 93143 »

TmEE wrote:As far as writeup to the effects goes, I don't think that will ever happen, there was only supposed to be documentation on the hardware things that made half the things possible at all (particularly bus crossing details and layer blending functions).
What's this then?
Kabuto wrote:
psycopathicteen wrote:Isn't there supposed to be another write up that explains how the effects were done?
It will come, but it's easier said than done. It's not just about how hardware features were used, some effects (esp. the rotozoomer) have a mathematical background I don't want to leave unexplained, but this will take time, I want to make sure that most people will actually understand it. I will probably draw lots of pictues and diagrams too.

But once it's done I'll post it wherever people might be interested including this place.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: We've been called out

Post by psycopathicteen »

With the limited debugging features BlastEm has, I can tell that it has 16x32 sprites arranged in a slanted grid. It doesn't fill the entire screen, but I think the Genesis can tweak them mid screen to fill up the screen. I'm guessing this is supposed to mimic vertical tile scrolling, so I think it's supposed to add extra colors to the BG layer that is used for vertical tile scrolling. Every sprite uses palette 3 apparently. I think the vertical tile scrolling BG layer must use a different palette. It doesn't explain how the horizontal line scrolling BG would use more than 4 colors though.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: We've been called out

Post by psycopathicteen »

I finally figured out how this trick was accomplished.

Vertical stripes are drawn on both BG layers. BG1 gets 3 colors in one palette, BG2 gets 3 colors in another palette. It uses line scrolling to shift the vertical stripes diagonally.

Horizontal stripes are drawn using a slanted grid of 16x32 sprites. It uses mid-screen multiplexing to fill up the whole screen.
Only the 16 pixels across the screen have to be calculated, and the slant of the "sprite grid" takes care of the rest.

Now here comes the fun part. On a normal emulator, the sprites are hiding behind both backgrounds, but on real hardware the debug AND masking feature is applied with the sprites on top. How do the colors merge? Like this:

BG 1 uses these colors:
101110
101101
101011

BG 2 uses these colors:
111110
111101
111011

Sprites use these colors:
110110
110101
110011
111110
111101
111011

Bit 4 depends if it's a BG1 color or a BG2 color. Bit 3 depends if it's a lower sprite color or a higher sprite color. Bits 0-2 determine which 2 of the 3 colors are overlapping. If there are 2 bits that are 0, then those two colors are overlapping. If just one bit is 0, then the color is overlapping with itself.
lazygecko
Posts: 18
Joined: Fri Nov 24, 2017 7:03 am

Re: We've been called out

Post by lazygecko »

tokumaru wrote:
FrankenGraphics wrote:But one thing i reacted to as a kid was that NES games could often be more pretty, beautiful or distinct (subjective, i know) than snes counterparts because they were obsessed with maximising the use of colours in smudgy gradients.
I agree. A lot of SNES artists were just using more colors because they could, without stopping to think whether they should.

I cringe every time I compare Return of the Joker on the NES against Revenge of the Joker on the SNES. It's incredible how the 8-bit version of the game is better than both 16-bit versions (I'm including the Genesis version here) in every possible way!
This is exactly what fascinates me the most about 2D retro systems. The way in which stringent technical limitations inform the creative decisions of artists and designers, and them figuring out the "best" ways to work within those parameters. Every individual decision and component of the visuals, audio, or even game design being the way it is for a very deliberate reason. Return of the Joker has that very distinguished "NES Noir" look that Japanese developers gravitated towards near the end of the system's lifespan, since that was a proven way to convey moody and more "complex" visuals with the limited palette. When you get so much more headroom to work with inside a similar (insofar as 8- and 16-bit development zeitgeists being somewhat close to eachother) framework, that whole aspect driving the creative vision risks getting lost. That's pretty much why I tend to find NES and Genesis games to be more visually fascinating in their color usage to reach certain aesthetics, in spite of the SNES being objectively better on an exponential level in that regard.

The same philosophy extends to audio as well. I'm actually not that big into the NES expansion chips (nor the PC-Engine, for that matter) where you're tacking on a bunch of extra voices. Since they're still just basic, static waveforms, it remains very "chiptuney", but the larger headroom afforded by the channels also tends to erase the distinct way in which stock 2A03 music in composed, and that's at least half of the fun for me. Stock 4-5 channel 2A03 music has a very tight, focused sound I enjoy that leans more heavily into counterpoint to convey harmony. Compositions made using the extra chips just tends to sound very... diluted to me and yields the same reaction as when you compare those 16-bit ports of Retun of the Joker.
Pretty much the same reason I'd also prefer listening to a SNES orchestra compared to the same thing done on a rompler of the same era with 32mb of memory compared to 64kb. Both have a very obvious early "sampler-esque" sound to them, but there's a lot more interesting optimization tricks and choices on the SNES that makes it more fascinating.

I actually this kind of problem with the music in the Titan (both 1 and 2) demos as well. Strobe's entire style is based on heavily leveraging the single channel PCM playback with lots of sounds/instruments baked into the samples as the foundation of the entire track (probably explains why the ROM is so big in the first place), with the actual FM being used more as a complement on top of it. I mean, sure, it sounds cool and all, but I don't find it an all that interesting use of the sound chip.
User avatar
TOUKO
Posts: 306
Joined: Mon Mar 30, 2015 10:14 am
Location: FRANCE

Re: We've been called out

Post by TOUKO »

if i recall correctly, OD2 music consume 3.2Mbytes of rom space(the entire demo is 8Mbytes) .
It's 2 minutes of 8bit 26.5khz samples .
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: We've been called out

Post by psycopathicteen »

Which goes against Oerg's statement that they never use prerendered anything. There's also no reason why some of that fractal rotozoom can't use prerendering, because it only needs one row and one column of tiles per frame, and everything else is line scrolling, sprite shearing and AND masking.

I didn't make a comment back when Oerg said it, but no, us SNES developers don't use a dozen SFX chips to do stuff. You're confusing us with the ROM hacking community. :lol:
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: We've been called out

Post by Drew Sebastino »

TOUKO wrote:if i recall correctly, OD2 music consume 3.2Mbytes of rom space(the entire demo is 8Mbytes) .It's 2 minutes of 8bit 26.5khz samples .
That's pretty bullshit. :|
psycopathicteen wrote:Which goes against Oerg's statement that they never use prerendered anything. There's also no reason why some of that fractal rotozoom can't use prerendering, because it only needs one row and one column of tiles per frame, and everything else is line scrolling, sprite shearing and AND masking.
Making it your mission not to have anything prerendered is kind of arbitrary; the only real reason you don't prerender is because of rom size, but as TOUKO pointed out, Overdrive 2 is massive for what it is. Where do you even draw the line at what prerendered means? I'd think this could be stretched to include using any sort of lookup table, and the demo likely does. There's absolutely no point in calculating sine/cosine at runtime for anything outside of some sort of professional physics simulation.
lidnariq
Posts: 11430
Joined: Sun Apr 13, 2008 11:12 am

Re: We've been called out

Post by lidnariq »

In the demoscene, "prerendered" actually does have specific meaning. More-or-less it means "no video decoders".

The contents of the ROM is not an uncompressed raw streamed soundtrack—there's something doing some mixing. The drum loops are all long samples, though.

(Play file offset 0x5d400 through 0x2e6800)
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: We've been called out

Post by Drew Sebastino »

lidnariq wrote:In the demoscene, "prerendered" actually does have specific meaning. More-or-less it means "no video decoders".
The damoscene for non-framebuffer based systems? FMV on the SNES or the Genesis are going to look very obvious.
Post Reply