HivePal can edit any file, not just complete ROMs. You just need to specify the length of the palette yourself, then load it.
When you start to edit you take a clean rom and a clean disassembly folder and split it. I figured I could erase everything and split my rom with a clean disassembly. That's why I renamed it. What do you mean 'specify the length of the palette yourself'? Don't you just load it, change it, then save it?
The default length in HivePal is set to 10 (hex) colours, iirc. If you're editing a level palette, you'd need to change it to 30. Apart from that, all you need to do is load it, change it and save it.
Every time I build my rom and then put it into Hivepal, change the colors (which all I'm doing is opening it and changing the colors manually by sliding the bars, that is what I have always done and it has worked fine), and then try to play it, the screen is red and nothing happens. Also when I change the colors of s2.bin in Hivepal and then open my edit in SonED2, there is no change to the palette.
That's a checksum error. You need to remove the checksum routine first to get rid of this error. Also I thought you were editing Sonic 2? Because only Sonic 1 has it o_O
Umm you really shouldnt be using Hivepal on your complied rom.... either use it to edit the individual palette files or use the built in palette editor in SonED2.
I just want to change all the greens to blues. I can't figure out how to do that except changing it all manually bit by bit. EDIT: OKay, NM. I figured out how to use it.
I'm really not trying to be in this thread everyday... Sonic 2 - SonED2 I finished EHZ1 and started EHZ2. I got half way through changing it when I saved and tried to test it. I started the game, got through act 1. When I got to act 2 the music came on and I could see the background but nothing else. If I move the D-pad around I can hear Sonic rolling and I can hear him jump. When I put the debug code in I got in the level, I turned into a ring and tried to move around. There was no visual change but the debug counter was moving, when I turn back into Sonic the counter reset to where it was. Everything shows up fine in SonED2, so what did I do this time?
Thats rather odd to say the least. Did you happen to put an object thats NOT supposed to be placed in ehz or use an invalid object ID?
I did some basics first and put the tubes from Hill Top in there, tested it, and it worked. So that's when I did about half the level and tested it again, that's when the problem started. Other then that I don't think I put any other 'wrong' objects in there. The ID is the third set of numbers on the object right? The first is what it is and the second is what kind, I think.
Yeah dur that's right. I've spent all day getting my grandfather out of the hospital. I didn't put anything in that's not supposed to be there except the Hill Top tubes which worked the first time I tested it. I will take out the tubes and see what that does.
I took out the tubes and a few objects, anything I could think of that could be it and still nothing. What did I do now, or am I just lucky for glitches? :specialed:
While looking around in Sonic1.asm, I found this Code (Text): Obj2E_ChkS: cmpi.b #7,d0 ; does monitor contain 'S' bne.s Obj2E_ChkEnd nop Obj2E_ChkEnd: rts ; 'S' and goggles monitors do nothing This got me wondering, if I could change what the Eggman Monitor does, maybe I could add on and change what the 'S' and goggle monitors do. So, heres my question(s): 1) How do I get it so that the 'S' Monitor is seperate from the goggle monitor (if not already seperate)? 2) What code must I use to have the 'S' monitor act as both an invincibility monitor and 5 '10 ring' monitors at once? (Along with the Ring check to add on an extra life) 3) How do I have the goggle monitor remove any caps added on while sonic is underwater (You know, him slowing down), along with changing sonic's sprites so that the unused "goggle sonic" is used for his idle and running sprites? Also, the googles are removed at any time Sonic would take damage without a barrier (ie: Langding on spikes once ( I'm still trying to figure out how to disable the spike bug, but thats irrelevent for the moment)) Please put the answers to each of these within a single code box, if possible.
After Code (Text): bne.s Obj2E_ChkEnd Replace the nop with whatever code you want the S monitor to run, then add a section like this: Code (Text): Obj2E_ChkS: cmpi.b #8,d0; is it a goggles monitor? bne.s Obj2E_ChkEnd nop Again, replacing the nop with whatever code you want the goggles monitor to run. Finally, edit the comment on the last part so it's like this: Code (Text): Obj2E_ChkEnd: rts ; Everything else does nothing. This last part is optional, and mostly so you don't forget that you did change the code so "S" and "Goggles" do stuff now. In theory, if you kept increasing the number after #8 you could have more monitors. In practice, all that new monitor art isn't going to make itself or find space in memory to be drawn. That'd generally be how you get goggles and "S" to work. As for how to get the "S" monitor to work the way you want, I'd suggest looking at how the invincibility monitor works, using that as a base, then throwing in the code from the 10-ring monitor for good measure. It's all already there and laid out to be used. While you're at it, throw in speed shoes because I think I can see where this is going.
I forgot about the speed shoes, I'll have to replace the 50 rings with that instead (Seeing as how I want the monitor to work as similar to Super Sonic as possible, without adding in to much coding, along with not adding in a seventh special stage. Heres what I put for the outcome Code (ASM): Obj2E_ChkS: cmpi.b #7,d0 ; does monitor contain 'S' bne.s Obj2E_ChkRings move.b #1,($FFFFFE2D).w ; make Sonic invincible move.w #$4B0,($FFFFD032).w ; time limit for the power-up move.b #$38,($FFFFD200).w ; load stars object ($3801) move.b #1,($FFFFD21C).w move.b #$38,($FFFFD240).w ; load stars object ($3802) move.b #2,($FFFFD25C).w move.b #$38,($FFFFD280).w ; load stars object ($3803) move.b #3,($FFFFD29C).w move.b #$38,($FFFFD2C0).w ; load stars object ($3804) move.b #4,($FFFFD2DC).w tst.b ($FFFFF7AA).w ; is boss mode on? bne.s Obj2E_NoMusic ; if yes, branch move.w #$87,d0 jmp (PlaySound).l ; play invincibility music bne.s Obj2E_ChkShield move.b #1,($FFFFFE2E).w ; speed up the BG music move.w #$4B0,($FFFFD034).w ; time limit for the power-up move.w #$C00,($FFFFF760).w ; change Sonic's top speed move.w #$18,($FFFFF762).w move.w #$80,($FFFFF764).w move.w #$E2,d0 jmp (PlaySound).l ; Speed up the music nop But when I built and test the game, it just brings me to a blank screen and nothing happens. Anything I should modify to fix it? (I know its "yes," but I'm not sure how to fix it)
Hey guys, theoretically, is it possible to make it so that S1 loads both of GHZ 8x8 patterns as one file rather than 2?
Personally, I would change that to Code (ASM): Obj2E_ChkS: cmpi.b #7,d0 bne.s Obj2E_Goggles [S monitor code here] Obj2E_Goggles bra Obj2E_ChkEnd Reason for that being, if you hit a goggle monitor at your current point in time, it would hang up the game, since at no point would the game be able to reach the goggle code, because you branch back to ChkRings, which would run again to ChkS, then back to ChkRings, and repeat. Aside from that, are you sure there are no building errors? The code seems somewhat sloppy. For instance, I placed your code into a rom, and it claimed that there was an out of range error for that bra.s Obj2E_NoMusic, si change that to a bne.w. Also, why do you randomly have a bne.s Obj2E_ChkShield in there? You're not even making a compare for the branch to work with. (Quick Edit: If you're trying to make it so that the S monitor gives Sonic a shield as well, try 'move.b #1,($FFFFFE2C).w ; give Sonic a shield' instead of bne.s Obj2E_ChkShield) Last but not least, get rid of that nop at the end, it's not necessary. Another Edit: And as someone pointed out to me, You appear to have a jmp. (Playsound).l half-way through your code, this would stop the game from carrying on with the rest of the code after that point.