--- Log opened Sat Jan 16 00:00:57 2016 |
00:14 | | Derakon[AFK] is now known as Derakon |
00:15 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
00:15 | | mode/#code [+o Crossfire] by ChanServ |
01:08 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
01:42 | | himi-cat [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:59 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: ] |
02:59 | | catadroid [catalyst@Nightstar-tmdb0u.dab.02.net] has joined #code |
03:04 | | Vash [Vash@Nightstar-b868ob.sd.cox.net] has joined #code |
03:04 | | mode/#code [+o Vash] by ChanServ |
03:25 | | Vash is now known as VV |
04:01 | | Turaiel[Offline] is now known as Turaiel |
04:55 | | celticminstrel [celticminst@Nightstar-uce74q.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:17 | | catadroid` [catalyst@Nightstar-odtvot.dab.02.net] has joined #code |
05:20 | | catadroid [catalyst@Nightstar-tmdb0u.dab.02.net] has quit [Ping timeout: 121 seconds] |
05:39 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
05:39 | | mode/#code [+o himi] by ChanServ |
05:40 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [[NS] Quit: Reboot] |
05:41 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code |
05:41 | | mode/#code [+ao McMartin McMartin] by ChanServ |
06:21 | | Derakon is now known as Derakon[AFK] |
08:09 | | Turaiel is now known as Turaiel[Offline] |
08:14 | <&McMartin> | Woot, progress |
08:14 | <&McMartin> | Now I just need a method of control better than POKE 53269, 247 |
08:15 | | * McMartin celebrates by having the C128 play the Nyan Cat theme on loop. |
08:27 | | * VV can't remember what's in 53269. probably graphicslicious though! |
08:28 | <@VV> | sprite enabled, for all but sprite 5? |
08:28 | <@VV> | ...3, I can math? |
08:28 | <&McMartin> | Indeed! |
08:29 | <@VV> | (the internet is a many-splendored thing) |
08:29 | | * McMartin got an actual Request from a long-standing member of the scene, is thus setting about accomplishing it. |
08:29 | <@VV> | So you know horton plaza in downtown |
08:29 | <@VV> | every time I go there I think I should get back to Vorns Ahoy |
08:29 | <&McMartin> | To build a program that demonstrates how activating sprites steals cycles from the CPU |
08:29 | <&McMartin> | Because it does so in a deterministic but nonmonotonic manner |
08:30 | <@VV> | When does it steal these cycles? |
08:30 | <&McMartin> | My conclusion from my initial experiments (where controlling sprite activation was just typing POKEs into a BASIC prompt after the program exited) |
08:30 | <&McMartin> | is that this has actually been cycle-exact emulated for awhile now anyway |
08:30 | <&McMartin> | Nobody just sat down and built a table about it |
08:30 | <&McMartin> | The cycles are mostly stolen while drawing the borders. |
08:30 | <@VV> | So like once per line |
08:31 | <&McMartin> | Right, and only on lines where those sprites are active. |
08:31 | <@VV> | notquiteasbadlines |
08:31 | <&McMartin> | alternately, evenworselines. |
08:31 | <@VV> | ...point |
08:32 | <&McMartin> | But yeah, it has fixed sets of 2 cycles where it will steal from the CPU to read the graphics data for the sprites live on this scanline |
08:32 | <&McMartin> | So you mark those |
08:32 | <&McMartin> | Then, any time you are going to *start* stealing, you have to make sure the 3 cycles previous to any point where you care about data are also stolen. |
08:32 | <&McMartin> | So this means, for instance, that 247 and 255 both end up stealing the maximum of 19 cycles. |
08:33 | <@VV> | so like if you have 0 3 6 active you lose 15 cycles, and 0 2 3 6 is 16 |
08:33 | <&McMartin> | I believe so, yes. |
08:34 | | * McMartin has switched the C128 over to playing videogames, can't check it for sure >_> |
08:34 | <&McMartin> | For the 65 cycle/263 scanline VIC-II all my tests are matching emulation |
08:34 | <&McMartin> | If that holds for the other chips, I've also tuned the graphics-timing sequence so that there is one version for each model |
08:35 | <&McMartin> | And it can decide at program start which bit to actually load in as code. |
08:35 | <&McMartin> | So that's nice |
08:36 | <@VV> | that is nice |
08:36 | <&McMartin> | For actual controls, I'm thinking keys 1-8 to toggle that sprite, and plus and minus to simply increment or decrement the activation register. |
08:37 | <&McMartin> | (That latter so that one can precompute the whole table of 256 and then just step through, watching it to confirm the results match your expectations) |
08:38 | <&McMartin> | There is also a much more pragmatic and boring and less awesome way to take these measurements, which is probably the superior approach but it is less awesome and also I'd done most of this before someone reminded me the technique would even work |
08:39 | <&McMartin> | Which is to say, set off the cycle counter on the timer chip and then wait a fixed number of cycles and then compute the lost cycles via the cunning technique of "subtraction". |
08:40 | <@VV> | wait, 65 cycles per scan line, and you get interrupted all the time by the graphics card? that puts you in some real economy of simulation situation there |
08:41 | <&McMartin> | I understand all those words but at 0041 I am not confident in my ability to parse them; could you expand on that a bit please~ |
08:41 | <&McMartin> | (If your point is "simulating that properly must seriously cost on the CPU side", it sure does, yep) |
08:42 | | Kindamoody[zZz] is now known as Kindamoody |
08:42 | <@VV> | My point is - getting anything done with the CPU getting silenced all the time |
08:42 | <&McMartin> | Oh, yes, well. |
08:42 | <&McMartin> | There's VBLANK. |
08:42 | <&McMartin> | Any line with no sprites active doesn't induce the sprite DMA cost |
08:43 | <&McMartin> | Badlines just eat 42-43 cycles outright if you aren't caring about them, and it basically turns into losing, um |
08:43 | | * McMartin does some math |
08:43 | <&McMartin> | 1 millisecond per frame |
08:43 | <&McMartin> | On PAL, a frame is 20 milliseconds |
08:43 | <&McMartin> | You'll Be OK (tm) |
08:44 | <&McMartin> | This is what you're getting instead of memory bus contention |
08:44 | <@VV> | point |
08:44 | <&McMartin> | (technically, this *is* memory bus contention, but resolving it is negotiated by the chips themselves instead of some bus controller) |
08:45 | <@VV> | right slep. |
08:47 | | VV [Vash@Nightstar-b868ob.sd.cox.net] has quit [Connection closed] |
11:30 | | catadroid` [catalyst@Nightstar-odtvot.dab.02.net] has quit [[NS] Quit: Bye] |
12:08 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has joined #code |
12:09 | | mode/#code [+o Crossfire] by ChanServ |
13:25 | <@gnolam> | TheWatcher: https://twitter.com/gnat/status/687741353145405440 |
13:47 | <@TheWatcher> | Heheheh |
14:11 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
14:51 | <@gnolam> | Re: Labyrinth and Bowie's dangly parts: https://www.youtube.com/watch?v=lKLTP04JGc8 |
15:11 | <@gnolam> | Ach, mischan |
15:56 | | celticminstrel [celticminst@Nightstar-uce74q.dsl.bell.ca] has joined #code |
15:56 | | mode/#code [+o celticminstrel] by ChanServ |
17:29 | | thalass [thalass@Nightstar-283.o7s.158.104.IP] has joined #code |
17:29 | | mode/#code [+o thalass] by ChanServ |
17:40 | <&jerith> | I just got https://github.com/bloomberg/ocamlscript compiled and working. |
17:40 | <&jerith> | Now I have no idea what to do with it. |
18:03 | | Turaiel[Offline] is now known as Turaiel |
18:25 | | Derakon[AFK] is now known as Derakon |
18:47 | | Vash [Vash@Nightstar-b868ob.sd.cox.net] has joined #code |
18:47 | | mode/#code [+o Vash] by ChanServ |
18:54 | | macdjord is now known as macdjord|slep |
19:07 | | Vash is now known as VV |
19:36 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has quit [Connection reset by peer] |
19:37 | <@gnolam> | https://twitter.com/simula77/status/677815750141329408 |
19:51 | | catalyst [catalyst@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
20:04 | | VV [Vash@Nightstar-b868ob.sd.cox.net] has quit [Connection closed] |
20:17 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [Connection closed] |
20:19 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
21:44 | | Kindamoody is now known as Kindamoody|afk |
22:02 | | Vash [Vash@Nightstar-b868ob.sd.cox.net] has joined #code |
22:02 | | mode/#code [+o Vash] by ChanServ |
22:05 | <@Syloq> | People, what a bunch of bastards. |
22:05 | | * Vash recommends avoiding them |
22:05 | | Vash is now known as VV |
22:17 | <@thalass> | Augh. I went to write "HIGH" in some arduino code and wrote "HAI" instead. |
22:18 | <@VV> | *Kirby waves at thalass* |
22:18 | < abudhabi> | Syloq: Indeed! How dare they be born out of wedlock! |
22:18 | <@thalass> | haha |
22:19 | <@Syloq> | abudhabi, I wish being born out of wedlock would excuse their lameness. However...it doesn't. |
22:52 | | Crossfire [Z@Nightstar-r9lk5l.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
23:13 | | Turaiel is now known as Turaiel[Offline] |
--- Log closed Sun Jan 17 00:00:13 2016 |