Page 129 of 129 FirstFirst ... 2979119127128129
Results 1,281 to 1,290 of 1290

Thread: Game Boy

  1. #1281
    EmuTalk Member
    Join Date
    Mar 2014
    Location
    Chicago, IL
    Posts
    122
    Mentioned
    9 Post(s)
    Probably nothing to do with LCDC status interrupts. I'm not detecting Aladdin or Tomb Raider setting up the flags in the LCDC register (Aladdin does set LY == LYC interrupts which I know I've done correctly with homebrew tests of my own). However, both games seem to forgo using the interrupts and constantly read the LCDC status register themselves. Looks to me like it is something to do with setting Bits 0-1 correctly at the right times. I'll investigate later.

  2. #1282
    EmuTalk Member
    Join Date
    Aug 2014
    Posts
    10
    Mentioned
    1 Post(s)
    Since implementing double speed I've have been having problems with Aladdin gameplay. The game starts correctly with the level music playing and all the backgrounds/sprites/etc. visible except Aladdin himself and the
    game essentially softlocks as moving left or right, or attempting to pause the game does nothing (music still continues to play fine though).



    Weirdly enough modifying the cpu speed to x3 instead of x2 for double speed mode actually renders the gameplay correctly and eveything plays fine except for being too fast due to the speed
    increase. So I'm wondering if my double speed implementation still possibly has a flaw somewhere.


    Some games I'm also getting some weird horizontal bars. Noteably in the pink background in Rayman (top middle of screen). On the green floor below Lara and in green column in the middle of the screen in Tomb Raider.
    On Link's Horse in the intro to Oracle Of Seasons.



    Pokemon Pinball also behaves strangely, the black and white credit screen and the title screen are completely black, and the selection screen for the red/blue stage is completely
    pink with the stage selection outline appearing in black. The gameplay seems fine though. This game doesn't seem to use and hdma/gdma transfers, and runs in entirely in "single speed" mode.
    Manually fixing the bg/sprite palettes to the values shown in the bgb vram viewer for the title screen gives the correct graphics on my emulator so it's definitely a palette issue. For some reason
    the palettes in my emulator are all set to 0x00 in the intro and title, so I'm going to look into why they're being set like that.


    edit: Managed to fix Pokemon Pinball, turns out that writing to the Sprite/Background palette index registers should also update the respective palette data register with the value of the index in palette memory. The menus in this game rely on this to set the palettes when ran on a Gameboy Color.

    Last edited by RossIain; April 12th, 2015 at 21:58.

  3. #1283
    EmuTalk Member
    Join Date
    Feb 2014
    Posts
    45
    Mentioned
    1 Post(s)
    I've been working really hard the past three days to get proper audio and color support up and I'm almost finished!

    EDIT: I currently have the Coincidence Interrupt disabled, because my implementation somehow creates bugs in Pokemon Gold / Silver
    Last edited by Flerovium; May 6th, 2015 at 01:40.

  4. #1284
    EmuTalk Member
    Join Date
    Mar 2014
    Location
    Chicago, IL
    Posts
    122
    Mentioned
    9 Post(s)
    Sounds like you're missing a few notes (bad recording?) but it's great that you've made so much progress. Keep it up!

  5. #1285
    EmuTalk Member
    Join Date
    Feb 2014
    Posts
    45
    Mentioned
    1 Post(s)
    No, unfortunaly this is not the bad recording Notes get eaten randomly and I haven't exactly figured out, from where this problem arises. Either the emulators timing is off, or the audio library (in my case NAudio) is lagging, when running beside the emulator. But fortunaly I abstracted the audio code from the beginning. Therefore it shouldn't be too hard to exchange the library.

    EDIT: The bug was in the audio library. I changed my code so that NAudio uses DirectSound and now it isn't lagging anymore!

    EDIT2:
    Last edited by Flerovium; May 6th, 2015 at 14:01.

  6. #1286
    EmuTalk Member
    Join Date
    Mar 2014
    Location
    Chicago, IL
    Posts
    122
    Mentioned
    9 Post(s)
    Congratulations! For me, sound programming is always a challenge because I know very little about dealing with digital audio. I managed to do the GB/GBC just fine, and I've gotten the GBA mostly correct (more correct than wrong). It sounds like your audio is still a bit too slow. It plays all of the notes, but you'll notice audio-video desyncing during Pokemon Gold/Silver's intro (around the time Pikachu attacks Jigglypuff). I'm sure you know what to do, and it's really great to see someone working on their emulator again. Good luck!

  7. #1287
    EmuTalk Member
    Join Date
    Feb 2014
    Posts
    45
    Mentioned
    1 Post(s)
    Thanks, good luck to you too! For myself I already was interested in audio (programming) for some time. And my big brother is a physics students which explained some of the elementary rules to me. The rest I did with the help of the internet and my own thoughts You're right it is a bit desynced sometimes but most time it's not noticeable therefore it doesn't annoy me too much.
    Last edited by Flerovium; May 8th, 2015 at 16:42.

  8. #1288
    EmuTalk Member
    Join Date
    Feb 2014
    Posts
    45
    Mentioned
    1 Post(s)
    Can anyone explain to me how the noise channel is working? I don't quite get it

  9. #1289
    EmuTalk Member
    Join Date
    Mar 2014
    Location
    Chicago, IL
    Posts
    122
    Mentioned
    9 Post(s)
    Have a look at these links ->
    http://belogic.com/gba/channel4.shtml
    http://gbdev.gg8.se/wiki/articles/So...nnel_4_-_Noise

    The GBA's noise channel is the same as the GB/GBC's, just so you know. Essentially, the output frequency of the noise channel is

    Code:
    (524288.0 / DIVIDING_RATIO) / SHIFT_CLOCK
    The dividing ratio is 0.5 for a 0, and 1.0, 2.0, 3.0 and so on for values of 1, 2, 3... The shift clock is basically 2 << (top 4 bits of NR42). This is the frequency you run the LSFR (i.e. times per second). The LSFR is basically a series XORing the first two values of a number (the 7 or 15 stages, that is to say, a variable holding a 7-bit or 15-bit value), shifting that number once to the right, then replacing the most significant bit of that number with the results of the XOR. The output of the noise channel itself is either ON or OFF, high or low. The ON state is determined if the least significant bit of 7-bit or 15-bit variable is 1. Otherwise, if the least significant bit is 0, the state is OFF.

  10. #1290
    EmuTalk Member
    Join Date
    Feb 2014
    Posts
    45
    Mentioned
    1 Post(s)
    Thanks, this helps me a lot


Page 129 of 129 FirstFirst ... 2979119127128129

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •