Hacking the ST rom...

17891012

Comments

  • 7 5 07 5 0 Joined: Posts: 439
    Kudos to both Jed and UD.
    my dream is to see a modified ST with cps1 sfx. Now THAT will make my life neat.
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited September 2014
    New Version of the Vsav training mode



    Razoola's phoenix set
    https://www.dropbox.com/s/rzdiu4g67c9ytk3/Vsav Training Hack(RazoolaPhoenix).zip?dl=0

    Euro set(aka vsav.zip)
    https://www.dropbox.com/s/ybsu1q286dy6l83/Vsav Training Hack(EuroEncrypt).zip?dl=0

    Notes Dump
    Some of the branches in the notes might be place holders.
    Vsav Training Mode Roms
    
    ;Lives selection text
    ;FF80A4
    
    Text 1062A
    54 4F 52 45 4D 4F 20 20
    
    
    Timer
    Location : 9822
    v1 Byte Code: 532D 010A
    v2 Byte code: 4EF9 000F FE70
    
    4A2D 00A4
    6712
    4A2D 010A 
    6704
    532D 0109
    6A06
    4EF9 0000 9828
    4EF9 0000 983C
    
    
    -------------------------------------------------------------------------------
    Death write
    Location : 18A7C
    v1 Byte Code: 337C 0090 0050 337C 0090 0052	 
    v2 Byte Code: 
    
    4EB9 000F FE20
    4EB9 000F FE40
    
    Jump 1
    4A2D 00A4
    6608
    337C 0090 0050
    4E75
    337C FFFF 0050
    4E75
    
    4A2D 00A4
    6608
    337C 0090 0052
    4E75
    337C FFFF 0052
    4E75
    
    -------------------------------------------------------------------------------
    Death write Command Grabs
    Location : 2980A
    v1 Byte Code: 337C 0090 0050 337C 0090 0052
    v2 Byte Code: 4EB9 Location
    
    ^^^^^^^^^^^^
    4EB9 000F FE20
    4EB9 000F FE40
    
    -------------------------------------------------------------------------------
    Lives A61C bsr to A684
    Location : A6A0
    v1 Byte Code: 132D 03B0
    
    v2
    4EF9 000FFDE0
    
    Jump
    4A2D 00A4
    6706
    532E 03B0
    6B04
    4EF9 0000 A6A6
    4EF9 0000 A6B4
    
    
    
    -------------------------------------------------------------------------------
    The Refill JSR
    Location : 281A6 
    Byte code: 4EB9 000F FD20
    Player Addresses A4 A6
    
    
    ;Code at ffd20(7Fd20)
    
    
    4A2D 00A4
    6610
    
    4A2C 03F0
    6710
     
    4A2E 0005
    6604
    532C 03F0
    4EF9 0001 559E
    
    ;Refill
    197C 0040 03F0; Timer
    303C 0090
    3D40 0050
    3D40 0052
    4EF9 0001 559E
    
    
    -------------------------------------------------------------------------------
    Return to Character Select
    ;Deselect
    Location : 2090E 
    v1 Byte code: 1D7C 0000 0004
    v2 Byte code: 4EB9 000F FDB0
    
    4A2D 00A4
    6608
    1D7C 0000 0004
    4E75
    1D7C 0004 0004
    4E75
    
    -------------------------------------------------------------------------------
    JSR
    Location : 223EC
    Byte code: 4EB9 000F FD60
    
    4A2D 00A4
    660C
    4A2D 0060			tst.b ($60,A5);Checks Start input
    660C 				bne; PC+0C |
    1B7C 0080 6000 		move.b #$30, ($6000,A5); Refill Timer
    4EF9 0002 9F12		jmp $29f12.l
    
    4A2D 6000			tst.b ($6000,A5); start timer check
    6610				bne; 
    
    7000
    3B40 0004		move.w #$c, ($4,A5)
    3B40 0008		move.w #$2, ($8,A5)
    3B40 000C		move.w #$10, ($a,A5)
    4E75			rts
    
    
    ;Timer countdown
    532D 6000 
    4EF9 0002 9F12		jmp $29f12.l
    
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Decided to dive in and bought an EEPROM programmer, UV eraser and some EPROMs. Don't really know what I'm doing but going to have a bash and figure it out. One thing though - I couldn't find the modified ROMs for the ST training mode in this thread? I saw something for the Avalanche ROM set? But the board I'm wanting to run training mode on is an original/non phoenixed JP board. Would anyone be kind enough to upload the ROMs for me if they exist, or Jed if you would be able to upload the two modified ROMs so I can burn and go?

    Thanks a bunch guys.

    These ROMs plus the UD CPS2 are the biggest things to happen to ST in a long time. Not only do we have arcade ST at tournaments all over the UK now, but we have training mode just around the corner too :)
  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Oh also, I was going through some old photos of when I changed the battery in my board and notice there is an unpopulated socket in there. At first I started to think, "What if you could put all the training mode data onto that and only have to insert one ROM" but as soon as I thought that, I realised that you'd still need to edit ROMs 3 and 4 anyway to reference code in the new ROM. Then I got thinking about using the unpopulated slot for training mode anyway? Would it be possible to edit the game ROMs to read information from the currently unpopulated slot which would contain the code required for both training mode and regular ST? Maybe if you hold the coin button down for 5 seconds at the title screen or something to swap between them or have an option in the service menu. With the increased storage you could maybe even put "training mode" text on the title screen somewhere?

    I know nothing about coding, but maybe you could get the game to read the life data etc. from ROM 10 instead of 3 and 4, and with that increased storage do some other cool stuff.

    Just wondering if there is a more permanent solution rather than having to swap ROMs each time. Fortunately for me I do have 2 boards for when I run tournaments so I can have one as a training mode board until I need it for a setup, but I don't like the idea of constantly removing/plugging in ROMs into 20 year old sockets
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited September 2014
    There is, look at the Vsav training mode above it's just a lot more jumps I have to do to make it work in ST. For every change I did that is a jump to new code that is with a check in the settings there was only 4 or 5 new jumps I had to implement along with the code I made. Now double that and add the mess that is ST you can see why I didn't do it with ST.

    Any way a simple Neo Geo Hack a friend requested.
    Vid


    Download
    https://www.dropbox.com/s/qi6mvujsn1cxjiw/rotdnowallshack patch.zip?dl=0

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Ah ok I see now. I knew ST was a mess but I didn't realise how much more difficult it would be.

    Do you happen to have the training mode ROMs for the original/non phoenixed IIX JP board? I can't seem to find them in the thread. I saw an exe from like 7 months ago, but was wondering a) if there was an updated version and b) if I modifiy some ROMs from a zip set if that would work? I assumed all the ROMs out there were decrypted and putting some decrpyted ROMs in a board with encrpyted ROMs would fuck something up or wouldn't work
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    I use ips patches since it's the most common way of patching rom hacks.
    Pof, posted up what the actual hex edits that are needed to be done for an encrypted set.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Thanks for the info dude, you've been very helpful :)

    Also whoops. I ordered the wrong EPROMs thanks to ebay's fuzzy search. Typed in 27c4096 in the search and selected UK only as I wanted them ASAP but it turns out it also bought up results for 27c512, and of course at 3 am or whatever, I just blindly ordered without checking hah.

    So would some AT27c512r be useful for anything? Are they used in CPS2 boards at all or other consoles? At least I have some dummy chips to play with to make sure I get the voltages right and stuff without creating dud 4096's
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    cps1.c says Forgotten Worlds/Lost Worlds uses one as it's sound program rom. I'm sure there is more uses for it else where.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • fluxcorefluxcore Fighting Kiwi Joined: Posts: 310
    cps2 ST with a toremo flag in the dip settings would be a killer app :)
    There is no knowledge that is not power
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    I'm busy with another project.
    Left: CPS2
    Right: CPS1'
    ByUAwoZIUAEUhTU.png:large

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    I know we communicated briefly about referencing the Q-Sound CPS1 games but if you want to see a direct CPS1(non-Q-Sound)-to-CPS2 done by Capcom themselves, they ported the first Rockman/Megaman: Power Battle to CPS2 (for some crazy reason).
    -ud
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited September 2014
    I should take a look at it anyway. Even, if it isn't a direct port. To see what they had to change.

    Edit:
    I could drop Mbomber duo and go with sf2 and reuse the qsound chip from sf2 versions on cps2. So I don't have to deal with the protection that is on Muscle Bomber.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    CPS1 to CPS2 gfx notes

    SF2:HF rom
    Only partially got the graphics interleaved correctly.
    s92-1m.3a interleaves with s92-2m.4a and this is for the left 8x16, and only works till 0x1000 in the graphics viewer on 16x16 even then

    zjLPOxt.png
    VIOLnQK.png

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • wazeemwazeem Joined: Posts: 11
    Hey guys, hope im not breaking too many rules by posting this here (but the other rom hacking threads look a bit dead).

    Thanks Jed for the pointers, they really helped!

    Here is what I have done so far, now all I have to learn is to get into an encrypted rom, manipulate the crc checks and then it should be good to play on GGPO (I think).





    P.S. Sorry the quality is so bad of the videos, my laptop just isnt strong enough to record at a better setting :(
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited September 2014
    Don't worry about it I posted a lot of Vsav stuff in this thread all the time and now working on porting a cps1 game to cps2.

    Also, feel free to use my A3 hacks which the notes are posted in this thread for removing the counter hit flash and adding the hidden characters to the select screen.


    FF86AD aka Player Address + 0x2AD - Status Timer
    FF86AE aka Player Address + 0x2AE - Status

    Flags for Status
    0E - Pure white / air tech
    10 - Lighten / throw tech
    12 - Red / Priority
    14 - Pink / Damage Reduction
    16 - Light Blue / Just Defend

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • wazeemwazeem Joined: Posts: 11
    Sweeeet! Thanks Jed, I really wanted to add the flash after you mentioned it but after many wasted hours I gave up, just couldn't find the byte that dictated this. :D
  • wazeemwazeem Joined: Posts: 11
    Here is my notes for the changes so far.

    Currently im putting my code in the test menu text location, since I figured it was safe to use that location as im not aware of anyone confirming a3 has an intact debug still flaggable.

    Also not in the videos I also check for X-Dhalsim and give him a smaller push block strength.
    jump instruction for guard cancel: 034820
    value max guard: 00FF864C
    
    alpha counter removal - 2EE78 : 042E 0010 024C
    replace with (jump to next instruction!): 4EF9 0002 EE7E
    
    Data needed for pushblock during subroutine: 0291BE bsr 2920C
    
    do b@FF8502 = c ; Character is Dan
    do b@FF8532 = 1 ; Char is Vism
    do b@FF8771 = 03
    do D0=7
    
    29278 = the call to do push block animation
    Flash screen : do w@80410A=9280
    
    Override who can do PB (all X ism chars)
    replacing 2920C: 0C2E 001F 0102
    with: jmp 016300 : 4EF9 0001 6300
    016300 : cmpi.b 1f, (102,A6) : 0C2E 001F 0102
    016306 : beq 01631E : 6716
    016308 : cmpi.b ff, (132, a6) : 0C2E 00FF 0132
    01630E : bne 016324 : 6614
    016310 : move.b (24d, a6), d0 : 102E 024D
    016314 : addi.b 1C, d0 : 0600 001C
    016318 : cmp.b d0, (24c, a6) : B02E 024C
    01631C : bgt 016324 : 6E06
    01631E : jmp 029224 : 4EF9 0002 9224
    016324 : jmp 029212 : 4EF9 0002 9212
    01632A : 
    
    Modifying how much push block is given:
    replacing 29258: (move.b 1f, A4) 197C 001F 02C2
    with: jmp 01631C : 4EF9 0001 632A
    01632A : move.b 1f, (2C2, a4) : 197C 001F 02C2
    016330 : cmpi.b 1f, (102,a6) : 0C2E 001F 0102
    016336 : beq 016372 : 673A
    016338 : cmpi.b ff, (132, a6) : 0C2E 00FF 0132
    01633E : bne 016372 : 6632
    016340 : move.b ff, (24b, a6) : 1D7C 00FF 024B
    016346 : move.b 1C, (29a, a6) : 1D7C 001C 029A
    01634C : addi.b 1C, (24d, a6) : 062E 001C 024D
    016352 : addi.b 1C, (24f, a6) : 062E 001C 024F
    016358 : cmpi.b 0f, (102,a6) : 0C2E 000F 0102
    01635E : bne 016366 : 6606
    016360 : move.b 15, (2C2, a4) : 197C 0015 02C2
    016366 : moveq 0, d0 : 7000
    016368 : moveq 3a, d3 : 763A
    01636A : moveq 2f, d4 : 782F
    01636C : jmp 02927C : 4EF9 0002 927C
    016372 : jmp 02925E : 4EF9 0002 925E
    
    return to 2925E for regular anim, jump to 2927C to skip anim so remain in block.
    
    do b@FF864B = Timer to initiate gauge recharge
    do b@FF869A = :FF869A = v: 1343 029A
    do b@FF864D = 24:FF864D = v+(FF864D): D729 024D
    do b@FF864F = 24:FF864F = v+(FF864F): D729 024F
    
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited September 2014
    I had an idea for the right side all day. And it seemed likely it would work I didn't do it at first. I just wanted to figure out how to get past the 0x1000 hurdle more.

    Unmodified Palette
    Ta6iJjG.png

    CPS1 Palette with some liberty
    6gZjy2H.png

    The the idea was to use 4 as the base interleave it with 3 for the left side graphics.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    Huh, I thought it was only 2 days of silence.
    vv9CvC8.png
    pvY9l9D.png

    Need to get rid of the doubling that lasts from 0x2000 to 0x3FFF and etc

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • 7 5 07 5 0 Joined: Posts: 439
    Dude, if you or anyone ports cps1 audio into ST a reality, I will donate an arcade cab.
  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    7 5 0 wrote: »
    Dude, if you or anyone ports cps1 audio into ST a reality, I will donate an arcade cab.
    Jed is already making room for your cab.
    -ud
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    Not going to happen, unless some one wants to do a hack job of wiring the Kabuki on to your cps2 board. I'll be using the q-sound still. Probably going to just reuse ST sound programming and samples. Then maybe, switch to HSF2 at a later for the CPS1 character voice samples. But this is way down the line I still need to fix the graphics, get past the ram checks, rewrite memory locations, fix inputs, fix any bugs, then either settings rewrite or sound.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    jedpossum wrote: »
    Not going to happen, unless some one wants to do a hack job of wiring the Kabuki on to your cps2 board. I'll be using the q-sound still. Probably going to just reuse ST sound programming and samples.
    Dah, I forgot about the Kabuki chip. Isn't that just a custom Z80? I wonder if anyone's ever sussed out the differences between it and a vanilla Z80.
    jedpossum wrote: »
    I still need to fix the graphics, get past the ram checks, rewrite memory locations, fix inputs, fix any bugs, then either settings rewrite or sound.
    I figured there would be a lot of nagging manipulation like that. Once you have a game fairly well ported (as a proof of concept), it would be awesome to get some other people on board working on the whole CPS1 library. Especially with Darksoft's CPS2 flash cart coming soon (I was shocked to discover how far along he is). That would be amazing to have the CPS1 & CPS2 libraries running on the same hardware. And since it will be easily updatable, people will be contributing bug reports & fixes (similar to what we see in the MAME community). Also all sorts of hacks and homebrew will likely pop up. For those of you not following, here's the interest thread on neo-geo: http://www.neo-geo.com/forums/showthread.php?254247-CPS2-Multi-Game-Cartridge
    -ud
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    undamned wrote: »
    Dah, I forgot about the Kabuki chip. Isn't that just a custom Z80? I wonder if anyone's ever sussed out the differences between it and a vanilla Z80.
    Here's the differences sound hardware wise.
    There is more than just the Z80 that is different. Kabuki custom Z80 with encryption, YM-2151 and OKIM6295 for the sound processing. Cps2 uses Z80 with a q-sound chip. CPS1 dash forgoes the Z80 and uses the main 68k and q-sound for sound as well reading q-sound data and ram for protection.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • wazeemwazeem Joined: Posts: 11
    So any idea how I would go about getting my changes into the sfa3.zip (encrypted) romset?

    I figured I could just play the decrypted rom on ggpo via the unsupported room but sfa3ud.zip rom isnt supported by ggpofba.
  • pofpof Joined: Posts: 28
    @wazeem: use XCopy to decrypt & re-encrypt the roms - https://www.mediafire.com/folder/tsu2b5ndrl0ut/ST_hacking
  • wazeemwazeem Joined: Posts: 11
    @pof‌ I have tried already but no version seems to work.

    Does it have to be a specific version or something?
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    SFA3 I believe is one of those games that got a redump of atleast the encryption key between ggpofba and current version of mame.

    So you have to use the custom option for it.
    from cps2crpt.c
    	// name                 key               upper                  watchdog
    	{ "sfa3",     { 0x6abfc8e0,0x2780ddc1 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfa3u",    { 0xe7bbf0e5,0x67943248 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfa3ur1",  { 0xe7bbf0e5,0x67943248 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfa3h",    { 0x8422df8c,0x7b17a361 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfa3hr1",  { 0x8422df8c,0x7b17a361 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfa3b",    { 0xd421c0b2,0x8116d296 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfz3j",    { 0x7d49f803,0x0cbe2d79 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfz3jr1",  { 0x7d49f803,0x0cbe2d79 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfz3jr2",  { 0x7d49f803,0x0cbe2d79 }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfz3a",    { 0x990b9301,0xa4e42c7e }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    	{ "sfz3ar1",  { 0x990b9301,0xa4e42c7e }, 0x100000 },    // 0C80 1C62 F5A8  cmpi.l  #$1C62F5A8,D0
    

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    SF2HF CPS2 roadmap
    Get graphics ported correctly
    Pass the ram checks
    Fix Inputs
    Sound
    Add a Settings Menu

    I'm still stuck on step 1
    So imagine if capcom still used cps1 fonts.
    VuUOfMq.png
    cEnTRVA.png

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    Break from Hyper Fighting

    ST Title screen code a lot of jumps to use of to make a main menu with.
    00AA12: btst    #$6, ($7e,A5); Start button is pressed or not
    00AA18: bne     $aa5c; branch to jmp $2b1c if not pressed.
    00AA1A: tst.b   ($2e3,A5); Service switch
    00AA1E: beq     $aa28; if not pressed
    
    00AA28: move.w  ($0,A5), D0
    00AA2C: move.w  ($32,PC,D0.w), D1
    
    00AA30: jsr     ($2e,PC,D1.w)
    00ABA2: move.b  ($7f,A5), D1
    00ABA6: not.b   D1
    00ABA8: and.b   ($7e,A5), D1
    00ABAC: andi.w  #$30, D1
    00ABB0: beq     $abf8; goes to an rts
    00ABB4: lea     ($2e9,A5), A1
    00ABB8: tst.b   ($344,A5)
    00ABBC: bne     $abdc
    00ABBE: btst    #$5, D1
    00ABC2: beq     $abcc
    00ABCC: btst    #$4, D1
    00ABD0: beq     $abf8; goes to an rts
    00ABD2: moveq   #$1, D2
    00ABD4: moveq   #$1, D0
    00ABD6: bsr     $ab7e
    00AB7E: tst.b   ($2df,A5)
    00AB82: bne     $ab9a
    00AB84: move.b  (A1), D4
    00AB86: moveq   #$0, D3
    00AB88: move.b  ($2e0,A5), D3
    00AB8C: addq.w  #1, D3
    00AB8E: mulu.w  D0, D3
    00AB90: andi    #$ef, CCR
    00AB94: sbcd    D3, D4
    00AB96: bcs     $ab9e
    00AB98: move.b  D4, (A1)
    00AB9A: moveq   #$0, D3
    00AB9C: rts
    
    00ABD8: beq     $abfa
    00ABFA: move.b  D2, ($2f0,A5)
    00ABFE: move.w  #$a0, D0
    
    00AC02: jsr     $9a8.w
    0009A8: trap    #$2
    0009AC: lea     (-$8000,A5), A4
    0009B0: tst.b   (A4,D0.w)
    0009B4: beq     $9ce
    0009CE: rte
    0009AA: rts
    
    
    00AC06: jsr     $2c86.w
    002C86: moveq   #$0, D0
    002C88: move.w  D0, ($20,A5)
    002C8C: move.w  D0, ($1e,A5)
    002C90: lea     ($aa,A5), A0
    002C94: move.w  #$1f, D0
    002C98: moveq   #-$1, D1
    002C9A: move.l  D1, (A0)+
    002C9C: move.l  D1, (A0)+
    002C9E: dbra    D0, $2c9a
    002C9A: move.l  D1, (A0)+
    002C9C: move.l  D1, (A0)+
    002C9E: dbra    D0, $2c9a
    
       (loops for 90 instructions)
    
    002CA2: rts
    
    
    
    00AC0A: jsr     $b2a.w
    000B2A: trap    #$b
    000B2E: lea     (-$7f00,A5), A4
    000B32: move.w  #$7, D7
    000B36: tst.b   ($0,A4)
    000B3A: beq     $b62
    000B62: lea     ($20,A4), A4
    000B66: dbra    D7, $b36
    000B36: tst.b   ($0,A4)
    000B3A: beq     $b62
    000B62: lea     ($20,A4), A4
    000B66: dbra    D7, $b36
    
       (loops for 24 instructions)
    
    000B6A: rte
    000B2C: rts
    
    Then off to clear a bunch of data and go to character select.
    

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • Born2SPDBorn2SPD SPD Fanatic Joined: Posts: 276
    edited October 2014
    Some input hacks i did.. all of them were pretty simple, minus the Rh crazy kick which actually demanded some work..

    -Zangief's Green Hand: DP + punch;
    -Ken's Crazy Kicks: QCF + kicks, like in HDR;
    -Cammy's Backfist: QCB, like in HDR (forgot to show it);
    -Cammy's Hooligan "HCF", or to be more precise, i changed the last direction from up-forward to just forward;
    -Fei's Chicken Wing: same as cammy's hooligan;

    I keep reading stuff about ST revival, about bringing this game back to life...
    Its nice to see big tourneys happening and old top players giving this game a chance again...
    But what we really need is new players... And having a strong scene obviously helps...
    But in my opinion what will really bring new players to our community is good tutorials/character guides so they can learn easily and have something to start... So, actually good players, stop being selfish and write stuff about the chars you know! The wiki is lacking so much basic content... Stop being lazy and do something about it.
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    This morning decided to not work on graphics and do preliminary work on program roms.
    B950E addi.w #$4000,D1

    Get rid of the 4000 and you can use the ssf2 font.

    CG21HQ5.png

    Now it branches to itself with this bit of code.
    B9178 tst.b ($2d2,A5)
    B917C bne $B9178

    So switch it to a beq it quickly passes the warning and ascii title screens it boots into this garbled screen and reading the memory it's the Dev menu and it's upside down.
    SgOiXWC.png

    And since the inputs don't work I can't do anything.

    Now with Video
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    Inputs only Directions and Punches
    ADR   Change
    1D2BC 804001
    1D2C8 804000
    

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    CPS2 Input notes aka I should of read the Source Code before I wrote this.
    Inputs
    CPS2 0x804000 
    Switches are Inverse 0 = on and 1 = off. Inputs are binary.
    
    0x804000 and 0x804001
    Other than location it behaves the same on CPS1.
    First byte Player 2 controls 0x804000
    0x80 = Return to neutral aka cancel?
    0x40 = HP, Shot 3, Shot C
    0x20 = MP, Shot 2, Shot B
    0x10 = LP, Shot 1, Shot A
    0x08 = Up
    0x04 = Down
    0x02 = Left
    0x01 = Right
      
    Second byte Player 1 Controls 0x804001
    0x80 = Return to neutral aka cancel? 
    0x40 = HP, Shot 3, Shot C
    0x20 = MP, Shot 2, Shot B
    0x10 = LP, Shot 1, Shot A
    0x08 = Up
    0x04 = Down
    0x02 = Left
    0x01 = Right
    
    Kick Harness
    0x804011
    This is where it gets different and weirdly this doesn't use a full byte only these bits.
    0x20 = Player 2 MK, Shot 5, Shot E
    0x10 = Player 2 LK, Shot 4, Shot D
    0x04 = Player 1 HK, Shot 6, Shot F
    0x02 = Player 1 MK, Shot 5, Shot E
    0x01 = Player 1 LK, Shot 4, Shot D
    
    Kick harness part 2
    0x804020
    0x40 = Player 2 HK, Shot 6, Shot F
    

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    Cadillacs and Dinos?
    -ud
  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Hey Jed
    I'm wondering if you ever thought about modifying the ST ROM to make it more tournament friendly? I think a lot of people would like the random stage select as it can get very boring being stuck on the same stage forever (also it's nicer for the spectators too), so maybe a service menu option to enable/disable that would be great if not too much work.

    Also something like a score counter would be amazing. It's the one thing I miss from Hyper SF2 (perhaps you can copy and paste the code for this?!). It can be troublesome when you have a setup unmanned as sometimes the players are so into it they lose track of the scores haha.

    I was wondering how to implement this as easily as possible. You may recall that the score counter increases by 1 each time a new game is started, but this applies for both players. If a player loses and let's the continue timer count down, it counts as a new game and the score is reset. Obviously letting the timer run down wouldn't work normally since you wipe out the score for the losing player. Maybe you could do something so the score counter of the player who continues does not increase by 1?

    I initially thought that you might be able to mess with the end of round scores, like adding 1 point permanently to the vital and disabling the "new match +1 score" thing entirely, but then I realised that would increase the score each round and not each game.

    I imagine there is something you can use to generate a score since the game obviously keeps track of who won the last game due to the character lock. You could even get rid of the score entirely and just have a couple of digits for the win counter. Would make it look a bit cleaner for capture overlays too.


    Also I got some replacement ROMs in the end and burned training mode. Works so good :)
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    undamned wrote: »
    Cadillacs and Dinos?
    -ud

    It's still SF2:HF just got the intro to start playing sort of.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    Haha, ok, the elephants didn't look right to me for SF.
    -ud
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    Zero1_ wrote: »
    Hey Jed
    I'm wondering if you ever thought about modifying the ST ROM to make it more tournament friendly? I think a lot of people would like the random stage select as it can get very boring being stuck on the same stage forever (also it's nicer for the spectators too), so maybe a service menu option to enable/disable that would be great if not too much work.

    Also something like a score counter would be amazing. It's the one thing I miss from Hyper SF2 (perhaps you can copy and paste the code for this?!). It can be troublesome when you have a setup unmanned as sometimes the players are so into it they lose track of the scores haha.

    I was wondering how to implement this as easily as possible. You may recall that the score counter increases by 1 each time a new game is started, but this applies for both players. If a player loses and let's the continue timer count down, it counts as a new game and the score is reset. Obviously letting the timer run down wouldn't work normally since you wipe out the score for the losing player. Maybe you could do something so the score counter of the player who continues does not increase by 1?

    I initially thought that you might be able to mess with the end of round scores, like adding 1 point permanently to the vital and disabling the "new match +1 score" thing entirely, but then I realised that would increase the score each round and not each game.

    I imagine there is something you can use to generate a score since the game obviously keeps track of who won the last game due to the character lock. You could even get rid of the score entirely and just have a couple of digits for the win counter. Would make it look a bit cleaner for capture overlays too.


    Also I got some replacement ROMs in the end and burned training mode. Works so good :)

    I dunno about the win counter since it usually gets covered up any way. I'd think being able to quickly go back to the character screen would be better and implement Fighting Layer's where you could select a different character when challenged instead of having an event mode.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    Glorious double post of being undetected for hours.
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    I just noticed a bug in my code with my training mode hacks since Player 2 HK is shared with the start buttons on cps2 inputs that means holding will cause the same effect as holding start. So no Kick TAP with p2 boxer.

    Seems to be only on Vampire Savior.

    This code seems to work for now will make a patch soon.

    *better code below
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    Vsav Training mode 1.2(I guess)

    New patch you only need to re do patch 4 if you already have it.
    https://www.dropbox.com/s/rzdiu4g67c9ytk3/Vsav Training Hack(RazoolaPhoenix).zip?dl=0

    New feature
    Pressing start will give you meter up to 5 for both players in player vs player and 10 against the cpu.

    Bug fix
    Holding Player's 2 HK no longer takes you to character select

    New code at address 0xFFD60
    4A2D 00A4
    6612                       ;branch if not set to 1 life/toremo
    102D 0060                  move.b  ($60,A5), D0
    0200 000F                  andi.b  #$f, D0
    4A00                       tst.b   D0
    660E                       bne     ;pc + #$0e
    
    1B7C 0080 6000             move.b  #$80, ($6000,A5)
    7000                       moveq   #$0, D0
    4EF9 0002 9F12             jmp     $29f12.l
    
    4A2D 6000                  tst.b   ($6000,A5)
    6610                       bne     ;$pc + #$10
    
    7000                       moveq   #$0, D0
    3B40 0004                  move.w  D0, ($4,A5)
    3B40 0008                  move.w  D0, ($8,A5)
    3B40 000C                  move.w  D0, ($c,A5)
    4E75                       rts
    
    102D 6000                  move.b  ($6000,A5), D0
    B07C 0077                  cmp.b   #$77, D0
    6D04                       blt     $660044
    522E 0109                  addq.b  #1, ($109,A6)
    532D 6000                  subq.b  #1, ($6000,A5)
    7000                       moveq   #$0, D0
    4EF9 0002 9F12             jmp     $29f12.l
    

    Razoola phoenix set first.
    New patch you only need to re do patch 4 if you already have it.
    https://www.dropbox.com/s/rzdiu4g67c9ytk3/Vsav Training Hack(RazoolaPhoenix).zip?dl=0
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • HokutoHokuto Eat it raw Joined: Posts: 16
    Zero1_ wrote: »

    Also something like a score counter would be amazing. It's the one thing I miss from Hyper SF2 (perhaps you can copy and paste the code for this?!). It can be troublesome when you have a setup unmanned as sometimes the players are so into it they lose track of the scores haha.

    I second the win counter, the HSF2 one. The JP version shows it every start of round and disappears when the "Fight!" message is over; I think it has ample time and appears ever so often to track score, at least in a simple way.

    Fly to the Leaden Sky
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    Found the commands that read the dipswitches. What that means is I don't have to edit that branch to get past the ram check and rotate the screen and fix the speed.

    1D3D4 Reads 80001A
    1D3E0 Reads 80001C
    1D3EC Reads 80001E

    Now to controls
    I can make some nasty code to try and make all kicks work.
    Or I can have people rework their wiring and maybe make a custom game slot on the emu.

    Re:Win Count
    These HSF2 graphics aren't on ST so you will have to reuse existing assets.
    nMFnGOI.png
    And there will be people so used to it not being there and still ignore it. So I would use a big number font for it like these.
    7oXI4gL.png

    Then again I'm not working on it.
    Post edited by jedpossum on

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

  • Zero1_Zero1_ Combo fraud Joined: Posts: 641
    Too bad you can't just write the graphics data to a bit of space in the program ROM and reference that. Even if it just uses the regular score/name font, that would be a big help. It's just something so it's there for people to keep track of. Many times players have lost count of where they are in a tournament set because neither of them have been keeping count, or they forget with all the hype. Likewise when we're on the stream and trying to run brackets and so on, sometimes we slip up and forget to update the scores
  • undamnedundamned Wake up! Time to die! Joined: Posts: 1,679
    Wouldn't you have to re-boot the game between matches to reset the count, though?
    -ud
  • jedpossumjedpossum Ok, Darling Joined: Posts: 4,227
    edited October 2014
    Technically, you could hijack the old character code and add a menu but that you would still need get the score code.

    Edit:
    I mean the code for the inputs to select the old version.

    I occasionally stream so you can see how boring poking around in the memory is. www.hitbox.tv/jedpossum

    [8/6/2014 8:19:53 PM] Pasky: jedpossum, hacker of the obscure fighting games

Sign In or Register to comment.