+  RHDN Forum Archive
|-+  Romhacking
| |-+  General Romhacking
| | |-+  Luck Manipulations
Pages: [1]
Author Topic: Luck Manipulations  (Read 392 times)
Kojiro
Guest
« on: April 20, 2007, 09:19:32 pm »

Okay well, In case you do not know. with toll-assisted programming you can emulate a game on frame advance. Thinks that are usually determined as random are never random. There are ways to affect the outcomes ( Learn More: http://tasvideos.org/LuckManipulation.html )

I'm not sure of the entire manipulation in Dragon Warrior IV (NES), but I have an idea of how it works. Here's the basics:

We know that there is 1 player, so player 1 input determines the on screen commands, but all 4 controllers can throw input in. We know that "A" accepts a selection, and that it takes 1 frame for every user action (keypress). So, lets say I select "Fight" on frame 12345, 4 frames advance to print the next menu, on frame 12350 I select Attack, another 4 frames on next menu to select a target and frame 12355 I just press A on the first target. On frame 12356 I can press whatever set of inputted instructions to determine my results. An input function listing would look like so.

Frame#|Player 1|Player2|Player3|Player4|
12345:       A
12346:       
12347:       
12348:       
12349:       
12350:       A
12351:       
12352:       
12353:       
12354:       
12355:       A
12356:       ?            ?            ?           ?

Where these question marks are, is the frame where you'd throw in your luck manipulation input.

Anyway, the point in this is, I want to know exactly how to figure out what input triggers what luck manipulation. This will allow me to easily test a battle dialog script in DQIVr when the time comes these babies get inserted. It will also allow me to somehow arrange my walking patterns to never encounter random battle, but that I'm not so worried about, I'm sure I can find a cheat for that. It will save me a lot of time if I can find a way to force a script to come into play for one call and one call only, and the next call pull up something else instead of using memory hacks and need to use either save states or reboot the game to force another task, which is more "in the way" and time consuming anyway.   

I mean, not too mention it's pretty interesting concept. The only bad part is this can not be done real-time, you have to use frame advancing. Many emulators aren't equipped with frame advance, when truly it's not hard to program in. Just have a button set to pause/unpause emulation, and another button to pause and then immediately unpause play 1 frame and then pause again. If your holding an input keypress while you press your advance key it'll throw that keypress directly into that frame that advanced by. like if you pause on frame 5, hold in "A" and press advance to frame 6 and pause on frame 6, frame 5 now has registered "A" because to the game you never reached frame 6, but you played frame 5 with that keypress. Easy to program if you have the source code.

any thoughts?
javiskefka
Guest
« Reply #1 on: April 21, 2007, 01:17:47 am »

I suppose you could ask for tips from some of the TAS producers on that site.  Acmlm seems to have the randomization algorithms from DQ1 figured out.
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC