[00:02] not that I can think of [00:03] I have to tie up a few loose ends in the code, but I think it will all just work now [00:04] though I do need to think about the metadata we put on the items [00:04] specifically, we need to be able to reliably tell the difference between dosbox, mame, and sae items [00:05] the easiest way to do it would just be to compare the emulator value against the list of amigas supported by sae [00:05] which isn't very long [00:06] (A500, A500P, A600, A1000, A1200, A2000, A3000, A4000, A4000T, CDTV and CD32) [00:06] but that's not very extensible, in the long term [00:06] I'd say make it sae-* [00:06] Then that. [00:07] yea, that'd be easy [00:07] or we could have another metadata property [00:08] emulator-type: sae, emulator: a1000 [00:08] In my heart, sae-* is easier [00:08] also easy to implement, but maybe not as easy for uploaders? [00:08] ok [00:08] I don't like adding metadata pairs, it's just more gotchas [00:08] yea [00:09] oh, there is one question naTmeg might know the answer for [00:10] did all of the amiga systems support all three video modes (low res, high res and super high-res)? [00:10] and did all amiga programs support all three modes? [00:16] seems like it's more complicated than just three modes [00:19] OCS was the first chipset, then ECS and AGA was the last. SuperHires is >= ECS. most old demos and games use OCS. ECS is not often mandatory. only the latest games depend on AGA [00:22] btw CD32 and CDTV are not supported [00:23] basically you just need two configs. an A500/A550+ with OCS/ECS for the old stuff (90%) and an A1200 with AGA for the rest [00:24] A3000, A4000(T) are kinds experimental [00:32] see http://wiki.classicamiga.com/Amiga_models for a chronological order [00:34] ok, so we would want sae-a500-highres.json and sae-a1200-highres.json and sae-a1200-superres.json as our config files? [00:34] forget superhires [00:35] why? [00:35] wouldn't that look the best? [00:35] that just another screenmode, 99% use hires [00:35] or lores [00:36] superhire may be usefull in apps [00:36] like dpaint, lightwave, read3d [00:37] so we would want to make it available [00:37] even if few things would need it [00:38] just use Hires. If a prog doe use another mode it will scale automatically to Hires, w/o changing the size of canvas [00:38] ok [00:38] so I guess we just need two different config files then; that's easy [00:39] SketchCow: I was thinking that we would want at least a handfull, plus the option to override the resolution on individual items [00:39] yes. you may consider to split ECS into another one [00:39] but two options is trivial :) [00:39] naTmeg: any suggestions? [00:40] a500, a1500, and a1200 perhaps? [00:40] or a500, a600 and a1200? [00:41] well an A500 for OCS, and A500+ for ECS and A1200 for AGA, use Hires, give at least 512kb zorro2fast-mem, better 1-2mb [00:41] that works for me [00:42] should the fast ram be in the config file, or in the per-item metadata? [00:42] the A500/OCS will do for 95% of you stuff [00:42] or I could just default to 2mb across the board [00:43] do sae.setModel(A500...) and then tweak cfg.memory.z2fastsize = 2 << 20 [00:43] then sae.start() [00:44] setModel() should always be the first command, then optionally tweak [00:45] naTmeg: will SketchCow want the ability to give some programs he uploads to IA more fast ram than others, or will the same amount be good for all of them? [00:45] just give 2mb [00:46] should work on every config [00:46] ok, that's easy as well :) [00:47] many demos and games does require at least 1mb total, eraly A500 has 512kb. so a memory-expansion was required :) [00:50] naTmeg: should they have different kickstart images? [00:50] or is there a common one that we can use? [00:51] absolutely, see http://wiki.classicamiga.com/Kickstart_Roms_Explained [00:51] it's best to use the right roms for each config [00:53] 1.3 (34.5) for A500, 2.04 (37.175) for A500+, 3.0 (39.106) for A1200 [00:53] thats the ver/subver for the original kickstart-roms [00:54] if you want to use the AROS-kickstart repalcement, like i do on the SAE-site, it does not matter. use it for all models [00:55] ah, that's what we were provisionally doing [00:55] (see https://ia801506.us.archive.org/9/items/emularity_engine_v1/scriptedamigaemulator.json) [00:56] ah yes [01:14] db48x: All 3 added [01:14] thanks [01:16] .cfg files in place [01:19] you know the emulator won't break if you leave those out where they're not needed :) [01:19] I am not sure of that [01:19] I am :) [01:19] files.push(cfgr.mountFile('/'+ modulecfg['driver'] + '.cfg', [01:19] cfgr.fetchOptionalFile("CFG File", [01:19] get_other_emulator_config_url(module)))); [01:19] What else is needed? [01:20] note how it's optional :) [01:21] Anything else we need to add? [01:21] * SketchCow fires up 10,000 ADFs [01:22] naTmeg: oh, what about NTSC vs PAL? [01:22] THAT is going to be a nightmare of all nightmares [01:22] if we leave it unset, will the emulator do the right thing? [01:22] But I will deal with that [01:23] it default to PAL. leave that. most stuff use PAL anyways [01:23] works for me [01:23] Disagreee but a default of PAL works for me too. [01:24] oh, we'll want an SAE logo for the splash screen [01:25] http://scriptedamigaemulator.net/images/logo.png [01:25] It's not a great logo but it is his current one [01:26] shall we call it 'sae.png'? [01:26] or something longer and more obvious, for when someone sees it in IA's images directory [01:27] i would suggest to use http://i1.wp.com/geekometry.com/wp-content/uploads/2015/03/amiga_check_logo_transparent_bkgrnd.png or the commodore-logo [01:27] We can't [01:27] owned [01:27] But I have something shortly. [01:28] oh [01:29] naTmeg: we use the MAME logo for things emulated by MAME, and the DosBox logo for things emulated by DosBox, so we should use the SAE logo for this stuff :) [01:29] ok [01:30] it's not a piece of art [01:30] if you could make one for a black (or transparent) background, that would fit better [01:31] just uses the same font like the "AMIGA" on the original 500 case :) [01:31] :) [01:32] too bad i did remember what font that was. i got it from some online-libs, but i will see what i can do [01:32] didn't [01:33] in a pinch I bet you could just invert the colors [01:33] it's not just b/w [01:33] http://fos.textfiles.com/sae.png [01:35] look goood :) [01:35] nice [01:35] Reload. Black background. [01:36] the 'U' is a little too wide or it that just here [01:37] hinting does look a little off on the U [01:37] but only if I zoom in [01:38] Reload now [01:39] nice [01:39] Anyway, use that [01:40] align AMIGA to left and color S,A,E chars to blue? [01:41] ok, I uploaded a provisional loader.js to the loaderlab [01:41] naTmeg: that's https://archive.org/details/loaderlab, in case you don't know the url yet [01:42] it's where we put test versions of this script [01:42] we can then put external_js=1 on an item to test using the script from the loaderlab [01:43] such as https://archive.org/details/broken_on_impact_asteroids?external_js=1 [01:43] just saw it, thx [01:43] What emulator and emulator_ext settings should we do [01:44] http://fos.textfiles.com/sae.png has the changes set now [01:44] SketchCow: nice [01:45] emulator: sae-a500, I suppose [01:45] emulator_ext is fine [01:45] Done and done [01:45] https://archive.org/details/broken_on_impact_asteroids&external_js=1 does not seem to work [01:46] Visiting my old friend incognito mode [01:46] ahem [01:46] you didn't see that [01:46] I remember how much pain before we did incognito mode [01:47] Uncaught (in promise) a {type: 1, code: "ENOENT", message: "Path /undefined does not exist."}code: "ENOENT"message: "Path /undefined does not exist."type: 1__proto__: Object [01:47] yea, I think I forgot to tell it where the rom is [01:50] apparently we don't explicitly tell MAME where the bios is; it just looks for it by the name or something [01:50] yeah, mame has crazy "look in all the places" code [01:51] MAME is by maniacs for the ungrateful [01:51] you give it a name and it basically search every dir it knows about for every variant of that, .zip .rom no extension whatever [01:52] which was fun when I was trying to debug a specific "file not found" and I had to step through like 300 breakpoints every time I booted [01:52] So, sae.png not there, that's fine. [01:53] It's still blowing up a tad in Chrome. [01:54] bai: heh [01:55] SAERunner loader.js:572 Cannot read property '0' of undefined [01:55] It's using scriptedamigaemulator.js.gz and maybe I need to be using something different? What are you using, db48x? [01:56] That's a Jason special sitting there [01:56] oh, you just need to update scriptedamigaemulator.js.gz; I found a minor bug in it which naTmeg has already fixed [01:57] just pull from the repository and run make [01:57] :) [02:02] Great assumption I have closure installed. One moment. [02:03] heh [02:04] Jesus christ, these pre-reqs [02:04] Just... just put it somewhere for me [02:04] sudo apt install closure-compiler [02:04] one sec [02:04] root@teamarchive0:/1/SAE/ScriptedAmigaEmulator-master# apt-get install closure-compiler [02:04] Reading package lists... Done [02:05] Building dependency tree [02:05] Reading state information... Done [02:05] E: Unable to locate package closure-compiler [02:05] sent [02:07] No URL? [02:07] It's easier for me, I swear [02:07] oh, one second :) [02:08] Otherwise I'm in gmail, download to my machine, scp to the machine, then install [02:08] It's like.... [02:08] http://erebor.db48x.net:8000/emulators/sae/scriptedamigaemulator.js [02:08] I forget that most people don't use emacs for their email [02:08] which means that they can't save a file to any machine in one step [02:08] s/most/almostnobdy/ [02:08] :) [02:09] Also, I would give a thousand billion dollars for us not to have the "loading x of x" on emularity not split to two lines [02:09] I THINK I loaded it in... [02:09] you need a bigger screen? [02:10] I am on a 4K monitor, dave [02:10] I would literally need to knock out a wall [02:10] It does this everywhere [02:11] I do like we're working hard to bring to life this incredibly shitty game of asteroids [02:11] error 31, SAEE_Memory_NoExtendedRom [02:11] well, I get a different error, at least [02:11] Hello, ONLY TWO PEOPLE IN THE PLANET WHO COULD DIAGNOSE THIS [02:12] * SketchCow leer [02:12] the rom is a zip [02:12] you need to specify aros-ect to cfg.memory.extRom [02:12] I bet that's bad [02:12] Literally the only two, do not go inside the same plane [02:12] SketchCow: heh [02:12] oh you have the 1mb aros image? [02:13] thats not working, you need 2x 512k [02:13] Tell me where to get [02:13] I'll shove it in [02:13] w8 [02:13] u wot m8 [02:14] http://netcologne.dl.sourceforge.net/project/aros/nightly2/20160730/Binaries/AROS-20160730-amiga-m68k-boot.lha [02:14] Realize db48x's face [02:14] when he finds out [02:14] I can unpack a lha [02:14] :) [02:14] but can't install closure [02:16] aros-amiga-m68k-rom.bin -> cfg.memory.rom, aros-amiga-m68k-ext.bin -> cfg.memory.extRom [02:16] hrm [02:17] what do here, db48x [02:17] I have them [02:17] I could zip them [02:17] I could compress them [02:17] I could dance on their little skulls [02:18] SketchCow: list them both in the bios_filenames array [02:18] And just upload as uncompresed? [02:18] sure [02:18] or zip them, I guess [02:18] oof [02:19] zip preferred [02:19] zip together or not [02:19] individually [02:22] My favorite thing for me is "this sort of work... UPLOAD 10,000 THINGS" [02:22] :) [02:22] ok, I updated the loader to deal with two bioses [02:22] I saw! [02:23] Makes the wrap issue more prominent but we'll burn that bridge when we come to it [02:23] When the big problem is "ohhhh it's a little ugly" I'll be very happy. [02:23] OK, so I THINK I did it right? [02:23] oh, but maybe not quite right [02:23] Erroring out [02:23] yea, you did your part right [02:25] oh, minor details [02:26] it's doing some things... [02:27] cpu.illegal() op 00ff, pc 01a00102 -> ff3ad9cf scriptedamigaemulator.js.gz:1263:145 [02:27] cpu.exception() 3 (ff3ad9cf) at 1a00102 -> 149dd26! scriptedamigaemulator.js.gz:1263:145 [02:27] cpu.illegal() op 00ff, pc 01a00102 -> ff3ad9cf scriptedamigaemulator.js.gz:1263:145 [02:27] cpu.exception() 3 (ff3ad9cf) at 1a00102 -> 149dd26! [02:27] Now, remember, I threw a completely random-ass ADF [02:27] Let's throw another up [02:28] it starts with an 'A', so it's not that random [02:28] Don't judge me! [02:28] :) [02:29] SketchCow: https://xkcd.com/221/ [02:29] did you pass a the roms zipped? [02:29] yes [02:29] nope :) [02:29] I guess I can unzip them [02:30] I meant to ask [02:30] shouldn't they be unzipped when mounted with browserfs? [02:30] Version whatever should accept them zip or not zip [02:30] or is it a zip in a zip? [02:31] ADFs must also be unzipped (880k) [02:31] ah ok [02:31] bai: yes, but only if I actually use a zipfs [02:31] z.js did not exist yet :) [02:31] oh you're just doing a file mount, ok [02:32] I'm keeping it to asteroids until we know it's not the file [02:32] it's a real shame browsers don't just expose gzip via an API. would be nice to have a bunch of comon stuff like gzip, md5, crc32, etc [02:32] sounds legit [02:36] there should be an error if sea detects a zipped file. i'll add that... [02:46] Bad news is db48x hasn't come back [02:46] good news is because he's getting a new high score on shitty asteroids [02:47] no, it's because something is off [02:53] well [02:53] it's not actually unzipping them, and I don't see why [02:53] SketchCow: for the moment, could you just leave the kickstart files unzipped? [02:53] Yes, for your sanity. [02:54] Should I set them in the json as not? [02:54] yes [02:59] does mame and dos accept zipped files? i could add support for that, but i think native-unpacking is more preferable here [02:59] mame does [02:59] for dosbox we're treating each zip file as a drive [02:59] All of it done, and it does something and by something I mean not throw up errors. [02:59] db48x: ic [03:01] well, I guess that's progress [03:01] hm, it's frozzen and does eat cpu-time [03:01] seems running to me, just no picture? [03:01] same here [03:02] Allow me to make a second item. [03:03] SketchCow: might use one of the ones naTmeg already has on his site [03:03] since we know they work [03:04] project-x demo-rolling.adf good for testing [03:07] http://archive.org/details/Astronut_Days_of_Thunder_Blinkys_Scary_School_Pac-Man_19xx_Valhalla.adf&external_js=1 [03:08] well, that's slightly different [03:08] Agreed [03:09] http://archive.org/details/Zany_Golf_1988_Electronic_Arts_a2&external_js=1 same [03:09] Fine, fine, URL to known working one [03:09] (adf file) [03:10] asteroids was grabbed from the sae site [03:10] so it should be in the "known working" category [03:10] at least, known working with 0.8.3 or whatever it was when we ganked it [03:12] there seems to a memory problem [03:12] fast-ram get not configured [03:14] cfg.memory.z2FastAutoConfig == true ? [03:14] this._cfg.memory.z2FastSize = game_data.fastMemory || 2 << 20; [03:14] naTmeg: yes [03:15] hmm [03:22] Who needs info from who [03:23] *** Coderjoe has quit IRC (Read error: Operation timed out) [03:27] no its not a ram thing. just veryfied it, must be something else [03:32] cpu seems not working. after the last line there should come cpu.illegal() op 4e7b [03:33] *** Coderjoe has joined #jsmess [03:38] * db48x yawns [03:38] time to sleep [03:38] We'll pick up when we can. [03:38] naTmeg: If you can get some ideas for us, it'd be good [03:39] naTmeg will probably find the bug in loader.js 5 minutes after I'm asleep [03:39] i'm on it, but soon bed time for me too [03:43] hmm, here's a log of how it should look like for an A500 http://scriptedamigaemulator.net/127.0.0.1-1470022867656.log [03:43] set cfg.serial.enabled to true for testing [03:44] i'll test more tommorw. too tired now [03:51] i'm out n8 [03:51] *** naTmeg has quit IRC (Leaving) [06:27] *** Coderjoe has quit IRC (Read error: Operation timed out) [06:44] *** Coderjoe has joined #jsmess [08:02] *** Coderjoe has quit IRC (Read error: Operation timed out) [08:03] *** Coderjoe has joined #jsmess [13:48] *** Coderjoe has quit IRC (Read error: Operation timed out) [14:03] *** Ctrl-S___ has quit IRC (Write error: Connection reset by peer) [14:04] *** mattl has quit IRC (Ping timeout: 260 seconds) [14:04] *** gamingrob has quit IRC (Ping timeout: 260 seconds) [14:06] *** Coderjoe has joined #jsmess [14:06] *** naTmeg has joined #jsmess [14:13] *** Ctrl-S___ has joined #jsmess [14:21] *** gamingrob has joined #jsmess [14:24] *** mattl has joined #jsmess [14:33] db48x: hi, https://archive.org/download/loaderlab/joader.js gone? [14:34] loader.js [14:35] hmm, it is missing [14:35] odd. apparently I was the last to touch it... [14:35] domes don't load at all now [14:35] demos [14:35] try now [14:36] now "wroks" again [14:37] works [14:37] stuck on the white screen [14:38] not sure how I managed to delete the file [14:38] but the logo get displayed now :) [14:39] progress! [14:39] could happen [14:40] ah you added serial.enabled [14:41] no output, so the cpu does not run it seems [14:41] yea, I think maybe I messed up the upload right after I did that [14:41] is http://erebor.db48x.net:8000/example_amiga.html ver 0.8.3? [14:42] because thats working [14:46] no, it's 0.9.0 [14:46] oh [14:46] it must be something I'm doing wrong when loading it from IA [14:47] could it be an endian-issue? [14:47] *** Coderjoe has quit IRC (Read error: Operation timed out) [14:47] because example_amiga.html inits the metadata manually (view the source and you'll see it), while loading it from IA inits it from the metadata on the item and from the json file [14:48] shouldn't be [14:51] ok ic [15:26] *** Coderjoe has joined #jsmess [15:26] but it seems to be exactly the same [15:27] model, memory, resolution, rom and floppy images [15:52] *** Coderjoe_ has joined #jsmess [15:52] *** Coderjoe has quit IRC (Read error: Operation timed out) [15:58] i've edited .gitignore by hand. now i have a confict, arg [16:11] i i think i've fixed it [16:12] added more debug output of the files passed [16:12] also added an error if a ZIP get detected [16:21] db48x: could you run makefile [16:29] done [16:29] but only locally; I can't update the one on IA, if that's what you were asking [16:33] yes, so i could test too [16:33] If you give it to me to upload, it'll go. [16:35] there should lines like SAEF_ZFile_fopen_file() opening 'aros-amiga-m68k-ext.bin', 524288/524288 bytes, crc32 0x5c39d820, magic 11144ef9 [16:38] SketchCow: same url as before, on erebor [16:39] Found [16:41] I think replaced? [16:41] SAEF_ZFile_fopen_file() opening 'Asteroids.adf', 901120/901120 bytes, crc32 0x00000000, magic 444f5303 [16:41] look good [16:41] SAEF_ZFile_fopen_file() opening 'aros-amiga-m68k-ext.bin', 524288/524288 bytes, crc32 0x00000000, magic 11144ef9 [16:41] SAEF_ZFile_fopen_file() opening 'aros-amiga-m68k-rom.bin', 524288/524288 bytes, crc32 0x00000000, magic 11114ef9 [16:42] all ok, is that from IA? [16:42] yes [16:43] get that too [16:43] so rom and file-data is valid [16:45] is the use of setTimout() limited in some way? [16:46] the minimum timeout is 4ms [16:46] it seems the cpu is not working, does not get recalled [16:47] how you check that? i have a setTimeout(func, 0) somewhere [16:48] that's fine, it's clamped to 4ms [16:53] i've updated m68k.js, adding debug-output [16:54] built [16:54] SketchCow: want to update it? [16:54] should count to ~300 till booting is done [17:01] On it [17:21] db48x: how do you clamp setTimeout()? do you overwrite setTimeout() with ustom code? [17:22] +c [17:23] I THINK the new one is in [17:24] does not count at all here [17:25] i think there's some problem with setTimeout [17:26] Is the new version working in the system? [17:28] internaly, there is a global variable defined in ScriptedAmigaEmulator() first line: SAER = this; and later setTimeout(function() { SAER.m68k.m68k_cycle(hardboot, startup); }, 0); [17:30] maybe it doe not like the global [17:34] So, here's the thing [17:34] There's always a chance something in the IA environment resets a variable. [17:35] Anyway, I believe I shoved it in right. [17:36] how, aren't variables accessed by their name? [17:37] Yes. [17:38] I'm just saying, it's an odd framework, if we're hunting for problems. [17:38] I suspect you're moving along it well, though. [17:38] We're close! [17:38] ic :) [17:50] Is someone waiting on someone? [17:51] dunno [17:54] it the new code on IA? i just reloaded https://archive.org/details/broken_on_impact_asteroids&external_js=1 and it does not count. cpu is not working. i think it's a setTimout() problem. [17:54] is [17:55] Let me try [18:05] SketchCow: i've just added more debug-output, could you rebuild [18:20] I can't, db48x has to [18:20] If you're able to do a closure [18:23] Are you able to do a make and then hand me the output? [18:30] you mean running makefile? i can't [18:30] :) [18:31] **************** CAN ANYONE IN THE CHANNEL DO THIS ****************************** [18:33] hi what are we doing? [18:34] debugging :) [18:35] Vito` and arkiver - please message each other to discuss stuff [18:35] bai: We can't compile the closure [18:35] Could you do it? [18:35] Use the makefile to build? [18:36] which project, sae? [18:36] Yes [18:36] It's in the github [18:36] needs closure-compile [18:36] hmm, lemme see if any of my systems have that readily available [18:37] well, 5 million java dependencies, but it's installing in my vm right now [18:38] it got stuck somewhere. i've added debug-code.. [18:39] hmm [18:39] closure bails with an error [18:39] "--language_out is not a valid option" [18:40] maybe this depends on a newer version of closure than I have, removed that option and it says "unknown lanuage ECMASCRIPT6 specified" [18:50] *** Coderjoe_ has quit IRC (Read error: Operation timed out) [18:54] where's the repository? I've got a closure build with --language_out handy [18:54] no idea if any of the other prereqs are ok [18:54] but we'll find out [18:54] https://github.com/naTmeg/ScriptedAmigaEmulator [18:54] ah cool [18:55] yeah lovely, the version of closure ubuntu installed was from 2013 [18:55] computers are great [18:55] same on Debian jessie [18:55] I had to hijack JAVA_JARPATH [18:55] is the source map also needed as an artifact or is it just the js? [18:56] the source map is useful for debugging but isn't necessary for runtime [18:56] so maybe it would be useful right now while things are still in flux [18:57] http://depot.ninjawedding.org/scriptedamigaemulator.js [18:57] http://depot.ninjawedding.org/scriptedamigaemulator.js.map [18:57] that's from commit 83e9dbd1e604f5fb912c1cdf3da8e4a000f41fc1 [19:02] the js.gz is now installed [19:06] It's doing SOMETHING [19:06] too strange [19:12] I gotta run, bbl [19:14] *** Coderjoe has joined #jsmess [19:18] naTmeg: Confused? [19:19] cpu gets called running, but does not progress. the error must be somewhere else [19:19] -running [19:26] bai: Maybe you might have some ideas here [19:30] well, not being familiar with the inner workings of the emulator yet...I can say that it is definitely running the loop (console log printing an incrementing number)...a timeline capture shows that it is getting through to SAE_M68K.m68k_cycle() [19:30] SketchCow: erebor.db48x.net:8000/example_amiga.html does work, so it should be something in combination with the framework [19:30] that's calling SAEO_Events.do_cycles() which calls SAEO_Playfield.hsync_handler which calls SAEO_Events.framewait which calls SAEF_sleep [19:30] so it almost seems like it's just waiting for something [19:31] something which never comes [19:31] it gets stuck in SAEF_sleep? [19:31] it's calling SAEO_Video.render_screen which is uploading a texture to the gpu [19:31] no I don't think it's stuck [19:32] it's just sleeping for its prescribed time, and then the next frame starts [19:32] yes [19:32] the profile all seems to be doing what you'd expect...lemme see what the textures look like on the gpu [19:33] oh wait a minute, I do see this in the console [19:33] WARNING: Too many active WebGL contexts. Oldest context will be lost. [19:33] several times [19:34] so maybe we're creating new webgl contexts every frame rather than one at the beginning? [19:34] maybe something related to the change where we pass in a canvas instead of letting SAE handle its own [19:34] the canvas we pass in already has an active context, I believe [19:35] since we're using it to draw logos [19:35] I'm back [19:35] emularity doesn't draw on the canvas any more [19:35] oh ok, so the canvas we pass in is fresh and clean, no active contexts? [19:35] correct [19:37] naTmeg: you don't have to clamp setTimeouts; what I meant was that when you pass in a zero timeout, the browser doesn't try to activate your timeout until at least 4ms have passed [19:37] yeah we're not overriding setTimeout(), the "clamping" is just default browser behavior [19:38] ah ok [19:38] (btw if you're using setTimeout() to run your emulator's main loop, it might run a bit smoother if you use requestAnimationFrame) [19:44] naTmeg: where is the canvas context handling happening in the code? [19:44] like when we pass in a canvas, where does that go? [19:44] bai: video.js line 200 [19:44] SketchCow: could you upload the source map and the original source for SAE as well as the compiled script? [19:44] basically scriptedamigaemulator.js.map and the whole sae directory from git [19:45] it'll make debugging easier [19:46] naTmeg: can you think of any reason why the context would be recreated every frame? [19:46] only place I see contexts being created is in CreateWindow [19:46] is document.getElementById(SAEV_config.video.id).nodeName == "CANVAS" ? [19:46] Wait, put the map into the site? [19:46] which I'm guessing is only called once right? [19:46] bai: yes [19:47] Give me the instruction directly, because I'm not sure the best way to do this [19:47] I've uploaded .map [19:49] bai: maybe video.js line 201 failed and it does line 204? [19:49] SketchCow: good, now the sae directory [19:50] so that the browser can download emularity_engine_v1/sae/amiga.js, emularity_engine_v1/sae/video.js, etc [19:51] bai: point is, you could also give DIV to cfg.video.id if so, sae will create a canvas and add it to the div [19:52] Uploading [19:53] naTmeg: looks like that part is ok [19:53] document.getElementById(SAEV_config.video.id).nodeName [19:53] "CANVAS" [19:53] ok [19:55] hmm, the webgl context eror doesn't show up at all when I'm not trying to use WebGL Inspector. maybe that's a red herring [19:55] but WebGL inspector kind of freaks out about something we're doing [19:56] sae directory uploaded [19:56] you could try cfg.video.api = SAEC_Config_Video_API_Canvas; to switch to canvas 2d rendering [19:58] SketchCow: thanks :) [20:04] Nobody should be waiting on anyone; let me know if you're waiting on something. [20:06] hmm [20:06] SketchCow: we're all just digging through code right now I think [20:07] naTmeg / db48x - one major difference I see in the configs between ours and the one on scriptedamigaemulator.net is that floppy.drive.0.file.data in ours is a Uint8Array whereas the official one is a binary string [20:07] is that ok? [20:08] it does convert the string to a Uint8Array [20:09] utils.js 485 [20:10] but i've alredy checked that, should be okay [20:10] ok [20:11] have you tried cfg.video.api = SAEC_Config_Video_API_Canvas; so it does not use WegGL at all? [20:12] hard for me to do that test, db48x or SketchCow would have to put those changes in the config - I'm just poking around in the running instance with dev tools [20:12] easy enough to test [20:12] ok [20:14] no change [20:14] (I just broke at loader.js:568, set this._cfg.video.api = ..., and continued) [20:16] hmm, ok [20:17] it does seem to get into some sort of busy-wait, like it sort of locks that tab [20:20] yes. cpu does work, but the PC does not increase somehow [20:23] do you have an original rom at hand? [20:23] maybe some problem with AROS [20:24] hmm, was just gonna say the same thing about the floppies for the aros rom, but with one additional change here [20:24] our version is a Uint8Array vs a binary string, and yours has a crc32 value while ours does not [20:26] the crc32 is optional. you could pre-calculate it (like i do) for a faster start. if crc32===false, sae will calc it laster [20:26] oh, also - maybe we have our roms mixed up? [20:26] ? [20:26] looks like two files, aros-amiga-m68k-ext.bin and aros-amiga-m69k-rom.bin right? [20:27] in our case, memory.extRom.name = aros-amiga-m69k-rom.bin [20:27] and memory.rom.name = aros-amiga-m68k-ext.bin [20:27] aros-amiga-m68k-rom.bin -> cfg.memory.rom, aros-amiga-m68k-ext.bin -> cfg.memory.extRom [20:27] yeah, I think we have them backwards [20:27] oh :) [20:30] db48x: where does game_data come from? [20:32] gets built in the loader [20:32] ah there it is, https://ia801506.us.archive.org/cors_get.php?path=%2F9%2Fitems%2Femularity_engine_v1%2Fsae-a500.json [20:32] I think we need to swap the bios_filenames [20:33] -rom first then -ext [20:33] hah [20:33] yes [20:33] ok, i removed all debug output, since we found the bug [20:33] well, we found *A* bug :P [20:33] :) [20:34] i'm pretty sure that was the reason [20:34] easy to test [20:36] aha, it changed the color of the canvas! [20:36] a cosmetic tip for loader: move line 568 after setModel(), like to line 588. you can also disable serial.enbaled [20:36] ah, and it drew a window [20:36] ok [20:37] OK, one moment [20:38] bai: I can't believe I didn't notice that myself [20:38] That's why I like throwing people at the problem [20:38] hundreds [20:39] yep, more eyeballs [20:39] *** Coderjoe has quit IRC (Ping timeout: 260 seconds) [20:39] db48x: only way I found it was a side by side comparison with a known-working config, heh [20:39] sae does try to accept every rom you throw at it, so thats why :) [20:40] I'm redoing the logo [20:40] bai: that was a good idea [20:40] (Because too big) [20:40] https://archive.org/details/Zany_Golf_1988_Electronic_Arts_a2&external_js=1 [20:41] yeah! :) [20:42] the game seems not compatible with AROS :) [20:42] That's fine [20:43] i'm stuck an a grey screen [20:43] but it does work now [20:44] I think I need to be handed the "old" loader now. [20:44] Old javascript, I mean [20:44] And not the debug insanity [20:44] you may run makefile once again to get rid of the debug output [20:46] https://archive.org/details/Astronut_Days_of_Thunder_Blinkys_Scary_School_Pac-Man_19xx_Valhalla.adf&external_js=1 [20:48] also not compaible. beleve me, you want to get those original roms asap [20:48] *** Coderjoe has joined #jsmess [20:50] Working fine for me [20:52] I get "S/Astro: file is not executable" after it draws a menu [20:52] Then enter 3 [20:52] object not found [20:53] bai: same here, type "execute s:astro" in the aros-shell :) [20:53] it works in firefox. maybe this is our old friend chrome 51 [20:54] i'm also testing on chrome [20:55] oh no - it does work in chrome if I type 3 first [20:55] ahh and then press the LMB [20:55] if I first try 1, then do 3, it doesn't work [20:55] it works :) [20:55] SketchCow: I built it [20:56] rebuilt, I suppose I should say [20:56] What's your URL again? [20:58] http://erebor.db48x.net:8000/emulators/sae/scriptedamigaemulator.js [20:58] grab the map as well [20:58] https://archive.org/details/Killing_Game_Show_The_demo-playable_1990_Psygnosis_cr_Conqueror_Zike&external_js=1 [20:59] Done, done, done. [21:02] looks good. and yeah db48x the loading always wraps for me too, heh...the KiB does it [21:02] We can screenshot and show. [21:03] nice [21:04] good crowd noise [21:04] bai: what do you mean? [21:05] db48x: when it's loading files, it frequently wraps to the next line, and the only thing on the next line is the "KiB" in the loding indicator [21:05] db48x: We can do a screenshot, I'll show you. [21:05] just throw a white-space: nowrap; on that element [21:08] oh, I suppose [21:09] gg [21:11] I love that I can change the pitch of the music in this demo by scrolling the page :P [21:11] that's a feature :) [21:14] https://archive.org/details/Gods_demo-playable_1991_Renegade&external_js=1 [21:14] I've got a new sae logo, waiting for an op to shove it in [21:19] the gods demo does not work for me. stuck at the color-stripes [21:19] It does work. [21:20] Eventually. [21:20] Takes a while. [21:20] oh :) [21:20] yeah it eventually started playing music for me [21:23] after you think your done, comment-out line 624 in loader.js this._cfg.debug.level = SAEC_Config_Debug_Level_Log; [21:24] good idea [21:25] common user doesn't need to see uninteresting debug-stuff [21:27] standard level is "warn", so warning will still get printed. soo config.js for possible levels.. [21:27] see [21:27] SketchCow: looks like you forgot to fix sae-a1200.json [21:28] Am. [21:29] Fixed [21:30] Is the loader static, or are you still doing things, db48x? [21:31] I just tweaked it, but there's one thing I still need to do [21:31] The wrap!! [21:39] but the one thing I have to do won't affect how it works [21:39] just how nice the code is [21:43] So you consider the loader static, or should I wait to push it in? [21:43] naTmeg: oh, btw [21:43] I may just demand repo access going forward to push our code in in the future. [21:43] I noticed that the resolution of the canvas is wrong [21:44] db48x: why do you mean? [21:44] how [21:44] might just be me though; I might have zoomed out or something [21:46] should be 720x568 for hires [21:48] I'm getting 560x384 [21:48] { "name": "Scripted Amiga Emulator, A1200", "js_filename": "scriptedamigaemulator.js.gz", "bios_filenames": [ "aros-amiga-m68k-rom.bin", "aros-amiga-m68k-ext.bin" ], "native_resolution": [720,568], "driver": "A1200" [21:48] } [21:48] Definitely right there [21:49] naTmeg: Do you have joystick mapped anywhere? [21:50] db48x: see console line ~10. sae.video() WebGL mode, 720x568 pixels, 16 bpp [21:51] yes, but the canvas itself is too small [21:51] so the browser scales it down [21:51] I must not be resizing it [21:51] SketchCow: shift/ctrl=fire0/1 arrows=move [21:52] Thank youuuuu [21:54] I'm trying a screenshotting. [21:54] 50-50 THIS works out the first time. [21:54] db48x: oh ic what you mean [21:55] db48x: maybe i should do canvas.style.width = ... ? [21:55] New logo is in. Looks nice. [21:56] SketchCow: yes, it does [21:57] naTmeg: yes. specifically, I should call resizeCanvas [21:57] I do in the MAME/DosBox case, but not in the SAE case [21:57] partly because I forgot, and partly because I haven't fixed the split between them [21:57] ReferenceError: nativeResolution is not defined(.) [21:58] SketchCow: nice work! additionally, you may write SAE in the blank area of the disk? [21:58] nah [21:58] It's pleasant this way [21:58] Gotta keep it classy [21:58] Notice the SAE on the letting [21:58] :) [21:58] i like it [22:03] better [22:05] db48x: i've updated video.js, maybe it does the job [22:05] ok, but I just had to tweak the loader [22:13] https://archive.org/details/softwarelibrary_amiga [22:21] SketchCow: I don't seem to have broken any other systems, and I fixed the scaling issue for SAE (although with a slight hack) [22:21] so I guess you can promote it if you want [22:21] I should get back to real work for a bit; I can do some factoring later to make the code better [22:22] OK. Let's do that. [22:22] Oh, can you do the nowrap thing? [22:22] That would really really really make a difference [22:23] I can show what I'm seeing if you want [22:24] ok guys, i'm out for today. have to work in 5h. and sorry SketchCow for being such a style-nazi, your logo-work is fine, thanks for that! [22:24] *** naTmeg has quit IRC (Leaving) [22:24] Thanks for making this thing, naT... [22:24] (Gone) [22:24] I like that [22:36] db48x: Did you want to attack the wrap thing now or later [22:36] (I've got people ready to do the loader switch) [22:54] sure, let me try it [23:01] SketchCow: I don't like the result any better [23:01] (I'm testing on https://archive.org/details/msdos_Dragons_Lair_1993_1993&external_js=1) [23:03] Still doing the same thing here. [23:03] shift-reload [23:03] Ah, working. [23:03] I'm not saying it's perfect, but it's better. [23:04] And we both agree the whole thing needs cleanup ultimately [23:04] I'm not sure it is [23:04] Looks fine over here [23:04] the way the size wobbles back and forth like that [23:04] I think having the size wobble is better than where it's shooting below the black line of the division [23:05] Oh yeah, a lot better. [23:05] (Using it on amiga) [23:05] It's a fine enough tie-off... for now. [23:05] You got work and I got to stop having a breakdown [23:07] This is an excellent point! [23:07] This was a very complicated thing [23:11] ok, I tweaked it again [23:11] what do you think now? [23:11] it still wobbles back and forth, but it should be a little less [23:12] Looks great [23:12] looks good. if you want less wobbling maybe a monospace font? [23:12] I don't really see much wobble here though [23:14] yea, monospace would fix it [23:14] but monospace isn't very nice, typographically [23:15] aww [23:15] I just got an email about the Emularity, but it's from some company wanting me to sign it up for some service [23:16] eh, monospace looks nice enough when used in the right places. not for everything, yeah [23:27] I can't do screenshots (and see what works) until they snap in the updated loader. [23:27] Waiting on them