mirror of
https://github.com/DS-Homebrew/flashcard-archive.git
synced 2024-12-23 16:41:50 +01:00
99 lines
4.7 KiB
Plaintext
99 lines
4.7 KiB
Plaintext
|
MoonShell extend link application converted by Moonlight.
|
||
|
----------------------------------------------------------
|
||
|
|
||
|
Title: NesterDS
|
||
|
Version: 0.3
|
||
|
Author: Rich Whitehouse
|
||
|
Date: 2006-11-23
|
||
|
Homepage: http://www.telefragged.com/thefatal/
|
||
|
Additional thanks: Darren Ranalli (original author of Nester)
|
||
|
Author of NesterDC (in case I used anything from that, I see
|
||
|
it is in my old NesterGBA source folder)
|
||
|
Authors of NDSLib and DSEmu
|
||
|
Everyone else who has constributed to the wealth of knowledge
|
||
|
available for DS homebrewing
|
||
|
-------------------------------------------------------------------------------------
|
||
|
Version 0.3 notes:
|
||
|
------------------
|
||
|
New this version:
|
||
|
|
||
|
-Vastly improved compatibility by fixing several mapper problems.
|
||
|
-Got rid of alternate-line rendering.
|
||
|
-Lots of speed-ups (better DTCM management, changed screen writes to occur during
|
||
|
actual scanline routines, lots of other stuff).
|
||
|
-Converted code-base to pure C, moved to devkitARM r19b.
|
||
|
|
||
|
There were lots of changes that I've forgotten about in here, this was sitting
|
||
|
around on my hard drive half-finished for months. I was also working on converting
|
||
|
expensive PPU routines to ARM, but that was also unfinished. The included source has
|
||
|
some of the ARM routines that I did finish.
|
||
|
|
||
|
|
||
|
Version 0.2 notes:
|
||
|
------------------
|
||
|
New this version:
|
||
|
|
||
|
-Sound. Sound processing is done almost entirely on the arm7 and so comes with no
|
||
|
noticeable performance penalty, and the actual sound processing is still faithful
|
||
|
to the original nester core.
|
||
|
-General performance improvements, and decent code cleanup.
|
||
|
-Scanline speed hack disabled by default, makes lots of games work that were broken
|
||
|
before. Said hack is still available as a toggle option.
|
||
|
-Reset option (X+start).
|
||
|
-Hardware scaling to fit output to DS screen resolution.
|
||
|
-All options are now listed and updated when changed on the sub screen.
|
||
|
-Made auto-framerate option work better.
|
||
|
-Other things I was too lazy to make notes of.
|
||
|
-50% more ninjas.
|
||
|
|
||
|
Things I would like done but am currently too lazy to do:
|
||
|
|
||
|
-Sound output is poppy when not at 44100, but defaults to 22050 because the arm7
|
||
|
cannot handle the nester APU at 44100. Ideally, fix the poppiness.
|
||
|
-SRAM support (should be fairly trivial to implement in existing code).
|
||
|
-PPU has tons of code that could be hand-tweaked to provide massive speedups.
|
||
|
Might also be worthwhile to render each scanline to a smaller chunk of faster
|
||
|
memory and draw it to the screen buffer as the logic is performed, but this
|
||
|
could be tricky to get right with vsync.
|
||
|
-Support for extra mappers and sound processing.
|
||
|
-Binaries are bloated due to bad use of global arrays tossed about. Fix.
|
||
|
-Exponential increase in amount of ninjas.
|
||
|
|
||
|
That will be all.
|
||
|
|
||
|
|
||
|
Version 0.1 notes:
|
||
|
------------------
|
||
|
This is a DS port of Nester. As you might've guessed. There are a ton of issues, and
|
||
|
it still bothers me that I'm storing the NES ROM over in ewram. I need to look into
|
||
|
that gbfs stuff apparently. There is no sound (the APU stuff is hooked up and runs
|
||
|
fine on the DS, it just needs the DS to actually do something with the output), but
|
||
|
the games I've tried run ok speed-wise. There is some "scanline"-type rendering
|
||
|
optimizaton in place because that's all still very slow and I haven't taken
|
||
|
advantage of any DS-specific hardware features to speed it up.
|
||
|
|
||
|
For compiling the actual code, I'm using DevKitARM R13, and there are some issues with
|
||
|
the way the default ds_arm9 linker script shoves things into memory. For whatever
|
||
|
reason, the default handling of non-static global variables is pretty wacked, and
|
||
|
if you have more than 16k or so I've found that everything goes to hell (silent
|
||
|
data collision, I'm guessing) and stuff just stops working, and some of the standard
|
||
|
C runtime functions stop working. Just general bad things. So I had to manually change
|
||
|
the linker script to move my .data into ewram and that seemed to solve everything.
|
||
|
If you want to compile this yourself, be sure to change the batch files and makefile
|
||
|
to use your own paths. Mine are all hardcoded because I'm a terrible person. Also,
|
||
|
the code itself is all very messy, and torn apart. It's based on an old GBA port of
|
||
|
Nester I made, and I ported it to the DS over a single weekend (so it hasn't had the
|
||
|
tender loving care it deserves).
|
||
|
|
||
|
To use the thing, you can use the crappy primitive ROM insertion tool included in the
|
||
|
archive to put in the NES ROM of your choice. Currently only one ROM at a time is
|
||
|
supported. If I ever stop being lazy and load ROM files from image ROM like I should
|
||
|
be doing, that will be changing.
|
||
|
|
||
|
Currently there aren't any emulators that really do a good job of running this. Out
|
||
|
of them all IDeaS seems to do the best job. It probably goes without saying, but I
|
||
|
have tested everything on actual DS hardware (using the wifime method) and it all
|
||
|
works happily.
|
||
|
|
||
|
So that's that, enjoy.
|