Sonic and Sega Retro Message Board: Xenowhirl - 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:
175 (0.06 per day)
Most Active In:
Engineering & Reverse Engineering (137 posts)
Joined:
26-November 06
Profile Views:
2189
Last Active:
User is offline Private
Currently:
Offline

My Information

Age:
Age Unknown
Birthday:
Birthday Unknown
Gender:
Male Male

Contact Information

E-mail:
Private
Website:
Website  http://

Previous Fields

National Flag:
None
Wiki edits:
30

Latest Visitors

Topics I've Started

  1. S2 Disassembly 2007

    28 September 2007 - 05:35 AM

    That's right, here's a new Sonic 2 disassembly: s2dasm2007.zip

    The steps to build it are: Take a final sonic 2 rom from somewhere, name it s2.bin, stick it in the directory with split.bat and run that, then run build.bat. You don't have to download AS (that's included this time). The main file to edit is called s2.asm.

    Bullet points:
    - Unmodified, it assembles to be perfectly identical to Sonic 2 final, even with the unchanged (source) version of AS like the one I included, and it assembles fairly fast (1-5 seconds depending on the computer).
    - The Z80 sound driver is disassembled and integrated into the build process such that it gets assembled and compressed into the rom when you build. It uses labels from the 68k code to choose the correct pointers to use and banks to switch to, so you don't have to worry about breaking the sound by adding unrelated stuff anymore.
    - I identified more objects and addresses, split more things to file like the sprite mappings, added lots of comments, named some labels, added more equates, fixed disassembly mistakes here and there, etc. etc. just look at it already.

    Extra downloads (the above download is needed first in any case):
    Linux build tools
    Mac build tools
    s2.asm split into many little included asm files

    Enjoy.

    Thanks to shobiz for reviewing my changes and providing invaluable feedback and numerous suggestions, Puto for compiling the build tools for Linux and Mac and giving some suggestions, Tweaker for recommending I use Hivebrain's terminology and answering some questions that helped a little, Varion Icaria for answering some questions and showing me some labels, Hivebrain for his 2005 S1 disassembly, everyone behind the Sonic 2 articles on SCHG, everyone that contributed to Kens, and Nemesis and Aurochs and everyone who made the previous S2 disassembly possible.
  2. Sonic 1: Bouncy Edition

    05 August 2007 - 11:52 PM

    [Just in case you didn't see this posted at Sonic Retro while s2beta was down...]

    So I was playing Within a Deep Forest, and... well, I'm at a complete loss to explain myself, but I decided to make a Sonic hack with similar physics.

    This is the download link.

    Main Features:
    - Sonic is a bouncy ball.
    - The screen snaps into place instead of scrolling.

    Other Noteworthy Features:
    - New special stage controls
    - Modified GHZ3 boss
    - GHZ bridges can be used as trampolines.
    - Custom intro and ending demos

    Controls:
    - Hold A or C to bounce more (when you hit something)
    - Hold B to bounce less (impact reduction)
    - Hold Down to keep moving and roll when you hit the ground
    - Hold Down while stationary and press A/B/C to spindash (good for loops)
    - Hold Up to stop and stand (good for moving platforms and seesaws)

    Have fun!

    Thanks to Chimpo for testing and suggestions.


    If you still don't understand what this hack is about, click on the first link in this post and play that game. If you think it's too hard to get through loops or stay on platforms, read this post.
  3. Blaze in Sonic 2

    22 January 2007 - 03:30 AM

    Posted Image
    (in-game screenshot)

    I got the idea to replace Sonic and Tails with Blaze and Cream, the alternate pair of characters in Sonic Rush. Blaze can hover and Cream can fly, and both will get tricks, though I'll skip boost mode and tension gauge. I didn't draw the sprites. The palette works somehow even with 5 shades of purple and Blaze/Cream/enemies/projectiles/explosions sharing it.

    So does this sound good to anyone else or am I just crazy? And can anyone recommend any sprite sets over the ones I'm trying to use? Because I think I'm screwed when it comes to finding sprites for all of Blaze's animations. Cream on the other hand has more animation frames than I could ever conceivably use. Paste those links to a new window to see them btw.
  4. Sprite Rotation Utility

    17 January 2007 - 03:32 AM

    Making rotated versions of sprites is usually a pain in the ass, because most programs that rotate a sprite will antialias it (which blurs it and messes with the colors) and ones that don't antialias it tend to do a poor job of preserving features of the original image. It usually takes a lot of manual touch-up work to make the rotated sprite look good. (If you didn't know already, the walking and running frames in Sonic 1, 2, and 3 all need 45 degree rotated equivalents, and I believe those were custom-drawn by the artists at Sega for lack of any good way of generating them)

    So I wrote a little utility to avoid those problems: It can rotate sprites at arbitrary angles without antialiasing and (IMHO) without making them look demented. I call it rotsprite because I suck at inventing names and don't care. It attempts to preserve lines and (to some extent) curves in the original image, it never mixes colors together, and it considers multiple rotation offsets to minimize error. It can optionally scale up or down while rotating.

    It isn't perfect; it minimizes error by a very simple method, but won't try to intelligently recognize and eliminate oddities like a human could. Other, simpler methods may do better for certain parts of the image, but rotsprite output should require much less touch-up work overall. It works best on small images, so the quality of rotation can suffer if you place many sprites in an image and rotate the whole image instead of rotating them separately. Dithering (fine-grained checkerboard patterns) can confuse it because it tries to rotate the pattern itself without considering it a single color, so if you need to rotate something dithered I suggest replacing the dithered parts with solid blended colors before rotation, and replacing those colors with the dithering pattern after rotation.

    The program asks for input when you open it, should be self-explanitory. To use it as a commandline utility, here are the flags:
    rotsprite -in "input.png" -out "output.bmp" -angle 22.5 -endangle 180 -scale 1.0 -endscale 1.0 -frames 8

    Now for some sample output:
    Creating angled frames for an animation without them:
    Posted Image

    Comparing automatically rotated sprites with Sega's actual final rotated sprites:
    Posted Image

    More comparison between regular aliased rotation and this program's output:
    Posted Image

    Fun with upscaling and rotation:
    Posted Image

    Making a silly animation (64 rotation angles):
    Posted Image

    If you missed the download link here it is again: http://www.fileden.c...3/rotsprite.zip
  5. SonMapEd (Sprite Mappings Editor)

    29 December 2006 - 06:18 AM

    Get SonMapEd 1.05 here. Some peripheral features are missing or incomplete, but it's decently functional as it is. Read this for the basic idea of this program if you don't know what I'm talking about. No support for animations has been added yet, but one possible surprise is I added a ROM extracter dialog so you can load things (including compressed graphics) straight from a ROM, along with preset locations to choose from for certain ROMs as decided by the included offsets.txt file. You can use it with SMD format ROMs and locked-on ROMs too.

    I have no documentation for it, but familiarize yourself with the menus and you'll know most of the available commands. You should be able to do most things with the keyboard alone once you know the menu shortcuts well enough. Only the mouse-using commands for adding piecs or selecting tiles are not in the menu. To add a sprite piece, click on the start tile at the bottom, then click on a pattern on the top left. It will advance the appropriate number of tiles forward so you can usually add the next piece without choosing a tile again. Shift+Click to go backward instead of forward. Right click instead of left click to advance the selected tile without actually adding a sprite piece. Use the arrows keys (hold Shift for more precision) to reposition the active sprite piece. You can also select multiple tiles. Ctrl+Click selects or deselects multiple noncontiguous tiles, Shift+Click selects or deselects multiple contiguous tiles. There is no support for clicking on sprites or sprite pieces on the top-right, use their menu shortcut keys([] and ;') to move between them. There is no standard Undo, but there are emulator-style savestate slots to save or load the state of everything loaded in the program.

    I suggest pressing O after you load tile graphics to choose the orientation that looks clearest. To scroll up and down (or left and right) if the tiles don't all fit in the window, hold Ctrl+PageDn or Ctrl+PageUp. If you want to scroll less than a single tile (offset < 0x20) you can use the ROM extracter to load the graphics at a different offset. Everything in the "Transformation" menu applies context-sensitively to the selected sprite piece or to the entire sprite depending on if you have a single piece selected or the whole sprite, including movement and horizontal and vertical mirroring of the entire sprite.

    You can choose between binary or asm format for saving graphics, mappings, and dynamic reloading cues, simply by saving it with a .asm filename extension if you want it in asm format. Sonic 1/2/3K are supported for saving and loading, with experimental (read: probably broken) Crackers support. That means you can open a Sonic 3 sprite, change the mode to Sonic 1, and save as a Sonic 1 sprite, to get instant conversion between games. Palette rearrangement is also supported, with or without changing the image to match the new palette. You will have to remember to save each type of data file individually to the appropriate places after you make changes, there is no "save everything to where I loaded it from" feature. (However, you can approximate this by making a batch file to copy save state files to locations of your choosing.)

    If you've any questions on how to use it, that I didn't already answer, post them here.

Friends

Xenowhirl hasn't added any friends yet.