News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Old SMILE Help Thread

Started by GF_Kennon, May 17, 2009, 02:24:28 PM

Previous topic - Next topic

DSO

I was always able to make it blocks that acted like a 3x3 bomb block or whatever, but the problem is I was never able to make the entire thing's graphics disappear. The blocks would become passable but only a part of it would actually crumble.

Scyzer

Quote from: DSO on February 22, 2010, 04:11:56 PM
I was always able to make it blocks that acted like a 3x3 bomb block or whatever, but the problem is I was never able to make the entire thing's graphics disappear. The blocks would become passable but only a part of it would actually crumble.

Yer you use Treadmill with BTS of 00, 01, 02, etc for that. Up to 07 IIRC. It actually looks quite funny.

gunnargumpert

how to edit the 4 layer 2, scrolling sky backgrounds?

if i change something, it has no effect, if i delete it, it still is there like a clean ROM.

Drewseph did it, it is possible but how?

please help

squishy_ichigo

TheLicker asked that same question two pages back gunnar... go look there. And maybe pay attention to other peoples questions/answers and not just your own, as they may be helpful for you one day.

gunnargumpert

Quote from: squishy_ichigo on February 23, 2010, 02:48:42 PM
TheLicker asked that same question two pages back gunnar... go look there. And maybe pay attention to other peoples questions/answers and not just your own, as they may be helpful for you one day.

you are right, but i thought there was only on, that has problems with the backgroundpointer.

ok i´ll search it!

JAM

#530
Quote from: Sadiztyk Fish on February 22, 2010, 08:21:58 PM
Yer you use Treadmill with BTS of 00, 01, 02, etc for that. Up to 07 IIRC. It actually looks quite funny.
Well, I've used BTS 08 shootable. The only problem for now is that X-Ray Scope does not detect this block. I don't know how to fix that.

Another thing I've noticed. Respawning 2*1 crumble blocks are perfect to create another noob bridge passable only with Speed Booster. Just running and mockballing isn't enough.

Quote from: Quietus on February 22, 2010, 11:39:36 AM
I'd be interested in seeing that too, JAM, so if you'd be so kind. :^_^:
We'll need to create 2 new PLMs. One for Bomb and Power Bomb attack, second one for Speed Booster and Screw Attack
I've placed them at F000 and F004. Code will start at F008.
So, first PLM header is 83 CE 08 F0 (instructions CE83, F008)

Code of 2*2 bomb block is good for 3*3. According to PLM details by Kej, 2*2 Respawning Bomb Block Collision Reaction is located at and leads to 24C87.  You should copy code from 24C87 to 27008.

The code is:
46 8C 06 24 87 C1 CC 46 8C 0A
04 00 9D A3
04 00 AD A3
04 00 BD A3
80 01 CD A3
04 00 BD A3
04 00 AD A3
04 00 9D A3
01 00 D7 A4 BC 86

Orange: pointer to part 2
Yellow: pointers to graphics
Aqua: time of displaying each state (in frames)

Copy the code to 27008 and change orange pointer to 12 F0 (leads to 27012).

Then we'll need to create new graphic for each state and change pointers to them.

Again, graphic from 2*2 block is great to start with.
Look at 2239D:
02 00 53 00 53 00 00 01
02 00 53 00 53 00 00 00

Green: quantity of blocks (wide)
Brown: start next line
White: end
Red: tile number to display
Blue: block type (0 is air, 1 is slope etc. Order is the same as in SMILE when changing the type of block)]
Purple: complex.

2 high bits are used for flipping.
4:   horizontal flip
8:   vertical flip
C:   horizontal & vertical flip

2 low bits are used for tile number to display
000:   first tile in CRE
0FF:   last tile in CRE
100:   first tile in SCENERY
3FF:   last tile in SCENERY


We'll need to add 1 more block to each line and add 1 more line. It will look like this:

03 00 53 00 53 00 53 00 00 01
03 00 53 00 53 00 53 00 00 02
03 00 53 00 53 00 53 00 00 00

(not fully colored)

Place this code to 27040 and change pointers from 87 4C to 40 F0.

Repeat the process for next pointers:
AD A3 (223AD)
BD A3 (223BD)
CD A3 (223CD)

Tile 53 should be replaced with:
54
55
FF

Don't forgot to change pointers to new states.


Then make the last state with correct graphics and type of blocks.


We'll need to correctly set type of blocks in last state of 3*3 block.

How I've done this:
*--   08 FF FE
|||   FF FF FF
|||   FE FE FE

* shootable
| vertical line
- horizontal line
Pink: BTS

It also can be done like this:

*--   08 FF FE
|--   FF FF FE
|--   FF FE FE


This is how the 3*3 block should be placed in level. You'll need to recreate this in last state. All tiles are 58 (looks like bombable block)

03 00 58 F0 58 50 58 50 00 01
03 00 58 D0 58 D0 58 D0 00 02
03 00 58 D0 58 D0 58 D0 00 00



Now we should done the second PLM. Second instruction will be first byte after orange bytes F00F (2700F). First instruction for all Bomb Block Bomb Reaction (according to Kej's docs) is CEDA (24EDA).

So, write pointers to these instuctions at 27004:
0F F0 DA CE


Last step is changing BTS.

All BTSes are located in bank 94. How to find where is place link to new PLMs using BTS 08 (bombable)? Let's find BTS 07. BTS 07 is 2*2 block.

Collision reaction is PLM D0B4 (according to PLM details). Go to A0000 and search for B4 D0. Next 2 bytes are 2F 86? Then, this BTS is unused. Change them to 00 F0 to point to 27000.

Bomb Block Bomb Reaction is PLM D0D4 (according to PLM details). Go to A0000 and search for D4 D0. Next 2 bytes are 2F 86? Then, this BTS is unused. Change them to 04 F0 to point to 27004.


Done.

To make 3*3 block works it should contains of these types of blocks as I mentioned earlier.

*--   08 FF FE
|||   FF FF FF
|||   FE FE FE

* shootable
| vertical line
- horizontal line





As for shootable 3*3 (or 1*3) you'll need to create new 16*16 tile. Creating 8*8 tiles aren't nessesary. All you need is create middle block in 3*1 shootable by flipping 8*8 tiles.

Quietus

Thanks, JAM.  I thought you meant within SMILE, and was wondering why I didn't have any luck, but now it makes sense.  I'll have to take a look. :^_^:

gunnargumpert

Quote from: gunnargumpert on February 23, 2010, 03:13:17 PM
Quote from: squishy_ichigo on February 23, 2010, 02:48:42 PM
TheLicker asked that same question two pages back gunnar... go look there. And maybe pay attention to other peoples questions/answers and not just your own, as they may be helpful for you one day.

you are right, but i thought there was only on, that has problems with the backgroundpointer.

ok i´ll search it!



well i don´t want to remove the background ore the scrolling! i just want make the background at the bottom look like a wall - no water and not scroll down there.

Crashtour99

You could try putting your own wall type tiles on layer 2 and change the horizontal scroll to 0, and it "might" allow the clouds to continue scrolling.  I don't know if this would work, you'll have to play around with it and see.

thelicker

#534
Guys, I already maked my own Layer 2 and the problem persist.
Someone can help?
I need to put other Layer 2 scrolling?

Scyzer

#535
Quote from: gunnargumpert on February 24, 2010, 08:17:09 AM
Quote from: gunnargumpert on February 23, 2010, 03:13:17 PM
you are right, but i thought there was only on, that has problems with the backgroundpointer.

ok i´ll search it!

well i don´t want to remove the background ore the scrolling! i just want make the background at the bottom look like a wall - no water and not scroll down there.

You need to change the tilemap for the scrolliong sky BG. It's located in bank $8B, then you need to change the BG_data door checks so the scrolling doesn't screw up on it (bank $8F).
Just a heads up, there's no way you'll be able to do this yet =P

Matt_SM

@squishy_ichigo or any one that can help me.

I need a video or a tutorial on editing the SM LOGO, i tried squishy_ichigo way on the the txt Document but my both graphic's editor do not find the pallete or GFX on SM LOGO, this is the only thing that i need from everybody here, Please sombody help me please please..
Regards Matt_SM

Quietus

Squishy's guide explains what you need to do, so I'm not sure where you're having difficulty.  Follow it to the letter.  Squishy tells you where they are in the ROM, tells you which mode you need to be in to view them, as well as how to acquire the different bits and pieces.  Have you changed the view in your editor?  If you're on about the actual words 'SUPER METROID', then you'll need to open the ROM, go to A80D8, change the view to 'SNES 4bpp', and load the palette that you exported from SMILE.  Editing from there is pretty straightforward, so you shouldn't be having any trouble.

Matt_SM

i exported everything : palette in flp an tlp, the RIP SM LOGO, in both flp, an tlp , then i did,:

everything it said : step by step, if u dont mind could u show me, then i could see where im going wrong? please

GF_Kennon

Well, i suppose i could give you a quick guide

1) Open Smile and a Room
2) Click Tools, then Graphics Editor
3) Down the bottom you will see a box that says "Title 1", Click it and change it to "Title 2"
4) Click "Rip", this will export the compressed Graphics
5) Click the Cross to get out of the Graphics editor
6) Click Tools, then Beauty Salon
7) Drag the slider under Samus to the right, flicking to the non suit palettes
8) In the box that says "Title Stuff", Click it and go to "I'm A Genius", you have to scroll down to get to it
9) Type in the first number box "066329" and in the next box "0F"
10) Click "Export Palette"
11) DO NOT CLICK the Cross button, instead just open TLP
12) TLP requires a patch to see the first $200 bytes of a GFX file, it can be found Here
13) Lunar IPS will not patch it for some reason, so download a program called IPS XP, it will patch the tlp.exe fine, just follow its instructions
14) Open the newly patched TLP program and open the GFX you exported earlier (It will be called [Your ROM's Name]_A80D8.gfx)
15) Click View -> Format -> SNES
16) Click Palette -> Load
17) Find your palette, should be called Samus.tpl
18) Edit away
19) If you change your palette remember to click Palette -> Save, then go back to Smile where you left that palette editor open, click "Import Palette" and click Samus.tpl, then Click "Save To ROM" and the palette is imported
20) If you change the graphics remember to save them in TLP, then go to Tools -> Graphics editor and click "Title 1" Change it to "Title 2" and then Click Save, Click the Correct GFX file and your done

Hahahaha damn that was long to type

Matt_SM

#540
are thank you soo much this could actualy work im gonna give it ago right now :) il replie when i have tried it



Replied: were it say's: Your Roms Name: well it wont find it the Rom_A80D8.gfx, it just finds Samus.TLP.
For some reason it dont show up any were. is there a patch for this Failure??

Edit: In Fact i cant load any GFX in TLP for some reason everytime i export my GFX files i cant find them wheni use tile layer pro or FLP, i even download another smile v2.50 to replace it. an still nothing. what can solve my problem?

squishy_ichigo

When opening a file in Tile Layer Pro, you may need to click the drop down menu next to "Files by type" and click "All Files".  Also, it will be the the folder that the ROM you exported from is in.

Hopefully, that is all the problem is.

Matt_SM

#542
this is what im talking about the GFx file doesn't show up

Edit : Okey i just realised that i have to click the ALL FILES ....................god im so stupid lol, Thank you soo much you 2 for everything at least this time i might get it to do it thanks you 2 an everybody else who tried

[attachment deleted by admin]

Katelyn

Matt_SM: you need to change the filter to view all files, not just the supported type. Hope that helps clear up your problem! :^_^:

Matt_SM

thank you everybody for telling me that im stupid cos i didnt click the all files LMao thank you :)

1 more thing it says this gfx use's 4bpp does this mean i use flp? an not tlp?

squishy_ichigo

4bpp in Tile Layer Pro is going to be: view -> format -> SNES

Also, while we are on the subject...
8bpp, aka mode 7, is not supported by Tile Layer Pro. You will need to use FaTileTy for that.

Matt_SM

yeh thanks for the tip im useing FatileTy right now, much better than tlp i think,

gunnargumpert

mdb.txt :that file includes the room IDs!

i added a new code and the list showed it! now my question:

how to make new rooms, that work and you can open?

please help, if you can!


waiting...


thanks
GUNNAR

Smiley

Click the spoiler tag for a guide to do that, but i think doing something like adding rooms to Super Metroid is FAR beyond your knowledge.
[spoiler=Yes, i really think this is far beyond your knowledge]
Quote from: Moonedit SMILE FaqMaking new rooms is simple if you know hex, if you don't, then you probably shouldn't be reading the advanced section.

First, here's the structure of a room:

Example room: A98D
0A              Room Index
02              Area
0C              X
0A              Y
08              Width
01              Height
70              Up Scroller
A0              Down Scroller
01              Unknown 4
A9D3            Door Out
E629            Event based state
02              State event condition
A9B9            Alternate state header---
                                        |
E5E6            Default state          |
C79D71          Level Data              |
1B              Graphic Set            |
05              Music1                  |
27              Music2                  |
84D0            FX1                    |
BB0E            Enemy Population        |
8B11            Enemy Set              |Alternate state
0101            Layer 2 Scroll          |header points
A9D7            Scroll                  |to its state
0000            RoomVar                |
E8CD            FX2                    |
8B9E            PLM                    |
B84D            BG_Data                |
91F6            Layer1_2                |
                                        |
C79D71          Level Data---------------
1B              Graphic Set
00              Music1
00              Music2
84D0            FX1
BB0E            Enemy Population
8B11            Enemy Set
0101            Layer 2 Scroll
A9D7            Scroll
0000            RoomVar
E8CD            FX2
8B9E            PLM
B858            BG_Data
91F6            Layer 1_2

Most, if not all, of Super Metroid's rooms' Door Out and Scroll pointers point to right after the end of the header.  This of course isn't necessary.

First thing is to find free space in bank $8F, should be easy enough to find.  Add the pointer to this free space the mdb.txt file that SMILE uses.  Of course, the easiest thing to do is just copy another room's header, which again, shouldn't need instructions.  The other method is to make it from scratch, although I don't see why you would, that being said, all you need is a valid level data pointer and room size for the room to open in SMILE; ie. 00 00 00 00 01 01 00 00 00 0000 E6E5 CB92CE 00 00 00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 (reversed values) is valid for SMILE.  The only thing you *do* need to handle in hex is states.

There are 9 states coded into the game, and you're free to add more.  The 'Event based state' as I've called it is a pointr to ASM, the pre-coded routines use the 'State event condition' as a parameter.  eg. The E612 Event based state checks if an event has been done, it takes an 8-bit parameter which is which event it checks.  Here are the event state pointers build into the game:
E5E6            Nothing/Default
E5EB dddd      Checks which door you've come through
E5FF            Mother Brain's dead
E612 rr        Checks if an event has been set
E629 bb        Checks if a boss has been slayed
E640            Checks if morphball has been collected
E652            Checks if morphball and missiles have been collected
E669            Checks if power bombs have been collected
E678            Checks if speedbooster has been collected

This by the way, is why SMILE groups specific events together and only allows you to choose from them (the length of the parameter).
The order these are put in the room header is the order they're checked in, once a state checks out as true, it's used.  So if you have the morphball state, followed by the Mother Brain check, (unless they don't have morphball) the Mother Brain state will never be used.  This is why the default state goes last.

All Event based states are followed by a pointer which points to the pointers that are used for the room (should be obvious); the exception is of course, the default state, the pointers follow straight after it.

Last note, remember that all values and pointers are reversed!  And some/most hex editors *insert* when you paste data, compromise the insert by deleting however many of the following bytes as you inserted.
[/spoiler]

gunnargumpert

#549
it works! thanks

but the free space at bank $8f is limited, is it possible, to use another bank?



EDIT:

fabulous: i copyed the header of the first room (791fa) to the addres 2EEC0 and it opened!!!!!!


i love smile and my hex editor!!!!!!


2nd EDIT: it´s not realy working, because the doors are working with the addres [_ _ _ _] ,not [7_ _ _ _]
(the 7 is addet automaticaly) ---  but 2EEC0 starts with 2 _ _ _ _


is it possible to set a pointer?