Posts for SarahShinespark

SarahShinespark
She/They
Experienced Forum User
Location: USA
Joined: 1/28/2022
Posts: 4
Location: USA
If a game disassembly is ever done and the exact formulae are found, it would be nice to know what is needed to manipulate Preemptives, or if it really is just not possible most of the time.
I was going to say I found one on "TheAnsarya" github, but on closer inspection the vast majority is AI generated and of dubious quality. Although, the Data Crystal romhacking wikipage is conversely under-documented. I suppose you could reach out to someone like JCE3000GT. Guessing it wouldn't be too much trouble to find the RNG function, then search near the RNG roll at the start of battle and look for branching logic.
SarahShinespark
She/They
Experienced Forum User
Location: USA
Joined: 1/28/2022
Posts: 4
Location: USA
Congrats on the submission!
SarahShinespark
She/They
Experienced Forum User
Location: USA
Joined: 1/28/2022
Posts: 4
Location: USA
Update, the Greater Shop Glitch is doable in BizHawk on the Japanese version (Card Master: Rimusaria no Fuuin). In other words, it's possible to access a lot further into memory and give Rooks the Crystal Sword, or change the battle text speed from 10->1 frame per line. This is because the item list in Card Master is in two columns, so you can choose to scroll by 1 item (2 bytes) or 2 items (4 bytes). So you can skip over a single value that would freeze the game, like Rooks' max HP. The downside is that setting up the Shop Glitch in JP requires at least 13 items instead of 2; you start with 500 GP which could buy only 6 Medicines (75x6 = 450), which would involve buying multiple Herbs (a weaker healing item) to reach 13. Basically though, Shop Glitch starts by failing a trade on the 2nd slot (US) or 14th slot (JP) and scrolling up. After scrolling past the start of the item inventory ($13B9), you'll be in the card inventory ($13B7 Card slot 8, $13B5 Card slot 7, etc). Cards are two bytes, like Wind Card x1 is $0101, Water Card x1 is $0103, etc. The game is expecting a 1-byte item ID, but Arcana likes staying in 16-bit mode, so it reads $0101 as item 257 instead of item 1. So it's trying to get the 257th item description, the 257th item price. That's why you get weird glitched text and glitched prices. There are three things to keep in mind for the Shop Glitch. 1) The current chapter will affect which glitched prices you'll get, since the price list is offset by 32 bytes each time. (The pointer table for item prices is at SNES $03D49F.) There's a glitch with Chapter 1's price list, where you can sell an empty slot for 27270 GP. 2) The value you've selected will be treated as an item you're selling. (The game will read the 16-bit value, and count that many double bytes from the start of that chapter's item list, then divide that value in half for the sale price.) 3) The item you're buying is the value that gets written to that address. (Trading for a Return Ring will write the value $0001, trading for a Medicine will write $000C, etc.)
SarahShinespark
She/They
Experienced Forum User
Location: USA
Joined: 1/28/2022
Posts: 4
Location: USA
Howdy, I'm the one who was explaining the Shop Glitch on SRC. Seems that the wider memory access is hardware-specific, I suspect it's a Snes9x emulation bug; Iceplug dubbed that one Greater Shop Glitch GSG). The version that lets you sell your cards for cash is Lesser Shop Glitch (LSG). I could probably find a way to repeatedly sell card stack -> fill inventory with honey -> drink all the honey -> sell card stack, would be a good idea to have a faster final fight since each turn has a 60 frame pause afterwards. I've been documenting and disassembling the code for awhile now, publishing it on Data Crystal when I can; I've spelled out the hit determination formula and various stats. Recently learned a lot of the code was reused for other HAL games like Kirby Super Star, HyperZone and Earthbound, so I'm making more progress learning how different variables move around. Lmk if y'all have any questions I can help answer.