<- 1  -   of 222 ->
^^
vv
List results:
Search options:
Use \ before commas in usernames
Merry Christmas
I got the files, then what next
Edit history:
ultimad13: 2009-04-30 04:47:31 pm
Is it possible to make quicksand like blocks in SMILE? If so, how would I?

Oh nevermind, just looked at Maridia and found out how. Sorry for that.
Embarrasing Fact: Power suit made by lowest bidder
Quote from Deep_Space_Observer:
Quote from Kejardon:
5x5 would have some problems, you can't easily warp an odd number of screens horizontally.

Is this refering to getting background scrolling to synch up correctly?

Actually it's referring to how games that scroll horizontally (including Super Metroid) typically handle VRAM. VRAM stores a tilemap that is 2x1 screens in size and overwrites it as the screen scrolls around. It wraps seemlessly. If you warp an even number of screens, the VRAM tilemap stays in place (so as long as the destination is the same as the source, there's no noticable change). If you warp an odd number of screens, the VRAM starts displaying from the other screen which is going to look like the PREVIOUS screen you've been through and some various  blocks that changed on the edges.

The background is a separate issue. :P
Merry Christmas
Anyone want to help me make speed booster dont drain energy
There's a patch that does that here.
Merry Christmas
Quote from Deep_Space_Observer:

Thanks it helped me out. extra_smug
LOL
Eh? How can I put a boss in a different room without crashing the room....or rom?  Shocked
Quote from UltimateAvenger:
Eh? How can I put a boss in a different room without crashing the room....or rom?  Shocked


For the 4 main bosses, I find it's just best to leave the boss in the room it's in, just change that room to your liking. Expand, add doors, change fx (some problems can occur here, for example, torizo's make their own fx)

For mini bosses, I think it's just as simple as moving the enemies pointers to a different room. Keep in mind the starting location of the boss is sometimes hardcoded to a certain screen.

Also, certain bosses (crocomire, kraid, draygon, phantoon, and ridley) need to keep the same tileset.
LOL
Thanks Cardweaver!  Very Happy Another question... Question How could I program the game to start samus off with morph ball?  Eh?
Quote from UltimateAvenger:
How could I program the game to start samus off with morph ball?  Eh?


Have a similar question. I looked in the RAMmap, but I didn't see anything that controls what Samus has in her "inventory". I want to allow Samus to collect a few powerups in Ceres, but after you leave Ceres station I want that all to be erased, so that there is nothing in her inventory. I thought this would only take a few lines of code, setting all the variables that control her equipment to 0000, but obviously it is a little harder than I thought.  Embarassed
I have a question similiar to the one posted a few posts up. I'm trying to move bomb torizo to a larger room with more enemies and PLMS to make the fight more exciting and I'm having nothing but graphical problems. How could I move it properly to a new room?
What'd you say?
I don't know how to move it but couldnt you just use the enemy and plm pointers from a different room? And you could also just expand the room size; if you run out of space for the room you can expand the rom and put the room pointer in the new bank (I dont know how to do the last thing.)
I could always do that, but I'm always afraid creating new enemies and PLMS will overwrite other rooms and end up corrupting them. There is a way of moving him, it says in his text file, but I honestly have no idea where to add that.
What'd you say?
Quote from ultimad13:
I could always do that, but I'm always afraid creating new enemies and PLMS will overwrite other rooms and end up corrupting them. There is a way of moving him, it says in his text file, but I honestly have no idea where to add that.


You don't even have to create new PLMs and enemies though, if you just switch the pointers you could have like 20+ PLMs and 20+ enemies in the one room if you wanted, and that's without corrupting anything.
Edit history:
ultimad13: 2009-05-02 10:12:18 am
Oh really? Could you tell me how?

Got it to work Sadiztik Fish, Thanks for the help!
OMG FLAN!!!!!!!
Bosses can have most other enemies in the same room, but the boss must always be the first enemy in the room (00). If the boss is more than one part, the all parts need to come before all other enemies, since the first one is usually possesive (takes control of the next enemies).


Quote from Cardweaver:
Also, certain bosses (crocomire, kraid, draygon, phantoon, and ridley) need to keep the same tileset.


Actually, Ridley can use any tileset. His tiles are stored within the ROM, not the GFX sheet. Phantoon's and Draygon's tilesets could be edited to look like any other tileset though, as long as the boss tiles are still there and in the same place. Crocomire's and Kraids tilesets I would leave alone.


Quote from ultimad13:
I could always do that, but I'm always afraid creating new enemies and PLMS will overwrite other rooms and end up corrupting them. There is a way of moving him, it says in his text file, but I honestly have no idea where to add that.


It doesn't corrupt the actual rooms, it corrupts the enemies/PLMs within those rooms (extra scroll blocks/level data will eat rooms, and completely destroy them). To switch enemy/PLM pointers, open up the room in SMILE you want more enemies/PLMs in, and write down the 2 enemy population and enemy data pointers for enemies, and the PLM pointer for PLMs.
Next, go to another room which has the number of PLMs/enemies you need and get those respective pointers. Now, just replace the pointers in that room with the ones from the first room, and save. You should see the same enemies and/or PLMs that are in the room you want more in. Then just go to the other room, and put the new pointers in. You should get the enemies and/or PLMs from the second room. Then you can simply edit these enemies/PLMs to how you want them in the room.

If you're only moving the Bomb Torizo though, it might be easier to simply open a wrecked ship room, and change the first enemy there ("00" when you hold the mouse over it, or in the blue bar of the enemy editor) into Torizo (CHANGE THE ROOM TO CRATERIA/NORFAIR, cause Torizo's can only work in there areas). Then you can edit the other enemies/PLM in the room, change room size or whatever, since the wrecked ship rooms have usually more space than Torizo's normal room. The only thing is, you won't have the animals in there at the end of the game.
I like Big Butts and I can not lie
Quote from Shadow34370:
I looked in the RAMmap, but I didn't see anything that controls what Samus has in her "inventory"

It's there alright:
Code:
7E:09A4 - 7E:09A5    Collected items (see bottom of http://jathys.zophar.net/supermetroid/kejardon/sm_misc.txt )
7E:09A8              Collected beams
7E:09A9              Collected Charge beam
7E:09C4 - 7E:09C5    Samus's max health
7E:09C8 - 7E:09C9    Samus's max missiles
7E:09CC - 7E:09CD    Samus's max super missiles
7E:09D0 - 7E:09D1    Samus's max power bombs
7E:09D4 - 7E:09D5    Samus's max reserve tanks
7E:D870 - 7E:D8AF    Item bit array. 90-AF are never used (see http://games.technoplaza.net/smse/sram-doc.txt )
Edit history:
SMILEuser96: 2009-05-02 08:38:32 am
Samus...? Is that you?
Not sure does this belong here, but i thought i shouldn't make a new thread just for one question.
So, to my question:
I'm a real n00b at ASM, but i tried to make some ASM which makes Samus move 64 pixels to right (that's 40 in hex, right?). So, i made a piece of ASM, which looks like this:

(old code]
I don't see anything wrong with that. (that's because this is my first ASM which actually did something: it froze the game  Sad)

Edit a few seconds later: I think i found where the error is. (An arrow points to it)
Another edit: Still doesn't work. Maybe $0AF7 should be $0AF6?
One more edit: Now i realize $0AF7 is Samus's X positon in pixels... it should have been $0B56, which moves Samus horizonally. It's fixed now, but when i try to apply the ASM, xkas gives me an error message. This is the ASM now:

another old code

Pah, won't work, whatever i do, my ASM wont work... i'll try something else
I like Big Butts and I can not lie
It's because you have a DW there
Edit history:
Shadow34370: 2009-05-02 08:59:19 am
Quote from P.JMan:
It's there alright:
Code:
7E:09A4 - 7E:09A5    Collected items (see bottom of http://jathys.zophar.net/supermetroid/kejardon/sm_misc.txt )
7E:09A8              Collected beams
7E:09A9              Collected Charge beam
7E:09C4 - 7E:09C5    Samus's max health
7E:09C8 - 7E:09C9    Samus's max missiles
7E:09CC - 7E:09CD    Samus's max super missiles
7E:09D0 - 7E:09D1    Samus's max power bombs
7E:09D4 - 7E:09D5    Samus's max reserve tanks
7E:D870 - 7E:D8AF    Item bit array. 90-AF are never used (see http://games.technoplaza.net/smse/sram-doc.txt )


Opps, Cant believe I missed that...  d'oh! Thanks, a lot though. I'll see if I can get something working a bit later...

Quote from UltimateAvenger:
Another question... Question How could I program the game to start samus off with morph ball?  Eh?

If I can get my above problem fixed, I should be able to fix yours as well. Very Happy

EDIT: Okay I decided to quickly take my airtube.asm, use the entry point I used for that file (BTS 03 Air-fool X-ray), and create some blocks that will strip samus of all her equipment... It worked, and failed at the same time... Here is the code:
Code:
lorom

org $9498B2

	DW $B300

org $94B300

LDA #$0000
STA $09A4
STA $09A5
STA $09A8
STA $09A9

RTS


I wrote it up quick, so no comments. Anyway, when Samus moves through these blocks all and any items in her inventory are taken away. The problem is that equipment like morphball, or bombs are still usable even though they don't show up in Samus' collected items list. Beams are taken away correctly, though. Is there some other value I need to erase to correctly strip Samus of her powerups?
LOL
Quote from Sadiztik Fish:
Bosses can have most other enemies in the same room, but the boss must always be the first enemy in the room (00). If the boss is more than one part, the all parts need to come before all other enemies, since the first one is usually possesive (takes control of the next enemies).


Thanks, I needed that info!  Very Happy





Quote:
If I can get my above problem fixed, I should be able to fix yours as well.  Very Happy


Thanks! I'm looking forward to it shadow!  grin new
Edit history:
Grime: 2009-05-02 04:02:35 pm
Ouuuuum
Alright, guys. This issue has me on the brink of utter despair. I might even cut myself. Not really. Anyway, after repeated attempts to repoint tileset 10 so I can change Norfair's duplicate/alternate palette set into something else entirely, I keep getting the subscript 9 error whenever I try to view tileset 10 with SMILE. I'm going to explain exactly what I'm doing from beginning to end, and hope that somebody can see some critical little step that I might be overlooking.

Spoiler'd to prevent wall-o'-text ambush:

1.) I open a room with tileset 10 in use in SMILE.

2.) Edit > graphics editor > show scenery pointers:
Table data: $7E6F3 -> $20E361
Tile data: $7E6F6 -> $1EC3F9
Palette data: $7E6F9 -> $2135E4

3.) GOTO > 7E6F3 (table pointer) takes me to the values 61 E3 C1; reversing the bytes gets me C1 E3 61
-GOTO > 7E6F6 (tile pointer) brings up values F9 C3 BD; reversed: BD C3 F9
-GOTO > 7E6F9 (palette pointer); E4 B5 C2; reversed: C2 B5 E4 - I haven't tried to repoint the palette data yet. I intend on doing this once the tile/table data is repointed successfully, if ever.

4.) I go back to SMILE and enter the reversed bytes into the $__ ____ area of the edit > pointers window to get the appropriate ROM addresses ($C1 E361 = 20E361, $BD C3F9 = 1EC3F9, $C2 B5E4 = 2135E4)

5.) I then skip over tileset 11 because it is in the same group as 10, which puts me at tileset 12. Edit > graphics editor > show scenery pointers:
Table data: $7E705 -> $20F4B1
Tile data: $7E708 -> $1F3130
Palette data: $7E70B -> $21383C

6.)GOTO > 7E705 (table pointer) B1 F4 C1 -> C1 F4 B1 (ROM address: 20F4B1)
-GOTO > 7E708 (tile pointer) 30 B1 BE -> BE B1 30 (ROM address: 1F3130)
-GOTO > 7E70B (palette pointer) 3C B8 C2 -> C2 B8 3C (ROM address: 21383C)

7.) Starting with the table data, I highlight everything between ROM addresses 20E361 and 20F4B1, starting and stopping exactly where the cursor placed me after GOTO'ing both of the offsets so I had the exact data from beginning without undershooting or overshooting how much I needed to copy - of note is that in other attempts, I also included and excluded the whole line to the right of those addresses to see if that would work. It didn't.

8.) I GOTO 2FD4E0 where there's some free space (as told in squishy_ichigo's repointing GFX guide) and paste write the copied tile data at that exact location

9.) I GOTO the table data of graphic set 10 (7E6F3) and replace the values 61 E3 C1 with values E0 D4 DF (2FD4E0 = DFD4E0 = E0 D4 DF)

10.) Moving on to the tile data, I highlight everything between ROM addresses 1EC3F9 and 1F3130 (close to 1800 lines!) - again, I tried highlighting the exact cursor start/end points, as well as including/excluding the whole line to the right of the ROM address in various attempts.

11.) At the very beginning of bank E1, which is entirely unused free space, I paste write the massive hunk of copied tile data in, leaving roughly 8 pages of free space remaining.

12.) I GOTO the tile data of graphic set 10 (7E6F6) and replace the values F9 C3 BD with values 00 80 E1 (308000 = E18000 = 00 80 E1)

13.) I then save the ROM, close HxD, open SMILE, attempt to load graphic set 10 (11 still works just fine) and get bitchslapped by a very lovely subscript 9.

So, halp? I reeeeeally want this done, even if I need to send my ROM to someone with more experience in this area who can figure out just what the hell I'm doing wrong here. And if you reply to this question, please word your answer in extreme layman's as if you were speaking to a total retard; bonus points for detailed step-by-every-little-step explanations.

This is all assuming there's something I'm doing noticably wrong. Is it possible I've just got a crap ROM? It should be noted that I can add doors and expand room tile data/distribute free space to other rooms using hex without any problems, so I don't see how this would be any different. And of course, the ROM is unheadered.


Edit: Scratch that, situation resolved! For anybody curious what the solution was, DSO suggested I highlight a few hundred extra bytes (so about 19 lines) below the next tileset's ROM address/end point The start point however still needs to be exactly where the blinking cursor puts you when you GOTO. Major props to DSO and squichigo for helping me along with the process; I wouldn't have gotten it down otherwise.

I'll leave my spoiled woes posted above. Might come in handy for somebody who needs the process explained in a bit more detail. =P
Okay, starting to get confused... Need more ASM knowlege. (This is not a SMILE question, but I don't think it deserves its own thread)

According to the sm_misc.txt file items are set up in an array like this.
Item Array
7E:09A2/09A4
0000 0000  0000 0000
|||| ||||  |||| |||\Varia
|||| ||||  |||| ||\-Spring Ball
|||| ||||  |||| |\--Morphing Ball
|||| ||||  |||| \---Screw Attack
|||| ||||  ||||
|||| ||||  |||\-----Unused (1)
|||| ||||  ||\------Gravity Suit
|||| ||||  |\-------Unused (2)
|||| ||||  \--------Unused (3)
|||| ||||
|||| |||\-----------High Jump
|||| ||\------------Space Jump
|||| |\-------------Unused (4)
|||| \--------------Unused (5)
||||
|||\----------------Bomb
||\-----------------Speed Booster
|\------------------Grapple
\-------------------X-Ray


There are only two numbers there 09A2, and 09A4. So how are there four sets of data in the array. (Ex: 0000 0000 0000 0000) Obviously I am missing something. I thought that maybe the first set of zeros represents address 09A2, the next set of zeros is for 09A3, and so on until 09A5. I tried setting all of those addresses to 0001 to see what power ups I received and here is what I got. Varia Suit and Hi-Jump boots. So my array must have been set up like this now. 0000 0001 0000 0001. So how do I set the first and third parts of the array?

Also, when I get these items they activate just like it does when you normally receive it. The problem is when they are taken away, they aren't seen in the inventory but they are still usable... So my guess is that the game runs some kind of check for Samus's items? So whenever I take them away the game doesn't run that check, so the items are still usable until that check is ran? I don't know... I thought maybe the check would have ran if I moved to a different room, but after the room transition the items were still usable. (except for beams... those are disabled right away.) Any help is greatly appreciated!
I just made an important discovery about door placement.  to get them to line up horizontaly  the top of the door must be 7 tiles down from the top of screen .  It works perfect for me and saves alot of trouble lining them up
Quote from Shadow34370:
Item Array
7E:09A2/09A4
0000 0000  0000 0000
|||| ||||  |||| |||\Varia
|||| ||||  |||| ||\-Spring Ball
|||| ||||  |||| |\--Morphing Ball
|||| ||||  |||| \---Screw Attack
|||| ||||  ||||
|||| ||||  |||\-----Unused (1)
|||| ||||  ||\------Gravity Suit
|||| ||||  |\-------Unused (2)
|||| ||||  \--------Unused (3)
|||| ||||
|||| |||\-----------High Jump
|||| ||\------------Space Jump
|||| |\-------------Unused (4)
|||| \--------------Unused (5)
||||
|||\----------------Bomb
||\-----------------Speed Booster
|\------------------Grapple
\-------------------X-Ray

There are only two numbers there 09A2, and 09A4. So how are there four sets of data in the array. (Ex: 0000 0000 0000 0000) Obviously I am missing something. I thought that maybe the first set of zeros represents address 09A2, the next set of zeros is for 09A3, and so on until 09A5.


Only takes one word, really. Binary. FF in hex equals 11111111 in Binary. Thus, FF would mean every single bit was actiavted. Two bytes give us 16 bits, 5 of those bits are unused. There's binary math operations the SNES can do to check things on the binary level. There's a bit set aside for every item, not a byte. Of course, in hexidecimal, 10 is twice as much as 8, so the pattern for checking a specific bit would go 01, 02, 04, 08, 10, 20, 40, 80, etc... That's why items will have values of 2, 8, 40, etc. because those correspond to 0000 0010, 0000 1000, 0010 0000, etc...

As for your other question, looking at it, there's more than one array, so STZ them all. (Don't need to go LDA #$0000, just use STZ $09A2...)

7E:09A2 - 7E:09A3    Equipped items
7E:09A4 - 7E:09A5    Collected items
7E:09A6              Equipped beams
7E:09A7              Equipped Charge beam
7E:09A8              Collected beams
7E:09A9              Collected Charge beam