From WikiTemp, the GBAtemp wiki
Line 14: Line 14:
  
 
Please remember that this wiki is updated and maintained by YOU - '''Please help out where you can!'''
 
Please remember that this wiki is updated and maintained by YOU - '''Please help out where you can!'''
 +
 +
<div><span style="color:#0000ff;">Donate your dead DS-X cartridges to this project PM reveng @gbatemp</span></div>
 
|}
 
|}
 
|-
 
|-
Line 25: Line 27:
 
|-
 
|-
 
|
 
|
<!-- [[Image:Icon_ds.gif]] '''[[:Category:Nintendo DS|Nintendo DS]]'''  -->
 
<!-- *[[:Category:NDS Slot-1 Carts|Slot-1 flash carts/adapters]]  -->
 
<!-- *[[NDS Compatibility List|Slot-1 ROM compatibility list]]  -->
 
<!-- *[[:Category:NDS Slot-2 Carts|Slot-2 flash carts/adapters]]  -->
 
<!-- *[[NDS Homebrew Compatibility List|Homebrew compatibility list]]  -->
 
<!-- *[[NDS Multiplayer Games|Multiplayer games list]]  -->
 
<!-- *[[NDS Rumble Pack Support List|Rumble Pack support list]]  -->
 
<!-- *[[Memory Speed Tests|Memory speed tests]]  -->
 
<!-- *[[SNEmulDS Compatibility List|SNEmulDS Compatibility List]]  -->
 
 
 
I propose the following tasks to achieve the "OpenSource" goal.
 
I propose the following tasks to achieve the "OpenSource" goal.
  
Line 55: Line 47:
  
 
This order was chosen because the firmware "'''update.bin'''" is one large zipped?, binary file. So first we have to decompile the updater application to understand how its zipped and what parts make up the USB, FPGA and NDS launcher....
 
This order was chosen because the firmware "'''update.bin'''" is one large zipped?, binary file. So first we have to decompile the updater application to understand how its zipped and what parts make up the USB, FPGA and NDS launcher....
 +
 +
|}
 +
|}
  
 
== '''Work In Progress Log''' ==
 
== '''Work In Progress Log''' ==
Line 70: Line 65:
  
 
On running the updater, it uses windows sockets api to download '''update.txt''' and '''update.bin''' from the DSX server. The mozilla api is probabily the wrapper to call the windows sockets api, for platform independancy. Delphi also has wrappers for the application windows. The applications resources can easily be pulled out with XN Resource editor. I've also noticed on some of the disassembly that the updater looks like it can take command line arguments?
 
On running the updater, it uses windows sockets api to download '''update.txt''' and '''update.bin''' from the DSX server. The mozilla api is probabily the wrapper to call the windows sockets api, for platform independancy. Delphi also has wrappers for the application windows. The applications resources can easily be pulled out with XN Resource editor. I've also noticed on some of the disassembly that the updater looks like it can take command line arguments?
 +
 +
'''7th January 2008:'''
 +
main page redesigned for clarity.
 +
Files moving to a seperate wiki page, and descriptions added for the files.
 +
Link to the initial hardware explorations added.
 +
Some terminology corrected
  
  
Line 75: Line 76:
 
  I'm currently trying out a few disassemblers on the .exe to see which gives me the best results.
 
  I'm currently trying out a few disassemblers on the .exe to see which gives me the best results.
 
  The hardware investigations need putting on the wiki on a seperate page.
 
  The hardware investigations need putting on the wiki on a seperate page.
  The files need moving to a seperate wiki page.
+
  Get hold of the NDS launcher that was aquired with NO$GB and the wifi. This could be usefull to find out where in-
 +
- the update.bin the NDS launcher resides.
 +
 
  
  

Revision as of 13:12, 7 January 2008


DS-Xtreme OpenSource Firmware Project
The scope of this project is to open up the DS-Xtreme flash cartridge hardware/firmware for homebrewers to modify. I have asked the DSX for the information prior on embarking on this project. No information was forthcomming.


Please remember that this wiki is updated and maintained by YOU - Please help out where you can!

Donate your dead DS-X cartridges to this project PM reveng @gbatemp
Project Plan

I propose the following tasks to achieve the "OpenSource" goal.

01) Do Under The Hood research on the DS-X hardware for an insight into what the firmware may be. --DONE--
02) Acquire all the files that make up the firmware. --DONE--
03) Disassemble the PC application that updates the firmware. --IN PROGRESS--
04) Create a new, "OpenSource" updater application based on the knowledge gained.
05) Disassemble the core8051 EZ-USB controller firmware.
06) Create a new, "OpenSource" firmware from the knowledge gained.
07) Disassemble the configuration for the FPGA.
08) Create a new, "OpenSource" project from the knowledge gained..
09) Disassemble the native NDS application (the launcher)
10) Create a new, "OpenSource" launcher from the knowledge gained..
11) Using the knowledge gained make some schematics of the DS-X cartridge.

This order was chosen because the firmware "update.bin" is one large zipped?, binary file. So first we have to decompile the updater application to understand how its zipped and what parts make up the USB, FPGA and NDS launcher....

Work In Progress Log

5th January 2008:

Initial viewing of the PC Updater tool yields the following information.

1) The updater was coded with Borland Delphi development enviroment in C/C++.
2) The updater contains ZLIB compression librarys (probabily for the firmware).
3) The updater contains Altera Jam FPGA communication librarys (maybe for the JTAG connector on the circuit board).
4) The updater contains Mozilla/3.0 (compatible; Indy Library).
5) The Updater contains Cypress USB communication librarys.

On running the updater, it uses windows sockets api to download update.txt and update.bin from the DSX server. The mozilla api is probabily the wrapper to call the windows sockets api, for platform independancy. Delphi also has wrappers for the application windows. The applications resources can easily be pulled out with XN Resource editor. I've also noticed on some of the disassembly that the updater looks like it can take command line arguments?

7th January 2008: main page redesigned for clarity. Files moving to a seperate wiki page, and descriptions added for the files. Link to the initial hardware explorations added. Some terminology corrected


ToDo:

I'm currently trying out a few disassemblers on the .exe to see which gives me the best results.
The hardware investigations need putting on the wiki on a seperate page.
Get hold of the NDS launcher that was aquired with NO$GB and the wifi. This could be usefull to find out where in-
- the update.bin the NDS launcher resides.


All in all not bad going for a weak lameass like me :)