![]() |
![]() |
![]() |
News
Its the holidays and I have just finished updating the Site. I have been busy with uni work so there weren't many updates. By the way SnesXP is the fifth revision of the Snes98 series. I am coding it in optimized assembly. So wish me luck! 21 September 1999 - New layout for the Snes98 Site Its the holidays and I have just finished updating the Site. I have been busy with school work so there weren't many updates. I am about to code in a debugger ad start on a assembler 65816 CPU core.4 August 1999 - Coded in the NMI vector jumping! After finishing all the BG's for 8x8 tiles and the first BG of 16x16 tiles I had a look a the NMI vector. I made the program jump to it when it was in a VBlank. It allowed a couple of the demo roms to move(animate). The 16x16 tiles decoder was able to load the pong screen! Here are some screen shots of the NMI at work.11 July 1999 - A New Graphic Decoder! During these couple of days, I have been busy coding the new graphic decoder. And now it has the first 3BG. I am still debugging it! But it works nicely. But it is only for 8x8 tiles. 16x16 Tiles will come probably next week. When I have 16x16 tiles I should be able to see some title screens start up. Well I got some new screenshots of CDI.SMC.9 July 1999 - DMA and new PPU are Done! The new PPU and DMA are done! The PPU has most of the useful registers that are needed for simple things to run. This time I have made the PPU reading part as well. But because there aren't many useful registers for reading I have once again omitted the DMA reading from PPU and write to the CPU!!! Testing the new PPU and DMA I simply copy and pasted my old line by line engine from Snes98 to Snes98V3. And the graphics worked out fine! Which means no bugs in the DMA and PPU code. The graphics decoder is killing my brain. Its is very hard to code something which supports:6 July 1999 - Started coding the new PPU. This time I am going to incorporate fully functional DMA channels. All 8 of them. And with all the features in it. The old one missed out on reading from the PPU and writing to the CPU. The old one can only read from CPU and write to PPU. I think I shall give HDMA a miss for now! After the new DMA, I will be working on a fully functional graphics decoder with modes from 0 to 6 (mode seven can come later). And all BGs to be displayed. Scrolling, Mosaic to be in there too. Lets hope the title of Mario World will load!!! I expect the new PPU+DMA to be finished about tomorrow. But the new graphic decoder will take longer.5 July 1999 - Finally made a screenshot exportor. Getting no email from anyone, I decided to get some new screenshots to prove that Snes98V3 exists. Well I added a procedure in Snes98V3 which exports a custom format (RAW) to a file when I press the button 's'. The file is only readable in a Delphi program I wrote to decode it! This is because exporting to a gif or bmp or pcx takes effort. With RAW and my custom palette style I can easly make another program to load it.4 July 1999 - Another ROM that works!!!! Still waiting for answers. I got impatient so I sent email to ask ZsKnight. I am going to ask the authors of Sneese. I found that the discontinued Sneese is back with only one programmer left. The other two dropped out. Their latest release is Sneese 0.26. And you can get the source code too! I didn't find much use for them. They were all in ASM and I am not too good with ASM especially the new Pentium style(protect mode). Yeah a couple of days ago I found another rom which works with my VBlank faking Snes98V3. It displays the first plane and scrolls around in curves. I shall have screenshots soon! I am going to rewrite my whole PPU registers.1 July 1999 - Hooray!!!!! Something actually moves!!!! Today I knocked out a couple of bugs from my CPU core. I was actually using the debug mode of ZSnes and my Snes98V3 debugger and I compared the two to see where it went wrong. Soon I found a couple of mistakes which took me two seconds to fix. I also compared it to my old DOS Snes98's debugger. Then I decided to just rip the graphics section from my old DOS Snes98. Then by faking VBlank I got a scrolling plane on the screen from the rom anascrol.swc. During the two years I have been working on Snes98 I have never had anything move before. I was quite happy to see it finally move!!!!! For those of you out there thinking "BIG CRAP IT SCROLLS" yes it is very "BIG CRAP". I did not make Snes98 to compete with the Snes Emulators already out which work very well. I made it to challenge myself to see if I could make such a program. Considering that it took me two years to get something to move it is a very large amount of time. This is because I have to go to school everyday and I don't even get a chance to even touch the computer alot of the times, except for holidays (Now).30 June 1999 - Finally finished the 65816 CPU core! Even though I have finished the CPU core, I still need answers from the These Team which I should be getting tonight. I shall need to change a dozen of opcodes when I get the reply. Well the current source stands at 7550 lines. Its over 120k.29 June 1999 - Almost finished the CPU core Almost finished the CPU core. Still have wait for some answers from the These Team. I still can't figure out what the Carry Flag is meant to mean. I don't have a clue when to set it or when to clear it!!!28 June 1999 - Started a couple of opcodes! Today I coded in a couple of opcodes. And found that I had done all my Indirect Addressing Mode Opcodes incorrectly in the previous Snes98s. This time I fixed it up. Yesterday I did about 40 opcodes. Lets hope I will finish soon and get started on the PPU and DMA.26 June 1999 - Started Coding the new Snes98V3 Today I started coding the new Snes98V3. After getting many answers to questions from Qwertie, ZsKnight and the Authors of These I finally began to understand the Snes at an higher level. I have just finished the rom loading for the new Snes98V3. It currently has a working LoRom and HiRom Detector. Also created arrays for the memory map. Also placed the rom in its memory location. I am expecting to start coding CPU tonight.22 June 1999 - Started taking notes on 65816 CPU I have started to read the tech docs on the 65816 CPU. Started some note taking in an exercise book. Summarised the points from the docs. And soon I shall have a whole heap of questions to ask successful snes emu authors. A couple of days ago I almost fooled myself into N64 emulation but after reading some tech docs of the N64, I found out that the console has 4 CPUs. And one of them is a mips R4300 running at 90Mhz. And all four CPUs seem to somehow interleave each other. Because an average CPU has about 200 opcodes I decided to stick with Snes because it only has 2 CPUs (65816 and SPC700).18 June 1999 - Hmmmmmm. I was reading some old RSRSNES page and found!!! "The N64 is not impossible to emulate. In fact, its a heck of a lot easier to emulate than an SNES; No whacky memory mapped registers, timing critical tweaked programs, or hellishly implemented tile formats! The r4000 is a breeze to emulate compared to the 65816; no flags, no emulation mode, no 24 memory modes: In fact, the MIPS RISC series really only has two memory modes. All of the registers are multipurpose, with no special rules to complicate them. Really, the only thing difficult about emulating the r4300 is getting it fast enough; No obscure bugs that only show up in one opcode executed once in a blue moon!" quote from author of RSRSNES.17 June 1999 - Started planning Snes98V3 Today I have started taking notes from Snes tech docs which I have printed. I shall start coding soon once I get the addressing modes and core opcodes planned. I also need to find a new way to map the snes memory more efficiently.13 June 1999 - New layout for Snes98 Homepage Still working on the new layout for the Snes98 Homepage. Took off the top two frames. Two frames left!12 June 1999 - Update of Snes98 Homepage I finally decided to update the Snes98 Homepage after my mid year exams. I noticed that I could not find my page on any search engine. Strange!!!!. I designed a new logo for Snes98. Its the same 3D letters with 'Snes98' but this one is rendered with 3DSV4. You will never guess what the old one was done with. It was made with the Windows 95 OpenGL ScreenSaver "3D Text" and a bit of touching up in Paint Shop Pro.11 June 1999 - Totally new Snes98 planned. Snes98 V3 After a lot of consideration and thinking, I am determined to start Snes98 from scratch again. The very first Snes98 (Win Delphi) was highly unoptimized and filled with loopholes and bad coding. I took all the shortcuts possible and I ended up with a very poor performing Snes Emulator which doesn't load much. The second Snes98 was the newer DOS version. This time I took more time to optimize some of the code. The core CPU emulation is quite fast but when the graphics went in it struggled on my P166. It performs pretty well but I forgot to incorporate a major part (Snes Ports Reading) in my code which made it impossible to turn back and code in!!!!!!!! I found that the loaded roms showed the graphics but never scrolled when they were suppose too was because that I didn't code in the VSync Port (forgot which one). The roms checks this port if the snes is in VBlank before it updates any graphics ie. scrolling. The NEXT Snes98 might have a name change. But this time I will plan everything before I start. I also found some important CPU docs which I left sitting on my harddrive. I might add 'V3' to the end of Snes98. Snes98 V3 sounds pretty good.7 April 1999 - Still working on Snes98 DOS, new line by line graphic engine Well still working on Snes98 DOS. I named the current version 0.1a. It has a new line by line graphic engine. But only supportting Mode 1 (8x8 TileSize and 32x32 Tiles). Line by line engine means HDMA is just a few lines of code away.28 March 1999 - Snes98 Win95 is dead. A new Snes98 DOS has taken over! Scaped Snes98 Win95 and started on a new DOS version. Well the new DOS version has crept past the Win95 one. It runs(loads the graphic) 4 demo roms sonic.smc, tweetie.smc, test.smc, qwertemu.smc. DOS version has raw speed compared to the Win95 version. 30000IPS (Instructions per second) for the Win95 version what a load of rubbish, with DOS I get 600000IPS with graphics on!!!!!!! I know you are not suppose to rate the performance using IPS but I did not incorporate clock tick timing in any of the opcodes. Let say on average the opcode clock ticks was about 5 clock ticks per second. Then times 600000 by 5 to get 3000000 which means my core CPU runs at about 3Mhz which is the full speed of the real Super Nintendo. But this is of course without alot of the graphical effects!17 July 1998 - Fixed palette and trying new graphical effects on Snes98 Win95 Palette is now fixed and emulation is getting faster. Starting fading operations. Also trying mosaic functions.16 July 1998 - Finally eliminated that graphic decoding bug! Finally fixed the graphics bug. The big bug was in the loading functions that I had made and forgot about. It was to do with rom header skipping. I had skipped an extra 512 bytes because I skipped the header twice. Oops.15 March 1998 - Damn! Damn, Damn, Damn I can't get the graphics to load properly!!!!!!!!!!Old News - Old news too old to be seen
|