1. Sora de Eclaune

    OP Sora de Eclaune Baby squirrel, you's a sexy motherfucker.
    Member

    Joined:
    Feb 15, 2011
    Messages:
    2,807
    Country:
    United States
    Is there a hack for Black Sigil: Blade of the Exiled that slows down the in-town movement and speeds up the in-overworld movement? The character moves too fast in towns and too slow on the main overworld map (so slow that even the fairly-normal encounter rate is too high).
     
  2. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    I don't have other hacks or cheat than the one from the gbatemp cheat file. moving quicker on the map could be useful, but I think slowing down the random battles would be better (You can stop/resume them completely, so you decide when you want to battle).

    I find this game's difficulty too high (I even thought it could be an Anti-Piracy check).
    A lot of random battles, and they are really hard when you arrive in the forest.
    I didn't past the forest because of the battle's difficulty, even with the exp multiplier cheat code, I have a lot of levels of differences with the enemies but it's still hard.

    And if I remember, I even noticed few bugs :(

    I hope I'll play it again one day, it seemed like a good game nevertheless.
     
  3. Ulieq

    Ulieq GBAtemp Fan
    Member

    Joined:
    Jan 14, 2014
    Messages:
    381
    Country:
    United States
    Looking for an encounter rate decrease hack. I know Geoff Embree reduced encounters in 7th dragon, so it must be possible.
     
    SubLoverD likes this.
  4. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    It might depend on the way the encounter rate is calculated.
    if it's generating a random number after a battle and decrease after each move depending on the field (field -1, forest-3 etc.), it's possible to modify. for example multiplying the randomly generated number after a battle. (Final Fantasy 6 is working like that).

    if it's a random encounter, with no counter, it's probably more difficult to find a code.
    each step you do runs a function to determine randomly if it's a battle or not. You'll need to find, understand and alter the function's algorythm using ASM.

    There are probably another method used to make random battles, but it's the one which comes to mind.


    I've checked the cheat code database.
    It seems it's using the first method.
    After a battle, the counter is set to 0x0000 and increments, when it reaches 0xFFFF battles starts.
    What needs to be determined is how it increments (regularly, based on terrain type, timed, or randomly).

    There's also a "No random battle (ASM)" cheat name, implying it's using ASM to edit the encounter rate function. (and always return current value instead of executing the algorithm).
    It would require ASM debugger to edit that code. I didn't find any ARDS to ASM (well, Kenobi's one has the option but doesn't work).
    I don't know how to debug DS games (probably with an emulator. now that no$gba debug version is free I can check. but don't expect result, I'm not an ASM hacker).


    Is there a place with codetype documentation for DS, like the one on geckocodes for wii?
    edit: I found this : http://www.bsfree.org/hack/hacking_nds.html
     
  5. Hand

    Hand Member
    Newcomer

    Joined:
    Oct 26, 2011
    Messages:
    23
    Country:
    Brazil
    Me too.
    I wanted to play the game, but the encounter rate is so high and the battle system is slow.
    A hack could fix it and make it playable.
     
    SubLoverD and Patuli like this.
  6. Patuli

    Patuli Advanced Member
    Newcomer

    Joined:
    Jul 26, 2014
    Messages:
    64
    Country:
    Mexico
    I remember playing this game on a real cart, the game have a lots of ground breaking bug's, not just the insane high encounter rate.
    Got stuck inside a plane forever, never touched the game again.
    The codes don't help at all, you just stop the encounters or have them all the time, that for me just kill the fun,
    a hack to decrease the encounter rate to a minimum would be great.
     
  7. Ulieq

    Ulieq GBAtemp Fan
    Member

    Joined:
    Jan 14, 2014
    Messages:
    381
    Country:
    United States
    My god, just got a game stall crash at end of Underwater Passageway, wtf is this shit.
     
  8. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    Yes, the game is very very buggy.
    that's too bad :(

    I played it a little, but stopped after the forest because it was too buggy.
     
  9. Ulieq

    Ulieq GBAtemp Fan
    Member

    Joined:
    Jan 14, 2014
    Messages:
    381
    Country:
    United States
    But i'll have to continue on, because this game is badass...only issues are the bugs/random battle crap.
     
  10. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    AR Code :

    Battle encounter rate modifier [Cyan]
    Code:
    220481EC 000000xx
    
    Replace xx with the encounter rate. (higher value = slower encounter rate)
    Default is 0F
    Max is FF

    I started by looking at existing Cheatcode.dat file to see if there were already encounter codes.
    There were two for "no more encounter. Press specific buttons to battle!". It contained the address where the battle counter is stored.

    In the debugger, I found an address near this one which increased after each steps, and when reaching 0x10 it incremented the battle counter by 0x70.

    memory positions:
    battle encounter : 0x020D9CE8 (4 bytes little endian)
    step counter: 0x020D9D04


    So the game has two counters for the battles : a Step counter and a random battle counter.
    The step counter incrementing speed is affected by the character's speed: walk = +1, run = +2.
    if you are in town, the step counter increases indefinitely without modifying the battle counter, when you go to the map it's reset to 0.
    Code:
    if(stepCounter > 0x0F)
    {
    stepcounter = 0;
    Battle counter +=0x70; 
    }
    Sometime it's +0x07, I don't know why. maybe it depends on the map/location/ailment on characters.
    battle start randomly regardless of the counter value and long as it's above 0x1000. If below, battle never start.


    So we have different possible values we can edit :
    - the step counter, which depends on the walk speed : not good, when walking it's already set to minimum value (1). we can't set it less.
    - the steps counter limit triggering an increment of the random Battle counter. <-- We can slow encounter rate by increasing the walk limit.
    - the battle increment value. <-- We can slow encounter rate by decreasing the battle increment value.

    I decided to go with the Battle counter increment value 0x70.
    I added a breakpoint on the Battle encounter address, but couldn't trace where the 0x70 came from. It's stored in r0 but when adding the breakpoint r0=70 it often crash the debugger.


    I then put a breakpoint on the step counter address, and finally could trace what happened when the counter reaches 0x10. That value is hard coded in the ASM.
    I decided that I could edit the 0x10 to increment it. I looked at the memory where the ASM code was located and tried to make it 0xFFFF but it didn't work. (I don't know ASM commands to edit the data size), so I only changed it to 0xFF.

    ASM address
    020481CC : step counter increment function
    020481FC : max value for steps before incrementing the battle counter (memory address 020481E0)
    02048204 : battle counter increment function

    To create the AR code, I used this website to understand the codetype, and finally tested it in no$gba. hopefully it worked :)

    AR Code:
    220481EC 0000000F <--Current encounter rate
    220481EC 000000FF <-- maximum slower encounter rate
    It's my second ASM/debugger hack.
    Hope you'll enjoy it :)
    Thanks to Martin Korth for releasing the debugger freely.
    (suggestion: a "copy address" in right-click prompts would be useful)

    if you don't know how to add it to cheatcode dat file, I'll do it tomorrow.

    Edit:
    As promised, here is Cheatcode.dat 1.4 modv2 (11MB) (based on this version 1.4)
    + Made a copy of Blood of Bahamut JP to use with Blood of Bahamut Translation patch.
    + Added Black Sigil Encounter modifier. (x2, x3, x5, x10, x15 walk time before encounter)

    Please, tell me if it works.
    I didn't test it!

    Edit:
    I tested it, and it works fine.
    Setting it to x15 (max value) is a little exaggerated, you have almost no more battles lol
    I guess X5 or X10 is good, along with Exp X16 code to compensate the missing battles.
     
    SubLoverD, Patuli and Ulieq like this.
  11. Patuli

    Patuli Advanced Member
    Newcomer

    Joined:
    Jul 26, 2014
    Messages:
    64
    Country:
    Mexico
    Great work Cyan! your info is very helpful and detailed.
    As soon as i finish Blood of Bahamut, i will have another run at Black Sigil again.
    and just to tell you that the code work on Super card DS two.
    Thanks man.
     
  12. Clever_13

    Clever_13 Newbie
    Newcomer

    Joined:
    Dec 8, 2014
    Messages:
    1
    Country:
    May I request some Action Replay Codes for Black Sigil? I really need it. I always die on that freaking game! XD
    Like "Infinite Health" and "Max Level"
    Thank you. :lol:
     
  13. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    There's no HP modifier in the cheat code database? that game had few code for exp and level I think. you can max out your HP or level up quickly.
    or are you looking for "action replay" code specific to use with Datel's card? I can't help with that format, sorry.
     
  14. Karenice

    Karenice Newbie
    Newcomer

    Joined:
    Dec 10, 2014
    Messages:
    1
    Country:
    United States
    Hi, I have a question..I have been wanting to play this game with the lowered encounter rate so bad but I can't figure out how to get the cheat to work? I have a supercard dstwo and I put the cheatcode dat file into the dstwo plugin folder but when I press x over the file and then press the y button there is nothing there? I can't figure out what I am doing wrong..could someone maybe give me step by step instructions on how to do this right? I'd really appreciate it thanks:lol:
     
  15. Cyan

    Cyan GBATemp's lurking knight
    Former Staff

    Joined:
    Oct 27, 2002
    Messages:
    22,778
    Country:
    France
    I'm also using Supercard DSTwo.

    the filename must be named : usrcheat.dat
    and located into the folder : _dstwo
    (not in the plugin folder)

    /_dstwo/usrcheat.dat

    Pressing X should open the main game's menu, browse the code list.
    select the encounter rate and it should save the selected cheats when you exit the menu. Launch the game with the Cheatcode option enabled.

    If you don't see the cheat list, be sure it's in the correct path on your card.
     
  16. SubLoverD

    SubLoverD Advanced Member
    Newcomer

    Joined:
    Mar 18, 2017
    Messages:
    78
    Country:
    So is this the only way to alter the encounter rate and xp modifier? could someone not go into the roms code and change it outright? also is someone going to look into fixing bugs?
     
  17. FAST6191

    FAST6191 Techromancer
    Reporter

    Joined:
    Nov 21, 2005
    Messages:
    29,950
    Country:
    United Kingdom
    If you somehow don't have cheats you have two main choices.

    1) Hardpatch the cheats with DSATM. Not very elegant but usually gets it done.

    2) Several of those cheats look like ROM altering cheats, just rendered in RAM cheat form -- the DS copies its binaries to RAM (most games and homebrew using the ARM9 for everything in the game, the ARM7 then being kicked to basic management such that you can swap ARM7 binaries around from similar vintage ROMs with no ill effect) and thus you can enact changes on par with ROM codes on older devices with simple RAM cheats.
    Converting to ROM edits is not necessarily trivial but still easy enough if you think it though.
    Three main things to consider
    i) where the ARM9 lands in RAM.
    ii) whether there is any compression on the binary
    iii) if it is not ARM9 but instead an overlay you get to figure out which overlay.

    NDSTS ( http://www.no-intro.org/tools.htm ) will tell you where things land in RAM.
    Compression is more tricky, and in fact the binaries use a different compression to ones you will see with other files.
    Cue's compression tools https://www.romhacking.net/utilities/826/ should have a BLZ (backwards LZ) that works with the binaries if they are compressed.
    Once you know where the binary is found and if it is compressed you can figure out what is changed in it, and change it (you literally have the change right there).
    Technically you could slice the binary out of a RAM dump, compress it if necessary, and insert it back in.

    There are also some other tricks with compression (such as disabling it) but I will leave those for now. Oh and crystaltile2 often lies about compression in binaries.


    All that said I played this game a while back. I recommend the experience multiplier at the start at least but most other things were fine for me once you get some sword magic actually going after the intro. It was no Summon Night Swordcraft Story but amusing enough.
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - Exiled, Black, Sigil