Homebrew [Release] NitroHax3DS - usrcheat.dat fork

  • Thread starter Thread starter Pk11
  • Start date Start date
  • Views Views 16,282
  • Replies Replies 7
  • Likes Likes 10

Pk11

A catgirl with a DSi
Member
Joined
Jun 26, 2019
Messages
1,300
Solutions
1
Reaction score
2,280
Trophies
1
Age
24
Location
米国
Website
ピケ.コム
XP
4,218
Country
United States
Since the original's cheats.xml was always a bit annoying to use due to it's ~2MB size limit and the cheats.xml files being much bigger than usrcheat.dat files I decided to make a fork of NitroHax3DS that switches it to load cheats from a usrcheat.dat database.

For the most part this should work exactly the same as the normal NitroHax3DS, it just loads from a usrcheat.dat file with no size limit so you can use DeadSkullzJr's full database without problems and since it's the same format TWiLight Menu++ uses I added its path to the defaults so you can even share the same database between TWiLight and NitroHax.

Please let me know if anything related to the cheat loading is broken, however I have basically no idea what's going on in the actual cheat engine part so unless it's a regression from normal NitroHax3DS I likely can't fix it fyi.

:download: The download and source code are on GitHub
 
Thank your work, unfortunately i get "Can't read cheat list", I'm using DeadSkullzJr's full database, do you know what i could do for fixing this? Thanks.
 
Thank your work, unfortunately i get "Can't read cheat list", I'm using DeadSkullzJr's full database, do you know what i could do for fixing this? Thanks.
Hmm, I think that's the error it throws if it can't find the game in the cheat database (I should probably edit that message, in the original version it only errored if the database couldn't be read at all)

Make sure that the cartridge isn't too dirty to read correctly or so, maybe just check that it's showing up in the system menu or so first. If that's not it then I guess make sure that DSJ's database supports the game, which game is it? If I can I'll try see if it works for me
 
0.101
Version 0.101 - Improved boot splash

What's new?
  • The boot splash has been upgraded to use the GIF files and audio from TWiLight Menu++ allowing for 60 FPS, all 8 languages, and birthday sounds - all with a smaller file size!

:download: Download on GitHub or Universal-DB



The old splash always kinda bothered me with how choppy it was and how it didn't actually wait for you to touch the touch screen, so I decided to copy over TWiLight's much nicer looking splash :P

And due to the magic of GIF compression the file size even ended up being slightly smaller despite packing in far more images now lol.
 
Hi, i just stumbled to this thread by casualty and i want to say thank you! For some reason, the other versions (ahezard) won't work with some games (infinite loading screen), like Ni no Kuni cartridge, but with your version of Nitrohax, now i can play all my ds cartridges with cheats! (I love Ni no Kuni Shikoku no Madoushi, but god knows that after a few playthroughs, the speed x 2 cheat its a must). This new version of Nitrohax works like a charm!
 
  • Like
Reactions: Pk11
I'm trying to use the same cheat file I have for a game that I use in twilight menu on 3ds and it won't start the game even without a cheat selected. I used the qr code to download your nitro hax.

Edit: ok I pushed the physical start button instead of the one in nitrohax and it works perfectly. I don't know why the start button in nitrohax doesn't work but pressing physical start button works. Thank you for this!
 
Last edited by destany1989,
I'm trying to use the same cheat file I have for a game that I use in twilight menu on 3ds and it won't start the game even without a cheat selected. I used the qr code to download your nitro hax.

Edit: ok I pushed the physical start button instead of the one in nitrohax and it works perfectly. I don't know why the start button in nitrohax doesn't work but pressing physical start button works. Thank you for this!
yeah I dunno why that doesn't work either, it's the same in the original NitroHax3DS iirc, not 100% sure about the original NitroHax. I could fix it I suppose, just didn't think to.
 
Sorry to necro this thread but I just noticed why touch input isn't working in pretty much all forks of NitroHax. That's because newer versions of libnds now require touchInit() to be called in arm7 main function. Touch screen now works after I had added that to my fork.

https://github.com/ApacheThunder/nitrohaxTWL/commit/6281aee7cc3dd04a83e988c26a764288b698d157


I also got cheats working for DSI Enhanced games. Turns out I can just enable TWL ram and move the cheat engine there. Normally you can't do that without DS games breaking but that's because they expect header data and such to be at 0x027FFxxxx. This data is moved to 0x02FFxxxx if TWL ram is enabled. Also the reason cheats fail to work is because original cheat engine doesn't know how to hook the newer games + I recall the original memory location cheat engine is stored at probably gets overwritten by most DSi Enhanced games. I believe I got my updated cheat engine code from TWiLight Menu's nds-bootstrap which is how they apply their widescreen patches and what not.

Anyways moving cheat engine into TWL ram seems to get around ram issue with DSi Enhanced titles. As long as the games think they are in DS mode they won't try and overwrite any data in TWL ram...unless they are doing something non standard or something.

Further testing would be needed to find out but so far the one TWL game I do have (Sonic Classic Collection) now has working cheats in my fork. For now I only enable cheat engine in TWL ram for DSi Enhanced carts. DS only carts I still keep TWL ram disabled and have cheat engine in original location. Note you should keep SCFG locked for DSi Enhanced games when TWL ram is enabled too to prevent them thinking they were booted in DSi mode and try loading non existant DSi extended binaries as our cart loading code doesn't yet have modcrypt decryption and such needed to properly load those.

Note if we ever do get proper loading of DSi Extended Binaries working we'd have to move cheat engine even further up in ram into the area only dev consoles and 3DS have and it's unclear how many retail DSi games would attempt to use this extended memory location either.

As for using cheats for TWL carts on original DS/DS Lite, because I now use the updated usrcheat.dat file system my TWL version of NitroHax no longer is compatible since this cheat file has to be parsed after game cart is loaded/checked.

However there is some work arounds:

https://github.com/edo9300/nitrohax-usercheat-supercard

edo9300 made a version that moves cheat engine into SuperCard's ram on Slot2 which is how he got this working on original DS/DS Lite. Since it also boots off SC's storage/DLDI it can also use the usrcheat.dat file system too.
 
Last edited by Apache Thunder,
  • Like
Reactions: NanashiFinal13

Site & Scene News

Popular threads in this forum