Register | Login | |||||
Main
| Memberlist
| Active users
| Calendar
| Chat
| Online users Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album |
| |
Acmlm's Board - I3 Archive - - Posts by interdpth |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
User | Post | ||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
I found my problem, GetLastError(); is one good function turns out my code was working but my location to the picture was wrong. Slap me. | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Ok, I just moved into this new house and when I went to the garage I found an NES box, inside the box was an NES, Zapper Gun, 2 controllers, and the necessary plugs and this little strategy guide, everything still had it's wrapper all the manuals are there adn stuff well the power cord didn't have the packaging over it. Anyhow i'm wondering how much money I might be able to get for this, any clues anyone? | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
3 letters
R G Fucking B |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Beginning of tutorial
Ok, the Logger, Map viewer, Tile Viewer, and Memory editor in Visual Boy Advacne are some of the most powerful tools to GBA romhacking. For this tutorial you will need 3 things, Visual Boy Advance the development edition, Metroid Zero Mission, and Hex Workshop, and Unlz-GBA and Tile Layer Pro. The ROM we are working with is Metroid Zero Mission. Ok, now open the Rom up in VBA and then in Hex Workshop. This tutorial is going to teach you, how to find the data you want. And how it gets to the destination and where the source comes from in the ROM. Ok, after the ship lands just go to the Right when you get to the door go through(yes you're skipping the morphball) now then Go to tools then open the logger, memory editor, map, and tile viewer. Ok the room Tileset is located at 0x6005800 in memory and the general is at 0x6004000. So what we're going to do is find out is the offset of where the source destinations is in the ROM. Ok, now let's find the room tileset. Shoot open up the door to your left go through it. Then shoot the door you just came through, now open the logger click SWI and go through when the room is done loading click on the logger go to the little section with all the LZ77UnCmps now in these look for 0x06005800. Now what you should find is LZ77UnCompVram: 0x085e2974,0x06005800 (VCOUNT=11) So your tileset is located at offset 0x532974 . Now switch to the rom in Hex Workshop search for 0x74295308(pointer for the offset) This lands you smack dab in the tile pointer table congrats. You used the Logger to your satisfaction now for the general tileset this is kind of more tricky as many there are many different SWI's involved. Ok so we know the general is at 0x6004000 for every room. Clear the VBA logger then uncheck SWI now shoot the door go back to the logger click DMA3 ok after the room is reloaded open up a notepad doc select all the data in the logger and copy it to a notepad. Search for 0x6004000 Ok so we have a hit for a dma transfer DMA3: s=0201b000 d=06004000 c=8000 count=00000080 Ah crud it's from RAM ok we can hopefully get a real address so lets search the notepad doc for d=0201b000 Success! We have a hit DMA3: s=08753fb4 d=0201b000 c=8000 count=00000080 Let's open the rom in TLP get rid of the 08 in the beginning of the source and go there graphics. I will edit this with more advanced details as I go on. And will reword this, as such. And it will have better formatting P.S. I'll have a beta of my editor out by April. (edited by interdpth on 01-22-06 08:32 PM) |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
That should be more readable | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Well if I said advanced i'd probably get flamed,well yes I am working on an MZM editor which will be working as soon as I find this damn TSA data. (edited by interdpth on 01-23-06 09:46 PM) |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
I'm having a bit of trouble finding the tsa data for this game, i'd like to know the various methods people use to find the TSA data. Thanks! | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Jiggly that offset is for the actual graphics, I use the table it's pointer is in to get it but i'm looking for the way the game. I'm talking about that the thing like 4 little tiles make up a big one. :/ Would the game just store it in RAM or something? | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
I'll take either depends on how long the source file I am working with is. If it's a few lines i'll take west coast
Otherwise east coast |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Meh, there's more there then it looks I just got the TSA data down so when I find out how to get the values out of an int it'll be drawing the map. This an an Editor for Metroid Zero Mission, it loads all data from the ROM so yeah, it's coded in VB6 atm will be transfered to C when it's finished. So yeah |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Ok well i'm working on a map editor and stuff in VB, my tile TSA is stored in integers
Here's an example 1034 or 409A The palette would be 1 in the other place 4 and the rest is the is the tile so TSA - Pal = tile Now what I would like to know is how I can get the Pal value you correctly then the tile right now my code is lame and i'm using strings anyone mind helping? Thanks And here is my code buf = Str(Samp(36))' Where all TSA data is stored pal = Mid(buf, 1, 2)'Gets the value in the place MsgBox pal'SHows whatn umber pal = pal * 1000 MsgBox pal'Shows the full one tile = Mid(buf, 2, 3) MsgBox tile |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Oh...Your...Dear..Lord..That is scary as hell | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
ph33r Suprised the camera still works |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Noz you liez i'm ugly ._.
Your the sexy one |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
So what's this for? | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Ok the structs are taken directly out of my editor so yeah
Some of the stuff may be hard to understand so yeah These notes were based off the original findings from Jigglysaint I then took what I learn and finished the rest of the stuff. More to come next update finished door notes and add item notes Data room size = 0x3c Room Headers start at: 0x340AD4 Total number of rooms: 329 Pointer table for it at 0xNONE Pointer table for Tileset entries 0x33DFDC I'll just load these according the rooms Tileset number And uncompress on the fly! =D Structure for Room Headers Private Type RHeader bTileSet As Byte bBg0 As Byte bBg1 As Byte bBg2 As Byte lBg3 As Long lForeground As Long lLevelData As Long lBackGroundObjects As Long lClipData As Long lBackgroundImageData As Long bEnemyIndex As Byte bSwitch As Byte bSeperator1 As Byte bSeperator2 As Byte lEnemy1 As Long bEnemy1Sprites As Byte bDunno1 As Byte bSeperator3 As Byte bSeperator4 As Byte lEnemy2Sprites As Long notsure As Long TileTablepnt As Long bSeperator5 As Byte bMiniMapRoomX As Byte bMiniMapRoomY As Byte bSeperator6 As Byte bTide As Byte bEffect As Byte bMusic As Integer End Type Private Type gTileData Nothing As Long gTiles As Long pTiles As Long BackgroundTSA As Long MainTSA As Long End Type Applies to lForeground ************************************************************************************************************************* | Ok I'm not that that this stuff is compressed | | Anyhow Width times Height bytes of course then that random 01 | | Next are These 2 bytes no clue what they are for although if I edit them it really messes up | | Ok After that is a what I believe a byte that controls the X and Y position by moving the Block to the right and down | | The higher the byte control byte the lower and to the right it goes | ************************************************************************************************************************| Applies to lTilesPnt, And lClipdata; ***************************************************************************************** |Level compression is RLE 2 different types Why I have no clue | |Any how the compressions are like this | | | |if the first byte is 0x00 - 0x7F Then the game repeats the next byte that many times | |The other type of compression is 0x80+ folled by the tile/clip | |The way it works is subtract 0x80 from the first number then repeat that | |the tile that many times oh and by tile I mean the ID | ***************************************************************************************** Applies to lBackgroundObjects ***************************************************************************************** Door data: 0x33E614 I'm guessing the struct is 0x8 bytes struct Door{ char SomeByte; char Room//? char DoorCanOpen; char DoorLeadssomeplace; char Dunno; char Dunno; char Room;//Actual Room! }; MiniMap Areas: lz77 compressed 407178 4072e4 4074ac 4077b4 Spritesheet List: Tested in Room Header 4 Test em in different rooms for fun effects 00 Bubbly 01 Elevator 02 Skrees. 03 Same effect as 1 04 Same as 3 05 Elevator 06 Skree 07 Kraid 08 Normal? 09 Norfair bugs? 0A Chozo 0B Chozo, they can heal! 0C Blue chozo 0D Blue bastard 0E Chozo 0F Chozo 10 Chozo 11 Chozo 12 Chozo 13 Chozo 14 Chozo 15 Chozo 16 Chozo 17 Chozo 18 I revisited Norfair 19 NORFAIR! 1A NORFAIR! 1B Map Room o.O 1C Norfair! 1D Norfair! 1E Norfair is starting to piss me off 1F Samus's ship in a long shaft fun. 20 If this is another norfair LAME The little beetles 21 Save room 22 Norfair 23 The ship 24 Norfair 25 The little cacoon/hive things 26 GEEMERS 27 Secret Item/ GRASS HOPPER! 28 I SEE NOTHING! 29 The huge worm dude! I sense fun! 2A Cool the hanging worm locks doors 2B Rippers Norfair? 2C Skree's 2D Enemy location abnormal wtf 2E The little beetles 2F Uknown item Chozo 30 Uknown item chozo 31 Norfair 32 Zebesian Red Space Pirates 33 Small suckers 34 The chozo super ball launcher 35 Same as 32 36 Metroids 37 Nothing 38 Norfair 39 Space pirates 3A Norfair 3B Save room 3C Space pirates 3D Weird gaseous 3E Bubbly wall crawlers. Yum 3F Norfair 40 Rippers were on the ship? Holy shit 41 Norfair and Chozo Super Ball Launcher--One can make a fun hack with em 42 Norfair 43 MOTHER BRAIN DUN DUH 44 Another abnormal message thing 45 Destruction Sequence 46 Nothing 47 Norfair is really starting to piss me off 48 The Norfair worms 49 Norfair Tentacles 4A Imago 4B CROCOMIRE 4C Enemies... 4D 0.o put the game into an endless loop o.O 4E Big ass grasshoppers 4F Chozo 50 Norfair 51 Elevator? 52 Nothing 53 Grasshoppers 54 Skree 55 Norfair 56 Kraid & Ridley head 57 Nothing? 58 Save Room 59 Pirates 5A Underwater 5B Norfair 5C Nothing 5D Pirates 5E Normal 5F Flying beetles 60 Pirates -- That's all for today Have fun |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Ok well i'm working on a map editor and I got the data and everything but I can't seem to make a decent drawing loop to save my life. This works and displays the tiles but it doesn't display the tile correctly instead of blitting them right to left then down it blits the tiles Diagonally. So here's my code if anyone minds helping
Samp(0 to 1023)' There's data in here already Get #12, TSA - &H8000000 + 1,Samp() Counter = 0 DestX = DestY = 0 For i = 0 To 128 For x = destX To destX + 1 For y = destY To destY + 1 '''''''''''''''''''''''''''''''''' tile1 = Samp(Counter) And Not &HFF00 ''''''''''''''''' tile2 = Samp(Counter + 1) And Not &HFF00 ''''''''''''''''' tile3 = Samp(Counter + 2) And Not &HFF00 ''''''''''''''''' tile4 = Samp(Counter + 3) And Not &HFF00 ''''''''''''''''' 'Tile1 for the block BitBlt picMap.hdc, x * 8, y * 8, 8, 8, picTileSet.hdc, tile1 \ 8, tile1 Mod 8, vbSrcAnd 'tile2 BitBlt picMap.hdc, (x * 8) + 1, y * 8, 8, 8, picTileSet.hdc, tile2 \ 8, tile2 Mod 8, vbSrcAnd 'tile3 BitBlt picMap.hdc, (x * 8), (y * 8) + 1, 8, 8, picTileSet.hdc, tile3 \ 8, tile3 Mod 8, vbSrcAnd 'tile4 BitBlt picMap.hdc, (x * 8) + 1, (y * 8) + 1, 8, 8, picTileSet.hdc, tile4 \ 8, tile4 Mod 8, vbSrcAnd ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''' Next y Next x picMap.Refresh Counter = i + 3 destX = destX + 1 destY = destY + 1 Next i |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
BGNG i must say thank you so much. It's almost done but there's 1 problem. It's drawing the tiles only in the corners so how would I make it so the tiles go else where that's what the main Diagonal problem was. | |||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Ok well here's what the code you gave me does
The code works fine for 1 block other then the fact I need to add tile filpping but anyhow I need it so it blits more then 1 block to the picture box there should 128 blocks total. So that what I need to know. |
|||
interdpth Mole MZM rapist Since: 11-18-05 Last post: 6295 days Last view: 6295 days |
| ||
Yeah it's doing that fine but what i meant is this is for the TSA portion of the map data so I need more blocks then just the one. by block 4 2x2 tiles make up a block so yeah, thanks a bunch |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Acmlm's Board - I3 Archive - - Posts by interdpth |