Kodewerx

Our culture has advanced beyond all that you could possibly comprehend with one hundred percent of your brain.
It is currently Thu Mar 28, 2024 4:07 pm

All times are UTC - 8 hours [ DST ]


Forum rules





Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Sun Mar 09, 2008 5:11 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sat Oct 21, 2006 3:26 pm
Posts: 366
Location: USA
Title: Ancient Code Sage
Just stop in to thank Aftermath for updating and correcting this rather annoying code...

_________________
Ancient Code Sage


Top
 Profile  
Reply with quote  
PostPosted: Mon Mar 17, 2008 6:19 am 
Offline
Kommunist
Kommunist

Joined: Wed Aug 08, 2007 7:32 pm
Posts: 18
Location: Oregon
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.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Mar 17, 2008 11:30 am 
Offline
Komrade
Komrade

Joined: Tue Mar 27, 2007 10:18 am
Posts: 1328
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

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Mon Mar 17, 2008 5:41 pm 
Offline
Kommunist
Kommunist

Joined: Wed Aug 08, 2007 7:32 pm
Posts: 18
Location: Oregon
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.


Top
 Profile  
Reply with quote  
PostPosted: Fri May 23, 2008 7:08 pm 
Offline
Kommunist
Kommunist

Joined: Wed Nov 28, 2007 9:32 pm
Posts: 3
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.


Top
 Profile  
Reply with quote  
PostPosted: Tue Nov 18, 2008 2:41 pm 
Offline
Kommunist
Kommunist

Joined: Sun Dec 23, 2007 4:17 pm
Posts: 1
120F7376 0000270F

Seems to be working for me.


Top
 Profile  
Reply with quote  
PostPosted: Thu May 07, 2009 9:35 pm 
Offline
Kommunist
Kommunist

Joined: Thu May 07, 2009 9:31 pm
Posts: 3
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) :)


Top
 Profile  
Reply with quote  
PostPosted: Thu Jul 23, 2009 9:18 pm 
Offline
Kommunist
Kommunist

Joined: Thu Jul 23, 2009 9:14 pm
Posts: 1
Title: dafater
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


Top
 Profile  
Reply with quote  
PostPosted: Fri Jul 24, 2009 12:12 am 
Offline
Kommunist
Kommunist

Joined: Thu May 07, 2009 9:31 pm
Posts: 3
so, is there an accessory that makes item always drop ??? i didnt think so though ....

pleaseeee, code for always drop item and soulssss :)


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 19, 2009 7:25 pm 
Offline
Kommunist
Kommunist
User avatar

Joined: Sat Oct 21, 2006 3:26 pm
Posts: 366
Location: USA
Title: Ancient Code Sage
I will say again Excellent work!

_________________
Ancient Code Sage


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Aug 20, 2009 12:45 pm 
Offline
Komrade
Komrade

Joined: Tue Mar 27, 2007 10:18 am
Posts: 1328
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.

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Fri Aug 21, 2009 1:18 am 
Offline
Kommunist
Kommunist

Joined: Thu May 07, 2009 9:31 pm
Posts: 3
:shock: :shock: :shock: :shock:


Top
 Profile  
Reply with quote  
PostPosted: Wed Oct 28, 2009 10:29 pm 
Offline
Kommunist
Kommunist

Joined: Wed Aug 08, 2007 7:32 pm
Posts: 18
Location: Oregon
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.


Top
 Profile  
Reply with quote  
PostPosted: Thu Nov 12, 2009 10:27 pm 
Offline
Kommunist
Kommunist

Joined: Wed Aug 08, 2007 7:32 pm
Posts: 18
Location: Oregon
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.


Top
 Profile  
Reply with quote  
PostPosted: Fri Apr 23, 2010 7:09 pm 
Offline
Kommunist
Kommunist

Joined: Sat May 09, 2009 8:41 am
Posts: 84
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


Last edited by Helder on Tue Apr 27, 2010 1:54 am, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Tue Apr 27, 2010 1:53 am 
Offline
Kommunist
Kommunist

Joined: Sat May 09, 2009 8:41 am
Posts: 84
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


Top
 Profile  
Reply with quote  
PostPosted: Tue Feb 26, 2013 7:53 pm 
Offline
Komrade
Komrade

Joined: Tue Mar 27, 2007 10:18 am
Posts: 1328
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

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Fri Mar 01, 2013 1:20 am 
Offline
Komrade
Komrade

Joined: Tue Mar 27, 2007 10:18 am
Posts: 1328
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

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Fri Nov 07, 2014 11:28 am 
Offline
Kommunist
Kommunist

Joined: Fri Nov 07, 2014 11:16 am
Posts: 2
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


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: Google [Bot], Yandex [RuBot] and 194 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group