• Hey, guest user. Hope you're enjoying GameParadise! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Hacking TempGBA: NDSGBA revival

 
 

admin

Chad
Staff member
85%
Joined
Jan 25, 2024
Messages
11,611
Points
38
Age
39
Location
USA
Website
gameparadise.org
Credits
192,446
Get the plugin: http://filetrip.net/nds-downloads/flashcart-files/latest-tempgba-f31839.html
as well as Aeter's merged v1.4 game_config.txt for more speed and compatibility in some European and Japanese games
and, if you like, download the Pokémon Platinum skin I made for April Fools as a standalone archive
or Aeter's LEDS2-Orange skin for TempGBA

View the source! http://github.com/Nebuleon/TempGBA
(with an issue tracker too)

Go to post #870 for the narrated history of TempGBA :D

Frequently asked questions
Q. Compatibility?
A. http://wiki.gbatemp.net/wiki/TempGBA_Compatibility - please edit this list as you test your games!

Q. Cheats?

A. Exactly as in NDSGBA 1.21: rather broken, and with a rather broken interface too, apparently. If cheats for your game crashed back then with no explanation, they will still crash now (but may crash with a Guru Meditation screen). Nebuleon has absolutely no interest in cheats for the GBA; if you do, and can help out, feel free to fork and edit the source, and perhaps submit a pull request to Nebuleon/TempGBA/master when you're done.

Q. Saved states?
A. Saved states from NDSGBA 1.21 and 1.30 are incompatible with TempGBA (for the technical details, please see post #218 and post #371), but saved states from TempGBA beta 5 are forwards-compatible until beta 12. To load a save you had made in NDSGBA 1.21 or 1.30, use a .sav as an intermediate file.
  1. Load up NDSGBA 1.xx, the exact version you used in the first place.
  2. Load the game, then the state, save in-game, and exit NDSGBA.
  3. Using your computer, copy the .sav file from your card's /NDSGBA/GAMERTS directory into /TEMPGBA/SAVES. (You can do this for multiple games at once if you repeat steps 1 and 2 for all of your games before 4 and 5.)
  4. Load up TempGBA.
  5. Load the game, which will load the .sav from [2], then create a TempGBA saved state.
Q. Pokémon?
A. Yes! Emerald's clock is supported, and saves are good. ROM hacks should be supported if they don't change the ROM title and game code. If in doubt, ask whoever created your favourite ROM hack.

Q. LINK CABLE?!
A. No. The DSTwo SDK has no support for sending WiFi or NiFi protocol packets. TempGBA runs on the DSTwo itself and relies on the cart-to-DS communication to do things; we have no access to all the DS can offer. If you want to add WiFi packet support to the SDK, be my guest. You will rip your hair out trying to debug hardware communication.

Q. Golden Sun? Golden Sun 2?!
A. The Golden Sun games have become much better, with Golden Sun and Golden Sun 2 being perfect at auto frameskip and slight crackling at lower manual frameskips. See post #450 and post #499 for audio comparison tests by Rydian in Golden Sun. #450 is in beta 9, #499 is in beta 11.

Q. Classic NES?
A. No. Play them on nesDS. More technically: The ARM prefetch queue doesn't interact well with a recompiler. The recompiler would need to flush its code 2 instructions after a write, and the code to detect these writes and apply the logic of the ARM prefetch queue 2 instructions later retroactively would lower performance of all games that rewrite their code in GBA RAM by 200% or more. That means supporting Classic NES games would slow down a couple dozen, up to a hundred, other games.

Q. Is this NDSGBA? Is this better than NDSGBA? Is this worse than NDSGBA?
A. Yes. Nebuleon got the source code for NDSGBA 1.21 after the community helped ask for it.
It may be better or worse, depending on the game. Its GUI is definitely better, though! It supports game_config.txt, like gpSP from which it is derived. It may lack some cheat support.

Q. Why do we need the GBA BIOS now?
A. You always needed it. It was distributed inside NDSGBA but Nebuleon removed it from the code because its distribution is probably not allowed.

Q. Where does the GBA BIOS go?
A. See installation.txt.

Q. gbaemu4ds?
A. This is not gbaemu4ds. See ichfly's gbaemu4ds thread.

* 1.43: File selector improvements. Notably, directories with more than 511 files or 63 subdirectories will not crash TempGBA upon being displayed. Going to the last page with the R button also won't lock you to that page until you press Down, Up, Up.
* 1.43: The Screenshot slideshow function doesn't freeze with an exception if you have no screenshots.

Changes from NDSGBA 1.30

Emulator
* ARG support for loading the emulator using a file browser's associations. Thanks, BassAceGold!
* 16 saved state slots are available, and you can overwrite any state. You can also see the screenshot of a state you're about to overwrite or delete!
* Writes a .sav file to storage 10 frames (1/6 of a second) after it's done being written to the emulated GBA's save area (since beta 8).
* Button remapping is available globally and per-game for GBA buttons Start, Select, L and R. NDSGBA 1.30 has remapping per-game for A, B, rapid A and rapid B.
* Hotkeys! A rewind hotkey, L+Y, is user-definable globally and per game; there are also hotkeys to go to the main menu (since beta 4), to fast-forward, to mute (since beta 7) and to quickly load and save state #1 (since beta 8).
* CPU speeds imported from CATSFC. 360 MHz is selected by default.
* FPS counter! Now you can see how many frames you get per second (since beta 8)! Yay!
* Lower screen gaming and booting from the GBA logo (since 1.41).
* Cheat support may have deteriorated (as of beta 1).
* Add Guru Meditation screens for MIPS (DSTwo-side) and ARM7 (GBA-side) crashes (since beta 9). You may now report crashes that display these screens by taking photos of them, or reporting the top 2 lines and the registers accessed by the instruction ($NUMBER). See an example of this in post #451.
* Incorporate a fix for filesystem corruption by BassAceGold. Handles Short File Names (SFN) and Long File Names (LFN) more correctly and prevents duplicate aliases (two files named MARIO~01.RTS, for example) (since beta 14).

Game compatibility
* Patched Classic NES/Famicom Mini games may work.
* Doom, Doom II, Duke Nukem Advance, Golden Sun, Golden Sun 2, Mario Golf: Advance Tour, Mario Tennis: Power Tour run with much more framerate (in beta 12, beta 14, and 1.41 memory-access-3).
* Golden Sun 2 and Tales of Phantasia don't return oddly to the EOS Menu anymore (as of beta 12).
* game_config.txt support has been restored! This improves game compatibility and is required by some 128 KiB-save games to correctly save.
* game_config.txt translation gate support has been dropped (as of 1.41 memory-access-3). However, improvements in the recompiler made them unnecessary.

Emulator menu
* The 8 languages of CATSFC are in TempGBA. Some messages are still in English.
* All interfaces have 8 rows instead of 6.
* The rewind option was "Rewind enable" and "Rewind period". It is now only one option.
* The frame skipping option was "Frame skip type" and "Frame skip value". It is now only one option.
* The menu recognises button presses and releases more consistently, including rapid presses of the same key (since beta 6). Auto-repeating is set to fire 20 times per second so you can browse long lists more easily.

DS functionality
* The menu has touch screen support. Thanks for the CATSFC improvement, ShadauxCat!
* Close the lid of your DS and it shall sleep if it's in the menu (as of alpha 2) or emulating (as of beta 8).

Audio
* A core issue with the GBA sound is fixed by issuing sound at 88200 Hz and resampling it to 44100 Hz (since alpha 7, changed in betas 3-5). This fixes the sound in some GBA Video cartridges and Golden Sun - The Lost Age.
* Sound crackles/bubbles less in slower games (improved variously in alphas 3-7).
* Fast-forwarding can have sound (since alpha 2), and it is dampened to prevent loud pops (since beta 11); in NDSGBA it could not. You can mute it.

Menu/Extras
* The default skin, icon set and font are that of CATSFC, with a prettier GBA icon for game files and a GBA controller loading screen.
* The text colors are now loaded in TEMPGBA/SYSTEM/GUI/uicolors.txt for theming (since 1.41).
* A useful, Engrish-free README file is included.
* Fewer writes to settings files. Settings files are rewritten only once you exit a submenu, and only if you've changed a setting in that submenu. If you don't change settings from their defaults for a game, the game can now have no settings file at all. This also uses up fewer erase cycles on storage cards
* It has become impossible to set certain gpSP options by hex-editing ndsgba.cfg (since alpha 3).

Technical:
* Use high-level emulation (HLE) for some more GBA BIOS calls. (Variously trashed and re-instated in betas 5-9)
* ARM-to-MIPS (GBA-to-DSTwo) recompiler improvements (since beta 10, more in betas 11, 12, 13 and 15).
--> Self-modifying code is now reused instead of being constantly wasted, in case the game rewrites the same code at the same place again. Even more detailed statistics are present about this in /Tools/Debugging (in English only) (as of 1.41 memory-access-3).

Suggestions made by Boriar in post #237:
* (UI) [Submenu name] instead of Submenu name... in a list of options containing a submenu.
* (UI) Using <None> in unassigned hotkeys and button mappings.
 
 

Recent Content

Newest Downloads

Tutorials

Back
Top