Sonic and Sega Retro Message Board: Sonic Hachelle-Bee - Viewing Profile - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help

Group:
Tech Member: Tech Members
Active Posts:
716 (0.17 per day)
Most Active In:
Engineering & Reverse Engineering (299 posts)
Joined:
03-March 04
Profile Views:
4523
Last Active:
User is offline Today, 06:38 PM
Currently:
Offline

My Information

Member Title:
Lost in Wood zone
Age:
29 years old
Birthday:
October 28, 1985
Gender:
Male Male
Location:
Paris, France

Contact Information

E-mail:
Click here to e-mail me

Previous Fields

Project:
Sonic 2 Long Version
National Flag:
fr

Latest Visitors

Topics I've Started

  1. TileMolester for Sonic hacking

    15 December 2009 - 09:02 AM

    Is there anyone interested or using TileMolester for their Sonic hacking needs? I do, and this little piece of Java crap finds to be somewhat useful when you are on MacOS X.

    I recently had some fun with the TileMolester source code (latest v0.16), and with a bit of Java coding and a little time to spend, managed to add some tools in it. I'm finally posting this: maybe some of you, TileMolester users, will find them useful as well!



    1. TRANSPARENT SELECTION
    Maybe the most useful tool of all is the transparent selection. The regular selection found in TileMolester only replace all pixels that are below your selection with the ones you selected. This new tool takes care of the background color and didn't replace the pixels when they belong to the "background". It is like your selection has a "transparent" color. In the example shown before, I used the transparent selection to apply this pink mask to the green pattern and the wood, to make a small and nice looking ramp in no time!

    2. BRUSH BY COLOR
    Sometimes, you only want to change a color by another inside a full pack of pixels. There already exists a color replacer tool in TileMiolester, but this new one let you brush freely for the pixels to replace instead of replacing them all. Let's say you want to draw a shadow on the wood. Instead of taking care of each pixel and replacing the colors one by one, you only have to choose a color and the one to be replaced, and brush all over your picture. Quick and easy. To do so, the foreground color is the new color, the background color is the color you wish to replace.

    3. BRUSH EXCEPT COLOR
    This is the "opposite" of the brush by color tool. This tool allows you to brush freely with the foreground color, except on the selected background color, which does nothing. Useful when you want to draw freely without affecting some borders shape.

    4. DITHERING BRUSH
    While drawing Sonic art, you often want to draw a dithering pattern. This task is also often boring and repetitive when you have to draw each pixel one by one, especially on large patterns or complex shapes. This tool works like the regular brush tool, except that it will draw only one pixel of two, as shown in the example before. You can make a complex dithering pattern in a few seconds.

    5. DITHERING FLOOD FILL
    Same as the dithering brush tool, but this time it flood fills an entire surface with a dithering pattern. As shown in the example before, combining this with the transparent selection can let you do some cool things!

    6. RANDOM FLOOD FILL
    Have you never experienced yourself trying to draw a pattern pixel by pixel so that it looks random? This time, this special flood fill tool will do that for you in a second. It draws an entire surface placing pixels randomly on it.



    DOWNLOAD TileMolest... erm... SonicMolester 0.17a
    A bit of fun with the name as well smile.png

    Includes JAR and source code for XCode. New french translation also available, as well as a default XML resource file to edit Genesis graphics.

    Hope this will be useful for you.
  2. Toying with lock-on technology

    06 June 2009 - 12:15 PM

    This may be common knowledge or not, but I feel the need to write something on this forum (and because I have some time to spend currently).

    For years playing Sonic 3 & Knuckles on various emulators, I never found one single emu that saved my game correctly, despite them saving Sonic 3 just fine. At last, I wondered why last night, and started to investigate what's wrong with my clear GoodGen Sonic and Knuckles & Sonic 3 (W) [!].bin.

    The first thing I noticed by looking various ROM headers, is that I had actually different "altered versions" of Sonic & Knuckles. I have the common and clear Sonic & Knuckles, Sonic 3 locked-on Sonic & Knuckles, and a random game locked-on Sonic & Knuckles that activates the Blue Spheres mode, that I managed to find somewhere on the Internet.

    Then, I eventually started toying around with the lock-on technology. Opening the clear Sonic & Knuckles ROM in an hex editor, I copied and pasted Sonic 3 at the end to see if things just work as expected. It didn't. Both emulators I have (Generator and Genesis Plus on a PPC Mac, with the latest known for its relatively high level of accuracy) just run Sonic 3 & Knuckles without any possibility to save the game.

    This is a part of the header that I have with the clear Sonic & Knuckles ROM:

    $1A0 00 00 00 00 00 1F FF FF 00 FF 00 00 00 FF FF FF
    $1B0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
    $1C0 20 20 20 20 20 20 20 20 00 00 20 20 20 20 20 20
    $1D0 00 00 00 00 00 1F FF FF 20 20 20 20 20 20 20 20
    $1E0 52 4F 20 20 30 00 00 33 FF FF 30 00 00 33 FF FF

    Notice that the Backup RAM section (in red) is empty. Why this seems fine for Sonic & Knuckles only, the same header can be found at the beginning of the Sonic 3 & Knuckles ROM. Don't ask why this doesn't save on emulators...

    But I was surprised when I took a look at the header of the Blue Spheres game (the Sonic & Knuckles part):

    $1A0 00 00 00 00 00 1F FF FF 00 FF 00 00 00 FF FF FF
    $1B0 52 41 F8 20 00 20 02 01 00 20 03 FF 20 20 20 20
    $1C0 20 20 20 20 20 20 20 20 00 00 20 20 20 20 20 20
    $1D0 00 00 00 00 00 1F FF FF 00 20 00 01 00 20 03 FF
    $1E0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

    There IS actually Backup RAM info here (in red). Something is added too (in green).

    Now, by looking at the Sonic 3 ROM header, you can find this:

    $1A0 00 00 00 00 00 1F FF FF 00 FF 00 00 00 FF FF FF
    $1B0 52 41 F8 20 00 20 00 01 00 20 03 FF 20 20 20 20
    $1C0 20 20 20 20 20 20 20 20 00 01 20 20 20 20 20 20
    $1D0 00 20 00 00 00 3F FF FF 00 20 00 01 00 20 03 FF
    $1E0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

    The Backup RAM is about $400 bytes long. But actually, not even the half of it is used to save your game in Sonic 3. The thing in blue seems to be the memory range of the cartridge when locked-on: that's well known, locked-on Sonic & Knuckles, Sonic 3 addresses actually starts at $200000 (Sonic & Knuckles starts at $000000 to $1FFFFF). This definitely close the case that Sonic & Knuckles lock-on technology was planned since Sonic 3 development (too late, we already know that wink.png ). In green, you have the same memory range noted for the Backup RAM, which is at the end of Sonic 3 (without Knuckles), $200000 too (actually $200001, but we are using odd addresses). This means that with Sonic 3 only mode, the game can save from $200000 to $2003FF, and it actually uses less than the half of it.

    Now, if you look back to the Blue Spheres header, you can notice that the Backup RAM seems to be about $200 bytes long, which is exactly the half of Sonic 3 Backup RAM size. It starts at $200200 instead of $200000, and its memory range when locked-on still the same $200000 to $2003FF.

    So, what does this implies?

    With the header of the Blue Spheres game, Sonic & Knuckles can eventually save from $200200 to $2003FF... You guess it, if Sonic 3 is locked-on top of Sonic & Knuckles, address $200200 is actually used by the Sonic 3 ROM. But this part of the Sonic 3 ROM is useless as it is boot code, unlike the header at $200000, which is important for the lock-on to work. There is no need to address directly this part of the Sonic 3 ROM at all. This new "Blue Spheres" header results that the range from $200200 to $2003FF become your actual Backup RAM for Sonic 3 & Knuckles. Actually, the Backup RAM of Sonic 3 is (strangely?) big enough: you can handle both save data from Sonic 3 and Sonic 3 & Knuckles into the same Backup RAM, sharing it with this trick.

    Well! Back on my question:
    Q: How can I save correctly Sonic 3 & Knuckles with my emulator?
    A: By fixing the wrong Sonic & Knuckles header and then, Sonic 3 & Knuckles header.

    While Sonic and Knuckles & Sonic 3 (W) [!].bin appears to be a "clear" ROM file on the Internet, I guess this is often not the case. The correct header for Sonic & Knuckles should be the one I found in my Blue Spheres game. Fixing it this way works perfectly and actually save the game with Sonic 3 & Knuckles. At least, we are almost there...

    Because this doesn't work fully yet. Doing this will just boot Sonic & Knuckles, no matter you lock-on Sonic 2. Notice the last line of the headers I pasted:

    Sonic & Knuckles:

    $1E0 52 4F 20 20 30 00 00 33 FF FF 30 00 00 33 FF FF

    Blue Spheres:

    $1E0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

    For a reason, this part has been removed for the Blue Spheres game. If you look carefully at it, this is the UPMEM ID and memory ranges, starting at $300000 to $33FFFF. You have to keep this to have your perfect and fixed Sonic & Knuckles ROM header:

    $1A0 00 00 00 00 00 1F FF FF 00 FF 00 00 00 FF FF FF
    $1B0 52 41 F8 20 00 20 02 01 00 20 03 FF 20 20 20 20
    $1C0 20 20 20 20 20 20 20 20 00 01 20 20 20 20 20 20
    $1D0 00 00 00 00 00 1F FF FF 00 20 00 01 00 20 03 FF
    $1E0 52 4F 20 20 30 00 00 33 FF FF 30 00 00 33 FF FF

    You can then copy and paste any game after your fixed copy of Sonic & Knuckles, and it will work as expected:
    - Sonic 3 will boot Sonic 3 & Knuckles and the game will save correctly.
    - Sonic 2 will boot Knuckles in Sonic 2.
    - Sonic 1 and other games will boot the Blue Spheres game.

    But why all of this? Why is this supposed "clear" ROM circulating around not so "clear" in most cases? I guess this is because most emulators doesn't (or didn't) handle this lock-on technology very well, and versions of the Sonic games has been modified slightly to make them work on most emulators. With the fixed header of Sonic & Knuckles, Genesis Plus works perfectly (despite a save file is created with each lock-on), while the not-so-bad Generator fail dramatically: it boots the Blue Spheres game with every lock-on.

    Congrats if you have read this whole topic wink.png There is a bonus for you.
    This is with this line of the header:

    $1F0 4A 55 45 20 20 20 20 20 20 20 20 20 20 20 20 20 "JUE "

    It is commonly known as the country of the game. I noticed a difference between Generator and Genesis Plus while launching Sonic games. The "TM" logo shown on SEGA logo and title screen always appears with Generator, and not with Genesis Plus. While I always thought this was a bug of Genesis Plus, maybe that's not the case...

    Changing this line of the header to only "J ", "U " or "E " (which make more sense BTW if you think about it) seems to make Genesis Plus behave differently:
    "J " Japan: No "TM" logo, 60fps.
    "U " USA: "TM" logo appears, 60fps.
    "E " Europe: "TM" logo appears, 50 fps.

    Is a (W) version really exists besides (J), (U) and (E)?

    Thank you for your attention wink.png
  3. Sonic 2 rev.02

    18 April 2007 - 04:54 AM

    Nothing that important really, and this may be well-known already, but this bug me a little. Sorry for that =P

    There were lot of speculations explaining that the supposed Sonic 2 rev.02 found in Sonic Compilation, is nothing more than a Sonic 2 rev.01 with small bugfixes. That's the first time ever I have noticed a real bug in rev.01 that is no way reproductible in rev.02. That might be another proof to say both versions are different.

    By hazard while testing my hack, I crashed the game very wierdly in HTZ2. I took a clean Sonic 2 ROM to see if this bug is in the original game, and it is.

    You can try it yourself, in rev.01 (or rev.00), the game just crash (yes!) wonderfully here:
    [attachment=2164:S2rev01.png]

    How to: Start HTZ2 as usual. After the first breakable stone, go down to and throught the S tunnel. You have now a yellow spring and a ramp. Take the spring and fly up the ramp. Now, while you are in mid-air, you can smash the stone at your right, bounce up and continue to shot the head of the Nessie badnick without landing. And... if you are quick enough so that all pieces of the stone still on screen and the badnick isn't even entirely out yet, you have crashed the game!

    Try it now on rev.02 (well.. the thing in Sonic Compilation). I tried many many times to reproduce this bug. No problem with rev.01, never succeeded once with rev.02. It seems the bug has been fixed:
    [attachment=2165:S2rev02.png]

    I think the bug comes from pieces of the stone that haven't disappeared yet, while you are destroying Nessie. This badnick breaks into several parts too, I suspect a kind of conflict here... Correct me if I'm wrong... or if anyone crashed the game in rev.02 =P

    Note: This bug doesn't appear to be noticeable in Sonic 2 & Knuckles too.
  4. Sonic 2 Daytimes

    28 August 2005 - 10:58 AM

    Here is a new hack I've done. It's Sonic 2 Daytimes.

    There is nothing really exciting to say the truth. When you play a level, the time changes and it passes from day at the beginning of act 1, to night at the end of act 2.The main thing isn't really the hack itself. I made this hack only for testing purposes, and I finally decided to post it here.

    Actually, it takes me only 2 little minutes to make this technical stuff! Unbelievable? Thanks to the help of a new and huge ASM routine I'm making for S2LV, everybody with only a little hex knowledge will be able to do the same in their own hacks, in the next future! This routine is as user-friendly as possible and doesn't require any ASM knowledge. And obviously, this little thing is only one very small feature of all other features available. For now, I have coded this:

    Level (level and/or act), space (coordinates, can be multiple) and time (one time, during a time, infinity, do nothing) definitions for the routine (up to 128 different definitions)

    Music change
    An option to play sound effects
    An option to enable dynamic screen resizing (top, bottom, left and/or right)
    Enable/disable level wrap
    Enable/disable water (for levels with water enabled)
    Water absolute level change
    Water progressive level change
    Water speed change
    Pallet change (from 1 to 64 colors with a fade pallet option)
    Underwater pallet change (from 1 to 64 colors with a fade pallet option)
    A new format to make easily rotating pallets (from 2 to 127 colors cycling, from 1 millisecond to 9 minutes between each color)
    A new format to make easily underwater rotating pallets (from 2 to 127 colors cycling, from 1 millisecond to 9 minutes between each color)
    Rotating pallet change
    Underwater rotating pallet change
    Same things with Super Sonic rotating pallet
    ...and others to come

    Now, let's see if this routine works fine with all emulators so far. I'm waiting for your comments and replies:
    http://www.shadowsof...ic2Daytimes.zip

    EDIT: Link fixed.

    Posted Image

    Posted Image

    Posted Image
  5. To add on the site

    21 June 2005 - 12:25 PM

    I just noticed while reading the site once more, that strangely, this animation frame of Sonic braking in S2 Final isn't currently on the site, in the Comparisons section. That's right, you can't see it while playing the game (because Sonic isn't going far enough) and Tails has no equivalent, but changing the braking value in RAM can help to see it in action.

    Just to make the comparison with S2 Beta even more accurrate...

    BTW, I'm quite busy these times. I will pass my exams next week and then I will be back. It looks like I have quite some topics to read already. ;)

Friends

Sonic Hachelle-Bee hasn't added any friends yet.