Post subject: The World Ends With You
Joined: 11/11/2010
Posts: 18
I wanna start a TAS of this game, but I dont really have a tactic other then always controlling neku AND shiki to get the star power, which I think would be the fastest, especially later on, and also to manipulate my pins at the end of battles, if I can. but is there any breakthroughs or anything so far for this game?
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 11/11/2010
Posts: 18
I checked, it gave me a few ideas but I have another question, which may be in the wrong section, tell me if it is. for this TAS, would using a code to unlock the Ultimate difficulty be allowed? Because if it is then I would rather do it on Ultimate then Hard...
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
Codes to unlock harder difficulties are OK. However, if harder difficulties make the movie simply longer as opposed to more strategically interesting, play on the easiest difficulty.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 5/2/2009
Posts: 656
chiefsizzlechest wrote:
I checked, it gave me a few ideas but I have another question, which may be in the wrong section, tell me if it is. for this TAS, would using a code to unlock the Ultimate difficulty be allowed? Because if it is then I would rather do it on Ultimate then Hard...
wait, what kind of code? As far as I know, you can only unlock the ultimate by buying it in new game +.
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
You can use a save file that unlocks things if you also provide a 'verification movie' which, when played from a fresh start, produces the save file you wanted, to prove it's possible.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 8/11/2010
Posts: 45
Location: Virginia
A newgame+ run of WEWY would be dramatically different from a fresh game. The game unlocks more and more features as it progresses (and there's many), which would all be saved in a newgame+. A newgame+ from Shiki, Day 1 would then have everything already unlocked, not to mention you keep your level, equipment, and attributes from before. I highly doubt you would be allowed to use AR or whatever to unlock just ultimate mode, unless there's some unknown in-game code to unlock it. My suggestion if you want to TAS this game is that:
    You have to start from a clean SRAM. Everytime you level up, you revert the LVG back to 1 You use the highest difficulty as it becomes available Make it entertaining.
http://twewy.wikia.com/wiki/ If you haven't already stumbled across it, I'm sure this page will help you out.
Joined: 5/27/2008
Posts: 57
Yeah, do a clean SRAM run first. Upload a NG+ afterwords if you want to, but start with the basic play. As for actual running tips, would it properly record date changes in the emulator? If so, Shutdown PP abuse would allow you to max out early good pins(like the ice pillar one). Also, I forget if lowering your level changes your stats, or just your HP. If it drops stats, then use luck manipulation for drops, otherwise keep it at Level 1 for easier luck manipulation and 'wow factor'. EDIT: Someone on Gamefaqs made a speedrun guide, but didn't have the equipment to record(silly DS and it's ways of stuff). Have a read here: http://www.gamefaqs.com/ds/935689-the-world-ends-with-you/faqs/54810
Emulator Coder, Skilled player (1310)
Joined: 12/21/2004
Posts: 2687
FreezerBurns wrote:
would it properly record date changes in the emulator?
No, I'm sure that won't work (and that would be slightly cheating anyway).
FreezerBurns wrote:
Also, I forget if lowering your level changes your stats, or just your HP. If it drops stats, then use luck manipulation for drops, otherwise keep it at Level 1 for easier luck manipulation and 'wow factor'.
I think having a lower level does nothing besides decrease your HP and increase your chance to get drops. But since keeping it at level 1 would mean opening the menu every time you level up, and the level probably doesn't make much difference for a TAS (kind of like starting with fewer lives in a run that would have avoided death anyway), maybe it would be better to only reset it to 1 whenever you have to open the menu for other reasons? Then again, there won't be that many levels gained that it would waste a significant amount of time opening menus, so it might be cleaner to just always set it to 1 and claim it as a goal of the run to not fight any battles above level 1.
Joined: 11/11/2010
Posts: 18
FreezerBurns wrote:
EDIT: Someone on Gamefaqs made a speedrun guide, but didn't have the equipment to record(silly DS and it's ways of stuff). Have a read here: http://www.gamefaqs.com/ds/935689-the-world-ends-with-you/faqs/54810
Ya I have that page bookmarked before, since I was looking at it for ideas =P
Joined: 11/11/2010
Posts: 18
FreezerBurns wrote:
EDIT: Someone on Gamefaqs made a speedrun guide, but didn't have the equipment to record(silly DS and it's ways of stuff). Have a read here: http://www.gamefaqs.com/ds/935689-the-world-ends-with-you/faqs/54810
Ya I have that page bookmarked before, since I was looking at it for ideas =P
Joined: 12/31/2009
Posts: 174
Are any of you working on a movie? This was the first game I tried to TAS but I stopped at the first tutorial battle (Pyrokinesis) because I was getting different results for when Pyrokinesis activates (this was forever ago but I'm going to give it another shot and won't let this discourage me). I got half of the Week 1, Day 1 done and I am impressed by the final result of the first two battles. Here is what I have so far: http://www.youtube.com/watch?v=4t-0dxZRwAY A small piece of everything I know so far is in the video's description. EDIT: It was only a single frame lost because the input was 1 frame late. When I edited a blank frame right before it out, it desynced after the next FMV... EDIT2: I lost a frame during the next cutscene so it doesn't make a difference at that point. I'm going to edit back the remainder of the original movie to see if it syncs from here... Day 1 is finally done. http://www.youtube.com/watch?v=k3plYVg94pg
Joined: 8/11/2010
Posts: 45
Location: Virginia
I would like to give you, Zanoab, my support if you're going to continue to do this. So far your WIP looks good. Have you decided on any specific goals?
Joined: 12/31/2009
Posts: 174
Thanks for the support. My current thoughts on goals: If I can get most of the mechanics (such as the RNG) worked out, I will aim for beating Another Day. I would obviously take damage to save time. I'm planning on only changing difficulty if required for pins. It is debatable on what to consider hardest difficulty because I can literally avoid getting the hardest difficulty. I also can't play on easiest difficultly the whole time without missing out on better pins. Heavy luck manipulation can only be determined after I'm done. I already do some luck manipulation by deciding if Shiki's combo tree should be either 4 or 5 long. Only other areas for luck manipulation are enemy movements, the ends of Joshua and Beat's combo tree, and pin drops. There may be other places I could have forgotten. Any% because 100% would require too many hours of grinding and luck manipulation on top of this possibly 4-6 hour long movie (I think FMVs are omitted from the gameplay timer) not to mention evolving pins that require shutdown (if there is a way). I suppose I could do a Best Ending run after this. People were criticizing the length of FFVIII but this ~4 hour movie should do better because conversations are actually readable but everything after Another Day will be completely unreadable with the newly enabled fast-forward buttons (some best conversations in the game). I will see how people like this first assuming I do finish this run. I will add in any speed for entertainment trade-offs if I find any good moments.
Status report on my progress: I have done a lot of memory mapping and just about figured out how enemies are allocated (as well as obstacles and enemy attacks that require you to touch a specific area to receive damage). You can pm me if you would like a copy of the script (don't be shy) for whatever reason. I have some locations for pin allocation (seems to cycle through an allocated area to avoid cheaters) but didn't start on mapping yet. I will have a script ready once I decide to do so. I haven't done any research on pins other than Pyrokinesis types (some factors could apply to all "drag" types) but some playing around taught me that "slash" types can be activated in 3 frames (touch point A, touch point B, release). I have yet to test if enemy invulnerability times from taking damage is a constant 24 frames or depends on the pin type that caused the damage. Optimizing movement on the maps is currently my biggest concern. In my test run, I skipped this problem completely only using the cardinal directions. I found the memory for your location but made some horrifying for anybody seeking to optimize movement. Anybody who played with the internal debugger know that each map has a scale % at the top and a scale % at the bottom. Unfortunately this scaling also applies to your speed. The bigger your sprite is (higher the scale %), the faster you move compared to the smaller your sprite (lower the scale %), the slower you move. Let's use the Scramble Crossing (first map you see) as an example. If your Y coordinate is 1,310,720 (bottom of the map when your sprite is larger), then your horizontal speed would be 12,506 per frame. If your Y coordinate is 491,520 (near the top of the map when your sprite is smaller), then your horizontal speed would be 4,675 per frame. Just use some simple math and you can get your horizontal speed at any coordinate at any time. Unfortunately the speed you calculate like this have a chance of being off by 1 or 2. I will give more details on the issue once I write and run a script to dump the speed at each point so I have a more complete sample before I give out incomplete details. Don't forget that you can use the touch screen for more precise angles which would throw any hopes of solving this problem with some simple calculus out the window. I have a quick script for displaying coordinates and (not actual but calculated) X and Y speed (once again, don't be shy to ask). The only redeeming quality of this is that acceleration is non-existent. Some help would be nice but support is good enough for me.
Joined: 8/11/2010
Posts: 45
Location: Virginia
Zanoab wrote:
Some help would be nice but support is good enough for me.
Unfortunately, I only own a mac (no TAS support), which means I'm not able to provide much technical help. However, I do own the game, and I can at least try to test things in real time. Also, I would appreciate if you kept providing encoded WIPs (probably after each day done) so I could give my thoughts on them. I approve of your goals, but yeah, I would definitely stick to an any% run first. Will you be taking advantage of resetting and changing the date of the DS to level up pins and clear stomachs? Apparently characters' stomachs (or more accurately, digestive tracts) reset at midnight, which means that you should always set the DS time whatever minutes before midnight so that you can basically feed them twice as many big food items if timed right. I don't if it would mess your WIP to go back and set the date (is the RNG affected by the date?). Based on what you told me, it sounds like the fastest route from A to B may not always be a straight line, especially the more horizontal distance there is. Do combat maps have scaling btw?
Joined: 12/31/2009
Posts: 174
I'm not aware of a way to modify the date from within the movie so probably not. I could try to take advantage of the food reset but the problem is that there would probably be about 20 or less battles from the time I'm able to buy food. I suppose the clock could affect the RNG in some way but if it does, the run is no where near far enough to estimate when to hit midnight at. I currently have no real WIPs at the moment. The video I uploaded was reduced to a test run of day 1. My real movie that will be optimized fully is currently at Scramble Crossing day 1 until I find a way to tackle this scaling mess. I don't believe combat maps have any scaling.
Joined: 12/31/2009
Posts: 174
I haven't found the RNG yet but I'm getting very close to (or at least the RNG that controls pin drops). Here is what I have so far in case I mysteriously disappear and somebody wants to give it a try. Puck
  • Travel Time Left
    • 02372860 (1-4 bytes?)
    • Base Value: 89
    • Reduced by 1 every frame
    • Turns to 1 and back to 0 after reaching 0
  • "In Play" Time Left
    • 02372878 (2-4 bytes?)
    • Base Value: 900 - (Amount of Passes * 30)
    • Reduced by 1 every frame
    • Resets on pass and counts down once received
  • Damage Multiplier
    • 02372874 (2 bytes)
    • Multiplier = Value / 100
  • "Bonus" Gauge
    • 02372870 (2-4 bytes?)
    • Base: Unknown (Relation to Sync % and other possible variables have not be studied yet)
    • Reduced based on "In Play" time left (hits 0 when "In Play" time left hits 0)
    • This value determines how much the multiplier will increase (or decrease) but I have not produced a table yet
Drop Rate Multiplier
  • Current
    • 02071D24 (2 bytes)
    • Max: 999
    • This value is moved when the menu is entered and moved back when closed
  • Final (For Battles)
    • 02391872 (2 bytes)
    • This is the final drop rate multiplier from chaining battles
    • This address is called the frame after the enemy hp reaches 0 for each difficulty until success or no drops remains to be tested
    • This will be the greatest asset in finding the RNG (or at least the one involved in pin drops if there are multiple RNGs)
Overworld
  • Neku's Position
    • X Coordinate 0207415C (4 bytes)
    • Y Coordinate 02074160 (4 bytes)
  • Movement Target
    • X Coordinate 0239DE9C (4 bytes)
    • Y Coordinate 0239DEA0 (4 bytes)
    • Neku will move towards these coordinates
    • Sets to Neku's Coordinates once close enough
    • Also used if ABXY/<>^V is used for movement
    • This is one of my favorite finds because it makes optimizing movement in the overworld a lot easier
I have a bunch of other addresses including the location of the bits that control the current difficulty. If it is allowed (but I doubt it), I could write a lua script that would modify the bits to change the difficulty to Ultimate as soon as the game begins (Gameplay Clock turns 0 for new game). I also noticed that the Gameplay Timer acts strangely during battles. It would occasionally increment twice in 1 frame and skip incrementing it on the very next frame. It doesn't look weird at all at first (possibly a built-in lag system to keep battles running smoothly) but sometimes it would instead increment 3 times and skip once which means the TWEWY will screw people using the Gameplay Timer by seconds every battle (changes the rules a bit if you are aiming for lowest Gameplay Timer value). The only information I am currently missing before being able to do a fully optimized Day 1 is the RNG (for manipulating enemy movement/actions). I am also still working on the pin and enemy info lua scripts but finding the RNG takes priority at the moment.
Post subject: Re: Info Dump
Joined: 5/27/2008
Posts: 57
Zanoab wrote:
I have a bunch of other addresses including the location of the bits that control the current difficulty. If it is allowed (but I doubt it), I could write a lua script that would modify the bits to change the difficulty to Ultimate as soon as the game begins (Gameplay Clock turns 0 for new game).
This part confuses me a bit. Ultimate difficulty isn't unlocked until after the game, and SRAM won't help you, as saved data is deleted when starting a new game.
Joined: 12/31/2009
Posts: 174
FreezerBurns wrote:
Zanoab wrote:
I have a bunch of other addresses including the location of the bits that control the current difficulty. If it is allowed (but I doubt it), I could write a lua script that would modify the bits to change the difficulty to Ultimate as soon as the game begins (Gameplay Clock turns 0 for new game).
This part confuses me a bit. Ultimate difficulty isn't unlocked until after the game, and SRAM won't help you, as saved data is deleted when starting a new game.
I am completely aware of that. I decided to do a quick a experiment and the game starts up with the ram already initialized for a new game. On the first non-lag frame (35), the data is initialized and the starting difficulty set. Changing 0x02071D29 from 9 to 11 will switch the difficulty from the default Normal to Ultimate. The first 2 bits are used for the current difficulty and the next 2 bits (already set and remain unchanged) are used for the current partner auto speed (on Auto: Mid by default). The next 2 bits control which is the active deck (1-4). The 7th bit is currently unknown and the 8th bit is used to store if quick sell is active in the pin menu (off by default). This would leave 2 options. Start a movie from reset and have a lua script change the bits automatically at the beginning or have the author provide all the firmware settings (may have an affect on initialization of rng and other data) that was used to create the starting save state and have a judge verify that the RAM matches up perfectly to the save state (after the byte is modified of course). Either way, it can be verified to have nothing else modified. The only problem with this is that it can only be used for any% runs as any other goal would require grinding and the early Ultimate would decrease the amount of tasks that need to be completed on the second playthrough (in which case this cheat would become an advantage). I'm not going to do "Uses Hardest Difficulty" but if somebody does want to, I gave what you need to know to start a New Game on Ultimate so good luck getting this method approved.
Post subject: Re: Info Dump
Experienced player (828)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Zanoab wrote:
On the first non-lag frame (35), the data is initialized and the starting difficulty set. Changing 0x02071D29 from 9 to 11 will switch the difficulty from the default Normal to Ultimate. The first 2 bits are used for the current difficulty and the next 2 bits (already set and remain unchanged) are used for the current partner auto speed (on Auto: Mid by default). The next 2 bits control which is the active deck (1-4). The 7th bit is currently unknown and the 8th bit is used to store if quick sell is active in the pin menu (off by default).
Going off a hunch, might the 7th bit be whether "Quick buy" is active in stores? (probably not helpful at all, though, sorry)
Living Well Is The Best Revenge My Personal Page
Post subject: Re: Info Dump
Joined: 12/31/2009
Posts: 174
mmbossman wrote:
Zanoab wrote:
On the first non-lag frame (35), the data is initialized and the starting difficulty set. Changing 0x02071D29 from 9 to 11 will switch the difficulty from the default Normal to Ultimate. The first 2 bits are used for the current difficulty and the next 2 bits (already set and remain unchanged) are used for the current partner auto speed (on Auto: Mid by default). The next 2 bits control which is the active deck (1-4). The 7th bit is currently unknown and the 8th bit is used to store if quick sell is active in the pin menu (off by default).
Going off a hunch, might the 7th bit be whether "Quick buy" is active in stores? (probably not helpful at all, though, sorry)
You got it. The 7th bit is for the Quick Buy in stores. It doesn't seem helpful right now but somebody who would want to do this may need every bit documented for approval. Seeing how Square wouldn't waste a few bits for organization gives me more inspiration to continue dissecting TWEWY. I guess I better step things up a notch. I did a little research and starting with Ultimate would only provide a longer run with slightly different routes. The challenges are stronger enemies (more aggressive, more damage, less damage taken, etc.), larger drop tables (pins are more accessible but require a bit more RNG manipulation to get if lower in the drop table), more items/pins/equipment to collect (different strategies required to save time against the stronger enemies), and possibly more. I think only the experienced viewers or people who have played this before would recognize the necessary route changes from a normal any% run. I think switching to Hard as soon as it is unlocked (unlock via story progression) and not do Another Day may be a better way to do "Plays on Hardest Difficulty". Another Day is a problem because it is when Ultimate can be unlocked but some grinding for materials to unlock it will be required.
Joined: 8/11/2010
Posts: 45
Location: Virginia
I don't think that Another Day should be done unless it's for a newgame+ run. A newgame+ run has to be played on the Ultimate difficulty as there should be no reason why it would need anything from the lower difficulties. Also iirc, don't you need to sometimes reduce the difficulty in order to get some story-required items for the normal run? If so, it would make the "plays on the hardest difficulty" goal a bit more arbitrary.
I also noticed that the Gameplay Timer acts strangely during battles. It would occasionally increment twice in 1 frame and skip incrementing it on the very next frame. It doesn't look weird at all at first (possibly a built-in lag system to keep battles running smoothly) but sometimes it would instead increment 3 times and skip once which means the TWEWY will screw people using the Gameplay Timer by seconds every battle (changes the rules a bit if you are aiming for lowest Gameplay Timer value).
It surprises me that the timer would be that glitchy. Is it the timer trying to overcompensate for lag? Is there a secondary value for time that gets rounded off (similar to the function of subpixels) that would explain its erratic behavior? I'm just throwing those questions out there. For curiousity: What events intentionally stop the timer (does it stop when the menu's up, when a Fusion is performed, etc.)? Does this game lag a lot and where at usually?
Joined: 12/31/2009
Posts: 174
There should be no reason to need to lower the difficulty except if you eat a ton of food to permanently raise your drop rate. The worst case scenario is it takes a long time to manipulate since the game does the 1-4 drop checks in a single frame so you will need a correct sequence. There may be a secondary value for the gameplay timer but the address I have now counts frames so it would seem a little redundant. There is a timer for checking the length of each battle so I will check how well it keeps track compared to the gameplay timer. Currently the timer doesn't seem to run during lag and doesn't compensate for lag at all. This includes FMVs (input is pointless here anyways since you can't do anything to skip it so it is nice of Square to not count time spent watching FMVs), text loading such as during conversation, scanning, shop keeper conversation, etc (only about 6 frames each), loading a new screen, etc. If there is ever any non-loading lag, it is normally during battles. Most of the passive inner workings aren't affected by lag (such as timers) while the more active workings (attacks) will be delayed by lag. It seems to only lag if there is too much happening at one time (which would explain why the more active workings are affected). I really want to get an optimized Day 1 WIP out but it will be a lot of pain without the RNG.
Joined: 8/11/2010
Posts: 45
Location: Virginia
I really want to get an optimized Day 1 WIP out but it will be a lot of pain without the RNG.
I understand. You might have already thought of this, but one way that might help find the RNG is to find out what affects it. For example, if you could find a frame where a Dragon Couture would drop from a noise No. 45 on hard (which happens to be the rarest drop in the game) at a drop rate of 1, then virtually ANYTHING before that frame that would call the RNG would cause you to lose the drop. From my basic understanding on how a RNG works, it seems like you would just have to experiment with things while still killing No. 45 on the exact same frame each time to see what happens.
Joined: 12/31/2009
Posts: 174
I tried through memory searching and managed to narrow it down to just over 500 addresses (4 byte groups). I know it is in that group because I can freeze it and the drop would be exactly the same in the 8 or so save states I have (all use the same enemy). Unfortunately narrowing it down by slowly unfreezing addresses can cause some addresses to escape and will probably take forever. Currently, I was hoping to work with the disassembly but it isn't working out right now. Any ideas?