1 2
5 6
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
jlun2 wrote:
Just posting it here so hopefully more attention: Link to video I hope some gamebreaking glitch appears for this.
Now that I know the addresses for items/card combos, I rechecked the video. https://tasvideos.org/UserFiles/Info/638175722463215003 This was the input file for it, using BizHawk 1.11.5. In addition to giving me those glitched items, it also affected the card combo area in WRAM 0x6570 to 0x6576 This allowed me to get full enchantment before even beating the game: I mentioned 2 of the card combos weren't obtainable; I think they can be obtained now. Edit: Used BizHawk 2.8 Glitch item "The Boomslang is a venomous African" obtained: https://cdn.discordapp.com/attachments/698993369321308240/1099207356308525157/HP1_v4.bk2 All spells unlocked at lake: https://cdn.discordapp.com/attachments/698993369321308240/1099211279761145856/HP1_v4.bk2 Bot used:
memory.usememorydomain("System Bus")
local hp1_data = require 'hp1 data'
local Addresses = hp1_data.Addresses

local text
local read8
local read16
local read32
console.clear()
if vba then
	text = gui.text
	read8 = memory.readbyteunsigned
	read16 = memory.readwordunsigned 
	read32 = memory.readlongunsigned
else
	text = gui.pixelText
	memory.usememorydomain("System Bus")
	read8 = memory.read_u8
	read16 = memory.read_u16_le 
	read32 = memory.read_u32_le
end
local save_outer = 1
local save_inner = 2
function waitframe(frame)
	local game_state = read8(Addresses.game_state) % 128
	local story = read8(Addresses.story_flag, "WRAM")
	
	while (frame >= 0) do
		text(0, 10,'State: '.. game_state)	--Game state for debugging
		text(0, 17,'Story: '.. story)	--Game state for debugging
		emu.frameadvance()
		frame = frame-1
	end
end


function bot()
	local cond_outer = false
	local cond_inner = false
	local is_pause = false
	local changed = false
	local frame_start_inner = emu.framecount()
	local frame_dif_outer = 0	--difference between this frame and start frame
	local frame_dif_inner = 0	--difference between this frame and start frame
	local item_start = memory.hash_region(Addresses.item_start, Addresses.item_end - Addresses.item_start, "WRAM")
	local card_start = memory.hash_region(Addresses.card_start, Addresses.card_combo_end - Addresses.card_start, "WRAM")	--merge combos/cards
	local spell_start = memory.hash_region(Addresses.spells, 3)
	
	local item_now = ""
	local card_now = ""
	local spell_now = ""
	savestate.saveslot(save_inner)
	repeat 
		local frame_now_inner = emu.framecount()
		local game_state = read8(Addresses.game_state) % 128
		local story = read8(Addresses.story_flag,"WRAM")
		text(0, 10,'State: '.. game_state)	--Game state for debugging
		
		if (frame_dif_inner ~= (frame_now_inner - frame_start_inner)) then	--Check just in case
			savestate.saveslot(save_inner)
		end
			--1st menu, selecting Item
		-- joypad.set({Down=1})
		-- emu.frameadvance()
		joypad.set({A=1})
		emu.frameadvance()
		waitframe(10)
		item_now = memory.hash_region(Addresses.item_start, Addresses.item_end - Addresses.item_start, "WRAM")
		card_now = memory.hash_region(Addresses.card_start, Addresses.card_combo_end - Addresses.card_start, "WRAM")	--merge combos/cards
		spell_now = memory.hash_region(Addresses.spells, 3)
		frame_dif_inner = frame_dif_inner + 1
		game_state = read8(Addresses.game_state) % 128
		is_pause = (game_state ~=29 and game_state ~= 30) --and (story ~= 3)
		item_changed = item_now ~= item_start
		card_changed = card_now ~= card_start
		spell_changed = spell_now ~= spell_start
		if item_changed == true then
			console.log("ITEMS CHANGED")
			console.log(emu.framecount())
			-- changed = true
		end
		if card_changed == true then
			console.log("CARD CHANGED")
			changed = true
		end
		if spell_changed == true then
			console.log("SPELL CHANGED")
			changed = true
		end
		if changed == false then 
			savestate.loadslot(save_inner)
			emu.frameadvance()
		end
	until (frame_dif_inner > 250 or changed == true)

	-- client.pause()
	console.log("State:" .. read8(Addresses.game_state) % 128)
	console.log("Story:" .. read8(Addresses.story_flag,"WRAM"))
end

bot()
data:
local harry_potter_module = {}
harry_potter_module.Addresses = {
--WRAM, cant be found in System Bus outside bank swap
	yes = 0x607F,--item amount for "yes",
	item_start = 0x5FFA, --start, to 60FE
	item_end = 0x60FE, --start, to 60FE
	card_start = 0x650A,	--start, to 656E
	card_end = 0x656E,	--start, to 656E
	card_combo_start = 0x6570, --start, to 6576
	card_combo_end = 0x6576, --start, to 6576
	story_flag = 0x65D5,
	--System Bus
	monster = 
	{
		x = {0xC46A, 0xC50C, 0xC5AE},
		y = {0xC46D, 0xC50F, 0xC5B1},
		hp = {0xC4B8, 0xC55A, 0xC5FC}
	},
	deck_id = 0xCE03,	-- Which deck for names
	area_id = 0xCCEC,
	message_timer = 0xCD12,
	x = 0xCD30,
	y = 0xCD32,
	rng = 0xce04,
	boss_id = 0xCC05,
	spells = 0xCDFE,
	game_state = 0xFFD2,
	Start = 0xCAB8,
	-- Start = 0xC000,
	-- End_ = 0xC100
	End_ = 0xCB00
}
return harry_potter_module
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
https://cdn.discordapp.com/attachments/352025773537755137/1101475665359945808/HPSS_Card.tasproj I checked the timing for the lightning bug using default combos. Gulliver Pokeby's deck is the fastest so far. The following combos do not flicker the screen: Sickle Seek Snitch Streak The following combos causes flicker: Deflect Poison Immunity Summon Umbrella Conjure Snack Drone Tempest
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
jlun2 wrote:
I know a way to jump to almost any address in System Bus: https://cdn.discordapp.com/attachments/698993369321308240/1097261539280560158/HP1_v4.bk2 1. buy a chocolate frog 2. get to the upper left of the stage by pressing start as you enter a boss fight 3. move left until 0xCABC is a value where your payload is located 4. pause the game, use frog by Right + A to jump to 0xC970, nop slide to CABB, which jumps to wherever 0xCABC pointed to 5. Credits I guess? Haven't gotten anything interesting except not crash. Crashes almost all the time however. The input file uses BizHawk 2.8. I can't figure out where to jump to do anything interesting yet; stuff such as item, card amounts, etc are all located in WRAM, so I don't know where else to go. If anyone knows, please help.
To prevent myself from accidentally losing it: https://cdn.discordapp.com/attachments/280808167993245707/1155706332301774869/HP1_v7.bk2 Sanqui realized using the Chocolate Frog puts you to WRAM bank 6, which is where items are located. They came up with a payload that took 47k sickles worth of items to setup, which gradually got bought down to 8k. Rather than use Hogwarts dungeon, I realized I can leave battles using "yes" item, so I warped to the forbidden forest to get OoB, then executed the payload to credits warp. It beats the game in 36,122 frames, or 10:02.03. I need to check something a bit more before submitting. https://cdn.discordapp.com/attachments/280808167993245707/1156653184710889542/HP1_v7.bk2 I was trying to improve it, and managed to get a whole bunch of glitched items without crashing.
Skilled player (1738)
Joined: 9/17/2009
Posts: 4980
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Some discoveries: 1. It turns out that getting OoB from the troll in washroom doesn't mess with position address, so it can be used for ACE. This means RTA-wise, there's more items available for payload. 2. I investigated the stores. Weasley Twins Bargain stocks the following when you first arrive at Hogwarts: Superior Work Robe Superior Gloves Dragonclaw Gloves Superior Pointed Hat Lined Hat Fine Fettle Belt Stamina Belt Superior Boots Hardened Boots Copper Cauldron Brass Cauldron After one of the 5 classses post potions is done, it changes to Superior Work Robe Buckram Robe Dragonclaw Gloves Sorcerous Gloves Lined Hat High Hard Hat Stamina Belt Robust Belt Hardened Boots Brass Cauldron Silver Cauldron That means there's only a short opportunity to obtain Superior Gloves, Superior Pointed Hat, Fine Fettle Belt, Superior Boots. On the 2nd visit to Diagon Alley, Potage's Cauldrons stocks the following: Brass Cauldron Self-stirring Cauldron Madamn Malkin's stock the following: Leather Belt Plain Boots Superior Winter Cloak Nimble Gloves Superlative Hat Vigorous Belt Superlative Boots This makes it very difficult to stock them before you can't buy them again. I'm thinking duping money drops from blue turtle in 6th Floor Secret Hallway https://alpha.vgatlas.net/hp1/enemies/49 These drop 250-500 sickles per fight. 3. You can't sell Bastion Belts to stores. Wandwaving Gloves, Optimum Hat, Blizzard Cloak, Optimum Boots only appear as drop near the very end. 4. You can grind herbs by pausing right infront of respawn points for it. There's 16 herbs, so 16 bytes for payload. 5. 0E01 WRAM is recipies flag 6. 0DDF WRAM is minigames 7. House points are strange. It appears while there are certain points it awards all houses randomly, by the end, it is hardcoded so that either Ravenclaw would be ahead, or Hufflepuff. It doesn't seem possible for Slytherin to win. The shortest dialogue for any% no ACE would be to have Ravenclaw still be ahead after rewarded 170 points at the end.
1 2
5 6