code logs -> 2019 -> Sun, 01 Sep 2019< code.20190831.log - code.20190902.log >
--- Log opened Sun Sep 01 00:00:02 2019
--- Day changed Sun Sep 01 2019
00:00
< Yossarian>
I sort of want to build a visualization tool for memory
00:01
< Yossarian>
at DEF CON these guys made a maphack memory editor but they wouldn't release source code and promised to once they had a fix for it. They got the fix for it, but no source. Takes a lot of memory to store multiple copies of the game's memory and do operations on them to create a heat map.
00:02
< Yossarian>
My interest isn't "cheatin in teh games" because that's no fun but maybe such a tool would be useful.
00:13
<&McMartin>
libTAS might be a fun little toy for stuff like that.
00:14
< Yossarian>
I just don't have enough experience with hex editing and patching binaries and such to know what tools in such a visualization and editing tool to be useful.
00:14
< Yossarian>
I liked the SDL interface for the SNES SPC vsplay from last night.
00:15 * McMartin nods
00:15
<&McMartin>
Stella's debugger is also very fine: https://lparchive.org/Solaris/Update%2010/4-tech_debugger.png
00:15
< Yossarian>
It isn't practical though and kinda meh, youtube video with a guy editing it in real time to detect clicks to change values of the emulated SNES sound DSP
00:15
< Yossarian>
vsplay I mean
00:16
< Yossarian>
But in terms of the SNES's sound chip, the commands issued is very similiar to MIDI, just with 16 bit PCM samples in the 64kb along with instruction data
00:17 * McMartin nods
00:17
< Yossarian>
There is a "tracker" tool to view samples, add, and issue commands
00:17
<&McMartin>
Have you in fact played with a tool like Schism Tracker?
00:19
< Yossarian>
Nah but it would be interesting for that in particular, although SNES SPC files and 64kb chunks for sound instruction and samples is a bit esoteric... the few trackers I'm used to are like what was in FruityLoops or what's on front of a hardware drum machine.
00:19 * McMartin nods
00:20
<&McMartin>
As I've mentioned before, my experience with SNES stuff specifically is very near zero, but I am given to understand that it is close to some related technologies/lineages that I'm more familiar with
00:20
< Yossarian>
It's weird too, because you figure the sound chip the SNES uses with it's total 64kb size is probably how a lot of old digital pianos and keyboards work. I'm pretty sure MIDI as I know it, as a protocol, can't transfer the samples over a MIDI line.
00:20
<&McMartin>
In particular, the Amiga and DOS/PC worlds used wavetable synthesis techniques
00:21
<&McMartin>
And a number of tools and file formats were built around them, with Impulse Tracker and Scream Tracker being two of the more famous ones
00:21
< Yossarian>
NES used something called PSG and Sega Master/Genesis used it's awesome FM synthesis.
00:21
< Yossarian>
er
00:21
< Yossarian>
s/it\'s/its
00:21
<&McMartin>
Schism Tracker is an SDL1 inheritor of the Impulse/Scream tracker line.
00:22
<&McMartin>
If you're interested in this *kind of music* as opposed to just SNES stuff specifically, I can endorse Schism.
00:22
<&McMartin>
The PSG was the Master system. The Genesis/Mega Drive had one but then also had its FM synthesizer.
00:22
<&McMartin>
PSG is just "programmable sound generator"
00:23
<&McMartin>
The NES had specialized sound circuitry built into the Ricoh 2A03 itself that was more powerful than the SMS PSG, but not up to the level of, say, the C64's SID chip.
00:23
< Yossarian>
Well, having a VST or something being like that being able to imported into your DAW can give you interesting results, if you could program or track with the DAW's native interface that'd be neat.
00:24
< Yossarian>
I trashed my C64 I bought and I saved the sound chip along with the other logic ICs but they're gone now, I believe. Had to do with my illegal eviction. :(
00:25
< Yossarian>
Oh wow, Schism looks a lot like SNES GSM I think it's called? I was messing with last night.
00:25
< Yossarian>
Also my understanding is there are certain games for SNES that swap out stuff to the SNES's sound chip at will.
00:26
< Yossarian>
So it's kinda hard to get the music as a single SPC file
00:26
<&McMartin>
Yep
00:27
<&McMartin>
There is apparently a "SNSF" format for handling those, which simulate an entire headless Super Nintendo and a stripped-down ROM commanding the 65816 instead of the APU directly.
00:27
<&McMartin>
(I think. That's basically how .NSF and .SID work.)
00:27
<&McMartin>
Also, man, https://upload.wikimedia.org/wikipedia/en/5/53/Screamtracker_321.png
00:27
< Yossarian>
I guess the commucation to the game's ROM/RAM to the sound chip is relatively fast... there are some game loading screens playing SNES and there is a half second pause and perhaps that is when a call is made to replace the 64kb contents in the chip
00:28
<&McMartin>
That's probably doing on-the-fly decompression, too.
00:28 * McMartin does some math
00:29
< Yossarian>
I've seen schematics for serial and parallel to the SNES's sound chip and output is done by the chip, you might need a simple linear boost, dunno how much output is there or what imped it is expecting
00:29
<&McMartin>
I'm a total loss when it comes to hardware
00:29
<&McMartin>
Anyway. On the 6502, a brain-dead memory-copy loop 8 bits at a time is 13 cycles per iteration for a total of about 850ms at 1MHz.
00:30
< Yossarian>
Probably out of vogue but be neat if someone built a PCI card with various old synthesis chips and sample chips, I know SIDStation had a card able to take multiple sound MOS chips.
00:30
<&McMartin>
A similarly brain-dead copy on the SNES, which was twice as fast and had double the bus width, should get it down to a quarter second.
00:30
<&McMartin>
Oh yeah, HardSID did not survive the transition to the 64-bit era :(
00:30
< Yossarian>
250ms is pretty fast all things considered
00:30
<&McMartin>
Yea
00:30
<&McMartin>
If it's spending 500ms or more, I'd guess that it's not just copying out the 64KB, but also decompressing it somehow.
00:31
< Yossarian>
If there is a compression algorithm on the cart's ROM and boot strapped code decompresses, yeah. :)
00:31
<&McMartin>
Yeah, that's what I'm suggesting.
00:31
<&McMartin>
I know for a *fact* the NES did this with graphics sometimes
00:32
<&McMartin>
They'd put (comparatively) fast SRAM where the CHR-ROM was supposed to go, and then fill it as needed from the PRG-ROM, and, well
00:32
<&McMartin>
One of my pseudonymous projects right now is reverse engineering one of the decompressors :)
00:32
< Yossarian>
Did a particular game lead you there?
00:33
< Yossarian>
Like, for SNES, Chrono Trigger is a big game relatively speaking, the chip on the cartridge must be larger than normal or some fancy tricks at play.
00:34
< Yossarian>
Believe it or not, never really sat down and played it at length, haven't beaten it, but the sprites they have in that game were... no, are, absolutely killer.
00:37
<&McMartin>
A particular game: yes, it did, but I can't name it here without breaking the pseud~
00:37
<&McMartin>
It's also on hold while I do other open-source work
00:39
<&McMartin>
And yes, Chrono Trigger's sprites were done by Akira Toriyama, who is probably most famous for his work for Dragon Ball.
00:41
< Yossarian>
Oh shit, Toriyama did some or all of the sprites?
00:42
< Yossarian>
It's the battle perspective, I think, which was really unique at the time.
00:42
< Yossarian>
The colors kinda pop, the battle animation sprites, the angle of everything. It's great.
00:42
< Yossarian>
Almost like Neo Geo style, kinda like Metal Gear series but not quite.
00:46
<&McMartin>
He sure did
01:15 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
01:21
< Yossarian>
Metal Gear?
01:21
< Yossarian>
Why did I say that?
01:22
< Yossarian>
Metal Slug.
01:22
<&McMartin>
I mean "...Metal Gear?" is always an appropriate question over the codec, right~
02:23 gnolam [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has quit [[NS] Quit: Z?]
02:34
< Yossarian>
McMartin: that is some interesting stuff
03:26 Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code
03:28 Pinkhair [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
04:57 Vorntastic [uid293981@Nightstar-2dc.p8m.184.192.IP] has joined #code
04:57 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
05:07 celticminstrel [celticminst@Nightstar-6an2qt.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
05:15 Omega [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has joined #code
05:15 Alek [Alek@Nightstar-o723m2.cicril.sbcglobal.net] has quit [NickServ (RECOVER command used by Omega)]
05:15 Omega is now known as Alek
05:15 mode/#code [+o Alek] by ChanServ
05:19 Derakon is now known as Derakon[AFK]
07:58 Kindamoody[zZz] is now known as Kindamoody
08:00 Kindamoody is now known as Kindamoody|afk
08:35 macdjord|slep [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code
08:35 mode/#code [+o macdjord|slep] by ChanServ
08:38 mac [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds]
10:39 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
12:06 Kindamoody|afk is now known as Kindamoody
12:14 Degi [Degi@Nightstar-srasoc.dyn.telefonica.de] has joined #code
14:16 gnolam [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has joined #code
14:16 mode/#code [+o gnolam] by ChanServ
14:45 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [[NS] Quit: Rebooting again.]
14:55 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
14:55 mode/#code [+o Kimo|autojoin] by ChanServ
14:55 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
14:55 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:00 Kimo|autojoin is now known as Kindamoody
15:05 celticminstrel [celticminst@Nightstar-6an2qt.dsl.bell.ca] has joined #code
15:05 mode/#code [+o celticminstrel] by ChanServ
17:06 Vorntastic [uid293981@Nightstar-2dc.p8m.184.192.IP] has quit [[NS] Quit: Connection closed for inactivity]
18:56 Vash [Vash@Nightstar-sjaki9.res.rr.com] has joined #code
20:30
<@TheWatcher>
Argh
20:30
<@TheWatcher>
Why am I messing around with web gallery experiments in codepen?
20:43
<@TheWatcher>
I do not need another bloody project, FFS
21:32 Vash [Vash@Nightstar-sjaki9.res.rr.com] has quit [[NS] Quit: Leaving]
22:03 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
22:54 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
23:22 Kindamoody is now known as Kindamoody[zZz]
23:44
< Yossarian>
<@TheWatcher> I do not need another bloody project, FFS
23:44
< Yossarian>
I know that feel.
--- Log closed Mon Sep 02 00:00:12 2019
code logs -> 2019 -> Sun, 01 Sep 2019< code.20190831.log - code.20190902.log >

[ Latest log file ]