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
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
Posted on 03-24-04 02:30 PM, in Telefang 2 speed version Link
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
Posted on 03-25-04 12:11 AM, in GNGWin V0.5 Link
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
Posted on 03-26-04 02:20 PM, in Implementing HDMA effects via palette hacks (code included) [ASM] Link
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
Posted on 03-27-04 08:05 AM, in Various bugs... Link
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
Posted on 03-27-04 09:57 AM, in Telefang 2 speed version Link
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
Posted on 03-27-04 10:27 AM, in Memory Incrementing for SNES graphics Link
Originally posted by MathOnNapkins
Now, since the processor at that time had a 16-bit accumulator, is it reasonable to assume that if I write a word, say #XXXX to $2118, that word is identically mapped to the address in Vram, and since the accumulator also wrote to $2119 since it's 16-bit, that the Vram address is auto incremented?
That 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
Posted on 03-27-04 10:40 AM, in Update: Mario Kart R v1.1 released Link
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
Posted on 03-27-04 10:52 AM, in import SNES Tile map Screen to Current Map16 Page(in hex) Function? Link
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
Posted on 03-27-04 02:26 PM, in import SNES Tile map Screen to Current Map16 Page(in hex) Function? Link
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
Posted on 03-28-04 09:26 AM, in hi... Link
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
Posted on 03-28-04 09:53 AM, in Pokemon Sapphire Link
Originally posted by Akane-chan
u 1st muv teh mows n right klik teh file n renaim it 2 ruby.tbl

Dumb enough for ya?

*forgive the me for the SPAM everybody! I just had to do it! *
No, 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
Posted on 03-28-04 10:15 AM, in import SNES Tile map Screen to Current Map16 Page(in hex) Function? Link
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
Posted on 03-29-04 06:55 AM, in import SNES Tile map Screen to Current Map16 Page(in hex) Function? Link
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
Posted on 03-30-04 08:10 AM, in SRAM Read/Write [ASM] Link
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
Posted on 03-30-04 08:14 AM, in SMW+6 Preview [Screenshots] Link
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


ABII


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



Page rendered in 0.017 seconds.