Homebrew GBARunner2

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,359
Trophies
0
Age
23
XP
3,865
Country
Netherlands
Huh. That seems a bit arcane and maybe even flashcard-dependent.
Do you have any clues about what causes the flashcard to decide if a particular .nds is homebrew or retail? It doubt it's something as simple as the presence of a NitroFS.
Wood seems to look at the game id and the arm7 load address, I'm not sure about other loaders. And indeed, if those commands are supported at all is really flashcard dependent. A fact is though that accessing romfs the Nintendo way is often way faster than the libnitrofs way of doing it, especially with large nds files.
 

metroid maniac

An idiot with an opinion
Member
Joined
May 16, 2009
Messages
1,827
Trophies
0
XP
1,057
Country
Wood seems to look at the game id and the arm7 load address, I'm not sure about other loaders. And indeed, if those commands are supported at all is really flashcard dependent. A fact is though that accessing romfs the Nintendo way is often way faster than the libnitrofs way of doing it, especially with large nds files.

Makes sense, since homebrew prefers to use dldi instead.
How much is known about current compatibility issues? What are the major performance bottlenecks? What are the potential solutions?
Thanks for answering all my questions, by the way. I find the project very interesting.
 

migles

All my gbatemp friends are now mods, except for me
Member
Joined
Sep 19, 2013
Messages
8,034
Trophies
0
Location
Earth-chan
XP
5,181
Country
China
It's a complete hardware debugger. It connects to a pc over usb. You can then upload a rom straight from your pc and run and debug it (both arm9 and arm7). You can break it, set breakpoints, peek in and modify the memory and registers. It also supports up to 2 hardware breakpoints (read and/or write in address range) and you can print debug messages. With the communication library you can also communicate with the rom from a program running on your pc for quick testing.

If you like I could take some screenshots of the debugging software later this week.

This is-nitro has no video or wifi option. Instead of wifi it has an ethernet port with the word WIRELESS next to it xD. It seems to be non-standard ethernet as my pc acted as if no cable was inserted, so more research is needed into that. I am probably gonna have a look with a logic analyzer. I want to try to convert the signals back to wifi using a fpga and a raspberry pi.
It may happen that it only opens the interface when there is WiFi activity?
I remember reading that the console didn't even have the WiFi drivers.. They are located in the cartridges (that's why almost every single cart has the WiFi config thing) but then again the console has pico chat... But thats other protocol of communicating... (if I am right)

@Dodain47 may I suggest you to use pastebin.com? Create a single pastebin.com link and then edit with the new titles you test.. You created a mess in the thread..
OE maybe in github, or a Google docs Excell? that way you can even easily re use and edit when a new gba runner version comes out and there is more compatibility
 

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,359
Trophies
0
Age
23
XP
3,865
Country
Netherlands
Makes sense, since homebrew prefers to use dldi instead.
How much is known about current compatibility issues? What are the major performance bottlenecks? What are the potential solutions?
Thanks for answering all my questions, by the way. I find the project very interesting.
The major performance bottleneck is the fat chain. If the fat chain is not cached in some way (for direct lookup), you have to walk all the way along it for non-sequencial accesses.

It may happen that it only opens the interface when there is WiFi activity?
I remember reading that the console didn't even have the WiFi drivers.. They are located in the cartridges (that's why almost every single cart has the WiFi config thing) but then again the console has pico chat... But thats other protocol of communicating... (if I am right)

@Dodain47 may I suggest you to use pastebin.com? Create a single pastebin.com link and then edit with the new titles you test.. You created a mess in the thread..
OE maybe in github, or a Google docs Excell? that way you can even easily re use and edit when a new gba runner version comes out and there is more compatibility
Well, some kind of, but I have just done some tests with my logic analyzer, and it is outputting data when I run a multiboot parent. I'm not sure why my pc wouldn't even detect it, but I'm almost sure I must be able to decode this data using my fpga. The logic analyzer (which is actually the same fpga) has no differential settings, so the capture is not very good, but the fpga has differential input buffers, so I should be able to use that.
unknown.png


As for the compatibility list, we already have one on the gbatemp wiki. I agree it clutters the topic a little. @Dodain47 Maybe you should not post like everything in this topic, but only if you find special cases. I still really appreciate your testing though, don't get me wrong.
 
D

Deleted User

Guest
Ah, yes of course! Now I get it. I first thought @migles meant the compatibility wiki. Sorry about the mess. I will keep it in mind.:lol:
 

metroid maniac

An idiot with an opinion
Member
Joined
May 16, 2009
Messages
1,827
Trophies
0
XP
1,057
Country
The major performance bottleneck is the fat chain. If the fat chain is not cached in some way (for direct lookup), you have to walk all the way along it for non-sequencial accesses.

This is the physical DLDI FAT filesystem, not some sort of filesystem embedded in the GBA ROM? I'm guessing that GBARunner2 wouldn't need to be aware of such a thing.
I know that nds-bootstrap maintains a cache of some part of the FAT. Maybe the same problem was encountered and solved there.
 

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,359
Trophies
0
Age
23
XP
3,865
Country
Netherlands
This is the physical DLDI FAT filesystem, not some sort of filesystem embedded in the GBA ROM? I'm guessing that GBARunner2 wouldn't need to be aware of such a thing.
I know that nds-bootstrap maintains a cache of some part of the FAT. Maybe the same problem was encountered and solved there.
The nitrofs implementation of libnds simply opens the nds file on your sd card with libfat. I suggested indeed to preload the fat chain, which is what I do in gbarunner2 too. Still it could probably be faster the Nintendo way if flashcards would implement some kind of cache in hardware.
 

Mr Objection

Well-Known Member
Member
Joined
Jul 10, 2016
Messages
338
Trophies
0
Age
26
XP
338
Country
Argentina
Do you have any compiled version that I could test? With the last changes I mean. And I want to say that I love your work, you are incredible.
 
Last edited by Mr Objection,

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,359
Trophies
0
Age
23
XP
3,865
Country
Netherlands
Good news, I've made some improvements using the is-nitro-emulator.

Big mutha truckers and street racing syndicate boot now. They had code in vram appearently at some place I didn't handle correctly yet. This might fix some other games too.

The file explorer branch has been merged into master now too.

Cool, and wow I tried your YouTubeDS and "WholyLonelyPonyEatingMacorroni" it's impressive, do you know when it will get a GUI update (like seeing thumbnails)
Maybe when I have time to do that.
 
D

Deleted User

Guest
Thanks for the update @Gericom!

I have tested some Games with the updated Master and compared them with the prievious Version.

Banjo Kazooie has a bit more Slowdown. The Audio has a bit more Noise. Circle of the Moon has a little less Slowdown. DKC 1 has a little less Slowdown. I noticed more Noise during the Intro. DKC 2 has a little less Slowdown. Much more Gfx Glitches during the First Waterlevel. DKC 3 has more Slowdown and much more Gfx Glitches during the First Level. Mario and Luigi Superstar Saga has a bit more Slowdown. The Audio has a bit more Noise and stuttering. Wario Land 4 has some Slowdown now.

3D: V-Rally 3, Doom 2, Driver 2, Driver 3 are not working. Ford Racing 3 is almost Full Speed now and has less Gfx Glitches. Doom runs a bit faster. NFS Most Wanted is working again. The Buildings have no Textures.

You will find the latest Version of the master below.
 

Attachments

  • old GBARunner2-file_explorer.zip
    19 KB · Views: 189
  • GBARunner2.zip
    19 KB · Views: 297
Last edited by ,
  • Like
Reactions: zfreeman

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,359
Trophies
0
Age
23
XP
3,865
Country
Netherlands
I committed some bugfixes today.
Fixed some bugs, fixed is-nitro break(points)
- Disable FIQ in the abort handler
- Pass control to the debugger for is-nitro breakpoint opcodes
- Fixed the vcount comparison value in the displaystat register to match the values read from the vcount register
- Fixed dmaing from the edge of what was loaded in ram of the rom

Fixed games: F-Zero Maximum Velocity (fixes corrupted menu graphic and track invisible), Herbie Fully Loaded. Might impact other games too
Maybe more mode-7 games that were broken previously are fixed now. Maybe @Dodain47 wants to test a couple of them.

This is the latest commit ba222be:
 

Attachments

  • GBARunner2.zip
    18.7 KB · Views: 524
  • Like
Reactions: AtlasFontaine
D

Deleted User

Guest
I committed some bugfixes today.

Maybe more mode-7 games that were broken previously are fixed now. Maybe @Dodain47 wants to test a couple of them.


This is the latest commit ba222be:
Whoa. A major Improvement. :yaynds: All three F-Zero are working. Maximum Velocity is Full Speed now. Climax and GP Legend almost with many Gfx Glitches. I will test more Games and post the Results on the wiki.

Edit: Advance Guardian Heroes (E) and Astro Boy Omega Factor (E) are both having much Slowdown in this Version and are Unplayable.
 
Last edited by ,
  • Like
Reactions: ahezard
General chit-chat
Help Users
  • No one is chatting at the moment.
    kenenthk @ kenenthk: https://youtube.com/shorts/elsecgCv4cA?feature=share