Kodewerx https://www.kodewerx.org/forum/ |
|
[NDS] Castlevania: Dawn of Sorrow [U] [AR] https://www.kodewerx.org/forum/viewtopic.php?f=19&t=1549 |
Page 2 of 2 |
Author: | macrox [ Sun Mar 09, 2008 5:11 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Just stop in to thank Aftermath for updating and correcting this rather annoying code... |
Author: | Aftermath [ Mon Mar 17, 2008 6:19 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Ok, here's the other part, 1-frame attacks for almost every weapon (the RPG will come soon, haven't gotten around to doing much lately, and the Terror Bear is hardly a weapon >_>). This is a really long code, and ASM, so it won't work on emulators, I'll post the longer, emu-friendly version soon. Super fast attacks: 023FE074 012FFF11 E0000000 00000168 E59F0150 E5900000 E3500000 0A00004D E59F1134 E59F3140 E5D33000 E3530044 CA000048 E1510003 0A000036 E3A08000 E2801004 E5911000 E3A02001 E5C02000 E1C120B2 E353000B BA000015 E353000D BA000016 E353000D 0A000011 E353000E 0A000015 E353001B BA000010 E353001B 0A000014 E353001C 0A000009 E3530026 BA000015 E353002F BA000008 E3530038 BA000011 E3530040 BA000001 E1C120B0 EA000017 E3A02002 E1C120B0 EA000014 E3A02004 E1C120B0 EA000011 E3A02005 E1C120B0 EA00000E E3A01078 E5C01004 E3A02005 E5C02000 EA00001A E2811028 E5801004 E3A02004 E5C02000 E3A02001 E5C12002 E5C1200A E5C12012 E3A08004 E5CF804C E1CF34B0 E59F0050 E5D00000 E59F1038 E1500001 0A00000A E58F002C E59F103C E3A02008 E0201092 E3A02001 E5C02000 E5900004 E59F8014 E3580004 03A02004 E5C02002 E12FFF1E 00000000 00000000 00000000 020D1028 020F7420 020CA9CC 0234FADO 023FE074 E3520003 A couple things to note, this is just for regular weapons, you should use it in conjunction with the rapid-fire soul and gun codes I posted earlier if you want the full effect. Also, I haven't yet deciphered the game's ASM for how weapons work, so even though axes may only take 3 frames now, you still have to wait the 60 or so until it can hit the same enemy again. Next time I do stuff, I'm going to try and learn how the game figures that and maybe learn how to change it. |
Author: | Hextator [ Mon Mar 17, 2008 11:30 am ] |
Post subject: | |
Just make a code that forces all enemy hit stun to be disabled, and you should be able to damage enemies as rapidly as you can attack. The code looks like it would work fine on an emulator. Why wouldn't it? Or are you talking about how it wouldn't work in an emulated cheat code handler? I usually just upload ASM hacks into the emulator manually with an external program. I have to in order to debug lots of my ASM codes, because I very seldom get things right the first time. v_V |
Author: | Aftermath [ Mon Mar 17, 2008 5:41 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Hmm, I'll look into doing that for enemies, thanks for the suggestion. I'll probably still try manipulating the game's routines, but your MPH aimbot I saw this morning reaffirmed how little I know >_> Yeah, I have no idea how to put the ASM in the emulator, so I've just debugged with my real DS and a copy of the game. |
Author: | Cake [ Fri May 23, 2008 7:08 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Is there a working max luck code? None of the luck codes ive tried on this forum and from searching google seem to work. They don't seem to do anything. |
Author: | gilchrist [ Tue Nov 18, 2008 2:41 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
120F7376 0000270F Seems to be working for me. |
Author: | ign1z [ Thu May 07, 2009 9:35 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
helo, i think that luck code has no effect on the game, not increasing the drop rate or others ... is there any code for always drop rate ? or somethings like that ? btw i like this game better than ecclesia, because Ecclesia lags on my wooden PC but this one runs well (with no$GBA) |
Author: | dafater [ Thu Jul 23, 2009 9:18 pm ] |
Post subject: | I hope sum1 will reply to this |
ok, so far i had found 2 codes that are for all accesseries one of which is ur code, but none of them give me all accesseries, plz reply |
Author: | ign1z [ Fri Jul 24, 2009 12:12 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
so, is there an accessory that makes item always drop ??? i didnt think so though .... pleaseeee, code for always drop item and soulssss |
Author: | macrox [ Wed Aug 19, 2009 7:25 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
I will say again Excellent work! |
Author: | Hextator [ Thu Aug 20, 2009 12:45 pm ] |
Post subject: | |
ign1z wrote: so, is there an accessory that makes item always drop ??? i didnt think so though .... pleaseeee, code for always drop item and soulssss I have made this for Order of Ecclesia. Whoever is interested in making this code for Dawn of Sorrow might have an easier time after looking at how I did it for OoE (I used a loop code to set the % chance for all drops to the maximum): Code: All drops have minimum rarity: 920B63A2 00000205 D3000000 020B6364 C0000000 00000078 20000016 000000FF 1000001A 0000FFFF DC000000 00000024 D2000000 00000000 0x021011EC - Flag word; while bottom bit is true, the RNG routine is called many times each frame 0x021389C0 - Word (static) of random number; gets hashed into a short Chance to acquire built from a scalar of luck (?); also a short Has lock prevention using static constant integers 0x02033298 - Seed_Routine First to write to RN Called twice at boot Called fifty times during file load Called incessantly in Wygol Village (XD nice trick, Konami!) Called twenty-five times when loading Training Hall Called sporadically in empty rooms Called incessantly in rooms with treasure chests Called a whole bunch when you get hit by scythe traps (traps and/or enemies in general?) .org Seed_Routine ldr r2, =#0x021389C0 @Load pointer to RN ldr r0, =#0x3243F6AD @A seeding constant ldr r3, [r2] @Load base RN; initialized to garbage (usually 0) ldr r1, =#0x1B0CB175 @Another seeding constant mov r3, r3, asr #0x8 @Hashing opcode mla r0, r3, r0, r1 @r0 = (Old RN >> 8) * SEED_CONST_1 + SEED_CONST_2 str r0, [r2] @Update RN bx lr And the struct that the monster table is composed of: Code: 0x020B6364 - Enemy data table; entries are 0x24 in size +0x00 - Some pointer 0x022114AC for Bat 0x0224E468 for Zombie Points to an ARM routine >.> Replacing Zombie's with Bat's has no apparent effect No more Zombies appear and the ones that are there leave and never come back +0x04 - Some other pointer 0x022112A4 for Bat 0x0224DB60 for Zombie Also points to an ARM routine Replacing Zombie's with Bat's has no apparent effect Replacing both doesn't either +0x08 - Halfword of item ID for drop 1 Break on read of zombie's rotten meat drop: [0x020B6390]? +0x0A - Halfword of item ID for drop 2 +0x0C - Byte of unknown +0x0D - Byte of AP to give Unsigned +0x0E - Halfword of health Unsigned +0x10 - Halfword of experience to give Unsigned +0x12 - ??? +0x14 - Halfword of glyph ID for drop 3 +0x16 - Byte of drop rate for drop 3 (glyph drop) Unsigned Max value (0xFF) is NOT a guaranteed drop (probably reverts to 55%) Drop rates are exact base percentages +0x17 - ??? +0x18 - ??? +0x1A - Byte of drop rate for drop 1 Same format as glyph drop rate (drop 3) +0x1B - Byte of drop rate for drop 2 Same format as previous Set to 2 for Zombies even though it's unused? +0x1C - Word of bitflags of weaknesses (some are hidden, high halfword unused) Takes precedence over strengths +0x20 - Word of bitflags of strengths (same format as previous) And the code I made for ALL drops, not just monster drops, which overrides the random number generator: Code: .org 0x0205C800 bge 0x0205C854 @---------------------------------------@Branch over drop code if RN is >= chance to get Always get drops (based on comparison of RNG return and chance): 0205C800 00000000 Only works for Rotten Meat so far (O_o) Always get drops (based on return value of RNG): 02033304 E3A00000 02033318 E3A00000 Gives 1G for every candle, guaranteed >.> Makes second and third drops always appear (first drop instead of second if no second) Basically just set a break on read of your luck and watch it be multiplied with a hashed number. That hashed number will be the result of the RNG. Tracing writes to it will help you find the RNG routine. Monster data is easily found by searching for patterns of known values in the format of the table I posted. Good "luck". Just to reiterate, the above is for Order of Ecclesia. It is only a set of examples. |
Author: | ign1z [ Fri Aug 21, 2009 1:18 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Author: | Aftermath [ Wed Oct 28, 2009 10:29 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
I'll try to work on that Zeld, but most everything you posted is way over my head :/ Here's a few codes that I needed to make today, so thought I'd post them, they probably won't be of much use to most people though. When copying a game, the new file gets flagged with the "COPY" tag and you can't copy it anymore, here's a code to get rid of that for all the files. Code: 1210AA84 00000000 2210AA86 00000000 Some people might want to do a Hard Mode run, but without the stuff from New Game+, so here's a code that sets CLEAR on all files, even new games. Code: 1210AA2A 00000101 2210AA2C 00000001 Note: This will try to carry over your button config settings from the previous save, so if you're starting from a new game, they'll all be blank. If you use the default settings, you can add this code to the end of it and your button config will be fine: 020F7228 00010800 020F722C 04000002 020F7230 02000100 If you want the authentic experience, add this to get the auto-equip and extra dialogs that a regular New Game gives you: 920F7254 F0FF0F00 220F7255 00000000 D2000000 00000000 If you want to reset your game time, but don't want to waste time selecting the file and then resaving with the default time change code (020f703C XXXXXXXX). Code: 0210AA58 00000000 File 1 0210AA5C 00000000 File 2 0210AA60 00000000 File 3 I put them at 0 for default, all you need to do is start the game and it'll change them. If you want to put in a custom time, figure out your time in seconds, multiply it by 60, then convert it to hex (with the windows calculator). So for 50 hours, it'd be 50 hours * 60 minutes * 60 seconds = 180000 -> hex = 0002BF20. If you want to change your file's name, I found a rough way of doing it. Code: File 1 Rename: 2210AA25 00000000 File 2 Rename: 2210AA26 00000000 File 3 Rename: 2210AA27 00000000 You should probably only use one at a time, unless you want to rename all of the saves. What this does is make the game think there's nothing saved there, so you're prompted to write your name. Upon doing so you can just shut off the system, as it'll have saved the new name, but won't have overwritten any of your other data. The game starts you back at the tutorial and strips you of all your stuff, so it should be obvious not to save unless you want to lose all your things. As far as luck goes, I've tested a ton of different values and it seems that it mainly comes into play with items, to varying and pretty worthless extents. However, setting it to 0x00FF will generally guarantee the 2nd item drop, but has no effect on soul collection. So yeah, only hope is probably converting Zeld's method to DoS. I don't really know anything about programming, and lost my DoS hacking notes, so I'm uncertain if I'll be able to do it. |
Author: | Aftermath [ Thu Nov 12, 2009 10:27 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
So, I looked at trying to implement Zeld's ideas into DoS, but save for figuring out the RNG stuff, there's not a way to carry over his work. The monster info structure is huge and doesn't have anything useful or pertaining to drops as far as I can tell. 80% of the stuff in it is either empty space or pertains to sprite color/layer. The other 20% is damage and animation information. Anyway, short code that will help for Julius mode if you want to change the control scheme. Code: From 0x020F7228 to 0x020F7232 the control scheme is stored in halfwords, in the order that it's displayed in Soma's mode. Here's what the default control scheme looks like: 120F7228 00000800 //Attack 120F722A 00000001 //Special Attack 120F722C 00000002 //Jump 120F722E 00000400 //Change Equipment 120F7230 00000100 //Guardian 120F7232 00000200 //Ability And what button the numbers correspond to: 0001 A 0002 B 0400 X 0800 Y 0100 R 0200 L So just mix and match these to get the controls you want. And here's a fun code that I think is pretty cool >_> Code: Alucard wings while running 0234D230 000400A8 0234D238 000600A7 0234D240 000600A8 0234D248 000600A9 0234D250 000800AA 2234DDC8 00000005 I left the initial dash animations unchanged, but I think that it looks fine with them. |
Author: | Helder [ Fri Apr 23, 2010 7:09 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
old topic and game but made some new codes that others might find useful: Code: !Misc Codes
::MP Refills Fast 52200B64 E0830000 02200B64 E0830400 D2000000 00000000 ::Bow Charges Super Fast 521DF0B0 E2800001 021DF0B0 E2800064 D2000000 00000000 ::Faster Guardian Transformations 521E06F4 E2400001 021E06F4 E2400010 D2000000 00000000 !EXP Multipliers ::EXP x2 521C3DFC E0820000 021C3DFC E0820080 D2000000 00000000 ::EXP x4 521C3DFC E0820000 021C3DFC E0820100 D2000000 00000000 ::EXP x8 521C3DFC E0820000 021C3DFC E0820180 D2000000 00000000 ::EXP x16 521C3DFC E0820000 021C3DFC E0820200 D2000000 00000000 ::EXP x32 521C3DFC E0820000 021C3DFC E0820280 D2000000 00000000 ::EXP x64 521C3DFC E0820000 021C3DFC E0820300 D2000000 00000000 ::EXP x128 521C3DFC E0820000 021C3DFC E0820380 D2000000 00000000 ::EXP x256 521C3DFC E0820000 021C3DFC E0820400 D2000000 00000000 ::EXP x512 521C3DFC E0820000 021C3DFC E0820480 D2000000 00000000 |
Author: | Helder [ Tue Apr 27, 2010 1:53 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Code: !Julius Mode Codes
::Infinite Double Jumps :::Works With Soma Too. 521FEC1C E2433001 021FEC1C E2433000 021FEC90 E2422000 D2000000 00000000 ::Yoko's Heal Recovers 2x 521FC320 E0803003 021FC320 E0803083 021FC324 E2830002 D2000000 00000000 ::Yoko's Heal Recovers 4x 521FC320 E0803003 021FC320 E0803103 021FC324 E2830004 D2000000 00000000 ::Yoko's Heal Recovers 8x 521FC320 E0803003 021FC320 E0803183 021FC324 E2830008 D2000000 00000000 ::Yoko's Heal Recovers 16x 521FC320 E0803003 021FC320 E0803203 021FC324 E2830010 D2000000 00000000 ::Yoko's Heal Recovers 32x 521FC320 E0803003 021FC320 E0803283 021FC324 E2830020 D2000000 00000000 ::Move 2x Faster :::Works on All Characters not just Soma. 521F6854 E0800006 021F6854 E0800086 D2000000 00000000 ::Move 4x Faster :::Works on All Characters not just Soma. 521F6854 E0800006 021F6854 E0800106 D2000000 00000000 |
Author: | Hextator [ Tue Feb 26, 2013 7:53 pm ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
A few years late to the party, but I've recently discovered just how BS drawing magic seals is in an emulator. Speaking of BS, BS Free helped me find the old codes for this game to quickly make this one: Code: Easy Seal Drawing 0201C5A8 E3A00000 .org 0x0201C5A8 @mov r0, r0, lsl #0x6 mov r0, #0x0 @New instruction Notes about how I obtained this information: 0x020D36A8 - First boss's HP 0x020D345D - Set this to 0x06 to make the seal for the boss appear (this is done by a function that confirms the boss's HP has been reduced to 0) 0x020D102C - Set this to 0x00010000 to make attacks be stuck in their first frame (unrelated but fun tidbit found by accident during this) 0x020F29BC - Freeze this when it changes to 1025 when the magic seal appears to make it unable to be failed or completed Setting it to 2047 instead of freezing it makes the seal auto-complete, but the boss won't be defeated this way The boss instead becomes stuck flashing red and is unable to be fought anymore This can be escaped by changing [0x020D345D] from 0x07 to 0x06 0x020D3450 - Some kind of callback register, held the value below which was a function that processed the boss's behaviour 0x022FFDE8 - One of the possible locations of a function that is called when the seal for the first boss is drawn correctly The function reached a part of its switch statement that led to 0x02300C58, a call to a function that eventually raised the player's EXP This switch statement's case value appears to be [0x020D345D] (see above), which appears to be the state machine for the boss (Puppet Master has just over half as many states) During case 7, if r0 is set to be greater than 0 after each call that has a cmp r0 instruction after, the boss will be (partially) killed even if the seal is failed If this is done, the boss will float in the air in pieces and Yoko's dialogue will be skipped as well as the healing orb, but the soul and exp will still be obtained - however, entering the room again after this freezes the game In the opposite case of changing the values to their usual failure values of -3 after succeeding at the seal, the boss fight will continue except the seal will converge into the healing orb The boss can be fought normally in this state and even be killed again The values returned by those functions are both [[0x0208AC20] + 0x3662B] (because they're both calls to the same argumentless function for some reason) This appears to be a flag indicating the success level of the seal drawing with numbers that seem to range from -3 through 1 0x0201C660 appears to be a validation function for drawing the seal Forcing it to return 1 doesn't seem to make a difference 0x0201C550 is a validation function that seems to return the distance of where the player is drawing from the point they're supposed to Forcing this function's return value to be read as 0 makes the seal much easier to draw This function seems to be called constantly however so it may have adverse effects (Confirmed; leaving this change active causes some enemies to behave oddly; the enemies spawned by the final boss will target Soma with their lunge from any distance and become extremely aggressive while the flying spear enemies will seem to hover in one place instead of flitting about as usual) Further testing with 0x0201C550 set to return 0 seems to consistently make seals auto-complete, but not instantly Rather, for the first seal, the first correct point had to be started at, and for seal 3 (Puppet Master uses this seal) the first correct line and part of the second had to be drawn Seal 4 required more than the first correct line to be drawn as well, but auto-completed before the third line could be started Seal 5 required about half of the circle part of the seal to be drawn The change is for the most part acceptable to leave active |
Author: | Hextator [ Fri Mar 01, 2013 1:20 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
0x0208AC20 appears to be a pointer containing a value that is usually (always?) 0x020C07E0 [0x0208AC20] + 4 appears to be the current random seed The value at 0x0208AC20 is used for accessing the variable for whether a seal was drawn correctly during a boss fight 0x02012D78 appears to be the random number generator function; the above information is from analyzing it 0x02012D38 is a function that determines whether a drop will appear based on the player's luck It was located by setting a break on read of the player's luck at 0x020F7386 This change causes monsters to always drop their souls: Code: .org 0x021C3AC0 @bgt 0x021C3AE4 nop @New instruction Code: Monsters Always Drop Souls 021C3AC0 E1A00000 Ideally one could set a breakpoint at 0x021C3AE4 and backtrace the origin of the value that the result of the RNG is being compared to as it is likely the drop rate of the current monster's soul. This could be used to find the monster data table like the one I posted for Ecclesia. If the code isn't statically allocated it could either be found the same way I originally found it or perhaps it is loaded to that location consistently in the Garden of Madness (where I was when I discovered this information). This change sets the drop success function to always return 0, which causes candles to always drop 1$, monsters to always drop an item if they can (starting with the second and only dropping 1 max) and also makes them always drop their souls This code makes Paranoia freeze. Code: .org 0x02012D4C @mov r0, r1 @Old instruction mov r0, #0x00 @Replacement Code: Perfect Drops
02012D4C E3A00000 |
Author: | mcabel [ Fri Nov 07, 2014 11:28 am ] |
Post subject: | Re: [NDS] Castlevania: Dawn of Sorrow [U] [AR] |
Hey Hextato is there a trick or requisite for perfect drops to work, like a master code or new game only or something? It doesnt give me any increase in item or soul drop. Also, a solution for better/perfect drop could be increasing luck to 4096, since I read that is the number that it's substracted in the calculations.( a higer number may give negative value in the formula and might not be so good), but surely would explain why 999 luck doesnt increase drops much since even at it's best, luck is too small compared with 4096... please let me know about this and sorry for bringing up an old d thread Edit: this is supoused to be the formula, so LUCK stat seems to have very little impact on drop chance {100[(Drop Rate in Decimal Form)*12]} / [4096 -(LCK/2)] Edit2... Sorry I though this was for Aria of Sorrow :C |
Page 2 of 2 | All times are UTC - 8 hours [ DST ] |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |