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 HyperLamer |
User | Post | ||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6282/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Mine used to be DUG-RIG-1; I figured that out when I was 6 or so and bored. Funny because my dad's truck was always getting stuck in something. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6283/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Me, I remember every phone number and address I've ever had. I don't really understand how you can't, but my mom doesn't. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6284/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Well I do have neighbours, I just don't know them. There's quite a difference. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6285/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Why doesn't someone make a translation based on that, then? You don't even need to speak Japanese. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6286/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
It's true, when you know ASM well enough (and it helps to have thourough knowledge of the game's programming) you can do anything THAT THE HARDWARE IS CAPABLE OF. No amount of learning ASM is going to get Mario 64 on NES. But yes, I'm sure at this point he could make any change that can be made. (I'm the same way with Gameboy, specifically Pok (edited by The Crimson Chin on 08-04-05 12:41 PM) |
|||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6287/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
The problem is FCEU is accurate. Most of these hacks change things in a way that would have the exact same effect on a real NES as on FCEU. Problem is, the emulators that were popular when they were made (NESticle, mainly) were crappy and inaccurate, so the games ran anyway and nobody realized there was a problem. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6288/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Sad to say this editor is HORRIBLY buggy. Otherwise I'd have made an SMB2 hack. Maybe someday I should work on an editor for this game. But I already have a bazillion projects ahead of it.. other editors, emulators, if you can think of it I've probably made plans to make one. |
|||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6289/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Well you should ask in Help/Suggestions. This doesn't really have much to do with SMW. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6290/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
There's a patch which allows you to alter gravity's effect somewhat. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6291/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Originally posted by Ice Man Uh... Level names? Looks good though. |
|||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6292/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Well the idea is that isn't possible with SMW's music engine. Is anyone still working on that MP3 streaming thing? If we could have sound effects, that'd be damn cool. |
|||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6293/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Unfortunately, if you place a midway gate anywhere, you'll re-enter in the first area of the level. You can do what Atma said, and just start Mario in some far-off room not normally accessible, with a pipe leading to where you want him to actually start. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6294/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
I dunno if these have been suggested, but:
|
|||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6295/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
Disch posted something similar a while back. The general opinion, which I completely agree with, is that unless you can develop said hardware for a real SNES it's not emulation. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6296/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
It's ASM. | |||||||||||||
HyperLamer <||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6297/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours |
| ||||||||||||
OK, this is a bug... Well, a bug in SMW (or Snes9x ) that LM doesn't account for. Before this door (to the right) I have a climbing net with 2 doors. (I removed the doors, because there were too many sprites such that Mario would disappear when he went behind the net... may be related to the problem.) This only seems to happen if I go through both doors. It doesn't act like a net, but it looks like one. |
|||||||||||||
(restricted) (restricted) |
HyperLamer |
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6300/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours
|
Well I poked at the code and figured out the very complicated sprite data. At $E037 is a 2-byte pointer table, indexed by level number, to the sprite data (all data is in ROM bank 3). Level number can be retrieved from RAM address $A269. (For some reason this game keeps everything in SRAM. ) The first level is 0, Tree Zone 1 is 1, that auto-scroll level near the tree is 0x19 and so on. Level 00's data can be found at $E077. Each sprite is 3 bytes. Sprite data ends when the first byte is 0xFF. This is where it gets "fun"... It's easiest if you divide the 3 bytes into groups of bits. |
Level 00, first Goomba (21 3B 3E @ $E077): ABCD EFGH-IJK LMNOP-QRS TUVWX Byte 1 = A-H Byte 2 = I-P Byte 3 = Q-X The sprite's X position in pixels, starting from the leftmost point in the level, is determined as such: 0000 EFGH LMNO P000 The sprite's Y position in pixels, starting from the highest point in the level, is determined as such: ???? ???? TUVW X000 (Not sure how it gets the high byte... this code is the work of satan. ) The sprite's type is determined through this nightmarish formula: 1: Get the first byte 2: Rotate it right twice, and clear the low 2 and high 2 bits (AND 0x3C) 3: If bit 2 is set, clear it and set bit 6 4: x = result 5: Get the second byte 6: Rotate right once 7: Swap the low and high halves (eg 1F -> F1) 8: Clear all but the low 3 bits (AND 7) 9: Add x So to shorten that a bit, I think it would look like: (0FCD E000) + (0000 0IJK). Also, not sure about X/Y. I think they start from the absolute highest/left-most position possible, but it might just be relative to the highest/left-most position in the level. Have fun! Also, these RAM addresses might be useful: AF30: Mario's X position, 16-bit, low byte first AF32: Mario's Y position, same as x there are several other position counters here, each with different values, but they only change when the screen scrolls. Most of them appear to have the high byte first. Changing this value doesn't move Mario... FF97, FFF0 = frame counters; FFF0 stops when game is paused FF80 = joypad input AF06=Spriteset, 0-1 (images + behaviour - try 01 in Tree Zone 1!) AF2B=Seems to indicate what a sprite is doing; changes to 0x20 when a Koopa is moving right and 0 when it's moving left FFD5=Different values depending on current sprite being processed (01=Koopa, 02=Shell, 03=Thrown shell, 04=Held shell, 08=Paragoomba, 09=Goomba, 0A=Dead Goomba) FFD9=Current sprite's Y position relative to top of screen FFDA=Current sprite's X position relative to left of screen FFDB=Current sprite type FFDB changes to different animation frames of the current sprite... the game must swap sprite data into these addresses before processing it (hence why changing them won't affect the sprite) AD00 = Sprite info for sprites that are on the screen AB00-AB05 = unused (set to 0xFF @ level start) AB06 = sprite info for entire level At AB06 the sprite data is decompressed into a nice neat format: Byte 1, 2: X position, 16-bit, high byte first Byte 3: Dunno Byte 4, 5: Y position, 16-bit, high byte first Byte 6: Sprite type At AD00, the sprites that are currently active are copied from AB06, and 10 additional bytes are added: Byte 7, 8: Dunno Byte 9: Anything besides 02 makes it disappear until you change it back, except for 01 which the game just changes to 02. Byte 10: How many pixels it is from the left edge of the screen. If it's more than 255 pixels away it becomes inactive. Not sure how it handles sprites being past the left edge. Byte 11: Current animation frame. Looks like it, anyway. Byte 12, 13, 14: Colour-related. Changing to 0x10 (or 0x0F for byte 14) changes colours. Byte 15: Which way the sprite is moving. 1=Left, 2=Right. Also, the sprite-loading code is at 03:6BBB ($EBBB). Finally, here's how to decode the sprite graphics: At 03:40B1 (spriteset 0) or 03:4F11 (spriteset 1) is a 2-byte pointer table to sprite image data, indexed by image number. Image number isn't the same as sprite number. 00 is Goomba, 04 is Koopa. Take the sprite number and multiply by 2, and add to either $40B1 or $4F11 depending on spriteset. This is the pointer to the sprite's image, low byte first, ROM bank 3. Here you'll find a series of 4-byte sprite attributes. Byte 1 is Y position, byte 2 is X position, byte 3 is tile #, byte 4 is tile attributes, just like in the GB's sprite memory. The data ends when byte 1 = 0x80. I'm not sure exactly what the X/Y location are for... if you change them, the sprite's image will keep jumping around. Goomba's data is at 03:4213: y x t a F0 F8 B1 00 F0 00 B1 20 F8 F8 B2 00 F8 FF B4 20 80 which means: -tile B1, attribute 00, at X=F8, Y=F0 -tile B1, attribute 20, at X=00, Y=F0 -tile B2, attribute 00, at X=F8, Y=F8 -tile B4, attribute 20, at X=FF, Y-F8 -end of data And here's the graphic loading code I just described, "re-written" in C: #define SpriteSet 0xAF06 (edited by The Crimson Chin on 08-04-05 10:36 PM) (edited by The Crimson Chin on 08-04-05 10:58 PM)
HyperLamer |
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people Sesshomaru Tamaranian Level: 118 Posts: 6301/8210 EXP: 18171887 For next: 211027 Since: 03-15-04 From: Canada, w00t! LOL FAD Since last post: 2 hours Last activity: 2 hours
|
Only N64 debugger I know of is Nemu. Good luck. (Or you can do a bit of simple stuff like memory editing/viewing and breakpoints in RAM if you have a real N64 and Gameshark.) |
|
Acmlm's Board - I2 Archive - - Posts by HyperLamer |