Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: How to disable the OSD on my NEC LCD monitor??? Please help!  (Read 3087 times)

0 Members and 1 Guest are viewing this topic.

BadAss_Technologies

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:January 12, 2013, 08:25:55 pm
  • I don't need no stinkin' Xbox, I got quarters!
How to disable the OSD on my NEC LCD monitor??? Please help!
« on: August 07, 2012, 12:06:47 am »
Hello everybody,

I have a problem that I hope someone can help me with. . . I recently acquired an NEC Multisync LCD1960NXi desktop monitor, with the intention of using it as the display in my first arcade cabinet.  I'm almost 100% satisfied with it (great picture, has an actual mechanical power switch and it was a really good deal), but it does have one EXTREMELY annoying feature that I can't seem to kill -- the On Screen Display (OSD) that invariably pops up whenever the monitor is powered on, detects a video signal, detects a change in the video signal or loses the video signal.  This is completely unacceptable for me, as I don't recall ever dropping a quarter into a Pacman or Galaga cab and being greeted by a green & white overlay center screen pointing out the current video mode and resolution.

I've scoured the Internet to no avail.  The fine folks at NEC replied very quickly to my request, stating that the only way to disable the OSD would be to remove the main board, which would render the monitor unusable (really???).  When I followed up with a request for a schematic or pinout diagram I was quickly met with "That information is only available to authorized NEC service technicians."  She also felt it necessary to point out that ". . . that information is not available on any public website, either."  Turns out she was right; I haven't been able to find a service manual for this particular monitor, or even one with similar architecture.  I was able to find a datasheet for the main IC used on the video board (Genesis gm5120), which had some detailed information regarding the chip's onboard OSD generator and how it can be used in either a stand-alone, generic mode or use fully customized firmware.  That tells me that it IS possible to disable the OSD, and likely by simply using a piece of software to edit the firmware.  I haven't been able to locate said software yet, but it has to be out there somewhere, if not the official software distributed to OEMs by the chip manufacturer then something that has been or could be hacked together by some bored guy in his basement.

Any electronics engineers or BIOS/firmware hackers out there wanna take a stab at this?  I'd appreciate any help I can get.  Oh, and while a software approach would be preferred, I have absolutely no reservations about de-soldering or snipping a leg or five from an IC.

Thanks in advance. 
« Last Edit: August 07, 2012, 12:13:31 am by BadAss_Technologies »

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: How to disable the OSD on my NEC LCD monitor??? Please help!
« Reply #1 on: August 08, 2012, 12:10:05 am »
Chances are the board is basically just a breakout for that controller chip.  Docs are readily available for it (google the part number).  You probably don't need any info from NEC to hack it.

The simplest thing to start with would be to just yank the I2C EEPROM off the board.  It looks like that'll chuck the controller into a usable generic mode, removing all the NEC features entirely.  It'll still have an OSD, but it may behave differently.  Be warned that it may not give you the exact timing the panel wants by default, so it may not work at all.

Failing that, you can take two routes: attempt to patch the firmware NEC provided or write your own.  If you can find where the relevant parts of the NEC firmware are, it should be pretty easy to just patch out that auto-OSD thing, otherwise you may end up just writing your own since what you want to do is pretty simple.  The firmware is stored on the I2C EEPROM.  The datasheet says that they recommend Keil's compiler, but they don't actually identify the CPU architecture used for the onboard MCU.  It's probably 8051, but no guarantees.  Disassemblers and assemblers for 8051 are freely and readily available.  If you want a C compiler, sdcc apparently works, but I don't know of any "good" free ones (gcc doesn't support it, and I don't think LLVM does, either, so no clang).

The OSD is fully under control of that micro, from the looks of the datasheet, so you should be able to make it do anything you want.  They reference a couple of custom tools (G-Wizard, OSD Workbench, and G-Probe).  You may be able to get them from Genesis if you ask nicely, but you're probably on your own.  Some reverse engineering is likely required.

If you can figure out the format of the OSD data, you may be able to just make the relevant graphics fully transparent or just a 1x1 pixel (which wouldn't be too obvious) or similar without patching the software at all.  Of course, you'll have to find where it is in the EEPROM image, first.

FWIW, lots of modern arcade games (which are generally PC based) make no effort whatsoever to hide any of this stuff.  Plenty of them will show BIOS startup text, Windows/Linux bootup, etc. when powered on, and lots of modern arcade monitors have on screen display, though the game usually doesn't change video modes on the fly, so nothing will come up during the game.  You could get similar behavior here by making sure that everything you run runs in the same video mode; it's not like you're going to get native video for any classics on this thing, anyway.
« Last Edit: August 08, 2012, 12:14:32 am by MonMotha »

BadAss_Technologies

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:January 12, 2013, 08:25:55 pm
  • I don't need no stinkin' Xbox, I got quarters!
Re: How to disable the OSD on my NEC LCD monitor??? Please help!
« Reply #2 on: August 08, 2012, 12:47:55 am »
Thanks for the suggestions.  I'm gonna try to get the software from Genesis (maybe they'll be nicer than NEC).  If I can get the software, it should be a piece of cake. . . it can't possibly THAT hard to make a few bytes disappear.

SavannahLion

  • Wiki Contributor
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 5986
  • Last login:December 19, 2015, 02:28:15 am
Re: How to disable the OSD on my NEC LCD monitor??? Please help!
« Reply #3 on: August 08, 2012, 11:59:32 am »
Quickly glancing over the datasheet the firmware (the OSD portion anyways) can also be applied internally to the 4k of memory space, though I do agree with MonMotha's assessment of the I2c ROM. Look for it first.

 THE OSD format is given as a bitmap with a Look Up Table divided into blocks. If you can dump the memory space, look for known patterns from the generated OSD. Sounds easier on paper I guess but with enough patience you can locate those blocks or tables and set them all to 0x00.

Anyhow, that's not what's on my mind. If the firmware is stored on an I2c ROM. What about the possibility of spoofing or emulating said ROM with a microcontroller so one can toggle between the hacked firmware and the original? I would imagine that if any changes need to be done to the monitor down the road, it would be difficult without the OSD.

BadAss_Technologies

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:January 12, 2013, 08:25:55 pm
  • I don't need no stinkin' Xbox, I got quarters!
Re: How to disable the OSD on my NEC LCD monitor??? Please help!
« Reply #4 on: August 08, 2012, 09:57:14 pm »
Actually, the OSD is not needed at all.  NEC has an application called NaviSet that allows one to configure the monitor's settings from a connected PC.  It's effectively a firmware flasher, but there's no option to disable the OSD (this was the first thing I tried).

As a follow up to my last post, I've been unsuccessful so far in my attempts to locate G-Wizard or OSD Workbench.  Looks like Genesis was bought out by STMicroelectronics in 2007 and their policies regarding access to datasheets, software tools and such make heavy reference to things like non-disclosure agreements, software licensing agreements, confidentiality and legal action, etc.  I really don't understand what the big deal is.  I'm not trying to clone their chips and sell them on the black market, I just want to make some letters disappear. . .

If anybody's up for the task of reverse engineering NEC's NaviSet application to turn it into an OSD killer, let me know.  I'd be willing to part with some green for the service, as my software skills are limited to the realm of VB6 with extensive use of Win32 API.

Thanks

MonMotha

  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2378
  • Last login:February 19, 2018, 05:45:54 pm
Re: How to disable the OSD on my NEC LCD monitor??? Please help!
« Reply #5 on: August 08, 2012, 11:07:18 pm »
I think you're in way over your head, here.  You're not going to get any response through the front door.  ST just plain doesn't care about you, especially for a chip that's old enough to have had the company bought out (and is probably EOL).  It's very unlikely you're going to get that software.

It's probably just some crummy Visual Basic stuff, anyway, designed to "improve time to market" and crap like that.  I've worked with stuff like this before: I almost never use their crummy dev tools.  They're more hassle than they're worth.  Your best bet is probably to dump the EEPROM that's on the board, locate the OSD data, and modify it to basically be invisible.  You may also have luck patching the firmware to simply never display the OSD in that case.  It's probably a 1 byte change - the challenge is figuring out which byte :)

If you're uncomfortable with the process involved to do what I just outlined, you should probably just live with it.  It's not a terribly complicated process, but it's tedious.  One can easily waste days reverse engineering things like this, even if you're good at it.

It's not like it's a big deal.  You can make it so that you'll only get that mode change during the bootup of the PC.  Just scale your Pac-Man, etc. to desktop res.  It's not like you can get native arcade resolutions on that LCD, anyway.

If you do want to make it so you can switch between them, there are actually some standard I2C ROMs out there that have separate memory spaces depending on how you tie one of the address pins.  That would be perfect for this application.