Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - Would this be possible with ASM? | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
cowsruleusall

Red Paragoomba
Level: 11

Posts: 22/50
EXP: 5415
For next: 570

Since: 03-12-05
From: Previously North York, ON

Since last post: 41 days
Last activity: 29 days
Posted on 04-22-05 02:35 AM Link | Quote
I've already decided to learn ASM over my summer break, but I just wanted to see if this would be possible. I'd like to make a hallucinogenic mushroom sprite; when you touch it, it gives you the effect from Touch Fuzzy, Get Dizzy, level 1-7 from Yoshi's Island. Is that possible?

While I'm asking, I also had a few other ideas I'd like to check:
Exploding mushroom sprite
Over 150 goals
Ordinary levels with more than 2 possible exits from that level
Changing the colour of the red/yellow dots that represent levels
Increasing the number of possible Information Boxes in one level (can I have three or more different messages in one level?)

If someone could tell me if these ideas can be made possible with ASM, I'd really appreciate it. In fact, I'd appreciate it more if someone could also tell me the degree of difficulty of making these, and if it's even possible to learn ASM over two months with no school.

Thanks very much.
||bass
Programmer Admin
Level: 44

Posts: 324/817
EXP: 570813
For next: 40472

Since: 03-15-04
From: Salem, Connecticut

Since last post: 26 days
Last activity: 11 days
Posted on 04-22-05 02:50 AM Link | Quote
Anything is possible, but I think it would be obscenely difficult to implement. The fuzzy effect uses a SuperFX2 graphical effect. Although ZSNES seems to have no problem with the usage of SuperFX2 instructions in games not designed for it, I suspect that the graphical engine for SMW would require a signifigant rewrite in order to allow for an effect like the fuzzy effect.
cowsruleusall

Red Paragoomba
Level: 11

Posts: 23/50
EXP: 5415
For next: 570

Since: 03-12-05
From: Previously North York, ON

Since last post: 41 days
Last activity: 29 days
Posted on 04-22-05 02:55 AM Link | Quote
Damn. One of my two major goals in SMW hacking shot down the crapper.

Are any of the others possible without a significantly large rewrite?
Shyguy
The Original Femme Fatale!
Level: 57

Posts: 679/1998
EXP: 1443008
For next: 42920

Since: 02-14-05

Since last post: 2 hours
Last activity: 1 hour
Posted on 04-22-05 02:59 AM Link | Quote
ASM is hard, cow. I refuse to learn ASM because of it. If you have a full handle on ASM, you can Make SMW into anything!
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

Current list of BURNING FURY >8( recipients:
- Yiffy Kitten (x2)
- Xkeeper
Level: 53

Posts: 790/1261
EXP: 1094149
For next: 62970

Since: 03-15-04
From: Blobaria
Special Move: Rising Meatloaf Backhand Combo

Since last post: 21 hours
Last activity: 1 hour
Posted on 04-22-05 03:00 AM Link | Quote
Originally posted by ||bass
I suspect that the graphical engine for SMW would require a signifigant rewrite in order to allow for an effect like the fuzzy effect.
Try "total overhaul."

Basically, if the game wasn't designed with the SuperFX in mind from the beginning, don't even bother. You'd need to learn a completely new programming language anyway, since the SuperFX is just a custom 16-bit CPU. I don't think any homebrew authors have ever attempted to use it...


(edited by BMF3PO on 04-21-05 10:05 AM)
DisruptiveIdiot

Paratroopa
Level: 21

Posts: 73/147
EXP: 42614
For next: 7329

Since: 04-09-04

Since last post: 4 days
Last activity: 5 hours
Posted on 04-22-05 03:12 AM Link | Quote
Originally posted by BMF3PO
Originally posted by ||bass
I suspect that the graphical engine for SMW would require a signifigant rewrite in order to allow for an effect like the fuzzy effect.
Try "total overhaul."

Basically, if the game wasn't designed with the SuperFX in mind from the beginning, don't even bother. You'd need to learn a completely new programming language anyway, since the SuperFX is just a custom 16-bit CPU. I don't think any homebrew authors have ever attempted to use it...


Something tells me no one has lost every bit of their sanity yet, otherwise someone would've been crazy enough to attempt such a feat.
XPeter

Fuzz Ball
Level: 42

Posts: 371/963
EXP: 501695
For next: 19667

Since: 01-24-05
From: South Ireland

Since last post: 1 hour
Last activity: 26 min.
Posted on 04-22-05 03:14 AM Link | Quote
Wasn't a similar effect used in SMB2 right after entering a warp thingy?
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

Current list of BURNING FURY >8( recipients:
- Yiffy Kitten (x2)
- Xkeeper
Level: 53

Posts: 791/1261
EXP: 1094149
For next: 62970

Since: 03-15-04
From: Blobaria
Special Move: Rising Meatloaf Backhand Combo

Since last post: 21 hours
Last activity: 1 hour
Posted on 04-22-05 03:18 AM Link | Quote
No, that wavy effect was a simple HDMA trick, done by scrolling individual scanlines left and right. I put a similar effect in Super Mario Odyssey, in the Yellow Switch Palace.
||bass
Programmer Admin
Level: 44

Posts: 325/817
EXP: 570813
For next: 40472

Since: 03-15-04
From: Salem, Connecticut

Since last post: 26 days
Last activity: 11 days
Posted on 04-22-05 03:43 AM Link | Quote
The exploding mushroom sprite and changing the dot colors both seem reasonable. The rest are probably asking for far too much, even for a seasoned 65816 asm programmer.
d4s

Panser
Level: 29

Posts: 179/325
EXP: 142151
For next: 5734

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 04-22-05 04:09 AM Link | Quote
Originally posted by ||bass
Anything is possible, but I think it would be obscenely difficult to implement. The fuzzy effect uses a SuperFX2 graphical effect. Although ZSNES seems to have no problem with the usage of SuperFX2 instructions in games not designed for it, I suspect that the graphical engine for SMW would require a signifigant rewrite in order to allow for an effect like the fuzzy effect.


wrong.
have you actually had a look at the effect?

gotta love it when people make assumptions and sell them as hard facts.
this is not against you personally, ive already seen various people do it here on he board.
its just annoying.

anyway, the fuzzy effect has ABSOLUTELY NOTHING to do with the super fx, and could be done in almost every other snes game.
what you see is a clever trick using hdma and the v-irq.
this is how it works:

1.) there are two hdma channels used that update the bg2 horizontal and bg2 vertical scroll registers on a per-scanline basis.
that means every time the snes has rendered a scanline(horizontal line, 1 pixel height), these registers are updated using precalculated tables.
this makes bg2 morph smoothly.

2.) the v-irq is set up to trigger every 8 pixels rendered (thats the fastest the snes can do).
that means every time 8 pixels on a horizontal line are rendered, the bg1 vertical scroll register is updated according to a table.
thats how the floor seems to wave up and down all the time.

although its sometimes hard to differentiate between hdma and v-irq (theres a h-irq aswell, but its only useful if you want to update more than 2 registers mid-frame, otherwise, hdma is faster) effects, you have to understand that they work totally different.
to create the aforementioned bg2 effect, you just have to set up 2 hdma channels by pointing to a data table and setting the target ppu register.
the snes will then execute the list automatically when the next frame starts.
this will result in about 224(forgot how many lines are rendered exactly) short cpu halts each frame.

the v-irq, however, will trigger each 8 pixels on every scanline, thats about 32*224 times each frame.
you have to time your v-irq very well to not exceed the available cycles.

that means that a high frequency v-irq will consume much computing power and thats one of the reasons its used rather rarely.

to answer your question:
yes, its possible to include that effect in super mario world.
although the effect itself can be a daunting task for beginners, it should drop into smw rather smoothly if you are familiar with irqs etc.
you just have to be careful because smw uses the irq to handle bg3 scrolling (bg3 water, for example), but thats it already.
be warned that this will slow the game way down, though!

fun stuff:
to see how much the game will slow down when the irq is triggered at maximum frequency, immediately return from the irq once it triggers.(for starters: change file adress 0x375(thats SNESLO $00:8375) in a rom without header from $78 to $40)
and try my fastrom patch for increased execution speed and less slowdowns!


to make a long story short:
if you can handle hdma and irq timing, im sure you will be able to make this stuff happen in smw.
whats gonna be the really hard part is the physics(making mario tumble across the screen and making sprites interact with the morphing background).


oh, and to prove that this kind of effect has nothing to do with the super fx, run the battletoads in battlemaniacs rom and pay close attention to the waving flag in the intro.
see?
thats about the same effect, just used for something different.

geez, sometimes i wish the snes had the same capabilities as similar arcadebased hardware such as xexex.
i dont know if xexexs cpu is so fast that it can change registers using a triggered v-irq every other pixel or if theres something like v-dma available to the game.
that would rock for sure!
i have to look that up in the mame source



(edited by d4s on 04-21-05 11:15 AM)
(edited by d4s on 04-21-05 12:25 PM)
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 451/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 04-22-05 07:14 AM Link | Quote
I was pretty sure the SFX chp was used rarely, and only in boss battles, but I could be wrong. The slowdown could be to an advantage, actually, because wouldn't mario be a little dizzy and isoriented, slowing things down for him and making him feel woozy? The player would then feel the same. Also, do sprites actually touch the GFX part of the level, or only the memory map? if so, scroll only the GFx and there wouldn't be any problems with sprites, right? it might look neat if you could pull it off right!
MathOnNapkins

Math n' Hacks
Level: 67

Posts: 1762/2189
EXP: 2495887
For next: 96985

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 04-22-05 11:27 AM Link | Quote
I'd say knowingly slowing the game down to achieve an effect is just bad programming.

I love how d4s posts in these topics technical details no one is ever going to use in this forum.
d4s

Panser
Level: 29

Posts: 180/325
EXP: 142151
For next: 5734

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 04-22-05 03:47 PM Link | Quote
Originally posted by MathOnNapkins
I'd say knowingly slowing the game down to achieve an effect is just bad programming.

I love how d4s posts in these topics technical details no one is ever going to use in this forum.


well, even if no one makes use of the information provided, its still funny to talk about it, isnt it?

Kyoufu Kawa
I'm not bad. I'm just drawn that way.
Level: 70

Posts: 1450/2481
EXP: 3008456
For next: 7355

Since: 03-19-04
From: Catgirl Central

Since last post: 14 hours
Last activity: 13 hours
Posted on 04-22-05 08:18 PM Link | Quote
Originally posted by d4s

well, even if no one makes use of the information provided, its still funny to talk about it, isnt it? ;
I think you just enjoy coredumping details like that.

Did you know that I actually take the effort to memorize it all? You never know when you'll need it.
blackhole89

LOLSEALS
Moderator of ROM hacking
EmuNET IRC network admin
Head GM of TwilightRO
Level: 47

Posts: 665/971
EXP: 739208
For next: 26995

Since: 03-15-04
From: Dresden/Germany

Since last post: 14 hours
Last activity: 12 hours
Posted on 04-22-05 08:28 PM Link | Quote
The main problem about it is not the graphical effect... it's not all that hard, as d4s described... the problem are the gameplay-effective modifications that have to be done. If you remember, the dizzy effect in YI
- actually gave the ground that wavey shape, or, in other words, adapted the collision detection to what you see
- crappified the controls
- allowed some interesting effects that aren't possible in "sane mode", like doing the float jump backwards (i.e. Yoshi faces the left while floating to the right)
Neither of these could be done without very deep modifications to the SMW engine. The first one would include totally rewriting the collision detection routine.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 4249/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 04-22-05 11:04 PM Link | Quote
Yes, that's the biggest problem. The floor might wave up and down, but Mario wouldn't.

Also SFX would have been used for any sprite rotation, so not just boss battles. There's a few levels with rotating sprites, the pause screen, etc...
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Would this be possible with ASM? | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.009 seconds.