don't click here

Sonic Metatiles

Discussion in 'Engineering & Reverse Engineering' started by Mercury, Nov 29, 2010.

Thread Status:
Not open for further replies.
  1. Endri

    Endri

    Officer I don't have my drivers license with me. C Tech Member
  2. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,373
    81
    28
    HoleNet!
    Sonic Worlds Next
    No, it is not! They changed it completely in Sonic 2.
     
  3. ValleyBell

    ValleyBell

    Tech Member
    246
    25
    28
    researching PC-98/X68000 sound drivers
    And what's this?
    [​IMG]

    My Level Ripper works. Here's the codes that controls the flipping flags:
    Code (Text):
    1. .BlockNo = BitSL(StateData(CurPos + &H0), 8) Or StateData(CurPos + &H1)
    2. .FlipHorz = False
    3. .FlipVert = False
    4.  
    5. Select Case StateType
    6. Case ST_SONIC_1, ST_SONIC_CD
    7.     If CBool(.BlockNo And &H800) Then
    8.         .FlipHorz = True
    9.     End If
    10.     If CBool(.BlockNo And &H1000) Then
    11.         .FlipVert = True
    12.     End If
    13. Case Else
    14.     If CBool(.BlockNo And &H400) Then
    15.         .FlipHorz = True
    16.     End If
    17.     If CBool(.BlockNo And &H800) Then
    18.         .FlipVert = True
    19.     End If
    20. End Select
    21. .BlockNo = .BlockNo And &H3FF
    I was able to recreate Techokami's picture by ignoring the flipping flags.
     
  4. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,373
    81
    28
    HoleNet!
    Sonic Worlds Next
    Yeah for some reason my code wanted to be an ass yesterday, but I just got Sonic 1 working properly. FINALLY. Well... transparency doesn't do what it is supposed to, and I dunno why, but the newest version of my tool is here.
     
  5. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Well, I've already got PCX working. I wrote code that can make legitimate palettised PCXs - the trick now is to write the metatiles to a PCX, which is somewhat trickier because GM is almost totally useless when it comes to manipulating data. I'll probably switch to something else, which will be faster anyway.
     
  6. Overbound

    Overbound

    Member
    607
    21
    18
    Iowa
    Sonic Time Twisted Creator
    There are nice. Can I have your permission to turn them into sprite sheets for the Sonic Fan Game HQ? I can't wait to see Ristar and Chaotix having full rips of those would be nice to have when working on Time Twisted! Another game that would be Socket no pressure though, its just that it looks so much like Sonic.
     
  7. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,373
    81
    28
    HoleNet!
    Sonic Worlds Next
    That would be the dumbest thing ever to do! The resulting image would be so large, it would be unusable. How is a collection of images less useful than a big image you have to manually separate to get said collection of images? You might be better off just leaving them as-is.

    As for Socket, it doesn't really use metatiles...
     
  8. Well, it must use some form of level compression... Since you know for sure it's not metatiles, do you happen to know what it is? I'm curious now! =)
     
  9. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,373
    81
    28
    HoleNet!
    Sonic Worlds Next
    It's the same way Super Mario Bros. stores level data, actually. Which isn't very bright considering the type of game they were making!

    I mean, you could cheat and "make" metatiles by ripping it in 256x256 chunks, but the level is built purely from 16x16 tiles in vertical strips.
     
  10. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,202
    432
    63
    Japan
    I don't know if this would be worth considering but, would it make sense to have two versions of the Sonic 1 chunkset (one for 256x256 chunks and one for 128x128 chunks)? I'm sure people who might be looking for a Sonic 1 chunkset may be working on a fangame engine that uses 128x128 chunks.
     
  11. IIRC, SMB uses object-based maps, meaning that each screen is initially blank, and all the level structures are defined like objects, with coordinates and such. This is OK for games with simplistic maps (like SMB), but for complex maps I'm pretty sure that the blocks-in-a-grid way is more efficient.

    Wait a minute, we seem to be having a terminology problem here. A "metatile", as I see it, is any block that's made of tiles. So technically, 16x16-pixel blocks are metatiles too. Many games just used small metatiles like that, specially games that don't have huge levels. Sonic games just happen to have another metatile type, intermediary between the small ones and the level map, so that levels can be very large without requiring too much memory.

    So technically, if Socket levels are built directly from 16x16-pixel blocks, those are its metatiles, don't you agree?
     
  12. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,373
    81
    28
    HoleNet!
    Sonic Worlds Next
    I normally consider metatiles to be mapped tile data made out of a lesser sized mapped tile data. In the case of the Sonic games that would be a large 256x256 or 128x128 pixel chunk formed out of 16x16 pixel blocks formed out of 8x8 tiles.

    But making any sort of structure with the 16x16 blocks in Socket is an absolute pain in the ass. I know because I tried doing it before, and it got to the point where I said "fuck this shit". You may very well be a braver man than I.

    Also, when I meant "like Super Mario Bros." I meant that it was in vertical strips, rather than horizontal strips like 90% of games.

    Here's an old script I made a while back before I realized it wasn't actually 256x256 level chunks, that rips levels as 256x256 chunks.
     
  13. Yeah, naming conventions can be pretty confusing since there are so many ways to form level maps. In my current NES game I'm taking it to the extreme: the levels are built from 256x256-pixel blocks, which are built from 128x128-pixel blocks, which are built from 64x64-pixel blocks, which are built from 32x32-pixel blocks, which are built from 16x16-pixel blocks, which are built from 8x8-pixel tiles. The 16x16-pixel ones are the ones that have palette and collision data, the others are just meant to reduce the amount of memory necessary to store it all. Even though this is my game I don't know what to call each type of block!

    No, I totally get you. Personally, I do this kind of research to learn more about the techniques used in various games, but I don't want to get deeply involved with any game in particular, because my main goal is to make games, not hack them.

    I'm hanging around this thread because I find it interesting to see what kinds of worlds you can build with a certain number of building blocks, and what these blocks look like. I don't actually plan on using these images for anything other than admiring. =)
     
  14. Overbound

    Overbound

    Member
    607
    21
    18
    Iowa
    Sonic Time Twisted Creator
    As I am more into fan gaming than hacking I like to have levels in single files so I can look at the entire level at once (or all the meaningful parts I don't care to have every single tile just so long as no actual graphic is missing) and the single file allows me to take what I need from a level without jumping from file to file. I have over 2500 graphic files in my genesis graphic collection I do not need 100 more for a single level. Plus when you make them pngs they aren't too big at all just a few hundred KB.

    As for Socket it was just a suggestion don't work your ass off at my expense (well no more than you already do ^_-).
     
  15. Mercury

    Mercury

    His Name Is Sonic Tech Member
    1,740
    21
    18
    Location Location
    AeStHete
    Yes, you have my permission.

    Well, some engines (my GM engine for one) like everything to be in one big tileset.

    About Socket... when I'm finished, I should do Pulseman. And then Sparkster. And then... It just keeps going, doesn't it? =P

    It would be cool to have support for lots of games, but I'll be keeping to Sonic Team's Genesis games for now. Maybe in the future when my GM engine is released I'll be willing to spend more time looking into others.
     
  16. Overbound

    Overbound

    Member
    607
    21
    18
    Iowa
    Sonic Time Twisted Creator
    Hahah yes of course but I do think Socket looks the most like Sonic. It will be extremely helpful to have good rips of Chaotix and Ristar more so than Socket. I'm really looking forward to that.
     
Thread Status:
Not open for further replies.