[Release] PicoDrive for 3DS

Discussion in '3DS - Homebrew Development and Emulators' started by bubble2k16, Jan 6, 2018.

  1. Dodain47

    Dodain47 GBAtemp Advanced Maniac

    Member
    11
    Jan 1, 2017
    Austria
    The O3DS has enough CPU Power to run the Sega CD games at an acceptable framerate.
    Sonic CD works fine on my 2DS running Picodrive 0.93. There is something wrong with your setting or iso file.
     
  2. able

    able Advanced Member

    Newcomer
    2
    Jun 22, 2018
    United States
    i was using a fork of picodrive, which had a bug in it. its up and running now, thanks though.
     
  3. seren3

    seren3 GBAtemp Regular

    Member
    3
    Jul 16, 2018
    United States
    In my mind, I refer to this emulator as "PickleDrive"
     
  4. TurdPooCharger

    TurdPooCharger Meh

    Member
    12
    Jan 1, 2018
    United States
    Boku no PicoDrive. :creep:

    ***

    Thanks again to @able for discovering the Sega CD bios bug in the alternative PicoDrive emulator! After testing by both @able and @Vulpes-Vulpeos, a fixed release has been posted. If you used a previous copy of this fork downloaded 10/3/2018 or before, please reinstall whichever you used. Both the previous *.3dsx and the *cia versions have this bug.

    It's Q&A time.

    What caused your PicoDrive fork to crash when trying to play Sega CD games?
    During the coloring process that created this fork, there was an edit mistake on a 3 byte value that was part of the Sega CD bios subroutine.

    Using the *.3dsx version of PicoDrive for example, I edited the A7 97 00 found at offset 0x892F8 as seen here.
    PicoDrive *.3dsx mis-edit bios

    The significance of this 3 byte value is that it's the endian of 0097A7, or the RGB value of this particular green.

    This is the same green in some of the panels in Bubble's emulators like this:

    [​IMG]

    When editing those green panels to purple or 5960FB (Endian: FB 60 59), I made the mistake of editing that subroutine which so happened to contain the same 3 byte hex values for that green.


    Why was this mistake made in the first place? Why didn't you know it wasn't a green panel?

    Because this specific green has values of A7 97 00, the program IDA Pro has a hard time distinguishing those 3 bytes as such. An ARM Little-endian scan did not determine that trailing 00 as part of the A7 97 and instead saw it as background 00 or null.

    I only later found out I missed 28 green panels for the controller options and emulator settings during the edits for the other non-green panels with a sweep check. Unlike the snes9x emulator where only 4 inputs control all the green panels, virtuanes/picodrive/temperpce emulators tailor almost each green panel with its own individual input. There was a bit of guesswork in what each was.

    Another quirk about PicoDrive was that there were 29 offsets that had the values of A7 97 00. During my pre-launch testing, I couldn't figure out what that 0x892F8 pointed to as there weren't any panels that had a corresponding purple color change.

    Because I wasn't familiar of Sega CD games at the time (the not growing up playing with SEGA stuff will do that), the only games I tested were standard Genesis/MegaDrive *.bin roms. Since the bug wasn't seen or caught, my [wrong] conclusion of what that offset was, was that it was a (maybe?) transitional buffer frame when opening and closing the green panel.


    What about the other three alternative emulators? Were they affected with a similar BIOS bug?
    - The snes9x_3ds doesn't use an external BIOS.

    - I can personally verify that the red edition virtuanes_3ds works with disksys.rom after playing the original Super Mario Bros 2 (Japan).fds or better known as Super Mario Bros - The Lost Level in the NES VC release.

    - After solving a naming scheme issue, the orange edition temperpce_3ds was found to work with Star Parodia using a specific Japanese syscard3.pce.
    Also, @able took the time to verify that the red virtuanes and orange temperpce bios work on his end.

    And?
    If you're a stickler when it comes to details, the forked *.3dsx builds internally retained their original Bubble *.smdh icons. Re-releases of all four emulators were posted with the correction.

    [​IMG] [​IMG]
     
    Last edited by TurdPooCharger, Oct 9, 2018
    ShadowOne333 and Vulpes-Vulpeos like this.
  5. able

    able Advanced Member

    Newcomer
    2
    Jun 22, 2018
    United States
    woo!, thanks for taking the time to fix these, they look great. also, ive became somewhat of a pro at using the bios on all of bubbles emus, and turdpoo's forks, so ill be popping in every now and again to see if anyone needs help getting these running. on an o2ds, i have full speed (60fps) running on:
    all virtuanes famicom disk system games
    all tg16 super cd and pc engine games, currently playing fx unit yuki and ys and they run great!
    all sega cd games, currently playing road rash, sonic cd, and nba jam. on all of these ive tested english/jap/pal bios (where applicable anyways).

    tl;dr: everything should be running 60fps, at least it does on my o2ds 11.9 etc. glad i could help!
     
    TurdPooCharger likes this.
  6. xy1154

    xy1154 Member

    Newcomer
    1
    Feb 4, 2015
    Switzerland
    Somewhere
    With this emulator I was able to experience such titles like Monster World 4, and Castlevania Bloodlines. Thank you for your hard work!
     
  7. luigismentor

    luigismentor Advanced Member

    Newcomer
    3
    Apr 26, 2016
    United States
    I'm having problems with the fan translation for Phantasy Star. Despite being a Japanese ROM, the music played is from the American version. The game plays decently enough, but the save menu is completely garbled (both in-game and in the title screen). And if I load an earlier save, all I get is a mess of random tiles, much like Glitch City from the Pokemon games. I'm using an O3DS, and I'm using v0.94 of the emulator. Does anyone know what I'm doing wrong?
     
    Last edited by luigismentor, Oct 25, 2018
  8. TurdPooCharger

    TurdPooCharger Meh

    Member
    12
    Jan 1, 2018
    United States
    Is this the game you're trying to play?
    Are you patching the correct rom?
    • Phantasy Star (J) [!].sms (512 KB - 6605D36A)
     
  9. FateForWindows

    FateForWindows GBAtemp Maniac

    Member
    6
    Feb 8, 2017
    United States
    Did you make sure the ROM was the Japanese one beforehand? Did you test it?
     
  10. able

    able Advanced Member

    Newcomer
    2
    Jun 22, 2018
    United States
    try to run it on your computer emulator first. then report back with results
     
  11. luigismentor

    luigismentor Advanced Member

    Newcomer
    3
    Apr 26, 2016
    United States
    Yes, that's the translation I'm using. And yes, I confirmed that I was using the correct ROM.

    Tested on the Fusion emulator. The problems I mentioned were not present.
     
  12. TurdPooCharger

    TurdPooCharger Meh

    Member
    12
    Jan 1, 2018
    United States
    Hey, was this the text garbling you saw trying to save the game with the (B) or (A) buttons? It's not just you. The other menu options appear fine (at the onset of the game).

    Edit 1 - The problem also happens on the Phantasy Star (UE) (V1.3) [!].sms (512 KB - 00BEF1D7) official English version.

    Edit 2 - I tried the English patched version on the ApprenticeMinusDS v0.4.0 emulator using a R4i Gold 3DS RTS flashcart. The menu appears fine and saves correctly. Graphics are a bit fuzzy.


    [​IMG] [​IMG]
     
    Last edited by TurdPooCharger, Oct 25, 2018
  13. luigismentor

    luigismentor Advanced Member

    Newcomer
    3
    Apr 26, 2016
    United States
    Yes! That's it! So, it's a problem with the emulator, then?
     
  14. TurdPooCharger

    TurdPooCharger Meh

    Member
    12
    Jan 1, 2018
    United States
    Yah, it's the PicoDrive emulator . I checked RetroArch v.1.7.5 using the PicoDrive core and the bug present there, too. Luckily for you, the Genesis Plus GX appears fine.

    Edit 1 - If you want pixel perfect resolution in RetroArch:
    • Aspect Ratio: Custom
    • Custom Aspect Ratio X: Pos72
    • Custom Aspect Ratio Y: Pos24
    • Custom Aspect Ratio Width: 256 (1x)
    • Custom Aspect Ratio Height: 192 (1x)
    Edit 2 - Erhm, nvm. There's a green bar on the left side in the Genesis Plus GX core. Yah, I think that fan translation patch used retains the official English soundtrack. I see what you mean as the JPN version sounds so much cooler.

    Edit 3 - There's a way to force the FM audio track in the English patched version.
    With Programmer's Notepad, open retroarch/retroarch-core-options.cfg and change this line:
    Code:
    genesis_plus_gx_ym2413 = "auto" 
    to
    Code:
    genesis_plus_gx_ym2413 = "enabled" 
    Edit 4 - Okay, so that left, green vertical bar is present in RetroArch (Windows and 3DS) for PicoDrive, Genesis Plus GX, and Gearsystem cores. I tried the Fusion v3.64 emulator, and it's also there.

    [​IMG]

    Edit 5 - If you want to use your Circle Pad as a d-pad. Play the game and click on the screen to access Quick Menu. Go to the clock icon and find the entry for your game. In the Controls setting:
    • User 1 Analog to Digital: Left Analog
    Edit 6: There's a way to hide the bottom screen that logs your frames and stuff by tapping it several times until it disappears.

    Edit 7: Dead center might actually be be X: 73 and Y: 25

    Edit 8: Nope, X: 72 and Y: 24 are dead center. I screenshot and checked in Photoshop. Just use your eyeball center if true center looks off.
     
    Last edited by TurdPooCharger, Oct 25, 2018
  15. FateForWindows

    FateForWindows GBAtemp Maniac

    Member
    6
    Feb 8, 2017
    United States
    Also don't forget to enable the "integer scale" option.
     
    TurdPooCharger likes this.
  16. TurdPooCharger

    TurdPooCharger Meh

    Member
    12
    Jan 1, 2018
    United States
    Dude! that's so much easier than scrolling left/right to get to 256x192! * Once Integer scale's set, custom aspect ratio choices will default to multipliers, and the top screen centers automatically.

    Found out that the bottom touch screen has area inputs. Top half will hide or show the FPS, etc and bottom half brings up RetroArch menu.
     
    Last edited by TurdPooCharger, Oct 25, 2018
  17. Raging-Lion

    Raging-Lion Member

    Newcomer
    1
    Jun 21, 2016
    United States
    I'm having one issue and not sure if its a bug in the emulator or I did some wrong?

    When you go to load games, it won't load them all, only a few...
    I have 1,436 games in there but it will only load from A to S (half way through the S'es)
    They not zipped or anything, the emulator just refuse to load them. I guess the emulator has a limit on how many games it can display?
     
  18. Shadow#1

    Shadow#1 Wii & 3DS Softmod Expert

    Member
    12
    Nov 21, 2005
    United States
    Split roms up by folders #-Z
     
    TurdPooCharger and Raging-Lion like this.
  19. Raging-Lion

    Raging-Lion Member

    Newcomer
    1
    Jun 21, 2016
    United States
    Thats what I thought of doing for the time being. Hopefully someone can fix that? T_T

    Thanks.
     
  20. Shadow#1

    Shadow#1 Wii & 3DS Softmod Expert

    Member
    12
    Nov 21, 2005
    United States
    What I said is the fix
     
Quick Reply
Draft saved Draft deleted
Loading...