gbarunner3's Introduction
gbarunner3's People
Forkers
wzhy90 cjmiles304 tbc999 dartz150 edo9300 graceltelgt veanika r-yatian chrisis123 lifehackerhansol nagasekouichi hroderik wujekbogdan psi-hate beta215 w8a5n1g116 freddysauceda benangel65 syouyumochi0826 rocketrobz nikolaevous radicalten codanric higorhgoncalves weaponic cosmicdusttincangbarunner3's Issues
[Feature Request] Multi save slots support
Have the option to choose multiple save slots, i.e:
rom.gba
rom.sav
rom.sav1
rom.sav2
This can be done via a frontend (like twilightmenu++) but it would be nice to have it as an standalone feature.
Extend save swi patch system for general game patches
One of the use cases would be patching unaligned ldrh instructions
Use null logger when not on is-nitro-emulator
The is-nitro-emulator logger hangs on retail hw. Make sure to use the null logger on retail hw instead
Return correct values on bios read
Currently a fixed value is returned, but this should be depended on the last fetched bios opcode. Some games reading from 0 might crash if they don't get the correct value.
[Enhancement] Add sun level emulation options for Boktai titles
Botkai titles have an UV sensor for gameplay purposes as mentioned here
Related titles:
Boktai: The Sun Is in Your Hand.
Boktai 2: Solar Boy Django.
Boktai 3: Sabata's Counterattack.
Improve direct sound sample fetching performance and timing
[Game] Mario & Luigi - Superstar Saga hangs when entering a battle
[Console tested]
DS Lite/Nintendo DSi
[Device used]
Ace3DS+ early clone with the 2014 label/SD Card 32GB
[Game Info]
Mario & Luigi - Superstar Saga - TID: A88E
[Issue Description]
The game hangs on the "3D Star" transition effect when a battle is about to begin, the game can be still soft-reseted using the key-combo.
This issue could be related to the exact same issue happening in some emulators such as gpSP, which was fixed in this commit: libretro/gpsp@2bbd770
Iridion II crashes on undefined Opcode
The game crashes on various points in-game. Getting to these points in no$gba shows warning about undefined opcode:
Attached savestate from no$gba debug version. Get to the boss and watch the warning kick in after a few seconds. Same place triggers it in GBARunner3.
In GBARunner3 you can use the password 4RC8! and enter challenge mode to test this.
Super Mario Advance 4 Parabeetle Challenge has incorrect scrolling
Save file: SMA4.zip
Video: https://cdn.discordapp.com/attachments/620310871800807466/1153986477915643925/20230920_032925.mp4
It is caused by an unaligned 16 bit memory read. The instruction is at address 0x08048E46 in the US rom.
This will require a patch.
Some games freeze when a soft reset is triggered
The game gets stuck into a white screen, either when finishing it or pressing a key combination such as SEL+START+A+B
Games tested that had this issue so far:
Legend of Zelda: The Minish Cap
Legend of Zelda: A Link to the Past + Four Swords
Castlevania: Aria of Sorrow
Castlevania: Harmony of Dissonance
[Idea] Replacing game irq handler by kernel mode code
For games that suffer a lot from irq latency, mainly hblank and vcount irqs, it might help to replace the games irq handler completely by kernel mode code to prevent having to handle aborts. This should reduce the irq latency. Almost every game has a slightly different irq handler, and game specific implementations might be needed. For dispatching clz can probably be used.
[Enhancement] Sleep mode support
Basically, put games in sleep mode upon closing the DS console.
EEPROM Save file compatibility with open_agb_firm
With this version are you planning on changing the EEPROM save format? More info:
Fortress runs too fast
The game runs at 2+x speeds, video for reference:
https://discord.com/channels/283769550611152897/620310871800807466/1155236721055760575
Tested with:
Fortress (U)
[Game] Mega Man Zero 4 slow downs during "Mission Start" logo and underground vehicle animation in DS mode
Video on the Discord Server GBARunner3 channel:
https://discord.com/channels/283769550611152897/620310871800807466/1156985213767921764
Top Gun Combat Zones doesn't get past Main Menu due to checking savetypes when not using saves
The game does not react to A-button inputs on main menu prohibiting you from getting past the main menu.
The game actually uses password saves.
Check comment from here: https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1903
"Top Gun - Combat Zones" is listed as having save-type "Flash512_v131" but this is not the case.
In fact, the game follows the heuristics for *every* save-type as an anti-piracy measure.
If it finds any non-volatile storage, it disables all the main-menu options.
According to datomatic it uses Flash512_v131
[Feature Wishlist] Disable/Turn Off Backlight of Unused Display
Title. the benefit of this feature should be rather straight forward:
It should help out by giving a slightly higher battery lifetime, as only one screen will be powered on, being the one that is being used by GBARunner3.
Implement detaching the JIT
In many games this probably works fine once the game has ran for a few frames and some irqs have been handled.
Detaching the jit means that all jitted instructions, except for mrs/msr and movs/subs pc, will be restored to the original instruction.
Final Fantasy V when monk uses the kick command it takes a very long time to finish
Use the kick command with a monk and the animation will just keep going what seems infinitely but letting it continue for a minute made it finish. The monk character keeps sliding horizontally back and forth. It's possible to hold L + R to make the characters prepare to run, but they only walk in place.
no$gba save state, version 3.0.5:
FFVkickCommandUSA.zip
Save file for use with GBARunner3
Final_Fantasy_V_Advance_Europe_EnFrDeEsIt.zip
Known issue in GBARunner2 too.
no$gba battery save file for US version. Just walk around and trigger a battle and make the monk character use the kick command:
Final Fantasy V Advance USA no$gba Kick command.zip
[Game] DragonBall Z: Taiketsu and Legacy of Goku error screen
[Game]
Dragon Ball Z - Taiketsu | BDBE | USA
Dragon Ball Z - The Legacy of Goku | ALGE | USA
[Device Info]
Commit tested: 280b011
Build date: 14 Oct 2023
Branch: develop
Console: DSi
Device: SD Card
[Issue]
Pressing START on title screen in both games shows "This game will not run on this hardware"
Final Fantasy VI Advance - Prologue cutscene runs slightly faster
The intro cutscene that happens after the first conversation between characters.
Expected result is shown in this video (3:14)
https://youtu.be/mB2HKj3gDlM?si=rv7wxHo33n7l39Vc&t=194
I'll post a video with GBARunner3 result in a few minutes.
Implement flushing save to the sd card
We don't want to flush on every save write and some (sram) games save very frequently.
[Game] FRAM savetype games (i.e. Castlevania triolgy) can't load save files
Both games are affected by the same bug as both use FRAM save type, other games with this save type may be affected too.
Tested with:
Castlevania: Aria of Sorrow (U)
Castlevania: Harmony of Dissonance (U)
Mario & Luigi Superstar Saga crashes with the jit when starting a new game
Verified to not crash without jit.
Seems like it could be related to the iwram code that is copied just before starting the new game. Around address 0x030068AC.
Patches for running without jit:
*(vu32*)0x022000C4 = 0xE1890090; // msr cpsr_cf, r0
*(vu32*)0x022000D0 = 0xE1890090; // msr cpsr_cf, r0
*(vu32*)0x022001F8 = 0xE1A00093; // mrs r3, cpsr
*(vu32*)0x02200204 = 0xE1890093; // msr cpsr_cf, r3
*(vu32*)0x02200218 = 0xE1A00093; // mrs r3, cpsr
*(vu32*)0x02200224 = 0xE1890093; // msr cpsr_cf, r3
*(vu32*)0x0220026C = 0xE1E00090; // mrs r0, spsr
*(vu32*)0x0220031C = 0xE1A00093; // mrs r3, cpsr
*(vu32*)0x02200328 = 0xE1890093; // msr cpsr_cf, r3
*(vu32*)0x02200348 = 0xE1A00093; // mrs r3, cpsr
*(vu32*)0x02200354 = 0xE1890093; // msr cpsr_cf, r3
*(vu32*)0x02200364 = 0xE1C90090; // msr spsr_cf, r0
Golden Sun 2: The Lost Age has random audio crackling
This happens either when save data is being loaded or in-game. The crackling has a weird echo, compared to other games that have crackling.
Apparently disabling cache makes this less frequent, but still sometimes audible, specially on the opening cutscene.
[Feature Request] Get GBA screen position from the firmware settings on regular DS models
This could be made as a fallback or default in regular DS models where you can set in which screen GBA games are displayed.
Implement settings
-
Accuracy/performance
- Whether the jit will be detached as soon as enough code has been patched -> also means hicode won't work
- Accuracy level of the jit -> Not all possible fixes are applied at lower levels to prevent overhead. This works fine for most games
- Whether bg vram will be aborted or not -> when not aborted byte writes are ignored instead of being duplicated, but performance for games that frequently do cpu writes to vram (e.g. software rendered 3d and video playback) would be better
- Write buffer enable for vram -> can delay writes slightly, but can improve performance, together with disabling the abort
Wram icache- Wram dcache (not sure if this will work well), maybe a separate setting for wram write buffer as well?
- Main memory cache
- Whether dma0 hdma may use a hardware dma channel if possible
-
Display settingsCenter/maskDisplay on top/bottomScreen darkeningBorder settings
-
Input settings (key mapping, both for gba buttons and emulator actions)
[Feature Request] SD/Flashcart removal detection
Currently this is not detected and games will just gradually stop working in weird ways, until they completely freeze.
It would be better to properly detect this and throw some sort of screen error/warning.
Implement proper handling of DSi mcu irqs
Currently when pressing the power buttons they cause the same irq as the power button, causing DSi consoles to reboot.
Improve handling of thumb instructions in the jit
- Less memory usage (support retail regular ds devices)
- Faster emulation of instructions (with assembly code and table dispatch)
The idea is to encode most bits in the undefined instruction space and have two external satellite bits.
Support for games with RTC
The Sims 2 - Pets and regular Sims 2 corrupted graphics possibly due to fragmented sd card
Having the filename longer than abcdefgh.gba
triggered it with GBARunner3.nds
in folder \nds\
ran via hbmenu. It also happened when GBARunner3 was run via twlmenu++.
The problem, especially the BIOS issue, did not occur with other games that had different save types than the one these two use, FLASH512_V131
Reformatting the SD card fixed this issue.
Implement support for bitmap modes
An extra vram block will be used where the bitmap data will be stored with the correct stride and alpha bit set (in 15bpp mode).
3DS: Render GBA screen resolution via RTCom
This would allow the screen to be rendered like in AGB_FIRM (1.5x scaling), which would eliminate unused screen areas from DS(i) mode.
Error Compiling
this is what happens when I try to compile. I'm using ubuntu 20.04 btw.
linking test.elf
ArmDtcm.o: in function memu_armDispatchTable': (.dtcm+0x8): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o
(.dtcm+0xa): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o (.dtcm+0x10): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o
(.dtcm+0x12): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmRdTable' defined in .dtcm section in ArmLdmStmRd.o (.dtcm+0x18): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmStmRnTable_1' defined in .dtcm section in ArmLdmStmRn.o
(.dtcm+0x1a): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o (.dtcm+0x20): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmStmRnTable_1' defined in .dtcm section in ArmLdmStmRn.o
(.dtcm+0x22): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmRdTable' defined in .dtcm section in ArmLdmStmRd.o (.dtcm+0x28): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o
(.dtcm+0x2a): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o (.dtcm+0x30): additional relocation overflows omitted from the output collect2: error: ld returned 1 exit status make[3]: *** [/home/godreborn/GBARunner3/code/test/arm9/Makefile:146: /home/godreborn/GBARunner3/code/test/arm9/test.elf] Error 1 make[2]: *** [Makefile:130: build] Error 2 make[2]: Leaving directory '/home/godreborn/GBARunner3/code/test/arm9' make[1]: *** [Makefile:49: arm9/test.elf] Error 2 make[1]: *** Waiting for unfinished jobs.... linking test.elf ArmDtcm.o: in function
memu_armDispatchTable':
(.dtcm+0x8): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o (.dtcm+0xa): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o
(.dtcm+0x10): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o (.dtcm+0x12): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmRdTable' defined in .dtcm section in ArmLdmStmRd.o
(.dtcm+0x18): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmStmRnTable_1' defined in .dtcm section in ArmLdmStmRn.o (.dtcm+0x1a): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o
(.dtcm+0x20): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmStmRnTable_1' defined in .dtcm section in ArmLdmStmRn.o (.dtcm+0x22): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armLdmRdTable' defined in .dtcm section in ArmLdmStmRd.o
(.dtcm+0x28): relocation truncated to fit: R_ARM_ABS16 against symbol memu_armLdmStmRnTable_0' defined in .dtcm section in ArmLdmStmRn.o (.dtcm+0x2a): relocation truncated to fit: R_ARM_ABS16 against symbol
memu_armStmRdTable' defined in .dtcm section in ArmLdmStmRd.o
(.dtcm+0x30): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make[3]: *** [/home/godreborn/GBARunner3/code/test/arm9/Makefile:146: /home/godreborn/GBARunner3/code/test/arm9/test.elf] Error 1
make[2]: *** [Makefile:130: build] Error 2
make[2]: Leaving directory '/home/godreborn/GBARunner3/code/test/arm9'
make[1]: *** [Makefile:35: checkarm9] Error 2
make[1]: Leaving directory '/home/godreborn/GBARunner3/code/test'
make: *** [Makefile:30: checktest] Error 2
Fix save patch swi issues
- Ldr(b)t and str(b)t don't work as intended when aborted because the arm/thumb dispatch assumes user mode while the patch code runs in system mode
- If an irq occurs while in system mode, things go wrong as it seems
An example of a game crashing because of an irq while saving is the sims the urbz.
Color correction
Color correction, for example by mapping palette colors through a LUT.
Implement save states
Load GBA game inserted into Slot-2
This would allow physical GBA carts to be booted, while using the features of GBARunner3 (such as DS sound mixer).
Could be booted using an argument such as slot2
instead of a .gba
ROM path, as well as a fallback method for if rom.gba
doesn't exist on the SD root.
Magical Vacation crashes in cave
The game hangs at seemingly varying points inside the cave straight to the right in the below save. It seems to be easier to trigger if pressing the pause button at any point in the cave before or after fighting the monster in the closed chest further inside. Sometimes crashes when entering the monster batlle.
Save from right before cave for GBARunner3:
Magical Vacation (Japan).zip
no$gba savestate:
magicalVacationBeforeCaveOfCrash.zip
Original opening post about now fixed issue about note hanging in pause menu:
When pausing the game a single note will keep playing while the rest of the music plays normally. Stops playing when you leave the pause menu. What note keeps playing depends on what is currently playing in the game music.
See comment further below about crashing.
Save state from ingame in no$gba. Press start to enter pause menu.
magicalVacationRetainedNote.zip
Savegame from GBARunner3
Magical Vacation (Japan).zip
[Feature Request] IPS patching
IPS patching support by adding the .ips patches in the same path as the rom, i.e.
rom.gba
rom.ips
Fix arm JIT ldr pc with pc relative rom source
Return to loader option
[Enhancement] Take screenshots
This was implemented in GBARunner2 by: Gericom/GBARunner2#230
Support for emulating SWP{B} instructions
Rarely used. For example by this tech demo in the irq handler https://www.pouet.net/prod.php?which=86884
Final Fantasy VI Advance - Missing "Healt & Safety" screen when the game boots.
This also happened in GBArunner2, there's only a warning yellow sign showing up at the right corner and the rest of the screen is white, when characters should appears instead.
Some games have sprite priority issues due to a GBA OAM HW bug
Cheat support
For example Gameshark/Action Replay as described here: http://problemkaputt.de/gbatek-gba-cheat-codes-gameshark-action-replay-v1-v2.htm
where to download GBARUNNER3(bootstrap.nds)!thanks!
I want to play GBARUNNER3 on twilghtmenu(NDSI),but I donot find GBARUNNER3 download link!
please tell me !THANKS!
[Flashcard] Megaman & Bass freezes on a black screen after the BIOS logo
[Console tested]
DS Lite
[Device used]
Ace3DS+ early clone with the 2014 label
[Game Info]
Megaman & Bass USA - TID: A6ME
[Issue Description]
On DSi mode this game works fine using the same flashcard, tested with the latest feature/sound branch commit.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.