code logs -> 2013 -> Sun, 25 Aug 2013< code.20130824.log - code.20130826.log >
--- Log opened Sun Aug 25 00:00:34 2013
00:04
<@Namegduf>
XD
00:05
<@Namegduf>
There are courts.
00:29
< [R]>
gg
00:33 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
00:33 mode/#code [+qo Vornicus Vornicus] by ChanServ
00:36
<@Azash>
Namegduf: Litigation costs money
00:40 You're now known as TheWatcher[T-2]
00:41
< [R]>
<ender> https://i.chzbgr.com/maxW500/7752365312/hCB9D0CEA/
00:41
<@Namegduf>
Azash: Small claims isn't that rough, but fair enough.
00:42 You're now known as TheWatcher[zZzZ]
01:09 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer]
01:11 thalass [thalass@Nightstar-de48278f.bigpond.net.au] has joined #code
01:22 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
01:22 mode/#code [+qo Vornicus Vornicus] by ChanServ
02:54 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.]
02:57 RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code
03:43 * Vornicus finds himself trying to remember the way to list a disk's contents on c64
03:48
<&McMartin>
LOAD "$",8
03:48
<&McMartin>
LIST
03:48
<&McMartin>
Note: do not load it ",8,1", it will try to load it into screen RAM
03:49
<~Vornicus>
I just found it as you typed apparently.
03:49
<~Vornicus>
(it was in the 1541 guide).
03:49
<&Derakon>
I remember doing "LOAD"*",8,1".
03:49
<&McMartin>
That's "load the first entry on the disk"
03:49
<&McMartin>
This being an era where you did not have sorted directory listings
03:50
<~Vornicus>
I could never figure out what the point of the ,1 was. Some things demanded it but I could never figure out what it was up to.
03:51
<&McMartin>
It means "the first two bytes of the program loaded are the address to which to load this file."
03:51
<&McMartin>
Without it, you will load into location 0x0801.
03:52
<&McMartin>
(Start of BASIC listing)
03:52
<~Vornicus>
oh I see.
03:53
<&McMartin>
Most programs set it up so that the first two bytes were indeed 01 08, meaning it didn't matter how you loaded it
03:53
<&McMartin>
But it was also a common trick to load directly into the I/O routines, thus hijacking the entire system as part of loading (so you wouldn't have to type RUN once it finished, etc.)
03:54
<~Vornicus>
Wild.
03:54
<~Vornicus>
Yeah, I remember programs that did that and it befuddled me
03:54
<&McMartin>
I think I may have articles explaining the trick around here somewhere~
03:55
<&McMartin>
A lot of the old magazines with type-in programs had type-in assembly programs that loaded into 0xC000 so you had to ,8,1 them and then type SYS 49152 instead of RUN.
03:57
<&ToxicFrog>
Why?
03:57
<&McMartin>
So that you could enter the program in the first place without trashing the program doing the entering.
03:58
<&McMartin>
(There was, in the end, a way around this, but they generally did not use it.)
03:58
<&McMartin>
(I'll have to look it up, it was nuts)
03:58
<&McMartin>
(But first, dinnermachines)
04:10
<&McMartin>
OK
04:10
<&McMartin>
To the WABAC machine, and about 1986 or so
04:11
<&McMartin>
Step 1: Type in a 30-line or so BASIC program, about 25 lines of which are just data statements full of numbers.
04:12
<&McMartin>
This is read in and then turned into POKE statements to write a very small interrupt handler tied to the keyboard handler that will, whenever you hit return, compute and print a checksum of the line typed into the top right of the screen.
04:12
<&McMartin>
Step 2: Save that program out, since you'll be running it whenever you start typing in a BASIC program.
04:12
<~Vornicus>
I remember this bit, it was befuddling until I figured out what was going on
04:13
<&McMartin>
Step 3: clear out your BASIC listing and, with the proofreader running, type in the machine language editor program also in that book of programs
04:13
<~Vornicus>
hooray, MLX
04:13
<&McMartin>
This is about 6 printed pages long, so you're going to want to have the line checksummer active, but it's also 100% BASIC, so it's easy to work out.
04:13
<&McMartin>
It's also a pretty nice program as BASIC utilities go.
04:13
<&McMartin>
Step 4: https://hkn.eecs.berkeley.edu/~mcmartin/astropanic/listing2.png
04:14
<&McMartin>
Repeat for one to four thousand or so numbers
04:14
<&McMartin>
Now, since MLX is a BASIC program, generally you can't put your routines there. That would wreck MLX while it was running.
04:14
<&McMartin>
So they put it up at the top of available RAM instead.
04:15
<~Vornicus>
thus, SYS 49152.
04:15
<&McMartin>
(There is 4K of RAM between the BASIC ROM and the memory-mapped I/O region; this is traditionally used for your .bss sections, but nothing stopping you from putting whole programs there other than RUN not reaching them.)
04:16
<&McMartin>
That's all well and good, but then suppose your program is more than 4K in size. You're going to *have* to put it in the BASIC area.
04:16
<&McMartin>
The solution for that is to *change where the BASIC area is before loading MLX*
04:16
<&McMartin>
Which reminds me, I need to correct my earlier statment
04:16
<&Derakon>
Ahh, the joys of having total control over the machine.
04:17
<&McMartin>
Loading ,8,1 loads it into the location specified in the first two bytes of the file.
04:17
<&McMartin>
Loading ,8 ignores the first two bytes of the file and instead loads it to the base address of the BASIC area.
04:17
<&McMartin>
Wherever that may happen to be.
04:18
<~Vornicus>
There is, of course, a pointer somewhere that tells the computer where that is
04:18
<&McMartin>
Yes.
04:18
<&McMartin>
Here we go.
04:18
<&McMartin>
I now begin quoting:
04:19
<&McMartin>
1. Reset the computer by turning it off, then back on.
04:19
<&McMartin>
2. Type this line: POKE 44,23:POKE 23*256,0:NEW
04:19
<&McMartin>
3. LOAD the MLX program into memory.
04:20
<&McMartin>
That looks like it moves the base BASIC address to 0x1701.
04:20
<&McMartin>
(Apparently the first byte in BASIC RAM also has to be zero~)
04:23
<&McMartin>
Hmmm
04:23
<&McMartin>
Actually, I could probably write a relocator in Ophis for some of these silly 49152 ones
04:23
<&McMartin>
While a 4096-step loop is painfully ass-slow in BASIC, it's only a couple of frames in assembler.
04:24 Kindamoody[zZz] is now known as Kindamoody
04:29
<~Vornicus>
You'd still have to put the 10 SYS 2060 or whatever at the head but that's not too bad
04:35 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has joined #code
05:01
<&McMartin>
Sure, that's standard for all the C64 stuff I've written.
05:23 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Connection reset by peer]
05:31 Derakon is now known as Derakon[AFK]
05:39 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
05:42 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code
06:19
<&McMartin>
Aha!
06:19
<&McMartin>
A correction to my earlier statement, having found the code.
06:20
<&McMartin>
19:50 <&McMartin> But it was also a common trick to load directly into the I/O routines, thus hijacking the entire system as part of loading (so you wouldn't have to type RUN once it finished, etc.)
06:20
<&McMartin>
One loaded into a small chunk of scratch space and then overflowed it so that one overwrote the BASIC warm start vector.
06:20
<&McMartin>
So you'd load a very small program that would then smash the interrupt vector, which would jump to the loaded code instead of going to the prompt. That would then load the actual code to run.
06:23
<&McMartin>
This trick is, IMO, more trouble than it's worth, though. The crt0.s I made for Ophis lets you do multiple runs without taking anything over and generally links cleanly with the rest of BASIC -- and it gives you a contiguous chunk of RAM from $080F to $CF80 while it's at it.
07:10 Kindamoody is now known as Kindamoody|afk
07:50 AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving]
08:21 Zemyla [zemyla@Nightstar-8fbb7981.compute-1.amazonaws.com] has quit [Ping timeout: 121 seconds]
08:53
<&McMartin>
But because I have no self control, I have now actually gone and pulled out the autoboot creator from my old books and written it out.
08:53
<&McMartin>
If I go completely mad I may try to disassemble it.
08:57
<~Vornicus>
I'm ....sorry, I guess
08:57
<~Vornicus>
cat I cannot do anything with you lying across /both/ arms.
08:58
<&jerith>
You can still type, apparently.
08:59
<~Vornicus>
yes, but I cannot mouse
09:00
<&jerith>
Who needs to mouse anyway? You can cat instead.
09:00
<~Vornicus>
...
09:00
<~Vornicus>
BRILLIANT
09:00 * jerith takes a bow.
09:00
< Syka>
is cat like, a trackball
09:00
< Syka>
you rub its tummy to move the cursor
09:01
<~Vornicus>
Man I wish.
09:01
<&jerith>
Syka: You rub its tummy and it provides arbitrary-but-distinctive keyboard input.
09:02
<&McMartin>
\o/
09:11
<&McMartin>
Oh wait, this is super easy to disassemble
09:11
<&McMartin>
All the messy stuff was in creating the boot file to begin with.
09:14
< Syka>
jerith: "dfsgfFEEDMEHUMANSseiugfs"
09:14 Kindamoody|afk is now known as Kindamoody
09:35 You're now known as TheWatcher
09:51 Kindamoody is now known as Kindamoody|out
10:04
<&McMartin>
Woo, success
10:05
<~Vornicus>
hooray
10:05
<&McMartin>
22 instructions, overall, and then a string and four very carefully placed bytes.
10:06
<&McMartin>
(And 15 of those instructions, plus the string, are just the assembler for LOAD "FILE TO LOAD",8,1)
10:08
<&McMartin>
(then 4 to restore BASIC's state after we pwnz0red it, one to clear out whatever was in the memory beforehand (by simulating a NEW), one to actually run the program, and one to return control to BASIC once we're done.)
10:10
<&McMartin>
Now, like I said, this isn't actually hugely useful because my normal BASIC linker is smaller and better since it lets you run the damn program more than once
10:10
<&McMartin>
But!
10:11
<&McMartin>
Those 15 bytes for the LOAD "FOO",8,1? That would be usable as a routine to do overlays at run-time.
10:11
<&McMartin>
You could pull in level-specific graphics with it or whatnot.
10:11
<&McMartin>
Er
10:11
<&McMartin>
15 instructions
10:11
<&McMartin>
Well more than 15 bytes.
10:20 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has quit [Ping timeout: 121 seconds]
10:32 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has joined #code
10:44 * Alek sighs.
10:44
<@Alek>
did anyone else here play, for example, Moraff's World?
10:44 * Alek recalls... nostalgically.
10:45
<@Alek>
I should code up a modern ripoff.
10:45
<@Alek>
I'd spend so many months on it...
10:46
<@Alek>
mebbe even make it flash, share it around. >_>
10:46
<@Alek>
sure, it's a basic, rather simple, roguelike.
10:47
<@Alek>
but the graphical part was pretty good.
10:47
<@Alek>
"3D" type, and you could see in all 4 cardinal directions at once.
10:47
<&McMartin>
The name "Moraff" sounds familiar
10:47
<@Alek>
it should.
10:47
<@Alek>
the guy is still selling crappy shareware.
10:48
<&McMartin>
Heh
10:48
<@Alek>
not even a lot of games, since the late 80's.
10:48
<&McMartin>
This is a memory from the 80s and 90s, yes
10:48
<@Alek>
but obviously he makes a living. XD
10:49
<@Alek>
man, the original trilogy doesn't even run on modern computers.
10:49
<@Alek>
probably needs dosbox magic, but I CBA.
10:50
<&McMartin>
DOSBOX is super easy to get doing stuff >_>
10:50 * McMartin <3 Dosbox
10:50
<&McMartin>
That said
10:50
<&McMartin>
The Moraff game I remember was a breakout clone that was very, very full of itself
10:51
<@Alek>
oof.
10:52
<@Alek>
Ultrablast?
10:52
<&McMartin>
That sounds vaguely familiar
10:53
<@Alek>
desktop wallpaper backgrounds. >_>
10:53
<&McMartin>
Nope, not that one
10:53
<@Alek>
here's his current website.
10:53
<@Alek>
http://www.softwarediversions.com/catalog/index.php
10:53
<&McMartin>
It's from 1997
10:53
<&McMartin>
I would have been playing this around 1994
10:54
<&McMartin>
Just plain old Moraff's Blast, I think.
10:54
<@Alek>
now that one's not on the site.
10:54
<@Alek>
I guess Ultrablast was a pure upgrade.
10:55
<@Alek>
also, his top game is Mahjongg XIV. he's had that many editions?
10:55
<@Alek>
not to mention Marblejongg.
10:55
<&McMartin>
http://www.mobygames.com/game/dos/moraffs-blast-i/screenshots/gameShotId,277667/
10:55
<&McMartin>
Yep
10:56
<@Alek>
yeaaah
10:56 * Alek flops.
10:57
<@Alek>
....
10:57
<@Alek>
talk about white-out on the screen.
10:58
<~Vornicus>
I can /almost/ imagine that screen being done as a c64 demo
10:58
<@Alek>
here's a tale of an elderly legal secretary who corrects errors on the director's tablet with the help of white-out and a razorblade.
10:59
<@Alek>
Vorn: yeah, his graphics are pretty amateurish. still. and basically all his stuff is knockoffs.
11:00
<&McMartin>
The really sad part is that it had some of the highest system requirements of any game I owned
11:00
<&McMartin>
I mean, *it could actually do 640x480x256*
11:00
<&McMartin>
I think the only other game I had that could do that was Eric the Unready~
11:00
<@Alek>
the key lies in a: spreading it wide enough to hook people, and b: occasional addictions. like Moraff's World. I don't know if the display scheme there was original or not, but it certainly hooked me.
11:01
<&McMartin>
Blergh
11:01
<&McMartin>
Looking at screenshots...
11:02
<&McMartin>
... I'd say "this looks like it would generally fall in the same bin as the other old first person CRPGs like Might & Magic and Wizardry and such"
11:02
<&McMartin>
I'm a fairly big fan of the middle-era Might and Magics, particularly World of Xeen
11:03
<&McMartin>
http://www.mobygames.com/images/i/12/03/350803.png
11:03
<@Alek>
then on the other end of the spectrum lies stuff like uh. I forget the name, but there was this roguelike where the map was basically a find-your-way-through maze, like on cereal boxes, thin corridors between thin walls. you were a dot. but you could encounter monsters and treasure. it was displayed in another part of the screen, but the maze took the majority of the screen. and so on for levels
11:03
<@Alek>
and levels.
11:03
<&McMartin>
By Timmy, Age 3
11:04
<@Alek>
no, yeah, I remember Might and Magic 2. on the snes. but that still displayed only one direction at a time, and you had to physically turn to see other directions. MWorld displayed all 4 directions at once, and you could freemove in any, iirc.
11:04
<&McMartin>
Yeah
11:04
<&McMartin>
(The SNES ports were real bad)
11:04
<@Alek>
my bad, I meant on the sega.
11:04
<@Alek>
why did I type snes?
11:04
<&McMartin>
I don't know if that was *as* bad
11:05
<&McMartin>
But the SNES port had some riddles based on maximum party size
11:05
<&McMartin>
... which had been cut in the SNES port
11:05
<&McMartin>
... and the answer to the riddle was not changed
11:05
<@Alek>
that hooked me. I kept renting it from the local video store for weeks on end, in the summer. XD
11:05
<&McMartin>
M&M2 is pretty much my favorite old-style RPG
11:05
<&McMartin>
Though I think overall I prefer the generation just after it
11:06
<@Alek>
I never got to actually get very far, because the battery in the cart was dead, and I had to return it to the store to rent again. :/
11:06
<&McMartin>
Yeah
11:06
<@Alek>
but it was fun. XD
11:06
<&McMartin>
You can get 1-6 for tenbux from GOG now >_>
11:06
<@Alek>
I should.... XD
11:06 * McMartin got that pack and had that as his B-side game for like eight months.
11:06
<@Alek>
oh. the memories.
11:07
<@Alek>
King's Bounty. dude, that was another one.
11:07
<&McMartin>
That said, don't try to play M&M1 without the spoiler maps, becuase fuck not having automaps.
11:07
<&McMartin>
Mmm
11:07
<~Vornicus>
King's Bounty!
11:07
<&McMartin>
So, um
11:07
<&McMartin>
I don't suppose you've read Thuryl's LPs~
11:07
<~Vornicus>
I once tried to remake KB
11:07
<&McMartin>
He's LPed like all of these~
11:07
<~Vornicus>
It stalled out pretty badly
11:07
<@Alek>
I once solved it day one, it was in the spot I started in! XD
11:07
<~Vornicus>
Alek: Have you seen the TAS
11:07
<&McMartin>
There's a lovely TAS that forces this~
11:07
<@Alek>
I finished it so many times.
11:07
<@Alek>
no I have not
11:08
<~Vornicus>
http://tasvideos.org/2025S.html
11:08
<&McMartin>
Also, http://lparchive.org/Kings-Bounty/
11:08
<&McMartin>
For a lovely tour through Breaking The Game In Half
11:08
<@Alek>
oh. dude. that's another reminder - fonts where often you couldn't tell which character was which. forget the password saves. D:
11:09
<&McMartin>
"The Continuing Adventures of Iggy the Sorceress and her Unstoppable Midget Army"
11:09
<&McMartin>
Then, about halfway through, "Fair Play is for Losers"
11:09
<@Alek>
oh damn, that LP mentions PS2. another old favorite. I think I still have it, too.
11:10
<&McMartin>
You may just want to set aside a week to read through all Thuryl's LPs~
11:10
<&McMartin>
He's got LPs on the archive for M&M 1-3, and king's bounty, and Phantasy Star 1-3.
11:12
<@Alek>
ooh.
11:12
<&McMartin>
"That ends today's massacre^Wupdate."
11:12
<@Alek>
did I mention, the time I found it on day one, I'm pretty sure I was playing Impossible.
11:12
<&McMartin>
Best way~
11:12
<@Alek>
:P
11:13
<&McMartin>
The LP is on Hard, primarily so that he has time to truly break the game.
11:13
<&McMartin>
"Sorceress: Pros: Best starting income, best magic by far. Will eventually be able to break the game in ludicrous ways."
11:13
<&McMartin>
"Cons: Has trouble beating the game on higher difficulties except by breaking it in ludicrous ways."
11:15
<&McMartin>
Ah, yes.
11:15
<&McMartin>
"A new game is being created. Please wait while I perform godlike actions to make this game playable."
11:17
<~Vornicus>
having reverse-engineered the save format I know exactly what those godlike actions are...
11:17
<&McMartin>
I really ought to start working on designing my JSON-based resource descriptors for Project Monocle.
11:25
<@Alek>
Vorn: does that mean you have a playable clone?
11:31
<~Vornicus>
Alek: Nope. I RE'd the save format, but there's a lot of stuff that's not in there.
11:33
<~Vornicus>
Like, the combat model was hard enough that I couldn't figure out how a lot of stuff worked at all
11:33 Karono [Karono@Nightstar-a97724cd.optusnet.com.au] has quit [Ping timeout: 121 seconds]
11:55 Karono [Karono@Nightstar-13c26ed9.optusnet.com.au] has joined #code
12:01 Xires is now known as ^Xires
12:03 ^Xires is now known as Xires
12:28 thalass [thalass@Nightstar-de48278f.bigpond.net.au] has quit [Ping timeout: 121 seconds]
12:35 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:50 thalass [thalass@Nightstar-de48278f.bigpond.net.au] has joined #code
13:55 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds]
13:57 Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code
13:57 mode/#code [+o Orthia] by ChanServ
14:11 Vornicus is now known as Vash
14:18 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
14:18 mode/#code [+o himi] by ChanServ
14:57 Vash [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
15:32 gnolam is now known as werecletus
16:10 thalass [thalass@Nightstar-de48278f.bigpond.net.au] has quit [[NS] Quit: *florp]
16:29 Karono [Karono@Nightstar-13c26ed9.optusnet.com.au] has quit [Client closed the connection]
17:01 Derakon[AFK] is now known as Derakon
18:04 [R] is now known as DrDREAM
18:46 werecletus is now known as gnolam
20:32 ktemkin[awol] is now known as ktemkin
21:25
< AnnoDomini>
Is there a way to convert a soundtrack in Audacity to something midi-like? I want to keep the pacing and the melody, recognizable, but not exactly the entire music thing.
21:27
<@gnolam>
No.
21:29 Kindamoody|out is now known as Kindamoody
21:46 Kindamoody is now known as Kindamoody[zZz]
22:09 * AnnoDomini finds an instrumental version, it's what he needs.
22:10
< AnnoDomini>
OK. Sound done. Now to prepare the visual recording.
22:22
< AnnoDomini>
Hmm. How do I compress a 22 minute AVI to ~2 minutes?
22:23
< Syka>
you must first create the universe
22:23
< Syka>
AnnoDomini: i think um, vobsub can do that?
22:23
< Syka>
wait no
22:23
< Syka>
that is completely not what i was thinking of
22:24
< Syka>
virtualdub!
22:25
< Syka>
AnnoDomini: try virtualdub, its' free, and IIRC it does what you want
22:25
< AnnoDomini>
I hope it's one of those lightweight things. I have exceeded my bandwidth limit.
22:26
< Syka>
http://virtualdub.sourceforge.net/
22:26
< AnnoDomini>
Yeah, I'm downloading.
22:26
< Syka>
1.6MB, so, lightweight enough :D
22:31
< AnnoDomini>
Awesome.
22:35
< AnnoDomini>
Projected file size: 8000 MB. ;_;
22:35
< AnnoDomini>
Time to look into some compression.
22:35
< AnnoDomini>
That 500 frames per second ain't gonna compress itself.
22:36
< Syka>
hahaha
22:36
< Syka>
i think you can do some frame dropping
22:38
< AnnoDomini>
OK. With compression and 1/10 frame drop, it's 100 MB.
22:39
< Syka>
you can probably reprocess that after
22:39
< Syka>
I would do that
22:39
< Syka>
just do it frame drop first
22:39
< Syka>
then reprocess it after
22:39
< Syka>
so that if you mess up the compression, you don't have to redo the frame drop
22:39
< AnnoDomini>
I'll see how it turns out.
22:41
< Syka>
good luck :P
22:41
< Syka>
since its nearly 6am...
22:41
< Syka>
mv syka bed/
22:41
< AnnoDomini>
Syntax error: line 1.
22:46 Karono [Karono@Nightstar-13c26ed9.optusnet.com.au] has joined #code
22:50
< AnnoDomini>
Whee. I shall upload the video tomorrow. Took me about 3 hours to build everything.
22:58 Karono [Karono@Nightstar-13c26ed9.optusnet.com.au] has quit [Ping timeout: 121 seconds]
23:03
< DrDREAM>
<pcaddict> what is the best windows server AV solution these days? Symantec Endpoint?
23:09 DrDREAM is now known as [R]
23:57 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
23:57 mode/#code [+qo Vornicus Vornicus] by ChanServ
--- Log closed Mon Aug 26 00:00:50 2013
code logs -> 2013 -> Sun, 25 Aug 2013< code.20130824.log - code.20130826.log >

[ Latest log file ]