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 - Experience the HDMA Revolution! [Release] | |
Pages: 1 2 3 4Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
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: 6902/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 09-07-05 08:48 AM Link | Quote
I tell you what needs to be done... A bunch of us need to get together and optimize the hell out of SMW's code, so that we could actually add things without slowing it down. (And free up some ROM space. ) I don't suppose anyone has code for measuring a SNES's CPU usage? It could come in handy. (I know how an emulator could measure it, but I'm more interested in how to do it in-game... Super Mario RPG does it.) Knowing how much free memory we have to work with would help too. Heck, maybe we could make it an SA-1 game; having a fast second CPU to do some of the heavier math and such would be a big help, and SA-1 is just another 65816 so the only problem would be how to interface with it (I'm sure any emulator's source code would tell you how).


(edited by HyperHacker on 09-06-05 11:49 PM)
Glyph Phoenix

Level: 39

Posts: 547/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-07-05 09:01 AM Link | Quote
It's a nice idea, but it'd be a massive amount of work, not to mention likely LM incompatibility...
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: 6913/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 09-07-05 11:47 AM Link | Quote
It should retain most compatibility as long as no data is moved or reformatted. It'd just be replacing large/commonly-used subroutines with faster versions. A fair bit of work, sure, but not too hard for a group project. Each person goes through different parts of the code and writes optimized versions of slow routines (or where the change is minimal, like changing 'lda #0, sta $blah' to 'stz $blah', just hex-editing the ROM directly), then one person assembles and places all the new code and compiles all their changes to the ROM together to ensure compatibility.
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-07-05 12:02 PM Link | Quote
Originally posted by Sukasa
Ehh, not too sure I like this. It's going to be useless for me since I've already started on a hack, and besides, the two status bar gradients can't be used together, which is a real downer.


you can copy your hack to a fresh rom, like glyph phoenix said.
i know its not an optimal solution, but currently, i cant help it.
the problem here is that you're most likely overwriting existing level data/graphics lunar magic put into an expanded rom if you're patching my hdma stuff to your hack.
the hdma routines and data require one lorom bank minimum, plus one bank for your hdma tables, that means it cant be fitted into the normal 4mbit smw rom.

and its not possible for the snes to use two color gradient effects at the same time, no.
what you can do is combining different tables into one, though.


Originally posted by HyperHacker
It should retain most compatibility as long as no data is moved or reformatted. It'd just be replacing large/commonly-used subroutines with faster versions. A fair bit of work, sure, but not too hard for a group project. Each person goes through different parts of the code and writes optimized versions of slow routines (or where the change is minimal, like changing 'lda #0, sta $blah' to 'stz $blah', just hex-editing the ROM directly), then one person assembles and places all the new code and compiles all their changes to the ROM together to ensure compatibility.


its not that smw was coded that badly.
theres always room for improvement, but by just changing some lda, sta's to stz's, there will certainly not be any notable speed difference at all.
besides, theres often a reason the original programmers chose to not use stz.
you cant access 24bit adresses with it, for example.

i think we all agree that sprite handling is the most time-consuming task smw does.
to significantly speed that up, you'd have to completely recode and redesign how sprites are handled by the game.

and it remains to be seen if you can actually do that better than the original programmers.



(edited by d4s on 09-07-05 03:23 AM)
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

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

Posts: 1128/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 09-07-05 03:13 PM Link | Quote
Indeed. It's too bad the SNES had to use such a slooooooooooooooow clock speed. It's, what, about twice as fast as the NES in SlowROM mode?

And it's also too bad this has to be applied to a fresh ROM. There's no way I can possibly transfer all the changes I've made. I guess I'll just have to redo my own HDMA handler.

(Speaking of which, the first major thing I want to do is make HDMA effects follow the background's vertical scrolling. Could you possibly give me some tips on how to implement this? I tried to figure it out at work tonight, but ended up giving myself a headache...)
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-07-05 04:23 PM Link | Quote
Originally posted by BMF54123
Speaking of which, the first major thing I want to do is make HDMA effects follow the background's vertical scrolling. Could you possibly give me some tips on how to implement this? I tried to figure it out at work tonight, but ended up giving myself a headache...


well, it all started all out with that voodoo magic and...

no, seriously, it's really easy, hardly more than 6 lines of code.
the basic idea is to modify the scanline count of the first entry in the hdma table
to match the current scroll value of bg2.
bg2 scroll values in mario world range from #$60 to #$c0, thats a total range of #$60, obviously. thats convenient, cause scanline counts will always stays below the maximum of #$7f, otherwise we'd have to alter two entries in the hdma table (in case the scroll range would be greater than #$7f).

so we just load the maximum scroll value of #$c0, set the carry and substract the current bg2 scroll position and -bang!- there's our scanline count. =)
i'm incrementing the scanline count after that to make sure the scanline count is never zero, which would terminate the table, of course.

heres the code:

sep #$20
lda.b #$c0 ;load maximum bg2 v-scroll value
sec
sbc.w $0020 ;get bg2 v-scroll value
and.b #$7f ;mask off hdma repeat bit(never set anyway, but just to be on the safe side
inc a ;increment a so we always have at least one scanline in the count
sta.l SmwHdmaTable2

plp
rts


BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

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

Posts: 1129/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 09-08-05 01:54 AM Link | Quote
Hah, awesome. Thanks a lot.

The way I was trying to do it was really convoluted and stupid. I'm lousy at simplifying things...


(edited by BMF54123 on 09-07-05 04:55 PM)
Glyph Phoenix

Level: 39

Posts: 548/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-08-05 03:49 AM Link | Quote
d4s, what you really need to do is write a routine that checks RATS tags and 00's and such, similar to the routines LM and blocktool use, to find free space and use it. That would work, right? There are usually a few banks free in the LM expanded rom...
ExKeeper

Bullet Bill
Level: 31

Posts: 479/512
EXP: 180084
For next: 5279

Since: 03-05-05
From: Riiight ^

Since last post: 1 day
Last activity: 6 hours
Posted on 09-08-05 04:01 AM Link | Quote
the "bars" in 3d bars aren't big enough and they scroll too fast, coral capers has them spanning from the top of the screen to the bottom, and it is DKC, not DKC2
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-08-05 04:39 AM Link | Quote
Originally posted by smwedit
the "bars" in 3d bars aren't big enough and they scroll too fast, coral capers has them spanning from the top of the screen to the bottom, and it is DKC, not DKC2


1.) if the bars are too small or scroll too fast for you, change their behaviour in the corresponding hdma table.

2.) the level "coral capers" from dkc doesnt have any 3d bars.
when i say dkc2, i mean dkc2.
more specifically, the readme is referring to the 3d bars found in the level "lockjaws locker" from dkc2.
the other multilayer effect is imitating an effect found in the level "pirate panic" from the same game.

3.)bugreports are welcome, but at least try to get the facts straight first before complaining about everything.
geez.

Originally posted by Glyph Phoenix
d4s, what you really need to do is write a routine that checks RATS tags and 00's and such, similar to the routines LM and blocktool use, to find free space and use it. That would work, right? There are usually a few banks free in the LM expanded rom...


you are right, but that would require to have somebody whip up a win32 gui tool, something i am not capable of doing.
i hope someone finds the time to do that cause in its current form, the hdma kit will scare off most smw hackers due to its command-line and textfile-based nature, even though the actual process of integrating hdma effects is extremely simplified.

pretty sad actually, cause i put a lot of effort into optimizing the routines to the max, yet tried to make it usable for the casual smw hacker who doesnt know anything about programming.
oh well...



(edited by d4s on 09-07-05 07:52 PM)
(edited by d4s on 09-07-05 07:53 PM)
ExKeeper

Bullet Bill
Level: 31

Posts: 480/512
EXP: 180084
For next: 5279

Since: 03-05-05
From: Riiight ^

Since last post: 1 day
Last activity: 6 hours
Posted on 09-08-05 05:04 AM Link | Quote
Originally posted by d4s
Originally posted by smwedit
the "bars" in 3d bars aren't big enough and they scroll too fast, coral capers has them spanning from the top of the screen to the bottom, and it is DKC, not DKC2
change their behaviour in the corresponding hdma table.
ok, I know which table file you are talking about, but what part do I change?
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-08-05 05:11 AM Link | Quote
Originally posted by smwedit
Originally posted by d4s
Originally posted by smwedit
the "bars" in 3d bars aren't big enough and they scroll too fast, coral capers has them spanning from the top of the screen to the bottom, and it is DKC, not DKC2
change their behaviour in the corresponding hdma table.
ok, I know which table file you are talking about, but what part do I change?


sorry, i dont feel like spoon-feeding every bit of information over and over again, thats why i created the readme.
read it, and i really mean it.
it covers everything you need to know about table editing.
if there are questions left after reading and understanding what the readme says, feel free to ask.
but try to be specific.




(edited by d4s on 09-07-05 08:11 PM)
(edited by d4s on 09-07-05 08:14 PM)
cpubasic13
17 years old now. Time to buy some M rated games by myself!
Level: 54

Posts: 1325/1346
EXP: 1206934
For next: 26936

Since: 03-15-04
From: Blame my parents, Eddy

Since last post: 2 days
Last activity: 1 day
Posted on 09-08-05 08:02 AM Link | Quote
This isn't a hard program at all to use. It just takes some time to get right, but is powerful once you know what to do.

Great work d4s. Can't wait to see what else you can do.

One question: Where are the graphics for the new Nintendo logo found? Also, what if I wanted to change the color of the fade-out during pause? Where would I go to change that? Just being curious and strange.
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-08-05 01:32 PM Link | Quote
Originally posted by Caboose -1
This isn't a hard program at all to use. It just takes some time to get right, but is powerful once you know what to do.

Great work d4s. Can't wait to see what else you can do.

One question: Where are the graphics for the new Nintendo logo found? Also, what if I wanted to change the color of the fade-out during pause? Where would I go to change that? Just being curious and strange.


you can try searching for the nintendo tiles, tilemap and palette yourself, they are all in the same bank (lorom bank $11).
i might include a pcx to snes graphics converter in the next release, so you can just edit the logo using photoshop or whatever.

the fade out during pause doesnt have a color at all.
its a screen brightness decrease, it doesnt work like the color stuff for the gradients.
Glyph Phoenix

Level: 39

Posts: 551/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-08-05 02:08 PM Link | Quote
Originally posted by d4s

Originally posted by Glyph Phoenix
d4s, what you really need to do is write a routine that checks RATS tags and 00's and such, similar to the routines LM and blocktool use, to find free space and use it. That would work, right? There are usually a few banks free in the LM expanded rom...


you are right, but that would require to have somebody whip up a win32 gui tool, something i am not capable of doing.
i hope someone finds the time to do that cause in its current form, the hdma kit will scare off most smw hackers due to its command-line and textfile-based nature, even though the actual process of integrating hdma effects is extremely simplified.

pretty sad actually, cause i put a lot of effort into optimizing the routines to the max, yet tried to make it usable for the casual smw hacker who doesnt know anything about programming.
oh well...



Er... what would a win32 gui have to do with a routine that checks for bytes in a ROM?
dan

Snap Dragon
Level: 43

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

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 09-08-05 02:37 PM Link | Quote
Because it needs to be a program to actually check for free space, and having a GUI would make the thing more friendly (well, to people who are scared of the command-line).

It wouldn't be that hard to write implement probably, as the Lunar Compress DLL has RATS related functions that scan for free space and what not (which is what BlockTool uses).
Glyph Phoenix

Level: 39

Posts: 552/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-08-05 03:05 PM Link | Quote
That... that still doesn't make any sense.

See, needing a GUI for ease of use is a problem. Not checking for space in the SMW rom is a problem. They're two totally different problems.

I know the syntax for a RATS tag. I know how to check for 00 reading bytes. Hell, I could probably whip up a command line program to check for bytes, skip ahead when it reaches a RATS tag, and output an address where you could fit your code. Me. And I'm horribly inexperienced when it comes to program design.

d4s had to be extremely skilled to create this program. I don't get why he doesn't just whip up a section of code to do the same.
dan

Snap Dragon
Level: 43

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

Since: 03-15-04

Since last post: 20 hours
Last activity: 14 hours
Posted on 09-08-05 07:31 PM Link | Quote
Because maybe he doesn't know C/VB/Delphi to actually create a program?

As for RATS tags, you don't need to know the format of one. Lunar Compress has specific functions for looking for free space in ROMs that use RATS tags that hides away the little details like the format of the tags.
d4s

Panser
Level: 29

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

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 09-08-05 08:18 PM Link | Quote
Originally posted by Glyph Phoenix
Originally posted by d4s

Originally posted by Glyph Phoenix
d4s, what you really need to do is write a routine that checks RATS tags and 00's and such, similar to the routines LM and blocktool use, to find free space and use it. That would work, right? There are usually a few banks free in the LM expanded rom...


you are right, but that would require to have somebody whip up a win32 gui tool, something i am not capable of doing.
i hope someone finds the time to do that cause in its current form, the hdma kit will scare off most smw hackers due to its command-line and textfile-based nature, even though the actual process of integrating hdma effects is extremely simplified.

pretty sad actually, cause i put a lot of effort into optimizing the routines to the max, yet tried to make it usable for the casual smw hacker who doesnt know anything about programming.
oh well...



Er... what would a win32 gui have to do with a routine that checks for bytes in a ROM?


simple, because many people here are easily scared off by anything dos or command-line based.

i would do it myself and i'm sure it's not that much work if you know what youre doing.
i am fluent in 65816 and spc (and a bit super fx) assembler, but i dont know any high level languages and i dont have any experience at all with win32 apps.
thats why i'd rather ask someone else.
this might be a good chance to get into win32 stuff, though.
Glyph Phoenix

Level: 39

Posts: 553/745
EXP: 385876
For next: 18895

Since: 11-07-04

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-08-05 08:29 PM Link | Quote
This is byte-checking. You don't even need options. Just whip up a drag and drop batch program that checks for 00s and RATS tags. Or, if you can, use Lunar Compress. You're done.

Better to have a few users be turned off because even the simplest console is too much for them than to keep users from being able to patch HDMA to their existing hacks.
Pages: 1 2 3 4Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Experience the HDMA Revolution! [Release] | |


ABII


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



Page rendered in 0.032 seconds.