Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
Acmlm's Board - I2 Archive - - Posts by BMF98567 |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
User | Post | ||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 61/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 |
| ||||||||||||||||||||||||||||||||||||||
Warning: the next flame (jason) or flamebait (fudge01) posted in this topic gets it locked. Play nice. | |||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 62/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 |
| ||||||||||||||||||||||||||||||||||||||
I think it would be great if someone could design a "universal" editor that uses template files to define how a game's level data is stored. That would probably take a lot of work, though, considering how vastly different level data formats can be. But even if it was just a simple "shell," it would make designing an editor much easier, since you'd already have the GUI programming out of the way. | |||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 63/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 |
| ||||||||||||||||||||||||||||||||||||||
WARNING: This is only for people who are experienced with ASM. It involves directly modifying game code and utilizing palette hacks. HDMA is a powerful feature of the SNES that allows you to modify PPU registers while the screen is being drawn. A great deal of games use this to create a wide variety of special effects, such as background gradients, wavy underwater areas, and pseudo-multi-layer scrolling backgrounds (it's only one background layer, but it's split into multiple rows that scroll at different speeds). In this mini-tutorial, I'm going to show you how to create multiple levels of scrolling out of a single background layer, adding a great deal of depth to an otherwise flat background! You'll need: - Two files: hdmamain.bin and hdmasub.bin, both here - SMW ROM with my Palette-Based ASM System already installed - Hex editor - A bit of patience First, you'll need to patch one of SMW's main routines to set up the necessary HDMA registers. Insert hdmamain.bin into an unused part of the ROM, then modify the JSL at PC address $2495 (should be 22 00 80 7F) to point to the first byte of this new routine. Next, insert hdmasub.bin into another unused part of the ROM (if you plan to use multiple HDMA effects, I suggest you reserve a sufficient amount of ROM space using RATS tags). This is the actual code that will control your HDMA effects. However, before you can use it, you need to make some important changes. A few key addresses in hdmasub.bin you need to know about: $0B: (#$07) This is the size of your HDMA table + PPU register byte, minus 1 (more on this in a bit). It specifies how many bytes will be copied into RAM. Minus the PPU register byte at the beginning and the zero byte at the end, an HDMA table's size will always be divisible by 3. Remember that. $0D: (#$0040) This is the starting ROM address of your HDMA table + PPU register byte. The code already takes care of the bank byte, so you just need to put the lower 16 bits of the address here (but make sure the table remains in the same ROM bank as the rest of the code!). $40: (#$0F) This is the lower byte of the PPU register that will be modified by HDMA (the upper byte is always #$21). It's set to $210F, "bg2hofs" (layer 2 horizontal offset) here by default. $41: This is the actual HDMA table. It consists of multiple 3-byte entries and a zero byte (#$00), which marks the end of the table. The first byte of each entry specifies for how many scanlines the following two bytes will be written to the previously specified PPU register. Example: 58 50 00 7E 72 01 00 In this example, the first entry will write #$0050 to PPU register $210F for 88 (0x58) scanlines, whereas the second entry will write #$0172 for 126 (0x7E) scanlines, starting immediately on line 89. The last byte marks the end of the table (HDMA shuts off here). Make sure you don't exceed 0x80 scanlines in any single entry, as this will cause HDMA to break; if you need more lines, use two entries. The above table would cause the first 88 lines of layer 2 to be shifted to the right by 80 pixels, and the remaining lines to be shifted by 370 pixels (even though only 126 scanlines were specified, the rest of the layer will be shifted as well, because SMW does not reset the scroll register after HDMA has finished). Now, that's all fine and dandy if you want to leave the background skewed just like that for the entire level, but what if you want the layers to actually move when the screen scrolls? That's why the table is copied to RAM: so you can modify it on-the-fly! This brings us to the hardest part of this tutorial: $19: This is where you'll put your ASM code that will modify the HDMA table in RAM, which starts at $7FFF01 (remember this address!). Modifying the table each frame will allow you to create the illusion of multiple "layers" that scroll at different speeds. How you modify the table is entirely up to you, but I've included some code that should help get you started. The included example code in hdmasub.bin demonstrates 4 background rows moving at 3 different speeds. It loads the 16-bit layer 2 X-scroll value from $1466 and writes it to HDMA entry #4, at $7FFF0B (this part will scroll at normal speed). It then shifts the value right by one bit, and writes it to entries #1 and #3, at $7FFF02 and $7FFF08, respectively. The value is finally shifted by one more bit, and then written to entry #2 at $7FFF05 (this part will scroll the slowest). The final result is a simulated 3-layer background, with each "layer" moving at a different rate when layer 2 scrolls left or right. (You'll need to set horizontal scrolling to "Variable" in Lunar Magic to see this effect properly.) Once you've written your ASM code, it's time to test it out. All you have to do is link to the first byte of hdmasub.bin, wherever you inserted it in the ROM, via a palette entry in Lunar Magic (read the documentation included with the Palette-Based ASM System for detailed information on how this is done). The code will take effect immediately after your level loads. If you want to use multiple HDMA effects (different ones for different levels), just insert more copies of hdmasub.bin and modify as needed. That's about it! Unfortunately, there are a few side effects of using HDMA in this manner, which I haven't bothered to address yet: - Some things will temporarily disable HDMA and cause the background to revert to normal scrolling (such as dying). - You can't have a keyhole or goal in the same level number as your HDMA effect, otherwise the zooming keyhole or circle (after you pass the goal) will glitch up and turn the screen black. This won't lock up or crash the game, but it doesn't look good. I need to implement a way to disable custom HDMA when these events happen. I don't believe text boxes are affected by this phenomenon, and I'm not sure about layer 3 effects (like scrolling water or rocks). More testing needs to be done. - You must set layer 2's vertical scrolling to "None" when using HDMA, otherwise the layer will scroll vertically...but the HDMA splits won't. Icky. This can be addressed with some clever programming, but I'm not even going to try to figure it out. - Make sure any levels connected via pipes or other exits to the level with HDMA have custom palettes enabled, otherwise the HDMA effects might not shut off (since the palette entry isn't reset)! |
|||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 64/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 |
| ||||||||||||||||||||||||||||||||||||||
Your RGB values are being changed because SNES colors use 5 bits per channel. This provides only 32 levels of intensity for each channel, and not a full 256. Lunar Magic takes this into account by rounding RGB values to the nearest multiple of 8. As for the secondary entrance problem, do you mean in the game itself or Lunar Magic? If it's the latter, that's not a bug, either. More secondary entrances means more objects to draw on the screen, which takes extra CPU cycles, especially if you're using transparent text (check out levels 0 and 100 if you want to see *really* slow rendering). You can press F6 to hide secondary entrances if it gets too slow. |
|||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 65/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 |
| ||||||||||||||||||||||||||||||||||||||
I warned you guys... *CLOSED* |
|||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 66/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 |
| ||||||||||||||||||||||||||||||||||||||
Originally posted by MathOnNapkinsThat sounds right. $2118 writes to the lower 8 bits of the current VRAM address, while $2119 writes to the upper 8 bits (AFAIK, VRAM is always 16-bit). Bit 7 of $2115 is set, so the address auto-increments after $2119 is written to. |
|||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 67/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 |
| ||||||||||||||||||||||||||||||||||||||
DUDE. I am soooooooo turning Super Mario Odyssey into a cart when I'm done. | |||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 68/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 |
| ||||||||||||||||||||||||||||||||||||||
Er, yeah, I saw that a while ago, using ResHack...it's either an unfinished feature or a really well-hidden one (hopefully the latter). It looks like it converts a background tilemap from another SNES game (probably from a savestate) to Map16 data, which would make importing backgrounds effortless... Perhaps his debug copy has this feature enabled, and that's what he used to import some of DW:TLC's backgrounds? [EDIT] Dude...I just found something new: Uifo!tippu!gps!uif!tubst/// Shifting each character's ASCII code back by 1 reveals: Then shoot for the stars... Buh...? This program is so full of dark secrets, it's creeping me out... (edited by BMF54123 on 03-27-04 02:32 AM) |
|||||||||||||||||||||||||||||||||||||||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 69/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 |
| ||||||||||||||||||||||||||||||||||||||
I don't think anyone's figured out how to activate the Amy icon yet. I tried that "Then shoot for the stars..." code in every conceivable dialog box that would accept it, but nothing seemed to happen (it almost sounds like a response to "The world is not enough!", and it's stored in the same shifted ASCII format in the executable). I did find another secret, though: after doing the "Amy is cute!" code (here) and hitting "Ignore" in the German dialog box, I went back to the Change Events Passed dialog and typed "poisson" (without quotes). I hit Escape, and the bottom of the window said "...wark?" (edited by BMF54123 on 03-27-04 05:27 AM) |
|||||||||||||||||||||||||||||||||||||||
(restricted)
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 71/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
|
Welcome back, dude. Long time no see. |
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 72/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
|
Originally posted by Akane-chanNo, you didn't. That post was 0% helpful and 100% spam. Pitiful. I'm gonna be keeping a close eye on things here, and if I continue to see posts like this, I'm gonna knock some heads. This applies to everybody, not just Akane-chan. Think POSITIVE AND HELPFUL, folks! Nobody's born a seasoned ROM hacker!
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 73/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
|
Blech! I did the codes to make the Chocobo icon appear, and now it's stuck there and won't go away...so I'm stuck using "Wark! Wark! Wark!" instead of Lunar Magic. |
Not that it's an incredibly big deal or anything, but does anyone know how to get the moon icon back? (restricted) | (restricted) |
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 76/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
|
Thanks, Smallhacker! I've got my moon back. |
(FYI, it was #2 - changed 0x25ffefff to 0x21ffefff) (restricted) | (restricted) |
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 79/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
|
SMW's SRAM is 2KB in size, and the space from $70035A to $7007FF (the end of the file) is unused, filled with #$FF. |
BMF98567 |
BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 80/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
|
cpubasic13: I strongly suggest you get rid of that background image. It does nothing to improve the look of your layout, and the text is hard to read when it interferes with the status bar. I keep having to highlight your posts to read them, which is BAD. |
[EDIT] ...um, okay, am I the only one seeing this mystery image in his layout? http:\\www.freewebs.com\cpubasic13\bckgd.GIF (cut n' paste the URL) It's specified as his background image. Normally Freewebs doesn't allow external image linking, but I'm seeing it anyway... (edited by BMF54123 on 03-29-04 10:20 PM) |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
Acmlm's Board - I2 Archive - - Posts by BMF98567 |