Acmlm's Board - I2 Archive - Rom Hacking - Mario Land Enemy/Object Data Complete!
User | Post |
Violent J
Posts: 549/749 |
Meh...Im not finding anything new. Yet...I found some more enemy data but woopdie forking doo! lol. I will post the enemy data spots when I get them all for 1-1. |
VL-Tone
Posts: 160/200 |
Originally posted by Keitaro Hip Tanaka designed the sound hardware? News to me *shrug*. And HH, yer thinking of SML2
I said that he probably did. Let me tell you why I think so.
First, Hirokazu "Hip" Tanaka, for his first job at Nintendo designed the sound hardware (and software) for the original Donkey Kong arcade machine. I would assume he had at least a small role in designing the NES/Famicom sound hardware having previous experience at that. Tanaka was part of R&D1, directed by Gunpei Yokoi (part of R&D1 became intelligent systems http://intsys.co.jp). He did the music for most of the first small NES games like Balloon fight, Gyromite, Duck Hunt and others (Like Metroid!). He also wrote his own tools to generate music and sfx for the NES. The GameBoy was designed by the R&D1 team, and Tanaka was a hardware and software sound engineer so he probably at least co-designed the GameBoy sound hardware. SML really looks like it was the first game designed for the GB, and the game probably evolved as they were designing the HW, so it was best for them to have a sfx and music composer working on the HW. Another thing pointing to an involvement in the GB hardware is that Tanaka in fact designed the GameBoy Camera hardware, and directed the software aspect (I'm betting that he coded the DJ mini-game himself).
Anyhow, let's get back to Super Mario Land hacking (sorry for the off-topic post). |
HyperLamer
Posts: 6464/8210 |
Yeah, that was it. I knew it was one of the SML games. |
Someguy
Posts: 374/397 |
Originally posted by HyperHacker I figured that out from the Metroid 2 resources laying around in the SML (or was it SML2?) ROM.
You most likely mean 2, because I myself found the entire credits in SML2.
EDIT: Sorta skipped over part of Keitaro's post, whoops. |
Keitaro
Posts: 1258/1342 |
Hip Tanaka designed the sound hardware? News to me *shrug*. And HH, yer thinking of SML2 |
HyperLamer
Posts: 6439/8210 |
I figured that out from the Metroid 2 resources laying around in the SML (or was it SML2?) ROM. |
VL-Tone
Posts: 158/200 |
Wow SML hacking at last! Great jorb guys!
SML is one of the game I wish to be seen hacked/edited, (since I played it alot when I had my gameboy in 1988)
In the "did you know that" section: Did you know that SML was produced by Gunpei Yokoi and part of the Metroid team? Hip Tanaka (who worked on Metroid) did the music and sfx for SML. He's very good at giving the impression that the gameboy could play more than 3 notes at the same time, even more so since he probably designed the sound hardware for the gameboy. |
HyperLamer
Posts: 6417/8210 |
The Hard Mode list should be exactly the same as the normal list. The high bit just indicates whether they should be hidden in normal mode. |
Violent J
Posts: 533/749 |
Frank holy crap awsome! That means I didn't get all the data! all those "Nothings" were hard mode enemys! Well damn, now I have to figure out a way to start hard mode always
Uh oh....ever since Prier messed with my layout...It killed the thread!!
|
Coolman
Posts: 27/32 |
If somebody is interested: Mario position is definded in the routine at 03:4823 |
Frank15
Posts: 123/126 |
Originally posted by Sonicandtails 2. Find the hard mode enemys
I may have lost my notes, but this I remember: from 80-FF are the hard mode enemies: they'll appear as nothing unless you're in hard mode, whether it's enemies or moving platforms or anything like that. Like 00 is a Goomba. 80 would be a Goomba that appears in hard mode only. |
HyperLamer
Posts: 6402/8210 |
Yeah, the MBC1-5 are all pretty much compatible. Unless a game is using the MBC3's clock, you can upgrade it pretty much just by changing some header bytes.
Originally posted by Keitaro Sweet....HH found my notes. You rock, I lost them on my old hardrvie anyways, yep. that's basicly what I found. So yeah, it uses a olumn system which I beleive to be similar to Zelda's...I still have to look into things a little more, but hopefully this will help some other people looking as well.
I actually forgot I had those. They weren't in my ROM Hacking folder, for some reason.
Also I think Mario's start position is hardcoded to be the same in every level, but I can hack that pretty easily. (I actually made such a hack a while back, but I barely knew ASM, so it was buggy as hell. ) |
Coolman
Posts: 26/32 |
Perhaps you should also know, that tiles FDh, 70h, 80h, 5Fh and 81h are special. If the tile is FDh it takes another byte from the ROM and outputs this instead of reading one tile after the other. Example: 52 FD 05 So the output ist 05 05 at the 5th row. I don't know how 70h, 80h, 5F and 81h work. I've just seen in code that they are special.
offset1 = [0x4000 + [FFE4] * 2] offset2 = [offset1 + [FFE5] * 2] This is the way to calculate the map offsets. Don't know what rom bank this is for. Sorry, but haven't found the code which loads the rom bank. ^^"
I hope this is useful... |
Violent J
Posts: 531/749 |
Awesome! Alright, so we can expand and give more space to the ROM! That music address file will add geatly to all this too. Looks like we're getting a little group together
Im still fiddleing with the damn level layout. Im really getting confused as some things can contadict other things and cancel each other out :s (This one thing I did got rid of the first pipe, but another thing I did, brought it back :s) |
Keitaro
Posts: 1256/1342 |
True, GB/C expansion is perhaps one of the easiest things imaginable. And I could look a little bit more into this for you, too Sonicandtails. I still have that level's music data somewhere (it was stored in its own little area, each level in order, and it was just hex numbers for what songs played. a table, if you will.) |
Coolman
Posts: 24/32 |
Well, you can resize almost every gb-game to 2MByte. All you have to do is to change the memory bank controller, change the rom size by filling up with 00-bytes and change the rom size in the rom header. For details read gbspecs.txt. |
Violent J
Posts: 529/749 |
Holy Shit your sprite list is almost the same and just as funny as mine XD . Anyways, wow those notes are nice, but I already figured out the "lines" for the level layout, and where 1-1 starts. I think if we could add more space to the ROM, we could put more into it. Wait...Isn't hard mode where theres more enemys? Would this mean we could delete all that extra enemy data and have more for adding spaces for blocks and such?
List of things to do (You guys need to help too ) 1. Find way to expand rom 2. Find the hard mode enemys 3. Figure out a cleaner way to edit the level "lines" (I can do it, but it takes alot of guess and check, so we need to find out an easier more efficent way.) 4. Mario's start position would be nice
Alright, lets get to work (That is, if you guys are helping) |
Keitaro
Posts: 1255/1342 |
Sweet....HH found my notes. You rock, I lost them on my old hardrvie anyways, yep. that's basicly what I found. So yeah, it uses a olumn system which I beleive to be similar to Zelda's...I still have to look into things a little more, but hopefully this will help some other people looking as well. |
HyperLamer
Posts: 6384/8210 |
Aha! I have those notes!
World 1-1 data starts at A200 World 1-2 data starts at A9A6
Each screen is made up of vertical lines. FE comes between each vertical line (there are no pointers for these, they can be freely moved around)
Each vertical line is made up "background elements", which is just a way of not have the blank space listen in the ROM. One byte at beginning of each background element: - First digit gives the vertical position (the background elements do _not_ have to be placed in the ROM in order from highest to lowest) - Second digit gives the number of tiles Then there's a byte for each tile in the background element
This does not include anything that moves or is animated. As far as I can tell, it includes everything else.
There must be a list somewhere in the ROM that determines the properties of each tile.
It doesn't have the entire level encoded this way - it has each _screen_ encoded this way, and somewhere in the ROM there is a list of the order the screens should go in. In each level there are many entire screens that get repeated over and over again.
Special tiles: 79 - Block (something else determines what type of block it is) F4 - Coin
Random notes: - Changing 05ED screws up the graphics - Changing 05DE screws them up even more - Changing 063B stops Mario jumping! - Changing 063E takes you back to the title screen as soon as the game starts - Changing 0644 removes Mario, and makes the timer stay on 400 - Changing 07FD makes the music continue playing when you pause the game - Changing 087A changes how the collison between a mushroom and the top of Mario's head works - Changing 0892 makes it so Mario goes straight through enemies and items (other than coins) - Changing 08DE makes it so Mario kills an enemy when he touches it, or goes through it if it's not an enemy that can be jumped on - Changing 0918 stops a score appearing when you kill enemies by jumping on them - Changing 09BB completely removes the effect mushrooms have on you - Changing 09BD does the same, and if you change it to 9A it also turns on hard mode for some reason - Changing 09BE removes the animation for when Mario transforms --- - 0216 is on 00 by default - changing it to 01 turns hard mode on, 02+ do various continuey things - 0348 controlls the offset of some of the title screen graphics O.o - 0354 controlls the offset of the rest of the title screen graphics O.o - 0375 controlls the often of the graphics for the text on the title screen - 0394 seems to be the start of the actual layout of the title screen - 05EB controlls the offset of the in-game graphics (except for enemies, etc.) - 05EF screws up what different things look like depending on what you change it to - 05F7 controlls the offset of the enemy, item, etc. graphics - 0613 controlls the location of the text (i.e. not numbers) in the info bar - 0742 controlls the location of the "Pause" text - 07C1 turns off music during levels (but strangely, not when you're in a coin room) - 080B does something VERY weird! - 0871 is the can't-hit-items-or-enemies thing again... but this time it wears off O.o
And a sprite list:
Sprite data starts at A004. Format: [type] [x coord] [y coord] [unknown 6 bytes]
Note: Some of these appear all wrong, I'm guessing there are multiple sprite graphic sets. Sprites marked with a ? need more studying. Descriptions "#xx" mean they're the same as the number specified, IE 11 = #0D means 11 is the same as 0D. 00 = Goomba 01 = Dead Goomba 02 = Piranah Plant 03 = Bouncy Ball Shooter? 04 = Koopa 05 = Exploding shell 06 = Pounding Hand 07 = Elevator up, limited time, slightly above set location 08 = Fire-breathing lion with boss music 09 = Fire-barfing moving plant 0A = 3-part platform, down-left? 0B = 3-part platform, left/right 0C = Falling Brick 0D = Nothing? 0E = Jumping bug 0F = Dead bug 10 = Jumping thing 11 = #0D 12 = #0D 13 = #07 but on ground 14 = #13 but doesn't wait for you 15 = Something dying? 16 = ? 17 = Robot head? 18 = ? Becomes #16 when nearby 19 = #15 1A = Water boss (doesn't come down - may require a celing to bounce off) 1B = Fireball 1C = #15, delayed 1D = Flying invincible lion? 1E = Low fireball 1F = High energy ball 20 = Bug bounces in place? 21 = Explosion + 2 energy balls 22 = Low slow energy ball 23 = Fast up+left energy ball 24 = Lion, bounces very high and spits fire 25 = #18? 26 = #0D 27 = Explosion 28 = Mushroom, goes right* 29 = Mushroom, goes left* 2A = 1up, goes right* 2B = 1up, goes left* 2C = Star, goes right* 2D = Flower (off ground a bit)* 2E = Flower* 2F = 3 fish? 30 = 1 fish? 31 = Lion scooting around on its butt? O_o 32 = Ball-throwing boss? 33 = Bouncy ball? 34 = Star, goes left* 35 = Falling spikes 36 = Falling II block thing 37 = #0D 38 = 3-part platform, up-right/down-left 39 = 3-part platform, up-left/down-right 3A = 2-part platform, down? 3B = 2-part platform, left/right 3C = Flying head (looks like a bird in 1-1) 3D = ? 3E = #15 3F = Lion 40 = Dead lion 41 = #3D 42 = Bug, drops arrows 43 = Dead bug 44 = #15 45 = Arrow 46 = Explosion 47 = #33 48 = Boss? 49 = Cannon 4A = Bullet 4B = Low Bullet 4C = II thing, takes you to the end of the level! 4D = #4C but doesn't wait 4E = #0D 4F = Alternate explosion 50 = Bullet, up-right 51 = Ball, goes up then down through ground, hurts Mario? 52 = Charging bug, jumps, shoots bullet down-right? 53 = ? 54 = Circling energy ball 55 = ? 56 = Jumping bug, doesn't die (could be Ninja)? 57 = "Dead" #56 (comes back to life) 58 = Funny energy ball, left fast 59 = ? Nothing shows, stays still, 800 points? 5A = Bullet up-left 5B = Last boss? 5C = 3 energy balls fast** 5D = Energy ball, up-left then left, fast 5E = #58, different GFX 5F = Energy ball, down-left 60 = Boss? 61 = Boss 2? 62 = Explosion, then #5B 63 = Lightning fast Goomba up-left?
*There is, unfortunately, no interaction for these (you can't get them). ** One goes left then left-up, one goes left, and one goes left then left-down. There can only be 10 sprites per line and I believe 40 onscreen before things go wrong.
And a table file!
00=0 01=1 02=2 03=3 04=4 05=5 06=6 07=7 08=8 09=9 0A=A 0B=B 0C=C 0D=D 0E=E 0F=F 10=G 11=H 12=I 13= 14=K 15=L 16=M 17=N 18=O 19=P 1A=Q 1B=R 1C=S 1D=T 1E=U 1F=V 20=W 21= 22=Y 23=. 24= 25=: 26=, 27=Z 28=! 29=- 2A=$ 2B=*
|
Violent J
Posts: 521/749 |
Well, I also have starting data of regular objects (Like the ground and such) and its coming along good. Only problem is, it dosn't seem like you can add much more data if you wanted to so you could add ground and other objects . Also, I also know the enemy locations, but I havn't really gone in depth with them yet...Expect more tomorrow or later. Im taking a break...Oh, and if anyone wants to test it... 0xA004 is the first Goomba. Just the byte to something in my data and tada! Instant customization of the first Goomba. If anyone knows a way to maybe add bytes (expand) to a ROM, that would be supurb. There isn't much for empty space on the ROM(About 1/8 of a levels worth...), so if you were to make a level hack, you'd really have to work with what you have. Also Im using Version 1.1, because other version just wont load up for me in Translhextion.
*Keitaro: Any help would be appreciated to gather all the data we can faster!* |
This is a long thread. Click here to view it. |
|