Emuforums.com

Go Back   Emuforums.com > Forum & Emulation News Discussion > Emulation News Submissions
About Us Register FAQ Members List Calendar Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old December 24th, 2004   #1 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
DSemu (GBAemu) WIP thread!

Well things to be getting along well for the GBA part of the emu. Here's what the author had to say today:

Quote:
Thursday, 23rd December 2004
Once again, I've decided to resurrect the VBA-compare register dump, to try to highlight CPU bugs. And after running a few demos, the only "bugs" I can find are differences in timing. Dare I say that the CPU is fully working? I doubt it is, but the evidence leans in that general direction.

Of course, there must be a reason for these demos not to be working. And my nose tells me it's the graphics. (Being the only other major component of the system so far, it'd have to be really.) So, I'm going to have to set about rewriting the GPU. Yay fun!
EDIT: More news. Seems like coding part of the DS is gonna start soon

Quote:
Friday, 24th December 2004
As beginning preparations for DS code, I'm starting to work on the coprocessors for the ARM series. Today was disassembly day, and I've managed to hack in disasm support for CPD/MRC/MCR. oh frabjous day.
DSemu HomePage

Last edited by Chrono Archangel; December 29th, 2004 at 23:56.
Chrono Archangel is offline   Reply With Quote
Old December 26th, 2004   #2 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Since DSemu has so many updates i guess we can do the same thing as the ZSNES thread and keep all the WIP updates here. If an admin can change the title of this thread to "DSemu (GBAemu) WIP thread" id appreciate it

Here's the latest update:

Quote:
Sunday, 26th December 2004
People have said they don't like me putting all these tiny updates on the site. Well, I couldn't care less; you're getting 'em.

I've had a bug in the debugger (!) highlighted for me; when you scroll up and down the disassembly, the addresses for relative branches change. They were referred to the original value of r15, not the scrolled value. This should be all good now.
DSemu HomePage

Last edited by Chrono Archangel; December 29th, 2004 at 23:56.
Chrono Archangel is offline   Reply With Quote
Old December 29th, 2004   #3 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Two more update

Quote:
Tuesday, 28th December 2004
I've been getting silly numbers of complaints that the emu crashes when it's a certain number of levels down in the directory structure, or when the filename gets too large. It's actually the latter that's the real problem, since I have a pathname 64 characters long that's 9 levels deep.

But sixty-four?! I thought MAX_PATH was 260! I'm gonna try to track down where the crap this disctinction happens.

UPDATE. So, buffer overflows are the most common vulnerability in an application, right? What happens when you write a string bigger than 80 characters into an 80-char space on the stack? You guessed it; big-time breakage. All fixed now!
Quote:
Monday, 27th December 2004
I've just been looking through the HUGE opcode table, and I noticed some things. 256 SWIs all the same, 256 Bs all the same... there's a bit too much redundancy. I can just feel my Athlon's cache collapsing and gasping for breath every time this 1MB table wades in. So I'm gonna reorganise the tables.

In other news, LDRD/STRD are done! I really can't see code using the Enhanced DSP saturation functions, so that's the ARM9 essentially done. Just need to see if this new table layout speeds things up some.

8 hours later, I've just realised something. All this effort is for one time around the ARM code, since it all gets cached. AND, if I cache a decoder instead of an opcode, I'll actually be slowing the emu down. Reverting to original code!
DSemu HomePage

Last edited by Chrono Archangel; December 29th, 2004 at 23:57.
Chrono Archangel is offline   Reply With Quote
Old December 29th, 2004   #4 (permalink)
Emulation64's Animal >:D
 
Keith's Avatar
 
Join Date: Apr 2001
Location: United States
Posts: 1,215
and another

Quote:
Wednesday, 29th December 2004
So, yet more attempting to get some compatibility on the go. I tried to run Clouds, which ran fine before, and now crashes trying to read beyond the ROM in the 0800 range. Simple enough to fix that, I guess; just have the MMU return FFFF for out-of-range reads. And now Clouds runs again (and maybe some other things too).

Update: And as I suspected, a couple more demos do indeed run; peapah and Calc. Screenshots are up, if you require.
__________________




Emulation64.com | EFx2Blogs Forums | EFx2Blogs - Sign Up For Your Own Free EFx2Blog Today!

Last edited by NightWing; December 29th, 2004 at 21:15.
Keith is offline   Reply With Quote
Old December 30th, 2004   #5 (permalink)
Emulation64's Animal >:D
 
Keith's Avatar
 
Join Date: Apr 2001
Location: United States
Posts: 1,215
Quote:
Thursday, 30th December 2004
Thanks to exoticorn, I've had another bug highlighted for me. His mandelbrot renderer makes a lot of use of the long multiply functions, SMULL in particular. And it turns out that I couldn't draw the fractal, because I was retrieving the results from the long multiply in the wrong order. Yay. Swap them round, and you get the image in Screenshots.

Of course, that ROM is stripped and runs without interrupts. The full version crashes (in the dispatch function; weird). So I've yet to sort that out.
http://dsemu.oopsilon.com/
__________________




Emulation64.com | EFx2Blogs Forums | EFx2Blogs - Sign Up For Your Own Free EFx2Blog Today!
Keith is offline   Reply With Quote
Old January 1st, 2005   #6 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Saturday, 1st January 2005
Gregorian New Year rolls 'round again. After discussion with a certain someone, I've got a few ideas for optimisation and speedup. The first one to be implemented is instead of checking for the T bit in CPSR, making T another of the specialised flags (I'm supposed to have 8, after all); that way, I eliminate one AND from the dispatch. You'd be surprised what 1 AND means for speed.

Also, since it's optimisation time, it's probably high time that I moved to beta D. So, 0.0.1d is now available.
DSemu HomePage
Beta D (0.0.1d) Download Page
Chrono Archangel is offline   Reply With Quote
Old January 2nd, 2005   #7 (permalink)
Advanced Newbie
 
Shadow Lady's Avatar
 
Join Date: Jul 2001
Location: Bogotá... not that it matters...
Posts: 4,944
well, the thing with the ZSNES WIP thread, was that with every WIP there was a download (IIRC) this works too anyway
__________________
Main Rig: Pentium Dual-Core E2160 @ 2.5GHz -- 7600GT @ 650/800MHz -- 2GB DDR2-667 4-4-4-12 -- Windows XP Pro SP3

Collecting dust: AMD Athlon XP 2600+ -- ATI Radeon 9500 Pro -- SB Live 5.1 Digital -- 2.5GB DDR 2-2-2-5 Ram -- Windows 2003 server r2 SP1
Shadow Lady is online now   Reply With Quote
Old January 2nd, 2005   #8 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Originally Posted by * Lady
well, the thing with the ZSNES WIP thread, was that with every WIP there was a download (IIRC) this works too anyway
well... WIP doesnt necesarly mean a download. I just found it better if they were regrouped like this
Chrono Archangel is offline   Reply With Quote
Old January 10th, 2005   #9 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Monday, 10th January 2005
So er, I've been told that sprites are rather important things to have. And I tend to agree with that, so I'm gonna look into implementing them. Never having coded for a GBA doesn't help me in that regard, though; I could be a while here.
DSemu HomePage
Chrono Archangel is offline   Reply With Quote
Old January 10th, 2005   #10 (permalink)
KO'ed User
 
Norbi's Avatar
 
Join Date: May 2004
Location: TBA
Posts: 934
Sorry for slight offtopic, but the Admins should really consider allowing you to post news on the home page...
Norbi is offline   Reply With Quote
Old January 11th, 2005   #11 (permalink)
Experenced But New User
 
Viper_Viper's Avatar
 
Join Date: Apr 2003
Location: United States of America
Posts: 865
Quote:
Originally Posted by Norbi
Sorry for slight offtopic, but the Admins should really consider allowing you to post news on the home page...
I think the emulator accualy has to show some progress in being a NDS emulator before it hits the main page. Anyways, I hope for the best with NDS emulation!
__________________
MY PC!!!!
Intel 2.44 ghz // Intel Desktop Board D845PEBT2 (533MHz FSB) // 1GIG DDR PC2700 (NEW) // 120 gig Western Digital HD // 8x DVD+/-R 4x DVD+/-RW Burner (NEW) // 48x15x48 CD-RW // ATI Radeon 9800 Pro 128mb // USB 2.0 // Firewire (soon) // 6 Channel Digital Audio // Serial ATA //
3Dmark05 Demo - 2108

Viper_Viper is offline   Reply With Quote
Old January 11th, 2005   #12 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Originally Posted by Viper_Viper
I think the emulator accualy has to show some progress in being a NDS emulator before it hits the main page. Anyways, I hope for the best with NDS emulation!
indeed, this is why its only a WIP thread. Releases should be posted though
Chrono Archangel is offline   Reply With Quote
Old January 11th, 2005   #13 (permalink)
KO'ed User
 
Norbi's Avatar
 
Join Date: May 2004
Location: TBA
Posts: 934
Quote:
Originally Posted by Viper_Viper
I think the emulator accualy has to show some progress in being a NDS emulator before it hits the main page. Anyways, I hope for the best with NDS emulation!
I mean overall. Chrono out of all members is posting the most new on the forum.
Norbi is offline   Reply With Quote
Old January 16th, 2005   #14 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Sunday, 16th January 2005
I took some advice on the structure of the MMUrdS function; instead of a switch(), I now have a set of strategically placed bitmasks and if's. I got a few FPS out of that, always good.

Also been working on making the emulator easy to run from the command line. Now you can simply type "dsemu [myrom]" and it'll be fine. Just one problem at the moment; the File/Open menu keeps wanting to pop open; don't ask me why.
DSemu Homepage
Chrono Archangel is offline   Reply With Quote
Old January 22nd, 2005   #15 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Friday, 21st January 2005
Yeh, so I haven't updated in a little while. It's been a (relatively) busy week, I've had to go out of the house at least once. However, there has been work on the emu.

For one, I now have an OAM! 1k of memory mapped into 07xxxxxx, for the sprite renderer to work with. Second, I'm reading the x and y coords of sprites and drawing white blocks on the screen. It's not exactly perfect (it's nowhere near working), but it's there. So progress is being made, don't worry.
DSEmu Homepage
Chrono Archangel is offline   Reply With Quote
Old January 22nd, 2005   #16 (permalink)
Pcsx2 Betatester
 
Rudy_x's Avatar
 
Join Date: Feb 2003
Location: Netherlands
Posts: 349
Quote:
Saturday, 22nd January 2005
We're starting to get somewhere. At least one ROM displays output as it should. The guy doesn't move, but he's there; that's gotta be a good start. Check it out on the screenshots page.

Right now, sprite support is hecka rudimentary. Nothing else that I've tested runs, and there's no support for anything beyond 8x8 as far as I know.

Two hours later: Slight problem. I was reading from the background palette instead of object palette. Now we're starting to get somewhere; check the Screenshots for mic's OAM test.
A new update!
__________________
Betatester of: Pcsx2

Last edited by Rudy_x; January 22nd, 2005 at 21:52.
Rudy_x is offline   Reply With Quote
Old January 31st, 2005   #17 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Monday, 31st January 2005
Ok. I tried fixing the shifting issues, and no luck on getting the tester say "ok". I'm gonna single-step through the tester's code, but to do that I'm really gonna need breakpoints. So, you guessed it; the next few days will be concerned with getting my head around breakpoints.

In other news, I decided to fire up GBA Linux, since it seems just to run text mode and there won't be huge graphic issues. And sure enough, it runs. To a point. I'll have to work out why it gets stuck on the delay loop, but I'm guessing it's an interrupt or a timer thing.
Quote:
Saturday, 29th January 2005
Hm. Where'd Friday's entry go? Never mind; I had two hard drives fail yesterday, something has to go missing along the line somewhere. Anyway, I've been passed a demo written in DragonBASIC, and it runs just fine (check the Screenshots page for input-test). That's the first verified dBASIC test to work.

I've been informed that my data-processing shift handling is a touch broken. And the informant would be right about that; my code for eASR, eLSR and RRX is so badly divergent from the spec, I don't know how it even made it into the codebase. Looks like I'll have to get on with fixing that.
DSemu Homepage
Chrono Archangel is offline   Reply With Quote
Old February 4th, 2005   #18 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Friday, 4th February 2005
Ok, we're slowly starting to get somewhere. I've been hacking at the extended shift modes, and have managed to get the original error set down to something much smaller. Again, thanks to mic for this; it's helping me out immensely.
Quote:
Thursday, 3rd February 2005
Darned thing didn't update again. I'm starting to think my Samba install is having issues with passwords. Anyway, my last post was concerned about mic's new GBA-stress-test ROM, and how DSemu fails it on plenty of counts.

From what I can see, it's the extended shift modes of data-process addressing that falls over; I've decided that takes precedence over me trying to get my head around breakpoint implementation, so I'm gonna work on these (not exactly small) bugs before I go for breakpoints.
DSemu Homepage
Chrono Archangel is offline   Reply With Quote
Old February 10th, 2005   #19 (permalink)
Administrator
 
Chrono Archangel's Avatar
 
Join Date: Dec 2001
Location: Montreal, Canada
Posts: 7,227
Quote:
Thursday, 10th February 2005
Finally tracked down the rest of the bugs that cause GBAstress to give FAIL messages. Mostly little things like not setting carry before a carry-using subtract, but the MOV issue was fun. Turns out that ARM7TDMI actually defines an output for the Unpredictable scenario of r15 shifted by a register (TDMI adds 12). Check the Screenshots; I quite like all my green lights.

mic's in the process of producing a Thumb stress ROM, and that's a different story. FAILs across the board, even on things he doesn't test; I broke something somewhere.
Quote:
Wednesday, 9th February 2005
So, I took a quick look at what's been figured out about the DS memory map today. It doesn't look all that different to the GBAs, to be fair. I decided to try a Tetris ROM hacked together by DesktopMan, and sure enough it crashes within one scanline, jumping to empty RAM. Maybe it's a little more different than I first surmised.
DSemu Homepage
Chrono Archangel is offline   Reply With Quote
Old February 18th, 2005   #20 (permalink)
Administrator