Search found 95 matches

by Gigasoft
Fri Mar 26, 2010 12:35 pm
Forum: Video Display Processor
Topic: Undocumented VDP commands
Replies: 11
Views: 9263

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: 9263

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: 6391

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: 19287

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: 14342

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: 6391

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'...
by Gigasoft
Fri Mar 19, 2010 9:59 pm
Forum: Megadrive/Genesis
Topic: Advice on the Art of Genesis level Building
Replies: 30
Views: 19287

In Mega Man 5, the GG code ATLKGL (C33C:60) enables debug keys on controller 2. Some of these are processed in the main game task (Task 0). These are Left (pauses the game) and Right (palette editor). Task 1 handles palette and background animations. Task 2 just starts up the other tasks. Task 3 is ...
by Gigasoft
Fri Mar 19, 2010 7:00 am
Forum: Megadrive/Genesis
Topic: Advice on the Art of Genesis level Building
Replies: 30
Views: 19287

Nope, not PC, Mega Drive. I used the same technique on the NES. I switch to loading task at the end of frame processing, and the VBL handler returns me back to where I was before. Many Capcom NES and SNES games have support for (non-preemptive) multitasking too in the code, although they don't usual...
by Gigasoft
Tue Mar 16, 2010 7:00 pm
Forum: Megadrive/Genesis
Topic: Advice on the Art of Genesis level Building
Replies: 30
Views: 19287

For tile updates, you could transfer a manageable number of tiles every frame until you're done. Uncompressing can be done in the background when the game is idle. In an upcoming game I'm making, I switch to a background task that performs loading of world data whenever I'm waiting for the next fram...
by Gigasoft
Wed Feb 24, 2010 8:51 am
Forum: Video Display Processor
Topic: Megadrive video timings
Replies: 123
Views: 163085

Is the CPU frozen during DMA even if it's running from RAM? Because Sega recommends triggering the DMA copy with the source operand in RAM if the copy is from ROM to avoid a hang.
by Gigasoft
Sun Feb 14, 2010 5:20 pm
Forum: Megadrive/Genesis
Topic: Z80 clocking
Replies: 7
Views: 5698

No, that's not true. The wait states would happen around 255714 times per second, which is a frequency much higher than what we can hear.
by Gigasoft
Mon Feb 08, 2010 2:42 pm
Forum: Megadrive/Genesis
Topic: Z80 clocking
Replies: 7
Views: 5698

Yes, using wait states would be a good idea.

All games I've disassembled use cycle counting to time DAC playback. I haven't heard of any games that use timers for anything but music timing.
by Gigasoft
Sun Feb 07, 2010 11:01 pm
Forum: Megadrive/Genesis
Topic: Z80 clocking
Replies: 7
Views: 5698

Digitized sounds would be off key. Usually, they're only used for drums, but Phantasy Star 4 has some melodic samples in it, and the music would not sound right.

If you can use a normal signal as a clock input, it shouldn't be hard to use the top bit of a counter counting to 15 as a clock signal.
by Gigasoft
Sat Feb 06, 2010 12:28 am
Forum: Demos
Topic: Happy New Year 2010 Demo
Replies: 10
Views: 8523

Sorry, my mistake. It should work now. Try downloading and testing it again.
by Gigasoft
Sat Jan 30, 2010 4:29 pm
Forum: Regen
Topic: Regen 0.972 and 0.972D
Replies: 193
Views: 351681

Well, Phantasy Star 4 uses a special I/O port to switch between SRAM and ROM, so that's probably unimplemented.