|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
![]() |
Rate this entry!
This poll has expired.
|
||||||||||||||||||||||||||||
Author | Message | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
[Coding competition 2016] Schlange CV by PkK
![]() Last edited by Maxim on Thu Apr 28, 2016 7:41 am; edited 1 time in total |
|||||||||||||||||||||||||||
http://www.smspower.org/Homebrew/SchlangeCV-SMS
![]() ![]()
|
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
The game is fun, but it has serious graphic glitches when playing on real hardware. The playing area is mostly okay, but the score board is a mess. Are you writing to the VDP while the screen is updated? | ||||||||||||||||||||||||||||
![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Yes, but it should only happen at a rate of at most one byte per 8.4 µs, which should be OK (and definitely is OK for the TMS9918). Philipp |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
It's surely the (very common) type of VRAM corruption due to not having enough clock cycles between two writes when in active phase. Check your code, you should have at least 26 clock cycles between each writes to be 100% sure to write everything correctly.
Also, make sure no interrupt can happen between the two writes to the VDP address registers. These are really the only two things to ensure to avoid problems :) |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Try running it in Emulicious with VDP constraints switched on. That gives an accurate impression of how it looks on the real hardware. | ||||||||||||||||||||||||||||
![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Actually just to add to the thread - I tried to play this using Fusion and seems to have some graphics issues even on the emulator esp. during game play... |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Finally, I found some time to track the graphics issues down.
The key was that there were no glitches in the intro, only in the menu and the game, i.e. the parts where text is displayed. Since I considered the text stuff less important speed-wise, the graphics memory access routines for that were written in C, not asm. Turned out SDCC optimized the code so much that it became fast enough to violate the timing contraints Now I can fix it - for this and the other two games. Philipp |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Please do that, and let us know when it's done, I'll happily test these again on my SMS II :) |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Fixed it last night, sent the updated .rom for this and Cye to competition@smspower.org; I guess it will appear here sometime today, after someone goes through that mailbox. Philipp |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
Please post updates to the forum or directly on the homebrew page if possible, and not to the e-mail address (we rarely check it). | ||||||||||||||||||||||||||||
![]() ![]() ![]() |
||||||||||||||||||||||||||||
|
![]() |
|||||||||||||||||||||||||||
OK, here's the update.
Philipp |
||||||||||||||||||||||||||||
![]() ![]() ![]() |
![]() |