Home
Deunan
Recent Entries 

Advertisement

Customize
4th-Jul-2009 06:09 pm - Drafty
Deunan, Ex Machina, Knute
Roberto Malone strikes again! More goodies have arrived and I dare say I've made a good use of them :)

2MB worth of decrypted data and I got to see this:

NAOMI 2009-07-04 Dead or Alive 2 #1NAOMI 2009-07-04 Dead or Alive 2 #2
NAOMI 2009-07-04 Dead or Alive 2 #3NAOMI 2009-07-04 Dead or Alive 2 #4

But since I wasn't satisfied I've swapped the EPROM for Millenium version. This is still WIP so there are slowdowns all over the place but thanks to that I've made an interesting discovery. The boobs...? They actually do bounce :)

NAOMI 2009-07-04 Dead or Alive 2 Millenium #1NAOMI 2009-07-04 Dead or Alive 2 Millenium #2
NAOMI 2009-07-04 Dead or Alive 2 Millenium #3NAOMI 2009-07-04 Dead or Alive 2 Millenium #4
19th-Jun-2009 08:50 pm - Protection violation
Deunan, Ex Machina, Knute
This is how Oh! My Goddess Quiz looks like when dumped and run in Makaron:

NAOMI 2009-06-19 Oh! My Goddess #1NAOMI 2009-06-19 Oh! My Goddess #2

Obviously it's broken. The textures on Bellandy are wrong and the texts are unreadable.
Yesterday I figured out how the ROM banking protection works on this cart. Turns out OMG doesn't use it... but it gave me an idea I've tried just now. Bingo, another form of protection was present - and after dumping the necessary data and patching the cart image I got this:

NAOMI 2009-06-19 Oh! My Goddess #2NAOMI 2009-06-19 Oh! My Goddess #3

Much better, wouldn't you say? :)
It still won't work reliably in Makaron due to a bug in the game code but I will work that around soon. Protection on this particular cart is rather easy to defeat, others might be more challenging...
15th-Jun-2009 12:23 pm - Peek & Poke
Deunan, Ex Machina, Knute
I was waiting with blog update for some good news - but those will be delayed so I guess I will do another boring status update.

New Makaron version not ready yet. I know, I promised a release some time ago but there is little point in fixing bugs in what is essentially a broken design.
The test versions released so far were only supposed to tell me what works and what does not. Now that I know more about what I really want and how, I will need to re-write some parts of the emulator. This takes time and is often boring since I have to break things first and make them work again...

In the meantime I've run some tests on my new NAOMI2 box. Suffice to say I can dump cart games now without having to desolder anything, and that also includes the secure FLASH which stores the serial number. This method has not yet been extensively tested (only one game dumped) so hold the champagne :)
23rd-May-2009 10:32 pm - Fully operational
Deunan, Ex Machina, Knute
Behold, my own JVS I/O interface. Being a cheapskate I decided that 150$ is not a good price for an MCU with a serial link and some inputs.



Even if just a prototype it's already good enough to fool games. Oh! My Goddess happily boots now.




None of this would be possible without Roberto Malone. This guy found me a NAOMI2, bought it, shipped it to me, and covered all the expenses himself. Now that is dedication people, an example to follow (hint, hint) :)
18th-May-2009 10:41 pm - Random pictures
Deunan, Ex Machina, Knute
A few new toys arrived - the biggest one today :)
I still need ear plugs. That or new fans for the system.




This box might very well be cursed you know. Let's just say it took the scenic route on it's way here :)
1st-May-2009 08:36 pm - It beeps!
Deunan, Ex Machina, Knute
Visual Memory Simulator BETA is out for testing. You can download it here.

There is a ReadMe.txt provided, should cover the basics. If you got Makaron working you should have no trouble running VMS :)

Now I can switch my focus back to Makaron.
25th-Apr-2009 01:40 am - Improving the hardware
Deunan, Ex Machina, Knute
Serial link: poor man's answer to broadband adapter shortage (and pricing). It's a cheap way to transfer data between PC and Dreamcast (including dumping your own BIOS and FLASH) and pretty much the only option if you're considering homebrew software. Sure, demos and emulators can be burned onto CDs but for testing your own code you'll need a more robust delivery method :)

Some time ago I mentioned that most serial link projects out there are overly complicated. Perhaps it's because many were conceived years ago when every PC had at least one RS232 port and USB chips were expensive. I'm about to show you it can be made really simple.

I'm going to skip all the technical details and going to assume you already know:
- what is RS232 and it's limitations
- why we should stick to low-voltage signaling
- what is USB and why use it

First you'll need FT232 chip from FTDI. It's exactly what we want, a simple yet fast USB to serial converter with low-voltate I/O. And by "chip" I actually mean a ready-made interface like this one:



It can be powered from USB line and has internal 3.3V low drop regulator - so all it takes to make it work is two short wires: one to route power supply, one to connect LDO output with voltage reference pin for I/O.

Now for the Dreamcast part. I found it impossible to purchase a connector that would fit the serial port so it had to go. You won't miss it, trust me.
First cut the connector assembly in two, with a small saw blade or a file. Take your time, you don't want to damage anything on the board (hence the black tape by the way). Pay attention to where exactly are you placing the cutting point, you will want both sides of the video connector intact so that the screws will hold it well in place.



Cut the connector legs with precise cutters. And I do mean precise, too big will rip them off the board, possibly damaging the traces as well. The alternative is to insert a small, flat head screwdriver (or something like that) under the pin and pry it up as you heat the soldering point with iron tip. Again, do not apply any force before melting the solder. The pins on right were cut, ones on the left were lifted.



Now desolder the shield and remove unwanted connector part completly. Don't throw it away yet, you'll need to cut off the other side mounting wing too, to provide a proper spacing for metal heat exchanger. Well you can always use a couple of small washers for that if need be.



And here's a picture of the pads cleaned, with any leftover pin remains removed.



Now you just need to solder 5 wires (RxD, TxD, RTS, CTS and ground) to the pads. I used one of the shield pads for ground, that makes it easier to fit the other four. That can be somewhat challenging with thicker wire but it pays off to have it durable and safe to twist around. Glue gun does the rest, just don't overdo it or you'll have problems fitting the covering plate/heat exchanger.



Ready to rock :) You can even see the wire I used to route USB power and I/O reference. All you need to do now is put it all back together and get friendly with dcload-serial tool.



So, does it work? Hell yes, on 3 Dreamcasts already. Same technique in every case. Works like a charm up to 1.5Mbps too. Just keep the wires to FT chip as short as possible (already long board traces and protective RC elements not helping any). If you have problems with higher speeds you can try using 5V instead of 3.3V for I/O. I belive this to be pretty safe (run it for hours on my Dreamcasts) but make no guarantees.
Some people say even 3Mbps can be achieved when protection RCs are removed but that will open a direct line to SH4 pins and you risk permanent damage to it. Obviously, no 5V in that case.

There's no galvanic separation here, wouldn't make much sense with common ground, so even if DC power supply is floating (I think) make sure you connect everything to the same AC phase. Or suffer the consequences.

Oh, and yes, the wires just stick out of the back of Dreamcast. Hey, it's cheap and works :)



UPDATE: Few more details, should be more useful now :)

First, here's a simplified pinout (only the required signals shown):



And just in case someone needs this extra bit of info, the whole serial port carries these signals on B10 down to B1 (looking at the picture above that's left to right): 3.3V, /RESET, GND, CTS, RTS, TxD, RxD, GND, SCK, 5V. And as you can see the big pads on both sides (connector shield) are also tied to ground.

This particular serial to USB converter was bought here: http://www.propox.com/products/t_93.html
It's a pretty common design but there's a manual with schematics for download on that page if you need them.

Pins VPO, VEX and VIO are connected together in my photo. That's PORTVCC, EXTVCC and IOVCC - and that means 5V on the I/O pins. This is actually by mistake, I'm short on these modules and when I swap it around I often forget to re-wire it properly for Dreamcast. As I said, it will work like this but that's unsafe.
You should connect IOVCC to 3V3OUT instead. With this module you'd just put a jumper on pins 24 and 23 and connect 22 with 18 using a short, insulated wire.

And don't forget it's a null-modem so TxD from the board goes to RxD pin on the FT chip and vice versa. Same for RTS/CTS control signals.

Hope that helps!
7th-Apr-2009 03:53 pm - Cruise Speed
Deunan, Ex Machina, Knute
Well, not really much to say but I figured a status update would be nice :)

Yuki dumped more GDs and again I find myself so behind with testing... It simply never ceases to amaze me just how many games were released for Dreamcast in Japan. Sadly, only for that very region, never to be translated and sold worldwide. It's true that so called dating sims are not very popular anywhere else but you can't go wrong with titles like Happy Breeding.
Asked about it Yuki decided to be somewhat cryptic and replied "Game that does love as girls".
NOW I JUST GOTTA SEE IT, PERIOD :P

This was supposed to wait 'till the next release but quite frankly, with things as they are now, I'm not sure when exactly that will be. So I'm happy to annouce that I got some help from TOSEC project guys (okay, Maddog mostly) and in future Makaron will recognize all TOSEC GDI dumps for the purpose of having per-game settings.
It's really great that projects like these exist. It'd be pretty much impossible for me to get my hands on so many games - because secondhand or not, I simply can't afford to buy all those GDs myself.

The VMU emulator is now moving to the final pre-release phase. This is how it will look like:





And this just in, Alex gave me heads up on his new blog page.
Not only he dumped a cart game, he got it working with Makaron too :)

It's really nice to see that people find Makaron useful, especially that there are other emulators out there as well. With GUI and all :P
18th-Mar-2009 12:33 pm - Bits and pieces
Deunan, Ex Machina, Knute
There's a small update to the PAD plugin, which can be found here.
It fixes a problem with Acquire call failing on certain systems and causing the config window to close immediately (pretty obscure foreground-only access vs window creation sequence issue). More importantly though there was a crash reported by some users, happening when OK button was pressed. Turns out this would prevent the new configuration from being written to the INI file.
If anyone's interested, this is a piece of code equivalent to the offending one. See if you can spot the problem :)

  vector<Box>::iterator i;

  for (i = boxes.begin (); i != boxes.end (); i++)
    if (!i->valid)
      i = boxes.erase (i);


I've been trying to add some preliminary GUI for configuration purposes and I have to say I'm not doing so great. It's really annoying to have to fix various random pieces of code every time I change my mind about how the GUI should look/work. At this point I belive I'd be better off creating an empty project with only the GUI and then merging the thing with Makaron once I'm happy with it. Though actually it'd probably end up the other way around, that is moving emulator internals to the GUI project :)

Anyway, I've also been experimenting with various things including SH4 recompiler. That last idea didn't quite live up to my expectations, I guess I would have to rewrite it whole in order to gain any significant speedups - and I've neither time nor motivation right now.
One of my ideas was to introduce the ability to change dics in the GD drive without having to open the GUI menu. I gave Yuki a modified version where you can choose one of 4 "GD slots" by pressing keys 1 through 4 - at any time really. Kinda neat and for now saves me the trouble of implementing the switch between window and fullscreen mode - though it will be possible in future of course.

So... what do you guys think? GD slots a good idea? It will interfere with the "classic method" a bit (and you need to assign images to slots first) so having both at once might be difficult to do and/or understand. Also, how many slots and how to switch between those? Keep in mind some games require keyboard emulation so it's best to either limit the key usage, or figure out a clever system which would allow to lock the keyboard exclusively for emulation or GUI - and again, how to switch between those modes?

If there are any good ideas for the GUI functionality then I'm all ears. Menu layout, key mappings, stuff like that. I have to say I don't much like how nullDC menu works. It's great if you need to change only one or two options but for anything more you have to constantly revisit the menu bar and navigate from there. I find that all-in-one config window in pSX more... ergonomic? Though it can be a little confusing with so many things in one place.
With a decent GUI there would be no need for the on-screen F12 menu I suppose?

Oh and BTW there is provisional support for save-states now. With all the changes I make it's not stable enough to be used, but this functionality too will require key mappings or something for easy access.



UPDATE: I've only now realised that the last screenshots posted were made in December...
Some people are working on Pandora port, some are trying to get Atomiswave working, and I've been busy with this :)
Once again, great many thanks to Yuki for hunting rare VMUs and special savefiles, and to all those people who helped me out with VMU BIOS dumping (you know who you are). Took me a while :P

VMU-E and VMU-J BIOS:




"Cho Hatsumei Boy Kanipan - Asonde Kid DC DC":



"Zen Nippon Pro Wres - Giant Channel":




"Atsumete Godzilla - Kaiju Dai Shuugou":



"Gamera Dream Battle" and "Mothra Dream Battle":




"Atsumare! GuruGuru Onsen - Chiisana Kotori Uranai":



"Pinta Quest" - Skies of Arcadia minigame:




And there's more where this came from :)
31st-Jan-2009 07:12 pm - 500 - Too Busy
Deunan, Ex Machina, Knute
I'm busy. If you want a more detailed explanation you will have to come up with something on your own :)

Work on Makaron is progressing, albeit somewhat slowly these days.
Most noteworthy bug squashed lately: Skies of Arcadia and getting stuck in narrow places - should not happen (so often?) anymore. Finally got around to fix FLASH erasing commands as well, this should make BIOS boot games even if you fail to set the clock properly. For those less fortunate who find Dreamcast BIOS menu just too confusing.

Today I bring you another input plugin - this one is meant only for X360 controllers and uses/requires XInput. Unlike DirectInput (broken by design by Microsoft), XInput allows both triggers to be independent and have full range readout.

Download it here.

No support for hot-plugging - basically you need all controllers (that you wish to use) have their respective IDs assigned before you launch Makaron.
There is no setup or configuration of any kind. All you need to do is put X360PAD.dll in "Wtyczki" folder and edit Maple.ini to use it instead of MakaronPAD.dll.
Controls are mapped to follow original Dreamcast layout. BACK, LB, RB, right analog stick and buttons under the sticks are simply ignored. Triggers and analogs have suggested deadzones - tell me if it's too much (especially triggers).

Since I have no control over how Windows will assign the IDs, I made it like this: the first port in Maple.ini to be assigned the X360 plugin will use first available controller. And so on - in theory, not tested with wireless or multiple devices :)

No force feedback yet. If you've used FF before with another controller you might want to switch back to double-VMU configuration for now.

By the way, one of the features I'd like to have next is the ability to map unused controller buttons to specific emulator functions - like pause on BACK and stuff like that. If you have any other ideas, tell me.

Advertisement

Customize
This page was loaded Jul 6th 2009, 4:17 am GMT.