Search found 20 matches

by breathermachine
Fri Aug 05, 2016 6:03 pm
Forum: GBDev
Topic: Length Counter Clarifications
Replies: 1
Views: 2667

Length Counter Clarifications

Hello! I've got some questions about the Length Counter that I can't seem to resolve by reading PanDocs, GBSSOUND.txt, http://gbdev.gg8.se/wiki/articles/Gameboy_sound_hardware (Wiki) and other sources. Q1: Is the "enabled flag" that's mentioned in the Wiki the same as the length enable fla...
by breathermachine
Fri Aug 05, 2016 8:56 am
Forum: GBDev
Topic: Tetris Emulation
Replies: 1
Views: 2857

Re: Tetris Emulation

Ok, I found out that I need to properly implement the reading of $FF04 (Divider) to make it work. :D
EDIT: It also affects encounters in Pokemon. 0 will disable encounters. Haha.
by breathermachine
Fri Aug 05, 2016 8:53 am
Forum: GBDev
Topic: Tetris Emulation
Replies: 1
Views: 2857

Tetris Emulation

My emulator always gives me the square tetromino when I play Tetris, which makes the game boring. :P
Image

Did you guys encounter such behavior on your emulators?

Thanks!
by breathermachine
Wed Aug 03, 2016 3:45 pm
Forum: GBDev
Topic: Emulator Bugs (Alleyway & Volley Fire)
Replies: 3
Views: 3471

Re: Emulator Bugs (Alleyway & Volley Fire)

Implementing a bare-bones serial fixed it. I was missing serial interrupts and was not getting any read requests from $FF01.

Thanks!

EDIT: This also fixed the rock scrolling in Volley Fire, although I'm having one scanline graphical glitches of the rocks.
by breathermachine
Wed Aug 03, 2016 9:03 am
Forum: GBDev
Topic: Emulator Bugs (Alleyway & Volley Fire)
Replies: 3
Views: 3471

Emulator Bugs (Alleyway & Volley Fire)

I have bugs emulating Alleyway & Volley Fire. For Alleyway, the game auto starts by itself and proceeds to the game. However, I cannot move the paddle and it is stuck all the way to the left. For Volley Fire, the rocks don't move. From my observations, the game is not using HBLANK STAT interrupt...
by breathermachine
Thu Nov 05, 2015 5:24 am
Forum: NESemdev
Topic: Question about MMC3's scanline counter
Replies: 1
Views: 2017

Question about MMC3's scanline counter

I'm currently implementing MMC3's scanline counter and I just have a question to clarify. If I have both sprite and BG patterns set to $0000 (meaning no transition of A12 from low to high), does the scanline counter get clocked every 2 scanlines due to increment of PPU's Fine Y on PPU clock 256? (I ...
by breathermachine
Wed Nov 04, 2015 8:59 pm
Forum: NESemdev
Topic: Holy Diver Batman MMC1 (M1_P128K.nes)
Replies: 7
Views: 3307

Re: Holy Diver Batman MMC1 (M1_P128K.nes)

Ok got it fixed! :D

It was due to a stupid typo in my PRG bankswitching code as I inadvertently used CHR banking mode as the check for PRG banking mode.
Finally got SGROM to work!

:D

I'm surprised that my emulator got this far considering this was a crucial part in PRG bankswitching..
by breathermachine
Tue Nov 03, 2015 9:51 pm
Forum: NESemdev
Topic: Holy Diver Batman MMC1 (M1_P128K.nes)
Replies: 7
Views: 3307

Re: Holy Diver Batman MMC1 (M1_P128K.nes)

Here is my read logic for $6000-$7FFF read // WRAM/battery backed ram if (address >= 0x6000 && address <= 0x7FFF) { if (battPRGRAM) return battPRGRAM[address & 0x1FFF]; return 0xFF; } And here is my write logic // WRAM/Battery backed ram write if (address >= 0x6000 && address <= ...
by breathermachine
Tue Nov 03, 2015 9:42 pm
Forum: NESemdev
Topic: Holy Diver Batman MMC1 (M1_P128K.nes)
Replies: 7
Views: 3307

Re: Holy Diver Batman MMC1 (M1_P128K.nes)

Here is a snippet 0443 8D 00 A0 STA $A000 = FF A:04 X:10 Y:03 P:24 SP:FD 0446 4A LSR A A:04 X:10 Y:03 P:24 SP:FD 0447 88 DEY A:02 X:10 Y:03 P:24 SP:FD 0448 D0 F9 BNE $443 A:02 X:10 Y:02 P:24 SP:FD 0443 8D 00 A0 STA $A000 = FF A:02 X:10 Y:02 P:24 SP:FD 0446 4A LSR A A:02 X:10 Y:02 P:24 SP:FD 0447 88 ...
by breathermachine
Tue Nov 03, 2015 9:27 pm
Forum: NESemdev
Topic: Holy Diver Batman MMC1 (M1_P128K.nes)
Replies: 7
Views: 3307

Re: Holy Diver Batman MMC1 (M1_P128K.nes)

Somewhere I'm not sure yet but when I enable WRAM for M1_P128K.nes (i.e. by honoring the write request), the rom does not crash. Although I'm not sure if honoring the write request is the right thing to do. If I don't honor the write request, the emulator dies on an illegal opcode (probably due to j...
by breathermachine
Tue Nov 03, 2015 9:13 pm
Forum: NESemdev
Topic: Holy Diver Batman MMC1 (M1_P128K.nes)
Replies: 7
Views: 3307

Holy Diver Batman MMC1 (M1_P128K.nes)

I'm currently implementing WRAM (battery backed and not) for MMC1 using Holy Diver Batman as test roms. However, my emulator dies on M1_128K.nes. I assume that it has no WRAM because there are other MMC1 roms that I think have (M1_P128K_C32K_S8K.nes, M1_P128K_C32K_W8K.nes, etc.) Debugging my emulato...
by breathermachine
Tue Nov 03, 2015 3:06 am
Forum: NESemdev
Topic: My emulator's MMC1 giving wrong mirroring values
Replies: 9
Views: 4284

Re: My emulator's MMC1 giving wrong mirroring values

Finally made it to work (as well as one-screen mirroring for MMC1 and AxROM). Thanks guys!
by breathermachine
Mon Nov 02, 2015 5:31 pm
Forum: NESemdev
Topic: My emulator's MMC1 giving wrong mirroring values
Replies: 9
Views: 4284

Re: My emulator's MMC1 giving wrong mirroring values

Ok I'll try to understand :) Set mirroring type to 2 (ABAB, vertical mirroring/horizontal arrangement) Write $AB to $2000, which writes to $000 Write $CD to $2400, which writes to $400 Reading $2800 should produce $AB Reading $2C00 should produce $CD I'm okay with this one Set mirroring type to 3 (A...
by breathermachine
Mon Nov 02, 2015 4:46 pm
Forum: NESemdev
Topic: My emulator's MMC1 giving wrong mirroring values
Replies: 9
Views: 4284

Re: My emulator's MMC1 giving wrong mirroring values

So does that mean that physical address = logical address & bitmask is incorrect?
by breathermachine
Mon Nov 02, 2015 4:25 pm
Forum: NESemdev
Topic: My emulator's MMC1 giving wrong mirroring values
Replies: 9
Views: 4284

Re: My emulator's MMC1 giving wrong mirroring values

I think I only use 2K of actual PPU memory by using bitmasks according to the nametable mirroring
$F7FF <- for vertical mirroring (This ensures that $0800 doesnt get decoded)
$FBFF <- for horizontal mirroring (This ensures that $0400 doesnt get decoded)