Time for MAME 0.132u3. Find the updated diffs on the Source Updates page.
Phil Bennett and I are bringing Sega back. These are images from current MAME, not 0.119.


Arrived recently for dumping (yeah, I do that too): ICE’s 2003-ish Johnny Nero: Action Hero. It’s a comic book-style lightgun blaster with 3 selectable worlds and it’s running on hardware way beyond what I was expecting from the YouTube videos: a 300 to 400 MHz VR5500 MIPS main CPU, a big FPGA with custom 3D rendering hardware and 1 or 2 PowerPC 405 CPUs, and an IDE harddisk containing the game data. Needless to say with those specs this is going to be a serious job to emulate and is likely to be slow once it is.
Plug: The Dumping Union hooked me up with the board but I paid for it 100% myself because I know a lot of you guys would rather your donations go towards lost oldies like Steel Worker instead of something this new. Please continue to donate to them if you can – not only do you get to play the results, you get your name in lights on their page.
Fixed some Maple bugs in the Naomi driver (especially one that was trashing memory with invalid commands), now Moeru Casinyo, Street Fighter Zero 3 Upper, Shinkigami no Shiro 2*, Trizeal and Under Defeat boots fine and are playable.
* Check Haze’s site for this one
Moeru Casinyo
Street Fighter Zero 3 Upper
Trizeal
Under Defeat
By request, I’ve spent five minutes in looking at Kick N Run / Mexico ‘86 comms for 4p mode. Actually got something…
…but the major problem is that this fix breaks the normal 2p mode. I wonder if I’ll find a solution for it…
*update* after trying everything I think that the most plausible option is that the reset line for the communication cpu is directly hard-wired with the dip-switch that controls the number of players, but I need to prove it…does anybody kind enough could send to me some high quality pics of this pcb, component and solder sides?

It’s Fisherman’s Bait 2 - A Bass Challenge, but in a different language.
MAME has just been updated. Grab the 0.132u2 diffs from the Source Updates page.

The CD contains the Japanese & Korean versions.



Posted by Tom (noreply@blogger.com) at June 04, 2009 10:11 AM
Giocabile:


Qualche progresso con roul
Implementato il blitter (da quel che ho potuto vedere riesce solo a tracciare linee)



Posted by Tom (noreply@blogger.com) at March 29, 2009 06:39 PM
This version of Mahjong Vegas runs on royalmah.c hardware. But, unlike the previously dumped version, it does not use the internal ROM hidden in the TLCS-90 CPU, so it actually works in MAME..
.. after fixing the very, very broken routine that processes the interrupts in the CPU core, that is (my bad).
Thanks to Uki.
Namco's Funcube is a series of touch-screen driven redemption games. Multiple cabinets can be locally linked, and each chapter in the series (five in total IFAICT), contains three mini games that challenge players on good memory, fast reactions and cards playing skills.
These are some WIP shots from the only two games there's a dump for, Funcube 2:
and then Funcube 4:
The games have no sound ATM, and are not playable due to missing touch-screen inputs.
Yet, it was pretty surprising getting this far, considering that this system (apparently code-named EVA3A) uses, as main CPU, an unemulated Motorola XCF5206.
Luckily it turns out its ColdFire core is an almost binary compatible 680x0 derivative. So I'm using a 68040, patching out a few unemulated instructions, and hacking in the internal peripherals support (timers, serial).
Then there is a PIC12C508 MCU, whose code is not dumped, that may be involved in the minimal protection that I've bypassed.
In typical Namco fashion, another CPU handles the rest of the inputs (i.e. coins, dips). It's an H8/3007, a variant with no internal ROM. I had to add support for a few more unemulated instructions, but it still has issues with the 16-bit timers.
Sound wise, it uses ADPCM samples, alas through an unemulated OKI MSM9810 chip.
The graphics emulation works though, as the board uses the same chips (DX-101, DX-102) I emulated in seta2.c. Just some trampoline functions were needed, in order to connect the 32-bit data bus of the ColdFire to the 16-bit handlers in that driver.
Thanks to Haze.
Its been a while since I did any major updates to the peplus driver, but recently I decided to tackle a hardware add-on for the machine.


Posted by Stolistic (noreply@blogger.com) at January 09, 2009 12:50 AM
All controls that inherit from ListControl (BulletedList, CheckBoxList, DropDownList, ListBox and RadioButtonList) have some annoying behavior in common:
You can only bind the control to a single property using the DataTextField property. For example, if you have a Customer class with properties Id, Name, Surname, etc and you want to show the full name of a customer in any of the ListControls, you have several options:
The truth is that I don’t like any of those options, all of them are hacks.
For nested properties you have the similar problems. You can bind to Id or Name, but you can’t bind to Address.City or Address.Zip.
Today I faced this problem again and I decided to investigate a more innovative solution. The problem itself is in the controls that inherit from ListControl that are very strict in the binding options. So I took a look of how the controls perform the binding to see if I could do anything to overcome those limitations. At first sight I thought I was loosing my time but after a deeper study I found that it was amazingly easy to fix those problems in a very sleek way.
The data binding of the controls is performed in the PerformDataBinding method. The code at ListControl.PerformDataBinding uses DataBinder.GetPropertyValue to retrieve the value to show in the control if you set the DataTextField property. However, DataBinder.GetPropertyValue doesn’t handle nested properties. DataBinder.Eval is a better choice because it does handle nested properties. So using it we solve one problem. The other problem can be solved easily as well. As we have two properties that control how the Text of each ListItem will be extracted and shown from the data source, with a bit more of effort we can handle the new functionality. I have come up with a very intuitive solution:
The code that performs the data binding is:
As we need to call this data binding code instead of the one from ListControl I needed to subclass all controls that inherit from ListControl in order to fix them. So now I have BulletedListEx, CheckBoxListEx, DropDownListEx, ListBoxEx and RadioButtonListEx.
I have created a simple example showing how to use them. Imagine that an Item can be supplied by a set of suppliers, and each supplier sells the item with a different price. The following image shows the properties of the 3 entities of the sample:
I have created a web page with a DropDownList with some items, and when you select an item in the DropDownList you will see a ListBox with the all suppliers of that item with the associated price for the item. Notice how I show the Id and the Name in the DropDownList and how I show the price, supplier Id and supplier name in the ListBox:
The ASPX of the page follows:
As you can see, the solution is really clean and elegant, and backward compatible with the current controls that inherit from ListControl.
That’s all for now,
Merry christmas!
ListControlsEx_bin.zip (6.53 KB)
ListControlsEx_sample.zip (33.75 KB)Posted by Your DisplayName here! at December 22, 2008 11:35 PM
I’d never heard of this before..


hmm and on another tilemap…

Looks like rather strange hardware for Taito, but there are lots of card graphics in the roms, so I’m guessing it’s a complete game rather than the video for something else…
I’ve been looking at early Nichibutsu Mahjongs with Kale
The following (Night Gal, Night Bunny and Royal Night) ones are an evolution of the hardware used by Jangou.
The main difference is these have a ‘protection’ CPU. In this case it is used to reinterpret the blitter values written by the main CPU, and convert them to the actual format used by the blitter using lookup tables in the protection program ROM. This took a while to figure out, because at first it looked like the ROMs were bad, because the offsets written by the CPU didn’t match the offsets in the blitter data rom at all (It was writing ASCII strings, but the blitter rom characters weren’t in ASCII order)
I’ve been working on getting them to display something. The Protection CPU isn’t hooked up quite correctly yet.


There are other games using the blitter with this weird configuration too. Sexy Gal, Sweet Gal, and Night Gal Summer. These don’t boot yet.
17 15 15 17 15 17 17 15 15 17 17 15 17 15 15 17
115163 134440 134684 123578 124325 119368 129136 138039 131465 123863 124014 134368 114033 128910 138950 132739
138511 116005 117079 133371 120561 137598 132515 113767 121234 142936 135015 120354 139340 123419 117903 137467
97696 155678 150638 107566 144235 105896 104535 149136 147566 109552 104031 153598 100741 153822 148116 114269
106225 149014 147978 108136 148715 110697 103607 151184 149013 112404 104923 149873 106272 145600 145167 108267
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,},
{16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,},
{0,0,0,0,0,0,0,0,8,0,0,0,4,0,2,1,},
{0,8,0,0,0,0,0,0,0,4,0,0,0,2,0,1,},
{0,8,0,0,0,0,0,0,0,4,0,0,0,2,2,1,},
{0,0,8,4,0,0,0,0,0,0,0,2,0,0,0,1,},
{0,0,0,4,0,0,0,0,0,0,4,2,4,0,2,1,},
{0,0,8,4,0,0,0,0,0,0,0,2,0,2,0,1,},
{0,0,0,4,0,0,0,0,0,0,4,2,0,2,2,1,},
{0,0,0,0,8,0,4,2,0,0,0,0,0,0,0,1,},
{0,0,0,0,0,0,0,2,8,0,0,0,4,0,2,1,},
{0,0,0,0,0,4,4,2,0,4,0,0,0,2,0,1,},
{0,0,0,0,0,4,0,2,0,4,0,0,0,2,2,1,},
{0,0,0,0,8,0,4,2,0,0,0,2,0,0,0,1,},
{0,0,0,0,0,0,0,2,0,0,4,2,4,0,2,1,},
{0,0,0,0,0,4,4,2,0,0,0,2,0,2,0,1,},
{0,0,0,0,0,4,0,2,0,0,4,2,0,2,2,1,},

Posted by Andreas Naive (noreply@blogger.com) at December 09, 2008 07:58 PM

Posted by Andreas Naive (noreply@blogger.com) at December 09, 2008 07:58 PM
One of the greatest problems when trying to optimize an ASP.NET page to be more search engine friendly is the view state hidden field. Most search engines give more score to the content of the firsts thousands of bytes of the document so if your first 2 KB are view state junk your pages are penalized. So the goal here is to move the view state data as down as possible.
I have seen some approaches to solve this problem rewriting the final HTML code of the response. While this approach works I think that it wastes some precious processor cycles that can be used to do other things. So I needed a way to do the same thing without wasting that CPU time. After some large reflector sessions I found a way to do it. My method uses the ASP.NET Control Adapter Architecture.
A control adapter is a class that can be used to control the HTML generated by the control it adapts. Since the Page class is the responsible of rendering the view state hidden field (Page.BeginFormRender calls Page.RenderViewStateFields), an adapter for the Page is needed. However, the view state hidden field plays a key role in the ASP.NET infrastructure (for example, the Page.IsPostBack property checks if the view state hidden field has been posted) and it is difficult to modify the associated HTML.
A PageAdapter has a method called GetStatePersister() that returns an object that inherits from PageStatePersister. The PageStatePersister is called when it is time to load and save the view state. There are 2 classes that inherit from PageStatePersister: HiddenFieldPageStatePersister and SessionPageStatePersister. The first one is the default, which stores the view state in the hidden field called __VIEWSTATE. The second one stores the view state in the session. So, we can easily create a custom PageStatePersister to control the view state load and save process. The big problem is how to create the hidden view state field before the closing form tag while being a fully transparent solution. After some tries I came up with a solution that I was happy with.
I realized that it was impossible to completely remove the view state hidden field from the top of the page, because it plays a key role in the ASP.NET infrastructure. However, with any custom page state persister the ASP.NET infrastructure renders at least an empty view state hidden field of only 70 bytes:
My page adapter adds a hidden field to the bottom of the form called __SEOVIEWSTATE with the actual view state data, and the only limitation that it has it is that you can not use <% %>expressions directly inside the asp.net form. However, this restriction can be easily avoided putting the <% %>expression in a PlaceHolder control or inside another control. For an in-depth explanation of this limitation take a look here.
Let’s see an example of the adapter in action. The following ASP.NET page:
With the associated code:
after a couple of postbacks, without using the adapter, the HTML looks like this:
and after a couple of postbacks, using the adapter, the HTML looks like this:
In order to use the adapter, you have to add a reference to the assembly and add a file called SEOViewStateAdapter.browser (the name of the file does not matter. The extension needs to be the same. Or also you could merge the contents to another file if you already have one) to the App_Browsers folder. The content of the file should be:
That’s all. Enjoy!
SEOViewState.zip (29.67 KB)Posted by Your DisplayName here! at December 04, 2008 07:26 PM
Posted by Knarfian (noreply@blogger.com) at August 14, 2008 07:28 PM






Posted by Knarfian (noreply@blogger.com) at August 14, 2008 01:40 AM
We're sorry, content cannot be read.
If you are the feed creator, something went wrong while the Dapp ran. To see what happened, please go to the Dapp's page on dapper.net, or Contact Dapper support specifying the Dapp name
If you are a subscriber, this feed was created using Dapper. Dapper lets anyone turn regular websites into RSS feeds. The feed doesn't work at the moment, We're again sorry for the inconvenience.
- Contact Dapper supportWe're sorry, content cannot be read.
If you are the feed creator, something went wrong while the Dapp ran. To see what happened, please go to the Dapp's page on dapper.net, or Contact Dapper support specifying the Dapp name
If you are a subscriber, this feed was created using Dapper. Dapper lets anyone turn regular websites into RSS feeds. The feed doesn't work at the moment, We're again sorry for the inconvenience.
- Contact Dapper support
Posted by Stolistic (noreply@blogger.com) at June 12, 2008 01:30 AM
Posted by Nicola Salmoria (noreply@blogger.com) at February 17, 2007 12:39 PM
Posted by Nicola Salmoria (noreply@blogger.com) at February 17, 2007 10:33 AM