[12:59] == luckytyphlosion [63ebb6a1@gateway/web/freenode/ip.99.235.182.161] has joined #pret [13:03] heh [13:04] conflict when pulling upstream [13:36] == Schattenjager [~Schattenj@mobile-access-bcee8c-29.dhcp.inet.fi] has joined #pret [14:16] == ShantyTown [~ShantyTow@50.46.102.18] has joined #pret [14:27] I was supposed to get so much more done this weekend. [14:34] Isn't Emerald pretty well documented? [14:34] A friend of mine is interested in working with Emerald for a hack. I'm not into 3rd gen hacking at all, but for a friend, sure. [14:35] if you're planning on making gen 3 hacks, don't use the disassembly unless your hack is very technical [14:35] e.g. "text prints instantly" rom [14:35] Yeah, probably not. [15:13] == PikalaxALT [~PikalaxAL@unaffiliated/pikalaxalt] has quit [Ping timeout: 265 seconds] [15:35] == Linnie [9686f51b@gateway/web/cgi-irc/kiwiirc.com/ip.150.134.245.27] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] [16:01] ShantyTown: do you use linux line endings or windows line endings? [16:01] not sure [16:02] I have "Unix line endings" checked in Sublime Text [16:02] I also used vi to edit the .gitignore file [16:02] that might have used windows? [16:03] Sublime Text? [16:03] text editor [16:04] ah [16:05] well I run windows and I was thinking if I should add a .gitattributes file to convert all line endings to lf [16:07] <@iimarckus> we want unix line endings [16:07] <@iimarckus> if the gitattributes thing works then by all means [16:08] luckytyphlosion: I wrote a 2-bit depth version of PlayPikachuPCM [16:09] luckytyphlosion: but I haven't been able to make a good pcm file to use with it [16:09] using pcm.py? [16:10] that's the hard part. I'm having trouble coming up with a good algorithm for converting the .wav file into pcm [16:10] how does your old algorithm work? [16:10] the first couple i've tried have been crappy [16:10] well the old algorithm is easy for 1-bit samples [16:11] btw your method basically writes a 2 bit volume to rNRsomething/$ff1c? [16:11] ya [16:11] == Schattenjager- [~Schattenj@mobile-access-bcee8c-29.dhcp.inet.fi] has joined #pret [16:11] and it only does the "rept" block 3 times, instead of 7 [16:12] == Schattenjager [~Schattenj@mobile-access-bcee8c-29.dhcp.inet.fi] has quit [Ping timeout: 272 seconds] [16:12] hm [16:12] which is correct [16:14] might be able to use ffmpeg to desample the .wav, instead of pcm.py doing some complicated algorithm [16:15] actually, i don't think so [16:15] wave files have minium bit depth of 8 [16:17] bit depth? [16:17] yes. the number of bits per sample [16:18] for bit depth = 1, pcm.py just fakes it. The resulting wave file is 8-bit, but all the samples are either 0xff or 0x00 [16:18] so it's essentially 1-bit [16:19] could you make the samples like "(0xff / 4) * 3"? [16:19] or wait [16:20] yes [16:20] sort of [16:20] 0x00, 0x3f, 0x7f, and 0xff [16:20] are the amplitudes the gameboy can do [16:20] which is kind of awkward [16:20] what's the problem to approximate the amplitudes? [16:21] so it probably makes sense to clamp the samples to 0x00, 0x7f, and 0xff [16:21] I can't come up with a good algorithm for approximating (clamping) those amplitudes [16:21] 1.5 bit lel [16:21] right :) [16:22] Algorithm for 1-bit: If sample > average of all samples, 0xff. Else 0x00 [16:22] Algorithm for 1.5-bit: (this is what I tried, but it's bad) [16:23] Find min and max samples from wav file [16:23] what if you pretend the average is fixed? [16:23] normalize a sample based on those [16:23] clamp it to the nearest value [16:27] what about have get the average amplitude, get the range for both min and max, average those ranges out and add/subtract from the average amplitude? [16:28] not sure what you mean by "average those ranges out" [16:29] the range of the min and average, and the min and max [16:29] then average the ranges [16:30] I think anything that involves taking the range of the min and max values is flawed [16:30] == EmuScyther [~scyther@ip-89-176-140-215.net.upcbroadband.cz] has joined #pret [16:30] because different sections of the wave file have different volumes [16:31] 1-bit doesn't suffer from this problem [16:31] == EmuScyther has changed nick to Guest94018 [16:31] 1.5-bit gets hurt because samples that should be 0xff or 0x00 get mapped to 0x7f [16:33] fake 0xbf by alternating between 0xff and 0x7f? [16:34] that would create an ugly high-pitched tone [16:35] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has joined #pret [16:35] hm [16:36] maybe changing the method of how it clamps would be better. Like... if the sample is > 25% away from the middle, it gets clamped to 0x00 or 0xff [16:36] rather than > 50% [16:36] maybe [16:37] ugh I don't have an exact rom [16:37] pokepinball.gbc baserom.gbc differ: byte 335, line 1 [16:37] from a clean repo? [16:37] no I made a script to change address comments [16:37] didn't touch any code [16:38] or at least as I'm aware of [16:38] == Guest94018 has changed nick to scyther [16:40] do you have local changes in pret? [16:41] I just built a clean pokepinball repo, with an exact rom [16:42] yes I reset to the latest commit [16:42] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has quit [Ping timeout: 272 seconds] [16:43] what's the top of "git log" for you? [16:44] uh [16:44] you mean git status? [16:45] I'm trying to run compare.sh but it refuses to work [16:45] "compare.sh: line 11: syntax error: unexpected end of file" [16:46] sure, run "git status" in both pokepinball and pret [16:48] actually can you send me your .map file? [16:49] we are doing pinball now too? [16:49] ya [16:49] to both [16:49] of you [16:49] Why no TCG? That has great potential [16:50] there's tcg [16:50] where? [16:50] github.com/pret/poketcg [16:50] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has joined #pret [16:50] https://www.github.com/pret/poketcg [16:50] luckytyphlosion:here's pokepinball.sym: http://pastebin.com/VK9Pttn9 [16:50] incomplete [16:51] Cool [16:52] Can't wait for custom Puzzle Challange modes :P [16:53] no changes [16:53] hm [16:53] "git stash" [16:53] what does git stash do? [16:54] then make to see if a clean repo is fine [16:54] git stash saves your changes and discards them [16:54] "git stash pop" will bring them back [16:55] == Missingno_force [~missingno@dslb-094-219-018-149.094.219.pools.vodafone-ip.de] has quit [Quit: xor eax, eax; jmp eax;] [16:56] >pokepinball.txt [16:56] what [16:56] what [16:57] I'm giving up on the 1.5-bit stuff for now. [16:57] ok [16:57] ah found the error [16:57] Changing the thresholds helped, but it still sounds worse (and quieter) than 1-bit [16:58] wait, so was the error something you did, or is pokepinball in a bad state? [16:59] idk [16:59] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has quit [Ping timeout: 244 seconds] [17:00] wait I got it, my script removed 'include "charmap.asm"' [17:01] ya fixed [17:03] pokepinball is getting kind of annoying to make progress on [17:03] why? [17:03] there are hundreds of pointers to graphics/tilemaps/palettes [17:03] and that stuff isn't interesting to me [17:03] hm [17:04] although, most of the bonus stages haven't been documented yet [17:04] I have to do map scripts and block/tilesets with pokeyellow [17:04] so that's fun [17:04] I assumed most of that was overlapping with pokered [17:04] yes [17:05] so I can't exactly disassemble it with gbz80disasm.py [17:05] why not? [17:06] I'd lose documentation over untouched spots [17:10] wait did I add .wav to binary files? [17:10] for .gitattributes [17:10] oh crap [17:13] what's ".w32.interleave"? [17:31] [pokeyellow] luckytyphlosion pushed 7 commits to master [+42/-0/±23] http://git.io/vWViV [17:31] [pokeyellow] luckytyphlosion 8601505 - Fix submodule 'extras' url [17:31] [pokeyellow] luckytyphlosion 998ada6 - Properly ignore extras? [17:31] [pokeyellow] luckytyphlosion fdad37c - Ignore extras1\ old extras except with some changes made for personal use [17:31] [pokeyellow] ... and 4 more commits. [17:37] == YamaArashi_ [~YamaArash@cpe-172-91-236-222.socal.res.rr.com] has joined #pret [17:39] == YamaArashi [~YamaArash@cpe-172-91-236-222.socal.res.rr.com] has quit [Ping timeout: 244 seconds] [17:42] "width 32 pixels" "interleave the tiles" [17:43] ah [17:49] Hum. [17:50] Does anyone if there's something in pokered that glitches if a pokémon of a certain index number, etc is put in the wild? [17:50] For some reason my game loads a trainer battle on Route in the grass if I put Ralts in there. [17:51] Ralts works fine if it's in a trainer's team. [17:58] pokered? [17:58] Yes. [17:58] do you mean a sanqui rom? [17:58] My own project, using pokered. [17:58] heh, I would see a problem in getting ralts to appear in regular red ;) [17:58] oh [17:59] wCurOpponent is shared between trainers and pokemon [17:59] any index > 199 will generate a trainer [17:59] you'll have to add a separate value for trainers [17:59] if you want 255 pokemon [17:59] == scyther [~scyther@ip-89-176-140-215.net.upcbroadband.cz] has quit [Read error: Connection reset by peer] [17:59] Yeah, I was thinking it was something like that. [17:59] well more like 254 pokemon [17:59] Thanks. :) [18:00] 1 index for hex0 and hexff [18:00] Isn't it 251? [18:00] The fossils take some space [18:00] and the ghost [18:00] oh right [18:00] so 252 :P [18:00] or 251 [18:00] ugh [18:00] Yes. [18:21] Right, it's the $C8. [18:21] == PikalaxALT [~PikalaxAL@unaffiliated/pikalaxalt] has joined #pret [18:23] padz: have you had the chance to review my followup commits to pokecrystal? [18:30] == Schattenjager- [~Schattenj@mobile-access-bcee8c-29.dhcp.inet.fi] has quit [Ping timeout: 256 seconds] [18:34] PikalaxALT: only thing left is the itemmenu constants [18:35] for the last byte of item_attributes the two nybbles take the same constants [18:35] just top for overworld and bottom for battle [18:35] so the battle_nofield etc stuff is pointless and probably incorrect [18:36] um [18:37] i disagree [18:38] ITEMMENU is for which menu the item's use redirects to [18:38] ITEMCONTEXT determines whether the item can be used in the field, in battle, or both [18:38] its nice that you disagree, but its one or the other [18:38] can you prove that its the latter [18:38] POKe DOLL [18:39] the poke doll cant be used in the overworld, so its 0 [18:39] ah [18:39] in battle it exits the item menu, so its 6 [18:39] not a good example in my favor, huh [18:39] lemme see [18:39] (like balls) [18:40] that was what i got from reading the code some time ago, its possible i got it wrong but i think you confirmed it [18:40] alright [18:42] == Schattenjager [~Schattenj@mobile-access-bcee4a-154.dhcp.inet.fi] has joined #pret [18:47] can you use a constant as args in a macro? [18:47] [pokecrystal] PikalaxALT synchronize pull request #322: No more ldtile or dwtile - http://git.io/vCr0O [18:49] luckytyphlosion: macros dont evaluate args, so you can use anything [18:51] hm [18:53] this isn't working as I'd expected [18:54] go on [18:54] if I try to do "pcm const_value", it uses the string "const_value" instead of the value of const_value [18:54] right [18:55] so how do I make the macro use the value of const_value? [18:55] would need to see the macro to know what youre trying to do [18:56] http://pastebin.com/DGeetmsd [18:58] > dw .end - .start [18:58] yes? [18:58] surprisingly it doesn't break [18:58] since it's local [18:58] why do you need that? [18:58] because thats how it works [18:58] to specify the length of the pcm file [18:58] thats what yellow does [18:58] oh my bad [18:59] my brain somehow interpreted dw as ds [18:59] DS is fourth and fifth gen games [18:59] ... [18:59] heh [18:59] ds = define size [18:59] hah [18:59] dual screen [19:00] == ShantyTown [~ShantyTow@50.46.102.18] has quit [Quit: Leaving] [19:10] uh [19:11] wtf is this supposed to mean [19:11] ERROR: cries.asm(135) -> cries.asm(1) : [19:11] syntax error [19:11] Did you forget a , somwhere, or something? [19:15] oh I see [19:15] it's an error in a rept block [19:15] rept $1000 \ nop \ endr [19:15] 4000* [19:16] Hey. Offtopic. Can the Master Ball miss in gen 1? [19:19] doesn't look like it [19:20] It's my understanding also that it bypasses stuff that could make it miss. [19:21] Someone was adament about the fact that the master ball is a victim of the potential gen 1 miss. [19:22] pokered/engine/items/items.asm:192 [19:26] it can fail on marowak [19:26] and youd lose the ball [19:27] but i dont think you get it until after [19:27] Yeah, Silph CO is after that. [19:27] is \@ global across all files? [19:29] i think it's local to the macro that calls it [19:29] @ = anonymous [19:33] aha [19:33] \@ is amazing [19:33] I can do something like: [19:33] \@ EQU const_value [19:33] ; stuff [19:33] const_value = const_value + 1 [19:34] It doesn't work on trainer's pokemon either. You lose the ball too, I think [19:34] *trainers' [19:35] it won't work either if you write code to where the OAM DMA routine is to jump to some code that will always make the ball miss [19:35] :P [19:35] That would be awesome in a hack. [19:35] "Omg, master balls are free at the mart" [19:35] "..what" [19:36] lel [19:36] well if it was a hack you'd just edit the ball code itself [19:36] the OAM DMA routine is in hram [19:37] and it's called every frame [19:37] so you can modify the code in hram to jump wherever you want [19:38] Yeah. Actually, I was thinking about that today. I had this idea of a youngster Joey hack. Where you start off with a Rattata. And are not allowed to catch other mons. [19:38] I could just make all the balls fail. [19:38] padz: anything else for 322? [19:38] (i'm gonna keep pressing until it's merged, i don't want to cram anything else in 322 because it's already too full of changes Kappa) [19:39] ugh so close [19:39] Unable to open incbin file 'wav/_481.pcm' [19:39] Wow luckytyphlosion OneHand [19:39] because fucking \@ has to put _ at the start of it [19:40] why are you using \@ for a filename? [19:40] \@ is a special character that increments every time in rept blocks [19:40] but I figured out that you can define it using EQUS [19:41] so I've been using it as a sort of "variable" [19:41] that I can put in a file name [19:41] i see [19:41] incidentally, the wav files I'm dealing with are numbers [19:41] gotcha [19:50] wait [19:50] does scan_includes account for filenames created through macros? [19:50] like "wav/\1.pcm" [19:51] i doubt it [19:51] crap [19:52] screw it I'll define everything manually [19:52] well except for the banks [19:52] or maybe I'll have to manually define them too [19:59] == Schattenjager [~Schattenj@mobile-access-bcee4a-154.dhcp.inet.fi] has quit [Ping timeout: 240 seconds] [20:07] == Schattenjager [~Schattenj@mobile-access-bcee4a-154.dhcp.inet.fi] has joined #pret [20:33] == Carl_Laptop [~Carl@unaffiliated/carl-miller/x-4159925] has joined #pret [20:34] 16:52 luckytyphl| screw it I'll define everything manually [20:34] this is what python is for [20:35] neat [20:36] PikalaxALT: rename ITEMMENU_FIELD to ITEMMENU_CLOSE [20:36] then ill merge [20:39] yeah I guess I should make a script [20:39] but maybe tomorrow [20:42] padz: k [20:43] [pokecrystal] PikalaxALT synchronize pull request #322: No more ldtile or dwtile - http://git.io/vCr0O [20:43] padz: ^ [20:44] commit message is backwards FailFish [20:44] forgive my derps, i'm very tired [20:48] [pokecrystal] yenatch closed pull request #322: Split out and comment phone and animation code. - http://git.io/vCr0O [20:48] [pret/pokecrystal] yenatch pushed 15 commits to master [+31/-3/±1364] http://git.io/vWwIW [20:48] [pret/pokecrystal] PikalaxALT 1e2ff96 - Replaced "ldtile" and "dwtile" with the "tile" equs macro [20:48] [pret/pokecrystal] PikalaxALT 4fa6c6d - Split up bank 2; other relabelings [20:48] [pret/pokecrystal] PikalaxALT da7849d - Restructured functions in main.asm to resemble the home functions they clone [20:48] [pret/pokecrystal] ... and 12 more commits. [20:49] Kreygasm [20:49] now to start working on 323 OneHand [20:50] == ProjectRevoTPP [ProjectRev@unaffiliated/twitch-plays-pbr/x-9644567] has joined #pret [20:50] I think I'll look into how to do git merge [21:02] Nope, too tired [21:11] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has joined #pret [21:24] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has quit [Ping timeout: 250 seconds] [21:28] == PikalaxALT [~PikalaxAL@unaffiliated/pikalaxalt] has quit [Ping timeout: 250 seconds] [21:41] shantytown: are you still here? [21:44] if tab complete does not work, no [21:45] ^ [21:45] ~ [21:48] == padz changed the topic of #pret to: https://github.com/wodim [21:49] ruler [21:51] == Carl_Laptop changed the topic of #pret to: https://github.com/pret [21:52] wodim is from Spain? [21:52] Spain is where nerds live. [21:54] therefore, wodim is possibly a nerd [21:54] how can I tell? [21:55] You have a Github account [21:55] You're a nerd [21:55] I see [21:55] I have a Github account too, but I don't live in Spain [21:56] too bad [21:56] you're not a nerd [21:56] just a ne [21:56] or an rd [21:56] == PikalaxALT [~PikalaxAL@unaffiliated/pikalaxalt] has joined #pret [21:58] PikalaxALT: would you consider FL4SHK a nerd, a ne or an rd? [21:58] I consider myself a nerd [21:59] for that you have to have a github account and to live in Spain [22:03] == FL4SHK [~fl4shk@2601:486:2:9870:222:19ff:fe31:1929] has quit [Ping timeout: 240 seconds] [22:05] == FL4SHK [~fl4shk@2601:486:2:9870:222:19ff:fe31:1929] has joined #pret [22:27] [pokecrystal] JimB16 synchronize pull request #319: Added comments and changed labels (mainly for AI- and Battle-Functions) - http://git.io/vCe8H [22:28] forgot about you [22:35] JimB16: those are some really long labels [22:37] some are more like comments so I could read the code better, but I can try to shorten them in the next days [22:53] == Carl_Laptop [~Carl@unaffiliated/carl-miller/x-4159925] has quit [Ping timeout: 246 seconds] [22:59] luckytyphlosion, are you the one working on yellow repo? [22:59] ya [22:59] thanks again if you are [22:59] TPP has an idea about a hack of yellow we want to do (after our next year hack), but it can only be done if there's a working repo of yellow so [22:59] again, thanks [22:59] o/ [23:00] that might be hard because I don't know how I'll be able to disassemble map scripts [23:03] huh? [23:17] [pokeyellow] zerfgog starred pokeyellow - http://git.io/vWw2g [23:25] == MrElephant [~Stegie@cpe-74-132-23-16.kya.res.rr.com] has joined #pret [23:36] padz: isn't gbz80disasm.py semi-broken? [23:42] go on [23:47] something about symfile detection being weird [23:48] unless if it was fixed [23:48] i thought shantytown fixed it [23:50] I also wanted to ask if gbz80disasm.py disassembles 'halt' or 'stop' wrongly with a 'nop' following? [23:50] dont think so [23:50] oh [23:50] yes [23:51] default rgbasm behavior is nopping halts [23:51] -h is for evil games like pokered that dont [23:51] dont know re stop [23:51] what about even eviler games that don't even use halt? [23:51] *cough* pokepinball [23:52] http://pastebin.com/fAc3tR2T [23:52] I think it was only 1 of the 2 cmds, just didn't remember which. [23:52] after copypasting the billion files needed for wram.py to work [23:53] so I guess wram.py needs to be fixed [23:54] why can't it use a symfile instead [23:54] i thought it did [23:54] n o p e [23:54] it requires the wram.asm file you use in the repo [23:55] == JimB [~Jim@p57A3FBCD.dip0.t-ipconnect.de] has joined #pret [23:55] well yeah, bssreader does [23:55] because thats what it does [23:55] hmm [23:56] wait [23:56] wram.py uses eval [23:56] yeah it should default to sym [23:56] I thought eval was evil [23:56] yes it does [23:56] it is [23:58] == JimB16 [~Jim@p5DCDE299.dip0.t-ipconnect.de] has quit [Ping timeout: 255 seconds] [23:58] why does it need to use eval anyways? [00:00] bssreader basically pretends to be rgbasm [00:01] using read_symfile instead is a good idea [00:01] hm [00:01] only problem is that symfiles don't include constants/hram [00:01] hardware constants can be manually supplied [00:03] oh [00:03] so it's defining constants [00:04] i think that was the main grab (picked up enums) [00:04] but i dont remember what wram.py was for, i dont think it was for gbz80disasm [00:05] well gbz80disasm.py is calling a function in wram.py [00:06] oh [00:06] 0b = binary [00:07] obviously it uses wram.py... [00:11] what why is value "(rNR10 0b 0x100)" [00:12] ???? [00:12] in "self.constants[name] = eval(value, self.constants.copy())", value is (rNR10 0b 0x100) [00:12] which is why the script breaks [00:13] self.constants.copy() works perfectly fine though [00:13] oh [00:13] its reading mod as 0b [00:13] he [00:13] heh [00:13] confirmed / $100 > % $100 [00:14] do you mean & $ff [00:14] right [00:14] keep confusing them [00:14] depends on context, but there should just be a lo() or hi() function [00:18] so I made a very hacky fix by running a different set of code if there's a syntax error [00:18] now I get W_WATERRATE - @ [00:20] more hacky stuff, replace @ with 0xd8a3 [00:20] NameError: name 'W_WATERRATE' is not defined [00:21] man this is such a bad way to solve this [00:25] now it's saying that wMainDataEnd is not defined [00:25] NOW IT ASKS FOR A SYMFILE [00:26] OMG IT WORKED [00:26] I SOMEHOW GOT GBZ80DISASM.PY TO WORK [00:28] too bad it doesn't store pointers [00:30] if anyone is interested: http://pastebin.com/5Dc0fx9a