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 - Join the HDMA Revolution! | |
Pages: 1 2 3 4Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 08-25-05 12:30 PM Link | Quote
you may have noticed that lately, everybody seems to be talking about hdma.
blablah hdma here, hdma there, everywhere.
but what is it, actually?

in a nutshell, its a hardware feature of the snes that enables you to change graphics registers mid-frame.
you can use it to create wavey backgrounds, color gradients, fancy window effects
if (and here comes the tricky part) you know how to use it.
usually, you need to have a very good understanding of both the snes' hardware and 65816 assembler to even think about using hdma.

and that is where my new project comes in:

a complete hdma effects kit for smw, usable without any knowledge of asm or hdma at all!!

you will be able to assign various special effects to each level and the overworld levels individually with a mere change of a textfile.

more sophisticated users will even be able to create their own custom effects and implement them into their hack, again, without any programming knowledge.

this will first be featured in ice mans upcoming smw hack, then released later as a kit for everybody to enjoy.

here's an example gif animation of whats actually possible with this,you can almost feel the hot air spreading from the lava fields below. =)
ive slowed it down a bit for you to observe.
http://bof2.supernes.de/images/smw_lava_ani.gif(gif file, 1.5mb)

and here are some additional screenshots to feast your eyes on:

slowly moving water:


a forest covered with fog:


nice blue sky:


a bright forest:


forget the 4 colors layer 3 limitation, here
comes the fully shaded statusbar!


if you have suggestions for other effects, dont hesitate to post them here.
asdf

Cukeman
Level: 28

Posts: 237/303
EXP: 128796
For next: 2542

Since: 03-16-04

Since last post: 5 hours
Last activity: 54 min.
Posted on 08-25-05 12:41 PM Link | Quote
Wow, I'd never thought SMW hacking would go this far. Before you know it, we'll be dealing with Mode 7 effects. Just how extreme can the wavy effects get? Is stuff like the lava effect the limit, or can you go as far as the fuzzy effect from Yoshi's Island (even if it's just an illusion)?
Keikonium
Banned
Level: NAN

Posts: 2411/-2459
EXP: NAN
For next: 0

Since: 04-02-04

Since last post: 63 days
Last activity: 9 hours
Posted on 08-25-05 01:03 PM Link | Quote
Shaded Status Bar

!

HOLY CRAP!!!!!!!!!!!!!!

That fucking rocks man. Are you going to release any patches that contain this stuff or at least the staus bar stuff?

~EDIT~

I just read that you are going to!


(edited by Keikonium on 08-25-05 04:05 AM)
blackhole89

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

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

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

Since last post: 14 hours
Last activity: 12 hours
Posted on 08-25-05 02:21 PM Link | Quote
Originally posted by asdf
Wow, I'd never thought SMW hacking would go this far. Before you know it, we'll be dealing with Mode 7 effects. Just how extreme can the wavy effects get? Is stuff like the lava effect the limit, or can you go as far as the fuzzy effect from Yoshi's Island (even if it's just an illusion)?

Mode 7 is an entirely different business than HDMA. Whilst the latter can be added in an easy to every persistent game, the first is an entirely different graphics mode, which means
- Different graphics data format.
- No multilayering.
- Limited sprite count on screen.
- Different control registers.

Also, the knowledge required for using these effects was there for quite a while already... just look at BMF's SMO demo 2 (wavey background effect) or some screenshots of SMW:ALttP I posted aeons back (Status bar (almost, as the message box is the same layer) and really busted old BG gradients). It was just that all of us were too lazy to make something really spectacular like these out of it.

Great work, d4s . I hope this will bring the SMW hacking community back from its half-dead state at last...
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

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

Posts: 1097/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 08-25-05 03:12 PM Link | Quote


Wow. I may just have to ditch my crusty old HDMA system for this.

With this system, can you use your own code to manipulate the HDMA? I'd like to keep my multi-layered cave backgrounds and auto-scrolling clouds.

Also (probably a dumb question, knowing you), does this work on a real SNES?
MathOnNapkins

Math n' Hacks
Level: 67

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

Since: 03-18-04
From: Base Tourian

Since last post: 1 hour
Last activity: 32 min.
Posted on 08-25-05 03:18 PM Link | Quote
Since I have never worked with HDMA directly, just enough to get by. I must ask what the hell this wavy effect is induced by. I assume you are just modifying the scroll registers for certain backgrounds every frame d'oh I mean scanline.


(edited by MathOnNapkins on 08-25-05 06:18 AM)
Kyoufu Kawa
I'm not bad. I'm just drawn that way.
Level: 70

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

Since: 03-19-04
From: Catgirl Central

Since last post: 14 hours
Last activity: 13 hours
Posted on 08-25-05 04:06 PM Link | Quote
Originally posted by MathOnNapkins

Since I have never worked with HDMA directly, just enough to get by. I must ask what the hell this wavy effect is induced by. I assume you are just modifying the scroll registers for certain backgrounds every frame d'oh I mean scanline.
Like on nearly every system, I suppose it does
Bio

Buster Beetle
Level: 27

Posts: 224/458
EXP: 107144
For next: 9015

Since: 07-06-05
From: a laboratory somewhere... Waiting to be completed

Since last post: 8 hours
Last activity: 5 hours
Posted on 08-25-05 05:40 PM Link | Quote
Could a cutom block can initianilise a HDMA effect? I would like to create a block that do the dizzy effect like in yoshi island, and why ice man gonna have it before everyone?


(edited by Bio on 08-25-05 09:36 AM)
dan

Snap Dragon
Level: 43

Posts: 701/782
EXP: 534516
For next: 30530

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 08-25-05 07:36 PM Link | Quote
Originally posted by Bio
Could a cutom block can initianilise a HDMA effect? I would like to create a block that do the dizzy effect like in yoshi island, and why ice man gonna have it before everyone?


Presumably because he is his friend. Makes perfect sense to me.
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 2022/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 08-25-05 07:39 PM Link | Quote


A program which allows you to add HDMA without ASM, and even make new effects, also without ASM? Holy...

Question: Will creating new effects be a window in the program or something where you choose from drop down menus?
[Scanline 69] [Move Layer] [Layer 2] [Left]
[Scanline 71] [Move Layer] [Layer 2] [Right]
[Scanline 204] [Add color green] [Layer 2] [25%]
...or will there be some form of simplified programming language?
Scanline69:
Movelayer (2,-1,0)
Scanline71:
Movelayer (2,1,0)
Scanline204:
Colorlayer (2,0,255,0,25)
...or will it be something else?

By the way... Shaded itembox = über-w00tness
blackhole89

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

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

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

Since last post: 14 hours
Last activity: 12 hours
Posted on 08-25-05 09:12 PM Link | Quote
@Smallhacker, if it all, it would look like
Channel 3: WriteTo (L2HorizontalShift)
begin
69: X-14
71: X+15
204: X-14
end

Channel 4: WriteTo (FixedAdditionColor)
begin
0: 0
50: 123123
end

As far as I know, channels 3 and 4 are the only entirely unused (H)DMA channels in SMW... and for changing palette colours, you need both of them in most cases (one for working the CGRAM address register and one for the colour IO register). If you turn your effects off in situations where the channel is used by SMW though (like the level ending fadeout), you might come to use a few more.
Besides that, learn assembler at last. It is and always will be the better choice against scripting.


(edited by blackhole89 on 08-25-05 12:14 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 08-25-05 09:15 PM Link | Quote
Holy Fuck. I know which HDMA version I'm using for COTMK 2. Man, your possibilities are endless! No more crashing HDMA palette edits, that's for sure! Oh, and you ARE allowed multiple HDMA effects a level, right? Mixing the itembox HDMA with another one would be fuckin' sweet!
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 08-25-05 09:22 PM Link | Quote
Originally posted by BMF54123


Wow. I may just have to ditch my crusty old HDMA system for this.

With this system, can you use your own code to manipulate the HDMA? I'd like to keep my multi-layered cave backgrounds and auto-scrolling clouds.

Also (probably a dumb question, knowing you), does this work on a real SNES?


no, i currently dont support external code and i dont plan to, i'd like to keep it as
simple and uncomplicated for the user as possible.
i dont think it will be hard for you to add your code in, though.

it does work on the snes, but tends to slow down if multiple scroll tables are used in a level.
thats because emulators allow more code to be executed per frame than actually possible on the snes.
im working on this.


Originally posted by MathOnNapkins
Since I have never worked with HDMA directly, just enough to get by. I must ask what the hell this wavy effect is induced by. I assume you are just modifying the scroll registers for certain backgrounds every frame d'oh I mean scanline.


yeah, thats what hdma does.
you set up a table with scanline counts and values to write and it gets processed the next frame. very simple, actually.


Originally posted by Bio
Could a cutom block can initianilise a HDMA effect? I would like to create a block that do the dizzy effect like in yoshi island, and why ice man gonna have it before everyone?


theoretically yes, but i havent implemented that yet.
i might, though, maybe using a simple override flag or something like that.
youd have to program the custom blocks yourself, though.
in the first place, i thought about making it work with custom blocks only, but ice man kept on whining how buggy and hard to use they were and
i dont like my code to depend on the code of others, especially if its buggy.
using custom blocks would also make the installation process much harder and tedious to insert into the levels. (youd have to place blocks that switch stuff on at every starting point and ones that switch it off at every level exit.)

ice man gets it first because he asked first.
im usually not taking requests, though.
i was just in a good mood and i knew it would take too long, anyway. (2 evenings of work so far)

Originally posted by Smallhacker


A program which allows you to add HDMA without ASM, and even make new effects, also without ASM? Holy...

Question: Will creating new effects be a window in the program or something where you choose from drop down menus?



theres no program per se.

as i said, you're going to edit a textfile that contains 4 bytes of properties(effects enable flags and number of hdma table to use for each effect) per level and hit a batch file that triggers a compiler wich in turn inserts it into the rom.

if you'd like to write an external windows-based program to edit the table, youre welcome to do so, of course. =)





(edited by d4s on 08-25-05 12:23 PM)
(edited by d4s on 08-25-05 12:24 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 08-25-05 09:30 PM Link | Quote
So, how it the txt file laid out? like this:

1234
0234
1234
.
.
.

Or is it more:
123402341234...,

Or is it something else?

@blackhole: What about 2 reg write twice, writing the same number to the CGRAM selection register twice? You'd only need one entry, but that's with BMF's HDMA code.
ExKay
Somebody set up us the bomb!
Level: 50

Posts: 932/1114
EXP: 908268
For next: 39049

Since: 03-15-04
From: Hannover, Germany

Since last post: 14 hours
Last activity: 1 hour
Posted on 08-25-05 09:57 PM Link | Quote
I hope you don't mind me posting it, d4s.

The format is as follows:

;level $0000 ;<---level number
.db $%00000000 ;<---bitflags
;bit 0 set=enable hdma
;bit 2 set=enable hdma wave on bg1
;bit 3 set=enable hdma wave on bg2
;bit 4 set=enable hdma cgadsub

.db $00 ;<---number of bg1 hdma update table

.db $00 ;<---number of bg2 hdma update table

.db $00 ;<---number of cgadsub hdma update table



(edited by Ice Man on 08-25-05 12:58 PM)
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 08-25-05 11:07 PM Link | Quote
Originally posted by Ice Man
I hope you don't mind me posting it, d4s.



in order to avoid confusion, i decided not to post it because the format isnt final yet.
most likely, the bitflags will be swapped and if i include additional stuff, they will be extended.
apart from that, thats how a table entry will look like, yes.




(edited by d4s on 08-25-05 02:11 PM)
(edited by d4s on 08-25-05 02:15 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 08-25-05 11:33 PM Link | Quote
Responding to your first post, one idea for an HDMA effect would be a desert heat wave, out of MMZ1 (RMZ1 to those who'd prefer it's japanese name) for GBA, in the desert area.
ExKay
Somebody set up us the bomb!
Level: 50

Posts: 933/1114
EXP: 908268
For next: 39049

Since: 03-15-04
From: Hannover, Germany

Since last post: 14 hours
Last activity: 1 hour
Posted on 08-25-05 11:47 PM Link | Quote
I have another suggestion: Scrolling water like in DKC2.
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 08-26-05 12:36 AM Link | Quote
Originally posted by Sukasa
Responding to your first post, one idea for an HDMA effect would be a desert heat wave, out of MMZ1 (RMZ1 to those who'd prefer it's japanese name) for GBA, in the desert area.


Originally posted by Ice Man
I have another suggestion: Scrolling water like in DKC2.



screenshots and more details, please.
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 08-26-05 12:42 AM Link | Quote
In MMZ1, the desert are has a background that has certain points where the scroll settings are changed, but instead of having the scroll settings changed, the scanline counts are changed to give the illusion of heat distorting the background. Unfortunately, I can't get any useful screens of the effect.
Pages: 1 2 3 4Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Join the HDMA Revolution! | |


ABII


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



Page rendered in 0.021 seconds.