Language…
10 users online:  AmperSam, bd90492, Cracka, fanfan21, Heitor Porfirio, Hot Sauce, KirbySmash, pacmanboss256, Sammmoo,  YouFailMe - Guests: 128 - Bots: 194
Users: 69,715 (2,538 active)
Latest user: CORROSIVEsprings

Posts by hash

hash's Profile → Posts

Would it be possible to have the option to have custom per-level ExGFX for the Animated tile area (GFX33.bin)?
If I were to guess why the stars aren't showing up, it would be because the animation hasn't been set up yet. If you load the example level included in the Starry Sky zip folder and click on the #lm{exan} in the toolbar you'll have access to the proper frames needed to make the stars animate. Just click the 'Copy All Slots' button at the bottom of that window and, following the same steps but in your level, use the 'Paste all slots' button. This should animate the stars for you. Hopefully that helps (if that is indeed the issue)
Just bumping this as I haven't been able to find a solution. I'm hoping someone has figured this out and could share a fix (or explain why a fix can't easily be made).

I did notice while going through some trial and error that while Lunar Magic displays level mode 5 as a layer 2 level, when you load that level, it is not actually in layer 2. Which may be why it seems to work with the triangles.

I also noticed that in Lunar Magic 2.53 level mode 05 is labeled as Layer 2 Interact, whereas in Lunar Magic 3.01 it's labeled as not to interactive.
I know my last request was not that long ago, and I am still very interested in having that request fulfilled, but I understand it may be more difficult than I expected after looking at the pokey disassembly myself and trying to create the sprite.

Anyways, so I am making a new request that seems like it could be easier to accomplish.

Request name: Sprite spawning block
Type: Block & UberASM (or sprite?)
Description: I would like to have a block that spawns a sprite only when a button is pressed on the controller (L/R). I think UberASM would accomplish this task well, and of course I'd need a block that would spawn the sprite. A cool down timer between button presses would be essential to prevent fast sprite spawn abuse.
Thanks for the reply Thomas, I also discovered that putting the wall on both layers sort of solved the problem, but it will not work with the level idea I had planned. Thanks for the insight as to why this problem arises though :).
I tried to convert it into a reasonable amount of ExGFX files with zero success. Lunar Magic got it down to 0x245 8x8 tiles. I brought the image into photoshop to remove the 'floating' shards and even that still resulted in 0x1B2 8x8 tiles (which is still huge). The only way I could get this image into a reasonable size was to remove the reflection at the bottom and the shards. This got it down to 0x116 8x8 tiles which is better, but really doesn't do the image justice (and still uses all of 1 ExGFX file, and a bit of another). I think there are just too many unique tiles for this background to work as-is in the average SMW level.

One suggestion might be to make an ExGFX file out of the 'top' part of the background. Then use the Map16 Editor to flip the top half and some palette changes to recreate the reflection. This is in no way a perfect solution, but might not look too bad. Otherwise you'll be sacrificing a lot of FG tiles to fit this background into a level (the full background seems to use nearly 5 ExGFX files as-is).

EDIT: Hmm, I don't know how I missed it before, but those shards actually repeat themselves. I got a nicer result after removing the floating shards and one other element. I got this:

If you want, here are the two ExGFX files, Map16 and an .mwl sample level:
ExGFXAE1
ExGFXAE2
.mwl
Map16
Originally posted by levelengine
I think it happens when an external tool is used on a hack, and the hack isn't saved in Lunar Magic afterward.


As levelengine said, checksum fails tend to happen when an external tool such as Pixi, GPS, UberASM etc is used on a ROM. Taking the ROM into Lunar Magic and saving a level / overworld will fix the checksum error you see when you load the ROM in an emulator.

I've never had any issues playing ROMs that have a checksum error (I use SNES9x 1.56.2) so if the error isn't fixable with the above method, I'm not sure what else may be going on.
I may be entirely incorrect, but I think I read somewhere once that the SNES can only display a certain spectrum of colours. Something like 32,000 different colour variants I think. Of course modern computers can display something like 16.7 MILLION different colours, so the SNES (and it seems Lunar Magic) will default to the closest SNES-capable colour that can be displayed. You can see an example of this if you change a colour to RGB value 5,5,5. Lunar Magic will default the RGB value to 8,8,8 because that is the closest SNES-compatable colour near your chosen RGB value.

Again, I may be entirely wrong, but when I have noticed very slight colour changes I've assumed this was the reason.
I've compiled an updated list of all hosted sprite disassemblies (as of this post date). I say hosted because I know there are a few custom sprites out there that are non-hosted disassemblies such as the Flying Question Block released during the 2018 C3). In case anyone wanted to 'fill out' the sprite section with new disassemblies or wanted to combine current ones.

Note: Update to included *advanced sprite disassemblies such as the Boo Ring. These sprites either combine multiple vanilla sprites into one, or have additional features over the vanilla sprite.

00 Green Koopa Troopa without shell
01 Red Koopa Troopa without shell
02 Blue Koopa Troopa without shell
03 Yellow Koopa Troopa without shell
04 Green Koopa Troopa
05 Red Koopa Troopa
06 Blue Koopa Troopa
07 Yellow Koopa Troopa
08 Green Koopa Troopa flying left
09 Green Koopa Troopa bouncing
0A Red Koopa Troopa flying vertically
0B Red Koopa Troopa flying horizontally
0C Yellow Koopa Troopa with wings
0D Bob-Omb
0E Keyhole
0F Goomba
10 Bouncing Goomba with wings
11 Buzzy Beetle
12 Unused
13 Spiny
14 Spiny falling
15 Cheep Cheep swimming horizontally *
16 Cheep Cheep swimming vertically *
17 Cheep Cheep flying
18 Cheep Cheep jumping to surface
19 Display text from level message 1
1A Classic Piranha Plant
1B Bouncing Football in place.
1C Bullet Bill
1D Hopping flame
1E Lakitu
1F Magikoopa
20 Magikoopa's magic
21 Moving coin
22 Green vertical net Koopa *
23 Red vertical net Koopa *
24 Green horizontal net Koopa *
25 Red horizontal net Koopa *
26 Thwomp
27 Thwimp
28 Big Boo
29 Koopa Kid
2A Upside-down Piranha Plant
2B Sumo Brother's lightning
2C Yoshi egg
2D Baby Yoshi
2E Spike Top
2F Portable springboard
30 Dry Bones that throws bones *
31 Bony Beetle
32 Dry Bones that stays on ledges *
33 Podoboo/vertical fireball
34 Boss fireball
35 Yoshi
36 Unused
37 Boo
38 Eerie that moves straight *
39 Eerie that moves in a wave *
3A Urchin that moves a fixed distance *
3B Urchin that moves between walls *
3C Urchin that follows walls
3D Rip Van Fish
3E P-switch
3F Para-Goomba
40 Para-Bomb
41 Dolphin that swims and jumps in one direction *
42 Dolphin that swims and jumps back and forth *
43 Dolphin that swims and jumps up and down *
44 Torpedo Ted
45 Directional coins
46 Diggin' Chuck
47 Swimming/jumping fish
48 Diggin' Chuck's rock
49 Growing/shrinking pipe
4A Goal Point Question Sphere
4B Pipe-dwelling Lakitu
4C Exploding block
4D Monty Mole, ground-dwelling *
4E Monty Mole, ledge-dwelling *
4F Jumping Piranha Plant *
50 Jumping Piranha Plant that spits fireballs *
51 Ninji
52 Moving hole in ghost house ledge
53 Throw block sprite
54 Revolving door for climbing net
55 Checkerboard platform, horizontal
56 Flying rock platform, horizontal *
57 Checkerboard platform, vertical
58 Flying rock platform, vertical *
59 Turn block bridge, horizontal and vertical *
5A Turn block bridge, horizontal *
5B Floating brown platform *
5C Floating checkerboard platform *
5D Small orange floating platform *
5E Large orange floating platform *
5F Swinging brown platform
60 Flat switch palace switch
61 Floating skulls
62 Brown line-guided platform
63 Brown/checkered line-guided platform
64 Line-guided rope mechanism
65 Chainsaw (line-guided) *
66 Upside-down chainsaw (line-guided) *
67 Grinder, line-guided
68 Fuzzy, line-guided
69 Unused
6A Coin game cloud
6B Wall springboard (left wall)
6C Wall springboard (right wall)
6D Invisible solid block
6E Dino-Rhino
6F Dino-Torch
70 Pokey
71 Super Koopa with red cape *
72 Super Koopa with yellow cape *
73 Super Koopa on the ground
74 Mushroom
75 Flower
76 Star
77 Feather
78 1-Up mushroom
79 Growing vine
7A Firework
7B Goal tape
7C Peach (after Bowser fight)
7D P-Balloon
7E Flying red coin *
7F Flying golden mushroom *
80 Key
81 Changing item
82 Bonus game sprite
83 Flying question block that flies left
84 Flying question block that flies back and forth
85 Unused
86 Wiggler
87 Lakitu's cloud
88 Winged cage (unused)
89 Layer 3 Smash
8A Yoshi's House bird
8B Puff of smoke from Yoshi's House
8C Side exit enabler
8D Ghost house exit sign and door
8E Invisible "Warp Hole"
8F Scale platforms
90 Large green gas bubble
91 Chargin' Chuck
92 Splittin' Chuck
93 Bouncin' Chuck
94 Whistlin' Chuck
95 Chargin' Chuck
96 Unused
97 Puntin' Chuck
98 Pitchin' Chuck
99 Volcano Lotus
9A Sumo Brother
9B Amazing Flying Hammer Brother
9C Flying gray blocks for Hammer Brother
9D Sprite in a bubble
9E Ball 'n' Chain
9F Banzai Bill
A0 Bowser battle activator
A1 Bowser's "bowling ball"
A2 Mecha-Koopa
A3 Rotating gray platform
A4 Floating spike ball
A5 Wall-following Sparky/Fuzzy *
A6 Hothead *
A7 Iggy's ball projectile
A8 Blargg
A9 Reznor
AA Fishbone
AB Rex
AC Wooden spike pointing down *
AD Wooden spike pointing up *
AE Fishin' Boo
AF Boo Block
B0 Reflecting stream of Boo Buddies
B1 Creating/eating block
B2 Falling spike
B3 Bowser statue fireball
B4 Grinder that moves on the ground
B5 Unused
B6 Reflecting fireball
B7 Carrot Top Lift, upper right *
B8 Carrot Top Lift, upper left *
B9 Info Box
BA Timed Lift
BB Moving castle block
BC Bowser statue
BD Sliding Koopa
BE Swooper
BF Mega Mole
C0 Sinking gray platform on lava
C1 Flying gray turn blocks
C2 Blurp
C3 Porcu-Puffer
C4 Gray platform that falls
C5 Big Boo Boss
C6 Spotlight/dark room sprite
C7 Invisible mushroom
C8 Light switch for dark room
C9 Bullet Bill shooter
CA Torpedo Ted launcher
CB Eerie generator
CC Para-Goomba generator
CD Para-Bomb generator
CE Para-Goomba and Para-Bomb generator
CF Dolphin generator (left)
D0 Dolphin generator (right)
D1 Flying fish generator
D2 Turn Off Generator 2 *
D3 Super Koopa generator
D4 Bubbled sprite generator
D5 Bullet Bill generator (GFX01)
D6 Multidirectional Bullet Bill generator
D7 Multidirectional diagonal Bullet Bill generator
D8 Bowser statue fire generator
D9 Turn Off Generators *
DA Green Koopa shell
DB Red Koopa shell
DC Blue Koopa shell
DD Yellow Koopa shell
DE Group of 5 wave-moving Eeries
DF Green Para-Koopa shell
E0 3 rotating gray platforms
E1 Boo Ceiling
E2 Boo Ring moving counterclockwise *
E3 Boo Ring moving clockwise *
E4 Swooper Death Bat Ceiling
E5 Appearing/disappearing Boos
E6 Background candle flames
E7 Unused
E8 Special auto-scroll command
E9 Layer 2 Smash
EA Layer 2 scrolling command
EB Unused
EC Unused
ED Layer 2 Falls
EE Unused
EF Layer 2 sideways-scrolling command
F0 Unused
F1 Unused
F2 Layer 2 on/off switch controller
F3 Standard auto-scroll command
F4 Fast background scroll
F5 Layer 2 sink command
F6 Unused
F7 Unused
F8 Unused
F9 Unused
FA Unused
FB Unused
FC Unused
FD Unused
FE Unused
FF Unused
I have 3 main questions I'm looking for assistance with regarding overworld modification and patch compatibility.

1st
I seem to be having an issue while using both the OW Speed Changer and the Multiple OW Songs patches together. If I apply the speed patch, then the song patch, my OW speed reverts to vanilla. Applying the speed patch again causes the main overworld to crash upon load.
I believe I have narrowed the cause down to the 'JML $048246' line of code, as this is the only address present in both patches. It looks like both patches hijack it; does anyone know a fix or edit to allow both patches to work together?

2nd
I wanted to use the Start Button to Save patch but change the required button so I still have the 'View Map' ability from vanilla (the arrows that let you scroll preview the main overworld). So either have the save menu pop up with the Select button instead of Start, or have the 'View Map' functionality activated when Select is pressed instead (this is the more desirable option).

3rd
I've noticed there are two different types of 'overworld <> submap' transition animations. The first one is when Mario uses a pipe or star and the screen fades out, then fades back in with the new location. The second transition happens when using the red paths and uses a shrinking/growing black box animation with no fade. The pipe/star fade seems to refresh the layer 3 border gfx and palette, whereas the box effect does not. How would I change all the map transitions to the pipe/star fade or have the box effect refresh the layer 3 border gfx and palette?

Any guidance on how to resolve any of these issues would be greatly appreciated! Thank you
I'm not sure if the following is intended but I'm having some odd behavior while placing rotating platforms in Lunar Magic (current version 3.03).

The first one is while placing the Rotating Falling Platform (sprite 5F) at the very bottom of a level. It doesn't seem to spawn in game.

Also, you can lower it down quite further than the bottom of the screen and it fails to spawn as well.

The lowest it can go until it spawns is the second last tile.


While placing the Grey Single Rotating Platform (sprite A3) near the bottom of the level it works just fine.

You can even place it lower so it wraps to the second screen and it works just fine rotating at the bottom of screen 1.

In fact, you can literally place it off screen (dragging it one tile below the bottom of screen 1 into the blackness so it wraps completely to screen 2) and it still works fine and rotates at the bottom of screen 1! Which is pretty cool behavior by the way.


Lastly, the Three Rotating Platforms (sprite E0) can be placed a few tiles below the bottom of screen 1 and function fine.


So the behavior of these 3 sprites is inconsistent, and I was wondering if it were within the realms of Lunar Magic to make all 3 act similar to the Single Rotating Platform; allowing it to spawn closer to, and even off the bottom of the screen?
The link that MFG posted is probably your best bet because the checkerboard GFX you see is what is called a 'bounce sprite'. This means that, even though the On/Off block is NOT a sprite, the bounce graphic that is displayed IS a sprite (which is why it looks garbled in some GFX sets).

Anyways, the graphic you're looking for is located in GFX05.bin here:


Now, you could simply erase this graphic, but it will not have the desired effect you're probably going for (unless you use GFX05; in which case it would show up correctly anyways). You'll want to use the custom block that MFG posted which is identical to the vanilla On/Off block, but with the bounce sprite function removed.

To have the garbled graphic display correctly in ANY tileset without a custom block, you would need to erase or replace the tile location (0x58A) with your desired graphic in your loaded SP4 file on a per level basis. Easy to do, but kind of inefficient and pointless when you could just use a custom block without the bounce sprite. Hope that helps!
Originally posted by TheEvilKingBowser
I dunno. I'd originally wanted to put a secret message for speedrunners in my hack, but now that I think of it, it really doesn't make much sense.


The idea to leave a message for speedrunners sounds neat, but an anti-TAS is going a bit further for most speedrunners to see anyways. You could perhaps include some UberASM that, if a level is beaten under a pre-determined time, would display a message or something like that. It would probably be easier to make code for that than determining if someone is trying to TAS your game
(which btw, having some UberASM 'listen' for left-right inputs would probably be the best way to determine TAS, albeit not perfect)
.
The #lm{owl1path} icon will only show you the hardcoded paths Mario will follow on the overworld. Of course you need your desired levels to be linked by these paths for the transition to take place. Once that is done, do the following:

While in 'Layer 1 16x16 Mode' (#lm{ow16x1}) select the first level. Now press the #lm{owlevel} button. This dialog will open:


You'll want to look at the left side of this dialog where it says 'Direction to enable when X exit is used'. You have 4 options (if using LM 3.0+). Normal Exit, Secret Exit1, SE2, SE3. Beside each of those options are drop down boxes. Select the direction you'd like Mario to travel in when the desired exit type is passed in your level.

You'll see options on the right hand side of this dialog that indicate the initial level settings as well. These are settings you can enable if you'd like each option immediately without triggering events. These are useful for 'hub' tiles or Yoshi's house tiles. You probably wont need any of these ticked just yet for what you're trying to achieve.

I believe this is all that is needed to make Mario move in the direction you desire when the level is passed.

You'll likely also want to set up events to take place when you pass your levels. I personally like to go from event 0 upwards, so set your 'Base event for when above level is passed' to Event 0. Now click OK to return to the overworld. Select your second level and click the #lm{owlevel} icon again. Set the 'Reveal this tile on any of these events' to the event of the previous level (in this example; Event 0) and click OK again.

Now back on the overworld you'll want to click #lm{owev2} to place your events. I suggest clearing all existing events (especially if you're starting from a vanilla OW) first by holding the PageUp key on your keyboard until the status bar in Lunar Magic reads 0x77 at the bottom. Now select all your events and remove them. Make sure to do the same thing with the Layer 1 events. Press #lm{owev1} and follow the same PageUp key instructions. Now click #lm{owev2} again and hold PageDown on the keyboard to cycle back to event 0x00 (look at the status bar).

Now we begin making your event. While still in #lm{owev2} mode, click #lm{owl2evn} and in the new window that pops up press the down arrow on your keyboard 4 times. This should bring you to a bunch of 'completed path' looking tiles. It's grabbing this information for right here:


Now it's as simple as selecting the tile you'd like to place as your first event tile, and placing it where desired with a right-click on the overworld. Once you are done placing all the tiles for that event, press PageUp and save your overworld. Give it a shot in game, and see if it worked for you.

The overworld can be a little daunting for new Lunar Magic users, but in my opinion it's one of the most fun things to mess around with in Lunar Magic once you get used to it.

I hope that helped you in some way. Let me know if you still need assistance.
A comment on your hack as a whole is that I think your visuals are absolutely stunning. It's amazing that something like the SNES has the capacity to display such incredible graphic work. Everything blends together seamlessly, is very consistent across different tilesets, and of course beautiful. I admire your skill and creativity as a graphic artist, and your level designs and unique ideas are going to make this a fun hack to play. I also admire your layer work adding depth to your levels; it very much parallels how talented Eevee is with their graphics and layer work in Sicari.

I am quite curious about your overworld (if you do still plan on having one). Has there been any updates or progress on that? The last time I saw it you only posted these two images:


Overworld design has always appealed to me, and I'd love to see more in classic WYE style if you have anything new you could show :).

Also of note, your new water switches in your last post heavily remind me of the mini-game in 'Mickey's Ultimate Challenge' on the Sega, which was one of my favouite games as a kid! I'm looking forward to the progression of this tileset you've created.
I'd like to participate
(as I have a secret hack that's been ongoing for nearly 2 years and I'm just about done, but have lost some motivation recently)
so I'd like to show off the overworld. I decided to 'port' my overworld to a fresh ROM so as not to spoil the levels with success, but it seems a few of my overworld patches break Erik's event debugger.

I am using:
OWSpeed.asm
WidescreenOW.asm
ExExOverworldLevelNames.asm

As well as some HDMA via UberASM (disabling the UberASM doesn't seem to change anything, however, the menu does freak out even more when I have HDMA on the main map or a submap).

The issue I'm having is when the menu comes up to select exit type, the screen goes all wonky with black lines everywhere. I can select the exit type just fine, the lines will disappear and the event triggers, but it is quite a jarring display. Any idea if those patches are incompatible with the Debugger? I'm not using SA-1 if that makes a difference.

Also I noticed that my Switch Palaces don't seem to depress when I choose the Normal Exit. I'd like my switches to activate with the debugger if possible!

I'd like my overworld displayed in game, and not via Lunar Magic for this contest, so using the debugger would be ideal.

Thanks!
Originally posted by Erik
I've tried my best to update the patch to fix any issues similar to yours with the window spazzing. I updated the link in the rules thread, but you can find it here.
Still, I'd recommend you to enable the FastROM patch in Lunar Magic as to have the code run faster.


Thanks! I've PMed you about another issue that required showing part of my overworld, so I have not shared it here. Your 1.1 update has fixed the issues I was having.
Mario has Priority over layer 2, so you need to actually place layer 1 tiles to have them take priority over Mario. We will still use the layer 2 mode #lm{ow8x2} to create the tiles, but we will place them with layer 1 mode #lm{ow16x1}. I've done this a bunch in my hack, so I'll give you a quick walk through on how to achieve it.

First bring up the Layer 1 tile selector #lm{ow16xsel}, press the down arrow on your keyboard to go to the second page, and press 9 and 0 on your keyboard to reveal paths. Using Layer 2 mode #lm{ow8x2}, go to the bottom of the overworld window so you see this place. I've coloured the tiles you will most likely be focusing on.

This area under Star World is a duplicate of the vanilla paths/levels and can be used to acheive your goal of priority tiles. To be fair, ANY of the tiles accessible in Layer 1 tile selector can be used to do this, but you'll likely want to keep most of the first page the way they are, so we focus on the tiles I've highlighted in the screen shot.

Now you can use the 8x8 Overworld Tile Selector #lm{ow8xsel} to place some tiles over the paths you'd like Mario to go behind. Make sure you enable priority! Like this:

Because Mario's sprite is taller than the path tiles alone, we need to make sure the tiles above Mario are also Layer 2 tiles with priority so his sprite is completely covered.

Now that you have your tiles set up, we're gonna place them on your overworld. Using the 16x16 Editor Mode #lm{ow16x1} we want to place the tiles we made. So back up we go, and place them something like this:


Now we're done! Lets see if it works correctly in game:


This is a very basic example of how to achieve priority. Keep in mind that more complex examples where Mario isn't fully covered are possible, but often require custom graphics. The tiles we used here are 100% opaque without any transparency just so you get an idea of how to do this. Hopefully it helps!
I've consulted the Memory Map and found a few RAM addresses that seem to correspond to what I'm trying to accomplish, but I need a bit of guidance from there.

Originally posted by RAM Map
$7E1B9C 1 byte Overworld Player is entering a warp pipe/star flag.
#$00 = No; #$01 = Yes.

Originally posted by RAM Map
$7E1DE8 1 byte Overworld This is a pointer index used for various tasks during the submap switching scene ($7E:13D9 is #$0A), possible values are:
#$00 = Commence with handling windowing HDMA.
#$01-04 = Update layer 1 on the overworld.
#$05 = Handle palette loading.
#$06 = End with windowing HDMA.
#$07 = Terminate submap switching phase by storing #$04 to $7E:13D9, make eventual submap changes (for example, what music to play).


What I am trying to do is make the red exit tiles act like a warp pipe or star. I want to skip the windowing HDMA that the red tiles do, and as Mario leaves the screen via the tile, run the code that a pipe tile would do so I force the overworld to reload the next map I am entering. My reason for doing this, is I can't get my Overworld Border palettes and tilemap to refresh correctly when using the red exit tiles, but stars/pipes work perfectly.

So does anyone know how to accomplish this task?