Jump to content


Photo

Aaron's Nintendoh v0.5 (beta)


  • Please log in to reply
24 replies to this topic

#1 aaronbewza

aaronbewza
  • Members
  • 466 posts

Posted 22 August 2011 - 04:36 PM

Aaron's Nintendoh version 0.5 (beta)
Powered by VirtualNES
Posted Image

Description:
This is the first of a collection of Nintendo games - Super Mario Bros.
I'm building a menu selection list for the other NES games (800+).

System Requirements:
Tested on Windows 7 (32 and 64-bit) so far
AHK_L (unicode)
Java
...Nothing else is required!

Download latest version:
Aaron's Nintendoh.AHK (requires AHK_L and COM.ahk to match)
Aaron's Nintendoh.EXE (recommended, needs nothing)

Version History:
v0.1.0.0 - made the first game operational (Super Mario Bros.)
v0.2.0.0 - added "MouseClick" command to activate the window so controls function properly
v0.5.0.0 - joystick is now working, and com.ahk is no longer required


Future Plans:
- collect ALL the Nintendo games and have them accessible via a "channels" system like on Aaron's YouTube Television
- high-score saving and a HUGE high-score board, all done with an INI file


Please report any issues... and as always: Comments, criticism and insults are totally welcome! :)

#2 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 22 August 2011 - 05:35 PM

Nice...

Had considered something like this myself, but to run old Atari 2600 games instead.

I realize you have already stated there are "issues" but wanted to let you know that keyboard did nothing for me but beep.

[EDIT]   It wasn't enough for the GUI to be active... It worked after clicking inside the play area.

#3 tomoe_uehara

tomoe_uehara
  • Members
  • 2077 posts

Posted 22 August 2011 - 05:53 PM

It works, tested on Windows 7 x64 :D
But yes, I get the same issue like SoggyDog, it can't be played until several seconds (so the demo runs by itself)


#4 aaronbewza

aaronbewza
  • Members
  • 466 posts

Posted 22 August 2011 - 05:55 PM

UPDATED to v0.2

- added "MouseClick" command to activate the window so the controls function right away after the MsgBox (thanks SoggyDog and tomoe_uehara) :)

EDIT: does that work? I'm not sure how well.

#5 tomoe_uehara

tomoe_uehara
  • Members
  • 2077 posts

Posted 22 August 2011 - 06:08 PM

I can press Enter after I click the window (after the MsgBox is gone)

#6 aaronbewza

aaronbewza
  • Members
  • 466 posts

Posted 22 August 2011 - 06:30 PM

UPDATED to v0.3

- moved the "Click" command to a better location and added "WinActivate" right before it, to make sure controls become active. No more lost control focus.
- some bug fixes, a few spelling mistakes etc...

@SoggyDog: Atari hey? hmmmmm.....

EDIT: Confirmed... I can make over 800 of these NES games work in this GUI, now I'm on to make a menu system.

#7 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 22 August 2011 - 08:29 PM

- moved the "MouseClick" command to a better location and added "WinActivate" right before it, to make sure controls become active. No more lost control focus.

I'm no longer in a position to test...
I'll get back to you.

EDIT: Confirmed... I can make over 800 of these NES games work in this GUI, now I'm on to make a menu system.

Oh, my...
I can hardly wait!!!

@SoggyDog: Atari hey? hmmmmm.....

Yeah, I'm old.

#8 JakeW

JakeW
  • Members
  • 210 posts

Posted 22 August 2011 - 08:36 PM

I don't remember if this is a bug in mario, or a bug in the little bit of lag with AHK (that sometimes seems to come naturally when using games), but the first time I experienced it was on world 1-2. If you jump on a tube just as the pirahna plant is coming out, and jump off (you can clearly see him touching it), you won't die. Also, you can't turn or crouch while in the air, which I remember being able to do. I love that the warp zones are still there though :)

#9 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 22 August 2011 - 08:40 PM

You know, I haven't looked at your code even one little bit, so I don't know how you're doing this, but since I got a "Hmmm..." for mentioning old Atari games, you could incorporate a 'Load' feature for folks to load their own ROMs, in addition to the 'Stock' library you intent to include.

#10 daonlyfreez

daonlyfreez
  • Members
  • 995 posts

Posted 22 August 2011 - 08:57 PM

Nice.

I'm having issues with the keys, they do not work as stated/expected.

It would be honest if you acknowledge the source though:

VirtualNES

For those longing back to the Atari days: JStella (Atari 2600 Emulator in Java), Stella (Atari 2600 Emulator), atari.st/Little Green Desktop (Atari ST resources), Steem (Atari STE Emulator)

Or for those (including myself) that are even older: JaC64 (Commodore 64 Java Emulator)

#11 jethrow

jethrow
  • Fellows
  • 2549 posts

Posted 22 August 2011 - 09:05 PM

You could remove dependency on the COM Library if you change Lines 102-110 to this:
Gui, Add, Text, % "x" -24 " y"-18 " w" w+60 " h" h+60 " HWNDctrl_hwnd"
  pwb := AtlAxCreateControl(ctrl_hwnd, "file:///" SuperMarioBros1)
  pwb.silent := true
... & if you include the following function:
AtlAxCreateControl(hWnd, Name) ; based on Sean's ComUtils Libraries
{
	static h:=DllCall("LoadLibrary","Str","atl","Ptr"), DllCall("atl\AtlAxWinInit")
	If	DllCall("atl\AtlAxCreateControlEx", "WStr", Name, "Ptr", hWnd, "Ptr", 0, "Ptr", 0, "Ptr*", punk, "Ptr", VarSetCapacity(GUID,16,0)*0+&GUID, "Ptr", 0)=0
	Return	ComObjEnwrap(punk), ObjRelease(punk)
}
Also, there is no need for Lines 133 & 134.

#12 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 22 August 2011 - 09:07 PM

For those longing back to the Atari days: JStella (Atari 2600 Emulator in Java), atari.st/Little Green Desktop (Atari ST resources), Steem (Atari STE Emulator)

Or for those (including myself) that are even older: JaC64 (Commodore 64 Java Emulator)

I use Stella for my Atari emulator.
Don't need a C64 emulator... My C64 is still up and operational!

#13 daonlyfreez

daonlyfreez
  • Members
  • 995 posts

Posted 22 August 2011 - 09:18 PM

I use Stella for my Atari emulator.


Thanks. I added the link.

Don't need a C64 emulator... My C64 is still up and operational!


Cool! 8)

Those were the days, where you would wait 30 minutes for your cassette to load (yes, children, the software came on a cassette, a small, plastic thingy with a magnetic tape, and was loaded with a cassette-player, like a WalkMan, the bulky things we used to play music on portably before there were MP3 players), and 1 minute before it was ready, it would generate an error, and you could start all over.

#14 aaronbewza

aaronbewza
  • Members
  • 466 posts

Posted 22 August 2011 - 10:08 PM

UPDATED to 0.4

- enabled use of variable names for game names and locations
(this will lead to a "load" system from a selection menu)
- found some more bugs because I'm tired and I suck at keeping track of things
- Users should delete the folder named "files" located in %temp% folder, as I changed the name of the HTML file which writes the game out into the GUI. Now it is dynamic and a game selection system can be attached to it.

@daonlyfreez: yes I believe I should have mentioned that I used VirtualNES... you can check out any of the files by opening any folder and typing %temp% into the address bar.
In there is a folder called "files" and that's where the Javascript, HTML, and ROM files are. I forgot that some of you live in Germany and you can't really do anything without revealing all to the government.
Anyway, I added credits for VirtualNES :) front and center where it should be.

This script was easy to build, even with my beginner skills... there's nothing really special about it at all, except I didn't see any other scripts out there that take advantage of emulation, and this one will offer permanent high-score saving.

I did not expect so many useful suggestions so quickly! I've already changed the code somewhat to allow variables for whichever game is chosen by the User, when that's all together..
Any game's name chosen from the menu (not built yet) will get its full path stuffed into a variable named %rom%

@jethrow: 'Atl_Init()' needs AtlAxCreateControlX' as well... I've run into a problem with dismantling COM for another script recently... sometimes between ansi and unicode, 32 and 64-bit, it can totally crash, so I'm going to leave that for now. Somewhere I have a snippet of Sean's code someone altered, it apparently solves the cross-compatibility problem. I'll try it out later, I'm seeing double right now from being over-tired :)

I'm 39 years old and I have had an Atari 2600, and a Commodore Vic20... I never had a SNES but I did get a Playstation in 2000. I now have a MAME Arcade cabinet I built from oak(mame 1.42 no nag screens + hiscore.dat support, plus a custom "backup entire system" feature).
I added emulators for Atari, NES, SNES, and movie lists... along with a 3-D arcade "The Dungeon by Deniro" and a Cylinder Arcade with 2880+ tested and working MAME roms, so it keeps me entertained :)

#15 jethrow

jethrow
  • Fellows
  • 2549 posts

Posted 22 August 2011 - 10:14 PM

@jethrow: 'Atl_Init()' needs AtlAxCreateControlX' as well...

:?: - I can only assume you are talking about the code I posted before I modified my post...