AzizBgBoss/TerrariaDS
GitHub: AzizBgBoss/TerrariaDS
Stars: 33 | Forks: 1
### Disclaimer
This project is not affiliated with Re-Logic or Terraria in any way. It is a fan-made project and is not intended for commercial use. All assets used in this project are use for educational and entertainment purposes only. If you're a party of Re-Logic and owner of any assets used in this project and want them removed, please contact me.
### Notes:
## Installation:
You can either compile the game yourself (for nightly releases) or check for stable releases in the Releases page. Please check the Tested devices part before starting.
### Tested devices:
| System | Functionality | Cons | Notes |
|----------------------------------|---------------------------|-----------------------|-------------------------------------------------------------------------------------------------------------|
| Nintendo DSi (XL) (TM++) | Excellent | None | Make sure to set launcher as Default |
| Nintendo 3DS (New) (XL) (TM++) | Excellent | None | Should work fine as long as you're using TW++ since it basically becomes a DSi at that point. Also you can just play Terraria 3DS lol.|
| Flashcarts (DS/DS Lite/DSi) | Not tested yet | Not tested yet | You should probably patch the .nds rom with the proper DLDI patch depending on your flashcart type (e.g., R4) |
| NO$GBA (Windows Emulator) | Medium | No ability to save + Choppy sound | The emulator doesn't have DLDI support. |
| desMuMe (Windows Emulator) | Non-functional | Game doesn't even start | |
| melonDS (Windows Emulator) | Non-functional | No nitroFS | The emulator *has* DLDI support but it doesn't work with this game, maybe they'll fix it in a future update. But for some reason NitroFS won't work with melonDS. |
| melonDS (Special fork) | Excellent | None | This is a fork of the original melonDS with NitroFS and FAT support added. You can find it [here](https://github.com/AzizBgBoss/TerrariaDS/raw/refs/heads/main/extras/melonDS.exe). I got it somewhere from the DS(i) Mode Customization! Discord server. Don't worry, it shouldn't contain any malware. But as soon as I find the original link, I'll put it here. |
*More platforms will be tested soon.*
## Download the latest version (QR code scannable with DSi Downloader)

## Gameplay:
- A: Jump
- Left/Right: Move
- Up/Down: Zoom in/out
- X/Y: Switch items
- R: Open inventory
- Start: Pause menu
- A+B+Y+X: Debug menu
- Tap/Hold a block: Interact with/break the block (with the appropriate item of course)
## Changelog and Features
Don't get your hopes really up, but with time, I'm sure the game will feel much more like terraria.
### Version 0.2 (In progress, releasing soon):
- Ability to save character data and world data independently.
- Add swinging animation.
- Add particles (for example when breaking blocks).
- Show health as hearts.
- Add more music and intros.
- Add more sound effects. ***(done: I didn't really add that much)***
- Fix touch misalignment when close to world edges at 2x scale. ***(can't do it: I don't know why, prolly got something to do with bgSetCenter, if you're close to the edges just keep the scale 1x)***
- Add chests. ***(done: limited to 32 chests for now)***
- Add more tools. ***(done: Iron and Gold pickaxes, axes, hammers, and long swords, and a wooden hammer lol)***
- Implement dynamic crafting recipes (based on nearby stations). ***(done)***
- Add crafting stations. ***(done for now: Workbench, Furnace, Anvil)***
- Probably converting all tile handling data to a struct (even special tiles). ***(done: this is great news, now I can add a huge variety of special tiles with the same function easily)***
- Add more crafting recipes. ***(done: now implemented pages)***
- Add more biomes. ***(done: desert, snow)***
- Implement entity spawning based on biome and layer ***(done: it was a bit complicated, but now entities spawn based on time, biome, and layer (surface/underground))***
- Better and more efficient world generation. ***(done: it's a bit faster now)***
- Add currency. ***(done)***
- Add X axis velocity ***(done: this allowed to implement knockback and fix some collision bugs)***
- Probably add a bit more entities. ***(done for now: Eyes, Slimes, Bunny, Zombies)***
- Organize my messy code and split it to many files, won't change anything but will make it easier to add features. ***(done)***
- Support for maps with more height (limit is 64 for now, that means chunking should happen in both X and Y axes). ***(done, worlds come in 4 sizes, with backwards compatibility with v0.1 maps)***
- Move all assets back to ROM since my dumbass a year ago thought moving everything to NitroFS will free up RAM but it's already `const` so no need... ***(done: it's now even neater than before)***
- Fix misaligned sprites when zooming in/out ***(done: yeah I still don't understand why this happens, if you can please help me with it. But I just added more math to counter the offset)***
## Planned Features for the future:
- Use more pointers for cleaner code.
- Add ability to change button mappings (since many DS'es (including mine) have malfunctioning shoulder buttons because of dust accumulation under them over the years).
- Add crimson/corruption.
- Add improved lighting.
- Multiplayer support (based on my experience, this will be a fucking nightmare).
- Skins (or changeable player styles).
- Add mana and magic items.
- Add bosses.
- Unique content for the DS version to make it stand out a bit.
- Extra content and features for the DSi.
- Maybe migrate to BlocksDS for better performance and more features (it shouldn't be that hard I think).
Again, I'm open to suggestions and contributions, so if you have any ideas or want to help, feel free to open a pull request or an issue.
## Compile it yourself
To compile this project, you need to have devkitPro installed. You can find instructions on how to install it on the [devkitPro website](https://devkitpro.org/wiki/Getting_Started) (Note: devkitPro NDS compilation only works on Windows as far as I know, or x86_64 architectures in general).
Once you have devkitPro installed, you can clone this repository by running:
Then, navigate to the project directory:
For good measure, clean the place first:
make clean
Now, you can compile the project by running:
make
(Note: if you're not using the Msys2 shell, you may need to define the `DEVKITPRO` environment variable to point to your devkitPro installation directory, e.g. `export DEVKITPRO=/mnt/c/devkitPro` and `export DEVKITARM=/mnt/c/devkitPro/devkitARM`)
## Screenshots
.png)
.png)
.png)
.png)
.png)
.png)
标签:客户端加密