Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Super Mario World hacking: |
Acmlm's Board - I2 Archive - Super Mario World hacking - Experience the HDMA Revolution! [Release] | | | |
Pages: 1 2 3 4 | Add 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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by Sukasa 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 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 |
| ||
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 |
| ||
Originally posted by BMF54123 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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by smwedit 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 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 |
| ||
Originally posted by d4sok, I know which table file you are talking about, but what part do I change?Originally posted by smweditchange their behaviour in the corresponding hdma table. |
|||
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 |
| ||
Originally posted by smweditOriginally posted by d4sok, I know which table file you are talking about, but what part do I change?Originally posted by smweditchange their behaviour in the corresponding hdma table. 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 |
| ||
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 |
| ||
Originally posted by Caboose -1 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 |
| ||
Originally posted by d4sOriginally posted by Glyph Phoenix |
|||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Originally posted by Glyph PhoenixOriginally posted by d4sOriginally posted by Glyph Phoenix |
|||
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 |
| ||
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 4 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Super Mario World hacking - Experience the HDMA Revolution! [Release] | | | |