Banner
Views: 794,760,682
Time:
13 users online:  Aja, BlueZy, chickaDEE Magazine, EvanEMV, Fermín Acosta Jr., HammerBrother, HamOfJustice, Kezcade, Maxodex,  Meirdent, Neeberz, OhMuramatsu, Teows - Guests: 43 - Bots: 197 Users: 41,483 (1,494 active)
Latest: GBSDYP
Tip: Don't remake levels from other Mario games, especially popular ones (SMB1/3 1-1, for example).Not logged in.
I feel like SMW hacking is bogging SNES homebrew down
Forum Index - SMW Hacking - SMW Hacking Discussion - I feel like SMW hacking is bogging SNES homebrew down
Pages: « 1 2 3 4 5 » Thread Closed
A lot of SMW hackers I believe would be better off doing original homebrew where they are not as constrained, and I also think the oversaturation of SMW hacks are kind've driving people away from the SNES scene. Plus the fact that SMW is a really nitpicky engine, and I think it gives a bad impression on the SNES hardware. Such as having to use an SA-1 to do stuff other games managed by themselves.
Doing original homebrew is like, an entirely different audience than SMW hacking. The appeal to most in SMW hacking is using SMW's engine. On top of that, it's really easy to get into and requires no coding knowledge, where homebrew absolutely requires coding and hardware knowledge. I think you completely misunderstand what drives people to come here, 9 times out of 10 it certainly is not "I want to make a SNES game", it's "I want to modify this Mario game".

How SMW hacking affects "the SNES scene" is also kind of not really a concern we have? Like, people wanna make Mario games and somehow SMW wound up being the easiest to fully customize.
I put "the SNES scene" in quotes because I'm not sure how that even exists as a coherent thing, seems more like just completely different communities you're somewhat arbitrarily grouping up just because they run on the same piece of hardware.
Don't get me wrong, I do love peeking into the hacking scenes for other games here and there, but that's because I'm personally interested in retro games, not because of some allegiance to the SNES. That F-Zero hacking thread that popped up in Misc. ROM Hacking a few months ago was hella interesting to me cause people were actually figuring out new sweet things in there.
But that doesn't make me feel like I'm a part of some SNES scene now.

I 100% have no clue what you mean with the "bad impression on the SNES hardware" line. Like, impression on whom? Whomst cares? What kind of person has enough technical know-how of the SNES to realize how janky the engine is but does not know that SMW was a launch game and is unoptimized in its core? And even then, why would anyone care about what conclusions this person comes to..?

Also, I can't think of any instances where we used SA-1 specifically to do things you can do without. People use it because it allows us to raise the ceiling of how much the core SMW engine can handle at any given point without starting to run at one fourth of the desired speed.

--------------------
Your layout has been removed.
Originally posted by Leod

Also, I can't think of any instances where we used SA-1 specifically to do things you can do without. People use it because it allows us to raise the ceiling of how much the core SMW engine can handle at any given point without starting to run at one fourth of the desired speed.


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

I mean, I think it's a cool effect, but the fact that it uses an SA-1 makes it less technically impressive. Doing more on limited hardware is much more impressive. It's using mode 7, but mode 7 is a built in feature, so is HDMA. It's not doing anything that requires per pixel manipulation.

Heck, it looks like it doesn't even need to recompute the Mode-7 HDMA table every frame, because the shape of the Mode-7 floor doesn't change. All it needs is the mode-7 center coordinates changed.
The problem with that is that this effect is used on a platformer level which can take a lot of processing power than on an overworld, especially if the game's code is unomptimised.
leod already explained the reason: Touhou Mario relies on many projectiles which can easily overload the SNES, especially since the first one used bullet bill for projectiles. The second game uses its own bullet sprites but also uses many special effects (which includes rotations of bitmaps, mind you) and you'll easily get a game running at, let's say, 7.5 FPS without SA-1.

SMW uses mode 7 to simply rotate a tilemap and not complicated stuff like this video (thus, it's less optimised on this one).

Moreover, using enhancement chips to optimise mode 7 and other effects is actually a normal procedure as games like Super Mario Kart and Pilotwings uses DSP-1 (although not comperable to SA-1, it still helps the SNES) to boost the mode 7 calculation.
Of course, games like F-Zero (which is close to SMK) went without one but you get the idea and.

--------------------
Okay, my layout looks ugly.
That effect can literally be done in less than 1% of the available CPU time. You just need to scroll the map by changing the Center X/Y registers once per frame, and using a static HDMA table for the scaling parameters.


Case in point. Here is a Mode 7 demo that does the same thing but does it just by writing to a few registers. http://bin.smwcentral.net/u/28835/mode%2B7.zip
... and what's your point?
Just because someone used mode 7 in a game using SA-1 that suddenly has to mean that the SA-1 is being used only to provide that effect, is that what you're thinking? That because those effects are possible without an enhancement chip (which nobody ever said they are not, mind you, that is something you seem to be projecting onto other people by yourself) they shouldn't be allowed to be used in a game using SA-1?
"Did you know that SMRPG uses mode 0 a lot?! How dare they, the game uses SA-1 so every screen of the game should be a scene-demo-worthy masterpiece!"

What I'm saying is: your answer had no relation to what I said. SA-1 is not being used in Touhou Mario 2 for this effect. The video description literally says that is Vitor's first time dabbling in mode 7, that effect is not there to push the SA-1 to its limits and "be impressive", it's there to look the way it looks.



I'm not even sure why you're pretending like anyone claimed that effect to be incredibly resource intensive. Just look at the left edge of the video you linked, there's a little yellow star bouncing up and down. That star shows you how much of the SA-1's processing power is used per frame. As you can see it never even reaches the halfway point, mostly bouncing around in the lower third of the screen. And that is with the sprite-layer floor and all the enemies and the entire SMW engine running at the same time.
Point is: Vitor never even tried to hide the fact that this is incredibly simple on the processor. He was merely showing off his neat mode 7 and his code that moves the level data onto the sprite layer.




Also, glad that you ignored everything else I said and then still managed to miss with the one point you replied to. Solid argumentation.

--------------------
Your layout has been removed.
Quote

Just because someone used mode 7 in a game using SA-1 that suddenly has to mean that the SA-1 is being used only to provide that effect, is that what you're thinking? That because those effects are possible without an enhancement chip (which nobody ever said they are not, mind you, that is something you seem to be projecting onto other people by yourself) they shouldn't be allowed to be used in a game using SA-1?


I wasn't aware that this level was supposed to be in the same game as other levels that need a SA-1.

Originally posted by leod

I'm not even sure why you're pretending like anyone claimed that effect to be incredibly resource intensive.


Originally posted by MarioFanGamer

and you'll easily get a game running at, let's say, 7.5 FPS without SA-1.


Originally posted by leod

That star shows you how much of the SA-1's processing power is used per frame. As you can see it never even reaches the halfway point, mostly bouncing around in the lower third of the screen.


It looks like it's the other way around, because the star is lower when more enemies are onscreen.
the mode 7 example isn't past the line yet.

But this:


Why this isn't a homebrew is beyond me.
Originally posted by Drex
I wasn't aware that this level was supposed to be in the same game as other levels that need a SA-1.

This very level actually does too, because SMW's engine cannot handle this many sprites (and sprites of this complexity to boot) without lagging.
But SA-1 is definitely needed and used for the boss fights, example. This one just uses a bunch of projectiles, but there are others that actually make use of SA-1's character conversion directly to rotate and scale sprites and handle non-bounding-box-aligned collision.


Originally posted by Drex
Originally posted by leod

I'm not even sure why you're pretending like anyone claimed that effect to be incredibly resource intensive.


Originally posted by MarioFanGamer

and you'll easily get a game running at, let's say, 7.5 FPS without SA-1.

For one, you were already acting as if it ever claimed to be a difficult task for the SNES before MFG posted so that is kind of really bad reasoning to use it as an example, but also MFG specifically did NOT talk about the mode 7 effect, you cut that part out of a very long sentence detailing exactly what is requiring SA-1 in this switch, namely:
Originally posted by MarioFanGamer
leod already explained the reason: Touhou Mario relies on many projectiles which can easily overload the SNES, especially since the first one used bullet bill for projectiles. The second game uses its own bullet sprites but also uses many special effects (which includes rotations of bitmaps, mind you) and you'll easily get a game running at, let's say, 7.5 FPS without SA-1.

As you should be clearly able to see since he even prefaced the sentence with "leod already explained the reason", he was simply reiterating what I had already said; that SA-1 is not at all being used to handle this effect, but because of everything else you see in the video and all the things you do NOT see in the video (such as the aforementioned bosses and the levels that use an exorbitant amount of sprites and bullets).


Originally posted by Drex
It looks like it's the other way around, because the star is lower when more enemies are onscreen.

You seem to be right about this one, and now I'm actually not sure which meter this is because the usual processing meter has 2 stars, one for the SNES cpu and one for the SA-1, but this is just a single star.
I'm not really sure what's causing it to stay at the bottom like that, especially because at the very start of the video, it is already that low in the sublevel that comes before this one, where no fancy effects are used.
All I can tell is that sprites affect it negatively, which I think means it's the SA-1 meter.

--------------------
Your layout has been removed.
I know the BG has to be created with sprites, but it's easy to fill a bunch in a row without taking too much CPU power. All you need is to keep adding 16 to X until you're off screen, then add 16 to Y, while skipping blank sprites, and copying attributes.
As somebody who actually has done homebrew work, I think you are misunderstanding where the difficulty in game programming lies, and what people want in games.

Making a big show of how well-optimized your code is not an interesting way to go about game development in 2017. I'd say it hasn't been since a little while after the "AAA game" became a thing. When game optimization was at the forefront of computer technology, it was cool. But that was when an R10000 system cost $47,000 (seriously) and every 1% performance improvement was something that made a huge difference even on that. Nowadays, game optimization is mainly about satisfying the surprisingly whiny people who have $600 to drop on a 144Hz monitor. Bringing yourself down from 3GHz/16GB to 3MHz/128KB isn't going to erase the facts of modern game optimization, because the decision to make a SNES game 15+ years after the fact is basically a gigantic counter-optimization you take on for purely artistic reasons. If, as an artist, your medium of choice is software optimization, SNES homebrew is not the place you should be working; you should be contributing to LLVM or Idris or working on AlphaGo or something, where you actually have a shot at creating something new. Exploring the unrealized capabilities of the SNES is like exploring abandoned buildings; you might find something cool but the excitement in it is all for you and maybe a few friends.

Which leaves us with the fact that exploring the unrealized capabilities of the SNES is often not very much fun. The baseline to write optimized 65C816 code is obnoxiously high, mainly due to design flaws in the CPU's architecture. A lot of time is wasted on things like tracking the carry so that adds inside loops don't need a CLC, on choosing between JSR and JSL, on keeping track of the MX bits. None of these things are interesting from a design perspective; they are a mental tax we pay by twiddling bits. Had a certain Mr. Bill Mensch dealt with these issues instead of just jamming features onto the 65C02, we could afford to focus more on interesting problems, but he chose to solve unproductive problems and now so must everyone who uses the 65C816.

Every time I have learned a new thing about the 65C816, beyond what I initially had to learn to program at all, it has been a purely negative experience. I learned that JSR (addr,x) and the like actually dig up their destination from the program bank instead of the data bank. Did that teach me anything about software design? No. Did it require a weird work-around in code I had believed would be clean? Yes. Is there anything I can do about it? Not if I want to keep coding the SNES. I was similarly left unexcited to learn that TDC and TXA have different behavior, that bank wrapping is inconsistent between addressing modes, and more. All of these things had to break my programs, and so waste my time, in order for me to even consider them.

In comparison, I recently (where "recently" means "about 1.5 years ago") started writing my tools in Rust instead of Python and C++. Almost every random edge case in Rust has taught me something, tutorials about things that I already knew how to do have taught me things, weird blog posts about changes made to Rust two years ago have taught me things, not even about Rust but about programming. Simply being in proximity to something that actually has new ideas, and willfully faces difficult, current design problems, has been hugely enriching.

So where does all that stuff leave us with SMW hacking vs SNES homebrew? Well, to write a homebrew game you have to deal with a gigantic mountain of little problems, most of which are not very interesting, before you can even properly imagine what the big problems you face will be. Picking up Lunar Magic and goofing on a ROM gives you quite immediately a lot of problems that are old but are still interesting. Problems of how to design a level, how to draw, how to organize working with other people - these are interesting.

Recently Raocow has been playing YUMP, which was created with only minimal devotion to being good, and you can actually see people arguing in the YouTube comments and on the Talkhaus about whether it's good. There was a puzzle level, which Raocow knew how to solve but I would not have, which was one of the most amazing things I have seen in my life. YUMP might not be good, but there is something there to argue about and there are things to be learned about unsolved problems like level design; it is at least enriching.

Meanwhile, the few people I know to have made homebrew projects, on this site and on NESDev, and including myself, have produced a lot of code and solved a lot of code problems, but have between us not produced anything remotely as interesting as YUMP. In fact, I don't think that anyone I know has even produced one complete SNES game. I am not sure if there is a completed SNES homebrew game in the world.

That the YUMP people put forth a modest-at-best effort to make something on-purpose bad, and produced an enriching thing, while the ASM/homebrew people set out to make something amazing, and put in humongous effort, and have released nearly nothing substantial at all, let alone anything interesting, speaks to the importance of the choice of problems you face.

This focus on how hard random, long-obsolete programming tasks are, with or without the SA-1, is a bad focus, and you should stop focusing on it.



(I am sorry in advance that this post is ranty and kind of tangential but I have been on the verge of posting a maniacal screed for days and this is probably one of the milder forms it could take)
In that case, why wouldn't you choose to program a game in another language rather than SNES ASM altogether?

I mean, this is just what I think and others may have other ambitions in mind, but when it comes to projects whose creativity started from scratch but the code has not, it would bother me that I can't really profit off of it no matter how much of my sour was put into it, and in the case of Nintendo, the extra risk of getting shut down.
Interesting thread.

I've always viewed SMW hacking and SNES homebrew as separate, completely unrelated branches of "ROM hacking" (well technically homebrew isn't really ROM hacking, it's creating). SMW hacking is for making levels based on the SMW engine, while homebrew's purpose is unclear - it's something you have to define yourself.

I've read this entire thread, but I'll be addressing the first post alone.

Quote
A lot of SMW hackers I believe would be better off doing original homebrew where they are not as constrained

You seem to have a misconception of "SMW hackers". Not everyone in this community knows how to code in SNES ASM. If your average SMW hacker wants to create a homebrew ROM, technically they may not be constrained because they can code literally anything they want. However, in turn, even more constraints come into play:
Game-design:
- Knowledge about level design
- Knowledge about music
- Knowledge about graphics, palettes and a good sense of aesthetics
- Knowledge about storytelling if you want a plot-based game

Coding:
- Knowledge about ASM
- Knowledge about SNES hardware, PPU and its limitations
- Knowledge about SPC-700 to code a music engine
- Knowledge about game-related code (with the sub-constraints being: how to code sprites, blocks, backgrounds, levels, etc etc)
- Possibly need to code your own level editor/viewer unless you like working with hex numbers

Compared to that, here are the constraints of SMW hacking:
- Limited ROM space: about 1 MB less compared to homebrew, due SMW's code and Lunar Magic's ASM hacks
- Limited processing power - See my hack for example: the thwomps. The original story mentioned there were like 30 of them, so I had to place 30. Without SA-1, it caused an extreme amount of slowdown. This sequence is the sole reason why my hack required SA-1.
- An idea of what good or bad level design is (combination of graphics, music, the level itself, etc. making it an overall pleasant experience)

If you don't find a solution for the constraints I listed for homebrewing, your game may very well end up being on the same tier as Hong Kong 97.

With technicalities and your average SMW hacker's abilities aside, there's also the question of why someone would want to make a homebrew ROM. More about homebrew later.

I personally started hacking SMW because it was one of my childhood favourite games. I wanted to make my own Mario level. The idea of replacing SMW hacking with homebrew with that mindset is very strange.

Quote
Plus the fact that SMW is a really nitpicky engine, and I think it gives a bad impression on the SNES hardware

SMW's engine is incredibly glitchy (just look at the stuff Kaizoman manages to dig up like every month if you follow his Twitter), as well as limited. Graphics were originally 3bpp, the music sounds kinda bland compared to other SNES games, etc. But on the other hand, it is literally the first released licensed SNES game ever. It might give off a bad impression on the SNES hardware to technically-knowledge people such as us, but who are we to judge? We aren't Nintendo, we don't have to make sure that the SNES should be viewed in a good light ~26 years after its first release.

Besides, the part I enjoy the most about SMW hacking is the fact that once again, I'm editing one of my childhood favourite games (with its engine basically readily available), and giving it my own touch. There are readily available resources as well as an excellent level editor, and you can contribute to this hobby by submitting your own creations and knowledge.

Quote
Such as having to use an SA-1 to do stuff other games managed by themselves.

If there's an easier option available and you have the skills to make use of it, why not go for it?

The video I linked earlier with the thwomps - I could've gone ahead and just optimized them like crazy. It would be a nice challenge to me, as a ROM hacker, but the people who play the hack probably wouldn't even care about the effort I went through. In fact, here is a good example. I neatly documented all my hardships but nobody really seemed to care. They just want to play a good-looking hack.

Lastly, I would like to address the concept of homebrew ROMs themselves. Personally, I liked playing around with incredibly simple homebrew ROMs where I tried various HDMA effects, VRAM writes, etc. But only for "educational purposes". I wasn't serious about writing an entirely original game on the SNES of all systems. I saw no point. It's a hobby sure, but my creation would address such a small audience.

If I had a good game idea, I wouldn't want to limit myself to irrelevant hardware. I would rather create the game I want in I dunno, Unity or Unreal Engine or something. Or maybe I should bring my ages-old idea finally to fruition, as long as my game runs standalone on the PC without any emulator whatsoever. I could even go ahead and greenlight it on Steam (or w/e the process is now), and maybe earn a few cents. Then at least my audience will be infinitely bigger, I will be able to see if people enjoyed my game or not, and feel like the time I poured into my project actually has paid off in terms of money/popularity. I would also have trained my knowledge in the modern programming language(s) which I could apply about anywhere.

If I had to compare SNES homebrewing vs actual modern game development, it would be like baking a bland cake vs baking a colorful, decorated cake - as the end result, nobody will care about the bland cake - perhaps not even notice its existence - except for niché bland cake connoisseurs who want to know what baked dough tastes like, while the majority of the audience indulge in the more colorful-looking, tasty cake, endlessly superior compared to the other cake because there are no self-imposed limits.

SMW hacking is somewhere in between because SMW hacking is (I think) more known to the world, compared to homebrew SNES ROMs. Think of the SMW hacks played at GDQs, the amount of SMW hacks let's played by (popular) YouTubers, how the existence of SMW hacking got noticed by a somewhat larger audience after Mario Maker got released, etc.

Also,
Quote
because the decision to make a SNES game 15+ years after the fact is basically a gigantic counter-optimization you take on for purely artistic reasons. If, as an artist, your medium of choice is software optimization, SNES homebrew is not the place you should be working; you should be contributing to LLVM or Idris or working on AlphaGo or something, where you actually have a shot at creating something new. Exploring the unrealized capabilities of the SNES is like exploring abandoned buildings; you might find something cool but the excitement in it is all for you and maybe a few friends.

I agree wholeheartedly.

--------------------
My blog. I could post stuff now and then
My intuition is that SMW hacking has greatly increased the interest in hacking the SNES at all. It's certainly one of the most hacked retro games ever. In an alternate universe where Lunar Magic was never made, I don't think everyone here would be working on homebrew projects; I think they wouldn't have ever learned ASM or considered making a SNES game at all.


As for why we'd bother making anything for the SNES at all, well, we're hobbyists. We don't do it to get famous. We don't do it to forge new paths or solve new mysteries of the universe. We know our peers are small in number. We don't care. There are plenty of people who still tinker on ham radios or cars from the 60s or vinyl record players, and much like us, they do it solely because they find it fun.

Personally I've never been too excited about upcoming advancements in computer science. People try to show me new VR headsets or rendering techniques or whatever, and it just seems so uninteresting. Show me an old PC from the early 90s though, and I'll be giddy with glee (at least until I boot it up and have to wait through loading times, hehe). Retro stuff just has a better aesthetic and feel; I'm nostalgic for simpler times.
Originally posted by Katrina
In fact, I don't think that anyone I know has even produced one complete SNES game. I am not sure if there is a completed SNES homebrew game in the world.

Super Boss Gaiden
Originally posted by Ersanio
Meanwhile, the few people I know to have made homebrew projects, on this site and on NESDev, and including myself, have produced a lot of code and solved a lot of code problems, but have between us not produced anything remotely as interesting as YUMP. In fact, I don't think that anyone I know has even produced one complete SNES game. I am not sure if there is a completed SNES homebrew game in the world.


I've been able to do stuff that is pretty interesting, even though I only have 2 unfinished levels. I had to do a lot of work to get the dynamic animation and rotation to work properly.

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

alien soldier 2: anime soldier
@Drex !! PLEASE READ !!

Please don't tell me that this thread was created from getting frustrated with a "nitpicky engine". Not all games are programmed the same. It seems you're implying one can jump into any ROM, modify/add the code, and expect it to go smoothly every time. I can tell you firsthand that this is not the case.

As for the SA-1 nonsense I'm speechless. You are literally arguing that a system-enhancing feature, such as SA-1, drives people away from the SNES scene because someone used it in a manner you deemed inefficient? #smrpg{gasp} Sometimes the jokes really do write themselves!

Drex, bro, be real with me - what are you having an issue with? We are here to help because believe you me, it can get messy when modifying the original SMW. You have referenced Mode 7 a few times... are you having a an issue with Mode 7? We're here to help. If you don't want help then this is a clear troll attempt because none of the arguments you presented are true according to the majority opinion of the users on this site.
It's an issue I have with the gaming community in general. I'm trying to impress people with my homebrew SNES game, but people keep saying stuff like "Oh the Sega Genesis can do this without a SuperFX chip, because it has a faster CPU."

My homebrew game isn't even using an enhancement chip.
Originally posted by Drex
It's an issue I have with the gaming community in general. I'm trying to impress people with my homebrew SNES game, but people keep saying stuff like "Oh the Sega Genesis can do this without a SuperFX chip, because it has a faster CPU."

It's not SMW hacking that's causing that reaction, you know that right?

Like, the impression I'm getting from this is that you don't actually care about making a game, you care about impressing people with your fancy sprite rotations and such. Of course you're going to get that reaction because people are telling you to go to a console where that is easier.

Nobody hacking SMW cares about furthering SNES homebrew. This is an obvious statement, because if any of us did, we'd be making homebrew. We care about hacking SMW, about making games in one of our favorite (and IMO smoothest controlling) Mario engines, nothing more than that. You're trying to argue with people drinking orange juice that they're bringing the quality of apple juice down by doing so. Nobody is going to drop their project, pick up an SNES homebrew manual, and go through months of recoding everything to help "further the scene" because we aren't part of that scene. We're mario world hackers.

--------------------
Pages: « 1 2 3 4 5 » Thread Closed
Forum Index - SMW Hacking - SMW Hacking Discussion - I feel like SMW hacking is bogging SNES homebrew down

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 7

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • SMBX Community
  • ROMhacking.net
  • MFGG