Jump to content

The WIP Thread


Gryph

Recommended Posts

http://dsemu.oopsilon.com/

------------------

Sunday, 28th November 2004

 

After a quick step-through of dovoto's FightDemo, I've noticed something. The ARM7 allows memory reads that are not aligned to a word boundary. My core doesn't allow this. Could be an issue!

-------------------

 

Visit the homepage to read older entries. All new entries will be reproduced here.

Edited by GameCop
Link to comment
Share on other sites

Wednesday, 1st December 2004

 

    New month, and some more progress. Darkain has kindly agreed to host a US mirror of this site at his place; if the Oopsilon main mirror happens to be down, Darkain should be up. Also, mov is providing some space in Sweden, much thanks to him for that.

Link to comment
Share on other sites

Monday, 6th December 2004

 

    A few issues have been highlighted recently. First of all, the emu crashed a heck of a lot on customers' computers. I tracked the problem down to a stray line in the Pause menu option; all good now!

 

    Also. There've been quite a few files missing from the Zip archive which cause compilation to fail. I've managed to put those in, and I've tried to make the Makefile a touch more portable.

Link to comment
Share on other sites

Thursday, 9th December 2004

 

Ok, so maybe I haven't actually changed any code, but it was still high time I versioned up. So it's here, the All New And Shiny 0.0.1c! Have fun.

Heh. Some update that is, but oh well. :D

Link to comment
Share on other sites

  • 2 weeks later...

Friday, 17th December 2004

 

Yeh, I know I haven't added much recently. I'm burned out right now, taking a break.

 

Mind you, I've been assured by a knowledgeable friend that nearly all DS development won't bother using the advanced ARMv5 opcodes, hence all I've had to do is add CLZ and I'm ok (for now).

 

I'm considering changing the name of the emulator, since it's gonna be forever before I can begin emulating a DS. Someone suggested "GBAemu 0.00000000001b", doesn't sound so bad. Also been hearing criticism towards the fact that I'm working on GBA before moving on to DS. I'm not sure people realise the similarities; the DS has two of the GBAs GPU cores, and a near-identical CPU. It seems wise to start on a GBA base.

Link to comment
Share on other sites

  • 2 weeks later...
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.

 

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!

 

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!

 

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.

 

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.

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!

Edited by GryphonKlaw
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...