Homebrew Commercial ROM and homebrew

crazyfffan

Member
Newcomer
Joined
Jan 17, 2010
Messages
21
Trophies
0
XP
173
Country
New Zealand
There's something I can't understand:
1. Moonshell and some homebrew like DSorganize can play another homebrews but can't load commercial ROM
2. Flashcard as R4 or Acekard, DSTT (perharps all of other flashcards) can soft-reset commercial ROM but can't do that with homebrews

So why? They are all application which end with ".nds", what's the difference???
 

CannonFoddr

Regular GBATemp Lurker
Member
Joined
Sep 23, 2006
Messages
4,134
Trophies
0
Age
53
Location
Sitting by computer
Website
www.youtube.com
XP
1,061
Country
One of the reason is that Homebrew programs have in the code somewhere a 'filetype' of '####' while Commercial ROMs have a code like 'ADME' or 'ADMP' (this is the code for Animal Crossing: Wild World (U) and (E))

I guess that when starting the game/program this code is checked & if it's '####' then it's classed as Homebrew, therefore Moonshell etc will run it but if it's NOT '####' then it won't run (I guess there's also other checks as well involved)

With the flashcards I guess it's the other way round:- IF the code is '####' then Soft-reset is not allowed, but if it's NOT then Soft-reset is allowed

EDIT: Made a mistake - it's not 'XXXX' but '####'. Checked up on it in a HEX editor
4416306717_63547bf137_o.jpg

Note the highlighted code(s) - AC3P for Sim City (on the left) & #### for jEnesisDS (on the right)
 

Rydian

Resident Furvert™
Member
Joined
Feb 4, 2010
Messages
27,880
Trophies
0
Age
34
Location
Cave Entrance, Watching Cyan Write Letters
Website
rydian.net
XP
8,898
Country
United States
Moonshell and such stop commercial rom loading on purpose because they don't want to encourage piracy.

In the computer world, file extension doesn't mean shit, it's just an easy way to tell different file types apart just by looking at the name. The actual format of the file has nothing to do with whatever extension it's assigned, in fact if you go on a linux machine, take a .jpg and remove the extension, you'll still be able to open it because linux will look into the file itself to determine it's type and open it with the correct application.
 

spinal_cord

Knows his stuff
Member
Joined
Jul 21, 2007
Messages
3,162
Trophies
0
Age
40
Location
somewhere
Website
spinalcode.co.uk
XP
2,313
Country
1. There is a lot more work needed to load commercial roms from a flash cart. Commercial games are not designed to be run from flash carts, as such, they need to be heavily patched (by the loader software) to run on that particular card.
Homebrew is designed to run specifically on flash carts, any data access etc. is done in a way that very little patching is required.
Those people who have created loader software for the DS, usually make sure their loaders can only be used for homebrew and not commercial roms for two reasons, one I have just mentioned, there is a lot more work involved and it is not just a one-off job. The loader would have to be updated regularly to counter the various anti-piracy techniques that companies come up with to make it even harder to load their games from flash carts. Two, probably the most important one, legality. In most countries it is illegal to have a 'backup' copy of a commercial game, not even for 24 hours. In some countries it is ok if you create the backup yourself, using your own game cart, but then again, in most countries this is illegal also.

2. Soft reset is a lot easier on commercial games than on homebrew. The Arm7 code from the game needs to be patched in order for the reset to work, on commercial games there are very few variations in the Arm7 code, I think there are maybe two or three version of the Arm7 binary, meaning that it is very likely that the relevant information can be found and patched. In homebrew, everyone is free to make their own Arm7 code, meaning that most homebrew will have a completely different arm7 binary file to try to patch. Making homebrew soft-reset an extremely difficult task.
 

CannonFoddr

Regular GBATemp Lurker
Member
Joined
Sep 23, 2006
Messages
4,134
Trophies
0
Age
53
Location
Sitting by computer
Website
www.youtube.com
XP
1,061
Country
AAcrazyman said:
Well moonshell doesnt want to get sued by opening comercial roms i guess... hey if you want to boot comercial roms in moonshell go to this link, http://gbatemp.net/index.php?showtopic=208136 it'll tell you how boot em up! hope this link helps!
That's one method - however if you're using a Acekard then it's best NOT to use YSMenu method as I've read/been told YSMenu could brick the acekard
There's another 'fix' for version 2.08 and v2.09 here

  • Download either the 2.08 or the 2.09 fix for the version of moonshell you want to run
  • Unzip the file & copy the 'overlay.dll' with the one found in the '/moonshl2/internal' folder
  • Download either the YSloader (you will need to install YSMenu to use this) or the AKAIO loader (Use AKAIO loader if you're using an Acekard)
  • Rename the loader (nds.?.nds) you downloaded to '_vh.VeryHugeNDSLoader.nds' and replace the one found in '/moonshl2/extlink/' folder
  • Rename the file AGAIN to '_hn.HugeNDSLoader.nds' and replace the one found in the '/moonshl2/extlink/' folder
You should no be able to run Commercial ROMs from within Moonshell v2.08 or v2.09 (Depending on which 'fix' you downloaded)
 

AAcrazyman

Well-Known Member
Member
Joined
Feb 28, 2010
Messages
119
Trophies
0
XP
91
Country
United States
CannonFoddr said:
AAcrazyman said:
Well moonshell doesnt want to get sued by opening comercial roms i guess... hey if you want to boot comercial roms in moonshell go to this link, http://gbatemp.net/index.php?showtopic=208136 it'll tell you how boot em up! hope this link helps!
That's one method - however if you're using a Acekard then it's best NOT to use YSMenu method as I've read/been told YSMenu could brick the acekard
There's another 'fix' for version 2.08 and v2.09 here

  • Download either the 2.08 or the 2.09 fix for the version of moonshell you want to run
  • Unzip the file & copy the 'overlay.dll' with the one found in the '/moonshl2/internal' folder
  • Download either the YSloader (you will need to install YSMenu to use this) or the AKAIO loader (Use AKAIO loader if you're using an Acekard)
  • Rename the loader (nds.?.nds) you downloaded to '_vh.VeryHugeNDSLoader.nds' and replace the one found in '/moonshl2/extlink/' folder
  • Rename the file AGAIN to '_hn.HugeNDSLoader.nds' and replace the one found in the '/moonshl2/extlink/' folder
You should no be able to run Commercial ROMs from within Moonshell v2.08 or v2.09 (Depending on which 'fix' you downloaded)

I seem to remember trying this fix back before i used the linker i mentioned in my earlier post.... i could never get it to work.
However my knowledge when i tried it was far inferior compared to my knowledge now! lol
I'll give it another go.
 

crazyfffan

Member
Newcomer
Joined
Jan 17, 2010
Messages
21
Trophies
0
XP
173
Country
New Zealand
Well, now Acekard 2 and 2i can soft-reset homebrew too. It's amazing
When i posted this site i had thought that softreset homebrew is impossible, now i understand that it's just a hard job
You guys did blow my mind,thanks
 

Site & Scene News

General chit-chat
Help Users
    Scott_pilgrim @ Scott_pilgrim: toast this ratio