- Tech Member: Tech Members
- Active Posts:
- 2583 (0.77 per day)
- Most Active In:
- Engineering & Reverse Engineering (221 posts)
- 08-April 04
- Profile Views:
- Last Active:
- Jun 17 2013 12:24 AM
- Member Title:
- S2HD Staff - Tools & Assistant Programmer
- 28 years old
- July 27, 1984
- United States of America
- Other Contact Info:
- National Flag:
- Wiki edits:
Posts I've Made
06 May 2013 - 08:51 PMThanks for all the input. I haven't gotten a fan yet. I figured before I bothered spending the money on one, I should at least make sure I can get my laptop apart and get the bad one out first. And WOW, it's hard! I spend a lot of time getting into it as far as I have. But everything is connected to everything else, so determining what order things need to be disassembled is the tricky part. To remove the layer that's covering the fan, I have to remove the back panel under the monitor which is screwed down, and I can't get to the screws without removing the monitor, and I can't seem to remove the monitor without first figuring out how to remove the cable that runs from it to the DE-15 VGA port...
I keep telling myself that doing this is worth it if I can get at least another year out of this laptop. But you people weren't joking when you said there would be a lot to remove!
30 November 2012 - 12:09 AMNicely done! It's clean and looks very professional. This is a well-done modification =)
16 November 2012 - 01:17 PMI don't know how old these clips are, but my first guess is they're promoting brand awareness. I think it's wonderful that in not one, but two clips from the show they have Sonic. It doesn't matter which ones they have on there. The fact that Sonic gets screen time is terrific. Sonic needs some heavy brand awareness. Have you seen the sales numbers compared to Mario games? While Sonic games don't do bad at all, Mario wipes the floor with all the Sonic games combined! And Mario is only on two systems, whereas Sonic is available on all of them. I'd like Sonic to be more competitive against Mario again. This is one way to help Sega get there. Again, Sonic 06 doesn't matter. They're showing Sonic. That's all that's really going to sink in to anyone watching.
15 November 2012 - 06:01 PMMaybe, either that or I'm misunderstanding the problem entirely, sorry if I am.
I gave a go at altering a few things, and this is as far as I could get with the limited time that I have:
The graphical issue with the water no longer occurs, but there is major lag when the water reaches near the top of the screen (because of its reoccuring on every scanline I'm sure).
One question though, why are you trying to make a Sonic 2 game that doesn't rely on V-blank? Is it simply a proof of concept or is there an inside reason I'm unaware of?
It looks correct. However the obvious side-effect is the lag. The lag may be due to the page interrupt occuring at the wrong place. There's a loop inside the RunPageInt section that forces it to wait until the VH counter has reached E008. This resolves issues with the sound lagging, and is also point at which a V-int would occur according to documentation. The main reason though is to keep the sound from lagging. But when the page interrupt doesn't occur at the bottom of the screen, the game is forced to wait until line E0 is reached. I wonder if when you take that section out if it'll throw out interrupts everywhere or not. Either way, I am curious as to what you changed.
I've been working on a project since February, and one of the requirements is for the game to never use the V-blank. Because I haven't announced the project publically, and because the reasons are very specific in nature, I can't really say more than that. But doing away with the V-int and having the H-int handle it instead is a must.
15 November 2012 - 05:26 PMPardon my ignorance, but isn't the a VDP register bit that needs to be cleared and set to start and pause the HV-counter, I'm pretty certain that I've read in a document somewhere that the HV-counter needs to be set to pause before you can read from the counter effectively, whether this is true or not though is something I have yet to see, I just thought I'd mentioned it as it's relevant.
Edit: another thing to note (which is the reason for your water line being all over the place) is that when you've set it to write the underwater palette data to CRAM, you changed the H-blank scanline register so that the next occurance will be at the bottom of the screen, which makes sense, the problem here is that it will not take effect until H-blank has occured once again, I.e. if the occurred scanline is at say 0x20, and you change it to 0x50, it will NOT occur next time at 0x70, the 0x50 does not take place yet, so it runs through another 0x20 reaching it to 0x40, THEN 0x50 will be taken into account, and the next occurrance will be at 0xB0, when setting the H-blank register, there's always a delay before it gets taken into account.
I'm not aware of documentation saying you have to pause the HV counter. I know they mention it when using the level 2 interrupts, but to my knowledge it isn't required for reading the counter. Of course, maybe you're right and I've overlooked this.
When the DoPageInt section runs, it runs the RunPageInt code (the old V_Int, now called PageInt), and then follows this with the SetPageInt where it subtracts the Hint_counter_reserve line from DF, effectively setting up the next page interrupt that will follow the upcoming line interrupt.
When the DoLineInt section runs, RunLineInt code runs (the old H_Int, now called LineInt), and it is followed by SetLineInt where it simply sets register 10 to the Hint_counter_reserve line, setting up the next line interrupt that will follow the upcoming page interrupt.
I think you may be following my code wrong. You're right that there's a delay, because the internal counter will refresh immediately when the interrupt occurs, so what I want that value to be must be set between the current interrupt and the previous interrupt. But I've followed my code through the debugger, and I'm fairly certain it's doing this correctly. Or, maybe I'm just misunderstanding you?