Jump to content
Visual Boy Advance-M


  • Content Count

  • Joined

  • Last visited

Community Reputation

2 Neutral

About Dwedit

  • Rank
  • Birthday May 7
  1. Dwedit

    Forum Recovery: An old backup :(

    Here is a heads up about a problem with this. If you visit the Main Page, or the Downloads page, and try to log in, you get redirected to a 404 error for any page on the site you try to visit, since the forced change password URL only exists in the forums, not on the main page. I had to clear my cookies just to visit the website again. When I visited the forums, and logged in, it successfully redirected me to the correct forced change password page.
  2. Blargg made a GB-Z80 testing program: http://h1.ripway.com/blargg/temp/gb_cpu_test.zip Among the instructions that fail are: E8: ADD SP,nn F8: LD HL,SP+nn Those instructions are quite deceptive with what they do to flags: They use the lower byte of SP added to the unsigned byte to determine halfcarry and carry flags. All other flags are cleared. Several other tests also fail.
  3. First, I'm sorry about the crappy misleading sound test program I posted previously. Here's a real sound testing program. The program repeatedly plays a middle C note every 64128 GBA clock cycles, with the reset flag turned on. It fades the volume down by setting a new volume every 30 writes. GBC sound channel frequency register "n value" of the note is 1547, for a frequency of ~261.62Hz. You can also change the period from 64128 to any other number. GBA's GBC sound clock is 131072Hz, GBA clock speed is 16777216Hz, so GBA timers are 128 times faster than the sound clock for the GBC. This means that every (2048-1547)*128=64128 GBA clock cycles, there is a complete period of the square wave. I've tested it on hardware, and when the value is one less than it should be, it sounds terrible. When you increase the value, you need to increase it by a certain threshhold before you hear any difference. I tested this program with a Milky Blue Japanese GBA. Results may vary depending on what it's been playing before... Sometimes the 'period' values are off by 1 as in you may get the junky tone one period earlier or later. reminder: "Period" values refer to how many clock cycles it waits before writing a new C note with reset to the GBC sound channels... At period 8001 and lower, it just clicks. At period 8002-8016, it either just clicks, or plays a different octave of middle C, or a junky tone At period 8017-16017, it starts with repeating middle Cs, then gradually gets lower as you increase the period, until 16018, when it becomes one octave below middle C At period 16018-16035, you get junky tones At period 16035-24033, you get middle C notes gradually going down to F below middle C tones At period 24033-24047, you get junky tones that gradually become middle C again at 24048 At period 24048-32050, you get middle C notes gradually going down one octave At period 32051-32064, you get junky tones At period 32065-40065, you get middle C notes gradually going down to G# At period 40066-40080, you get junky tones At period 40081-48081, you get middle C notes gradually going down to A At period 48082-48095, you get junky tones At period 48096-56097, you get middle C notes gradually going down to A At period 56098-56111, you get junky tones At period 56112-64114, you get middle C notes gradually going down to A# At period 64115-64127, you get junky tones At period 64128, you get the C note At period 64129-72130, you get middle C notes gradually going down to A# At period 72131-72144, you get junky tones At period 72145-80416, you get middle C notes gradually going down to A# At period 80417-80161, you get junky tones At period 80161- blah blah blah... you get the idea.. summary: Good C notes at: All multiples of 8016. Or in other words: All multiples of Wavelength [2048 - "n value"] * 16 Junky notes just before good C notes. "Junky" notes gradually start at low C, A#, or some other note, and go up to middle C On the NDS Lite, I'm getting less tolerance for deviating from the perfect position of the note. So yeah, by timing sound writes carefully, you can change the volume of GBC sound channels without bad reset artifacts.
  4. I'm using VBAprint to output HUGE amounts of text, like maybe 300MB. How would I go about logging it to a file instead of having it get slowly placed in a textbox?
  5. Tried VisualBoyAdvance583.7z Crashes within Goomba Color running Zelda Nayru.
  6. Dwedit

    Drymouth - black screen flashes

    Each time Drymouth gives a black screen, it is performing a speed switch.
  7. Dwedit

    Forums are too subdivided

    Forums are far too subdivided for the number of posts they are getting right now. I think you should unite Bugs, and Support, and all their subforums into one forum.
  8. No. It just writes to a sound register (I think it's to turn on the speakers, not completely sure), then reads it back to make sure the speakers are on. It freezes if it doesn't read back 0x80. Works on hardware, fails in the current timing nightmare of VBA's sound code.
  9. I know that the Zelda oracles games write 0x80 to one of the GBC sound registers (forgot which one), then immediately reads it back to see if its value is 0x80. If it's not, it crashes.
  10. I think I'll take a look at this. How do I grab the SVN version and compile it? edit: Hmmm... I don't have VC2008 (I'm still a VC6 user) Okay, how exactly is the sound timing code supposed to work?
  11. Dwedit

    Drymouth - black screen flashes

    VBA Rerecording v20 (based on forgotten's unfinished beta) has the same exact problems.
  12. Dwedit

    Drymouth - black screen flashes

    As far as I know, it's been in there since before VBA-M was started.
  13. Dwedit

    A sound test program which fails

    This is in the sound core. Sorry about some misinformation, it is not completely smooth on a GBA. The wave is normally ~134 samples wide. There is a 'bad wave' which is ~26 samples longer every ~1468 samples on VBA-M. The bad wave sounds like a pop. You get a pop about ~30 times a second. The bad wave (~26 samples longer) occurs every ~5638 samples on hardware, so it's less noticable. The pop appears ~7.8 times a second. I've attached the test program, VBA-M's wav output, and a bad recording of what hardware produces. WAV files don't compress well, so it's 900k.[attachment=23]
  14. Dwedit

    A sound test program which fails

    This is a program that plays stuff through the sound channels, then uses the GBA timers to calculate exact times for the waveform to be okay before starting a new sound at a lower volume. It sounds significantly different on hardware compared to VBA-M. The sound played is just repeating E notes, but it waits for the exact timing necessary to begin another note with no impact from the "reset" bit. On hardware it sounds smooth. On VBA-M, it sounds clicky/noisy/metalic. //get_wavelength(4); void test2() { REG_IME=0; REG_TM2CNT_H=0; REG_TM2CNT_L=0; REG_TM2CNT_H=0xC1; //256KiHz timer REG_SOUNDCNT_X=0x80; REG_SOUNDCNT_L=0xFF77; int period = 0x673; //E-note after middle C int target_time; int last_time=0; int num_tones=6; int volume=15; int real_period=2048-period; do { target_time=last_time+real_period*2*num_tones; target_time&=0xFFFF; while (1) { if (REG_TM2CNT_L==target_time-1) { break; } } REG_SOUND1CNT_H = 0x80 + (volume<<12); REG_SOUND1CNT_X = 0x8000 + period; last_time=target_time; volume--; if (volume==0) volume=15; } while (1); }
  15. Dwedit

    Drymouth - black screen flashes

    Other emulators either ignore the STOP, or treat the stop as a HALT.