11 March 2016 - Forum Rules
Started by eskayelle, May 03, 2020, 02:51:58 PM
Addresses: Upper LowerMAX 73EA 73F4AXEL 73FE 7408BLAZE 7412 741CSKATE 7426 7430Tile indices: Upper half Lower half UL UR LL LRA 00 02 01 03B 30 32 31 33C 34 36 35 37D 4C 4E 4D 4FE 04 06 05 07F 04 06 19 1BG 08 0A 09 0BH I 0C 0E 0D 0FJ K 38 3A 39 3BL 3C 3E 3D 3FM 10 12 11 13N O 14 16 15 17P 18 1A 19 1BQ R 1C 1E 1D 1FS 20 22 21 23T 24 26 25 27U 28 2A 29 2BV 2C 2E 2D 2FW X 40 42 41 43Y 44 46 45 47Z 48 4A 49 4BSpace 3E 3E 3E 3ENo code for H, J, N, Q, and W.For H, use 02 02, 19 03.For J, use 3E 2A, 29 2B.For N, use 34 02, 03 03.For dot, use 3E 3E, 03 3E.Alternatively, use TLP to edit the tiles, the offset is approximately $32A00.
Quotewhat's this version offer in the way of new stuff?
QuoteDo you have any intention to bring SoR 4 sprites to a new SoR 2 version? And the stage backgrounds?
::TMNT of Rage - Japanese Title Screen.ips::Assembly hack to repoint references to the Bare Knuckle Screen over to the TMNT of Rage one!::Now every region will see the TMNT of Rage title screen!
::TMNT Remix - Remove Region Lock.ips::Revised hex to add the Game Genie master code and remove the region lock.::This also removes the issue of a bad checksum not allowing the game to play.::TMNT Remix - BTST #7,($00A10001), BNE to BRA (Rem JPN Text).ips::Using tracelogs, searched for each instance in the ROM where the following command occurred: BTST #7,($00A10001). ::Changed the next command from a BNE to a BRA to skip over any Japanese region screen commands.
QuoteFrom WWF Smackdown Commercial:Dwyane "The Rock" Johnson: "I smell what you're cookin."Actor: "Pancakes, Rock! Pancakes!"
Character and Enemy Life Bar Portraits - $335E0-$341E01P and 2P? - $35FA8 - $36088Player's default shadow - $36088 - $36128Hit Register 1 - $36128 - $36228Hit Register 2 - $36228 - $36448Dust cloud - $36448 - $365C8Money Bag - $365C8 - $36648Gold Bar - $36648 - $366C81up - $366C8 - $36748Apple - $36748 - $367A8Turkey - $367A8 - $368A8"Go" Sign - $368A8 - $369A8
Quote"In order to use the boss palette when replacing bosses, just put the Alternative Palette checkbox in the SoR2 Level Editor." ~ Savok
Quote from: eskayelle on May 13, 2020, 10:00:19 AMFun with PancakeNo, not those pancakes%u2026 today we%u2019re working with gsaurus%u2019 Pancake 2 sprite editor for Streets of Rage 2.DID YOU KNOW? According to Savok, Barbon%u2019s sprites are not actually compressed, as the editor notes. If you go into Pancake2 > guides > default.txt and change the third Barbon line from a 1 to a 0, it should unlock him for editing. The fourth line may need to be removed upon further read of guidance as well.I did manage to change out some character names for the uncompressed enemies so they%u2019d generate in Pancake 2. I also determined that, if you change those enemies%u2019 palettes in the default.txt file to AE50, you%u2019ll be able to more easily edit your newly imported sprites%u2019 colors. (Pancake 2 forces the rom to take on the same palette as Max/Axel/Blaze/Skate, so when you change their colors, any uncompressed bosses that you imported have to use that same palette.)That brings me to this teaser%u2026Also%u2026 many of the icons aren%u2019t really compressed either, including the small character portraits for players and enemies that appear in game, and the icons for the 1up, apple, chicken, and some other pics. With an editor like TLP and the right palette, you can easily edit those graphics to fit your game.Thanks, to Yoni, for instance, I now have a pizza slice in TMNT Final, with a little plate added by me to line up with SoR2 style.Here are some offsets for images, grabbed from the the ol%u2019 Internet Archive Wayback Machine and the archived Streets of Rage Online site (originally produced by Red Crimson and Glisp)%u2026Code Select ExpandCharacter and Enemy Life Bar Portraits - $335E0-$341E01P and 2P? - $35FA8 - $36088Player%u2019s default shadow - $36088 - $36128Hit Register 1 - $36128 - $36228Hit Register 2 - $36228 - $36448Dust cloud - $36448 - $365C8Money Bag - $365C8 - $36648Gold Bar - $36648 - $366C81up - $366C8 - $36748Apple - $36748 - $367A8Turkey - $367A8 - $368A8"Go" Sign - $368A8 - $369A8And%u2026 here%u2019s the archived SoR2 main page for even more goodies: Archived Streets of Rage Online siteNext up: credits screens...
Character and Enemy Life Bar Portraits - $335E0-$341E01P and 2P? - $35FA8 - $36088Player%u2019s default shadow - $36088 - $36128Hit Register 1 - $36128 - $36228Hit Register 2 - $36228 - $36448Dust cloud - $36448 - $365C8Money Bag - $365C8 - $36648Gold Bar - $36648 - $366C81up - $366C8 - $36748Apple - $36748 - $367A8Turkey - $367A8 - $368A8"Go" Sign - $368A8 - $369A8
QuotePractically every Jeopardy contestant ever: "I'll take Potpourri for $200, Alex..."
Quote from: eskayelle on May 13, 2020, 01:31:19 PMWell... Zamza himself is one of the 4 or 5 uncompressed bosses in the game that can be readily edited through Pancake 2; I believe Savok did this in his River City Girls.. of Rage hack here on RHDN.I myself did fit Shredder in to replace Shiva, Rocksteady to replace R. Bear, and this guy to replace Abadede:I think, back then, the developers were probably hitting their limits on a 16-megabit cartridge, so they duplicated certain bosses and used palette swaps of them for regular enemies in order to simulate variety. Since we can today expand our ROMs to at least 32-megabit and still play the games unhindered on actual hardware, I would think some ASM hacking plus another set of sprites, mapping, and AI attack patterns could be fit for a separate boss. That ASM, however, is light years beyond me. So yeah, doable, but you've got to find the right party who's interested in creating the new code, plus a good spriter.While I'm here...PotpourriThis is a placeholder for a few quick hits to help with your rom hacks. Also remember this site: Archived Streets of Rage Online sitePalettes for the 2nd player in the Duel/Battling mode are at $1091A (Max); $1094A (Axel); $1095A (Blaze); and $1097A (Skate), respectively.Per Dha Lau Hoo, if you set offset $B4D2 to #$4E71, this NOP command will allow players to move after beating a boss, the effect you see in the arcade game Cadillacs & Dinosaurs.Per Dha Lau Hoo, the default difficulty setting is at offset $040F, and the default lives setting is at $0415.Per Savok, if you set the set of 16 bytes starting at offset $C576 to #$00, this will prevent that weird shift forward that occurs during certain special and blitz moves performed by the Blaze character.PROTIP: Always peruse readme files. Most of this stuff is in one or more of my TMNT of Rage readmes. There's more offsets in those files, too! (This includes music offsets in the MD+ hacks' readmes.)(...Yes... MD+ hacks. Along with TMNT Final, I'll be issuing a TMNT Re-Shelled patch concurrently, which will allow everyone to play the game on a MegaSD cart with its MD+ functionality.)
Quote from: Pleiades7 on May 13, 2020, 11:46:28 AMMy hope someday is to replace that boss with something new or original, as was done here in an openbor version of SOR2In that case, they took a boss named "Hakikari" from Streets of Rage game gear and used him, which was cool because the camouflage pants made sense out of that environment, and he still looked enough like the red souther that it should feel familiar to die hard fans of the original.Anyhow, in theory, could it be possible (uncompressed or not) to update that boss ever?
Quote from: eskayelle on May 13, 2020, 06:57:21 PMThanks!I get your point on the flow between scenes, but I also allow that it's supposed to be arcade-style, and a lot of those venues don't make much sense. Like, in some beat-em-ups, the player teleports to 5 or 6 cities with no explanation. Is what it is.Now, SoR2 does have some continuity. Start on the Streets (Stage 1), then another road (Stage 2) that leads to the amusement park (Stage 3). I'm not a fan of the alien's lair; it really doesn't fit, even in an amusement park setting. It's too... Contra-y.From the amusement park, on to the Stadium (stage 4). And in the background, you can see the amusement park where you were, so there's progression.Could have been a harbor next, but you end up on a boat (Stage 5) that takes you to a beach (Stage 6) which is the island upon which Mr. X's factory (Stage 7) and penthouse suite (Stage 8 ) resides. Meh, good enough for a classic quarter muncher!I had thought about more mutant bosses for TMNT Final, but I feel like the fighting styles don't fit well. Closest thing to Zamza would be Slash, but it's not a great fit. Jet and Baxter could connect nicely, especially since Stage 2 kinda looks like Big Apple, 3am, but 1) Jet's sprites are compressed, making it difficult to edit and 2) you'd be stuck with him as a regular enemy too, and I'm not a fan of that.I thought about using Tatsu, but his animations in Hyperstone Heist are too sparse. Thought about Karai from Tournament Fighters, but her fighting style doesn't match well to my remaining bosses. I wanted more human bosses to fit in with the SoR2 universe, which is my other reason for avoiding anything but the main mutants.Thought about putting myself in place of Barbon, but that's more of fun thing for me than anyone else, and sprite edits are time consuming and sometimes not worth the effort...I really like that idea of cutscenes or maps. Hopefully someone in the future looks into hacking the stage screen and adding some code and tiles to make things interesting.Almost forgot... a few teasers:In-game Rocksteady:TMNT Re-Shelled title screen (font from the PS3 "phenomenon"):
Quote"STUPID JANK HACK!... Is there a way of, like, making it so eskayelle can't make another romhack ever for the rest of his life, or something?" ~ Anthopants
;=========================================;Streets of Rage 2;Initial Health Code Modifications v7;=========================================;-----------------------------------------;Purpose: Hijack the code before the 1st;stage starts and send it to another area;in ROM to add functionality to two more;RAM bytes.;-----------------------------------------org $00005CBE ;offset to hijack; lea ($00005D74),A6 ;4D F9 00 00 5D 74 ;original (hijacked) $5CBE code jsr $00024E00 ;4E B9 00 02 4E 00 ;jump to new code location;-----------------------------------------;Purpose: Set two unused RAM bytes to zero ;before a game (stage 1) starts. ;These bytes will be changed so the health;value increases to 0x68 whenever a player;dies, but the very first life should have;a health value much less than the default;0x68.;-----------------------------------------org $00024E00 ;offset to hijack move.b #$00,$F0BE ;11 FC 00 00 F0 BE ;create a player 1 parameter (1 byte) move.b #$00,$F0BF ;11 FC 00 00 F0 BF ;create a player 2 parameter (1 byte) lea ($00005D74),A6 ;4D F9 00 00 5D 74 ;original (hijacked) $5CBE code rts ;4E 75 ;return to hijacked location and continue code;-----------------------------------------;Purpose: The byte with the initial health;value is at offset $7EC8.;Need to modify this code to split the ;commands such that the initial value is;reduced, but all lives after receive a;larger health value (the old 0x68).;-----------------------------------------org $00007EC8 ;offset to hijack; move.w #$0068,$0080(A2) ;35 7C 00 68 00 80 ;this is the original code at $7EC8 jsr $00024E50 ;4E B9 00 02 4E 50 ;jump to new code locationorg $00024E50 ;new code to split out 0x68 health per player after death addq.b,#1,$F0BE ;52 38 F0 BE ;increment new player 1 byte addq.b,#1,$F0BF ;52 38 F0 BF ;increment new player 2 byte cmpi.b #$01,$F0BE ;0C 38 00 01 F0 BE ;P1 RAM byte should be #$01 the first stage, first life beq.s splithealth ;67 10 ;if equals #$01, give #$01 in health; else, give health of #$68 cmpi.b #$01,$F0BF ;0C 38 00 01 F0 BF ;P2 RAM byte should be #$01 the first stage, first life beq.s splithealth ;67 08 ;if equals #$01, give #$01 in health; else, give health of #$68 move.w #$0068,$0080(A2) ;35 7C 00 68 00 80 ;this is the original code at $7EC8 rts ;4E 75 ;looking to jump back to $7ECE -- clr.w $00A8(A2)splithealth:; move.b #$68,$EF81 ;11 FC 00 68 EF 81 ;$EF81 appears to be where the default health value comes from; but $F081 is for player 2; move.w #$0068,$0080(A2) ;35 7C 00 68 00 80 ;this is the original code at $7EC8; seems to do almost the same thing my code above would have move.w #$0001,$0080(A2) ;35 7C 00 01 00 80 ;change #$68 to a lower number, so when $F0BE or $F0BF = #$01, that player starts game with less life rts ;4E 75 ;looking to jump back to $7ECE -- clr.w $00A8(A2);;------------------------------------------;As written:;When the ROM starts, P1 and P2 have RAM;values of zero.;When the first stage of the first game;starts, the RAM values will increment to;#$01. The comparison will occur.;The code will branch, and default health;for both players will be 1 unit.;Plus, both RAM values will increment.;P1 and P2 will have RAM values of 2.;So, whenever either dies, when this code;runs again, it will not branch, and life;points assigned will be #$68.;;When a game is reset (hard or soft),;the RAM bytes should be assigned values ;of zero.;;Testing:;Currently works for P1, but P2 starts;with full life still. This will be the;puzzle, the test of friendship...; ;Will the stronger player take P1?;Will P2 let P1 take the 1up or make them;take the suicide attempt to get to the;chicken before Y. Signal kills them?;------------------------------------------;;------------------------------------------;-----------------NOTES--------------------;FFEFA9 and FFF0A9 are the life counters;FFEF80 is the total health value (max).;$7ECB is the offset for how high health can go.;;Try FFFFF0BE and FFFFF0BF as unused RAM...;;...;;7EC8 move.w #$0068,$0080(A2) ;this is the original code for the default life points;7ECE clr.w $00A8(A2) ;this is where I want the hijack to come back to;7ED2 bra $00C6 [00:7F9A];;...;-------------------------------------------
QuoteParodius (Super Famicom) Voice: "Speed Up!"
::TMNT Remix - Kill End Screens 22098 BEQ 67.ips::Using a trace log, located the offset by which the frame delay is present for the end credit screens.::Changed a BNE to a BRA to immediately fade out the end screens.::Then blacked out all their palettes except the last one.::This is basically unfinished business, as I can't write code to point to new/different ending screens.::The information on palette, screen picture, and tile mapping offset is located here:::https://www.romhacking.net/forum/index.php?topic=29366.0
::TMNT Remix - 0235F8 #1.ips::Using a trace log, located the offset relevant to the frame delay for the text credits.::Code at $0235F8 is 53 79 00 FF 91 0E::Using xvi32, replaced code as follows:::4E B9 00 02 4C E0 (JSR $00024CE0)::Then, at $024CE0, added the following:::53 79 00 FF 91 0E::53 79 00 FF 91 0E (basically doubles the increment, so it cuts the delay in half)::4E 75 (RTS)
::TMNT Remix - Fix First Line.ips::But... the end credits [are] using the same function as the opening text,::so the above match will cause it to end too quickly. ::Create[d] a revised patch...::Revised code at $024CE0:::53 79 00 FF 91 0E (the initial increment)::0C 40 00 1C (CMPI.W #$001C,D0 - a comparison of D0 to #$1C) ::67 02 (BEQ #$02 - If the comparison doesn't subtract to zero, increment again; else RTS) ::4E 75 (RTS) ::53 79 00 FF 91 0E (the second increment to speed up the end)::4E 75 (RTS)
Quote from: eskayelle on May 03, 2020, 02:51:58 PM(SKL 5/27/2020) TMNT Final is here! Thanks to all the folks who helped provide various levels of guidance that got me to the finish line! Please be sure to check out the hack, and keep reading this blog to seesome of the fruits of my efforts (and some of how the hack was made...).Given all the help I'd received from the RHDN community (and others!), I figured I'd do something a bit similar to my NBA Jam TE work and distribute some of the knowledge I've gained hacking Streets of Rage 2 so more folks can put out new hacks and perhaps make an update or two to some old ones. At the same time, I'm polishing off my last mods in my TMNT of Rage series, having been able to achieve 90% or so of what I was hoping to accomplish with the hack. So, as I'm putting the finishing touches on The Final Shell Shock (mostly playtesting), I figure every so often I'll update this thread with some screenshot and protips.And away we go...Title ScreensYep, they're a pain, and you don't get a lot from them gameplay-wise, but they do put a nice set of polish on a mod and really make it your own. With a fair amount of guidance from folks as to what to look for in the code (and where to hijack), I managed to crack that one for SoR2 and published a doc to help others get in on that sweet title screen action, too. To keep it simple, there are two (likely more) paths you can take to insert your own title screen:1) Figure out the decompression scheme and build a tool that mimics it, reverses it, and effectively injects your title screen in the same place. I haven't messed around much with that path, as I'm not much for compression schemes and utility building, but I can tell you the decompression routine starts around $30C0 in the US rom and is used for the title screen and end credits images, plus the enemy character sprites and likely the player portraits.2) Hijack the spot where the title screen is decompressed and pushed to VRAM and instead send an already-decompressed image from expanded rom over. That linked doc above takes a bunch of guidance from folks in this forum, plus Zophar's Domain and the Sonic Retro forums, and walks through all the logic and code to get you there.PROTIP: The US title screen's compressed image is at $39018, while the map for the image's plane B tiles is at $38B94. Armed with those and the palette locations (in the area of $5D34; check out the doc), plus the doc, you should be able to get a nice title screen going. I say this because Dha Lau Hoo's put out a number of revisions to his Final Fight and Street Fighter SoR2 hacks with the help of this guide.And with that comes my first teaser screen:Thanks to guidance from Yoni on how to get started with Tile Layer Pro, I managed to get more colors and more pop to the TMNT logo here, as compared to my previous mods' screens. I used TileMolestor for those, which seems easier to use but causes a fair bit of color loss when comparing the output to the original bitmap. I've been sticking with TLP for other edits in this new hack, but more on that later.Player Select Screen NamesLet's do one more tidbit... the Player Select screen. So many hacks don't correct for the Max, Axel, Blaze, and Skate tiles on the screen, despite some great sprite work in the hacks themselves. Let's pull back the curtain on that.An old Brawler's Avenue or SoR Online forum site had some guidance on how to revise those select screen tiles, but they seem to have been lost on the interwebs vacuum when that site went down or was changed out. Thankfully, some folks held on to a copy of the instructions. Dha Lau Hoo was kind enough to help me out with a set, and I want to pass that on as well (hoping here I'm not being too forward).In any event, here's a version of those instructions I've passed along to any who've asked.Code Select ExpandAddresses: Upper LowerMAX 73EA 73F4AXEL 73FE 7408BLAZE 7412 741CSKATE 7426 7430Tile indices: Upper half Lower half UL UR LL LRA 00 02 01 03B 30 32 31 33C 34 36 35 37D 4C 4E 4D 4FE 04 06 05 07F 04 06 19 1BG 08 0A 09 0BH I 0C 0E 0D 0FJ K 38 3A 39 3BL 3C 3E 3D 3FM 10 12 11 13N O 14 16 15 17P 18 1A 19 1BQ R 1C 1E 1D 1FS 20 22 21 23T 24 26 25 27U 28 2A 29 2BV 2C 2E 2D 2FW X 40 42 41 43Y 44 46 45 47Z 48 4A 49 4BSpace 3E 3E 3E 3ENo code for H, J, N, Q, and W.For H, use 02 02, 19 03.For J, use 3E 2A, 29 2B.For N, use 34 02, 03 03.For dot, use 3E 3E, 03 3E.Alternatively, use TLP to edit the tiles, the offset is approximately $32A00.The letters are 4 tiles each, each letter being 2x2, and duplicates used to save rom space. Changing the offsets above to the various bytes changes your titles, so you can then rename your characters. Maximum length is 5 letters still.The end result?Thanks for reading, and stay tuned for more!
Quote "If it ain't broke, don't fix it." ~ Anonymous
;BTST is the Start button.;BNE causes the jump to $000208, the initialization.32:F8CC 08 00 BTST #7,D0 32:F8D0 66 0C BNE #$0C [32:F8DE] ;...;Initialize the game00:0208 4A B9 TST.L ($00A10008) 00:020E 66 06 BNE #$06 [00:0216] 00:0216 66 7C BNE #$7C [00:0294] 00:0294 60 6C BRA #$6C [00:0302] 00:0302 4A 79 TST.W ($00C00004) 00:0308 30 39 MOVE.W ($00C00004),D0 00:030E 08 00 BTST #1,D0 00:0312 66 F4 BNE #$F4 [00:0308] 00:0314 4E B9 JSR ($000015F4) ;HIJACKS TO ADD--;OPTION 1 - hijack start button press and add delay (does not recover hi score table)org $32F8CC4E F9 00 33 87 80 JMP ($00338780) - putting this at end of rom will cause the hi score table to revert to brokenorg $3387800C 42 00 60 CMPI.W #$0060,D266 06 BNE #$064E F9 00 00 02 08 JMP ($00000208)52 42 ADDQ.W #1,D208 00 00 07 BTST #7,D067 06 BEQ #$064E F9 00 00 02 08 JMP ($00000208)4E F9 00 32 F8 D2 JMP ($0032F8D2);OPTION 2 - remove start button press and go with delay only (does not recover hi score table)org $32F8CC4E F9 00 33 87 80 JMP ($00338780)0C 42 00 60 CMPI.W #$0060,D266 06 BNE #$064E F9 00 00 02 08 JMP ($00000208)52 42 ADDQ.W #1,D24E F9 00 32 F8 D2 JMP ($0032F8D2);DELAY ADD AT END OF INTRO SCREEN / BEFORE SEGA SCREEN;RIGHT BEFORE SEGA LOGOorg $0059244E F9 00 33 87 A0 JMP ($003387A0)4E 71;39 79 00 03 A4 A8 FF FC 39 79 MOVE.W ($0003A4A8),$FFFC(A4) org $3387A00C 42 7F FF CMPI.W #$7FFF,D266 0E BNE #$0E 39 79 00 03 A4 A8 FF FC 39 79 MOVE.W ($0003A4A8),$FFFC(A4) ; the hijacked code4E F9 00 00 59 2C JMP ($0000592C)52 42 ADDQ.W #1,D24E F9 00 33 87 A0 JMP ($003387A0); JMP to start of this code to loop;OPTION 3 - USED;RECOVER THE OVERWRITTEN RAM FROM THE INTRO SCREEN INSERTorg $32F8DE4E F9 00 33 87 80 JMP ($00338780)org $33878031 FC 00 08 FD 06 MOVE.W #$0008,$FD06 ;lives31 FC 00 06 FD 04 MOVE.W #$0006,$FD04 ;difficulty20 7C 00 00 03 60 MOVE.L #$00000360,A0 ;the top high score table in rom 22 7C FF FF FD 30 MOVE.L #$FFFFFD30,A1 ; where the table is supposed to go in ram20 3C 00 00 00 9F MOVE.L #$A0-1,D0 ;the decrement for the loopE4 48 LSR.W #2,D0 ;a division by 4 to account for the long address@RECOVERTABLE:22 D8 MOVE.L (A0)+,(A1)+ ;160 bytes from $360 to $3FF need to go to $FFFFFD30 to $FFFFFDCF51 C8 FF FC DBF D0, @RECOVERTABLE ;loop back to the label4E F9 00 00 02 28 JMP ($00000208) ;the jump to the sega screen;DELAY ADD AT END OF INTRO SCREEN / BEFORE SEGA SCREEN;RIGHT BEFORE SEGA LOGOorg $0059244E F9 00 33 87 AC JMP ($003387C0)4E 71;39 79 00 03 A4 A8 FF FC MOVE.W ($0003A4A8),$FFFC(A4) org $3387AC0C 42 7F FF CMPI.W #$7FFF,D266 0E BNE #$0E39 79 00 03 A4 A8 FF FC MOVE.W ($0003A4A8),$FFFC(A4) ; the hijacked code4E F9 00 00 59 2C JMP ($0000592C)52 42 ADDQ.W #1,D24E F9 00 33 87 AC JMP ($003387AC); JMP to start of this code to loop
Page created in 0.260 seconds with 19 queries.