00:04 <DerpyBot> New post on Equestria Daily by Sethisto: Drawfriend - Equestria Girls / Anthro MLP Art Gallery #153 [ http://tinyurl.com/yx4whzkq ]
00:07 * PrincessRainbows sniffs the Ali horsey and scratches at
00:08 * Jackie pats PrincessRainbows
00:09 * PinkieShy offers PrincessRainbows some homemade garlic bread
00:15 * PrincessRainbows noms and yays
00:32 <PinkieShy> Pff.. me: ok google Set a 1 minute 30 second timer please.. Google Home: "Okay a 2 minute timer called 30 seconds.. starting now"
00:35 *** Joins: Reiko (sid98619@Pony-3j929p.highgate.irccloud.com)
00:36 * PrincessRainbows slow claps
00:52 * Ali facehooves
00:54 * PrincessRainbows licks Ali till she's dripping
00:55 * Ali drips all over PrincessRainbows
00:55 * PrincessRainbows kicks at her collar and barks
00:58 * Jackie puts the collar on PrincessRainbows
00:59 * PrincessRainbows licks Jackie too
01:00 <PinkieShy> Google assistant is very useful when it works like you want it to..
01:00 <PinkieShy> I've had it two years and i couldn't imagine without it..
01:01 * Jackie pats PrincessRainbows
01:01 * Ali thinks there better things
01:01 * Ali gives PinkieShy an egg timer set to 90 seconds
01:01 <PinkieShy> heh
01:02 <PrincessRainbows> I'd use it if I could speak well
01:02 <PinkieShy> My grandma when she was alive had an egg timer in the shape of an egg.
01:02 <PinkieShy> I miss her :(
01:02 * PrincessRainbows chews on Jackie's hooves
01:05 <Cepheid> Freedooooooom! Going home at last, after rigging together a hackjob that's held together by spit, willpower, and the backs of 37 demons.
01:05 * Schism flops. "Finally home. The weekend from Hell is almost over. And I get to go in for 9:30 tomorrow instead of 8:45."
01:06 <Schism> It's still going to be Cyber Monday.
01:06 <Jackie> Cepheid, i read hackjob as...
01:08 * Ali still tries to get Schism at a discount
01:09 <Schism> I'm afraid that Schisms are exempt from promotional codes.
01:09 <PrincessRainbows> They're free anyway
01:13 <Schism> Note to customers: please. For the love of all that is good. Read.
01:13 <Ali> Read? What's that?
01:13 <Ali> Schism, when I worked customer service
01:13 <Schism> It's what you do when you try and actually -chat in.-
01:13 <Ali> This one lady kept /INSISTING/ that the items she had were MORE EXPENSIVE than what she paid.
01:13 <PinkieShy> I have no grandmas alive anymore. I miss them both so deeply.
01:14 <Ali> I mean she wanted the HIGHER price it felt like
01:14 <PinkieShy> The lord only knows what i would give to see them one last time :3
01:14 <Schism> Ali: ...that's ... one of the more interesting customers.
01:14 <Schism> I've never seen a customer actually ask for a higher price out of 'principle'. It's always lower.
01:15 <Schism> "Thank you for bringing this to our attention. In return, we'll happily give you a discount on these items at this time."
01:20 <Cepheid> Hey. Hey schism.
01:20 <Cepheid> Did you know you need 5,000,000 EXP to go from level 1 to 99 in EO3?
01:21 <Cepheid> ... I figured out the last bit I needed. I can extract all the data files with their names.
01:21 <Cepheid> Also. Apparently Atlus toyed around with the idea of EXP charts for each class.
01:24 <Schism> 5 million, eh? That makes sense. Gotta have a nice round number.
01:25 <Schism> It takes 325,868,400 experience to go from level 1 to level 80 in FFXIV.
01:25 <Cepheid> Yeah. The charts store cumulative amounts. Not required amounts per level. Makes sense.
01:28 <Cepheid> The increments are... hard to describe, though.
01:28 <Cepheid> Starting at 129 EXP from level 2 to 3, each level adds another 28 EXP on top of that, then adds the result to the cumulative EXP required.
01:29 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Ping timeout: 121 seconds)
01:30 <Cepheid> Er, 229. Level 2 = 100, 3 = 329, etc. Anyways, level 4 is 257 required, for a total of 586, then 285, for a total of 871, and so on.
01:30 <Cepheid> But the exact number is not 28. It sometimes changes to different values.
01:30 <Schism> So, a rounding of... 28.2 or 27.8?
01:31 <Cepheid> Not sure.
01:31 <Cepheid> Ah, I'm still off. Here's the actual numbers. Level 2: 100, Level 3: 229(change of 129), Level 4: 386(Change of 157), level 5: 573(change of 187), and so on, and so on.
01:32 <Cepheid> Let me see if I can get an average. o3o
01:33 <Schism> Randomly, Cepheid: http://www.harkavagrant.com/index.php?id=250
01:35 <Cepheid> 28.7835.
01:35 <Cepheid> No rhyme or reason to the number chosen.
01:36 <Cepheid> Maximum change, 31 EXP, minimum 27.
01:36 <Schism> Hum. Dice roll, I guess.
01:37 <Cepheid> Yep.
01:37 <Cepheid> Actually, minimum is 26, I missed that.
01:37 <Cepheid> Still.
01:37 <Schism> I'd have normalized it a bit more towards the center, but at the same time, that would have been more obvious.
01:38 <Cepheid> Total EXP for level 70: 1817192. 80: 2680977. 90: 3782163. 99: 5000000
01:38 <Cepheid> Given a dragon gives, at most(Depends on the element), 215,500, that means..
01:38 <Schism> Let's call it 125 dragons and leave it at that.
01:39 <Cepheid> 9 dragons for level 70. 13 for 80. 18 for 90. 24 for 99.
01:39 <Cepheid> This assumes a solo kill.
01:39 <Schism> Oh, right.
01:40 <Cepheid> 116 with a full, five-member party.
01:41 * Cepheid extracts the monster data.
01:51 <Cepheid> Hum.
01:51 <Cepheid> Lot of blank data.
01:54 <Cepheid> Will say there's a lot more stats stored than is displayed.
01:58 <Cepheid> 25,600 bytes of monster data. Only 167 monsters.
02:00 <Cepheid> Annoyingly, all the monster names are, as far as I can tell, compressed. Indications of a simple compression algorithm.
02:02 <Schism> On the one hand, it'd be nice if enough scraps would give you the key, but even I know that's not how compression works.
02:04 <DerpyBot> New post on Equestria Daily by Calpain: Nightly Discussion #1996 [ http://tinyurl.com/vc3yzto ]
02:08 <PinkieShy> Do you guys think should be more ideal?
02:08 <PinkieShy> Need for speed hot pursuit on steam or Saints Row 4 (I have saints row 4 on xbox 360 already)
02:08 <PinkieShy> and i think I had need for speed on gamecube but haven't played that in years.
02:11 <Cepheid> Looks like each monster entry is 100 bytes. Officially this means the game can actually handle more monsters than listed.
02:22 <Cepheid> Interestingly, they're not sorted in the order they appear in the monster codex.
02:23 <Cepheid> First monster with stats in the file is the Claw Shrimp, number 5 in the codex.
02:23 <Cepheid> The Fanged Fish, number 1, shows up *AFTER* the Claw Shrimp.
02:23 <PinkieShy> Honestly though.. Need for speed will probably be nicer to have
02:23 <PinkieShy> and if the xbox malfunctions ever and can't play the game then steam it would be ideal i guess :3
02:25 <Cepheid> Also, Schism. Want to know what the secret was to linking file data with filenames?
02:26 <Schism> This is going to make me feel like an idiot, but sure.
02:26 <Cepheid> Trust me, it makes me feel much more of an idiot than it does you.
02:27 <Cepheid> The order the file names are loaded from the .ndx file, the "name index" as it were, is the order in which the files are stored in the archive.
02:28 <Cepheid> Thus, the first complete file name, 2d_etc_etc_whatever.tbl, correlates to the first file in the archive. And so on.
02:28 <Schism> So the goal is to create a search which determines a file's header, then search for each header in turn.
02:28 <Cepheid> Nah.
02:29 <Cepheid> The offsets of the individual files, that's what took the most work, but I got it figured out more or less 100%.
02:30 <Cepheid> Store all the offsets in a list, sort 'em. Then grab the list of filenames from the name index, in the *EXACT* order they appear in the file, and associate them with each offset in the order they appear.
02:32 <Cepheid> So if a file I'm looking for happens to be the 949th file in the name index, then I grab the 949th offset, and read from there.
02:32 <Cepheid> Stupid simple, and yet not obvious to me.
02:32 <Schism> I don't know. That seems like you're just learning a new filesystem.
02:33 <Cepheid> It's basically a filesystem within a filesystem, yeah.
02:34 <Cepheid> I don't know why Atlus did it.
02:34 <Cepheid> There's legitimately no need for it.
02:35 <Cepheid> And in fact, the way they implemented it MAKES NO LOGICAL SENSE.
02:36 <Cepheid> There's actually bytes I still haven't decoded. Far as I can tell, they're unique identifiers within a list, and only within that list. Said identifiers can, and will be duplicated in other lists.
02:41 <Cepheid> In any case, I'll figure the rest of this out tomorrow. I know how to extract it all, now. All I need to do is write the extraction tool. Should be like, 45 minutes of effort?
02:42 <Cepheid> I'll do it tomorrow, since right now, I need to sleep. Need to be up early.
02:49 <Cepheid> I plan to create a fully-featured editor with this information, then go up to Atlus and go "Hey, I decoded one of my favourite games that you made, and made this editor that allows people to mod it. Can I work on the team that makes the Etrian Odyssey series?"
02:58 <Cepheid> Given there are a lot of empty entries in the monster data table(nearly 100), I wonder if I can, without modification of the executable code, add new monsters.
03:04 <DerpyBot> New post on Equestria Daily by Makenshi: "Story of The Blanks" Music: Cynifree - Blank Slate [Midtempo] [ http://tinyurl.com/rwj6jxf ]
03:13 <Schism> Cepheid, how much work would it be to find /all/ the pointers in a list full of them?
03:17 <Cepheid> Depends on the data and the source.
03:18 <Cepheid> I would not want to search for pointers in the memory as the code is executing.
03:45 *** PrincessRainbows is now known as MaredoggieRainbows
04:06 <PinkieShy> welp werewolf is dead map soon.
04:06 <PinkieShy> i am using open beta and a few of my avatars are broken/invisible :(
04:06 <PinkieShy> and the world isn't showing anything right at all
04:10 <PinkieShy> Everything.. is broke in the open-beta :(
04:11 <MaredoggieRainbows> > expecting full function in a beta
04:11 <PinkieShy> Yes i know its a beta but still
04:11 <PinkieShy> They say this open-beta should be like an idea of what the game will have broken in the new version
04:12 <PinkieShy> Open betas before stuff worked fine in the old unity 2017.. But i guess going up a year to 2018 a ton changes and breaks lot of old textures and functions
04:25 * MaredoggieRainbows begs at Ali for a treat
04:26 * Ali gives MaredoggieRainbows treats
04:31 * PinkieShy hands Ali a wish bone
04:31 * MaredoggieRainbows noms and boops Ali with a chew toy
04:42 * MaredoggieRainbows noms on some hay too
04:50 *** Joins: Heartbreak (Heartbreak@Pony-gja4ce.mn.comcast.net)
04:50 * MaredoggieRainbows licks Heartbreak till she's dripping
04:51 <Heartbreak> No you didn't. You licked a drywall cutout that looked like me.
04:52 <Heartbreak> I do not accept being licked or hats being tipped at me.
04:56 * MaredoggieRainbows whimpers and chews on Heartbreak's hooves instead
04:56 * Ali hats on Heartbreak and bleps
04:57 <Heartbreak> Those are also not my hooves, but massive logs of caramel candies.
04:58 <Heartbreak> Ali: The only reason you get to be up there is because you are Ali...
05:01 * MaredoggieRainbows gives the Heartbreak a tennis ball covered in pony saliva, as a last attempt
05:02 <Heartbreak> ... Set it on the ground first...
05:02 <Heartbreak> Then I will kick the ball. Then you can fetch it.
05:03 <Heartbreak> Then I can kick the ball...
05:03 <Heartbreak> And then you can fetch it.
05:05 * MaredoggieRainbows drops it and barks
05:06 * Heartbreak kicks the ball away.
05:06 <Heartbreak> Gross.
05:07 * MaredoggieRainbows gallops into the distance after it
05:20 *** Quits: Crimson_Tail (zeta@batpones.are.for.snuggles) (Quit: Client restart)
05:20 *** Joins: Crimson_Tail (zeta@batpones.are.for.snuggles)
05:23 * MaredoggieRainbows glomps Heartbreak and boops her with the ball in her mouth
05:24 <Heartbreak> Gah! Drop the ball.
05:25 * MaredoggieRainbows whimpers and runs to her doggy bed
05:34 * MaredoggieRainbows looks at Heartbreak with teary eyes
05:35 <Heartbreak> ._.
05:35 <Heartbreak> Let me kick the ball again.
05:38 <Hajnal> Hello.
05:39 * MaredoggieRainbows whimpers more and waves
05:50 * MaredoggieRainbows drops the ball at Heartbreak's hooves and walks away
05:50 * Heartbreak kicks the ball far away!
05:58 * MaredoggieRainbows dissappears into the distance chasing it. Nini horses
06:06 *** Joins: Reia_Hope (Reia_Hope@TheCowPony)
06:22 *** Joins: ConfusionRift (ConfusionRi@Pony-kio.irn.56.193.IP)
06:22 *** ChanServ sets mode: +o ConfusionRift
06:22 <ConfusionRift> Hello everypony.
06:23 *** Quits: Golden (uid250033@Pony-360sli.charlton.irccloud.com) (Quit: Connection closed for inactivity)
06:25 * MaredoggieRainbows wakes up in a box labeled 'free pet bird-horse' and barks at ConfusionRift
06:29 * ConfusionRift grabs and pets MaredoggieRainbows. :P
06:30 * MaredoggieRainbows offers ConfusionRift the toy in her mouth and pants
06:34 *** Joins: Golden (uid250033@Pony-360sli.charlton.irccloud.com)
06:37 * ConfusionRift plays around with MaredoggieRainbows. :P
06:41 * MaredoggieRainbows boops the pone with her food bowl
06:42 * ConfusionRift fills it out real quick, and puts a treat on top. :P
06:43 * PinkieShy starts to take deep breaths rapidly in a unstable panic
06:44 <PinkieShy> Just saw somebody from my past trying to say something to me.. After many awful things have happened.. >_>
06:46 * MaredoggieRainbows noms then licks PinkieShy
06:47 <PinkieShy> I gotta do something to calm me down.. No need for my heart to be beating this rapidly either in panic..
06:48 <PinkieShy> vrchat will hopefully do that.. Its calm if i hang with the right ppl.
06:53 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
06:54 * Jackie pets MaredoggieRainbows
06:57 <ConfusionRift> ...excuse me? There's a second Beat Hazard?
06:59 * MaredoggieRainbows barks at Jackie and rolls over for belly rubs
06:59 * Jackie happily belly rubs
07:02 * MaredoggieRainbows yays and curls up under a pony to sleep
07:03 * Jackie pets
07:10 <PinkieShy> Okay.. calming down now.. But still..
07:11 <PinkieShy> Its awful when you come across ppl that did you very dirty in the past to the point.. errm..
07:29 *** Quits: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net) (Quit: Leaving)
07:38 *** Quits: cabbage (cabbage@Pony-8q0glj.dynamic.sonic.net) (Connection closed)
07:42 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Ping timeout: 121 seconds)
08:09 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
08:30 *** Quits: Reia_Hope (Reia_Hope@TheCowPony) (Connection closed)
08:41 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
08:41 *** Joins: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP)
08:43 *** Quits: Golden (uid250033@Pony-360sli.charlton.irccloud.com) (Quit: Connection closed for inactivity)
09:01 *** Joins: darkdoomer (kayanamasha@nowhere.eq)
09:01 * MaredoggieRainbows scratches at ConfusionRift
09:02 * ConfusionRift pets MaredoggieRainbows.
09:04 *** Quits: darkdoomer (kayanamasha@nowhere.eq) (Connection closed)
09:04 *** Joins: darkdoomer (kayanamasha@Pony-drmsa3.rev.numericable.fr)
09:04 * Ali sits on ConfusionRift
09:09 * ConfusionRift boops Ali. :P
09:09 * Ali squeaks and boops ConfusionRift back
09:12 * MaredoggieRainbows sniffs Ali too and licks
09:12 * Ali brushies MaredoggieRainbows
09:13 *** Quits: darkdoomer (kayanamasha@nowhere.eq) (Connection closed)
09:15 *** Joins: darkdoomer (kayanamasha@Pony-drmsa3.rev.numericable.fr)
09:20 <Finwe> Good forenoon, everypony.
09:20 <Finwe> Mlles Ali, MaredoggieRainbows and Sleeping_Nightmares; Messrs Cepheid, Schism and Heartbreak; Lt Cdr ConfusionRift, Capt Koopz.
09:20 * MaredoggieRainbows boops Finwe with her Ali squeaky toy
09:20 <Finwe> o7
09:21 * Sleeping_Nightmares sick floofy
09:21 * Sleeping_Nightmares lays on Finwe
09:21 <Heartbreak> Gah!
09:21 * Ali thinks Sleeping_Nightmares needs to go to the bat doctor cause she's sick so much.
09:21 <MaredoggieRainbows> Yeah...
09:22 <Heartbreak> Remember colts and fillies, don't drill your hooves unless you're willing to deal with the consequences.
09:22 * Sleeping_Nightmares mewls at Ali and uses as a blankie
09:22 <MaredoggieRainbows> I'm on immunosupressants and don't get sick that much
09:23 <Heartbreak> ...
09:23 <Heartbreak> You still shouldn't risk it.
09:23 * MaredoggieRainbows scratches at Heartbreak
09:23 <Heartbreak> Why you doing this?
09:24 * Finwe noms on Heartbreak's tail.
09:24 * Heartbreak thwaps Finwe with a rolled up newspaper.
09:24 <Heartbreak> Don't you start with me too!
09:25 *** Joins: danwellby (danwellby@The.lone.griffon)
09:25 * MaredoggieRainbows chews on the newspaper instead
09:26 <Heartbreak> ._.
09:26 * Finwe noms on Heartbreak's tail a bit more since resorting to the newspaper seems to have been rendered impossible.
09:26 <Heartbreak> Stop chewing on my newspaper.
09:26 * Heartbreak gets the squirtbottle.
09:27 <Heartbreak> Bad. Finwe. Bad. Stop Chewing that. Bad.
09:27 <Finwe> o3o
09:28 * Heartbreak squirts Finwe in the face.
09:29 * MaredoggieRainbows boops Heartbreak with the tennis ball in her mouth
09:29 <Heartbreak> Drop the ball. I'll kick it.
09:32 * Jackie2 pets Sleeping_Nightmares
09:32 <Koopz> RAdm. Finwe o7
09:33 * Sleeping_Nightmares mewls and curls up around Heartbreak
09:34 <Heartbreak> O.o
09:34 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
09:34 *** Quits: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
09:34 <Koopz> HB gets all the attention
09:34 * Jackie pets the sick filly
09:34 <Ali> He just doesn't like it
09:35 * Koopz hats on Heartbreak and rotates slowly
09:36 <Heartbreak> Why Do you Keep Doing this?!
09:37 * MaredoggieRainbows just keeps booping the silly mare
09:38 * Sleeping_Nightmares mewls at Jackie and kneads Heartbreak
09:39 * Heartbreak squirms away from all the attention and puts on her hoodie and pants with holes over the marks.
09:40 * Jackie wonders what kind of sick Sleeping_Nightmares
09:41 * MaredoggieRainbows offers the ball to Ali instead
09:43 * Sleeping_Nightmares melts
09:44 <Jackie> Poor thing has fever
10:05 * Jackie puts a cooler thing on Sleeping_Nightmares' forehead
10:09 * Sleeping_Nightmares yawnskrees and curls up and goes sleepies
10:15 *** Quits: Ali (Ali@Pony-cvibue.iplsin.sbcglobal.net) (Quit: Leaving)
10:20 <Jackie> aww
10:23 *** Joins: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP)
10:23 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
10:50 *** Joins: RazorSharpFang (RazorSharpF@Pony-cuflpv.tpgi.com.au)
11:04 <DerpyBot> New post on Equestria Daily by Calpain: Morning Discussion #1769 [ http://tinyurl.com/yx6vdngs ]
11:06 <Cepheid> Morning.
11:13 <RazorSharpFang> Good morning.
11:18 <ConfusionRift> Hey there.
11:35 *** Quits: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
11:43 <Cepheid> Hey. Hey Rifty. Rifty, guess what?
11:43 <ConfusionRift> What's up?
11:44 <Cepheid> I figured out the last detail I needed. I can link filenames with file data now.
11:44 <Cepheid> Also. You need 5,000,000 EXP to reach level 99.
11:46 <ConfusionRift> Ouchies.
11:48 <ConfusionRift> Then again, some games require a lot more... a whole lot more.
11:50 <Cepheid> Yep.
11:50 <Cepheid> That said it is a bit excessive given the game.
11:51 <Cepheid> The most EXP you can get is 215,500 EXP from a dragon.
11:51 <Cepheid> And it is divided amongst the party.
11:52 <Cepheid> Even with the Scylla trick, which takes about 1 minute to set up, it would take about 200 minutes to get to level 99 from level 1.
11:52 <Cepheid> Or a little over 3 hours.
11:53 <Cepheid> Also the scylla trick comes with some risk.
11:53 <Cepheid> That said..
11:54 <Cepheid> If I found a way to kill all 3 dragons and all 3 superbosses in rapid succession..
11:55 <Cepheid> I'd only need to kill all 6 bosses... 22 times. If I have that one EXP boosting skill active..
11:55 <Cepheid> 17 times.
11:57 <Cepheid> This is, mind you, from level 1. Retiring leaves me at level 30. At the moment I don't know how much EXP that cuts out. Also reminds me, I need to find the information for retirement bonuses. But first I need to make a proper extractor.
12:02 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
12:03 * Lumindia boops Jackie's snoot
12:04 <Lumindia> Cute Chat!
12:04 <DerpyBot> New post on Equestria Daily by Sethisto: Prince & Jyc - Nightmare Night [2019 Cover] (Metal) [ http://tinyurl.com/rjmw459 ]
12:04 * Jackie eeea
12:07 <Cepheid> Basically, at this point, it means I can modify the game, find debug information, monster and map info, etc.
12:08 <Cepheid> One bit I've learned is that the game supports up to 256 monster definitions. But only using 167.
12:09 <Schism> 168 is MissingNo.
12:09 * Lumindia snuggles Jackie LOTS
12:11 * Schism flops out of bed, and starts preparing for work.
12:12 <Lumindia> snae ling
12:12 * Jackie nuzzles Lumindia's cheek
12:12 <Lumindia> = w=
12:13 * Jackie purrs
12:21 <Cepheid> Basically, Schism.
12:21 <Cepheid> That said the data is sane in this case.
12:22 <Cepheid> The 168 unused entries are properly zeroed-out. Sort of. There is one bit in the 800 bits of data set
12:22 <Cepheid> My guess is the one bit determines the validity of the entry.
12:23 <Cepheid> As stated though, the data is not sequential. My guess is there is a table somewhere that decides the order of the monster entries. Unless the entries are like, sorted by some bit of data.
12:23 <Cepheid> Like level.
12:41 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Quit: qicr for android: faster and better)
12:45 <Cepheid> ConfusionRift, fun note. At some point, Atlus considered using different EXP growth charts. There are 12 identical copies in the EXP chart file. One for each class in the game.
12:45 <Cepheid> I wonder if it is functional.
12:46 <Cepheid> Only way to find out is to hope the game doesn't CRC the data, modify it, then emulate.
12:48 <Cepheid> Fortunately, EO3 is... Prior to the DSi era. So modifications should work on an actual DS or 3DS(assuming the bootloader app works.)
12:49 <Cepheid> DSi added an extended header for NDS games, which includes CRCs for the entire ROM.
12:50 <Cepheid> Regarding EO3, though, I don't see any sort of CRC in the game archive. Individual files, perhaps. Save files, too.
12:51 <Cepheid> Definitely the save files. But, with a bit of careful manipulation, I should be able to determine the algorithm. It can't be that complex in any case. It's 16 bits.
12:53 <Cepheid> It also can't be super complex because of the fact that it needs to be stored in a small amount of space.
12:55 <Cepheid> Can also try to figure it out via figuring out where the in the system memory map EEPROM is mapped, then look for code that addresses it. Especially the spot where the CRC would be.
12:57 <Cepheid> Hum. Research indicates it isn't mapped. Then I need to find the subroutines that handle accessing the EEPROM.
12:58 <Cepheid> Man.. 4MB of main memory. 64KB of work RAM. The only way this works is if the communication path between the ROM and the CPU is reasonably fast.
13:00 <Cepheid> Hum. ARM9 BIOS is loaded at 0xFFFF0000. Good to know. It'll help with disassembling the ARM9 code.
13:02 <Cepheid> Strangely, the ARM9 core appears to be bugged.
13:03 <Cepheid> Supposed to run at 66MHz, but due to wait states? Runs effectively at 8 to 16MHz. Only in certain cases does it hit 66MHz.
13:05 <ConfusionRift> Oh, sorry. Was getting food. As for the multiple exp charts, it's rather interesting. I would think they were different charts made as they balanced characters, but not so much if they're identical.
13:07 <Cepheid> Like I said, "toyed". They probably implemented it, but scrapped the idea at some point.
13:08 <ConfusionRift> Oh, hmmm.
13:11 <Cepheid> They probably didn't bother with removing the code. Easier to set all the data to the same than it is to remove the relevant code and rebuild.
13:11 <Cepheid> So it likely still functions. Only way to test is to modify the table for a class and look.
13:12 * Cepheid bugs Atlus themselves about the filesystem-within-a-filesystem thing. Is curious about the reasoning.
13:12 <Cepheid> I would assume one of two reasons.
13:12 <Cepheid> Or rather, 3 reasons.
13:13 <Schism> And now, to trek through the ice and snow. Cya folks.
13:13 <Cepheid> One, the NDS FAT has limited capacity. Two, the NDS filesystem is slow to access through the standard library. Three, opening three files is faster and easier than opening 7000+.
13:14 <Cepheid> That last one seems probable. There is a lot of overhead in opening a file.
13:14 <ConfusionRift> Laters, Schism. And be careful out there.
13:14 <Cepheid> ... o3o; something just occurred to me. I'll have to verify it when I get to school.
13:15 <Cepheid> Yep. Be careful. I hear Toronto got hit hard.
13:17 <Cepheid> But yeah, even on a PC, there is overhead in opening files. Bunch of kernel code to set up a file handle in memory and such. Tis why Window's File Copy and ZIP extraction is so gods damned sllw.
13:17 <Cepheid> So on the DS, it may be the same reason. Open 3 files, extract some information to help locate files, then just seek around as needed.
13:18 <Cepheid> Faster than opening thousands of files.
13:21 <Cepheid> Almost at school. Back soon.
13:24 <ConfusionRift> That would make sense. Just use a file for reference, and placeholder, and the library of files. Reference to assets via libraries, rather than going through every file and asset one by one. Despite how limited the DS is, linked assets would surely speed things up, not to mention it's in a cartridge, which further limits the space.
13:29 <ConfusionRift> It also uses this pseudo-3d rendering. Then again, one can get away with it with clever spriting.
13:34 <Cepheid> Actually the DS uses actual 3D.
13:34 <Cepheid> Models ad planar images on the screen.
13:35 <Cepheid> That said apparently the design of the DS is severely flawed. While definitely having more power than a GBA graphically...
13:35 <Cepheid> Processing-wise, it can be weaker than the GBA.
13:36 <ConfusionRift> Hmmm.
13:37 <ConfusionRift> Which is interesting. Some have pulled some interesting 3d sort of rendering on the GBA.
13:37 <Cepheid> Apparently it only runs at 66MHz when using the TCM and Cache. Anywhete else, it drops down to a much slower speed, as low as 8MHz.
13:38 <Cepheid> The 3D rendering on the DS is accelerated. That's why despite the lower power in some cases, it fares better than the GBA.
13:38 <Cepheid> Don't forget, anything can be accelerated by implementing it in hardware.
13:38 <ConfusionRift> 0_0;
13:39 <ConfusionRift> The GBA can run at 16.8MHz.
13:39 <Cepheid> Yep.
13:39 <Cepheid> But yeah, if you manage to keep your data in the cache or TCM, the ARM9 cpu runs at full speed.
13:40 <Cepheid> Otherwise, it drops to an effective bus speed of 8 to 16MHz. Sometimes as low as 1.4MHz for worst case scenarios.
13:40 <Cepheid> Which makes it slower than the ARM7 CPU in the GBA.
13:41 <Cepheid> And despite the dual-processor setup of the NDS, the ARM7 appears to be off limits to devs.
13:42 <Cepheid> So... Programming for the DS then is an arcane art.
13:48 <ConfusionRift> Shouldn't be checking on the S3 prototype while discussing this. Gonna give me a headache. :P Too curious about certain things.
13:49 <ConfusionRift> Programming for portable cartridge consoles have been one of those things that are almost gone. I can only think of Switch, which still does use carts.
13:50 <ConfusionRift> And there are a few out there who make games on the older platforms for the funsies.
13:51 <Cepheid> It does, but in that case, the carts are basically just customized SD cards at this point.
13:51 <Cepheid> Save files and such are on the internal RAM or SD card for the switch, rather than the cart themselves, so..
13:51 <Cepheid> They don't have EEPROM.
13:54 *** Quits: RazorSharpFang (RazorSharpF@Pony-cuflpv.tpgi.com.au) (Connection closed)
13:55 * Cepheid now needs to research the NDS FAT system a bit, to figure out how it all works.
13:55 * Cepheid wants to be able to extract and then pack back into the ROM directly.
13:55 <ConfusionRift> Thought about checking how the emulator messes with these files?
13:56 <Cepheid> Oh, I know the basic layout.
13:56 <Cepheid> http://dsibrew.org/wiki/DSi_Cartridge_Header
13:56 <Cepheid> There's a name table and FAT in the ROM itself.
13:56 <ConfusionRift> Aaah.
13:56 <Cepheid> I know where to find it. Just need to figure out how names are associated with the entries in the FAT.
13:56 <Cepheid> I can extract the files themselves myself. Or use GodMode9 on my 3DS.
13:57 <Cepheid> It's just, being able to go directly into the NDS ROM is better.
13:59 <Cepheid> Hum, now that I look at it.
13:59 <Cepheid> I suspect they didn't use the NDS FAT because it's of limited size.
14:00 <Cepheid> Right, first four bytes of FNT are the size of the data in 4-byte words, rounded, looks like, to the nearest 16 bytes.
14:01 <Cepheid> Next 4 bytes... number of entries.
14:01 <Cepheid> oh, no.
14:01 <Cepheid> Next 2 bytes.
14:02 <Cepheid> Next 2 bytes, unknown.
14:02 <Cepheid> Next 4 bytes, start of the first filename entry, not folder name, FILE.
14:03 <Cepheid> After that, bunch of data I can't discern the meaning of, then the directory entries, which..
14:03 <Cepheid> Huh.
14:04 <Cepheid> One byte, indicating, apparently, whether it's a file or directory, *AND* the length of the name.
14:04 <Cepheid> Looks like the upper 4 bits determine some sort of file type, while the lower 4 determine length of the name.
14:04 <Cepheid> Meaning names are limited to a maximum of 15 bytes.
14:08 <Cepheid> A zero-length name isn't possible. Given the appearance of how the names are laid out, and what I know of the game's structure, a byte of 0x00 for type/size indicates "stop."
14:08 <Cepheid> And that the next directory listing starts.
14:10 <Cepheid> A directory seems to be, 1 byte, 0xAB, where A is some sort of identifier, B is the length, and then followed by the actual name, then another byte, which seems to indicate the ID of the folder in the structure, then an unknown byte, then an unknown byte.
14:10 <Cepheid> The root directory is a special case, apparently.
14:11 <Cepheid> Oh. They use 00 as a terminator of parsing.
14:14 <Cepheid> Root, 0-sized name, no bytes for name, then 0 to indicate folder 0. Then F0. Next is 84, 4-byte name length, "Data", then 01, indicating folder 1. Then F0. Then 83, 3-byte name length, "Snd", then 02, indicating folder 2. Then F0, followed by 00, then comes the files. 0A, 10 bytes name, "Target.bin", 0A, 10-bytes name, "Target.idx", 0A, 10-bytes name, "Target.ndx", 00, then 0F, 15-byte name, "sound_data.sdat", then 00,
14:14 <Cepheid> then end.
14:16 <Cepheid> Target.bin's data is at... 0x28. sound_data.sdat is at... 0x48. And, of course, there are two four-byte pairs that match those offsets.
14:16 <Cepheid> Ah, starting to understand now.
14:17 <ConfusionRift> Hmmm. Wonder how they have been finding these old game prototypes. And it's not like they found full cartridges. They just find ROM chips with the data in them, which one particular prototype not even having a proper PCB for them. I guess they refitted them to a used PCB? Hmmm.
14:17 <Cepheid> Officially?
14:17 <Cepheid> Leaks.
14:18 <Cepheid> People hold onto cartridges they're not supposed to have.
14:18 <Cepheid> Or chips they're not supposed to have.
14:20 <Cepheid> I need another NDS file, one with more or less files, to get an idea as to how this format works. A single file is not sufficient.
14:20 <Cepheid> For example, the 2 bytes at 0x04, which I assumed were number of entries, could very well be "size of header."
14:20 <ConfusionRift> Maybe try with a smaller game? Just to see how it works.
14:21 <Cepheid> Because the header data is 6 4-byte words.
14:21 <Cepheid> Meanwhile, those 2 bytes at 0x06, which reads 3, is unknown.
14:21 <Cepheid> There's only two folder entries.
14:24 <Lumindia> Whoo! No work today!
14:24 * Lumindia tosses snowballs at everyone
14:24 * ConfusionRift gets his head knocked off by a snowball.
14:24 <ConfusionRift> Eeeeeh!
14:25 <Cepheid> Meanwhile, the FAT is slightly easier to parse.
14:26 <Cepheid> For example, I know for a fact that there's only 4 files, and that they have 4-byte offsets, and 4-byte sizes. So that means 4 * 8 = 32, and the actual FAT size is 80 bytes, so 48 bytes are control information.
14:27 <Cepheid> Also, I know the very first file in Target.bin starts with the five-byte sequence reading "FBIN!" in ASCII, so I can just look for it in the NDS file, get it's offset, then look for that offset in the FAT.
14:28 <Cepheid> And there it is.
14:33 <Cepheid> Hmm.
14:35 <Cepheid> Interestingly there's more files in this FAT than indicated in the FNT.
14:37 <Cepheid> Oh.
14:37 <Cepheid> It's the various binary files that are Nintendo-specific.
14:37 <Cepheid> The ARM9 binary, ARM7 binary, etc.
14:39 <Cepheid> FAT's easy to read. Just a straight set of 4 bytes offset, 4 bytes size.
14:40 <ConfusionRift> Blarg. Sleep time for me. Laters!
14:40 *** Quits: ConfusionRift (ConfusionRi@Pony-kio.irn.56.193.IP) (Quit: Recharging the batteries. Laters! *shutdown*)
14:40 <Cepheid> And I gotta run myself.
14:44 *** Joins: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP)
15:53 *** Quits: Dranae (Scootaloo@I.Will.Fly.Higher) (Ping timeout: 121 seconds)
15:59 *** Joins: FruitNibbler (Eogan@Pony-iqlfi7.dip0.t-ipconnect.de)
16:00 *** Quits: Fn (Eogan@Pony-kqae1e.dip0.t-ipconnect.de) (Ping timeout: 121 seconds)
16:36 * Sleeping_Nightmares uses LibrarianofHope as a nest
16:38 <Cepheid> Presentation is done. Can now waste time working on projects of my own.
16:38 <Cepheid> But first, seeing a doctor at the school about my cough.
16:54 * LibrarianofHope dances chunky
17:04 <DerpyBot> New post on Equestria Daily by Sethisto: Comics: Apple Bloom / Storm's Lullaby #56 / AQM #30 / AoS 4.28 / Dazzle: Excitement [ http://tinyurl.com/s57a6vv ]
17:15 * MaredoggieRainbows chews on LibrarianofHope
17:18 *** Joins: Bubbles (EvaSh@Pony-1t0s0g.cable.virginm.net)
17:37 * Sleeping_Nightmares is cold floofy
18:04 <DerpyBot> New post on Equestria Daily by Sethisto: Fanfiction: What They Deserve [ http://tinyurl.com/sdhb5eu ]
18:09 *** Sleeping_Nightmares is now known as Filly_Nightmares
18:19 *** Joins: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de)
18:37 <Cepheid> Time to go home
19:26 *** Quits: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long) (Quit: sparks only last so long)
19:34 <DerpyBot> New post on Equestria Daily by Sethisto: Amazon Pops Pony Stuff Up For Cyber Monday [ http://tinyurl.com/rmrmubb ]
19:37 *** Quits: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de) (Quit: Leaving.)
19:41 *** Joins: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de)
19:53 <Cepheid> Well that was... a first.
19:53 <Cepheid> I lost control of my patience for once
19:54 * MaredoggieRainbows sniffs around for sugar cubes
19:54 <Cepheid> Look, I know OC Transpo isn't exactly reliable, but... for the love of the gods, don't sit on a bus, and speak in a loud and clear voice, and voice a constant, unending stream of complaining about the driver, about OC Transpo, and the like.
19:54 <Cepheid> Oh my GODS. I put up with it for 15 minutes straight, then, finally I had enough.
19:55 <Cepheid> "Are you done *****ing?" "... No" "Because I'm getting sick and tired of your constant complaining. Please, STOP."
19:55 <Cepheid> "..." Not a peep out of them after that point.
20:10 *** Quits: Chaosweaver (Chaos@Evil.Lives.Here) (Quit: ZNC 1.7.4+deb7 - https://znc.in)
20:17 *** Joins: Ali (Ali@Pony-pjnm04.4nua.5fca.1702.2600.IP)
20:17 *** ChanServ sets mode: +qo Ali Ali
20:17 *** Joins: Chaosweaver (Chaos@Pony-h3g8te.res.rr.com)
20:18 * LibrarianofHope glomps ali with maximun glomp
20:18 * Ali squeaks and splats
20:27 * MaredoggieRainbows boops Ali with the tennis ball she's chewing on
20:27 * Ali magic's the ball and tosses it for MaredoggieRainbows
20:30 * MaredoggieRainbows gallops after it. Is good pet pony
20:31 <Cepheid> Interesting.
20:31 <Cepheid> The name index contains 7646 file entries. The file index though only contains offsets for... 7640 files.
20:40 <Cepheid> I think it might be a bug in their file formats.
20:41 <Cepheid> Because if I remove all the files without an extension in the name index, the count of files comes to... 7640.
20:49 <Cepheid> On top of that, I'm missing 3998 bytes from the archive file.
20:57 * MaredoggieRainbows licks Ali. How is the Ali today?
21:01 <Cepheid> There's the missing 3998 bytes. Hum. How interesting.
21:01 *** Joins: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net)
21:12 * MaredoggieRainbows also scratches at PinkieShy
21:14 <DerpyBot> New post on Equestria Daily by Sethisto: Pony Life "Potion Princess" Celestia and Luna Now Listed on Amazon [ http://tinyurl.com/vmdqr5q ]
21:23 <Cepheid> Two theories: Atlus removed the debug files at some point, and never updated the name list, which creates problems... Oooooorrr... The missing files are part of the program ROM.
21:29 *** Quits: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de) (Connection closed)
21:47 <LibrarianofHope> im tireeeed
21:48 <LibrarianofHope> my schedule is too monotous at time
21:49 <Hajnal> It be that way sometimes.
21:50 <LibrarianofHope> i love my opportunties and im damn gratefull, its just a matter of being stubborned and disciplined
21:50 <LibrarianofHope> it will be worth it
21:51 * MaredoggieRainbows yawns
21:51 <MaredoggieRainbows> Slowish day
21:51 <LibrarianofHope> https://www.instagram.com/p/B5lDH52nq2L/?utm_source=ig_web_button_share_sheet
21:51 <LibrarianofHope> i made that
21:51 <LibrarianofHope> one of my best owo
21:59 <Cepheid> ... And text isn't compressed.
21:59 <Cepheid> It's Shift JIS text.
22:04 <DerpyBot> New post on Equestria Daily by Sethisto: Drawfriend Stuff (Pony Art Gallery) #3178 [ http://tinyurl.com/tywk6bj ]
22:07 *** Quits: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
22:08 <Cepheid> There is still debug info in the archive. I found the debug parties.
22:10 *** Joins: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP)
22:11 *** Joins: Golden (uid250033@Pony-360sli.charlton.irccloud.com)
22:11 <Cepheid> Appears to be MULTIPLE parties.
22:11 <Cepheid> How many, I dunno.
22:12 <Cepheid> Oh, it's right here. 32 parties.
22:13 <Cepheid> Looks like... 32 parties of 12 characters each.
22:14 <Cepheid> Looks like the names of them are generic, too.
22:14 <Cepheid> "Princess", "Prince", etc.
22:14 <Cepheid> In Japanese.
22:14 * MaredoggieRainbows looks through LibrarianofHope for pictures
22:15 <Cepheid> Oh, not entirely.
22:15 <Cepheid> "Faran"
22:15 * LibrarianofHope is a book of cookies now
22:16 <Cepheid> ... Oh.
22:16 <Cepheid> Phalanx.
22:16 <Cepheid> The name for the protector class in Japanese.
22:18 <Cepheid> ... Oh, right, names are limited in length. There's no need for specifying a number of characters;
22:19 <Cepheid> Now my question.
22:19 <Cepheid> How do I get access to this?
22:19 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
22:20 * MaredoggieRainbows yays and licks the pictures
22:20 * Jackie pets Filly_Nightmares
22:21 <Cepheid> ...
22:22 <Cepheid> "A fearsome howl pierces the air as the black shadow comes forth!"
22:22 <Cepheid> Apparently this is an opening battle message.
22:22 <Cepheid> "Your party is powerless to act!"
22:23 <Cepheid> "The indescribable god has awakened!"
22:23 <Cepheid> "The boundary to another dimension is coming undone..."
22:23 <Cepheid> "Tentacles came out of <monster>'s wound!"
22:27 * Filly_Nightmares mewls
22:28 <Cepheid> Hum. Looks like the true final boss has a quest associated with it.
22:31 <Cepheid> ... There's 3 entries for the Abyssal God.
22:41 * Lumindia lobs a snowball at Jackie
22:41 * Jackie nuzzles snowball
22:41 * LibrarianofHope throws ali at jackie
22:41 <LibrarianofHope> cute cannon ahh!
22:42 <Lumindia> o wo
22:42 * Lumindia intercepts the artillery, catches Ali
22:43 * LibrarianofHope continues barrage of puppies
22:44 <LibrarianofHope> gently trhown of course, more like swayed in a a breeze
22:44 <LibrarianofHope> puppies will continue until moral improves
22:44 * Jackie hugs Ali
22:45 <LibrarianofHope> its mod aprecciation day, everyone hug ali!
22:45 * LibrarianofHope hugs ali
23:01 *** Joins: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP)
23:01 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:07 * MaredoggieRainbows hugs Ali too and licks
23:10 <PinkieShy> I wish they'd remake goof troop
23:10 <PinkieShy> or give goofy a new show XD
23:11 *** Quits: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:11 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
23:23 * Filly_Nightmares curls up on LibrarianofHope
23:24 * Filly_Nightmares shivers
23:29 * PinkieShy hugs Filly_Nightmares
23:30 * Filly_Nightmares snugglies into PinkieShy warms
23:36 * Jackie picks up Filly_Nightmares
23:37 * LibrarianofHope applies hot coco to the eeeeeee
23:38 * Filly_Nightmares mewls and shiver
23:39 * Jackie cuddles Filly_Nightmares
23:43 *** Joins: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP)
23:43 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:48 *** Quits: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:48 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
23:48 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:48 *** Joins: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP)
23:51 *** Joins: Jackie (Jackie@Pony-vug.0ji.9.61.IP)
23:51 *** Quits: Jackie2 (Jackie@Pony-vug.0ji.9.61.IP) (Connection closed)
23:54 <LibrarianofHope> jackie
23:54 <LibrarianofHope> you seem to have a coonection issue
23:54 <LibrarianofHope> internet most be spotty
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!