Search found 89 matches

by Gigasoft
Wed Apr 07, 2010 4:10 am
Forum: Regen
Topic: Regen 0.972 and 0.972D
Replies: 193
Views: 60139

May I also suggest stepping and breakpoints for Z80?

And selection and editing in memory viewer using the mouse and keyboard (instead of the current approach which reminds me of old computers that were programmed with switchboards, setting the address and data and flipping the "set" switch).
by Gigasoft
Tue Apr 06, 2010 7:45 pm
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

According to the document at SnesWiki, Mode 2 has a separate scrolling offset for each tile, so it's not quite the same. However, if you just want to do 8 line horizontal scrolls, HDMA is much easier to use and much faster than mode 2, since each scrolling value only has to be written once instead o...
by Gigasoft
Tue Apr 06, 2010 3:56 am
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

BUT that reminds me about in SNES you cann't do vertical scroll inside a plane/BG. So, for example, you cann't port Trouble Shooter 2 from MD to SNES at pixel perfect level. I assume you're talking about per-column vertical scrolling. Well, in modes 2, 4 and 6 every tile can be individually scrolle...
by Gigasoft
Sat Apr 03, 2010 6:42 am
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

Yes, the Genesis can scroll in either full screen mode, line mode, 8-line mode or repeating 8-line pattern mode. And so can the SNES, with the proper HDMA lists.
by Gigasoft
Fri Apr 02, 2010 5:12 pm
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

In most games, the screen scrolls more often than not, and both planes are scrolled. So even if you only have parallax in the background and not in the foreground (which is common), all the foreground entries must still be set on every frame where the screen scrolls, which happens most of the time. ...
by Gigasoft
Thu Apr 01, 2010 6:10 pm
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

With SNES you have up to 16 DMA's chanenles avaliable, so in practice you cann't do what genesis does. You need to spend all the displaying time (in contrast with vertical retrace time) updating scroll values if you want more than 16 scroll. In the other side, it wastes more memory on MD. Wrong. A ...
by Gigasoft
Wed Mar 31, 2010 11:16 pm
Forum: Video Display Processor
Topic: Understanding the VDP's scrolling capabilities.
Replies: 61
Views: 18840

Line scrolling is just as simple to implement on SNES as it is on Mega Drive. This is easily done using a HDMA channel. An example of line scrolling is seen in the ground of Ryu's stage in Street Fighter 2, which behaves similar to the water in Launch Base 2 in Sonic 3. Mode 7 screens such as the wo...
by Gigasoft
Sat Mar 27, 2010 7:08 pm
Forum: Megadrive/Genesis
Topic: Official Sega Documentation, More is required?
Replies: 11
Views: 4023

Well, that's not hard at all. Just don't update the registers for a music channel when the channel is being used for a sound effect. Turn off the sound for every channel that a sound effect uses at the start of the sound effect. Remember the current instrument in use for a channel, whether it's used...
by Gigasoft
Sat Mar 27, 2010 5:33 pm
Forum: Megadrive/Genesis
Topic: Advice on the Art of Genesis level Building
Replies: 30
Views: 7295

Why won't you share some of your routines with the community? Please show me some of your code. :) Well, here are some short excerpts. I can't share too many secrets :P The VSync function. vsync: move.l d0-d7/a0-a6,-(a7) move.w #$2700,sr move.w a7,stack1 move.w stack2,a7 move.l (a7)+,d5-d7/a4-a6 ts...
by Gigasoft
Fri Mar 26, 2010 12:35 pm
Forum: Video Display Processor
Topic: Undocumented VDP commands
Replies: 11
Views: 3823

According to Charles McDonald, CD4 does nothing in non-DMA mode. A register write changes the mode to VRAM read if I understood this correctly, but the effect on the current address is unknown. Another thing to try is setting CD4 to 0 with VRAM copy mode selected in register 23, or setting it to 1 w...
by Gigasoft
Thu Mar 25, 2010 10:35 pm
Forum: Video Display Processor
Topic: Undocumented VDP commands
Replies: 11
Views: 3823

My guesses: xx0111: write same value to CRAM and VSRAM? xx1011: short circuit or AND/OR to CRAM? xx1100: short circuit or read AND/OR between CRAM and VSRAM? 110100: duplicate high bytes from VSRAM to VRAM or copy high bytes within VSRAM, setting low bytes to unknown value? 111000: duplicate high by...
by Gigasoft
Mon Mar 22, 2010 12:24 pm
Forum: Video Display Processor
Topic: V & H interrupt problem
Replies: 8
Views: 2549

It's so that you don't have to actively wait for the line counter to reach a specific value, but can do other things in the meantime. H interrupts let you know when a specific number of lines have passed, so that you can change something. For example, in Sonic, the H interrupt handler changes the pa...
by Gigasoft
Mon Mar 22, 2010 12:08 am
Forum: Megadrive/Genesis
Topic: Advice on the Art of Genesis level Building
Replies: 30
Views: 7295

Yes, by a command I just mean something which specifies a large object to be made out of 16x16 blocks, just like in those Nintendo titles. If you load the level data into RAM as tiles first, transferring them will take just a short time because you don't have to interpret the level data as you draw....
by Gigasoft
Sat Mar 20, 2010 9:06 pm
Forum: Megadrive/Genesis
Topic: relocation truncated to fit
Replies: 25
Views: 5838

Changing GCC version or using different options can not fix this error, since it has nothing to do with GCC. The error is in sega.s, which is part of the library. It can show up if your program exceeds a certain size. The errors are on line 152 and 159, which read: bsr _hblankcallback bsr _vblankcal...
by Gigasoft
Sat Mar 20, 2010 4:03 pm
Forum: Video Display Processor
Topic: V & H interrupt problem
Replies: 8
Views: 2549

Remember to have a move.w #$2300,sr somewhere in your setup code. And to get H interrupts working, you have to set up the line counter initial value (VDP register 10). If you only use it once per frame, you can disable the H interrupt when it's reached. If you use it multiple times in one frame, it'...