(Link to video)

Game Information

Dragon Quest 5 Tenku no Hanayome (ドラゴンクエスト5天空の花嫁) is one of the most popular games in Japan, though it is not so famous in other countries. In this game, the life of a man is described -- his adventurous childhood, tragic adolescence, joyful marriage and travel to beat the evil with his family. Illustrations designed by Akira Toriyama, who is famous for Dragonball and Chrono Trigger, also make the story so fantastic.
This game is JPN only, but you can play the translated version on NDS, named “Dragon Quest 5 Hand of the Heavenly Bride”. Also, there is a fan translation. The storyline can be read at GameFAQs, though proper names are different between the fan-translated and NDS version. SNES: http://www.gamefaqs.com/snes/588292-dragon-quest-v/faqs/14945 NDS: http://www.gamefaqs.com/ds/942423-dragon-quest-v-hand-of-the-heavenly-bride/faqs/56092

Game Objectives

  • Genre: RPG
  • Emulator used: SNES9x-1.51-rerecording-svn147
  • Allows L+R/Up+Down input
  • Aims for fastest time
  • Takes damage and uses death to save time
  • Abuses programming errors
  • Heavily manipulates luck

Glitches and Tricks

Half Step Trick

If you press arrow keys before certain messages appear or disappear, you can move before that. This trick is infeasible at some places.

Faster Movement of the Cursor in the Menu

In the menu, the cursor moves upward faster than downward. Similarly left is faster than right. For instance, when the option is like this “->Yes No” (-> is current cursor) and if you want to choose “No”, pressing left is usually faster than pressing right.
As for another notice, in the item inventory, the number of items one owns determines the speed of the cursor movement. If one has fewer items, the cursor speed is faster, and vice versa. I optimized this trick as hard as possible in the last half in which I open the item inventory many times.

Action Order Glitch No.1

In the beginning of a battle turn, the order is decided as below.
  1. Get the modified speed (= Actual Agility * (0.75 to 1)) from the first character of hero's party to the last character of enemy side.
  2. Compare the next character's modified speed and regard higher one as the “interim fastest”.
  3. Compare the ”interim fastest” and the next character .. and it goes.
  4. When the comparison finishes, add the current”interim fastest” to the “action order list”.
  5. Return to 1 and conduct the same processing without the characters in the order list.
In this process, there is a bug at No.2, that is, if the “interim fastest” and the next character's modified speed are the same, this subroutine will be finished.
(Translated Kri's Japanese explanation)
Example: (Alliance) A:10 B:10 C: 60 (Enemy) D:10
  1. Compare A with B. They are the same, so the process finishes. “List 1=A”
  2. Remove A and compare B with C, C is the “interim fastest”. C is faster than D. so the list is..”List 1=A, 2=C”
  3. Remove A and C. B and D are the same, so the process finishes. “List 1=A, 2=C, 3=B, 4=D”

Action Order Glitch No.2

Whether or not he/she is a party member or an enemy, the dead character's actual agility is the top character of the alliance. So, if there is a dead character, the members' action order will vary.
Application: Hela's armour is cursed and makes the equipped character's agility 0. Equip the first character with this armour and put a dead man in the second, then the first and the second character's agility and speed is absolutely 0. So the first character acts first necessarily, even his/her agility and speed is 0. But I didn't use this in the run.
Here is Japanese documents written by Kri.

Skip the Event Tile

When you encounter enemies at the same time you enter the event tile, the tile event is delayed. Abusing this, I can skip certain events.

Avoid the Spike Trap at Nightmare Towers

If you press the keys diagonally, the spike traps don't appear. This trick is discovered by Tamanahito(玉な人, the previous speedrunner on Nicovideo).

Borongo Glitch

What is this glitch?
This glitch allows you to manipulate RAMs which we usually cannot have the access. Usually, the number of party members is limited by 8, but by this glitch you can see the members after No.9. The RAMs after 9th party member corresponds to some event flags, so abusing this, you can quickly set the ending flag and finish the game. The list of the memories you can manipulate is here (this list is made by Pirohiko(ピロ彦) ).
[dead link removed]
How this glitch happens
Before this glitch, you must recruit a monster and farm it at Monty the Monster Monitor. So I cannot abuse this in the childhood. To cause this glitch..
  1. Arrange the party order not to make the hero first. Then talk to Monty and open a farmed monster's status.
  2. Weirdly, the hero's status is displayed.
  3. When you close the menu, the hero disappears and the monster is copied.
  4. If you enter the town again, the resurrection event happens because the hero is not alive.
  5. But nothing changes and a glitched character appears (the last character disappears).
The glitched character is No.256 (memory number is 0xFF).
How to control the character
The glitched character 0xFF refers to the graphical RAMs, so his/her status easily changes. If you farm a monster, the number of the glitched character decreases by 1, and if you arrange your party, the number becomes -> (Current Number % 0x10).
How to set the ending flag
The ending flag is 9th (0x08) character's ID. If you insert a number more than 127 (0x7F) in this ID, the ending flag will be set. But usually character ID cannot be accessed. So you must use Patty's Bar. When you remove a person there, the data of the removed character will be replaced by the data of the next person. By the way, seeing the rocks at the Nightmare Towers makes 0x0B's character ID increase by 0x80. So sliding this data to 0x08 character's ID will take you to the ending.
Also, 0x08 character's current MP (lower byte) must be over 0x7F to display “THE END” message. So I must control the flag and 0x0B character's current MP.
Here is a script that displays various data. -> http://pastebin.com/GJ7nBEfM
That's all for this TAS. For more details, here is Japanese documents about Borongo Glitch written by Fami(ファミ).

Luck Manipulation

There are two RNGs in this game. They are used for different purposes. I analyzed them (and other things) by disassembling, using Geiger's snes9x 1.51. I feel grateful to the author of this software, Geiger.

Encounter RNG

RNG Seeds and how to generate the number
There are 4 RNG Seeds and they are stored in RAMs 0x7E0993 to 0x7E0996. Each number excluding 0x7E0996 increments by 1 every frame. Every Seed changes according to the formula each time the RNG is used.
The RNG is used each half step you make when you are walking in the encounter-able maps. If the generated number goes under the “Encounter Number”, enemies appear. Also, every time an encounter occurs, the RNG is used a few times to determine the enemy group.
Encounter Number
Encounter Number increases as the step counter (0x7E1A9B) grows. The counter is reset after an encounter or map changing, and increases by 1 each time you make a half step.
It depends on the maps how the Encounter Number grows. For example, in some maps it will be.. “0 (0-5 steps)”, “1 (6-7 steps)”, “3 8-9 steps”, “4 (10-34)steps”, “10 (35-71 steps)”, “28 (72- steps)”.
How to manipulate luck
Basically, you can avoid an encounter by just stopping for a step (loses 8 frames). You must note that, if you change the timing when to stop, the RNG Seeds in the future also totally changes. So it is not enough to just re-record and stop right before the future encounter, but you should try all the possible patterns when to stop for a while. I made a brute-force lua simulator and used it. But it takes too much time to calculate with my laptop computer in a large maps. So I should have needed another method of approximation like these.
Also, here is the lua script I used, though it is so unrefined. EncounterLua, EncounterSimulator

Common RNG

The RNG Seeds
There are 3 Seeds and they are stored in RAMs 0x7E075B, 0x7E075C, 0x7E075D. 0x7E075B increments per a frame. When the RNG is used, 0X7E075B and 0x7E075C change differently depending on when to use it. 0X7E075D increases by 1 every time the RNG is used.
When this is used
The Common RNG is used to determine various randomness in the game. NPCs' movement, many things in the battle, the judge of the first strike or enemies' sudden attack, and so on. For example in a fight..
  • Right after the message “〇〇のこうげき!(〇〇's attack!)” - about 3 times the RNG is used.
  • Right after the message “…のダメージ!(… points damage!)” - about twice the RNG is used.
  • When you escape from enemies - Once the RNG is used.
How to manipulate luck
The numbers of two Seeds varies depending on the timing when to use the RNG. So ideally, I should have try almost all the timings for optimization when I could press A button. But in a fighting scene, the RNG is used many times. So I used some lua scripts and compromised to some degree. I searched a few optimized candidates in one turn and tried them to select the best in the next turn.
There is a lua script to display this RNG and the value (though I mainly used other simulators which are so badly made) -> http://pastebin.com/wtTHUFRJ

Route to the Ending

I will explain with proper nouns used in NDS version.
Entering the name
Naming “あ(A)” is the fastest. I used Y button properly to save some frames.
On the Ship and Littleheaven (ビスタ港)
Used Half Step Trick once. Also I manipulated when to close messages so as to draw good RNG Seeds in the battle against Slimes.
Whealbrook (サンタローズ) and its Cave
To manipulate the enemy appearance fully, I delayed to close the message by 1 frame. Also I used the brute-force lua script to decide when to stop for 8 frames. I asked 2 Bunicorns to help the hero go out of the Cave. There is no possibility of enemies' sudden attack, for this is the first dungeon maybe.
Roundbeck (アルカパ) and Uptaten Towers (レヌール城)
In Roundbeck, I delayed totally 2 frames to manipulate the encounter and the common RNG of Uptaten Towers. To manipulate the common RNG, I had to consider when to delay because the timing decides the future Seeds. At Uptaten, I ignored one treasure chest whose content is “Chimaera Wing (キメラのつばさ, fly to the previous town)” to control the event flags. If you open the chest, the value in RAM 0x7E2212 increases by 0x80. This corresponds to the glitched 0x0B person's current MP lower byte, and if I had got this, I would have lost the chance to cast 0x0B person's spell, for the value must be more than 0x80 at the ending.

4 Wax Murderers

I tried to optimize this battle like this.
1st turn
  • Change the Bianca's AI pattern to “ガンガンいこうぜ (Give greatest damage!)” from manual, and manipulate manually to avoid the enemy's first strike (or give the first critical hit).
  • Fill in the proper values in a lua script (which calculates optimized 20 patterns when to press A button) and use it.
2nd turn and 3rd turn
  • Prepare for 5 savestates and search the pattern in which the hero can act faster than a Wax (by the Action Order Glitch) in the fastest order.
  • Search the optimized first strike manually and use the lua script again.
4th turn
  • Bianca must take damage twice from this turn. Manually search for the RNG in which Bianca can give first critical hit.
  • Kill Bianca with the Wax's attack and beat the Wax by the hero's critical hit, and finally get the treasure chest (using the lua script).

Haunted Housekeeper

He acts in a particular order. “(Attack or Frizz(メラ) ) -> (Sizz(ギラ) or Sap(ルカニ) ) -> (Attack) -> ...”
In this battle, the strategy is almost the same as the Wax Murderers. I cannot speak more than that.
When I returned Roucdbeck, I purchased 3 Chimaera Wings. Borongo obtains 2 of them to reduce lags (in the item inventory, fewer items take advantage).
Whealbrook again and Faerie Lea (妖精の村)
I delayed 3 frames total to manipulate the enemy appearance. Also, I had to find the RNG by which enemies suddenly attack. So I used a movie editing lua script and went back 10000 frames again and again to delay the timing of NPCs' movement by changing when to close the message.
In the Dwarf's Den, the hero must find a book about the thief and be killed by Lava Larvas' sudden attack. Lava Larva is sometimes sleeping when the battle begins (50%). The possibility that everyone is awake is 1/16. And the sudden attack happens once in 32 times. Totally 1/512 probable. That's why I had to manipulate again and again. Also I had to manipulate the enemy appearance. But thanks to the lua scripts, this was not so much hard.
Winter Palace (氷の館)
On the slipping floor, there is a trick to move smoothly. If you press arrow keys vertically to the wall right before you hit the wall, you can walk slightly to the vertical direction.
There are two bosses, but luck manipulation is not so different from previous battles. So I omit the explanation.
Coburg (ラインハット) to the Ancient Ruins (古代の遺跡)
At Coburg, nothing is particular. In the Ancient Ruins, the map is so large to use a brute-force lua script. So I used the script a few times to find the better enemy appearance.
In the event when Pankraz dies, Pankraz's current HP is taken over. I optimized to kill Pankraz faster.
Enslavement, Heaven's Above Abbey and Fortuna
In the Abbey, the hero was sent 1000 gold by Maria. This is the fastest way to make more than 300 gold as far as I know.
Before arriving at Fortuna, I walked around to wait for the night (to purchase the carriage). On the town in the field map, the Encounter RNG is not used. So I could manipulate luck of the next encounter.
After purchasing the carriage, I had to recruit 2 slimes. Heavily manipulating luck, I could find the best encounter (in which 2 slimes appear, only 0.1%) twice.
Borongo Glitch
I abused the glitch and set the ending flag as mentioned above. I explain what I did after I used this glitch and made a glitched character.
After 0xFF person appeared, farm and get a monster twice (0xFF -> 0xFD) to obtain “Hermes' Hat (かぜのぼうし, which can be used like a Chimaera Wing)”. Then make 0xFC character and escape by Hermes' Hat. When entering the town, Borongo Glitch occurs again. The resurrection event doesn't happen this time. Again farming party members, make 0xFD and 0xFA persons. Draw a Staff of Resurrection and Hermes' Hat. Then arrange the party order to summon 0x0D and 0x0A persons.
Before going outside, resurrect 0A person to avoid the resurrection event. 0D's item inventory corresponds with the number of items deposited at the item bank. Taking out items from the bank, the item of 0D transforms. From the bank, take out Night Light to 0D and take out 2 Steel Fangs, which corresponds with 0D's 12th item. Night Light (C5) decreases by 2 (C3) and gain the unused item “Monster Hoihoi (モンスターほいほい)”, which has the same effect as Flying Carpet.
Again talking to Monty, make 0x08 and 0x0B characters. 0B can cast glitched Zoom (ルーラ) spell and can fly to anywhere. Fly to Gotha (グランバニア) because I will later fly there by Hermes' Hat. Use Monster Hoihoi to go to the Nightmare Towers. Climb the towers and see the rock to increase 0x0B's character ID by 0x80. Then use Hermes' Hat to fly to Gotha and slide the ID using Patty's Bar. When you enter the throne room, the adventure will end.

Thanks to …

  • Fami(ファミ): A speedrunner on real console. He planned the original run with Borongo Glitch. Of course I referred to that so much.
  • Pirohiko(ピロ彦): A glitchy Japanese TASer. His quality research for this glitch and event flags was also helpful for me. And he gave me some good ideas.
  • Kri: A Japanese speedrunner on Dragon Quest series. His analysis about Action Order Glitch was so helpful.
  • The site manager of “プレハブ小屋 (Prefab House)”: I referred to this website when I tried to disassemble. [dead link removed]
  • Tamanahito (玉な人): He made the previous run on Nikovideo, which was long but optimized run. I used some tricks that he discovered.
  • (Square)Enix: Published this great game.
I encoded myself with some explanations. [dead link removed]
Also, I made an easy translation subtitle file. [dead link removed]
I hope many of you who watch this game first will be interested in this game. Enjoy the run!

ledauphinbenoit: Uploaded Touch-me's encode and English subtitles to YouTube.

Baxter: Very positive audience response. Accepting for publication.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14848
Location: 127.0.0.1
This topic is for the purpose of discussing #3431: Touch-me's SNES Dragon Quest V in 50:19.53
Personman
Other
Joined: 4/20/2008
Posts: 465
I don't play many long JRPGS, and I often don't even watch much of these runs, but I love reading detailed submission texts like this! Thanks Touch-me for this wonderfully detailed explanation, and thanks for having the patience to get it into such good English. Edit: Watching the encode, and damn if that's not the classiest commentary/RAM value display format I've ever seen! And those graphs! *swoon* If anyone's curious, the really crazy stuff starts around 42:20.
A warb degombs the brangy. Your gitch zanks and leils the warb.
Joined: 12/2/2005
Posts: 139
Location: New York, United States
I think this submission has spoiled me. How can I watch an encode again without the nifty commentary box?
What's a man like me supposed to do with all this extra savoir-faire?
Joined: 1/9/2012
Posts: 25
From the sounds of the comments, this may be good. However, I'm not going to vote until I see the encode.
Personman
Other
Joined: 4/20/2008
Posts: 465
I can't tell if you're saying you just haven't found time or if you couldn't find the encode -- if it's the latter, here it is.
A warb degombs the brangy. Your gitch zanks and leils the warb.
Joined: 6/26/2011
Posts: 167
I saw this run pop up, and I was curious. I read the submission text, and I was intrigued. I saw the run get played, and I was impressed. Then I saw The Hero grow up, vanish, get resurrected, vanish again, etc., until causality threw its hands in the air and gave up, and I was amazed. After a run like that, especially coupled with an extremely helpful LUA script and commentary, and, really, there is no vote other than Yes.
First a movie gets submitted, and ends up accepted despite breaking rules other runs have been rejected for. And when I vote less than spectacularly on this movie, I become the victim of harassment and threats. Yay, favoritism.
Joined: 1/9/2012
Posts: 25
Personman wrote:
I can't tell if you're saying you just haven't found time or if you couldn't find the encode -- if it's the latter, here it is.
It was the later. Anyway, this is very interesting, and I like the fact that the player not only showed the gameplay, but explained how he was able to TAS the game. YES vote from me.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
The commentary really makes this run. Yes vote.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
This is one of my favorite games. I have been dreaming of a TAS for this game for a long time. I just watched the entire TAS and enjoyed everything contained. This TAS is amazing. I noticed you credited Enix for publishing the game, but not ChunSoft for actually making the game. :o Anyway, Touch-me, you're a genius.
Joined: 8/29/2005
Posts: 148
Location: Dayton, OH
So excited about this run! Touch-me, I am uploading the video file to YouTube and will post the link onto the submission when it is completed.
Joined: 8/29/2005
Posts: 148
Location: Dayton, OH
I'm not sure when this started, but all Dragon Quest/Warrior games use Roman numerals in their titles rather than digits. This is similar to Castlevania and Double Dragon. Was there some reason numerals were not used for the NES Dragon Warriors? Should 5 be changed to V?
Joined: 6/26/2011
Posts: 167
ledauphinbenoit wrote:
I'm not sure when this started, but all Dragon Quest/Warrior games use Roman numerals in their titles rather than digits. This is similar to Castlevania and Double Dragon. Was there some reason numerals were not used for the NES Dragon Warriors? Should 5 be changed to V?
All of our existing Dragon Quest (Well, Warrior; this is the first non-exported game we got in the series) runs use Arabic Numerals, not Roman. Evidently, the decision to use that particular set of numerals was decided some time ago. I couldn't say why; plenty of other series use roman numerals, this one just... doesn't.
First a movie gets submitted, and ends up accepted despite breaking rules other runs have been rejected for. And when I vote less than spectacularly on this movie, I become the victim of harassment and threats. Yay, favoritism.
Ambassador, Experienced player (696)
Joined: 7/17/2004
Posts: 985
Location: The FLOATING CASTLE
Awesome game choice, this is probably one of the best in the DW series. The commentary and explanations are very much appreciated.
Joined: 7/24/2007
Posts: 74
ledauphinbenoit wrote:
Should 5 be changed to V?
The run is amazing. Nice to see another famous SNES RPG destroyed after the treatment of Chrono Trigger and Earthbound. Although it does lose points for using DS names in the description/video. Pankraz? Ugh.
Dwedit
He/Him
Joined: 3/24/2006
Posts: 692
Location: Chicago
This is one of the most fantastic submissions and encodes I have ever seen. Lots of information, the RNG graph, it just shows oodles of effort put into place here. Giant thumbs up!
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Use normal numbers. Roman numerals don't add enough flavor to warrant their usage. Whenever I install a game with Roman numerals and am prompted for directory name, I just use the real number instead ("heroes of might and magic 3", "civilization 2", "master of orion 2", etc.). Not only does it cause my file manager to properly sort the directories by name, but it's also easier to read at extreme speeds (such as when scanning through a list). Anyway, I like "1", "2", "3", "4", "5", "6" etc. "I", "II", "III", "IV", "V", "VI" can be relatively confusing when you're quickly scanning, especially with the possibility of confusing "IV" and "VI". No. This post will not hijack this thread. Touch-me, your TAS is amazing and I voted yes, as you could probably guess since I already posted. I am very happy you decided to submit another previously-unpublished game TAS to TASvideos (after Secret Of Mana).
Emulator Coder, Former player
Joined: 10/2/2005
Posts: 563
Location: Toronto, Ontario
touch-me's really setting the bar pretty high for RPG TAS'. (finger's crossed that he'll tackle FFIV or FFVI next :P)
Joined: 11/15/2010
Posts: 2
Location: Calgary
This was an incredible run. It's not every day I can watch an RPG TAS in a foreign language and enjoy every second of it. As a huge fan of the Dragon Quest series, it's great to see another amazing submission for this site.
Active player (266)
Joined: 9/14/2011
Posts: 349
Touch-me again? YES VOTE!!!!!
Joined: 2/27/2011
Posts: 69
Location: Calgary, Alberta
I put in a yes vote.
scaryice wrote:
Although it does lose points for using DS names in the description/video. Pankraz? Ugh.
Agreed.
Lex wrote:
Use normal numbers. Roman numerals don't add enough flavor to warrant their usage. Whenever I install a game with Roman numerals and am prompted for directory name, I just use the real number instead ("heroes of might and magic 3", "civilization 2", "master of orion 2", etc.). Not only does it cause my file manager to properly sort the directories by name..
I must be OCD, but I have a hard time deciding on sorting my DS DQs by alphabetical or numerical. 4, 9, 5, 6 is a weird sort though, but it's "correct".. Augh! :P
King Zenith wrote:
This was an incredible run. It's not every day I can watch an RPG TAS in a foreign language and enjoy every second of it. As a huge fan of the Dragon Quest series, it's great to see another amazing submission for this site.
Welcome to the site. I see you there :P I've been too busy to bug you about hanging out again though :P Lunch is still an easy choice though :P Hope you got a 3DS for Christmas.. I need some more puzzle pieces :P And I don't frequent forums enough to justify messages.. So I dunno! :P Also, be sure to watch adelikat's DWIV NES run.. I've watched it at least a dozen times. That's what it gets for being my favourite game. http://tasvideos.org/519M.html (The discussion thread there does have a link to a Japanese NES TAS of it that is <2h.. Haven't managed to watch that one yet..) Ok now for my real thoughts on the run too. The character switching is a bit over my head in terms of understanding it. Negative points for ending the game with Flora. I would have a new run obsolete this one with Bianca in the ending :P But young Bianca and the teenage hero made me laugh a bit. Game broken. I at least get that you have to make the party swapping/monster recruiting possible before glitching the hell out of the game.. Good use of RNG abuse too. I love seeing the graphs as well. An amazing concept for a TAS and I hope other people take it up. It's too interesting. I did notice the graph freaks out when you go between areas in a dungeon which matches up with my experience which is awesome to see verified like that :P To be honest though, there wasn't much of a need to split the story explanation into subtitles. It could have gone in with the tech explanation and fit both around what was happening just fine. Great run though and hopefully DQVI isn't too far off :P Although I wouldn't mind 100% runs of either. I'd also imagine that this run would desync pretty easily when using the translation patch.
Joined: 8/1/2004
Posts: 178
Dingbat Quincy V yes I will watch this eventually cuz cyghar never finished streaming it, etc., i.e. How could such an aged game be considered such good TAS? I'll find out in time.
<^>v AB X LR s
Joined: 5/29/2004
Posts: 757
Absolutely incredible! I am so blown away by how well done this TAS was.. let alone how fast it ended! The planning was absolutely amazing, thorough and well thought out. Downside is the encode has now spoiled me. I wish there could be more encodes of this phenomenal quality. The details were so refreshing and made this an enjoyable watch. Definite Yes vote! Mr. Kellly R. Flewin
Mr. Kelly R. Flewin Just another random gamer ---- <OmnipotentEntity> How do you people get bored in the span of 10 seconds? Worst ADD ever.
Experienced player (760)
Joined: 12/20/2009
Posts: 120
I voted YES. Because this TAS made me laugh.
Editor, Skilled player (1938)
Joined: 6/15/2005
Posts: 3243
Great job, Touch-me! I love the encode. I could only wish that I make encodes as good as yours.
Active player (384)
Joined: 12/23/2010
Posts: 30
Location: Japan
Been away this long due to some examinations. Thanks everyone for voting ;) As for the number Though I think it's not the matter, I prefer Arabic numbers. Just because older NES DW/DQ runs use Arabic ones. Otherwise some confusion will be caused in sorting. As for the encode The idea is originally conceived by Pirohiko. His FF3 TAS was a good example. http://www.youtube.com/watch?v=Jse1cmB82_U
Current project: Another Mana Series?