1 2
5 6
ars4326
He/Him
Experienced player (763)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
I KNEW that I remembered cutting down a Sacred Tree as a kid, without Axe Magic! That's awesome. It'd be great if somebody could record a movie of that so that we can study the input and pull it off consistently. Also, my laptop ended up dying out about 2 weeks ago (I completed the final bit and submission text on our family desktop) :/ The AC charge port shorted out, and I'll either have to find a means to replace it or invest in a new machine. So until further notice, I'll be taking a break from TASing. The any%/'statueless' will be an interesting project; considerably shorter, but a lot more to think about due to Nigel's weaker state.
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
ars4326 wrote:
Other than that, I haven't utilized RAM Watch or anything to track their HP (I'm admittedly not very savvy in this area).
Ah, that's too bad. You could have asked, and I or someone would surely have helped out. I understand that attack power is exponential somehow (although more specifics would be interesting) and you also confirmed that there is a random element. How about sword type? How much stronger is the fire/thunder/ice/gaia sword than the previous? How much stronger is a charged attack? (Double?) I guess it will be more relevant for an any% run when deciding which life stocks to get, but there are instances in this run where it could have helped as well. For example, is it worth going into the cave behind the sacred trees at once? At the 19 minute mark there are lizards which take some time to beat. Perhaps the single life stock here does not save any time, and beating the lizards later with higher attack would save more time?
ars4326
He/Him
Experienced player (763)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
Truncated wrote:
ars4326 wrote:
Other than that, I haven't utilized RAM Watch or anything to track their HP (I'm admittedly not very savvy in this area).
Ah, that's too bad. You could have asked, and I or someone would surely have helped out. I understand that attack power is exponential somehow (although more specifics would be interesting) and you also confirmed that there is a random element. How about sword type? How much stronger is the fire/thunder/ice/gaia sword than the previous? How much stronger is a charged attack? (Double?) I guess it will be more relevant for an any% run when deciding which life stocks to get, but there are instances in this run where it could have helped as well. For example, is it worth going into the cave behind the sacred trees at once? At the 19 minute mark there are lizards which take some time to beat. Perhaps the single life stock here does not save any time, and beating the lizards later with higher attack would save more time?
I agree. Going into this, I didn't think any RAM watch would be necessary as I thought attack power was more or less a linear thing. As for the magic swords, it didn't seem like any blade's base attack was stronger than the other (all charged attacks do extra damage, though). I tested this in the Kazalt Cave with the Bronze and Silver Golems and they appeared to take the same amount of damage, no matter which sword I had equipped. However, even if certain blades did have a significant advantage in situations, going in and out of the menu to equip them would cost around 200 frames (or 10 consecutive attacks). As for the Mountain Dungeon sequence break, defeating those lizards would be a bit faster, likely 3-4 hits or 60-80 frames, if I'd enter it after completing Green Maze, instead. However, they also provide 24 Gold which is necessary towards buying the Life Stock in Massan for 206g. More time would have to be spent in the Swamp Shrine obtaining money bags to make up for it. Since enemies at that point only drop 1 or 2g amounts, I'm not sure if that would end up saving much over killing the lizards.
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Joined: 4/29/2015
Posts: 8
Really good work on the TAS, I enjoyed watching that. In terms of enemy damage, it appears that each enemy has a "defence level" as well as a total HP count. The following image summarises this (taken from Encyclopedia Landstalker): I don't know Japaneese, but I worked out that the columns of numbers from left to right read the following: Attack Power, Defence Level, HP, Gold Drop. The way the Defence level works is that it provides a minimum total HP that Nigel must have before his base attack does more than 1HP damage. Nigel's base attack will increase by 0.25HP for each level he has above the minimum total he needs for that class of enemy. The minimum total HP is calculated from the defence score (DS) as follows: HP = 2*DS + 4 Therefore it takes the following HP to reliably one hit kill an enemy (where EHP is the enemies' HP): HP = 2*DS + 4*EHP (If you want to always one-hit kill enemies, you will need to add one to the calculated HP level, as there is a 1/96 chance that there will be a roundoff error and your total attack will be ever-so-slightly less than the enemies' HP) For example, minimum HP to one-hit kill various enemies: White bubble (DS=3, HP=2): 2*3 + 4*2 = 14 Blue bubble (DS=3, HP=4): 2*3 + 4*4 = 22 Yellow orc (DS=5, HP=4): 2*5 + 4*4 = 26 Silver Golem (DS=60, HP=12): 2*60 + 4*12 = 168(!) In addition to the above, there is a random chance that your attack will be boosted between 0 and 3/8 for each complete HP your base attack provides: BA (Base Attack) = Max(1,(HP-2*DS)*0.25) (EDIT) MA (Modified Attack) = BA + rnd*3/8*floor(BA) Where rnd is a random number between 0 and 1, and floor() is the floor function (rounds down to the nearest whole number) For the magic swords (on a full charge), another modifier is applied to the attack score: FA (Final Attack) = MA * SM Where SM (Sword Modifier) is given by the following: Magic Sword: 1.75 Thunder Sword: 2.00 Ice Sword: 1.5 Gaia Sword: 1.25 Interestingly, the later swords have a lower damage modifier. I suppose this is to balance out the increased range of these swords. You can see the enemies' HP by using a RAM viewer. Nigel's HP is stored as a 2-byte word at address 0xFF543E. Other enemies follow every 0x80 bytes (at addresses 0xFF54BE, 0xFF553E, 0xFF5BE, ...) Sorry for the long post. I hope that made sense.
vayarda
He/Him
Joined: 4/22/2012
Posts: 9
Location: France
Whooah, Thanks Lordash ! It's so amazing ! These informations are precious for TAS but also for speedrun haha :D However, it seems to me that when Ryle have 99HP (or 100, i forget) you kill all ennemies with one shot, even Gola.
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Hello lordash, and most welcome to TASVideos! I have to say, as far as first posts go, that one was pretty awesome. This is some very helpful enemy info, formulas and sword damages. >I don't know Japaneese, but I worked out that the columns of numbers from left to right read the following: Attack Power, Defence Level, HP, Gold Drop. I know some Japanese and can confirm that you are correct. (The last two are special item, and chance to drop special item.) >BA (Base Attack) = Min(1,(HP-2*DS)*0.25) >MA (Modified Attack) = BA + rnd*3/8*floor(BA) How did you come by this info? Disassembling the ROM, testing and observing the RAM, something else? Also, can BA and MA be fractional? (It looks like it.) Does the enemies keep track of fractional health, or is the whole damage floored to an integer before being applied? >(If you want to always one-hit kill enemies, you will need to add one to the calculated HP level, as there is a 1/96 chance that there will be a roundoff error and your total attack will be ever-so-slightly less than the enemies' HP) How can there be a 1/96 chance of roundoff error? Isn't the same calculation performed the same way every time you attack? ----- EDIT: I made a chart of the number of hits it takes to kill an enemy given your HP. The top is the maximum number of hits, bottom is minimum (if you get 3/8 bonus damage on every strike). https://docs.google.com/spreadsheets/d/1bvb_4qVh4YpNMb2CeMxfYUeg-LSfKsTATB-Xr4lbQto/edit?usp=sharing It's a guess until I have answers to the questions above, in which stages of the calculation things are rounded down. It fits the numbers given for slimes and orcs at least. Names are according to the Japanese charts, I don't know the English names. Also, this: >BA (Base Attack) = Min(1,(HP-2*DS)*0.25) should probably be >BA (Base Attack) = Max(1,(HP-2*DS)*0.25)
Joined: 4/29/2015
Posts: 8
How did you come by this info? Disassembling the ROM, testing and observing the RAM, something else?
I found the relevant code whilst disassembling the rom (it is located at 0x1657E, at least in the US version of the ROM). I've been looking at making a map viewer / editor for Landstalker for some time now (been working on it on and off for the past 7 or so years) which is how I came across the code. I also verified it by looking at the RAM whilst fighting enemies.
Also, can BA and MA be fractional? (It looks like it.) Does the enemies keep track of fractional health, or is the whole damage floored to an integer before being applied?
Both attacks and health can indeed be fractional. These values are stored as a 16-bit word, the high byte of which refers to the whole number of HP, and the low order byte refers to the fractional part.
How can there be a 1/96 chance of roundoff error? Isn't the same calculation performed the same way every time you attack?
For some reason, your total health is actually 1/256 less than what you would expect (for example, if you have 7HP, this is stored in RAM as 0x06FF) - I'm not entirely sure why, but it means that when damage is calculated by dividing your total health (including the fractional part) by four, this value always gets rounded down. Enemies, on the other hand, have their HP stored as you would expect (e.g. for an enemy with 2HP, this is stored as 0x0200). This means that when you attack the enemy with 8HP above its defence level, you will hit it for 0x1FF leaving it with 0x0001, or 1/256 of a hit point left. In practice, the random element will ensure that this always never happens, but there is a small chance that there will be no random damage boost. This will happen 1 in 96 times (or 3/8 times 256).
Joined: 4/29/2015
Posts: 8
vayarda wrote:
Whooah, Thanks Lordash ! It's so amazing ! These informations are precious for TAS but also for speedrun haha :D However, it seems to me that when Ryle have 99HP (or 100, i forget) you kill all ennemies with one shot, even Gola.
Most enemies will die immediately at 100HP, but due to the high defence score of the golems they will actually take more hits to kill than King Nole / Gola! Silver golems will die after around 11 hits at 100HP, whereas King Nole seems to take around 9 hits and Gola around 6. Even at 170HP (the highest you can normally get in the game), King Nole takes around 4 hits and Gola 3.
Joined: 4/29/2015
Posts: 8
Truncated wrote:
EDIT: I made a chart of the number of hits it takes to kill an enemy given your HP. The top is the maximum number of hits, bottom is minimum (if you get 3/8 bonus damage on every strike). https://docs.google.com/spreadsheets/d/1bvb_4qVh4YpNMb2CeMxfYUeg-LSfKsTATB-Xr4lbQto/edit?usp=sharing It's a guess until I have answers to the questions above, in which stages of the calculation things are rounded down. It fits the numbers given for slimes and orcs at least. Names are according to the Japanese charts, I don't know the English names. Also, this: >BA (Base Attack) = Min(1,(HP-2*DS)*0.25) should probably be >BA (Base Attack) = Max(1,(HP-2*DS)*0.25)
You are right, it should be BA (Base Attack) = Max(1,(HP-2*DS)*0.25). Good work on putting together that spreadsheet, that looked like it took some time. You can override the random number generator by using these patch codes: 001172:3E3C 001174:xxxx 001176:4E71 Where xxxx is any 2-byte number (this will be the output of the RNG). For example - to have no damage boost, replace xxxx in the above with 0000. For maximum damage, replace xxxx with FFFF. This code will also have some other effects on the game :)
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
lordash wrote:
Most enemies will die immediately at 100HP, but due to the high defence score of the golems they will actually take more hits to kill than King Nole / Gola! Silver golems will die after around 11 hits at 100HP, whereas King Nole seems to take around 9 hits and Gola around 6. Even at 170HP (the highest you can normally get in the game), King Nole takes around 4 hits and Gola 3.
I updated the formulas with the correct rounding order. But something is off here... - You say that Silver golems die from 11 hits at 100 HP. According to the chart it's between 9-12, so that seems right. - You say that King Nole dies from 9 hits at 100 HP. According to the chart it's between 16-23, which can't be right. I also checked at 84 HP, the TAS takes 15 hits, but the chart says 28-40. My guess is that the listed Defense 31 and HP 200 for King Nole is incorrect. What should it be? Gola isn't listed at all, so his (her?) stats would also be nice.
You can override the random number generator by using these patch codes:
You read my mind. This is what I was going to ask next.
Joined: 4/29/2015
Posts: 8
Truncated wrote:
But something is off here... - You say that Silver golems die from 11 hits at 100 HP. According to the chart it's between 9-12, so that seems right. - You say that King Nole dies from 9 hits at 100 HP. According to the chart it's between 16-23, which can't be right. I also checked at 84 HP, the TAS takes 15 hits, but the chart says 28-40. My guess is that the listed Defense 31 and HP 200 for King Nole is incorrect. What should it be? Gola isn't listed at all, so his (her?) stats would also be nice.
Gola's stats are 150HP and 31DEF. I can confirm that Nole's stats are accurate, however for some reason he dies when his remaining HP falls below 100. You can confirm this from looking at his health in RAM (0xFF55BE). This is also the same for Gola as well (0xFF553E). I'm not sure why this happens, but this effectively makes their HP 100 and 50 respectively. This seems to fit in with the recorded number of hits to kill them both. I haven't seen this happen with any other enemy, including the other bosses.
Joined: 1/27/2015
Posts: 13
that spread sheet is cool but does it count the sword modifier? nole dont take 200 hits like everits more around 40-60. or the geneerel effect or the sword modifier. we use the flame sword plus gold statues by that point so a fully charged fire blade in most cases. also i would liek a confrim deny about skiping over the heal boots gate using the money bag hop if possible not knowing is killing,( from on top of boots to over door?)
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
>that spread sheet is cool but does it count the sword modifier? No. But you can divide the number of hits with the Sword modifier and round up. For example 8 hits / 1.75 (flame) = 4.57 -> 5 8 hits / 2.00 (thunder) = 4.00 -> 4 >nole dont take 200 hits That was an error because of the irregular behavior of Nole's and Gola's health, which lordash explained above. It's fixed in the spread sheet now.
Joined: 4/29/2015
Posts: 8
lordash wrote:
I haven't seen this happen with any other enemy, including the other bosses.
It turns out that this is not entirely true. All bosses that trigger script actions when they are defeated are killed when their HP falls below 100. This is true of Mir (actual HP 28), Duke (actual HP 68), Zak (actual HP 120), Spinner (actual HP 110) and Miro (actual HP 120), as well as Gola and Nole. This does not affect both the stone warriors, Ifrit and the purple spinner, whose HP is as given.
RatFunkZ wrote:
also i would liek a confrim deny about skiping over the heal boots gate using the money bag hop if possible not knowing is killing,( from on top of boots to over door?)
That won't work - you can only hop over locked doors that are represented by sprites. These doors all look the same (e.g. http://shrines.rpgclassics.com/genesis/landstalker/images/walkthroughpics/walk10/08.gif). The one in the stone warrior room is part of the actual background of the room and cannot be jumped over.
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
I am trying to put together a lua script which shows relevant stuff about enemies HP and damage. >You can see the enemies' HP by using a RAM viewer. Nigel's HP is stored as a 2-byte word at address 0xFF543E. Other enemies follow every 0x80 bytes (at addresses 0xFF54BE, 0xFF553E, 0xFF5BE, ...) This checks out. How many enemies can the game handle at once? Are objects (chests, pots) in the same array? >001174:xxxx I don't get this. What RAM address is this? Neither 0xFF1174 nor 0xA01174 seem to be it.
marzojr
He/Him
Experienced player (742)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Truncated wrote:
>001174:xxxx I don't get this. What RAM address is this? Neither 0xFF1174 nor 0xA01174 seem to be it.
This is in ROM; he is giving a Game Genie patch for the PRNG code:
001172	3E3C XXXX	move.w #XXXX,d6
001176	4E71     	nop
This overwrites the return value of the routine the new RNG seed from being written by a forced new value for d6, which is multiplied by the new seed to obtain the return value (see below). Edit: this is the PRNG code, by the way:
001164	sub_1164:
001164		move.w	(word_FF0FAA).l,d7
00116A		mulu.w	#13,d7
00116E		addi.w	#7,d7
001172		andi.l	#$FFFF,d7
001178		move.w	d7,(word_FF0FAA).l
00117E		mulu.w	d6,d7
001180		swap	d7
001182		rts
So the PRNG seed is the word at $FF0FAA. In pseudo-C:
unsigned sub_1164(unsigned short d6) {
	unsigned short *seedptr = (unsigned short*)0xFF0FAA;
	unsigned d7 = ((unsigned)(*seedptr) * 13u + 7u) & 0xFFFFu;
	*seedptr = d7;
	d7 *= d6;
	return ((d7 >> 16) & 0xFFFFu) | ((d7 & 0xFFFFu) << 16);
}
On a basic disassembly, there are calls to it with:
  • d6 = 0x60;
  • d6 = 0x64;
  • d6 = ((unsigned short *)0x0164AA)[*(unsigned char *)0xFF114A] (that is, d6 = 3, 2 or 1);
  • at 0x01628C, d6 = $78(a5) (that is, unknown until the code executes).
There may be others; the call to sub_1164 is done indirectly by calling sub_362, which is a trampoline:
000362	sub_362:
000362		jmp	(sub_1164).l
Edit 2: all of these calls make use of the return value at d7 as a word, so only the low 16 bits of it seem to be relevant to the game.
Marzo Junior
Editor, Experienced player, Reviewer (967)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Thanks marzojr, that straightened things out. However, now I feel that there are two people better suited to put this together... Here is a very rudimentary first version. Works for Gens, I don't know what the Bizhawk equivalent to register is. http://tasvideos.org/userfiles/info/22528320965302561 What's immediately obvious is - The bonus damage changes its whole part and its fractional part separately. Every time you enter a room, it picks a number to increase the whole part with, and a number to decrease the fractional part with. - When an enemy is killed, its slot is taken by the gold bag object. The gold bag object uses the HP variable to decide when it should disappear.
marzojr
He/Him
Experienced player (742)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I am not entirely sure I am qualified to do this, since BizHawk does not work on Linux, the Linux version has neither a Genesis core nor Lua support. I would be qualified to make a Gens version of the script or to serve as a technical adviser, though.
Marzo Junior
Joined: 4/29/2015
Posts: 8
I've made a few changes to your script: - Only enemies will be displayed (rather than any object) - Magic sword power is taken into account - There is now a damage done field as well as a HP field - I've made some small tweaks to the damage boost / RNG formula to better match the actual game code I've yet to work out whether the damage done field (including damage boost) is accurate, and at what time the damage boost is taken during an attack.
--lua script for gens rerecording+lua: http://code.google.com/p/gens-rerecording/
--purpose: HUD in Landstalker (U).
--written by Truncated 2015-05-03.
-- 

enemy_table = {[0x3C] = "BUBBLE1", [0x3D] = "BUBBLE2", [0x3E] = "BUBBLE3", [0x29] = "SKELETON1",[0x2A] = "SKELETON2",[0x2B] = "SKELETON3",
               [0x04] = "ORC1",    [0x05] = "ORC2",    [0x06] = "ORC3",    [0x07] = "WORM1",    [0x08] = "WORM2",    [0x09] = "WORM3",
			   [0x17] = "NINJA1",  [0x18] = "NINJA2",  [0x19] = "NINJA3",  [0x1A] = "LIZARD1",  [0x1B] = "LIZARD2",  [0x1C] = "LIZARD3",
			   [0x1D] = "SOLDIER1",[0x1E] = "SOLDIER2",[0x1F] = "SOLDIER3",[0x20] = "GHOST1",   [0x21] = "GHOST2",   [0x22] = "GHOST3",
			   [0x23] = "MUMMY1",  [0x24] = "MUMMY2",  [0x25] = "MUMMY3",  [0x26] = "UNICORN1", [0x27] = "UNICORN2", [0x28] = "UNICORN3",
			   [0x2C] = "MIMIC1",  [0x2D] = "MIMIC2",  [0x2E] = "MIMIC3",  [0x36] = "MUSHROOM1",[0x37] = "MUSHROOM2",[0x38] = "MUSHROOM3",
			   [0x39] = "GIANT1",  [0x3A] = "GIANT2",  [0x3B] = "GIANT3",  [0x81] = "BUBBLE4",  [0x82] = "BUBBLE5",  [0x83] = "BUBBLE6",
			   [0x7D] = "BIRD1",   [0x7E] = "BIRD2",   [0x7F] = "BIRD3",   [0x88] = "REAPER1",  [0x89] = "REAPER2",  [0x8A] = "REAPER3",
			   [0x8F] = "GHOSTGN1",[0x90] = "GHOSTGN2",[0x91] = "GHOSTGN3",[0x92] = "GOLEM1",   [0x93] = "GOLEM2",   [0x94] = "GOLEM3",
			   [0x95] = "SPECTRE1",[0x96] = "SPECTRE2",[0x97] = "SPECTRE3",[0x7C] = "MIR",      [0x70] = "DUKE",     [0x85] = "ZAK",
			   [0xA0] = "IFRIT",   [0x9D] = "SPINNER1",[0x9F] = "MIRO",    [0xA7] = "S.WARR1",  [0xAB] = "S.WARR2",  [0xAA] = "SPINNER2",
			   [0xA5] = "NOLE",	   [0xA2] = "GOLA"}

sword_modifiers = {1.75,1.50,2.00,1.25}


GetDecimalVal = function(val)
	frac = val % 0x100
	intg = math.floor(val / 0x100)
	frac = math.ceil(frac * 100 / 0x100) / 100
	return intg + frac
end

gui.register( function ()

	--bonus damage
	crit = memory.readwordunsigned(0xFF0FAA)
	crit = math.floor((math.floor(crit * 13 + 7) % 0x10000)*0x60)/0x10000
	crit = crit / 0x100 * 100
	message1 = string.format("DMG: %05.2f", crit) 
	gui.text(150, 184, message1.."%", "white", "black") 
	
	--Sword damage
	modifier = 1
	dmgcol = "white"
	sword = memory.readbyteunsigned(0xFF114E)
	chg = memory.readwordunsigned(0xFF120A)
	if sword > 0 and chg == 0x3200 then
		modifier = sword_modifiers[sword]
		dmgcol = "red"
	end
	
	--enemy HP
	start = 0xFF5480
	healthoff = 0x3E
	healthmaxoff = 0x7E
	enemytypeoff = 0x3B
	defoff = 0x7C
	nextoff = 0x80
	count = 0
	nigelhealth = GetDecimalVal(memory.readwordunsigned(0xFF5400 + healthmaxoff))
	for i = 0, 10 do
		enemytype = memory.readbyteunsigned(start + enemytypeoff + i*nextoff)
		if enemy_table[enemytype] ~= nil then
			--whole = memory.readbyteunsigned(start + i*offset)
			--frac = memory.readbyteunsigned(start + i*offset + 1) --/0x100*100
			--gui.text(100, 110+i*10, string.format("%d: %d.%02d", i, whole, frac), "white", "black") --gives rounding errors
			maxhealth = GetDecimalVal(memory.readwordunsigned(start + healthmaxoff + i*nextoff))
			health = GetDecimalVal(memory.readwordunsigned(start + healthoff + i*nextoff))
			def = GetDecimalVal(memory.readwordunsigned(start + defoff + i*nextoff))
			dmg = math.max(1, math.floor((nigelhealth - def*4)*100)/400)
			dmg = dmg + math.floor(dmg) * crit / 100
			dmg = dmg * modifier
			gui.text(100, 110+count*10, string.format("%9s: %4.2f / %4.2f", enemy_table[enemytype], health, maxhealth), "white", "black") 
			gui.text(220, 110+count*10, string.format("%4.2f", dmg), dmgcol, "black") 
			count = count + 1
		end
	end
	if count > 0 then
		gui.text(100, 100, "Enemy HP", "white", "black")
	end
end)

ars4326
He/Him
Experienced player (763)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
That is awesome that you guys produced a starting lua script to show off enemy HP and damage! By my estimations, that could end up saving well over 10 seconds (at 20 frames a sword strike) in an any% run by optimizing attacks. Lordash, you mentioned that only doors represented by sprites can be hopped over. Do you know if the blocked path leading to Verla is represented by sprites or background?
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Joined: 4/29/2015
Posts: 8
ars4326 wrote:
Lordash, you mentioned that only doors represented by sprites can be hopped over. Do you know if the blocked path leading to Verla is represented by sprites or background?
In this case it is represented by both a sprite and a background change. The big rock that you see is a sprite (same as the big rock blocking the path between Gumi and Ryuma/Mercator), but the background has also been altered to block the door leading to Verla. Presumably this is to stop you from jumping from the top of the cliff through the door. You can verify this by using the game genie code DBAA-BAAC which allows you to float by tapping the jump button. Most sprites have a height of 3.5 - 4.5, but background changes are effective to a height of 64 (but the graphics will corrupt long before you reach this height).
ars4326
He/Him
Experienced player (763)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
lordash wrote:
In this case it is represented by both a sprite and a background change. The big rock that you see is a sprite (same as the big rock blocking the path between Gumi and Ryuma/Mercator), but the background has also been altered to block the door leading to Verla. Presumably this is to stop you from jumping from the top of the cliff through the door. You can verify this by using the game genie code DBAA-BAAC which allows you to float by tapping the jump button. Most sprites have a height of 3.5 - 4.5, but background changes are effective to a height of 64 (but the graphics will corrupt long before you reach this height).
Ah, that's a shame... I suspected there was something going on, due to not getting anything in test runs. I also remember fooling around with that code, years back, playing on emulator. I recall that in certain spots (definitely outside of the Lake Shrine) you could continue jumping beyond the corrupted graphics and reach another copy of the map that would contain glitched exits. In some cases, these exits would soft-lock the game.
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Joined: 1/27/2015
Posts: 13
A sudden discovery came up that would make things quite intresting box's always exist apparently with somewhat similar physics https://www.youtube.com/watch?v=4uI2rLNUbDU heres a example of what i mean. have fun
Player (32)
Joined: 10/9/2016
Posts: 40
So this one was just found: https://clips.twitch.tv/PleasantCrackyAnteaterGOWSkull Apparently if you kill an enemy and their gold bag drops onto the spot the trees are at they will just disappear. If you're not familiar with this game, you're not supposed to be able to get rid of those trees until much later into the game. My thinking was that maybe you can make other objects disappear using this. He performed it originally on the Steam version of the game but since this is literally an Emulator I don't see why this shouldn't work in the Sega version of the game. The current RTA WR holder Sagaz_14 just found this using the tree removal glitch: https://www.twitch.tv/videos/174274070 For some reason if you didn't pick up the Magic Sword this glitch will turn the gold drop from the enemy into an item drop that is guaranteed to be the Magic Sword. Another new glitch that was just found by Sagaz_14: https://clips.twitch.tv/KindKawaiiElephantMoreCowbell Not sure what is going on but apparently the ghost moved Nigel into the ground while he was dead making him go off screen. Not sure if this is easily replicable or even useful but its something!
1 2
5 6