00:00 <Jackie> It's surprising that Fortnite is still a thing
00:03 <LibrarianofHope> lots of kids love it
00:03 <LibrarianofHope> minecraft made a great return
00:03 <PinkieShy> Ha..
00:03 <PinkieShy> It almost has 1 million dislikes already
00:04 <DerpyBot> New post on Equestria Daily by Sethisto: Drawfriend - Equestria Girls / Anthro MLP Art Gallery #154 [ http://tinyurl.com/u85bpfo ]
00:04 <princessLuna> Fortnite never stopped being a thing :p
00:05 <princessLuna> The game is literally still one of the most played in many places, and makes enough cash to carry itself on.
00:08 *** Joins: Ali (Ali@Pony-cvibue.iplsin.sbcglobal.net)
00:08 *** ChanServ sets mode: +qo Ali Ali
00:09 * Ali looks at history and eeews at Fortnite
00:09 <princessLuna> X3
00:09 *** princessLuna is now known as SunsetShimmer
00:10 <Ali> Oh NOW you come back baconbutt
00:10 <SunsetShimmer> X3 Harddrive and fan failure on laptop
00:10 <Ali> For over 30 days missie? For someone with a phone you could've said something :P
00:11 <SunsetShimmer> X3 eh, I'm a bad pone and I accept this
00:12 * Ali sits on SunsetShimmer and puffycheeks
00:13 <SunsetShimmer> *Fluttereyes apologetically*
00:14 * Ali sends a horde of rippers to nom on SunsetShimmer's hooves.
00:14 <SunsetShimmer> Oooh noooo x3
00:15 *** Quits: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net) (Ping timeout: 121 seconds)
00:18 <LibrarianofHope> can i have the open position?
00:18 <LibrarianofHope> cause yay
00:18 * Ali sends the same horde of roppers after LibrarianofHope of asking for a mod position
00:19 * LibrarianofHope sacrfices sunset to the dark gods
00:19 * LibrarianofHope gets a cookie
00:20 <SunsetShimmer> XD I dont know if theres really a need to think theres a demand for more mods anyway, its quiet these days as is
00:20 <SunsetShimmer> Also you just shouldnt ask x3
00:20 * Ali still puffycheeks at SunsetShimmer
00:20 <Jackie> Most of the mods are idle
00:20 <SunsetShimmer> Idle but present :p
00:21 <SunsetShimmer> Names summon
00:21 <LibrarianofHope> ali is cute
00:21 <Jackie> poseyshy is a statue lol
00:21 <LibrarianofHope> wait for it
00:21 * SunsetShimmer Boops ali
00:21 <Jackie> at least 2 are unknown
00:21 * Ali bonks LibrarianofHope
00:21 <LibrarianofHope> yay
00:22 <Jackie> as if they are still active
00:22 <SunsetShimmer> Chill, jackie. X3
00:24 <LibrarianofHope> its basically ali at the moment
00:24 <Ali> Pretty much...
00:24 <LibrarianofHope> and we havent had much need of mods in months
00:26 <SunsetShimmer> Place is fine as is for now :p until/unless Ali decides otherwise...like suddenly everything goes nuts
00:26 <Ali> Like everyone mass exodus's T.T
00:27 <LibrarianofHope> i dotn actually want to be mod, its just funny to ask
00:27 <SunsetShimmer> X3
00:27 <LibrarianofHope> seems like much work
00:27 <SunsetShimmer> It wasnt the last couple years honestly
00:28 <SunsetShimmer> At least not in here :p
00:28 * Cepheid psyducks as he realizes something.
00:28 <SunsetShimmer> You're quackers?
00:28 *** Quits: Jackie (Jackie@Pony-vug.0ji.9.61.IP) (Ping timeout: 121 seconds)
00:28 <Cepheid> No.
00:29 <Cepheid> This file format I'm parsing has an inconsistency.
00:29 <Cepheid> Though, on the other hand..
00:29 <Cepheid> That inconsistency allows me to ignore some data.
00:30 <Cepheid> There's a file, I call it an index file. At the top of it is an index table with 2048 entries.
00:30 <LibrarianofHope> wut?
00:31 <Cepheid> Each of these entries is an offset-size pair. The offset points to the start of a list further inside the index file.
00:31 <LibrarianofHope> got a duck?
00:31 <Cepheid> However, some offsets are, what I call a "direct offset", an offset into the large archive data file I'm poking. These are identified by a certain trait.
00:31 <Cepheid> However, these direct offset entries are just offset and size. Meanwhile, in the lists further in the index file?
00:32 <Cepheid> They're offset-size-unknown byte triplets.
00:32 <Cepheid> That is, there's unknown data following each offset-size in the lists.
00:33 <Cepheid> I *KNOW* what Atlus is doing here, to a degree, but I can't figure out the exact data structure. Fortunately, I don't need to.
00:35 * Ali still sits on SunsetShimmer and pouts
00:35 <SunsetShimmer> Why the pout? X3
00:37 <Ali> Cause you poofed *cries*
00:37 <SunsetShimmer> I'm soweeh x3 I suuuuck
00:38 <Schism> The best kind of entertainment. REALITY!
00:38 * Schism radios at Cepheid.
00:39 <Schism> It's hard not to like the Radio Demon, despite yourself.
00:41 <SunsetShimmer> Hazbin hotel feels too amateur video stylewise for me x3;
00:41 <SunsetShimmer> Cant really appreciate it
00:41 <Schism> There's SOME really good art there, though.
00:41 <Schism> It reminds me in a real sense of the early Cartoon Network stuff.
00:41 <Lumindia_> ShimmyShammy!
00:42 * Lumindia_ pounces the SunetShimmer, snuggles viciously
00:42 <SunsetShimmer> Eh, lol - not everyones cup of java
00:42 <SunsetShimmer> *Snuggles Lumin!*
00:42 <Lumindia_> x3
00:42 * Lumindia_ brushy brushy
00:43 * Schism screes at SunsetShimmer.
00:43 * SunsetShimmer Fredbears at schism
00:43 <Schism> But... that's a SKREEEE. This is more a cute little 'scree!'.
00:46 * LibrarianofHope captures demonic animatronic for study
00:46 <Schism> https://twitter.com/BemusedBehemoth/status/1151072042541899781
00:48 <Schism> BLU60 is coming, Lumin.
00:48 <Schism> Including BLU-only dungeons. o3o
00:49 <Schism> Rather, BLU-only light and full parties.
00:49 <LibrarianofHope> screeeee
00:55 * Ali runs at SunsetShimmer and then poofs
00:55 * SunsetShimmer ruffles Alimane ;3
00:56 * Schism casually prevents Ali from using any instants on his turn.
00:56 * Ali is nowhere to be found
00:56 * Ali bonks Schism with Teferi
00:57 <Schism> 1WU is so completely broken for that card.
00:58 <SunsetShimmer> X3
00:58 <Ali> Shutting down all instants but your own is stupid beyond anything
00:58 <Ali> And it having a bounce effect that doesn't kill itself as well
00:59 <Schism> And then letting yourself cast all sorceries as if they were instants as a +1 effect.
01:00 <Ali> Yep, nothing says screw you like a board wipe on your oppenent's turn
01:00 *** Quits: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
01:04 <DerpyBot> New post on Equestria Daily by The Illustrious Q: My Little Pony: Live–2020 Stage Show Postponed [ http://tinyurl.com/r28xjwu ]
01:22 <PrincessRainbows> I see Ali and the deserter have reunited
01:22 <SunsetShimmer> X3 It wasnt my faaault
01:23 * Ali boops SunsetShimmer, she didn't return for over THIRTY DAYS T.T *cries eyes out*
01:24 <SunsetShimmer> I mean, thats true too of course :p That may have been a bad call, lol
01:25 <Schism> Note: The No.2 type B set includes butt implants.
01:28 <PrincessRainbows> Still in denial
01:29 * PrincessRainbows brushies the Ali
01:29 <SunsetShimmer> I literally admitted it :p
01:29 <SunsetShimmer> How is that denial? X3
01:29 * Ali cries more!
01:30 * SunsetShimmer hi
01:30 <SunsetShimmer> *hides
01:49 <Cepheid> ...
01:49 <Cepheid> Aaaaaand I got my decompression tool.
01:49 *** Quits: Dranae (Scootaloo@I.Will.Fly.Higher) (Ping timeout: 121 seconds)
01:53 *** Quits: danwellby (danwellby@The.lone.griffon) (Connection closed)
01:53 * Ali hunts for SunsetShimmer to boop an dsit on and puffycheek at more.
01:55 * SunsetShimmer is sat on and pouted at x3
01:57 * Ali removes SunsetShimmer's emoticons
01:57 * SunsetShimmer is a sorry maaaare!
02:00 <Ali> It can't be helped that your PC broke but you could've said sommmmmething
02:01 <SunsetShimmer> X3 I knooow and I procrastinated to the point of fooorgetting
02:01 * Ali flails at SunsetShimmer
02:02 * SunsetShimmer flails harder
02:04 <DerpyBot> New post on Equestria Daily by Calpain: Nightly Discussion #2000 [ http://tinyurl.com/w8xe9f8 ]
02:06 *** Joins: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net)
02:08 <Cepheid> ... Odd.
02:09 <Cepheid> ... Oh, right.
02:09 <Cepheid> I forgot that the file is padded.
02:10 * Ali wraps the files in bubblewrap just to make sure
02:10 <PinkieShy> Power Surge happened here I'm guessing earlier..
02:10 <PinkieShy> Power for everyone out here was flickering on and off rapidly
02:10 <PinkieShy> I was on PC at the time and nothing is damaged from looks of it
02:11 <Ali> I blame SunsetShimmer for her prolonged disappearence!
02:11 * Ali will never let baconbutt live this down :P
02:13 <SunsetShimmer> X3 Yes, yes
02:28 <Cepheid> ... It only just occurrred to me now that the ".cmp" extension might mean "compressed"
02:29 <Cepheid> Especially since every single texture has an associated .cmp file.
02:32 <Cepheid> Yep. Definitely compression.
02:35 * PrincessRainbows shields Ali from the bacon maned defector
02:44 <SunsetShimmer> D;
02:48 *** Joins: cabbage (cabbage@Pony-8q0glj.dynamic.sonic.net)
02:54 * PrincessRainbows noms on the traitor's mane
02:54 * SunsetShimmer wargls
03:06 <Cepheid> Oh gods, I need to study LZ77.
03:09 <Schism> I'm sorry. Which L277?
03:09 <Schism> *nods head, has headset try to break desktop*
03:12 <Schism> Hey, Ali? May you please give me your Steam ID? Just out of curiosity.
03:12 * Ali headtilts to Schism, is curious
03:12 <Schism> Well, we might as well be friends there too.
03:13 <Schism> I'll give you my own in turn.
03:23 <Schism> Okay. I need to sleep before something goes very wrong in the universe.
03:24 <Schism> I don't know how, I don't know where, but something will.
03:26 <Cepheid> LZ77, that's a Z, zed.
03:27 <Cepheid> https://www.akkit.org/info/gbatek.htm This thing... this page, has been a godsend for me.
03:29 <Cepheid> Hmm.
03:30 <Cepheid> What... are these files?
03:32 <Cepheid> There are six files, that are specified by what is called an overlay file. These six files are unnamed, and stored in the NDS rom file itself.
03:36 <Cepheid> ...
03:36 <Cepheid> These six files contain game data.
03:39 <Cepheid> ...
03:39 <Cepheid> Atlus, you sons of a-
03:40 <Ali> Congradulations, you found the hidden files
03:41 <Ali> They're useless
03:42 * Ali sputters about on SunsetShimmer with four hours of sleep.
03:42 <Cepheid> More they're encoded, and I don't know how to decode them. But I assume they use the same basic approach as the ARM9 loader.
03:43 <PrincessRainbows> why is that one still a mod lol
03:44 <SunsetShimmer> Wut?
03:45 <PrincessRainbows> my client must be confused
03:45 <Cepheid> Oh, hey, look. Some plaintext.
03:48 <Cepheid> ... Yeah, these six files are something special.
03:49 <Cepheid> They're outside of the range of the ARM9 code binary, so the bootloader would never reach them.
03:50 <Cepheid> Which either means that these are poked by the decoded ARM9 code, or they're part of something else.
03:53 <PrincessRainbows> for a while I thought you had emigrated to an inferior protocol
04:14 *** Quits: Ali (Ali@Pony-cvibue.iplsin.sbcglobal.net) (Quit: Leaving)
04:15 <PrincessRainbows> nuuu!
04:24 <SunsetShimmer> Imma go bed, nini x3
04:24 *** Quits: SunsetShimmer (androirc@Pony-hvare3.threembb.co.uk) (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
04:41 <PrincessRainbows> aside from that one today has been uneventful on here
04:56 * PinkieShy hugs PrincessRainbows and offers her some ice cream cone with 3 scoops of birthday cake flavor ice cream
04:57 <PrincessRainbows> Yay!
05:31 * Cepheid flops off to bed.
06:36 *** Joins: FruitNibbler (Eogan@Pony-na55qc.dip0.t-ipconnect.de)
07:19 *** Joins: Ali (Ali@Pony-ffil44.4nua.5fca.1702.2600.IP)
07:19 *** ChanServ sets mode: +qo Ali Ali
07:19 *** Quits: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net) (Quit: Leaving)
07:29 *** Quits: cabbage (cabbage@Pony-8q0glj.dynamic.sonic.net) (Connection closed)
07:43 * PrincessRainbows boops Ali with her tennis ball
07:43 * Ali boops PrincessRainbows with her hoof
07:45 * PrincessRainbows whimpers
07:45 * Ali snickers and brushies PrincessRainbows
07:46 <PrincessRainbows> Yay!
07:49 *** Joins: ConfusionRift (ConfusionRi@Pony-vpn.irn.56.193.IP)
07:49 *** ChanServ sets mode: +o ConfusionRift
07:49 <ConfusionRift> Hello everypony.
07:49 * Ali flops over ConfusionRift
07:49 * ConfusionRift patpats Ali.
07:51 * PrincessRainbows licks ConfusionRift
07:53 * ConfusionRift pets PrincessRainbows. :P
07:53 * PrincessRainbows offers the tennis ball she's chewing on
07:56 * ConfusionRift plays around with PrincessRainbows, by playing catch. :P
07:57 * PrincessRainbows is good pony
08:05 *** Quits: Moongoodgirl (moonbolt@sugar-belle.blackl.net) (Ping timeout: 121 seconds)
08:24 *** Joins: Moongoodgirl (moonbolt@sugar-belle.blackl.net)
09:28 *** Joins: Surreal_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone)
10:21 *** Joins: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long)
10:38 *** Joins: Changeling_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone)
10:39 *** Quits: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long) (Quit: Switching networks...)
10:40 *** Joins: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long)
10:41 *** Quits: Surreal_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone) (Ping timeout: 121 seconds)
10:45 *** Quits: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long) (Ping timeout: 121 seconds)
10:45 *** Joins: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long)
10:59 *** Quits: Ali (Ali@Pony-ffil44.4nua.5fca.1702.2600.IP) (Quit: Leaving)
11:00 *** Joins: Surreal_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone)
11:02 *** Quits: Changeling_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone) (Ping timeout: 121 seconds)
11:04 <DerpyBot> New post on Equestria Daily by Calpain: Morning Discussion #1772 [ http://tinyurl.com/vw2bbp6 ]
11:04 *** Joins: Changeling_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone)
11:07 *** Quits: Surreal_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone) (Ping timeout: 121 seconds)
11:08 *** Quits: Changeling_Nightmares (Surreal@Cutest.Floofy.Changeling.Batpone) (Quit: The only things I need are books, friends and IRC. And books.)
11:12 *** Quits: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long) (Connection closed)
11:17 *** Joins: Cyan_Spark (Cyan_Spark@sparks.only.last.so.long)
11:39 *** Joins: danwellby (danwellby@The.lone.griffon)
12:04 <DerpyBot> New post on Equestria Daily by Sethisto: One Second of Rainbow Dash from Every Episode of MLP [ http://tinyurl.com/wp4qyl9 ]
12:44 *** Quits: ConfusionRift (ConfusionRi@Pony-vpn.irn.56.193.IP) (Quit: Recharging the batteries. Laters! *shutdown*)
12:59 *** Joins: Dranae (Scootaloo@I.Will.Fly.Higher)
13:07 *** Joins: matttheshadowman_ (matthewhowa@the.shadowy.corners)
13:07 *** Quits: matttheshadowman (matthewhowa@the.shadowy.corners) (Ping timeout: 121 seconds)
13:07 *** matttheshadowman_ is now known as matttheshadowman
13:54 *** Joins: ADragonHoarding (Mibbit@Pony-krk.qod.41.69.IP)
14:42 * Cepheid flops in.
14:42 * Cepheid analyzes.
14:53 *** Joins: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP)
14:56 <Cepheid> Decompilers are nice, but sometimes I wonder about them.
14:57 <Cepheid> "while ((0 < iVar1 && (((uint)(byte)param_1[iVar1 - 1] ^ 0x20) - 0xA1 < 0x3C))) { //... }"
14:57 <Cepheid> This is incomprehensible.
15:02 <Cepheid> Oh, that's why it's incomprehensible. I forgot my truth tables.
15:21 <Schism> Important, those, if you want to find out the truth.
15:22 <Schism> Reminds me of the enemy of the Antimemetics Division. Not intelligible speech, but -just close- enough that it gets you to think about what it means.
15:25 <Cepheid> Heh.
15:26 <Cepheid> In any case, I seem to have found what looks like... a memcpy function/
15:26 <Cepheid> Or at least, a function that does some copying based on input provided.
15:26 <Schism> Oh, I just noticed that Alistair's knock in Hazbin is a really, really slowed-down "Shave and a Haircut".
15:26 <Cepheid> Heh.
15:27 <Cepheid> The reason I'm interested in this function is it's related to how the game loads the index file. I want to see what those unusual bytes are. >.>
15:29 <Cepheid> I mean yeah, I already extracted the files, but I want to see how the data is stored, to see if perhaps those missing files are... handled specially somewhere based on some sort of flags.
15:29 <Cepheid> That said, I am indirectly learning ARM assembly at a bit level because of this.
15:30 * Cepheid needs to write his own tool to expand instructions out into a binary representation, then explain the each individual fields, to save time.
15:33 <Cepheid> ... Why the HELL is this code ANDing the Link Register?
15:34 <Cepheid> ... No. It's even worse.
15:34 <Cepheid> It's OVERWRITING the Link Register.
15:40 <Cepheid> I think I'm looking at a decompression function.
15:45 * Schism splorfs all around at the pilot of "Helluva Boss", set in the same world as Hazbin, but a different set of characters and more of a workplace comedy.
15:54 <ADragonHoarding> When last my project had support chat (it went away for awhile due to script errors with the infrastructure it ran on) we averaged 50+ chats daily.
15:54 <ADragonHoarding> Why, then, would anyone forecast 30?
15:55 <ADragonHoarding> What data was this based off of?
15:55 <ADragonHoarding> Why would anyone expect chat volume to reduce phone volume?
15:56 <ADragonHoarding> I think these companies do not have anyone with an understanding of psychology on staff in the appropriate departments.
16:04 <Schism> Adra: Yesterday, our client suggested that since the Week of Hell is over, we could probably get away with fewer staff members. Therefore, there was next to nobody on the phone. The queue ran 50 deep, and the wait time was an hour.
16:04 <Schism> And then they released a limited edition item.
16:05 <ADragonHoarding> forecasting is basically astrology.
16:05 <Schism> At some point I'm going to buy a bottle of the hardest liquor I can get and pass it on to WFM.
16:07 <Schism> Here's the kicker. They knew that there was a drop yesterday. WE knew there was a drop yesterday. EVERYBODY knew there was a drop yesterday, and they complained when the promotional code which specifically says 'no limited edition items' didn't work on it.
16:08 <Schism> But because they didn't communicate it to us enough ahead of time, WFM wasn't able to compensate.
16:08 <Cepheid> Guh. I need to stop this. I'm feeling exhausted and like garbage.
16:08 * Cepheid goes to work on something else instead. o3o
16:08 <Schism> Ah well. Day went by in a flash, at least. And now I need to get some money out of the bank, blrh.
16:11 *** Joins: Fn (Eogan@Pony-2lnbmd.dip0.t-ipconnect.de)
16:12 <ADragonHoarding> I might need to replace my laptop soon.
16:13 <ADragonHoarding> Personal, not work.
16:13 <Cepheid> Oh?
16:14 *** Quits: FruitNibbler (Eogan@Pony-na55qc.dip0.t-ipconnect.de) (Ping timeout: 121 seconds)
16:14 * Cepheid finally gets the CRC-16 implemented. He noticed something last night, and decided to give it a try. Turns out it worked.
16:14 <Cepheid> Now to figure out the save data of EO3.
16:15 <LibrarianofHope> sup
16:16 <Cepheid> 256KiB exactly.
16:16 <Cepheid> So half of that is... 128KiB.
16:16 <ADragonHoarding> I replaced the battery in it a few months back. Now the new battery is starting to fail as well.
16:16 <ADragonHoarding> Lower-left of the screen is getting discolored
16:16 <ADragonHoarding> whole thing is slowing down, too.
16:16 <Schism> Euh. Yeah, time to get a new one.
16:16 <Cepheid> Oof.
16:17 <Cepheid> Hum, let's see... Yeah, there's a header, then it's split into two identical copies of the game data.
16:17 <Cepheid> The header is of unknown size.
16:18 <LibrarianofHope> where do you work anyway schism?
16:18 <LibrarianofHope> that involves limited editions
16:19 <Cepheid> Okay, looks like data is stored in 256-byte blocks. Thank laziness for having all the unused bits in a block being set to 1.
16:19 <Schism> LibrarianofHope, I'm working for a call center which deals with multiple clients.
16:20 <Schism> But I'm not saying who on a publicly logged chat.
16:20 <Cepheid> Save data is 111,332 bytes. o3o
16:20 <LibrarianofHope> the fbi agent is goign to be disappointed owo
16:22 * Cepheid extracts the save data, then makes a copy with the CRC bytes removed, then puts the two files through a CRC-16.
16:22 <LibrarianofHope> i got the guitar noise marine
16:22 <LibrarianofHope> my miniature backlog is getting impressive
16:22 <LibrarianofHope> owo
16:24 <Schism> Anyhoo. I should get some cash out of the bank. Back later.
16:24 <Cepheid> Hum, not the NDS CRC-16.
16:24 <Cepheid> That, or the CRC only covers a small area.
16:24 <Cepheid> Nothing says I can't at least decode the save file format, though.
16:25 <Cepheid> Least it's not compressed.
16:25 <Cepheid> Compression's a pain to work with.
16:26 <Cepheid> Though, I'll need an updated save file to poke at, so I can compare it to known data in the game.
16:31 <Cepheid> Well this is troublesome.
16:32 <Cepheid> It stores base stats, not adjusted.
16:32 <Cepheid> That said, I think I found ADra.
16:35 <ADragonHoarding> Hm?
16:38 <Cepheid> I'm poking the EO3 save file format. I've been spending the last few weeks overall decoding EO3 in terms of data.
16:38 <Cepheid> I can modify the game, now.
16:38 <ADragonHoarding> aha
16:38 <ADragonHoarding> So you found my character in the code?
16:39 <Cepheid> In the save game data, yeah.
16:39 <Cepheid> That said, I'm confused.
16:39 <ADragonHoarding> I am confusing, yes.
16:39 <Cepheid> He's not in the position I expect him to be.
16:39 <Cepheid> Same with Cepheid.
16:39 <Cepheid> Hum, there must be a table somewhere that defines the order of the characters in the guild, then.
16:41 <Cepheid> Hum. Level isn't stored.
16:43 <Cepheid> There's Cepheid's strength score.
16:44 <Cepheid> Each character entry is 280 bytes.
16:48 <Cepheid> First order of business, find where the first entry starts.
16:51 *** Joins: RyuImperator (RyuImperato@Pony-gvc1sl.dip0.t-ipconnect.de)
16:55 <Cepheid> There's the class, then subclass..
16:55 <Cepheid> Oh, level does appear to be stored.
16:56 <Cepheid> That's... probably guild order.
16:57 <Cepheid> It is.
17:02 <Cepheid> Right, I've found the start of the data.
17:04 <DerpyBot> New post on Equestria Daily by Makenshi: Meaningful Tribute Music: Koron Korak - Missing Part (feat. Hay Tea) [Liquid Drum & Bass] [ http://tinyurl.com/sshjxwq ]
17:07 <Cepheid> ..?
17:07 <Cepheid> It stores the base stats, and also... adjusted stats?
17:08 <Cepheid> Yeah, adjusted stats, based on skills.
17:09 <Cepheid> .. And the stats repeated *A THIRD TIME*
17:09 <Cepheid> This time, stats after skills and equipment, looks like.
17:09 <Cepheid> And... A fourth time.
17:09 <Cepheid> What?
17:11 <Cepheid> Atlus!?
17:11 <Cepheid> WHat is this!?
17:12 *** Quits: RyuImperator (RyuImperato@Pony-gvc1sl.dip0.t-ipconnect.de) (Ping timeout: 121 seconds)
17:13 <Cepheid> The HP and TP are repeated for a fifth time.
17:13 <Cepheid> .. Oh.
17:13 <Cepheid> Current HP.
17:17 <Cepheid> Hum, if the maximum level of a skill is 10, then that means a byte can hold info for two skills.
17:18 <Cepheid> But it looks like they took the simple approach.
17:18 <Cepheid> Just store it in one byte.
17:20 <Cepheid> Common skills first, then class skills, then subclass skills.
17:27 <Schism> Redundancy, ho~
17:27 <Cepheid> I'd say for efficiency of setting all the characters up quickly during loading.
17:27 * Schism nodnods.
17:27 <Cepheid> Plus, for determining stats from retirement and the like.
17:28 <Cepheid> Or, from having been modified by books.
17:28 <Cepheid> Speaking of..
17:28 * Cepheid makes *ONE* change to the save file. A single byte decrement by 1.
17:30 * Cepheid re-extracts the save data, then compares the CRCs.
17:33 <Cepheid> There's the skill point counter.
17:35 <Cepheid> ANother easy number to find should also be the party En.
17:36 <Cepheid> ... Or not. o3o;
17:39 <Cepheid> There's the guild name..
17:39 <Cepheid> There's the ship name.
17:40 * Schism named a ship The Malapterurus. o3o
17:40 <Schism> A submarine, of course.
17:43 <Cepheid> Ours was called the Pudding.
17:43 <Cepheid> Anyhow, I need to stop. My head ain't feeling too great.
17:43 <Cepheid> Still, unlocked a bunch of info in the save file format.
17:44 <Cepheid> If I can figure out the CRC, I'll be in bloody heaven at that point.
17:44 <Cepheid> The problem with the save data that I want to manipulate, is re-ordering of the guild roster.
17:44 <Schism> And of course any modification would break the CRC.
17:46 <Cepheid> Basically.
17:46 <Cepheid> As a result, the game will, if the CRC of the copy of the save file is good, load the copy and replace the damaged version with the copy.
17:46 <Cepheid> If both copies are damaged?
17:46 <Cepheid> The game erases the save file.
17:47 <Cepheid> I kid you not.
17:47 <Cepheid> It just straight-up erases it.
17:47 <Cepheid> The remaining problem though is "what kind of CRC was used?"
17:47 <Cepheid> It doesn't seem to be CRC-16 IBM.
17:54 <Cepheid> Of course, it also depends on what data needs to be CRCed in the first place.
17:55 <Cepheid> Simplest approach though would probably be to look for calls to the CRC function in the NDS BIOS. Then examine each call to figure out the starting parameters.
18:03 <Cepheid> Annoyingly, guess what I can't find.
18:04 <DerpyBot> New post on Equestria Daily by Sethisto: Fanfiction: Perfectly Imperfect [ http://tinyurl.com/uau3pos ]
18:04 <Cepheid> Well whatever, I'll stop for now.
18:05 <Schism> There's a White Elephant gift swap coming up. I should head to the thrift store and find something completely useless for $10.
18:06 <Schism> Like a tchotchke that's ultimately used for sticking kitchen drawers shut.
18:07 <Schism> Or a pack of 100 basic lands.
18:07 *** Joins: Ali (Ali@Pony-e4kli8.4nua.5fca.1702.2600.IP)
18:07 *** ChanServ sets mode: +qo Ali Ali
18:08 * Cepheid realizes he hasn't taken his meds yet.
18:08 <Schism> Well, it's 1 PM. Not -too- far off the usual.
18:08 * Ali pushes Cepheid to go take them
18:08 * PrincessRainbows boops Ali's horn. yay!
18:08 * Schism watches Ali squeak.
18:09 * Ali taps lands to Agent of Trechery to steal Schism
18:09 * Schism wurps.
18:15 * Ali taps Cepheid to also understand the FFF today that isn't we made crap work faster
18:15 <Ali> Cause sometimes the FFFs get way too technical.
18:17 <Cepheid> Ah. Let's see.
18:17 <Ali> I mean to be honest
18:17 <Ali> Half of the FFF is just technical jargon that most idiots like me don't understand
18:17 <Ali> Just me fix things go faster seems to be all I get
18:23 <Cepheid> To put it simply, to start, a tick is the smallest frame of time that occurs between one instant of the game's world, and the next. Factorio uses 60 ticks a second, so each tick is 1/60th of the game world's time. It's a conventional number we use, aaaanyways...
18:23 <Cepheid> It turns out during each of these ticks, for a single inserter, a lot of stuff is happening. Like, a LOT.
18:23 <Cepheid> For each inserter.
18:24 <Cepheid> Long story short, they simplified a lot of the stuff that's happening for each inserter under the hood.
18:24 <Cepheid> Ultimately, factories with an insane number of inserters will see improvements in performance.
18:25 <Cepheid> Similar optimizations were applied to mining drills, trains and their wagons, requester chests of a specific type, aaaand...
18:25 <Cepheid> Logistic and construction robots.
18:26 <Cepheid> So any factories making excessive use of inserters, mining drills, trains, requester chests, and bots, should see a considerable improvement in performance.
18:26 <Cepheid> ... So pretty much every factory out there.
18:26 <Ali> Yeah I remember when Razor went nuts on bots
18:26 <Ali> And my PC CHUGGGED
18:26 <Ali> But it sounds like all of this is being held for .18
18:27 <Cepheid> Also, as they said, Factorio is not CPU bound.
18:27 <Cepheid> It's memory bound. You want to improve performance on your end? Add more RAM, or add faster RAM, the fastest your CPU can handle.
18:27 <Cepheid> Well, CPU and motherboard.
18:28 <Cepheid> 'Course, I think you're using a DDR3 system, so...
18:29 <Schism> At some point or another, I'm going to be doing a full overhaul on Nocturne here.
18:29 <Ali> I'm on DDR3 at 16GB
18:30 <Ali> I /think/
18:30 <Cepheid> You using Windows 7, 8 or 10?
18:30 * Ali hasn't checked her ramm in a long time, but believes its 16
18:30 <Ali> Win 10
18:30 <Ali> 8 is crap, don't use it
18:30 <Schism> I prefer 8.1 to 10.
18:30 <Cepheid> Open the task manager, should be a tab that contains information about resource usage, like CPU and memory usage. Memory section will tell you how much you got.
18:30 <Schism> Or hit Win-X and check System.
18:31 <Ali> Yeah its 16
18:31 * Ali boops Schism with Ctrl, Shift, Escape
18:31 <Schism> That's taskman. Win-X opens the power menu.
18:31 <Cepheid> Can probably use System Information to see what speed, as well.
18:31 <Schism> On 8, it only shows how much.
18:32 <Ali> I just see installed ramm, not the speed
18:32 <Cepheid> Bah.
18:32 <Ali> Ahh good old Phenom II X4
18:33 <Schism> It'll be in the BIOS anyway.
18:33 * Ali pats the old thing, ten years old and still chugging along.
18:33 <Cepheid> Which model of it?
18:33 <Ali> X4 965
18:34 <Cepheid> Socket AM2+, 2300MHz base?
18:36 <Ali> 3.2GHz
18:36 * PrincessRainbows sniffs Ali who smells, unsurprisingly, like small horse
18:37 <Cepheid> Are you sure it's 965, then?
18:37 <Ali> That's what my system says
18:37 <Cepheid> Your CPU isn't even running at it's intended frequency.
18:37 <Ali> errr 3.4
18:38 <Cepheid> Ah, okay that makes more sense.
18:38 <Ali> AMD Phenom II X4 965 Processor 3.4 GHz
18:38 <Cepheid> Let's see...
18:38 <Ali> Tabbing back and forth thru so many numbers, my mind can put things in the wrong place
18:38 <Cepheid> Socket AM3, so it uses DDR3.
18:39 <Ali> The thing is at least from 2009
18:39 <Cepheid> Maximum up to PC-10600. DDR3-1333MHz, then.
18:39 <Cepheid> Limit is dependent on motherboard.
18:41 <Cepheid> Though it seems Socket AM3 is funky to begin with.
18:41 <Cepheid> As it can support DDR2 and DDR3, but only one at a time.
18:41 <Cepheid> So it's possible you could be using say, a DDR2 motherboard that has an AM3 socket on it.
18:43 * Ali ponyshrugs
18:44 <Schism> 7 hours? A 7 hour patch period, during my weekend? If 5.15 doesn't have a grand and glorious thing in it, I will be rather put out.
18:45 <Ali> Seven hours?
18:45 <Ali> Is this some 14 thing?
18:45 <Schism> Yeah.
18:46 <Schism> 5.15 patch, they're bringing BLU up to 60 and doing a few other things.
18:52 <Schism> Then again, the changes to BLU are so substantial - BLU-only dungeons, additional achievements, etc., bringing it up to more than just a silly little minigame class - that I can see it working out.
18:52 <Cepheid> Man, first thing I plan to do once I figure out that CRC-16?
18:53 <Cepheid> Checking to see how the game handles a subclass of Yggdroid.
18:53 <Schism> That was going to be my second guess.
18:53 <Cepheid> It's not possible to do in-game.
18:53 <Cepheid> Second thing?
18:53 <Cepheid> Re-order the friggen roster.
18:53 <Schism> Most people would've seen how quickly they could finish a new game with a fully maxed out team.
18:53 <Cepheid> I would like to do that too, yes.
18:53 <Cepheid> Maybe also copy in the debug guilds, see what they look like.
18:54 * Schism nodnods.
18:54 <Cepheid> Yes, there are debug guilds. The only debug data still remaining in the archive file.
18:54 <Schism> Ladies and gentlemen, behold a hacker, and know that from the very beginning of a game's release, the client is in the hands of the enemy.
18:54 <Cepheid> There's 32 guilds of 12 characters each.
18:54 <Cepheid> There's even translated help text associated with each of them.
18:55 <Cepheid> Their names are untranslated, though. But they aren't anything special anyways.
18:55 <Cepheid> They're literally the Japanese names of the class that each character is.
18:55 <Schism> Eh, that's pretty basic, yeah.
18:55 <Cepheid> So if a character is a male sovereign, it's name is "Prince", if it's a Hoplite, it's whatever the Japanese name is for Hoplite(It's different in the Japanese release.)
18:56 <Cepheid> The guilds each seem tailored to specific cases.
18:56 <Cepheid> Based on the messages, anyways.
18:56 <Schism> Probably some persuasion of 'Foot Soldier'.
18:56 <Schism> Anyway, be interesting to see those, I agree.
18:57 <Schism> You could perhaps put up some of this disassembly information on GameFAQs -- it seems the sort of thing they'd like to see.
18:57 <Schism> Writing an FAQ is a pretty time-intensive endeavour, though.
18:59 <Cepheid> ... "Party 12: Ready to challenge hidden boss with powerful gear. Skill level 10 w/ subclass."
18:59 <Cepheid> "Party 13: Ready to challenge hidden boss with powerful gear. Skill level 0."
18:59 <Cepheid> "Party 16: Most powerful party. No skills or subclass."
19:00 <Schism> Pretty good testing roster.
19:00 <Schism> ... Cepheid, I don't like the look in your eyes. You look like you've just been handed a challenge.
19:00 <Cepheid> "Party 26: Can do sea quests and check NPCs, use in 1st, 2nd."
19:01 <Schism> Snrk.
19:01 <Cepheid> "Party 29: Can do sea quests and check NPCs. Use in 7th, 8th. 12 people in all."
19:01 <Schism> Scratch that. You've just been handed a LOT of challenges.
19:02 <Cepheid> I already know how to extract the data.
19:02 * Ali rolls around
19:02 <Cepheid> Anyhow, let's take a look see for any fun message files.
19:02 <Schism> No, but I'm afraid that you're going to try and raise a party as far as possible without skills or subclasses.
19:02 <Cepheid> Oh, right, the battle messages have some funky messages.
19:03 <Schism> You simply must go so far as to publish all this.
19:03 <Schism> If nothing else, as a part of your portfolio.
19:03 <Cepheid> I will.
19:04 <Cepheid> I intend to create a freakin' editor for the game.
19:04 <Cepheid> Once done, I plan to do the insane.
19:04 <Schism> Apply for a job at ATLUS?
19:04 <DerpyBot> New post on Equestria Daily by DigiKate: Top 5 Hearth's Warming Eve Specials [ http://tinyurl.com/tshqbfo ]
19:04 <Cepheid> I am going to go up to Atlus, show them what I've made, and go "Can I please work on the team that develops Sekaijyu no Meikyuu(Etrian Odyssey)?"
19:04 * Schism grins.
19:04 <Cepheid> And then likely get a C&D from their legal team over what I've done. :P
19:05 <Schism> I would very much like to see the NDA they put you under.
19:05 <Cepheid> "A fearsome howl pierces the air as the black shadow comes forth!"
19:05 <Cepheid> That's one of the battle messages.
19:05 <Cepheid> Not sure what triggers it.
19:06 <Cepheid> It's apparently meant to be a battle start message.
19:06 <Schism> Sounds almost boss-like.
19:06 <Cepheid> "<X>'s weapon releases a blinding light!"
19:07 <Schism> If you do release that, make sure to publish it before you go to ATLUS, so that it's at least out in the open before they tell you to stop distributing. EO3's an nDS game, so it's not like it's going to be -sold- anymore...
19:07 <Cepheid> "Infection message"
19:07 <Schism> Point of curiosity. How is this going to affect the game you intend to release?
19:08 <Cepheid> Other than giving me ideas on how to solve basic problems, not very much.
19:08 <Schism> You intend to have it readily modable?
19:08 <Cepheid> Yes.
19:08 * Schism nodnods.
19:08 <Cepheid> The core thing I wanted to figure out was how they stored the map.
19:08 <Cepheid> Not because I want to replicate it, because there's something about the map I haven't been able to discern.
19:08 <Schism> Hah, and then you managed to figure out the rest of the game.
19:09 <Cepheid> There's multiple variations of walls, floors, etc.
19:09 <Cepheid> I wanted to see how they got it to render the right walls, floors, the same way every time.
19:09 <Schism> I remember you telling me that there's also an overlay which indicates a surface which creates an event.
19:09 <Schism> Or underlay.
19:10 <Cepheid> Yeah, it's basically a list of event data with coordinates associated.
19:10 <Cepheid> Nothing spectacular, common sense.
19:10 <Cepheid> FOE's meanwhile are not stored with the map data.
19:10 <Schism> Well, no, they're entities.
19:11 <Cepheid> Anyhow, with respect to ensuring the map always appears the same all the time, they just have all the wall/floor/etc models in a list, then, when they go to store the map, they just use an RNG to pick different wall pieces and such. That, or the developers explicitly pick which ones appear where.
19:11 <Schism> The map data would've been a logical spot to throw them on, but their behaviour is so unique to them that they should be individual points.
19:11 <Cepheid> So rather than going "Okay, this is a wall, this is an open floor" they just store indices to which model should be at that spot.
19:12 <Cepheid> The maps themselves are split up into like, four separate files.
19:12 <Schism> With seed data stored in the map file.
19:12 <Schism> Or possibly a global seed for that.
19:12 <Cepheid> FOEs for the floor, their paths, behaviour, monster group, etc. The map with references to models, and where to place them, etc. Events, where they are, what events they trigger, etc. And...
19:12 <Cepheid> One file I can't figure out yet.
19:13 <Schism> What if that file contains the seeds? How big is it?
19:15 <Schism> I'll admit, I'm just spitballing.
19:15 <Cepheid> Varying sizes
19:15 <Cepheid> All over 8KiB.
19:16 <Schism> Too large to contain -just- that data, then.
19:16 <Cepheid> There's no seeding for the maps themselves, as far as I know. It's literally just a direct "Use this model here" "Use that model there"
19:16 <Schism> Huh.
19:16 <Cepheid> In fact, Atlus kind of also broke format with one map.
19:16 <Cepheid> Floor 26. The floor that doesn't exist.
19:16 <Schism> Not surprising, if it's a debug floor.
19:16 <Cepheid> They packed in two maps into that floor.
19:16 <Cepheid> It's actually not a debug map.
19:16 <Cepheid> It's the game's sea map.
19:16 <Schism> Some coding that -- oh! That makes sense.
19:17 <Cepheid> Unofficially, the sea map is B26F, and also Stratum 7.
19:17 <Cepheid> "Tentacles came out of <X>'s wound!"
19:17 <Schism> ...
19:18 <Cepheid> "<X>'s tentacle has resurrected!"
19:18 <Cepheid> "The boundary to another dimension is coming undone..."
19:18 <Schism> An infest debuff. Hmm.
19:19 <Schism> You know, it's ATLUS. I wouldn't put it past them to troll disassemblers like yourself, by putting in nonsense messages.
19:19 <Cepheid> "The indescribable god has awakened!"
19:19 <Cepheid> "<X> is disentagling it's tentacles."
19:19 <Cepheid> Er, "twisted tentacles" rather.
19:20 <Cepheid> To be honest, it gets worse, Schism.
19:20 <Schism> I'd still swear that you've got a job made for you if you put all this into a job application at Rockin' Android.
19:20 <Cepheid> I finally figured out what those "ARM9 Overlay" and "ARM7 Overlay" files are.
19:20 <Schism> Oh?
19:20 <Cepheid> There's none for the ARM7 in EO3, but there are 6 ARM9 Overlay files.
19:21 <Cepheid> They're extra data loaded under certain conditions.
19:21 <Cepheid> Extra code and data, to be more specific.
19:21 <Cepheid> I can see fragmentary plaintext data as well. There's indications there's more files in there.
19:21 * Schism brings up the ARM9 execution information on overlays.
19:21 <Cepheid> That is, those 7 missing files I can't find?
19:21 <Cepheid> They're likely in one of the ARM9 overlays.
19:22 <Cepheid> Hum, that's a string table I should look at.
19:22 <Cepheid> Quest names.
19:23 <Schism> I'm a little bit intox right now, but what I'm seeing is that they're additional data stored in memory which is brought up in situ when a certain thing happens.
19:23 <Schism> Pre-prepared for that event.
19:24 <Schism> ARM has these details on overlays: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4234.html
19:25 <Cepheid> Yeah, but the DS/GBA spec website suggests these overlays are different from the ARM ones.
19:25 <Schism> Of course, that implies that the game's code has a means by which to manufacture them, but you're not exactly looking at the code, just the database.
19:25 <Cepheid> Has something to do with the compiler Nintendo provides.
19:26 <Cepheid> Which implies that these overlays are used only when the game is compiled to use them.
19:26 <Schism> Sooper-sekrit info. You might have to disassemble an active EO3 session in an emulator.
19:27 <Cepheid> Let's see, all the quest titles have been translated.
19:27 <Cepheid> Let's see what I don't got in the quest log.
19:27 <Cepheid> Right off the bat, I got one quest I don't have.
19:28 <Cepheid> It's the first quest in the list.
19:28 <Cepheid> "Investigating the Labyrinth"
19:28 <Schism> Gee, that sounds familiar.
19:31 <Schism> Wait, there are 7 of them. EO3 has various branching paths, doesn't it?
19:33 <Cepheid> It does, but the endings are all there already.
19:33 <Cepheid> These are debug files of some sort, too.
19:33 <Schism> Yea, but what about the various differences between each path?
19:33 <Cepheid> Anyways, the quests I have not picked up.
19:33 <Cepheid> I considered that. Again, these are explicitly debug files.
19:33 <Schism> Oh, alright then.
19:33 <Cepheid> These are stored in a folder called Debug, and have "Debug" in their name.
19:34 <Schism> So you think they might possibly have a chance at being Debug, then.
19:34 <Schism> Okay, silliness aside.
19:34 <Schism> Go on with your exposition.
19:34 <Cepheid> Anyways. "Investigating the Labyrinth," "Forging 1," "Forging 2," "Letter not used 1," "Letter not used 2," "Letter not used 3"
19:34 <Cepheid> These are the quests I do not have.
19:35 *** Quits: LibrarianofHope (Librarianof@Pony-nv8.19p.147.189.IP) (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
19:35 <Cepheid> Some of them may be restricted to a given branch.
19:35 <Cepheid> The letter quests are interesting, because I assume they're associated with the Letter in the Bottle chain.
19:35 <Cepheid> Which leads to Alraune.
19:35 <Schism> Hmm. All reasonable. The first, a tutorial which was discarded and left alone. Forging 1 and 2 sound like a mechanic, and "Letter not used" just sounds like a sidequest to find a certain event in the Labyrinth.
19:35 <Cepheid> Investigating the Labyrinth is a curiousity too. Sounds more like a Mission than a quest.
19:36 <Cepheid> Forging 1 and 2 are probably tutorial.
19:36 <Cepheid> Only one way to find out, really.
19:36 <Cepheid> And for that, I'm gonna write a tool to find out, because this is a pain in the ass to work with.
19:36 <Schism> I've said it a hundred times. ATLUS doesn't just screw with its developers, its players, and its fans, it screws with the hackers too.
19:37 <Schism> Still, better to know.
19:37 <Cepheid> This is actually gonna be simple, for me.
19:37 <Cepheid> All "mbm" files follow a pretty straightforward format.
19:38 <Schism> You've done 90% of the work already. It's the other 90% that gets you.
19:38 <Cepheid> First 4 bytes are always 0. Followed by ASCII "MSG2"
19:38 <Cepheid> Then an unknown 4-byte integer. I'll figure that out after.
19:39 <Cepheid> Another 4-byte integer. Then an offset to a table. Followed by 8 bytes probably padding.
19:39 <Cepheid> Then a table. Unsure of the size, but let's analyze...
19:40 <Schism> Unique identifier, I'd estimate.
19:40 <Cepheid> This file has 832 bytes of data in the table.
19:40 <Schism> That is, that 4-byte integer could be a unique identifier for simplicity.
19:40 <Cepheid> Let's divide by multiples of 4!
19:41 <Cepheid> 208, 104, 52, 26, 13. Any further is pointless.
19:41 <Cepheid> So... D0, 68, 34, 1A, D in hex.
19:41 <Cepheid> And lo and behold, in the first 20 bytes of the file, what do I see?
19:41 <Cepheid> 0x34000000
19:42 <Cepheid> That's the number of entries in the table. And to double confirm..
19:42 <Cepheid> 52 quests.
19:42 <Schism> Sounds like you've just figured out how to adjust that, then.
19:42 <Schism> Though 52 quests is a good number for an Etrian Odyssey game.
19:43 <Cepheid> 832 / 52 = 16 bytes per entry.
19:43 <Cepheid> First 4 bytes are the index of the entry. Monotonically increases by 1 for each entry.
19:44 <Cepheid> Second 4 bytes of the first entry are... 3A000000, swap around, we get 0000003A, that's... 58.
19:44 <Cepheid> Go to the first string.
19:44 <Cepheid> Length of the string.
19:45 <Schism> That's the kind of obfuscation you'd see in kindergarten.
19:45 <Cepheid> Once you understand where something is, and how long something is, it's easy to match information.
19:45 <Schism> That's true. I'm not even convinced they -were- trying to obfuscate.
19:46 <Cepheid> Next 4 bytes are... Okay Atlus, what the hell?
19:46 <Cepheid> Why does this integer point to the byte *AFTER* the end of the string?
19:46 <Schism> Hehe. They turned it all backwards. They're screwing with you, my friend.
19:47 <Cepheid> Nah.
19:47 <Cepheid> This isn't hard to deal with.
19:47 <Schism> Yeah, but it still threw you for a loop when you found it. I know it's mean, but I have to laugh, that's amazing.
19:47 <Cepheid> Next 4 bytes are all zeroed out.
19:48 <Schism> Even so, you looked and went 'wait, what?!'. Oh, Atlus, you are my favourite developer.
19:48 <Cepheid> Oh, whoops.
19:48 <Cepheid> That's why.
19:48 <Schism> Translation error?
19:48 <Cepheid> I had "from cursor" set for doing a goto in the hex editor.
19:48 <Cepheid> Turn that off, and input again?
19:48 <Cepheid> Offset to the string in the file.
19:49 <Schism> Oh, damn. I'd thought they were being clever. Still might be pretty clever, though, to do that.
19:49 <Schism> Ah well, c'est la vie.
19:49 <Cepheid> Okay, got one more header bit uncovered.
19:50 <Schism> For what it's worth, you sound like an archaeologist trying to uncover some priceless artifact, one bit at a time.
19:50 <Cepheid> 4 bytes, 0, "MSG2", 4 bytes, size of file, 4 bytes, number of strings, 4 bytes offset to table.
19:50 <Schism> Pun not intended.
19:50 <Cepheid> Then 8 bytes zeroed out. I'll have to go through all the files and extract those 8 bytes, along with the 4 zeroed out bytes in each entry to see if they ever change.
19:51 <Cepheid> Anyways, got enough here to extract each string.
19:52 <Cepheid> All I need now is to create a translation table from Shift-JIS to ASCII. For the moment I'll ignore punctuation.
19:52 <Schism> It's not like it's one-to-one anyway.
19:54 <Cepheid> I have a better program on my PC, but I'm lazy and don't want to grab that. I'll write the tool now, merge some of the code from the program, and fix it up later.
19:59 <Cepheid> https://uic.win/charset/show/cp932/ Here's the CP I'm using, by the way. It's how the text is encoded. With, of course, non-standard codes for Atlus-specific stuff.
19:59 <Schism> Again, save it -- save all your programs for that.
19:59 <Cepheid> If you value your brain, you won't investigate Shift-JIS.
20:00 <Cepheid> Oh, by the way.
20:00 <Cepheid> https://twitter.com/LuminousOcean/status/1201935918959091713
20:00 <Schism> You're functionally writing a translation suite, and even if it's crap compared to many others, it'll raise a few eyebrows.
20:01 <Schism> Nice.
20:01 <Cepheid> Not tested on an actual NDS or 3DS, but emulation shows that the game doesn't checksum it's own data.
20:01 <Cepheid> Only the save data.
20:01 <Schism> Nice. o3o
20:02 <Cepheid> And even then, as far as I understand? It only checksums a subset of the data. I recall a few months back toying with the save file data and an emulator, and I was able to edit the drawn map data without the game spazzing.
20:02 <Cepheid> Unless I recalled incorrectly.
20:02 <Schism> I think you're right.
20:02 <Cepheid> By the way...
20:02 <Cepheid> It seems people still play EO3 a lot.
20:02 <Cepheid> The subredit shows a lot of questions regarding it.
20:03 <Cepheid> And no, I haven't shown off what I've done there yet.
20:04 <Schism> It's a known series, and there are a lot of folks who are still looking into the old games. It's still not been rereleased, and any rerelease would involve a complete overhaul of the code anyway.
20:05 <Cepheid> Indeed.
20:05 <Cepheid> The closest we get is Nexus.
20:05 <Cepheid> Which has several stratums from the game, along with track remixes.
20:05 <Schism> I think you're perfectly safe in this project.
20:05 <Cepheid> Ultimately?
20:05 <Cepheid> I want to document as much of the games as possible.
20:06 <Cepheid> !link https://www.youtube.com/watch?v=brPskDEr7CU The composer really liked this song.
20:06 <DerpyBot> Twilight told me this video is about Etrian Odyssey X [世界樹の迷宮X] - Hoist the Sword and Pride in the Heart (X ver.)
20:06 <Cepheid> It's among one of the most re-used and remixed tracks.
20:06 <Schism> Not a bad idea. There've been, for example, multiple FAQs about completely breaking down FF6 into its components.
20:10 * Cepheid blares over headphones as he codes.
20:10 * Cepheid feels like he is fighting an insurmountable entity at this point. >.>;
20:11 <Schism> An insurmountable enemy you've already beaten. <<
20:12 <Cepheid> It would be a dream job to work for Atlus, honestly. Regardless of the series involved.
20:12 <Cepheid> And I feel like I have something to prove at this point, having made this much progress on the project.
20:12 * Schism nodnods.
20:12 <Schism> Hee. Then prove it.
20:13 <Schism> Honestly, disassembly or no, someone who understand the project to the level that you've shown would be someone HR should snap up.
20:16 <Schism> Ugh. Understands.*
20:16 *** Joins: SunsetShimmer (DerpDerp@Pony-hvare3.threembb.co.uk)
20:16 <Cepheid> Heh.
20:16 <Cepheid> Honestly, the reason I feel I have something to prove? It's not to prove to Atlus. It's... to prove to myself.
20:16 <Cepheid> That I can do this.
20:16 <Schism> Oh, I know.
20:16 <Cepheid> I have never "completed" a project in my entire life. The closest thing was that program for NAV Can, which I'm sure is scrap by now.
20:17 <Cepheid> This is, by far, the second longest project I've worked on, that I've made progress on, that I've kept at it.
20:17 <Cepheid> That medication I'm taking is a bloody godsend.
20:17 <Schism> Did you actually cut it in two, or did you find a happy medium?
20:17 <Cepheid> And this? This is what I need to start healing my mental health. Confidence, that I know I can do something if I work towards it.
20:17 <Schism> Yes. And if they say no -- well, you have other options.
20:17 <Cepheid> Cymbalta's been cut down to half. I'm to take it at 30mg for 7 days.
20:18 <Cepheid> Then I'm to cut it off completely. If I suffer discontinuation, I'm to go back on for 14 days, repeating a pattern of taking it one day, not taking it the next, etc.
20:18 <Cepheid> Then my memory should see improvement.
20:46 *** Quits: matttheshadowman (matthewhowa@the.shadowy.corners) (Client exited)
20:53 <Cepheid> If there's one thing I like about Japanese, is that they have a much-expanded parenthesis setup, along with a better quotation system.
20:54 <Cepheid> Their quotes are 「these
20:54 <Cepheid> Er, whoops.
20:54 <Cepheid> Their quotes are 「these」
20:54 <Cepheid> The English text looks a bit off because I used full-width alphanumeric.
21:03 <Cepheid> Bah... none of my editors seem to recognize \u2019 as a UTF-16 codepoint.
21:04 <DerpyBot> New post on Equestria Daily by Makenshi: Starlight Music: Etherium Apex - Second Prances (feat. Nicole Carino) (MrMehster Remix) [Hardstyle] [ http://tinyurl.com/r5j5jml ]
21:04 <Cepheid> Right, just hackjob it for now.
21:04 <Cepheid> There, quest names are coming out correct now. Let's try something different.
21:07 <Cepheid> So, the Investigate the Labyrinth quest is just that. Literally investigate the labyrinth. I'm gonna guess the reason I don't have this quest is either because A) It's dummied out, or B) New Game+ removes it from the list.
21:09 <Cepheid> Meanwhile the Forging quests seem to be... quests to buy a specific weapon, and forge it with certain attributes.
21:10 <Cepheid> And the letter quests I think are, for like what you said Schism, branch cases. You can make decisions/handle things differently with the Letter quests, so..
21:10 <Cepheid> As for the Investigate the Labyrinth quest...
21:11 <Cepheid> It's description reads: "If you're going to explore the Yggdrasil Labyrinth, take a single step into B1F and come back here first."
21:19 <Schism> X3
21:19 <Schism> I love it.
21:20 <Schism> Also, Cepheid, question. I'm thinking that I have an idea for what to get my coworkers for Christmas. Specifically, Scream Pillows.
21:20 <Cepheid> Heh.
21:21 <Schism> Pillows you scream into.
21:21 <Schism> Set them up in the break room, let them be handled appropriately.
21:23 <Cepheid> Huh.
21:24 <Schism> People can head to the break room and then scream into the pillows.
21:24 <Schism> Get out their anger, and then go back to work.
21:25 <Schism> It's a very stupid idea, but that doesn't stop it from working.
21:26 *** Joins: AndroUser2 (DerpDerp@Pony-dg3b8p.as43234.net)
21:27 *** Joins: matttheshadowman (matthewhowa@Pony-650.0ec.238.89.IP)
21:30 *** Quits: SunsetShimmer (DerpDerp@Pony-hvare3.threembb.co.uk) (Ping timeout: 121 seconds)
21:30 <Cepheid> Hum.
21:30 <Cepheid> The "number of entries" field in the header is not number of entries in the table.
21:30 <Cepheid> It's the number of strings. The table itself seems to have blank entries.
21:31 <Cepheid> And those blank entries aren't counted in the number of entries.
21:31 <Cepheid> So reading the data's a bit wonky.
21:31 <Schism> Again, that seeme to imply some entries added by the code.
21:31 <Schism> seems*
21:32 <Cepheid> Indeed.
21:32 *** Joins: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de)
21:32 <Cepheid> Unfortunately, to figure *THAT* out, I'd need to extract the overlays, and then somehow decode them.
21:32 <Schism> Run the game in an emulator.
21:32 <Cepheid> The process is likely the same as decoding/decrypting the ARM9 code itself, but I need to generalize that tool a bit.
21:33 <Schism> Any emulator capable of handling the game should be able to output the state of the game.
21:33 <Cepheid> That tool was created through analyzing the ARM9 binary. It apparently starts off with a decoded/decrypted bootloader, which reads data in the ARM9 binary and decrypts/decodes it.
21:33 <Cepheid> And overwrites the rest of the program memory.
21:34 * Cepheid looks into libICU for something.
21:34 * Schism waits.
21:35 <Cepheid> libICU is for text encoding stuff.
21:35 <Cepheid> Right now I'm still having issues here and there.
21:35 <Cepheid> Hum, wonder if I can use...
21:36 <Cepheid> ... Yeah, I don't see why not, I'm using C++17, so it should be supported.
21:36 <Schism> I still say, there's a difference between decoding static information, and decoding an instance of a binary while it's being run.
21:37 *** Joins: PinkieShy (coolm@Pony-ck81je.67-212-45-net.sccoast.net)
21:38 <Cepheid> It's less an encoding issue and more just I'm not sure I'm writing the data out right.
21:41 <Schism> I have no solution.
21:45 <PinkieShy> Hi everyone :D
21:46 <Schism> Hi there.
21:48 <Cepheid> For some reason, the wide-string iomanip setfill() seems to be missing. Why?
21:54 <AndroUser2> Salutaaaations, pinkieshy :3
22:04 *** Quits: Fn (Eogan@Pony-2lnbmd.dip0.t-ipconnect.de) (Ping timeout: 121 seconds)
22:04 *** AndroUser2 is now known as SunsetShimmer
22:14 <DerpyBot> New post on Equestria Daily by Sethisto: Holidays Unwrapped: Part 4 'Winter Break-In' Released on Youtube [ http://tinyurl.com/qwn3tmf ]
22:19 <Cepheid> Bloody hell, globalization is a pain.
22:22 <Cepheid> Effin *FINALLY*.
22:41 * Cepheid face-palms.
22:53 <Cepheid> There!
22:59 <Cepheid> Right then, let's figure out these special codes.
23:04 <Cepheid> Straight up, 8001 is outside the valid SJIS range, so it's a control code of some sort. But with single-line text, I dunno what it means.
23:04 <DerpyBot> New post on Equestria Daily by Sethisto: Drawfriend Stuff (Pony Art Gallery) #3182 [ http://tinyurl.com/uv6wamj ]
23:04 <Cepheid> Atlus treats it as "newline" apparently.
23:07 * Cepheid creates a table called ATLUS_CODES.
23:09 *** Quits: ADragonHoarding (Mibbit@Pony-krk.qod.41.69.IP) (Quit: http://www.mibbit.com ajax IRC Client)
23:12 <Cepheid> ... Wait, why am I doing it this way?
23:14 <Cepheid> 8002 apparently means "new paragraph." I don't know how to represent this in the output. Hum, what's the paragraph symbol in unicode?
23:15 <Cepheid> 006B, Pilcrow, got it.
23:17 <Cepheid> Hum, I should modify this program to read a config file.
23:41 * Cepheid decides on Unicode EOT for treating FFFF.
23:45 * Cepheid goes to find the largest mbm file.
23:48 <Cepheid> Largest file appears to be... sea map event text.
23:49 <Cepheid> ... o3o; That gives me 9 unknowns.
23:52 *** Joins: Stormspark (stormspark@Pony-25m.dcd.98.172.IP)
23:54 <Schism> I hate everything.
23:55 *** Quits: RyuImperator (RyuImperato@Pony-trb5lu.dip0.t-ipconnect.de) (Quit: Leaving.)
23:57 <Schism> Tried to make eggs. Wound up black, because the stove the landlord gave us has no idea of scale. FML.
23:58 * PrincessRainbows chews on the Ali horsey's hooves
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!