--- 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 |