An exclusive gaming industry community targeted
to, and designed for Professionals, Businesses
and Students in the sectors and industries
of Gaming, New Media and the Web, all closely
related with it's Business and Industry.
A Rich content driven service including articles,
contributed discussion, news, reviews, networking, downloads,
and debate.
We strive to cater for cultural influencers,
technology decision makers, early adopters and business leaders in the gaming industry.
A medium to share your or contribute your ideas,
experiences, questions and point of view or network
with other colleagues here at iVirtua Community.
November 10-13: DevConnections Returns to Las Vegas DevConnections rocks the industry as the largest and most exciting event focused on the technology you use. Over 250 in-depth sessions on ASP.NET, Visual Studio, SQL Server and SharePoint delivered by 150 Microsoft architects and industry experts. Each attendee receives SQL Server 2008 with 1 CAL. DevConnections sold out last fall with over 5,000 attendees, so be sure to register today!
Publish Date: Wed, 29 Oct 2008 01:10:00 GMT Read more...
ASP.NET Overview for Non-ASP.NET Developers In this webcast, explore many of the core elements of ASP.NET development and get practical examples to help you start building solutions with the ASP.NET framework.
Publish Date: Fri, 31 Oct 2008 07:35:00 GMT Read more...
Microsoft Releases the Web Platform Installer Beta The Microsoft Web Platform Installer (beta) is a free tool that makes it simple to download and install the latest components of the Microsoft Web Platform, including IIS7 and Extensions, SQL Server Express, .NET Framework, and Visual Web Developer. The installer includes the software you need to build and run Web applications on Windows.
Publish Date: Mon, 06 Oct 2008 18:35:00 GMT Read more...
LINQ Features in Visual Studio 2008 Want to know more about Microsoft .NET Language-Integrated Query (LINQ)? This webcast offers a wide array of tools to make your LINQ experience an excellent one.
Publish Date: Thu, 7 Aug 2008 08:00:00 GMT Read more...
Release of ASP.NET Virtual Earth Map Control Want to see how Microsoft Virtual Earth Maps, aerial imagery, and bird's eye view look? Map Control enables web site users with a new immersive experience, including directions and locating and mapping search results.
Consoles like the PlayStation 3 and Xbox 360 have lured sports gamersaway from a PC market already moving towards a download model and underthreat from piracy, forcing developers to prioritise other formats.
That's the view of Peter Moore, boss of EA Sports, who outlined his views on Peter Moore's Official Blog this week.
Next-generation consoles "with their high definition graphicsand 5.1 sound capabilities have attracted millions of consumers toeschew the 'lean in' PC sports gaming experience for the 'lean back'full room console experience," Moore wrote.
"Businesses have to make hard trade offs for where toinvest for the best return, thus creating capital to make even moregames," he explained. "I know this concept touches a nerve with some ofyou, but our industry is founded on publishers that have driven forfinancially-successful games and then re-invested the proceeds indevelopment of even more content for gamers to enjoy.
"It's a simple financial premise, and an obligation forpublically-traded companies who answer to their shareholders. We arenot making games in garages or bedrooms any more."
But Moore reserved his harshest criticism for the people who steal games off the Internet. "Piracy is an issue," he wrote.
"Sorry, I know many of you disagree with me on this, but thenumbers don't lie. Companies spend millions developing content, anddeserve to see a return on investment for their risk. The employeesdeveloping the game design, writing code and creating art deserve toget paid for their work. Period."
Moore's comments are particularly interesting as they come just days after Blizzard CEO Mike Morhaime told Eurogamer.netthat suggestions the PC games market is in decline are "just completelydead wrong". "PC is the gaming platform with the largest installed basearound the world. It's also the platform with the best margins,"Morhaime had said.
Morhaime was reacting somewhat to similarsentiments from Valve boss Gabe Newell, whose company flew journaliststo Seattle in May from around the world to evangelise the PC as aplatform.
Quote:
"We think the number of connected PC gamers we areselling our products to dwarf the current generation of consoles puttogether," Newell had told the press on that occasion. "There aretremendous opportunities in figuring out how to reach out to thosecustomers."
For his part, Moore added that EA Sports is stillexploring options on the PC. "In order to make fundamental shifts in anecosystem, you sometimes have to hit the reset button. That's what wehave done this year at EA Sports as regards some of our franchises onthe PC," he wrote.
"That does not mean that we aren't coming backnext year with new, innovative, maybe even less-expensive ways to playall of our franchises on the PC, but for right now we are assessing allof the options open to us to shift the current paradigm for our gameson this platform," he wrote.
Why I Still Use Windows 95 andrew-turnbull.net — Theoperating system I currently use on my primary computer is Windows 95OSR2. Furthermore, not only do I use Windows 95 extensively, but Iprefer it to Windows 98, ME, 2000, XP, and Vista.
Hitachi has pledged to release a 5TB 3.5in hard drive within twoyears, and it claims two of the drives will boast enough capacity tostore everything in your brain.
According to a report by Nikkei Net, Hitachi Global StorageTechnologies will use Current-Perpendicular-to-Plane GiantMagnetoresistance (CPP-GMR) magnetc read heads to achieve the aim.This, the firm claims, will allow its drives to store 1TB of data inevery square inch of the recording surface.
Hitachi’s announcement is a step on from a claim it made back inOctober 2007 that 4TB of storage could become a reality by 2011.
It’s worth noting though that Hitachi’s not the first storagecompany to promise super-capacity HDDs. Back in August 2007, rival Fujitsu announcedthat 2.5in disks were its proposed ‘patterned medium’ for such compactstorage. It too plans to have commercial models available by 2010.
Fujitsu's approach uses anodised aluminium to create a pattern of"nanoholes", each holding a portion of magnetic material used to storea single bit of data. The aluminium-oxide surrounding these so-called'nanoholes' helps magnetically insulate each bit from all the others,preventing one from affecting another, which might lead to datacorruption.
Nonetheless, Dr Yoshihiro Shiroishi from Hitachi has claimed thattwo of its 5TB will together “provide the same storage capacity as thehuman brain”.
So, if your memory’s not great, then just buy a couple of 5TB drivesfrom Hitachi and download all your thoughts and memories onto them,before wiping the slate clean and staring afresh with another 10TB ofbrain capacity.
I wrote a very simple program to read Minesweeper's memory anddisplay a grid showing where the bombs are. I used OllyDbg fordisassembly and reversing and CheatEngine for quickly finding knownvalues in memory.
During this process, I found out that Minesweeper CHEATS, onlyspawns about half the bombs, and moves bombs mid-game. (Sometimes towhere you are clicking, sometimes it will move a bomb that you clickon.) Regardless, I consider this project a success. During this process, I found that Minesweeper will sometimes assist youand move bombs away from where you are clicking on. Originally, Ithought that Minesweeper was only "spawning" about half of the bombs,but as it turns out I misunderstood the way minefield was representedin memory and all bombs are generated at the beginning of the game and not first click or any later clicks.
My error was in thinking that minefield was stored in a 2-dimensional array (ie: minefield[x][y] = FLAGS) where max(x) (and max(y)) are the size of the grid (ie: 9x9 on Beginner) but as xumiiz on Reddit pointed out:
His program is buggy. It's not reading the grid incorrectly - it's a constant width of 32 bytes, but a window from thetop left is taken for the actual size of the playing field.
So, first bugfix to his source:
for(DWORD grid_loc = 0; grid_loc < grid_height * grid_width; grid_loc++) {
should be:
for(DWORD grid_loc = 0; grid_loc < grid_height * 32; grid_loc += ((grid_loc%32)==(grid_width-1))?(32-grid_width+1):1) {
And:
if((grid_loc % grid_width) == (grid_width - 1))
should be changed to:
if((grid_loc % 32) == (grid_width - 1))
With these fixes, it reads all the bombs properly.
Sorry but your program is reading the grid incorrectly.Minesweeper uses a grid with a fixed width of 32 bytes and the playingfield is takena s a window of that grid from the top left. e.g.beginner mode uses bytes 0 to 8 and skips bytes 9 to 31 per every 32byte row.* Fixing the program to read based on that patten shows thatMinesweeper only moves the mine if it happens to be the first squareyou click on. Apart from that, all mines are randomly placed at thestart of the game.
(* Actually it would use bytes 0 to 10, where bytes 0 and 10 are0x10 which is to indicate the border of the mine field, and bytes 1 to9 are the actual squares. but that's not really relevant to theanalysis if you're just &ing with 0x80 to find bombs.)
The source of this program is available here: (This is the original and still requires an update, my code will be fixed soon.)
http://www.room641a.net/files/projects/minehack/minehack.cpp Sample program output:
Minehack - Reverse Engineering and Coding by Sub <sub@room641a.net>
---
Fairly simple program to display already-placed bombs in minesweeper.
---
PID: 2836
Height: 9
Width: 9
---
[ ][ ][ ][ ][ ][ ] [ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ][ ]
And now, probably the most important comment block of my entire program (I have updated this information here to be current, but the source file still needs updated):
/* Did you know?
*
* Minesweeper stores its minefield in an array char-sized (1 byte) multi-dimensional array. Each byte
* in memory corresponds to a specific location on the grid. It appears to use
* simple bit masks. (This section needs updating, but the information below is current.)
*
* 0x10 "Border" - Appears to mark the beginning of a row, which means my offset is off by +1
* 0x40 Button has been pressed already
* 0x80 Bomb is in place. These can move mid-game if clicked on
* Bit-wise OR with:
* 0x00 The square is exposed
* 0x0X X is 1-8 -- # on square (number of mines neighboring this square)
* 0x0D Square is marked with question mark
* 0x0E Square is marked with flag
* 0x0F Blank squares are all 0x0F
*
* AND THEN THERE'S 0xCC WHICH MEANS YOU CLICKED A DAMN BOMB AND LOST!
*/