Trying to update Picodrive DS

exavadeathwitch

Member
OP
Newcomer
Joined
May 31, 2019
Messages
18
Trophies
0
Age
22
XP
106
Country
United States
I'm trying to modify the source code for PicoDriveTWL from the github repository to try to replace the software-based renderer with a hardware-based one, and maybe add some sound support. How should I go about doing this in the sense of what should I research, how should I work up to this? When building the repo, it crashes on my ds flash cart because FAT could not be initialized. However, with twilight menu on the 3ds this runs perfectly. I do want to create a version with ds lite compatibility, not only DSI compatibility.
 
Last edited by exavadeathwitch,

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,648
Trophies
3
Age
24
XP
21,116
Country
United States
I don't see why it wouldn't work on your flashcard. Which flashcard are you trying this on, and which loader are you using?
 

exavadeathwitch

Member
OP
Newcomer
Joined
May 31, 2019
Messages
18
Trophies
0
Age
22
XP
106
Country
United States
I don't see why it wouldn't work on your flashcard. Which flashcard are you trying this on, and which loader are you using?
I'm using a cart by Finera, I think it's an ACE clone. I'm using the ace3ds+ firmware. The version of this emulator worked on before you forked it works perfectly on my device. This new emulator does not.
EDIT: Maybe it's something to do with running the game in dsi mode? I'm trying to run it in ds mode.
 
Last edited by exavadeathwitch,

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,648
Trophies
3
Age
24
XP
21,116
Country
United States
I'm using a cart by Finera, I think it's an ACE clone. I'm using the ace3ds+ firmware. The version of this emulator worked on before you forked it works perfectly on my device. This new emulator does not.
EDIT: Maybe it's something to do with running the game in dsi mode? I'm trying to run it in ds mode.
Your flashcard does not run in DSi mode.
Try installing either nds-hb-menu or TWiLight Menu++ on your flashcard, and using either one of those instead to start the emulator.
 
  • Like
Reactions: CrashMidnick

exavadeathwitch

Member
OP
Newcomer
Joined
May 31, 2019
Messages
18
Trophies
0
Age
22
XP
106
Country
United States
Your flashcard does not run in DSi mode.
Try installing either nds-hb-menu or TWiLight Menu++ on your flashcard, and using either one of those instead to start the emulator.
what advice to you have for me making the desired tweaks to the emulator?
I'd like full speed games with cropping like jenesisDS, I'm thinking maybe with hardware rendering. I'd also like to try sound emulation.
 

RocketRobz

Stylish TWiLight Hero
Developer
Joined
Oct 1, 2010
Messages
16,648
Trophies
3
Age
24
XP
21,116
Country
United States
what advice to you have for me making the desired tweaks to the emulator?
I'd like full speed games with cropping like jenesisDS, I'm thinking maybe with hardware rendering. I'd also like to try sound emulation.
Unfortunately, I have very little experience with emulators, so I can't help.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,453
Trophies
1
Age
34
Location
Georgia
XP
752
Country
United States
Oh wow, I haven't heard the name PicoDriveDS in a long time. Is PicoDriveTWL an updated version from the original?

It's not going to be easy to implement a hardware rendering engine, compared to the software rendering engine. HW emulation means that you're doing a more direct translation from the Genesis's dedicated 2D hardware to the DS's dedicated 2D hardware, and they don't always match when it comes to layers, sprite priorities, etc. Whereas SW emulation means that you're determining what the screen should look like every frame and manually painting it to the screen line-by-line, which the DS wasn't entirely designed to do, so it's a lot slower.

jEnesisDS was only able to handle audio because the HW emulation freed up enough CPU clock cycles to dedicate a signification portion of time to rendering audio. Lordus did release one version of jEnesisDS with a software renderer, just for the sake of showing how much worse it would be. It had no audio and required a frameskip setting of 3-4 to even be playable. I've still got those versions on my hard drive if you're interested; just the binaries, no source code.
 
  • Like
Reactions: RocketRobz

exavadeathwitch

Member
OP
Newcomer
Joined
May 31, 2019
Messages
18
Trophies
0
Age
22
XP
106
Country
United States
Oh wow, I haven't heard the name PicoDriveDS in a long time. Is PicoDriveTWL an updated version from the original?

It's not going to be easy to implement a hardware rendering engine, compared to the software rendering engine. HW emulation means that you're doing a more direct translation from the Genesis's dedicated 2D hardware to the DS's dedicated 2D hardware, and they don't always match when it comes to layers, sprite priorities, etc. Whereas SW emulation means that you're determining what the screen should look like every frame and manually painting it to the screen line-by-line, which the DS wasn't entirely designed to do, so it's a lot slower.

jEnesisDS was only able to handle audio because the HW emulation freed up enough CPU clock cycles to dedicate a signification portion of time to rendering audio. Lordus did release one version of jEnesisDS with a software renderer, just for the sake of showing how much worse it would be. It had no audio and required a frameskip setting of 3-4 to even be playable. I've still got those versions on my hard drive if you're interested; just the binaries, no source code.
What I was thinking of doing is getting all the sprite info every frame, and then after that sort each sprite by layer, and then render each sprite. Would that be hardware emulation? And please send me the binaries ty.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,453
Trophies
1
Age
34
Location
Georgia
XP
752
Country
United States
I believe that would be considered HW emulation, but I don't know quite enough about it to be sure.

Attached is the version that has separate HW and SW rendering binaries, v0.4a.

Looking at the ReadMe files for later versions though, perhaps he did keep the software renderer in there as well with the L+R+Start button combo. My memory is vague since this was so long ago and I don't have my DS handy to check right now. The last public release can be found at https://segaretro.org/JEnesisDS
 

Attachments

  • jEnesisDS0.4a.zip
    230.9 KB · Views: 54
  • Like
Reactions: CrashMidnick

exavadeathwitch

Member
OP
Newcomer
Joined
May 31, 2019
Messages
18
Trophies
0
Age
22
XP
106
Country
United States
Some updates, I've been looking into the source code of picodrive twl a lot as well as reading up on some info about how the genesis handles rendering. I have a few questions that might be able to help me, I'm assuming the task at hand is seeing how the emulator is getting sprite information, then taking that information, converting it to something that the nds render libraries could understand, and then displaying the sprite info? On the subject of libraries, could I use ndslib to render sprites/backgrounds? Or will I need to go lower level. If anyone's worked on an emulator before with hardware rendering, I'd appreciate some help for figuring out the development process.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    bassviolet @ bassviolet: uwu