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 mikeyk |
Pages: 1 2 3 4 5 6 |
User | Post | ||
mikeyk Koopa Level: 18 Posts: 1/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I'm working on a hack and I want to add the classic goomba. I know the hex code I have to modify to make rex have its properties, but is there an easy way to have the original rex (that takes 2 hits) on some levels and the goomba (that takes 1 hit) on other levels? In other words, do I have to sacrifice the original rex throughout the entire game to use the goomba? | |||
mikeyk Koopa Level: 18 Posts: 2/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Thanks for the responses so far. I got a couple of things I'm still wondering. I thought about simply changing the graphics for the blue koopa, but isn't it programmed to kick a shell if it comes across one? And Aioria, since you used the moles in you hack do you just have the goombas popping out of the ground? |
|||
mikeyk Koopa Level: 18 Posts: 3/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
There is always the trick of carrying an item, such as a turtle shell, through the final goal post. Depending on Mario's state and what's in your item box, you'll either get a 1up or a powerup. Free guys come if you're small or super Mario and have a mushroom in the box, if you're firey Mario with a flower in your box, or if you're caped Mario with a feather in the box. Hope this helps some people. | |||
mikeyk Koopa Level: 18 Posts: 4/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I found SMWR here: http://www.h7.dion.ne.jp/~tkmt/smwr/SMWR.htm It is an interesting hack. KT uses red shelless koopas and dino torches (with the fire disabled) for goombas. How either of these two things can be accomplished is a question for someone else. |
|||
mikeyk Koopa Level: 18 Posts: 5/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I've been enjoying the hack a lot... great work. I have come across a problem in the world 2 castle. It's possible to end up on top of the ceiling when jumping through the tornado. If you run all the way to the right, you end up trapped with the Boom Boom music going off. I had to let time expire... if this was intentional, I think there should at least be a pit to jump down to kill yourself. No other problems so far. Again, great work, and thanks for some new entertainment. | |||
mikeyk Koopa Level: 18 Posts: 6/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
i have a question about using block editor. I am trying to add certain included blocks that change into the next map16 when hit. However, if I insert any of these blocks in any of the map16 pages from 4-F, the game crashes when I hit the block. I have no problem using these blocks when they're in pages 0-3, but I want to use BMF's slowdown fix that requires the blocks to be on page F. I've experienced this problem with every rom that I've tried adding blocks to (including a unedited, just expanded ROM). Please help if you can. | |||
mikeyk Koopa Level: 18 Posts: 7/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I've been using the original version of block tool. That is why I can say the "to next map16 object" blocks work fine on pages 0-3. People say that they only experience slow downs with a ton of custom blocks. However, I have about 30, and there is still a noticeable slow down when there are a lot of sprites on screen. I particularly notice the slowdown at the start of Yoshi's Island 2 where all the red koopas are on the first ledge. | |||
mikeyk Koopa Level: 18 Posts: 8/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I am just starting out with ASM. So far I have just been observing the original code and making small modifications. I know that the Chargin Chuck hit points are set by this instuction which is at ROM location 0x149EF: $02/C7EE C9 03 CMP #$03 I want to keep the value of 3 throughout my game, but I am trying to make one level where Chucks will take 5 hits instead. I installed BMF's palette controlled ASM hack and tested it with some code involving coins, and that worked out great. So I was hoping to add a bit of code to change the Chucks, that is changing the above instuction to CMP #$05. I thought it would be as easy as adding this... A9 05 (LDA #$05) 8F EF C7 02 (STA $02C7EF) but that didn't produce any changes. I'm just starting to poke around with ASM, so I realize there's probably something wrong with how I'm thinking about this. Is it possible to modify an original instuction for a level using BMF's palette control? Please help me out if you can. |
|||
mikeyk Koopa Level: 18 Posts: 9/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Thanks for the clarification. I went with something along the lines of #1, and I'm happy to say I have a hack where Chucks have different HP depending on the level. On to bigger and better things. Thanks again | |||
mikeyk Koopa Level: 18 Posts: 10/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I took a look at the palette info in the ROM and I think I found something that may help you. It looks like you are using sprite 62 for your line guided platforms. If so, you can change the palette that they use by modifying ROM address 0x03F660 (originally E1). Changing E1 to the following will give you new palettes. E1 - palette 8 E3 - palette 9 E5 - palette A E7 - palette B E9 - palette C EB - palette D ED - palette E |
|||
mikeyk Koopa Level: 18 Posts: 11/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I had this problem earlier and didn't want to design around it, so I found the bytes where the head's horizontal displacement was stored. ROM bytes 0x1984C and 0x1984E both need to be changed from FC to 00. ROM bytes 0x19858 and 0x1985A both need to be changed from 04 to 00. This should take care of your problem... Rex's head also bobs up and down (1 pixel between frames). It's very possible that you want to keep this effect, but if not ROM address 0x19864 should be changed from F1 to F0. (edited by mikeyk on 08-25-04 09:33 PM) (edited by mikeyk on 08-25-04 09:34 PM) (edited by mikeyk on 08-26-04 02:43 AM) |
|||
mikeyk Koopa Level: 18 Posts: 12/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I was looking at a few things in the newbie FAQ about sprites, namely the responses to these: Q) How do you edit how sprites works? / How do you add new sprites? A) You can't... Yet... Q) But I saw a hack where some of the enemies was changed! A) Don't look! Don't ask! Forget all about it. It never happened. OK? The answers state matter of factly that you just can't edit how sprites work. What exactly does this mean? Wouldn't it be more appropriate to just say it requires ASM or changing data tables in the ROM? By modifying one byte, you can change whether an enemy can be killed with a cape or fireballs. You can change the tiles they use (not the exgfx, but rather tile mapping). You can change the area that will cause interaction with a sprite (essentially it's size). With ASM you can give code to the unused sprites that must be inserted manually in LM (sprite 12 for example). I'm pretty new to the board, so I don't know if this stuff has been done before, but I've found it entirely possible to do some stuff with sprites that the FAQ may cause you to think otherwise. I'll try to whip something simple up to show a bit of what I'm talking about. |
|||
mikeyk Koopa Level: 18 Posts: 13/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I've thrown together a one level demo that features a classic stompable goomba. I think what makes this different from what other people have done in the past is that I did not replace an enemy in order to add it. My goomba is it's own sprite (number 12) that can be added manually in LM using Crtl+Ins while in sprite adding mode. Right now it's tiles are mapped to use the SMW goombas, but I think I may look into using the Nintendo Presents tiles instead. The ROM is not locked, so download it and take a look around if you're interested. I can post the data I've used to do this, if there is interest. Next up, I'm going to try to make a SMB1 style hammer brother. goomba_demo.ips These goombas are stompable |
|||
mikeyk Koopa Level: 18 Posts: 14/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Someguy: It may be surprising, but there isn't a whole lot of ASM in this demo I made. I was going to release it with none at all, but there were a few things that I wanted to improve. The two things I did end up doing with ASM were preventing the goombas from entering shells and making them explode when stepped on (I only did the second one because I didn't have a sprite designed for the smashed ones). As for a RATS tag, I've only gotten into hex/ASM in the past two weeks, so I wasn't really sure what one was or how to use it. I just made an assumption from what I saw in the ROM to just prefix my custom code with 53 54 41 52 and end it with FF, but I don't know for sure if that's all there is to it. Even though I didn't write much for this demo, without ASM I never could have traced through the code to find the necessary sprite data. The first important thing I found was a subroutine starting at SNES address $07F7A0 that runs when a sprite is initialized. It loads data from 6 major tables in the ROM. Listed below are the ROM addresses for the begining of the tables and the RAM locations they are associated with. 0x03F46C -> 7E1656 0x03F535 -> 7E1662 0x03F5FE -> 7E166E 0x03F6C7 -> 7E167A 0x03F790 -> 7E1686 0x03F859 -> 7E190F All of these tables are indexed by sprite number (starting with x00 for the shelless green koopa). Here's a few of my notes about some table values. I've still barely touched the surface of all this data. I have the RAM locations as the headers, cuz that's what I see in my trace logs. 7E1656 setting both bits 5 and 6 makes an enemy stompable setting bit 8 changes the cape/star kill style 7E166E setting bit 1 changes the gfx page bits 2-4 tell which palette (8-F) the sprite uses setting bit 5 disables fireball killing of the enemy setting bit 6 disables cape killing of the enemy 7E1686 if bit 8 is set the sprite passes through floor bit 7 is set if the enemy is sprite creating (which is created is in a different table) 7E1662 I've noticed that changing data here changes the area for sprite interaction. For example, you've probably seen in hacks where rexes have been changed into goombas, you can still get killed by an invisible rex head. Fixing this is as simple as changing rex's table value 0x03F5E0 (0x03F535 + AB) to x00. Keep in mind that not all sprites use the data loaded from these tables. Some get new data from their own tables found in sprite specific routines. For my demo, I just changed entry 12 to match entry 00 for all six tables. I then needed to make sprite 12 use the code for shelless koopas, so doing some tracing I found another very important table at ROM address 0x0087CC. This table holds the memory locations (2 bytes for each sprite) to go to for the handling of each sprite. Sprite 12 intially jumped to a RTS command (made sense since it's listed as a null sprite), changing it to use the shelless koopa's code finally gave me some results I could see. I had a sprite that acted like a koopa, but the graphics it used was off. 7E1602 holds the animation frame, but I needed to change the tiles that the frames used... more tracing, more tables. 0x009E7F is the begining of an offset table that is indexed by sprite number. 0x009D83 is the start of a gfx tile table that is indexed by a value in the offset table. For example the entry for a green shelless in the offset table is x09, so the gfx tiles for the shelless start at 0x9D8C (0x009D83 + x09). Again not all of the enemies are stored here. I started to document which were but lost interest. I'll include what I did find though: (0) 82 A0 - koopa Walk 1 82 A2 - koopa walk 2 84 A4 - koopa turning 8C - koopa shell 8A - koopa shell ani 1 8E - koopa shell ani 2 (9) C8 - shelless walk 1 CA - shelless walk 2 CA - shelless turn CE - unused? CC - shelless fliping shell 86 - struggling shelless 1 4E - struggling shelless 2 (10) E0 - blue shelless walk 1 E2 - blue shelless walk 2 E2 - blue shelless turning CE - unused? E4 - blue shelless kicking E0 - blue shelless struggling 1 E0 - blue shelless struggling 2 (17) para-goomba a3 - straight goomba 8x8 tile 1 a3 - straight goomba 8x8 tile 2 (mirrored) b3 - straight goomba 8x8 tile 3 b3 - straight goomba 8x8 tile 4 (mirrored) e9 - tilted left goomba 8x8 tile 1 (mirrored) e8 - tilted left goomba 8x8 tile 2 (mirrored) f9 - tilted left goomba 8x8 tile 3 (mirrored) f8 - tilted left goomba 8x8 tile 4 (mirrored) e8 - tilted right goomba 8x8 tile 1 e9 - tilted right goomba 8x8 tile 2 f8 - tilted right goomba 8x8 tile 3 f9 - tilted right goomba 8x8 tile 4 e2 - straight parachute e6 - tilted parachute (25) AA - goomba walk/struggling 1 A8 - goomba walk/struggling 2 A8 - goomba turning AA - unused?? (29) para-bomb A2 - straight A2 - straight B2 - straight B2 - straight C3 - tilted left C2 - tilted left D3 - tilted left D2 - tilted left C2 - tilted right C3 - tilted right D2 - tilted right D3 - tilted right e2 - straight parachute e6 - tilted parachute (37) CA - bob-omb walking 1 CC - bob-omb walking 2 CA - bob-omb turning (3A) AC piranha plant closed mouth CE classic/upside down stem frame 1 AE piranha plant open mouth CE classic/upside down stem frame 2 83 displays behind left of jumping piranha frame 1 ??? 83 displays behind right of jumping piranha frame 1 ??? C4 jumping stem 8x8 tile 1 frame 1 C4 jumping stem 8x8 tile 2 frame 1 83 displays behind left of jumping piranha frame 2 ??? 83 displays behind right of jumping piranha frame 2 ??? C5 jumping stem 8x8 tile 1 frame 2 C5 jumping stem 8x8 tile 2 frame 2 (46) 8A - football (47) A6 - bullet bill A4 - ??? A6 - ??? A8 - ??? (4B) 80 - spiny walking 1 82 - spiny walking 2 80 - spiny turning (4E) 84 - spiny egg 8x8 tile 1 frame 1 84 - spiny egg 8x8 tile 2 frame 1 84 - spiny egg 8x8 tile 3 frame 1 84 - spiny egg 8x8 tile 4 frame 1 94 - spiny egg 8x8 tile 1 frame 2 94 - spiny egg 8x8 tile 2 frame 2 94 - spiny egg 8x8 tile 3 frame 2 94 - spiny egg 8x8 tile 4 frame 2 For my demo, I gave sprite 12 the same offset as the SMW goomba, and that's precisely what appears. The more I look through the ROM, the more tables I see, so hopefully this will spark some interest in documenting them. Right now I'm working on making a SMB1 style hammer brother. So far I've got the code for hammer throwing (almost a direct copy of the SMW's hammer bro) and have a modified rex calling that code. I still have to rework to code for his movement, but hopefully I'll have some more to share in the not so distant future Well that does it for me... after about an hour of typing this post I'm sleepy |
|||
mikeyk Koopa Level: 18 Posts: 15/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Whether a sprite editor gets made or not is not a big deal to me. I wouldn't say that it would ruin SMW hacking, simply because I don't think there's enough information yet to make a very powerful editor. Changing a sprite's table entries is only useful if the sprite's code already makes decisions based on that data. If a program was created to easily change the values in the table, in most cases you'd still need to add ASM to see results. If you guys want to go through making an editor, good luck. I think it might be useful as a tool to understand the data better. As for me, I'll continue to post sprite data that I come across in the ROM, and I encourage you to do the same. I know I have tons more info in my notes somewhere, but for now: The tiles to use for the powerups (mushroom, flower, star, feather, 1up) are at 0x0C809 - 0x0C80D. These are loaded at SNES $01C6D7. Don't really remember what enemies use this data, but here's what was in my notes... 0x08AF0 - SNES $018BE0 - indexed by sprite number (The SNES addy is code relating to the table, not the location of the data itself) bit 1 fast bit 2 stay on ledge bit 3 follows mario bit 4 jumps shell bit 7 2 tiles high (edited by mikeyk on 08-27-04 10:20 PM) (edited by mikeyk on 08-27-04 10:22 PM) |
|||
mikeyk Koopa Level: 18 Posts: 16/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
I think hhallahh is definitely right about not seeing anything too major for a while. Keikonium: thanks for the list of null sprites. I was just about to look through and find them, but you saved me a bit of time there. The two sprites you were confused about (which you lised as Sliding Koopa 2: BD and Chargin Chuck 2: 9C) ...it seems to me that BD is the only sliding koopa and 9C it the platform for the hammer bro. Anyways, here is some more data from my notes... this is all about Rex 0x1984C / $0396B3 rex tile horizontal displacement table (C entries for facing left, C entries for facing right) 0x19864 / $0396BD C entries (rex tile vertical displacement table) 0x19870 / $0396C3 C entries (rex tiles) 0x1987C / $0396CB 2 entries (rex walking left info, rex walking right info) bit 8 flip tiles bit 7 mirror tiles bits 2-4 palette bit 1 gfx page I also thought I share a picture of my second custom sprite. This one was also pretty simple. I think you can all figure out what it does. |
|||
mikeyk Koopa Level: 18 Posts: 17/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Something I always do in addition to making backups, is save each level in .mwl format after I complete it. That way even if you lock your ROM, you'll at least have the level data somewhere else. Sorry to hear you lost your hack. | |||
mikeyk Koopa Level: 18 Posts: 18/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
With the recent interest in sprite data, I've decided to re-release the info that I gathered a few months ago. This file contains a bunch more info that I never posted before, specifically about the table at $1662 (0x3F535). Since the end of summer I really haven't had any free time to hack, but I'm glad to see some interest in sprite creation. Perhaps I can find some time to get back into it. Anyway, here's the data: http://home.comcast.net/~dkaminski/smw_sprite.doc |
|||
mikeyk Koopa Level: 18 Posts: 19/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Keikonium: I could post an ips that has a poison mushroom as sprite 17 if you want it | |||
mikeyk Koopa Level: 18 Posts: 20/110 EXP: 25086 For next: 4811 Since: 07-17-04 Since last post: 45 days Last activity: 44 days |
| ||
Edit: Link removed, I will repost a version that hasn't been touched by LM, so the level data won't be corrupted. Here is the patch that has a poison mushroom as sprite 17. You'll probably want the sprite to use a different graphic than the regular mushroom. If so, change the value at 0xA0099 to that a different graphic tile (then you can use ExGFX to make it look like if does in SMAS). (edited by mikeyk on 10-28-04 12:38 AM) |
Pages: 1 2 3 4 5 6 |
Acmlm's Board - I2 Archive - - Posts by mikeyk |