Question on NES VC Injection

Discussion in 'Wii - Hacking' started by AWal, Mar 4, 2010.

Mar 4, 2010

Question on NES VC Injection by AWal at 11:31 PM (1,090 Views / 0 Likes) 9 replies

  1. AWal
    OP

    Newcomer AWal Newbie

    Joined:
    Mar 4, 2010
    Messages:
    7
    Location:
    Northern New York
    Country:
    United States
    I have a small question:

    Has anyone sucessfully VC injected anything into Castlevania III.

    I've been in a strong understanding of how VC injection works, pretty much since it was conceived, and I've noted that sucess for most games games on the NES side can be given thanks to Zelda II and Kirbys Adventure, IIRC the largest MMC1 and MMC3 games, respectively.

    I, like any other tweaker on the planet wanted to take it a step higher. From what compatibility lists existed at the time, a majority of them showed the MMC5 endowed games in their lists (as incompatible, of course).

    On a general note of thumb, if Castlevania III was like any other VC title, i'd hold the game code in a iNES format file in 1.app, and be set up to run the code as MMC5. From what I was able to crounge up, it does hold the game code in the suspected file, but there's a catch. 1.app in CV3 does not have a header. I found the "NES^Z" of a typical iNES formatted file, and then what appeared to be lz packed binary; I tried using gbalzss, which proved to only be partially correct, screwing up somtime through the rom code, with a lot of incorrect bytes.

    As expected, u8tool crashes when attempting to unpack this app file, even headerless.

    So, from what I can tell, unless the compression method of this app file is known, I am in a rut for getting anything else working in VC for the MMC5 games.

    P.S.: The target here is to inject Laser Invasion. Not that I have anything against FCEU...I am just looking for it to work in Ninty's own engine...given that it supports any of the MMC5 extensions, required by all other games than CV3.

    P.P.S.: (auto)Injectuwad attempts, but breaks the file, resulting in a channel that appears to be correct, but only returns to the wii menu when invoked.
     
  2. damysteryman

    Member damysteryman I am too busy IRL these days...

    Joined:
    Oct 4, 2007
    Messages:
    1,182
    Country:
    Antarctica
    Most newer vc games have their main executables compressed, as you've already seen.

    Since it's not "normal" lz77 compressed, maybe try wwcxtool.
     
  3. AWal
    OP

    Newcomer AWal Newbie

    Joined:
    Mar 4, 2010
    Messages:
    7
    Location:
    Northern New York
    Country:
    United States
    wwcxtool /u 00000001.app wee.bin

    Split file at 0xD8BF0, and it ran verbatim in FCEUXD SP!! That emu just ignores the extra stuff after the character data anyways, which is unoficially the title according to iNES extensions, but Jnes, one rom tool, and like one other emu support that, so I'ts not widely adopted.

    I, call that progress [​IMG]

    Looking at Laser invasion from a PRG/CHR point of view, it has 1MBit of Program and 1MBit of Character. Castlevania has 2MBit of Program and 1MBit of Character. If I double the program and repack the nes file accordingly (i doubt header makes a difference, but it's there...), I should get the same size nes file, without tampering the existing layout.

    Repack using wwcxtool, then wadpacker and I should be good...Mabye if I'm feeling frisky I'll redo the emaual.arc too like my lj65 inject...then again, I could just get lazy and import the no guide arc...lol

    Wish me luck [​IMG]
     
  4. damysteryman

    Member damysteryman I am too busy IRL these days...

    Joined:
    Oct 4, 2007
    Messages:
    1,182
    Country:
    Antarctica
    Good to know it worked.

    And good luck on making your injection.
     
  5. BBking83

    Member BBking83 GBAtemp Advanced Fan

    Joined:
    Oct 23, 2008
    Messages:
    676
    Location:
    Australia
    Country:
    Australia
    I know having channels is cool and stuff, but FCE Ultra GX is an awesome app. You've got the ROM, right? And there's no risk of installing a (messed with) WAD.

    But hey, good luck. [​IMG]
     
  6. AWal
    OP

    Newcomer AWal Newbie

    Joined:
    Mar 4, 2010
    Messages:
    7
    Location:
    Northern New York
    Country:
    United States
    Okay. I packed it all toghether, and sh*t-for-sure, it worked.

    It seems to work amazingly well too, the only issue I see is sprites not cutting off when they're supposed to at scanlines, but the EXRAM seems to be implements and the EXVRAM (which is pretty much only demonstrated with the chief's face in this game) seems to be working too...If that's the only nag working fine in FCEU then I'll prolly stick with the VC version [​IMG]

    Thanks for the suggestion on the compressor, guys.
     
  7. damysteryman

    Member damysteryman I am too busy IRL these days...

    Joined:
    Oct 4, 2007
    Messages:
    1,182
    Country:
    Antarctica
  8. giantpune

    Member giantpune GBAtemp Addict

    Joined:
    Apr 10, 2009
    Messages:
    2,860
    Country:
    United States
    i guess im entering this conversation a bit late, but the lz77 compression has been figured out pretty well. check out the wii.cs tools from leathl. it has a nifty u8 packer/unpacker that supports lz77. its also open source (c#) so you can check out how it works. in usbloader GX source, there is a u8 unpacking function which handles lz77 written in c if you prefer that.
     
  9. AWal
    OP

    Newcomer AWal Newbie

    Joined:
    Mar 4, 2010
    Messages:
    7
    Location:
    Northern New York
    Country:
    United States
    Wii.cs tools are pretty spiffy. Thanks.

    I try to avoid code compiling at all costs, but I looove CLIs. I had a lot of MS-DOS experience growing up and that is pretty much all to blame.
     
  10. giantpune

    Member giantpune GBAtemp Addict

    Joined:
    Apr 10, 2009
    Messages:
    2,860
    Country:
    United States
    wii.cs tools have a gui and cli also. just start the exe without any args and you will get a window to click around in. or use the exe in a prompt window with teh args and it will run like a normal cli app.
     

Share This Page