don't click here

Flicky ROM hacking (also, Sonic in Flicky)

Discussion in 'Technical Discussion' started by Techokami, Mar 9, 2021.

  1. Techokami


    For use only on NTSC Genesis systems Researcher
    Sonic Worlds Next
    Once upon a time, Sonicfan32 made this. People were wondering how the heck to actually implement them in the game, thinking the only way to do that was disassembly. Recently I revisited this sheet looking for inspiration, and my ADHD went "CHALLENGE ACCEPTED" despite already having enough projects on my plate.

    Thankfully it didn't take too long to do.

    This is the first ever graphics hack of Flicky for the Genesis/Mega Drive, called "Sonic in Flicky". It's pretty simple, it replaces Flicky with Sonic the Hedgehog, using Sonicfan32's sprite work. Amazingly it all conformed perfectly not just to the art style, but to the allotted tile space for the player graphics. Also, as per the suggestion from the comments on tSR, Tails makes a cameo appearance. I wasn't able to edit the credits text, as I couldn't find the pointers to relocate the text so I could expand it. However I did add a block of text at 0x4200 with credits.

    SPEAKING OF POINTERS, here's all the stuff I was able to map out while making this hack:
    Code (Text):
    1. 0x0051A: SEGA Logo (Nemesis compressed)
    2. 0x02372: Unused font (1bpp)
    3. 0x10106: Level tile archive pointer
    4. 0x101CA: "EXIT" archive pointer
    5. 0x10118: Sprite archive pointer
    6. 0x101B8: Sprite 2 archive pointer
    7. 0x11FBE: Title Logo archive pointer
    8. 0x120B8: Title text (ASCII)
    9. 0x1339C: Credits text (ASCII)
    10. 0x16E58: Level tiles (Nemesis compressed)
    11. 0x185FC: Font (1bpp)
    12. 0x18754: "EXIT" sign tiles (Nemesis compressed)
    13. 0x187D4: Sprites for most objects (Nemesis compressed)
    14. 0x1993E: Sprites for scoring, Iggy, and bonus woman (Nemesis compressed)
    15. 0x19EEE: Title Screen logo tiles (Nemesis compressed)
    Should also mention that the use of Nemesis compression is rather confusing. It's only a 128K ROM, yet most of it is empty space. From 0x0290A to 0x0FFFF is a massive block of unused data, which I put most of the edited graphics into and repointed into here. It could easily fit all of the graphics from the game, uncompressed, and still have space left over. Only thing I can think of is that this is a direct conversion of the 1984 original, and they used as much of the original game as-is, which meant smaller ROM chips for the graphics. Evidence for this was found in the graphics for the score display, as there's no 2P mode in the Genesis/MD version, yet the 2P graphics are still present...

    As for stage layouts, I didn't bother much with these. But I suspect they are uncompressed.

    Attached Files:

  2. Black Squirrel

    Black Squirrel

    bed 'n' breakfast Wiki Sysop
    Northumberland, UK
    Wiki and Minnie's Runaway Railway
    The Mega Drive version started off life as a Sega Game Toshokan game, so that'll have been an incentive to keep the size low. Maybe.

    Although even on the connections of the day this would have only taken minutes to download, so bit of a strange one.
  3. ValleyBell


    Tech Member
    researching PC-98/X68000 sound drivers
    IIRC some of the stand-alone releases of Game Toshokan games (like Flicky) just have all the Game Toshokan "BIOS" parts in the first 64 KB of the ROM and the actual game data is in the second 64 KB.

    Also, Game Toshokan games usually store all of their data in the 68000's 64 KB RAM, so pointers are probably pointing to locations in the area $00FFxxxx.
  4. Hivebrain


    53.4N, 1.5W
    • Informative Informative x 3
    • List
  5. doc eggfan

    doc eggfan

    Are you pondering what I'm pondering? Wiki Sysop
    GreatMegaLD, GreatSC3k, Great SG1k
    I had thought about doing this with Flicky on the SG-1000, just so that we can say there is a Sonic hack for that system.
  6. Lostgame


    producer/turnablist. homebrew dev. cosplayer. Oldbie
    Toronto, ON
    The O.I.C.
    This is adorable. I love it! Well done! :)