Place Logo Here Posted September 2, 2014 Share Posted September 2, 2014 I know I'm not saying anything others have not already said here, but it can't be said enough: this is simply astounding work. Every time I think somebody has maxed out the capabilities of the 2600, something new comes along to push the envelope further. The sounds, in particular, are stunning. Funny enough, I never played the original 2600 cart much, as I am a very late adopter of the console. After playing this homebrew, I was thinking, "aw, come on, the original can't be that bad, right?" After a couple of games of that, I now believe the original cart is even worse than the critical drubbing it has received over the decades. If the original was all that could be done on the system it would be understandable--now seeing what could have been done makes the original conversion almost criminal. 2 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted September 2, 2014 Share Posted September 2, 2014 Would be I asking too much if he could help iesposta with the DK music? 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted September 2, 2014 Share Posted September 2, 2014 In fact less pellets in the maze only increases the relative score potential of eating fruit and ghosts. I see no reason why pellets should be worth more than 10 points, which would only serve to devalue other point bonuses.For me those two sentences are contradicting each other. If you increase the relative score for eating fruits and ghost, this effectively devalues the score for eating pellets. To compensate here, you give more points for each pellets. Overall the score balance stays the same then. Also especially beginners are not very able to score a lot of those bonus points. So for those the pellets are way more important than for the experienced players. Increasing the score for each (of the fewer) pellets will encourage them. Nobody is trying to compare scores across multiple Pacman ports.Why not. If one is trying to create a perfect port, this would be like the holy grail. BTW: Maybe we should move this discussion to a separate thread. Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted September 2, 2014 Share Posted September 2, 2014 That is precisely the document that I used to make this game. This is the main tool I use: sndatar3.bin I made this rom with gasega68k to make sounds in 2600 more easily, using audacity to "see" the sounds and try to replicate them. Here are some examples, maybe you recognize these sounds: Very cool! Is gasega68k a 68000 assembler that also handles 6502 asm? Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted September 2, 2014 Share Posted September 2, 2014 Very cool! Is gasega68k a 68000 assembler that also handles 6502 asm? I thought he was talking about a person called gasega68k. 1 Quote Link to comment Share on other sites More sharing options...
Mr SQL Posted September 2, 2014 Share Posted September 2, 2014 I thought he was talking about a person called gasega68k. Thanks RT; guess gasega68k is a 68000 programmer who also handles 6502 asm Quote Link to comment Share on other sites More sharing options...
raindog Posted September 2, 2014 Share Posted September 2, 2014 Damn, didn't know a 2600 could do the sound that close. About the only thing that didn't sound spot-on was the death sound. Apart from slowing it down a little, I think the only thing that can really be done with that is doubling it an octave down, as the arcade one does. I don't know whether any of the available distortion patterns would allow this and still be in tune. Can't remember if I've posted to this thread before now, but if not.... congratulations, dintar816, you've blown all our minds! Think I'm overdue to find a new avatar pic at this point Quote Link to comment Share on other sites More sharing options...
Andromeda Stardust Posted September 2, 2014 Share Posted September 2, 2014 I believe the TIA is more versatile than previously thought. The 7800 homebrews by Pacman Plus sound extremely spot on, but I wonder if that has more to do with the addutional CPU cycles available for writing registers. It's all well and good if someone writes a stunning chip tune that blanks the display devoting all resources to bus-stuffing the TIA. I'm not talking specifically of wav sound either. One example would be "tuning" the TIA by adjusting the pitch multiple times every frame to create intermodal frequencies it cannot produce normally. Some NES tracks modulate the frequency on every other frame to produce the illusion of chords and I assume similar techniques could be employed on the TIA at the cost of wasting precious CPU cycles. Another thought is that most programmers are not musicians and visa-versa. Anybody, programmer or not, can draw sprite art on some graph paper, which is then easily converted it into bits. I believe it takes a special skillset to code chip tunes. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted September 3, 2014 Share Posted September 3, 2014 Your thought is definitely true in my case. Without other people's help my games wouldn't sound nearly as good as they do now. 1 Quote Link to comment Share on other sites More sharing options...
Kurt_Woloch Posted September 3, 2014 Share Posted September 3, 2014 That's definitively a very nice version! The sounds are very good, however I think some of them don't sound as good as they could be: The "Waka Waka" seems a bit off to me in that it's played with a straight rectangle wave. Maybe you should try one of the waveforms that have the "sharper" duty cycle (as the bass notes on the title music has them), if it's possible to play it at roughly the frequency in the arcade. The dying sound still sounds off to me... it's too high and "wobbles" a bit too fast. I think it should be a bit longer as well. I know especially this one seems to be hard to replicate since nearly no port really got it quite right. Quote Link to comment Share on other sites More sharing options...
raindog Posted September 3, 2014 Share Posted September 3, 2014 Some NES tracks modulate the frequency on every other frame to produce the illusion of chords and I assume similar techniques could be employed on the TIA at the cost of wasting precious CPU cycles. Another thought is that most programmers are not musicians and visa-versa. Anybody, programmer or not, can draw sprite art on some graph paper, which is then easily converted it into bits. I believe it takes a special skillset to code chip tunes. I used that NES trick on my VCS "Boing" demo (in the easter egg), but then, I'm one of those programmers who's also a musician. It didn't really take any extra cycles compared to any other music routine (I just had two tables, one for the lower notes in the chord, one for the higher, and used the LSB of the frame counter to choose the table), but it did double the ROM space required for the music data. That wasn't a problem, since my demo didn't do a whole lot, but in a game like this, it could be. The TIA's set of distortions make it tough because most of the notes are sharp or flat. To create in-tune intermodal frequencies by strobing AUDC[01] repeatedly during the frame might take more than the 4 or 5 evenly spaced writes most modern homebrews' kernels will allow (e.g. sacrifice a scan line where the playfield is symmetrical because there are no dots) in order to produce something that sounds like a note and not a glitchy minor second. If it does work, the resulting tone will likely sound pretty different than pure tones using the same distortion. But hey, Parker Bros. managed to get the Odyssey2 to play the Frogger theme song, so it's probably possible. I love that sound testing tool, and wish I'd had something like it 15 years ago when I still had a TV my VCS would play nicely with. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted September 3, 2014 Share Posted September 3, 2014 (edited) To create in-tune intermodal frequencies by strobing AUDC[01] repeatedly during the frame might take more than the 4 or 5 evenly spaced writes most modern homebrews' kernels will allow (e.g. sacrifice a scan line where the playfield is symmetrical because there are no dots) in order to produce something that sounds like a note and not a glitchy minor second. If it does work, the resulting tone will likely sound pretty different than pure tones using the same distortion. I am doing that (with AUDV0) for the siren in Star Castle Arcade. IMO the result doesn't sound too bad, even though I have to use two different values for AUDC0 to get the required frequency range. Edited September 3, 2014 by Thomas Jentzsch 1 Quote Link to comment Share on other sites More sharing options...
Kurt_Woloch Posted September 3, 2014 Share Posted September 3, 2014 OK... so I was curious and analyzed the dying sound of the original version a bit closer, since this actually is a "signature" tone of Pac-Man which you often hear referencing the 80's in general... The dying sound consists of two parts... so far it's done right. The first part is the slowly descending sound. This, in the original, is divided into 6 stages, each of which should last 12 frames if I'm counting correctly... and no, in the original arcade version the sound does NOT get updated more than once per frame. Each of these 12-frame stages starts at an upper note in the first frame, then goes down to a lower note which is reached by the 6th frame, then goes up again at the same speed to reach a note that's a bit higher than the first one at the 12th frame. Then the next stage begins in the same form with a note that's a bit lower in pitch. The 6th stage ends a bit prematurely, it only counts down one step from its lowest note, which is about 377 Hz. The highest note played (at the end of the 1st stage) is about 774 Hz. Keep in mind that on Namco's sound chip, the frequency is calculated by the values put in multiplied with a certain base frequency, so as the values get lower, the steps relatively to each other (in the octave) get bigger, but the steps written out in Hertz stay the same, which is exactly like the SID in the C-64 does it, but unlike most other sound chips including the TIA which have the frequency being a fixed frequency DIVIDED by the value put in. So now comes the 2nd part. The 2nd part, I'll call it "Woop Woop", lasts for 24 frames in total, with each "Woop" being 12 frames. The first frame has a frequency of 0 Hz (silence), and the 12th frame of each "Woop" has a frequency of about 2065 Hz. Between that, the frequency goes up about linearly, so it's 0 - 198 - 395 - ... - 1875 - 2065 (I didn't check the values in between, but they're probably linearly rising). I know that this part is probably impossible to reproduce on the TIA, but at least the fact that each "Woop" lasts for 12 frames could be left intact. You could also try ramping up the volume from zero to max. on each "woop", which could make it sound more like the original even if you can't reach the lowest frequencies. By the way, the "Waka Waka" sound, from the length and the frequencies, sounds quite right (at 5 frames length like in the original), only the waveform is a bit off. Quote Link to comment Share on other sites More sharing options...
24Fanatic365 Posted September 3, 2014 Share Posted September 3, 2014 (edited) Even with the small nuances others are pointing out in this thread, I think this version is pretty amazing. The original 4k version is pretty cool, and I've played it quite a bit, but this one blows even that version away, IMHO. It will be even more superior if the cut scenes with music are added at some future date. Great programming effort on this, and thanks to DINTAR 816 for letting everyone check it out! Edited September 3, 2014 by 24Fanatic365 Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted September 3, 2014 Share Posted September 3, 2014 OK... so I was curious and analyzed the dying sound of the original version a bit closer, since this actually is a "signature" tone of Pac-Man which you often hear referencing the 80's in general... The dying sound consists of two parts... so far it's done right. The first part is the slowly descending sound. This, in the original, is divided into 6 stages, each of which should last 12 frames if I'm counting correctly... and no, in the original arcade version the sound does NOT get updated more than once per frame. Each of these 12-frame stages starts at an upper note in the first frame, then goes down to a lower note which is reached by the 6th frame, then goes up again at the same speed to reach a note that's a bit higher than the first one at the 12th frame. Then the next stage begins in the same form with a note that's a bit lower in pitch. The 6th stage ends a bit prematurely, it only counts down one step from its lowest note, which is about 377 Hz. The highest note played (at the end of the 1st stage) is about 774 Hz. Keep in mind that on Namco's sound chip, the frequency is calculated by the values put in multiplied with a certain base frequency, so as the values get lower, the steps relatively to each other (in the octave) get bigger, but the steps written out in Hertz stay the same, which is exactly like the SID in the C-64 does it, but unlike most other sound chips including the TIA which have the frequency being a fixed frequency DIVIDED by the value put in. So now comes the 2nd part. The 2nd part, I'll call it "Woop Woop", lasts for 24 frames in total, with each "Woop" being 12 frames. The first frame has a frequency of 0 Hz (silence), and the 12th frame of each "Woop" has a frequency of about 2065 Hz. Between that, the frequency goes up about linearly, so it's 0 - 198 - 395 - ... - 1875 - 2065 (I didn't check the values in between, but they're probably linearly rising). I know that this part is probably impossible to reproduce on the TIA, but at least the fact that each "Woop" lasts for 12 frames could be left intact. You could also try ramping up the volume from zero to max. on each "woop", which could make it sound more like the original even if you can't reach the lowest frequencies. By the way, the "Waka Waka" sound, from the length and the frequencies, sounds quite right (at 5 frames length like in the original), only the waveform is a bit off. That's some good info. I've been playing around with the Music and Sound Editor to see what I can do and so far my Pac-Man intro tune seems to match up with the speed and length of the original notes, but I still need to shape the sounds some more. Quote Link to comment Share on other sites More sharing options...
Kurt_Woloch Posted September 3, 2014 Share Posted September 3, 2014 OK, now I've done even more and tried to find a better tune myself. Try this set of data for the dying sound (you have to chain the data from all three screenshots together, except for the 0's at the end of the 3rd one): Quote Link to comment Share on other sites More sharing options...
+Atari_Warlord Posted September 3, 2014 Share Posted September 3, 2014 I finally had a chance to play this yesterday. All I can say is Wow! I tried all the other versions I have after playing this and although I've never been a hater of the original 2600 version, this was far and above the closest to playing the arcade version for me. Keep up the great work! Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted September 3, 2014 Share Posted September 3, 2014 To make it easier, you could also post a save state from the Stella debugger. Quote Link to comment Share on other sites More sharing options...
Andromeda Stardust Posted September 3, 2014 Share Posted September 3, 2014 At some point all this talk of waveforms from the TIA not being exactly shaped like the arcade waveform: people need to remember that this is the TIA we are talking about. I loaded the game on my Harmony cart last night and played a few rounds. IMO the audio is excellent. I thought my 4k cart sounded good, but this new version blows the old away. The death animation sounds nearly perfect, or at least as good as it could concievably get on the TIA. Kudos to DINTAR816for making this! My only hope is that you are able to expand the ROM to 8k and add in the cut-scenes and title screen. I remember the 4k guy being reluctant to expand the game, but now we have a new condender! 1 Quote Link to comment Share on other sites More sharing options...
Kurt_Woloch Posted September 3, 2014 Share Posted September 3, 2014 Yes... sorry, I could have done that, but I didn't think of saving the states like this when I input the data, and now I've already closed Stella, and the screenshots are all I have myself. But I'll write up the data for you... .byte $14, $04, $0E .byte $15, $04, $0E .byte $16, $04, $0E .byte $17, $04, $0E .byte $18, $04, $0E .byte $19, $04, $0E .byte $18, $04, $0E .byte $17, $04, $0E .byte $16, $04, $0E .byte $15, $04, $0E .byte $14, $04, $0E .byte $13, $04, $0E .byte $16, $04, $0E .byte $17, $04, $0E .byte $18, $04, $0E .byte $19, $04, $0E .byte $1A, $04, $0E .byte $1B, $04, $0E .byte $1A, $04, $0E .byte $19, $04, $0E .byte $18, $04, $0E .byte $17, $04, $0E .byte $16, $04, $0E .byte $15, $04, $0E .byte $18, $04, $0E .byte $19, $04, $0E .byte $1A, $04, $0E .byte $1B, $04, $0E .byte $1C, $04, $0E .byte $1D, $04, $0E .byte $1C, $04, $0E .byte $1B, $04, $0E .byte $1A, $04, $0E .byte $19, $04, $0E .byte $18, $04, $0E .byte $17, $04, $0E .byte $1A, $04, $0E .byte $1B, $04, $0E .byte $1C, $04, $0E .byte $1D, $04, $0E .byte $1E, $04, $0E .byte $1F, $04, $0E .byte $1E, $04, $0E .byte $1D, $04, $0E .byte $1C, $04, $0E .byte $1B, $04, $0E .byte $1A, $04, $0E .byte $19, $04, $0E .byte $1C, $04, $0E .byte $1D, $04, $0E .byte $1E, $04, $0E .byte $1F, $04, $0E .byte $0A, $0C, $0E .byte $0B, $0C, $0E .byte $0A, $0C, $0E .byte $1F, $04, $0E .byte $1E, $04, $0E .byte $1D, $04, $0E .byte $1C, $04, $0E .byte $1B, $04, $0E .byte $1E, $04, $0E .byte $1F, $04, $0E .byte $0A, $0C, $0E .byte $0B, $0C, $0E .byte $0C, $0C, $0E .byte $0D, $0C, $0E .byte $0C, $0C, $0E .byte $00, $00, $00 .byte $1A, $0C, $0E .byte $0C, $0C, $0E .byte $1A, $04, $0E .byte $15, $04, $0E .byte $11, $04, $0E .byte $0E, $04, $0E .byte $0C, $04, $0E .byte $0A, $04, $0E .byte $09, $04, $0E .byte $08, $04, $0E .byte $07, $04, $0E .byte $00, $00, $00 .byte $1A, $0C, $0E .byte $0C, $0C, $0E .byte $1A, $04, $0E .byte $15, $04, $0E .byte $11, $04, $0E .byte $0E, $04, $0E .byte $0C, $04, $0E .byte $0A, $04, $0E .byte $09, $04, $0E .byte $08, $04, $0E .byte $07, $04, $0E I hope this is good enough... Quote Link to comment Share on other sites More sharing options...
raindog Posted September 3, 2014 Share Posted September 3, 2014 At some point all this talk of waveforms from the TIA not being exactly shaped like the arcade waveform: people need to remember that this is the TIA we are talking about. Well, to be fair, people said the same about the VCS in general when Pac-Man was released. "What did you expect? It's an Atari." My Odyssey2 actually got a bit of respect when my friends were all playing "donk, donk, donk" and we had K.C. Munchkin. That's why people have gotten progressively more excited with each new and improved take on Pac-Man (and other iconic games demade on the VCS), each bit of proof that the ol' dog has more tricks left in her. The exactitude isn't to say this isn't already amazing. It's to say "wow, we all might be able to help him make the Pac-Man demake to end all Pac-Man demakes". Every detail that makes it more like the arcade (and more playable than the Atari 5200 version we all wanted until we tried those joysticks) just makes it more amazing. 1 Quote Link to comment Share on other sites More sharing options...
NE146 Posted September 3, 2014 Share Posted September 3, 2014 (edited) Honestly I'm still shellshocked to the quality of this homebrew even as it stands today.. especially in regards to the sounds (which seem more like it should be coming from the 8-bit ports).. So it's a little funny to me that this being the 2600, that the thought could even come to someone that the sounds might be improved. But hey, if it can. I have to admit though from the original video I was tempted to think it might have been a hoax. I mean I thought we pretty much hit the ceiling of what the VCS was capable of when it came to "Pac-Man" but obviously not. And that's awesome. Edited September 3, 2014 by NE146 2 Quote Link to comment Share on other sites More sharing options...
Albert Posted September 3, 2014 Share Posted September 3, 2014 I have to admit though from the original video I was tempted to think it might have been a hoax. I mean I thought we pretty much hit the ceiling of what the VCS was capable of when it came to "Pac-Man" but obviously not. And that's awesome. Same here. My initial thought was, "No way!" given it's a 4K game and isn't using any additional hardware to generate sound. 1 Quote Link to comment Share on other sites More sharing options...
DINTAR816 Posted September 3, 2014 Author Share Posted September 3, 2014 OK, now I've done even more and tried to find a better tune myself. Try this set of data for the dying sound (you have to chain the data from all three screenshots together, except for the 0's at the end of the 3rd one): Pacman_dying_1.PNG Pacman_dying_2.PNG Pacman_dying_3.PNG That sounds good, but at least about 91 bytes (32 + 32 + 27) would be required, using the 3 high bits for "AUDCx". At first I tried to do the "dying sound" more like original, but not getting the way, because that sound (the first part) is made with a routine to make various sounds such as sirens and other sounds (to save space ROM). The final part of the sound I had done before, was very similar to what did you do, but I could not include it, I had to cut it to 8 frames to play this 2 times. I'll try to do better by changing a little the sound code, I have an idea of how to do it without increasing space rom (I think). I think I'll have space to put at least the first intermission, I've been doing the first tests and has not occupied much space in rom as I thought at first. Quote Link to comment Share on other sites More sharing options...
Kurt_Woloch Posted September 3, 2014 Share Posted September 3, 2014 That sounds good, but at least about 91 bytes (32 + 32 + 27) would be required, using the 3 high bits for "AUDCx". Well, I have an idea how it could be compressed... there are 91 lines, but not that many different ones. So there could be a table of all the 3-byte-sets used (maybe still compressed to 2 bytes as you say) which could be indexed by a one-byte table which gives the sound bytes to be used in every frame. However, the code for playing it back would be slightly more complicated. Or are you saying that you're already using one byte per frame only? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.