Search found 94 matches

by byuu
Tue Aug 22, 2017 12:11 am
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

This doesn't seem quite right as it would imply you don't actually have full resolution scrolling/positioning in this mode. Instead, what you probably want to do is multiply the vcounter value by 2 and add 1 if you're on the "lower" field (I'm uncertain as to whether this is the odd or even field t...
by byuu
Tue Aug 22, 2017 12:05 am
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

... wow, very nice! Really happy to see you're working off the same 9-bit (0-261) Vcounter for both fields that I am with your examples. I kept trying to double the VSRAM scroll value ... can't believe I didn't think to try halving it. y += state.verticalScroll >> (vdp.io.interlaceMode == 3); This g...
by byuu
Mon Aug 21, 2017 7:29 pm
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

Sik and I went at this for a while, this was the best cherrypicked result: https://pbs.twimg.com/media/DHxqwjTU0AAE0Sa.jpg:large The Vscroll is completely busted, and nothing seems to fix it. The two things I've found so far that are clear wins ... first, as before: uint15 tileAddress = tileAttribut...
by byuu
Mon Aug 21, 2017 3:42 pm
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

Ah, you're right, sorry. I made that change while working on a test branch to add interlace support. It's (0,10)<<4 in the main repository. I think I see now, tile tile# d0 bit is still there, it's just that d0-d10 represents a1-a11 now in interlace mode, eg: uint15 tileAddress = tileAttributes.bits...
by byuu
Mon Aug 21, 2017 1:13 pm
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

> Wait, how didn't this break everything? The tile ID is 11-bit in normal mode and 10-bit in interlaced mode. There's no way that bits(0,9) would ever work, that only gives you 10 bits. Is tileAttributes just the 16-bit value stored in the tilemap or something else? My VRAM is a 16-bit array. 16x327...
by byuu
Mon Aug 21, 2017 11:17 am
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Re: Interlace mode (LSMx=3)

Well, I am no saint at writing documentation, either. I try to at least produce emulator code that can be read by other humans (seriously, Genesis VDP is either all x86 ASM or incomprehensible macro abuse with 30 versions of background renderers ... does every Genesis emulator have to run on a toast...
by byuu
Sun Aug 20, 2017 9:00 pm
Forum: Megadrive/Genesis
Topic: Interlace mode (LSMx=3)
Replies: 20
Views: 3892

Interlace mode (LSMx=3)

So, I can't find any info on how the 8x16 tile interlace mode (LSMx=3) works. I think this is the last major feature I'm missing. Continually surpised at how difficult it is to just brute force the answers to these things, so ... here goes. I presume the nametable height is still 32 or 64 based on t...
by byuu
Sun Aug 20, 2017 7:31 pm
Forum: Megadrive/Genesis
Topic: Shadow/Highlight
Replies: 13
Views: 4899

Re: Shadow/Highlight

Much appreciated! These notes and help from Cydrak led to a working, minimal implementation :D The main thing that was breaking the demo originally was that I wasn't updating the background priority bit when the color was transparent. That's not something that's normally done on other systems I've e...
by byuu
Sun Aug 20, 2017 2:42 pm
Forum: Megadrive/Genesis
Topic: Shadow/Highlight
Replies: 13
Views: 4899

Shadow/Highlight

Trying to implement shadow/highlight. The documentation ... well, you all know. I can't run Vectorman, because inputs aren't working in the game for some reason for me. Another bug, yay. I can't run vdpdoc.bin, because it's known to not work on hardware, and also doesn't run for me. Expects a strang...
by byuu
Fri Feb 24, 2017 10:24 am
Forum: Megadrive/Genesis
Topic: Langrisser II (v1.2) opening tile graphics bug
Replies: 5
Views: 1526

Re: Langrisser II (v1.2) opening tile graphics bug

Thanks, I definitely want to work my way to that. I still don't understand the VDP FIFO at all, nor how to go about emulating it. But I do hope to emulate that at some point, especially given I have a cycle-timed VDP core, so I should be able to handle it with no serious problems. I'll be sure to us...
by byuu
Thu Feb 23, 2017 2:13 pm
Forum: Megadrive/Genesis
Topic: Langrisser II (v1.2) opening tile graphics bug
Replies: 5
Views: 1526

Re: Langrisser II (v1.2) opening tile graphics bug

Yep, you were right, thank you! :D It's really weird because the game loads the tiledata incorrectly into VRAM via 68K->VRAM DMA. I guess it then does some weird VRAM copy magic to reorder data. Which is ... ridiculous, but whatever. The problem was that I was trying to do the VRAM copy as word-base...
by byuu
Thu Feb 23, 2017 8:24 am
Forum: Megadrive/Genesis
Topic: Langrisser II (v1.2) opening tile graphics bug
Replies: 5
Views: 1526

Langrisser II (v1.2) opening tile graphics bug

Long-term veterans may remember that Genecyst had a problem with this game, where it rendered the characters displayed in the intro incorrectly. And it looks like I'm experiencing the same bug. But unfortunately, nobody ever explained what actually caused it :/ So this is what the bug looks like: ht...
by byuu
Wed Aug 24, 2016 2:57 pm
Forum: Megadrive/Genesis
Topic: Questions on developing a Mega Drive emulator
Replies: 39
Views: 8120

Re: Questions on developing a Mega Drive emulator

There's a few menu screens on the SNES that use interlace mode, but it's pointless. Progressive fonts are perfectly legible too. ... Figured out windowing, finally. Many, many thanks to Sik! //window plane horizontal position case 0x11: { io.windowHorizontal = data.bits(0,4) << 4; io.windowHorizonta...
by byuu
Wed Aug 24, 2016 1:51 pm
Forum: Megadrive/Genesis
Topic: Questions on developing a Mega Drive emulator
Replies: 39
Views: 8120

Re: Questions on developing a Mega Drive emulator

Yeah, I never understood why these consoles added interlace modes. They look atrocious. The SNES would have been just fine without RPM Racing; and the Genesis just fine without Sonic 2-player mode. Even as a young kid I remember thinking about how awful it was playing in Sonic 2-player mode, so we n...
by byuu
Wed Aug 24, 2016 12:32 am
Forum: Megadrive/Genesis
Topic: Questions on developing a Mega Drive emulator
Replies: 39
Views: 8120

Re: Questions on developing a Mega Drive emulator

Yeah, to me, 9-bit color is the most obvious misstep. I would even be okay with the same number of palettes ... but it's really evident how cramped 9-bit color is. 12-bit would have really helped liven things up. So ... I'm still having some trouble understanding the window layer. I followed the doc...