Ok, so I'm working on an ASM hack of Sonic 1, and starting to try to understand ASM through use of the How-Tos on the wiki. This one in particular. I've managed to add the spindash coding and fix the sound effects, and am trying to add the tiles for a proper spindash look. I found the two art files, searched Zophar.net to get Tile Molester, and proceeded to attempt opening sonic.bin. Failure. Anybody know why this is happening? The way the How-to is worded suggests that Tile Molester (or any tile editor for that matter) can open .bin art files, but all I'm loading is glitchy pixels. Assistance would be appreciated.
I'm no expert, but isn't that supposed to happen? It opens tiles in stupid places for no good reason?
Make sure you're using the right Codec. Go to View -> Codec and select 4bpp Linear. You'll get the tiles, but not in the right colour. Don't worry about that. Also, if you're adding the spindash sprites, make sure to pad out sonic.bin with rompad so you have extra space to put the tiles in.
Yeah, I tried that before Tile Molester, but couldn't figure out whether or not I could copy/paste tiles. Hmm, that may be the issue. I also didn't pad the .bin file, so that could have been bad. Alright, I'll try these. Thanks.
Yeah, I wish I'd remembered that the first seven times I tried to copy the tiles over, only to re-open sonic.bin to discover that they'd vanished :v:
Wasn't there a guide on how to split EHZ and HTZ from using the same art? I thought there was, but can't find it.
Okay, I was planning to add another level with the 01 slot (Sonic 2) however the title card won't load, the music plays though. How could I fix this, I'm stumbled, it was working a few days ago.
I have a couple of questions pertaining to hacking Sonic Advance. 1. Can you add new characters? 2. Would it be possible to make it so that if you have all the Chaos Emeralds, get 50 rings, and double jump as sonic he will become Super Sonic like in the old games? My thought would be upon double jumping with 50 rings, his sprite changes and invincibility kicks in. 3. And my last question.... Are there any tools that will work for Macintosh? I have a Windows computer, but I prefer Mac, and I haven't seen any tools for Macintosh. Its ok If there isn't any.... I could just use my other computer. Thanks
May seem like some easy questions to some, but here are some, in order of increasing difficulty: What is the best way to edit the icons for the monitors? Can I add additional monitor icons? How? How many additional monitor icons could I add before I ran out of space in memory to add more? COMPLETELY UNRELATED ISSUE I'm trying to add the spindash to Metal and Sonic in Sonic for 32X. Assuming I don't crash the game [by simply calling Playsound instead of $880000+(Playsound)], the spindash sound fails to play and instead screws the music up and some tiles get lost. I assume this is probably something to do with either the format of the spindash sound or the size of it, but I don't really know how to fix either. This isn't so much a question as it is a something-to-think-about. If you happen to know how I can fix it, by all means tell me. If not, just keep it in mind if you intend to go about adding sound effects, something I have no idea how to do! Bonus: I attempt to respond to something! From what I can gather, Sonic Advance hacking is a relatively new subfield of the Sonic hacking scene. If I recall correctly, we don't know too much about the inner workings, but we are learning more. A couple forum searches should turn up the relevant information. That being said, with the tools we currently have, no I don't think we can add new characters, nor could we add super sonic (though I suppose with action replay codes we might be able to approximate it, it really wouldn't be the same at all). And no, I don't believe there are mac-based tools. Macs tend to get the shaft when it comes to software.
The best way is to edit the monitor mappings using SonMapEd. To add additional icons, I believe you'd only need to add new frames to the mappings, and then extend the offset table for monitor behaviour. Theoretically, you can have up to 256 icons, since the monitor subtype is stored in an unsigned byte, but the main issue is finding space in VRAM to put your new art in.
1) With any tile editor of your choice. Each monitor icon uses four 8x8 tiles. They're Nemesis compressed, so you'll have to use a program natively capable to edit tiles in Nemesis format, or uncompress them with TSDC (or another decompressor) and then edit said tiles with the editor of your choice. For example, since SonMapEd confuses the hell out of me, I wrote my own tile editor, and I used it with success to edit the monitor icons (and other things) in my hack. 2+3) Yes, you can add monitor icons. The existing subtypes range from 0 to 8, and 9 is the broken monitor. You can use subtypes from $A and above for your new monitors, as long as you add mappings for them in _maps\obj26.asm, and animations for them in _anim\obj26.asm. The problem is that there is little to no VRAM free in that region, so you need to use some tricks in order to add even a single monitor. For one, you can set the 1-up monitor to use the tiles from the lives counter (yes, they're duplicated in VRAM, yet they are the same), and for two, you can get rid of one or two of the three "static" monitor frames. The animation for the monitors is usually like 0, X, X, 1, X, X, 2, X, X, where X is the frame used by your monitor, and 0, 1, and 2, are the three "static" frames. You can get rid of two of them, and edit the animations accordingly. Therefore, if you apply both of the suggestions above, you can end up with three free additional subtypes, $A, $B, and $C. For the record, this is what I did in my hack, where $A is the note monitor, $B is the emerald monitor, and $C is the feather monitor; editing the unused monitors to suit your needs is another viable option: monitor subtype $8 (goggles) is the time monitor in soniNeko. Once you have the new subtypes set up, you have to go to the code and edit the bunch of Obj2E_xxx checks.
I just need some second opinions on what tools and programs I should use to make a hack. You guys making them interest me.
Don't get ESE, get the ESE Layout Editor. It's somewhere around here... and it supports disassemblies! Anyway, a question. Are there ANY sound effects not used in Sonic 2?
Although this is old, I made a fix for the EHZ deformation for backgrounds like the one you have. Use this code to change the deformation on 1 Player: Code (ASM): SwScrl_EHZ: tst.w (Two_player_mode).w bne.w loc_C6C4 move.w ($FFFFEE0C).w,($FFFFF618).w lea (Horiz_Scroll_Buf).w,a1 move.w (Camera_X_pos).w,d0 neg.w d0 move.w d0,d2 swap d0 move.w d2,d0 asr.w #6,d0 move.w #bytesToLcnt($58),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w #bytesToLcnt($E8),d1 - move.l d0,(a1)+ dbf d1,- move.w d0,d3 move.b ($FFFFFE0F).w,d1 andi.w #7,d1 bne.s + subq.w #1,($FFFFA800).w + move.w ($FFFFA800).w,d1 andi.w #0,d1 lea (SwScrl_RippleData).l,a2 lea (a2,d1.w),a2 move.w #bytesToLcnt($54),d1 - move.b (a2)+,d0 ext.w d0 add.w d3,d0 move.l d0,(a1)+ dbf d1,- move.w #0,d0 move.w #bytesToLcnt($2C),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w #bytesToLcnt($40),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w d0,d1 move.w #6,d1 add.w d1,d0 move.w #bytesToLcnt($40),d1 - move.l d0,(a1)+ dbf d1,- move.l d0,d4 swap d4 move.w d2,d0 asr.w #6,d0 move.w d2,d1 asr.w #6,d1 sub.w d1,d0 ext.l d0 asl.l #6,d0 divs.w #$30,d0 ext.l d0 asl.l #6,d0 moveq #0,d3 move.w d2,d3 asr.w #6,d3 move.w #bytesToLcnt($3C),d1 ; $3C bytes - move.w d4,(a1)+ move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 dbf d1,- move.w #($48)/8-1,d1 ; $48 bytes - move.w d4,(a1)+ move.w d3,(a1)+ move.w d4,(a1)+ move.w d3,(a1)+ swap d3 add.l d0,d3 add.l d0,d3 swap d3 dbf d1,- move.w #($100)/12-1,d1 ; $100 bytes - move.w d4,(a1)+ move.w d3,(a1)+ move.w d4,(a1)+ move.w d3,(a1)+ move.w d4,(a1)+ move.w d3,(a1)+ swap d3 add.l d0,d3 add.l d0,d3 add.l d0,d3 swap d3 dbf d1,- rts If you want to do the same for Two Player mode, use this code: Code (ASM): sub_C71A: neg.w d0 move.w d0,d2 swap d0 move.w d2,d0 move.w #6,d0 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w #bytesToLcnt($74),d1 - move.l d0,(a1)+ dbf d1,- move.w d0,d3 move.w ($FFFFA800).w,d1 andi.w #0,d1 lea SwScrl_RippleData(pc),a2 lea (a2,d1.w),a2 move.w #bytesToLcnt($2C),d1 - move.b (a2)+,d0 ext.w d0 add.w d3,d0 move.l d0,(a1)+ dbf d1,- move.w #0,d0 move.w #bytesToLcnt($14),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w #bytesToLcnt($20),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w d0,d1 move.w #6,d1 add.w d1,d0 move.w #bytesToLcnt($20),d1 - move.l d0,(a1)+ dbf d1,- move.w d2,d0 asr.w #6,d0 move.w d2,d1 asr.w #6,d1 sub.w d1,d0 ext.l d0 asl.l #6,d0 divs.w #$30,d0 ext.l d0 asl.l #6,d0 moveq #0,d3 move.w d2,d3 asr.w #6,d3 move.w #bytesToLcnt($A0),d1 - move.w d2,(a1)+ move.w d3,(a1)+ swap d3 add.l d0,d3 swap d3 dbf d1,- rts And that is how you fix the deformation for backgrounds like this one on EHZ.
Yes there are a few, when I get home later I'll let you know which ones specifically. :v: EDIT: Sound43 and Sound49. If you are planning to not use the 2 player mode then you could use Sound6C (teleport) and Sound53 (signpost spinning 2 Player). Hope that helps.
1. There has yet to be a disassembly of Sonic Advance, so unless you find a way to do it in hex, it looks unlikely. 2. Same as #1 with a twist. Super Sonic has VERY few sprites in the game. In fact, there's only transformation, running, and boosting. You'd have to add sprites and mappings for the rest of the frames. 3. Very few.
In note of point #2 though, I feel that I should add that a lot of Super Sonic's frames from Sonic 2 and Sonic 3 were just recolors of the normal Sonic sprite.