About DrSMS
Downloads
Tutorials
SMS Compatibility
GG Compatibility
Screenshots
News Archives
Credits
Links
Home
DrSMS News Archive - March 2003




DrSMS News
I was browsing the forum at SMS Power, when I noticed a post about a Z80 core testing program. I thought to myself it'll never work on a master system emulator, but someone (Maxim) had created a version to be run on a master system so I decided to give it a shot. Oh yes, I was not dissappointed. It works brilliantly, this is going to make debugging my Z80 core a hell of a lot easier.

Thanks Maxim - Great Work!.



DrSMS News
I've implmented support for the SMS screen functions that lock the top 2 rows and/or columns 24 to 31. I've still been playing around with getting the rasta effects to work but I've not got any further.



DrSMS News
The results are out for the GBAX 2003 competition, see here. I got runner up. I was very surprised to see ZXAdvance as a runner up as well, which in my humble opinion should have been in the top three. I don't think the emulators really stood a chance against the games which were of a very high quality. Congratulations to Sean Reid with his entry called Wonkie Guy who got first place. His game is very original to say the least. Anyway there is still loads of work to do. I have not finished the menu or the noise channel, I was too busy playing PocketNes over the weekend. I've started to play around with getting rasta effects to work on the emulator, heres a pic of hang-on in action.



As you can see hangon is now playable. I'm just using a nasty hack to get this effect. I will probably have to totally re-write the vdp emulation to get this to work correctly on all games, but a least I can play hang-on.



DrSMS News
Started to put in a basic menu system. You can now scroll the screen up and down, I have also put in Pogoshell support, this means I do not have to write a multi-rom injector. A big thankyou to MrMr[iCE] on IRC for his advice on how to do this. I'll finish the menu system and have another go at setting up the noise channel. Here's some more pics...

Here's sonic scrolled up



and down




DrSMS News
The version of DrSMS I entered in the competition is already out of date. I've just re-written the sprite routines, which has fixed a lot of the sprite problems. This change has also increased the speed of the emulator. I have also fixed a problem with my IN opcodes and a problem with my scroll routines. A lot more games run now and the games that did run now run better. What more do you want? Yes I know you want multirom support!!



DrSMS News
Well I've handed in my emulator to the competition, I didn't get as much done as I wanted but I was busy on Sunday and Monday so I had to hand it in on Saturday. I'm still working on the noise channel, its almost there. I have also found another bug in my CPU core, where I was setting the initial value of the stack pointer to FFFF, of course I had completely forgot that this would put in smack in the middle of all of the SMS paging registers. I've changed this and a few more games run. Shouldn't be too long now before the results of the competition are anounced and you will be able to download DrSMS.



DrSMS News
I've finished the injector, its very basic but gets the job done. Thanks to all of the people that offered to write an injector for me. SMS sound channel 3 is now emulated and I'm now working on the SMS noise channel which should not be too hard. I've also added a few more undocumented Z80 opcodes. Here's a picture of the injector



WOW it looks amazing doesn't it. I used the injector code that is used in Foon as a basic reference, I hope Strags ( I hope I've spelt that right ) doesn't mind too much. Only 2 days to go to the competition dead line so I'm cutting it abit close.



DrSMS News
I've added correct tile and sprite priorities. ( The SMS allows you to have a tile either behind the sprites or in front of the sprites ). I have also re-written the sound routines for channel 0 and channel 1. I'm still working on channel 3. I'm using GBA channel 3 for this but its a right pain in the ass. The sprite routines have also been re-written which has made the emulator less flickery. A nice side effect of this change is that the Emulator runs at about the right speed, so the music sounds alot better. An Injector will have to be written soon, I could write this VB but I don't want because its a pain distrubuting it. ( You need to have the VB runtime files and other crap that microsoft bungs in ). So if I write it in VB you will have to run an installation program before you use it. This is not what I want to happen, I just want 1 executable with no installation ( Like Foon, ZXAdvance or PocketSMS ). So I'll have to try and cobble something together in C++. I've never used C++ before so don't expect anything fancy. Anyway heres some more pictures.






DrSMS News
SMS sound channels 0 and 1 are now emulated, I still have to get channel 2 and the noise channel emulated. I'm using a lookup table to convert SMS frequency's into GBA frequencys, its seems to work quite well.



DrSMS News
Now we're starting to get somewhere, Loads of games now run due to the amount of bugs i've fixed over the last couple of days. I've put in most of the code to handle the sound but I just have to get my routine that converts a SMS frequency into a GBA frequency right and that should be it. Here's a few more pictures.






DrSMS News
I have finally worked out why my DAA opcode does not return the right values. When a SUB,DEC,SBC or NEG is executed it should check for to see if the top nibble of the register is 0 and then set the H Flag. But my opcodes where checking the bottom nibble of the register. I'll fix this tonight and maybe I get the right time on Sonic. I'm still working on sound but i'm not getting very far at the moment.



DrSMS News
I've found the bug that was causing all of the weirdness. I was forgetting to reset the carry flag after doing an AND or an OR. I have fixed this. Tonight I will start to add some sound emulation. I've never done any sound on the GBA before so this should be fun.



DrSMS News
I found something weird with my core, if I make sure that the negative flag is set before I run every opcode, every thing works. All of the graphical problems in Paperboy are gone, Enduro Racer works and Wonderboy works great now. So I'm going to have to go through my core and see why this negative flag is so important. Anyway heres a few more screen shots.





About DrSMS | Downloads | Tutorials | SMS Compatibility | GG Compatibility | Screenshots | News Archives | Credits | Links | Home