Archive September 2019

SEGA Mega Drive / Genesis (Project Lunar) Hack Update 2

Back due to popular demand, this is project update part 2 on our initial findings on the SEGA Mega Drive/Genesis mini. We are going to share any information and show a couple of bits that have taken place since the last update. Before we start, I assume you noticed our new kick ass project logo above. We love it and hope you do too.

Underclocked SoC, what the hell?

This has been talked about online a lot since we posted about it, so just some clarifications and facts. The SoC is either a rebranded/clone Allwinner A33. The A33 is the same SoC as the Allwinner R16/A23, the same SoC used in the NESC/SNESC.

The max rating for the Allwinner A33/A23/R16 is 1.5ghz quad core with a maximum of voltage of 1.5v. As shown here (direct from the R16 Datasheet):

The current clock scaling governor is set to ‘performance’ but is clocked at 1008000khz (1ghz). The config actually states for the SoC scaling max to be 1344000khz (1.3ghz) (the same as the SNESC/NESC) however it doesn’t reach that limit. The boot clock is set to 1008000khz and it doesn’t reach the 1.3ghz limit. This is shown here with us running the internal stress testhttps://i.imgur.com/9wiabAo.jpg

The bottom line is that we don’t know exactly why they did this as 1.3ghz is well within the theoretical (safe zone) of the chip and the power draw on the SoC should be well within safe limits too. The config also states the max freq clock should be 1.3ghz but it never clocks up to that. We hope to fix this as best we can in the hack so it at least mimics the same performance as the (S)NESC.

There are a number of performance tweaks that we will make when the hack is made available (Will be made optional!), this should help with the current emulation issues due to performance bottle necking. However, we also intend to make it so you can launch a different SEGA Genesis emulator from the stock UI, which we know should perform a lot better then it does currently.

There is only 256mb of RAM is that a problem?

Yeah kind of. The way the emulator/ui works right now is that it effectively decrypts and decompresses the assets directly into volatile memory, this is also a potential bottle neck. However, there are some things we are working on to overcome this and tweak the RAM configuration. Also toying with the idea of dumping the assets to tmpfs on the NAND but that will reduce NAND life so we are still looking into the best plan of attack on this.

Will the hack run 32x and Mega CD games?

Yes. As stated before we will look in to the launching of a different SEGA emulator from the stock UI which will allow the running of 32x and Mega CD games. This will be powered by picodrive likely.

Can you run your own apps/RetroArch/other emulators on it?

Yes. We did this a couple days after release, testing our boot programs and other arbitrary apps. RetroArch easily runs on the console, as it can effectively use the same build as the (S)NESC and cores. However, we set up a specific SEGA MD mini build target which builds the cores and RA against the SEGA MD libraries which are pulled directly from the console for good measure. This brings us nicely to the next topic…

The SEGA Mega Drive mini appears to be capable of 1080p

Don’t get too excited though! It appears there is a downscaling service on the console that is responsible for downscaling down from 1080p to 720p. This is different from what we have seen before from other classics where they natively run at 720p out the box. Technically the SoC is capable of 1080p but we have NO idea how well emulation would run at 1080p instead of 720p. (The assumption is not very well!)

This was a bit of a surprise when we was loading our test SDL2 app on the console using a 720p image and SDL2 FULLSCREEN settings below:
https://cdn.discordapp.com/attachments/499532327869743125/626350319260925963/HpBHMJch.png

(Excuse the old logo! This is when we was running our own programs on the console only a couple days into dev)

Right now, it’s unknown at this time how well the system would perform running at such a high resolution or if it’s even something that is feasible but an interesting find nevertheless

Potential Cut Mega Drive Music player + Intended ROMS discovered

Cyanic was digging through and found what seems to be the index array for what seems to be a cut music player intended for the SEGA Mega Drive mini. It looks like it would take tracks from particular secton of the ROMS on the console and play them back. On this file it also lists a number of ROMS that didn’t end on the console. Maybe these are ROMS they intended for the console but couldn’t get licenses for it?

You can check it out for yourself here

Where are you with the hack? Whats the ETA?

SPOILER: There is no ETA. Progress has been slow as we still don’t all have a test unit to physically work on however due to a select few very generous people (you know who you are!) we were able to order a JPN MD Mini on express delivery that should be here in a few days so this should help development a lot. (Plus we can dump and analyse the JPN rootfs)

We now have all the components we require for the hack and have set up all our remote build environments and automated dev ops for the project. Meaning that we are now in the process of testing and putting together the injector and payload.

The OSS provided by SEGA wasn’t 100% complete or capable of compiling OOTB, so we have had to make some educated guesses/reverse engineering in some places to make it work. However we have now successfully reproduced the Kernel and U-Boot and are putting together a custom flash image and testing it.

What can you expect?

We are still posting stuff on the developments channels so make sure to jump on the discord to make sure you are kept up to date with stuff, you can also ask us any questions about development there.  (https://discord.me/modmyclassic)

p.s. Please don’t ask us for dumps of the console or ROM dumps as these are copyrighted materials and it’s against the law for us to distribute them. We only provide free to to use software and don’t distribute copyrighted content!

Lastly, we do not intend to rush this project and it will be made publicly available when it’s ready. This might mean that constant updates might become fewer but development on this as well as our other projects is 100% in motion.

Lastly we want to thank you all for your patience and continued support.

ModMyClassic.

Oh we are setting up an internal group youtube here: https://www.youtube.com/channel/UC5lypn3oCL1LxBNBfo5OLMA

Please give it a follow as we will post videos of stuff on here moving forward and it helps us out.

OpenLara PSC Port (Standalone Classic Tomb Raider engine)

OpenLara by XProger, Port by ModMyClassic

OpenLara Website

This is a port of OpenLara for the PlayStation Classic. Currently it’s only designed to work with the new launching system with BleemSync 1.1 and up.

OpenLara is a High Definition classic Tomb Raider engine which also supports a bunch of new cool features like VR, 1st person and splitscreen co-op gameplay.

OpenLara is still in active development and currently only fully supports Tomb Raider 1 with more game support on it’s way.

How to use

  1. Install entire psc_openlara folder to /media/bleemsync/etc/bleemsync/SUP/launchers
  2. You need to copy your Tomb Raider 1 Game Data and Audio data to the root of the port directory. (for example the PSX version:)

DELDATA/

FMV/

PSXDATA/

Screenshot

  1. (optional) Copy the High res ogg Audio files to the root of the port directory.

(USB:/bleemsync/etc/bleemsync/SUP/launchers/OpenLara/audio/)

audio/

Screenshot

  1. Once you have extracted your game data to the port you should end up with something like:

USB:/bleemsync/etc/bleemsync/SUP/launchers/OpenLara/DELDATA/*.RAW

USB:/bleemsync/etc/bleemsync/SUP/launchers/OpenLara/PSXDATA/*.PSX

USB:/bleemsync/etc/bleemsync/SUP/launchers/OpenLara/FMV/*.FMV

(optional) USB:/bleemsync/etc/bleemsync/SUP/launchers/OpenLara/audio/*.ogg

  1. Launch the game from your PSC carousel menu and have fun!

Download the Playstation Classic port of OpenLara here.

How to use Tutorial

Playstation Classic Port by:
XProger
swingflip

SEGA Mega Drive / Genesis (Project Lunar) Hack Update

https://pbs.twimg.com/media/Dd8IZ5eVwAAvRC9.jpg

A lot of people are coming in to chat and asking about the progress of the SEGA Mega Drive / Genesis Mini hacking. We thought it would be helpful to list out the progress, the facts and any information that we currently know and what our intentions are.

Before we begin… Can it be hacked? Yes (In theory). Just give us some time to create something that is end user friendly and doesn’t require soldering wires to the board like Frankenstein.

What’s happening right now?

Development on the hack is difficult due to the European shipping delay so not all of the devs have their hands on the device yet. We have effectively been working remotely on the hack with only 2-4 of the devs physically having the device. However we are approximately 48 hours in and we have full access to the console, decrypted the internal data packages and learnt a lot already.

A user friendly hack is possible in theory and work has started on it as we speak. We are currently codenaming the hack project within MMC “Project Lunar” named after SEGA M2 codename for the mini “Project Moon”

When is the hack going to be available?

How long is a piece of string? There are currently two key components missing which we are currently working on obtaining. Once we have those then we will be able to build a custom kernel and u-boot based off SEGA’s OSS. Once we’ve done that we’ll need to actually write up the hack so you can easily add stuff into the interface itself and not just gain access to the device.

We won’t be applying any deadlines to ourselves but we are going full speed on the hack and will be posting updates on progress as and when they arrive.

Who is responsible for hacking it/timeline?

  • HoneyLabs and NV on the first day managed to locate the UART lines and gain root access to the device and dump the kernel
  • Cyanic dumped the RootFS and decrypted the alldata package
  • MMC devs are currently working on build tools, customising the kernel and u-boot and writing up some hack scripts for the console

How powerful is it, what is it capable of?

The SEGA Mega Drive mini is a near identical copy of the (S)NESC in terms of specs and SoC. Meaning anything the (S)NESC is capable of running. The SEGA Mega Drive mini will run it at similar performance.

Can I put it in FEL and run Hakchi on it?

Yes and no. However Don’t try it. It’s true that the SoC used on the SEGA Mega Drive mini (A33 Allwinner) is the of the same spec of the (S)NESC’s R16 Allwinner. However the U-boot and kernel used on the SEGA Mega Drive uses a different config and different build. Therefore the flashing tools WILL work but you run the risk of flashing kernels/u-boots to the console that will NOT WORK. We have had a couple people try this to no avail already in the discord.

There is a strong possibility you will screw your system. Especially if you don’t know what you are fully doing.

Lastly even if you get it in to recovery, the way the UI/Emulator/Roms work on the Mega Drive is completely different than the (S)NESC so you wouldn’t be able to do anything with it.

Please just wait and be patience.

Where can I get involved/watch/chat about the developments?

We have set up a dedicated section in the discord for all chat regarding the Mega Drive. We also made our Development Chat publicly visible so you are able to watch developments as and when they happen. You can find the discord link here: (fixed link) https://discord.gg/8gygsrw

Wheres the code?

SEGA Mega Drive public Repo: https://gitlab.com/modmyclassic/sega-mega-drive-mini

TL;DR, what do we know?

  • The SoC is a cheap clone of a Allwinner A33. https://linux-sunxi.org/A33
  • The USB cable supplied is POWER ONLY. You will need your own USB with data to connect it to PC
  • The Front USB ports are locked down to only a few speicifc gamepads and usb hubs. USB memory sticks will not work. (We will change this when we build the new kernel/u-boot)
  • It is the same specs as the (S)NESC
  • To boot the console in FEL and connect it to the PC you need to hold the reset button and plug it in to the PC
  • There are two secret test modes that can be enabled using an official 3 button and 6 button gamepad. (PM one of us if you have this combo so we can get some notes)
    .rodata:00017280	00000047	C	1P: A+B+C+START = Stress Test\n1P: START + 2P: X+Y+Z = USER Mode change
  • A full list of roms available (on the us release at least) is here: https://pastebin.com/8dkqF3Um
  • We have a full dump of the rootfs
  • The emulator used on the Mega Drive is m2engage. It’s closed source and also supports emulation of other consoles. It’s the same emulator used on the Wii U Virtual Console
  • All the data for roms and scripts for the UI are encrypted and compressed on the NAND. We have decrypted it
  • There are scripts available which directly interact with the UI meaning that customising the UI should be easy
  • To put custom content on the console using the stock UI will require decrypting, decompressing the payload, modifying, recompressing, encrypting and uploading. A new hack tool is being developed to handle this.
  • DMESG Log – https://pastebin.com/brXcJwXv
  • UART Pads – https://cdn.discordapp.com/attachments/561896394697211924/624109168273522718/unknown.png

Images and stuff

UART locations

BOXART files

If you have any questions, please just ask in the discord and we will try and answer any questions you might have

 

BleemSync 1.2 released!

Thank you, everyone, for your continued support of this project.

BleemSync 1.2 only provides a couple of new features however they are two of the most requested features so we hope you enjoy them. The two new features in BleemSync are network and folder support. In addition to these features we have also added an on-console Game Manager app to allow for easy editing of game information as well as updated RetroArch to the latest 1.7.8.

 

BleemSync v1.2 Release Notes:

  • Added Network support
  • Added Folder support with on-console Folder app
  • Added on-console Game Manager app
  • Fixed issues with transfer tool and pbp files
  • Improved transfer tool serial identification
  • Fixed issue with RetroArch playlist generator
  • Fixed stock emulator multi-disc launching issue
  • Added new settings variables to web UI

RetroArch

  • Updated to 1.7.8
  • Updated bundled pcsx core to latest version

BootMenu

  • Added new settings variables
  • Modified settings menu to dynamically load modifiable variables from file

 

Update Overview

Folder Support

The long awaited Folder Support has finally been implemented. Folders can be created and managed solely using an app on the console. The app is used both as a folder launcher as well as a manager and has the ability to add both stock and external games to a folder. Future updates will include the ability to generate launchers for each folder as well as add launchers to folders.

Network Support

This update also brings networking support for a limited number of ethernet and Wi-Fi adapters. With networking you will be able to update RetroArch cores/assets. You will also be able to play certain Multiplayer Games with friends via the internet. Networking is disabled by default and must be enabled via the Settings Menu or Config. More information for setting up networking can be found here.

On-Console Game Manager

An on-console Game Manager app has also been included in this update. This Game Manager gives you the ability to edit Game Information and even remove games from the console itself without connecting to a PC.

Misc. Fixes

The reported issues with the transfer tool and playlist generator have been fixed. The transfer tool’s accuracy has also been improved and should now correctly identify more than 90% of PSX games. The game database used by the transfer tool has had some duplicate entries removed and some incorrect entries fixed as well. The stock emulator bug with launching multi-disc games has also been fixed.

RetroArch Updates

RetroArch has been updated to the latest version 1.7.8. For more information on the changes that this release brings please see the release posts on the libretro website.

 

A big thanks goes out to all the BleemSync developers for their hard work getting this release out.

You can read up on the full notes, see the latest tutorials and videos here.

Bonus sneak peek of upcoming BleemSync release:

ModMyClassic